Objektet spårning robot (5 / 8 steg)
Steg 5: Program för arduino
Arduino kod är mycket grundläggande. Det blir data från serial och ändra det till siffror.
Sträng bluetoothRead, Str_x, Str_y, Str_p;
int x;
int y;
int poäng;
int längd;
int pwmMotorA = 11;
int pwmMotorB = 10;
int lanserar = 8.
int BackA = 9.
int ForwardB = 6;
int BackB = 7.
void setup() {
Serial.BEGIN(9600);
pinMode (pwmMotorA, produktionen);
pinMode (lanserar, OUTPUT);
pinMode (BackA, OUTPUT);
pinMode (pwmMotorA, produktionen);
pinMode (ForwardB, OUTPUT);
pinMode (BackB, OUTPUT);
analogWrite (pwmMotorA, 140);
analogWrite (pwmMotorB, 140);
}
void loop() {
int jag = 0;
char commandbuffer [200].
IF(Serial.available()) {
Delay(10);
medan (Serial.available() & & jag < 199) {
commandbuffer [i ++] = Serial.read();
}
commandbuffer [i ++] = '\0';
bluetoothRead = (char *) commandbuffer;
längd = bluetoothRead.length();
om (bluetoothRead.substring (0, 1).equals("x")) {
int jag = 1;
medan (bluetoothRead.substring (i, i + 1)! = ("y")) {
i ++;
}
Str_x = bluetoothRead.substring (1 i);
x = Str_x.toInt();
Str_y = bluetoothRead.substring (jag + 1, längd -1);
y = Str_y.toInt();
Str_p = bluetoothRead.substring (längd - 1, längd).
poäng = Str_p.toInt();
Jag = 1;
Stop();
IF(x < 40) {
Left();
}
IF(x > 140) {
Right();
}
om (x < 140 & & x > 40) {
IF(Points == 1) {
Forward();
}
IF(Points == 0) {
Stop();
}
IF(Points == 2) {
Back();
}
}
}
}
}
void Left() {
digitalWrite (lanserar, låg);
digitalWrite (BackA, hög);
digitalWrite (ForwardB, hög);
digitalWrite (BackB, låg);
}
void Right() {
digitalWrite (lanserar, hög);
digitalWrite (BackA, låg);
digitalWrite (ForwardB, låg);
digitalWrite (BackB, hög);
}
void Forward() {
digitalWrite (lanserar, hög);
digitalWrite (BackA, låg);
digitalWrite (ForwardB, hög);
digitalWrite (BackB, låg);
}
void Back() {
digitalWrite (lanserar, låg);
digitalWrite (BackA, hög);
digitalWrite (ForwardB, låg);
digitalWrite (BackB, hög);
}
void Stop() {
digitalWrite (lanserar, låg);
digitalWrite (BackA, låg);
digitalWrite (ForwardB, låg);
digitalWrite (BackB, låg);
}