Paso 2: Parte2: comunicación serial
piezas necesarias: dispositivo android (API level 17 hacia adelante), cable de OTGResisten bastante soy, comprar un bluetooth shield para arduino para la comunicación. Además, estoy utilizando un teléfono con android corriendo android 4.3 (nivel de API 19). En esta particular versión, soporta USB conexión directa desde un teclado o ratón el teléfono android a través de microUSB o el cable OTG (USB typeA hembra a microUSB macho). Es mucho más rentable para mí de usar OTG que el escudo de bluetooth.
Un vistazo rápido a la comunidad opensource, tropiezo con este github https://github.com/dtbaker/android-arduino-usb-se... creo que era bifurcada de https://github.com/dtbaker/android-arduino-usb-se... Muchas gracias a los contribuidores de código abierto por permitirme probar rápidamente código de serie de android <> – arduino USB. Sólo un punto de cuenta, la tasa de baudios para el android es 115200, para que arduino debe configurar serial en la misma velocidad en baudios.
combina la parte 1 y 2, he ideado un plan para mi kit de digitalización 3D. Vuelta al plato para 15degrees de Arduino, enviar caracteres ASCII a dispositivo android para tomar una fotografía
El código de arduino está aquí
#include <Servo.h> Servo myservo; int buttonPin = 3; int buttonState = 0; void setup() { pinMode(buttonPin, INPUT); Serial.begin(115200); //myservo.attach(9); // myservo.writeMicroseconds(1500); // set servo to mid-point } void loop() { moveServo(); buttonState = digitalRead(buttonPin); while(buttonState!=HIGH){ //infinite loop untill buton press to restart cycle } }//end loop void sendSerial(){ Serial.print("AAA");//tell android to take picture delay(2000);//guesstimate time for picture taken }//end sendSerial void moveServo(){ for(int i = 0; i < 31; i ++){ myservo.attach(9); scheduleStop(); delay(10000);//let camera complete picture taking sendSerial(); }//end for }//end moveServo void scheduleStop(){ myservo.writeMicroseconds(1000);//run delay(100);//100msec is about 15deg myservo.detach();//stop }//end scheduleStop
Otro punto a destacar: imprimir los datos serie recibidos en android para probar la hipótesis de que va a ser el mismo según recibido en hyper terminal. He aprendido la manera dura.