Arduino + coche + Android = RC (2 / 5 paso)

Paso 2: Programar tu Arduino UNO

Ahora su lista para ir pero es necesario configurar su arduino para realizar trucos

En este caso he utilizado una aplicación llamada Bluetooth comandante disponible en google play. El bosquejo de la demostración está disponible en la columna Descripción.

Otra aplicación llamada Bluetooth Android google play es muy fácil de usar como se puede utilizar directamente la única diferencia es que el primero puede controlar velocidad de coche. Por lo que prefiero al primero,

Descarga la aplicación y el bosquejo de la demostración

se parece a esto

 #define VERSION "\n\nAndroTest V2.0 - for V5.X App (6 button version)"// V2.0 changed to pure ASCII Communication Protocol ** not backward compatible ** // V1.4 improved communication errors handling // V1.3 renamed for publishing, posted on 09/05/2014 // V1.2 Text display ** not backward compatible ** // V1.1 Integer display // V1.0 6 buttons + 4 data char implemented// Demo setup: // Button #1 controls pin #13 LED // Button #4 toggle datafield display rate // Button #5 configured as "push" button (momentary) // Other buttons display demo message// Arduino pin#2 to TX BlueTooth module // Arduino pin#3 to RX BlueTooth module // make sure your BT board is set bps // better remove SoftSerial for PWM based projects// For Mega 2560: // remove #include "SoftwareSerial.h", SoftwareSerial mySerial(2,3); // search/replace mySerial >> Serial1 // pin#18 to RX bluetooth module, pin#19 to TX bluetooth module#include "SoftwareSerial.h"#define STX 0x02 #define ETX 0x03 #define ledPin 13 #define SLOW 750 // Datafields refresh rate (ms) #define FAST 250 // Datafields refresh rate (ms)SoftwareSerial mySerial(2,3); // BlueTooth module: pin#2=TX pin#3=RX byte cmd[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // bytes received byte buttonStatus = 0; // first Byte sent to Android device long previousMillis = 0; // will store last time Buttons status was updated long sendInterval = SLOW; // interval between Buttons status transmission (milliseconds) String displayStatus = "xxxx"; // message to Android devicevoid setup() { Serial.begin(57600); mySerial.begin(57600); // 57600 = max value for softserial pinMode(ledPin, OUTPUT); Serial.println(VERSION); while(mySerial.available()) mySerial.read(); // empty RX buffer }void loop() { if(mySerial.available()) { // data received from smartphone delay(2); cmd[0] = mySerial.read(); if(cmd[0] == STX) { int i=1; while(mySerial.available()) { delay(1); cmd[i] = mySerial.read(); if(cmd[i]>127 || i>7) break; // Communication error if((cmd[i]==ETX) && (i==2 || i==7)) break; // Button or Joystick data i++; } if (i==2) getButtonState(cmd[1]); // 3 Bytes ex: < STX "C" ETX > else if(i==7) getJoystickState(cmd); // 6 Bytes ex: < STX "200" "180" ETX > } } sendBlueToothData(); }void sendBlueToothData() { static long previousMillis = 0; long currentMillis = millis(); if(currentMillis - previousMillis > sendInterval) { // send data back to smartphone previousMillis = currentMillis; // Data frame transmitted back from Arduino to Android device: // < 0X02 Buttons state 0X01 DataField#1 0x04 DataField#2 0x05 DataField#3 0x03 > // < 0X02 "01011" 0X01 "120.00" 0x04 "-4500" 0x05 "Motor enabled" 0x03 > // example mySerial.print((char)STX); // Start of Transmission mySerial.print(getButtonStatusString()); mySerial.print((char)0x1); // buttons status feedback mySerial.print(GetdataInt1()); mySerial.print((char)0x4); // datafield #1 mySerial.print(GetdataFloat2()); mySerial.print((char)0x5); // datafield #2 mySerial.print(displayStatus); // datafield #3 mySerial.print((char)ETX); // End of Transmission } }String getButtonStatusString() { String bStatus = ""; for(int i=0; i<6; i++) { if(buttonStatus & (B100000 >>i)) bStatus += "1"; else bStatus += "0"; } return bStatus; }int GetdataInt1() { // Data dummy values sent to Android device for demo purpose static int i= -30; // Replace with your own code i ++; if(i >0) i = -30; return i; }float GetdataFloat2() { // Data dummy values sent to Android device for demo purpose static float i=50; // Replace with your own code i-=.5; if(i <-50) i = 50; return i; }void getJoystickState(byte data[8]) { int joyX = (data[1]-48)*100 + (data[2]-48)*10 + (data[3]-48); // obtain the Int from the ASCII representation int joyY = (data[4]-48)*100 + (data[5]-48)*10 + (data[6]-48); joyX = joyX - 200; // Offset to avoid joyY = joyY - 200; // transmitting negative numbers if(joyX<-100 || joyX>100 || joyY<-100 || joyY>100) return; // commmunication error // Your code here ... Serial.print("Joystick position: "); Serial.print(joyX); Serial.print(", "); Serial.println(joyY); }void getButtonState(int bStatus) { switch (bStatus) { // ----------------- BUTTON #1 ----------------------- case 'A': buttonStatus |= B000001; // ON Serial.println("\n** Button_1: ON **"); // your code... displayStatus = "LED "; Serial.println(displayStatus); digitalWrite(ledPin, HIGH); break; case 'B': buttonStatus &= B111110; // OFF Serial.println("\n** Button_1: OFF **"); // your code... displayStatus = "LED "; Serial.println(displayStatus); digitalWrite(ledPin, LOW); break;// ----------------- BUTTON #2 ----------------------- case 'C': buttonStatus |= B000010; // ON Serial.println("\n** Button_2: ON **"); // your code... displayStatus = "Button2 "; Serial.println(displayStatus); break; case 'D': buttonStatus &= B111101; // OFF Serial.println("\n** Button_2: OFF **"); // your code... displayStatus = "Button2 "; Serial.println(displayStatus); break;// ----------------- BUTTON #3 ----------------------- case 'E': buttonStatus |= B000100; // ON Serial.println("\n** Button_3: ON **"); // your code... displayStatus = "Motor #1 enabled"; // Demo text message Serial.println(displayStatus); break; case 'F': buttonStatus &= B111011; // OFF Serial.println("\n** Button_3: OFF **"); // your code... displayStatus = "Motor #1 stopped"; Serial.println(displayStatus); break;// ----------------- BUTTON #4 ----------------------- case 'G': buttonStatus |= B001000; // ON Serial.println("\n** Button_4: ON **"); // your code... displayStatus = "Datafield update "; Serial.println(displayStatus); sendInterval = FAST; break; case 'H': buttonStatus &= B110111; // OFF Serial.println("\n** Button_4: OFF **"); // your code... displayStatus = "Datafield update "; Serial.println(displayStatus); sendInterval = SLOW; break;// ----------------- BUTTON #5 ----------------------- case 'I': // configured as momentary button // buttonStatus |= B010000; // ON Serial.println("\n** Button_5: ++ pushed ++ **"); // your code... displayStatus = "Button5: "; break; // case 'J': // buttonStatus &= B101111; // OFF // // your code... // break;// ----------------- BUTTON #6 ----------------------- case 'K': buttonStatus |= B100000; // ON Serial.println("\n** Button_6: ON **"); // your code... displayStatus = "Button6 "; // Demo text message break; case 'L': buttonStatus &= B011111; // OFF Serial.println("\n** Button_6: OFF **"); // your code... displayStatus = "Button6 "; break; } // --------------------------------------------------------------- } 

Artículos Relacionados

Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Todos estamos preocupados por la seguridad de nuestro hogar. Mundo cada vez más inteligente y más inteligente cada día y desea controlar y asegurado lo nuestro de manera más inteligente. En este tutorial que voy a explicar cómo hacer basados en un ar
Aplicación Android para el Control del Robot utilizando HC-05 y Arduino (estudio Android)

Aplicación Android para el Control del Robot utilizando HC-05 y Arduino (estudio Android)

Hola todos, esta vez le mostrará cómo controlar el robot usando su teléfono, siga estas instrucciones cuidadosamente. En realidad, este proyecto está todavía en desarrollo.Paso 1: Qué necesitamos para robotAntes de entrar a la aplicación para android
Voz activa Arduino (Bluetooth + Android)

Voz activa Arduino (Bluetooth + Android)

Controlar tu Arduino con comandos de voz usando un smartphone Android! Antes de hacer un sistema de Domótica de voz activado, primero debemos aprender los principios básicos de la experiencia. Esta guía le permitirá comandar el Arduino usando tu telé
Arduino robot Android de control remoto

Arduino robot Android de control remoto

Hola,En este instructable me gustaría explorar la conexión entre Arduino y Android. Ambos son entorno abierto, fácil-a-programa (pues Android no tan fácil, pero bastante), y la interacción entre ellos permite la interacción de humanos a dispositivo i
Voz activa luces / Led (ARDUINO y ANDROID)

Voz activa luces / Led (ARDUINO y ANDROID)

Controla tu casa luces usando un teléfono android arduino y You ' r!!!Este es mi primer instructivo, queria controlar mi casa usando un teléfono con arduino y android.Había muchas otras opciones disponibles para mí hacerlo. pero la opción barata que
Coche Android se enciende con música

Coche Android se enciende con música

coche Android se enciende con músicaUsando un controlador desde un dispositivo led azul para tunning de coches para hacer la luz del led con la música.
Reconocimiento de voz de Arduino con Android

Reconocimiento de voz de Arduino con Android

Hola amigos!! Desde mi primer tutorial para controlar motores con Android me preguntaba ¿y si puedo controlar un robot con mi discurso, ¿no sería interesante? Así que con la ayuda del inventor de la aplicación MIT pude controlar Arduino usando Androi
ITEAD inteligente interruptor trabajar con Arduino y Android

ITEAD inteligente interruptor trabajar con Arduino y Android

ITEAD ahora ofrecen los conmutadores inteligentes que soporte táctil y control remoto, y será muy fácil de hackear y hacer que funcione con el teléfono de Arduino y Andriod. A continuación os mostramos una pequeña demo y más grata sorpresa será lanza
Arduino Bluetooth RC coche (Android controlado)

Arduino Bluetooth RC coche (Android controlado)

Hola, en este proyecto yo le mostrará cómo transformar un coche de juguete del RC a Bluetooth controlado a través de tu smartphone Android!Antes de comenzar, asegúrese de que usted tiene:Placa de Arduino unoControlador de motor L293DMódulo Bluetooth
Hackear un coche RC con Arduino y Android

Hackear un coche RC con Arduino y Android

(Si te gusta este Instructable, no olvide votar en ella (por encima de: bandera de la esquina a la derecha). está compitiendo en robótica y sensores concursos. ¡Muchas gracias! ;-)Cada vez que entra a una tienda de juguetes y ver coches de control re
Coche tanque LEGO, arduino conoce android

Coche tanque LEGO, arduino conoce android

¿Qué es?Un coche de lego controlado por el sensor de acceleremoter en un dispositivo android a través de bluetooth.¿Qué es necesitada?1. un coche de lego con dos motores, uno conduce los dos ruedas o de la pista en el lado izquierdo y el otro motor d
Hackear mi coche de RC con Arduino y Android Smart Phone

Hackear mi coche de RC con Arduino y Android Smart Phone

¿Tiene un viejo coche de juguete? Que mina hackeados utilizando Arduino y un circuito de puente H para controlar motores, usa mi teléfono Sony Z1 Android para controlar con el reciente 1Sheeld que recibí de Kickstarter.Pensé usar el sensor de girosco
Construcción de la aplicación para Android para controlar Arduino coche Smart (製作Android APP控制Arduino 智慧車)

Construcción de la aplicación para Android para controlar Arduino coche Smart (製作Android APP控制Arduino 智慧車)

Este es un ejemplo de código creado a partir de la aplicación MIT inventor2. Para mostrar cómo conectar a Andruino a través de BT Se puede modificar por sí mismo para cumplir la función que desea. Armónicamente, es realmente fácil de construir una ap
Arduino robot Android control remoto II

Arduino robot Android control remoto II

Cuando compré mi Complubot hace un año, no pensé en lo divertido que podría ser, tengo práctica con seguir Vehículo de línea, coche del cepillo, pero al leer leer el artículo en instructables relacionadas con bluethooth rc, empecé a pensar que sería