Pipe-Bot - en smart arduino bluetooth robot (9 / 11 steg)
Steg 9: Limma dem tillsammans och programmera arduino
Anslut trådarna till motor sheild som visas i figuren. Nu finns det bara en kabel gratis, som används för anslutning av lysdioderna. Sedan limma den motor controller och arduino Shield tillsammans med varmt lim pistol. I den sista bilden jag har visat att längdhopp kablar anslutna till bluetooth är modul omständligt på blutooth modul ombord för att spara utrymme.
I nästa steg kommer vi att sätta in de elektroniska delarna i PVC-rör, det vi behöver programmera den.
Jag "använder FTDI parallellt med serial converter program arduino pro, om du inte har denna omvandlare. Gå igenom detta instructable att programmera det med hjälp av arduino uno.
Här är programmet, ladda ner den och ladda upp den till arduino pro mini. Känn dig fri att redigera det ;)
Pipe Bot
Konstanter och variabel
int motor1Pin1 = 5; stift 2 på L293D IC
int motor1Pin2 = 6; stift 7 på L293D IC
int motor2Pin1 = 8; stift 10 på L293D IC
int motor2Pin2 = 7. stift 15 på L293D IC
char dataIn = s ';
char avgörande;
röding det;
int vel = 0; Bluetooth grejer
int whitelight = 13.
int redlight = 10;
void setup() {
Serial.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps
ställer in stiften som resultat:
pinMode (motor1Pin1, produktionen);
pinMode (motor1Pin2, produktionen);
pinMode (motor2Pin1, produktionen);
pinMode (motor2Pin2, produktionen);
pinMode (whitelight, produktionen);
pinMode (redlight, produktionen);
Initalization meddelanden
Serial.println ("Arduin pipe bot");
digitalWrite (whitelight, låg);
digitalWrite (redlight, låg);
}
void loop() {
det = check(); Ring check() subrotine för att få följetong koden
följetong koden analys
byta (det) {
ärende 'F': / / F, gå framåt
digitalWrite (motor1Pin1, hög);
digitalWrite (motor1Pin2, låg);
digitalWrite (motor2Pin1, låg);
digitalWrite (motor2Pin2, hög);
det = check();
bryta;
"B" i mål: / / B, flytta tillbaka
digitalWrite (motor1Pin1, låg);
digitalWrite (motor1Pin2, hög);
digitalWrite (motor2Pin1, hög);
digitalWrite (motor2Pin2, låg);
det = check();
bryta;
ärende 'L': / / L, flytta hjul kvar
digitalWrite (motor1Pin1, hög);
digitalWrite (motor1Pin2, låg);
digitalWrite (motor2Pin1, låg);
digitalWrite (motor2Pin2, låg);
det = check();
bryta;
"R" i mål: / / R, flytta hjulen rätt
digitalWrite (motor1Pin1, låg);
digitalWrite (motor1Pin2, låg);
digitalWrite (motor2Pin1, låg);
digitalWrite (motor2Pin2, hög);
det = check();
bryta;
fallet ": / / S, stopp
digitalWrite (motor1Pin1, låg);
digitalWrite (motor1Pin2, låg);
digitalWrite (motor2Pin1, låg);
digitalWrite (motor2Pin2, låg);
det = check();
bryta;
ärende 'U': / / V, rött ljus på
Serial.println ("rött ljus på");
digitalWrite (redlight, hög);
bryta;
fallet "u": / / v, rött ljus av
Serial.println ("Red Light Off");
digitalWrite (redlight, låg);
bryta;
fallet "W": / / W, främre lampor på
Serial.println ("vitt ljus på");
digitalWrite (whitelight, hög);
bryta;
fallet "w": / / w, främre belysning av
Serial.println ("vitt ljus Off");
digitalWrite (whitelight, låg);
bryta;
}
}
få bluetooth koden från serieporten
int check() {
om (Serial.available() > 0) {/ / om det finns giltiga data i den seriella porten
dataIn = Serial.read(); / / lagrar data i en varialbe
Kontrollera koden
om (dataIn == "F") {//Forward
Determinant = "F";
}
annars om (dataIn == 'B') {//Backward
Determinant = "B";
}
annars om (dataIn == "L") {//Left
Determinant = 'L';
}
annars om (dataIn == "R") {//Right
Determinant = "R";
}
annars om (dataIn == s ') {//Stop
Determinant = s ';
}
annars om (dataIn == 'U') {//Red lampor på
Determinant = 'U';
}
annars om (dataIn == 'u') {//Red Lights Off
Determinant = 'u';
}
annars om (dataIn == "W") {//White lampor på
Determinant = 'W';
}
annars om (dataIn == "w") {//White Lights Off
Determinant = 'w';
}
returnera avgörande;
}
}