He estado intentando usar esta serie para la biblioteca de Android ahora, pero no puedo hacer que funcione. Estoy tratando de ejecutar este pequeño programa en Android:
// MouseLib.ino
#include "tracker.h"
PositionTracker tracker(6,5);
void setup() {
Serial.begin(115200);
tracker.init();
}
void loop() {
Serial.println("?");
delay(20);
}
Donde el rastreador es el siguiente:
#include "Arduino.h"
#include "ps2.h"
#include "tracker.h"
PositionTracker::PositionTracker(int _clkPin, int _dPin){
// x = y = ldX = ldY = lX = lY = 0;
clkPin = _clkPin;
dPin = _dPin;
sensor = new PS2(_clkPin, _dPin);
}
void PositionTracker::init(){
sensor->write(0xff); // reset
sensor->read(); // ack byte
sensor->read(); // blank */
sensor->read(); // blank */
sensor->write(0xf0); // remote mode
sensor->read(); // ack
delayMicroseconds(100);
}
El código funciona bien cuando conecto Arduino a la PC, pero cuando lo conecto a un dispositivo Android, simplemente no funciona. Si comento la línea "tracker.init ()", funciona bien para Android. Si uso el ejemplo de la biblioteca ps2, también funciona bien. Ah, y estoy usando la aplicación de ejemplo para la biblioteca en serie en un Moto G. ¿Alguna idea?
Enlaces para las bibliotecas:
EDIT
Inmediatamente después de publicar esto, encontré el problema: estaba buscando en el sitio web incorrecto la biblioteca. La respuesta ya fue publicada en su wiki.
Desde la wiki de la biblioteca (no se puede publicar el enlace, ya que tengo poca reputación):
Algunos Arduinos usan la línea DTR para determinar la preparación del canal serie. En su código de Android, llame a
setDTR(true);