Femtio Dollar Box Bot (12 / 12 steg)
Steg 12: Box Bot i aktion
Här är några exempelkod för boxbot-projektet kan du komma igång och en video demonstration av vad den gör.Observera: Under att göra bot körs fick jag veta ett par saker.
1. det är faktiskt säkrare att knyta ner rutan redskap med kroken upp tråd.
2. göra säker hjulen är centrerade i videon min bot drar lite till höger och jag tror detta beror på att ha en off centrerad hjulet.
Du kan kopiera och klistra in koden nedan (jag försökte bifoga flera sätt och det inte skulle visa upp-filen.):
/*
* Enkla arduino kod
* att visa upp kapacitet
* av robot
* Kommentarer vid sidan av någon kod är
* "Om du aldrig använt arduino innan,..."
*/
Definiera datamembers
definiera en PIN-kod för photoresitor och dess tröskel
int lightPin = 0;
int tröskel = 750; //In rummet jag arbetade i 1000 var verkligen mörkt
och 525 var verkligen ljus kan du behöva spela
runt med detta värde beroende på din inställning.
Definiera och initiera motor variabler
Varvtal intervall är från 0 till 255 (Slowest till snabbaste)
Vänster Motor
int speedPin1 = 9;
int motor1APin = 4;
int motor2APin = 3;
int speed_value_motor1 = 64; kvartalet hastighet
Rätt Motor
int speedPin2 = 10;
int motor4APin = 12;
int motor3APin = 11;
int speed_value_motor2 = 64; kvartalet hastighet
första installationen innan loopen börjar
void setup() {
Serial.BEGIN(9600); Börja seriell kommunikation
Detta påverkar endast arduino
När den är ansluten till datorn
Ställa in digital stiften som utgångar för vänster och höger motorn
pinMode (speedPin1, produktionen);
pinMode (motor1APin, produktionen);
pinMode (motor2APin, produktionen);
pinMode (speedPin2, produktionen);
pinMode (motor4APin, produktionen);
pinMode (motor3APin, produktionen);
}
Detta är vad faktiskt körs
void loop() {
Serial.println(analogRead(lightPin));
IF(analogRead(lightPin) > tröskel) //Reads seriell värde om det är mörkt göra koden inom parentes nedan
{
Serial.println("Dark"); Visar bara när ansluten till PC används för teständamål
fullStop();
}
annan //Otherwise (om det inte är mörkt) göra koden inom parentes nedan
{
Serial.println("Bright"); Visar bara när ansluten till PC används för teständamål
moveForward();
}
Delay(1000);
}
den här metoden anropar lämpliga metoder att
orsaka båda motorer att rotera så
som rör sig bot framåt
void moveForward() {
leftMotorForward();
rightMotorForward();
}
Med denna metod är endast höger
motor att rotera framåt
void leftMotorForward() {
lägger motorn med den framåt
digitalWrite (motor1APin, låg);
digitalWrite (motor2APin, hög);
analogWrite (speedPin1, speed_value_motor1);
}
Med denna metod är endast vänster
motor att rotera framåt
void rightMotorForward() {
digitalWrite (motor4APin, låg);
digitalWrite (motor3APin, hög);
analogWrite (speedPin2, speed_value_motor2);
}
Den här metoden gör att båda motorer att komma till fullt stopp
void fullStop() {
stopLeftMotor();
stopRightMotor();
}
Anger hastigheten till 0 orsakar vänstra motorn att sluta snurra
void stopLeftMotor() {
analogWrite (speedPin1, 0);
}
Anger hastigheten till 0 orsakar högra motorn att sluta snurra
void stopRightMotor() {
analogWrite (speedPin2, 0);
}