Procesamiento de controles R/C coche con módulos XBee (12 / 14 paso)

Paso 12: Sketch de Arduino

Explicar el Sketch de Arduino

La explicación se incluye en la pantalla de dibujo como comentario en negrita.

Incluir librería SoftwareSerial
#include < SoftwareSerial.h >

Módulo XBee con librería SoftwareSerial y los pines de Arduino para utilizar como TX (10) y RX (9)
SoftwareSerial XBeeSerial = SoftwareSerial (10, 9);

/ / Configurar los pines de Arduino que conectado al L293D - controladores de Motor para la izquierda y girar a la derecha
#define TURN_ENABLE_PIN 3 / / uso PWM de este pin
#define LEFT_PIN 4
#define RIGHT_PIN 2

Configurar los pines de Arduino que conectado al L293D - controladores de Motor hacia adelante y hacia atrás
#define DRIVE_ENABLE_PIN 11 / / uso PWM de este pin
#define BACKWARD_PIN 8
#define FORWARD_PIN 12

Comandos de entrada
#define BEGIN_COMMAND 0x7F / / decimal = 127, binario = 0111 1111
#define adelante 0 x 1 / / decimal = 1, binario = 0000 0001
#define atrás 0 x 2 / / decimal = 2, binario = 0000 0010
#define izquierda 0x4 / / decimal = 4 binario = 0000 0100
#define derecha 0x8 / / decimal = 2, binario = 0000 1000

Definir variable de comando para ser matriz de dos bytes,
comando [0] = girar izquierda o derecha y la unidad hacia adelante o hacia atrás
comando [1] = velocidad.

comando de int [2];

void setup() {}

Configurar XBee SoftwareSerial velocidad a 9600 bps
XBeeSerial.begin(9600);

Asigna Arduino motores control pines como salida
pinMode (TURN_ENABLE_PIN, salida);
pinMode (LEFT_PIN, salida);
pinMode (RIGHT_PIN, salida);

pinMode (DRIVE_ENABLE_PIN, salida);
pinMode (BACKWARD_PIN, salida);
pinMode (FORWARD_PIN, salida);
}

void loop() {}

XBee SoftwareSerial escuchar los comandos de procesamiento interfaz gráfica de usuario,
/ / establecer la condición para ver si hay un dato en el buffer serial
if(XBeeSerial.Available() > 0) {}

/ / y si las funciones de readCommand() devuelven el valor de más de 0,
entonces executeCommand()

if(readCommand() > 0) {}
executeCommand();
}
}
}

Método de lectura Command(),
valor entero de 1,
Si hay tres octetos comience con 0x7F en el buffer serial
o valor entero de 0, de lo contrario.

// 
int readCommand() {}

int b = XBeeSerial.read();

if(b == BEGIN_COMMAND) {/ / BEGIN_COMMAND = 0x7F
comando [0] = readByte();        comando [0] es 0 x 1, 0 x 2, 0x4 o 0x8
comando [1] = readByte();        comando [1] es la velocidad varía de 0 - 6

retorno 1;
} else {}

return 0;
}
}

{} de readByte() int

mientras que (verdad) {}
if(XBeeSerial.Available() > 0) {}
volver XBeeSerial.read();
}
}
}

Traducir los comandos reciben de GUI de procesamiento
y los pines de control del motor ON/OFF

void executeCommand() {}

int c = comando [0];
int velocidad = comando [1];

De control hacia adelante y hacia atrás
DRIVE_ENABLE_PIN = 11
BACKWARD_PIN = 8
FORWARD_PIN = 12

digitalWrite (DRIVE_ENABLE_PIN, bajo);

Comparar (lógica y) primer byte de la matriz de orden (command[0]) con avance (0 x 01)
Si el resultado es TRUE, luego ajuste los pernos de los controles de Motor a motor impulsor hacia adelante

Si {} (c y hacia adelante)
digitalWrite (BACKWARD_PIN, bajo);
digitalWrite (FORWARD_PIN, alto);
}

Comparar (lógica y) primer byte de la matriz de orden (command[0]) al revés (0 x 02)
Si el resultado es TRUE, luego ajuste los pernos de controles de Motor al motor de accionamiento hacia atrás

//

Si {} (c y al revés)
digitalWrite (FORWARD_PIN, bajo);
digitalWrite (BACKWARD_PIN, alto);
}

Comparar (lógica y) primer byte de la matriz de orden (command[0]) con
el resultado de la lógica o entre hacia delante (0 x 01) y BACKWARD(0x02)
Si el resultado es TRUE, a continuación, establezca la velocidad en el segundo byte de la matriz de orden (command[1])

//
Si (c & (adelante | AL REVÉS)) {}

analogWrite (DRIVE_ENABLE_PIN, velocidad);

Gire la izquierda control & derecho
TURN_ENABLE_PIN = 3
LEFT_PIN = 4

RIGHT_PIN = 2 digitalWrite (TURN_ENABLE_PIN, bajo);

Si {} (c & izquierdo)
digitalWrite (RIGHT_PIN, bajo);
digitalWrite (LEFT_PIN, alto);
}

Si (c & derecha) {}
digitalWrite (LEFT_PIN, bajo);
digitalWrite (RIGHT_PIN, alto);
}

Si (c & (izquierda | A LA DERECHA)) {}
digitalWrite (TURN_ENABLE_PIN, alto);
}
}

Artículos Relacionados

Control Arduino RC coche con teléfono android & 1Sheeld

Control Arduino RC coche con teléfono android & 1Sheeld

Si desea controlar coche del RC con el teléfono inteligente android sin utilizar el módulo Bluetooth y android aplicación de programación, puede utilizar 1Sheeld en lugar de ellos.1Sheeld consiste básicamente de dos partes. La primera parte es un esc
Hacer cableada brazo robótico borde a "Wireless" con DIY Arduino + XBee

Hacer cableada brazo robótico borde a "Wireless" con DIY Arduino + XBee

Actualización: añadido esquema, parte superior capa PCB, fondo capa PCB y ambos arriba, imágenes de PCB inferiorAl terminar el "RevIO" - un clon de Arduino que tiene la diferente manera de exponer el uso de pernos. Decidí ir más lejos el próximo
Conducir un coche con control de mano Menox

Conducir un coche con control de mano Menox

Elementos necesarios:Vehículo equipado con control de mano Menox (2014 Mini Cooper Paceman)Transmisión automáticaPerilla de Spinner (opcional)Botones de función auxiliar (opcional)Bloqueo del freno (opcional)Introducción:Existen controles de mano par
DIY Android Control remoto coche con Arduino

DIY Android Control remoto coche con Arduino

esta es una guía paso a paso sobre cómo construir un teléfono con Android o tablet controlada papel coche. Se puede modificar para construir cualquier otro tipo de vehículo que más te guste.Pasos incluyen a guía en:1. construcción de las piezas de au
1 º BM ARDUINO CONTROLÓ el coche con HC-SR04

1 º BM ARDUINO CONTROLÓ el coche con HC-SR04

Con este proyecto quiero mostrarte la manera en cómo convertir un coche RC en un coche automático controlado con Arduino Uno R3.Paso 1: Materiales requeridos: Coche del RC (con los motores separados de la rueda trasera)Arduino Uno R39V battaryCables
Android controla vehículo RC con Video en tiempo real a través de Bluetooth y Wi-Fi gratuita

Android controla vehículo RC con Video en tiempo real a través de Bluetooth y Wi-Fi gratuita

en Internet hay muchos artículos sobre el uso de coches RC con IP o una cámara en la Web. Pero la mayoría de ellos utiliza un ordenador portátil o un router interno con Open-WRT o DD-WRT firmware. Ver el vídeo y el control de las coches de RC en esto
Arduino RC coche con el transmisor personalizada y de largo alcance.

Arduino RC coche con el transmisor personalizada y de largo alcance.

¡ Hola! Este es mi primer instructable.En él te mostraré como hacer un coche RC y el módulo inalámbrico nrf24l01 + Arduino, o cómo actualizar un coche RC de 27 MHz.El viejo coche del RC, que desde el chasis y el heli controlador, recibí de un amigo m
Utilizando Arduino y Bluetooth control de un coche de dos unidades

Utilizando Arduino y Bluetooth control de un coche de dos unidades

sólo modifica un coche dos driver de control Arduino y Bluetooth.  El lado de control utiliza Freaduino 328 y dos módulo Joystick y Pantalla Bluetooth para envían datos.  Del otro lado usa Arduino Pro y Bluetooth Bee para datos recibidos y controla e
Arduino RC coche con cámara FPV

Arduino RC coche con cámara FPV

Este Instructable describe un coche de control remoto que he puesto juntos. El coche no tiene ningún propósito real - era sólo un desafío, para ver lo que podría hacerse con hardware comúnmente disponible. Tiene las siguientes características:-4 x 4
Autónoma de Arduino de coches con Sensor de proximidad infrarrojo

Autónoma de Arduino de coches con Sensor de proximidad infrarrojo

Este Instructable muestra cómo modificar un coche RC preloved para que puede ser controlado por un Arduino. Entonces el Instructable le mostrará cómo hacer el RC funciona que un código simple figura 8 desde allí el Instructable le mostrará cómo agreg
Cómo actualizar el control remoto del coche rc

Cómo actualizar el control remoto del coche rc

En esta guía explico como actualizar el control remoto del coche rc.lo que necesita:1. el control remoto del coche rc2. eléctrico del alambre (no flexible)3. más lindoEsto es todo, ahora se puede comenzar!Paso 1: Haga la antenaahora es necesario hace
Comience su coche con una unidad flash.

Comience su coche con una unidad flash.

Este es mi primer indestructible, yo no hubiera publicado esto porque siempre hago cosas como esta y perder el sitio que a veces pueden ser frías o útil a otras personas, pero un compañero de trabajo me dijo debería, así que aquí yo soy. También sube
Control de motor servo con 1Sheeld

Control de motor servo con 1Sheeld

Si quieres control de motor servo con tu móvil sin usar el módulo Bluetooth y programar la aplicación para android, puede utilizar en lugar de ellos 1Sheeld.1Sheeld consiste básicamente de dos partes. La primera parte es un escudo que está físicament
He hecho un coche con CD

He hecho un coche con CD

Video de cochesHola hice un coche con palos de helado y D C y bebidas puerta y marcador de puerta y pegamento