Juguete del RC Arduino PC controlado por 2 cables (señal y tierra) (7 / 7 paso)

Paso 7: Envíe arancelario y al RX

Ahora es el momento de intentar enviar los códigos de Arduino a RX, RX69A hoja de datos dice que el pin 6 (VI2) de entrada (como V02 es la salida que leemos), grados máximos absolutos en hoja de datos nos dicen que el voltaje máximo es GND-0, 2V a VDD + 0,2 v (me mide 1,57 voltios con mi multímetro, así que si alguien puede decir qué hoja de datos está intentando decir , por favor ayuda ;)

Empecé el divisor de voltaje utilizando valores de 1 miliohmios, pero parece que actual era insuficiente, al final he utilizado dos resistencias de 100 kilohms, dejando caer la tensión de 2, 5V (debajo de 2 voltios parece no tener efecto).

He probado a enviarme el código una vez solamente y a veces trabajada a veces no (relacionado con retardo 5684 micos?), enviando dos veces y parece ok.

 <p>#define SYNC_US 1300<br>#define SPACING_US 500 #define SIGNAL_US 800 #define PinPPM 8 #define CYCLES 2</p><p>void setup() { Serial.begin(57600); Serial.println(F("#Serial Ready")); pinMode(PinPPM, OUTPUT); }</p><p>void loop() { if(Serial.available() > 0){ char inChar = Serial.read(); if(inChar == 'p'){ Serial.println(inChar); //Power pulseOut(PinPPM,SYNC_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SIGNAL_US); pulseOut(PinPPM,SIGNAL_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); //Power pulseOut(PinPPM,SYNC_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SIGNAL_US); pulseOut(PinPPM,SIGNAL_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); pulseOut(PinPPM,SPACING_US); } else if (inChar == 'o'){ Serial.println(inChar); uint16_t CodeToSend = 0b0000000110000000; SendCode(CodeToSend); } } }</p><p>// set thr port high/low, used in SendCode void pulseOut(uint8_t pin, uint16_t TimeMicro){ digitalWrite(pin,HIGH); delayMicroseconds(TimeMicro); digitalWrite(pin, LOW); delayMicroseconds(TimeMicro); }</p><p>void SendCode(uint16_t CodeToSend){ Serial.print(F("#SendCode: S")); for (int index = 0; index < 13; index++) { uint8_t bit = (CodeToSend & (1 << index)) != 0; Serial.print(bit); } Serial.println(); for(int x = 0; x < CYCLES; x++){ pulseOut(PinPPM, SYNC_US); for (int index = 0; index < 13; index++) { uint8_t bit = (CodeToSend & (1 << index)) != 0; if(bit == 1) pulseOut(PinPPM, SIGNAL_US); else pulseOut(PinPPM, SPACING_US); } } }</p> 

Funcionó! Envía 'p' o ' o ' del monitor serial podría dar vuelta el tanque encendido y apagado.

Pruebas de código "motor izquierda adelante", parece el motor trabajó para un poco de tiempo y parado, que tendremos que seguir enviando el comando mientras que queremos el tanque en movimiento.

Ahora es el momento de la solicitud completa. Usar ascii en transmisiones de la serie es la forma más sencilla, pero quiero economía de bytes (mirando a mis futuros proyectos, si usamos a un char para cada botón necesitaremos 8 bytes, use brocas sólo necesitamos un byte).

Mi estructura de comunicación tienen 10 bytes debido a otros proyectos (simultáneos), el primer byte es prefijo, la segunda es tipo, bytes 3 a 8 es datos (comandos, sensores, etc.) y bytes 9 y 10 es para CRC. Echa un vistazo en los códigos.

Compatibilidad con comunicación ascii usar "#" como prefijo y "\r" como postfix, para mi uso es aceptable.

Os adjunto dos códigos fuente, uno "el regulador" para visual studio 2010 c# .net y uno para Arduino. Ten en tu mente que el código no está completo y no está libre de error. ;)

Si no tienes visual studio y desea probar este instructable, puede ejecutar Controller\bin\Debug\Controller.exe (require.net framework 4), conecte al puerto serie de Arduino (puede utilizar Arduino USB cable o dispositivo Bluetooth conectado al TX/RX), verifique la casilla de verificación "captura las teclas del teclado a control" y las teclas de abajo (el controlador escuchará sólo estas teclas) :

ARRIBA = tanque adelante

ABAJO = hacia atrás el tanque

IZQUIERDA = izquierda del tanque

DERECHA = tanque derecho

Q = izquierda de la torreta

W = fuego

E = a la derecha de la torreta

P = potencia (encendido/apagado)

Controlador recibe la llave de abajo (acción) y clave (parada) eventos y establecer los bits en un byte y enviar a Arduino.

Arduino, recibirán ese byte a través de bits serie y en conjunto a una variable de 16 bits para enviar el código a la RX.

Si usted lee cuidadosamente los códigos, todo será claro y sencillo (espero) ;)

Lo siento por mi mala Inglés (he intentado mi mejor. Si usted quiere hacer una revisión, eres Bienvenido a enviarme un mensaje privado)

Espero que disfruten este artículo.

Artículos Relacionados

Persianas automáticas con Arduino. Controlado por Android-control remoto de TV-botones-reloj

Persianas automáticas con Arduino. Controlado por Android-control remoto de TV-botones-reloj

¡Hola!Primer instructivo...Todos los días en la mañana abro el ciego en 8:00 y apague @ 7:00, así que he decidido automatizar todo el procedimiento.usar un Arduino pro mini 5v, codificador de posición actual, RTC reloj de tiempo, un módulo bluetooth,
Sensor ultrasonido HC-SR04 del movimiento de GoPro controlado por arduino

Sensor ultrasonido HC-SR04 del movimiento de GoPro controlado por arduino

Gopro activado por movimiento, el sensor de ultrasonidos mover el servo cuando algo aparece cerca del sensor, puede ser programado para tomar fotografías o video, y también puede programarse que deje de tomar fotos cuando no hay ningún movimiento en
StrobeDuino - lámpara del estroboscópico/RGB controlado por ordenador

StrobeDuino - lámpara del estroboscópico/RGB controlado por ordenador

después de experimentar con Arduino y procesamiento de comunicación serial que quería hacer algo fresco. Tuve algunos LED RGB ahí así que pensé en hacer algo con ellos. Terminé con una lámpara del estroboscópico/controlada por un esquema de procesami
Arduino Uno controlado por semáforo (estilo norteamericano)

Arduino Uno controlado por semáforo (estilo norteamericano)

proyecto el diario: hacer modelo semáforo con arduino uno.compré el arduino hace sólo unos días, y soy totalmente nuevo en él y estaba aburrido, así que pensé trataría de mi mano una programación y quería un conjunto de luces de tráficoasí que hice e
Controlado por Twitter alimentador del animal doméstico

Controlado por Twitter alimentador del animal doméstico

Un gran proyecto para los dueños de mascotas ocupados. Este alimentador del animal doméstico controlado por Twitter automáticamente distribuye alimentos en respuesta a la actividad en su cuenta de Twitter. El proyecto es controlado por un Arduino y e
Generador de forma de onda de Arduino controlado por iOS

Generador de forma de onda de Arduino controlado por iOS

Este generador se basa en el trabajo de Amanda Ghassaei. Generadores de forma de onda (o generadores de funciones) se utilizan para probar y depurar circuitos. por ejemplo, respuesta de frecuencia de amp op o sensores. Este generador es alimentado po
El 4 x 4 x 4 cubo del LED (Arduino)

El 4 x 4 x 4 cubo del LED (Arduino)

en este instructable le mostraré cómo hacer un 4 x 4 x 4 cubo del LED que será controlado por un Arduino Demulionove. ahora sí que podríamos decir"que Arduino tiene sólo 14 pines I/O bien también los pines analógicos 6 puede utilizarse como pernos de
Coche del RC con dos Arduinos controlado por ordenador

Coche del RC con dos Arduinos controlado por ordenador

piezas necesarias: este proyecto requiere de dos placas de Arduino que pueden ser adquiridos en http://www.adafruit.com/category/17Este proyecto utiliza dos placas compatibles de Arduino Uno.Se necesitará un L293D u otro chip de controlador de Motor
Controlado por Arduino lobo cola

Controlado por Arduino lobo cola

saludos, o mejor dicho, "Aaaaaooooooooooooh"! Complace en hacer su entusiasta compañero lobo de acquaintence. Tienes un espíritu lobo interior que es por lo que deseoso de darse a conocer que han venido a aprender a hacer tu cola de lobo animatr
Controlado por Arduino Bluetooth-bot

Controlado por Arduino Bluetooth-bot

este instructable le mostrará cómo convertir un viejo coche de R/C del juguete de la tienda ($1,50) en un robot controlado por bluetooth. Para hacer la conversión, usted necesitará un Arduino (cualquier tipo), un L298N 2 amp motor-controlador doble (
Mente-controlado por semáforo utilizando Arduino y MindFlex

Mente-controlado por semáforo utilizando Arduino y MindFlex

Hola a todos, este es mi primer instructable. Hoy voy a mostrar cómo hacer un simple semáforo controlado por sus ondas cerebrales mediante el juguete MindFlex del EEG. Este es un proyecto muy simple y básico, pero los usos del MindFlex Hack son mucho
Android + Arduino + bluetooth controlado RC juguete

Android + Arduino + bluetooth controlado RC juguete

Hola aficionados a la tecnología esto es ma primer proyecto usando Arduino.This es un proyecto simple. Agradezco a otros miembros instructable para resolver cuestiones de ma.Este juguete puede ser controlado mediante mando otro utilizando el aceleróm
El Hexachord, un instrumento Musical controlado por Arduino

El Hexachord, un instrumento Musical controlado por Arduino

El año pasado, con la fecha límite de la zona de Bahía Maker Faire, he creado un nuevo instrumento llamado el Hexachord. Era un montón de diversión, un gran éxito, y he tenido la oportunidad de hacer una serie de conversaciones sobre ello. El desafío
Lámpara de sobremesa - con caja de relé controlado por Arduino Bluetooth

Lámpara de sobremesa - con caja de relé controlado por Arduino Bluetooth

Hoy voy a mostrar cómo construir tu propia lámpara de escritorio controlado Bluetooth con arduino uno.Para este proyecto tienes que construir el ralay de caja que se puede encontrar aquí:(Nota: si no desea construir una caja se puede usar un módulo d