Reverse Engineering = Uzzors2k = blåttBilen Android App. Amarino grejer också. (1 / 3 steg)
Steg 1: Amarino
Jag använder en rotade HTC inspire.
gå till http://www.amarino-toolkit.net/index.php/download.html för mer info.
Jag experimenterade med switch så att försöka få snabbare svarstider. göra vad någonsin du vill. Det brukade vara en if sats där.
Jag ändrade faktiskt någons kod på Internet, så vissa saker verkar godtycklig. (Jag hoppas jag inte använder ordet fel..)
Du kommer att behöva ladda ner det Amarino biblioteket för Arduino IDE av deras hemsida.
#include < MeetAndroid.h >
#include < Servo.h >
MeetAndroid meetAndroid;
Servo myservo; styr styrningen
Servomotor; kontroller den för / rev motor
void setup()
{
Serial.BEGIN(9600); standard överföringshastigheten för bt modul
meetAndroid.registerFunction (phoneorient, "A"); använda händelse A i amarino
myservo.attach(9); servo
motor.attach(8); framåt/bakåt motor
}
void loop()
{
meetAndroid.receive(); Du måste hålla detta i din loop() att ta emot händelser
}
void phoneorient (byte flagga, byte numOfValues)
{
Telefon orientering Controller
int värden [] = {0,0,0}.
meetAndroid.getIntValues(values);
Du måste hålla telefonen i landskapet följande orientering.
dubbel x = värden [1]. lagra x som en dubbel (länge decimaltal)
int y = värden [2].
int z = värden [3].
x = (-x); min styrning återfördes, quick fix
om (x > 2)
{
myservo.write (105 + (x-2) * 2,5); värden som bestämts genom trial and error för min bil
}
annars om (x < -2)
{
myservo.write (105 + (x + 2) * 3.571); unikt för min bil
}
annat
{
myservo.write(105); unikt centrum styrplats
}
/ * om (y > = 7)
{
motor.write(180);
motor.write (90 + 25*(y-7));
} */
Switch (y) //tried att använda en switch-sats så att motorn var snabbare, omvänd är lite glitchy rekommenderar jag att använda om uttalande / / iallafall. Om du använder om, ändra y till en float/dubbel istället för int.
{
mål 9:
motor.write(180);
bryta;
mål 8:
motor.write(150);
bryta;
fall 7:
motor.write(120);
bryta;
fall 6:
fall 5:
fall 4:
fall 3:
fall 2:
fall 1:
fall 0:
motor.write(90);
bryta;
fall -1:
fall -2:
mål -3:
fall -4:
fall -5:
mål -6:
fall -7:
fall -8:
fall -9:
motor.write(30);
bryta;
}
/ * annars om (y < 1)
{
motor.write(90-(y-1) *);
motor.write(30);
}
annat
{
motor.write(90);
}*/
}