Eğitimler
RobotLineFollowing
Büyük bir kağıt alın (veya büyük bir parça yapmak için daha küçük parçaları birbirine bantlayın) ve üzerine kalın bir siyah işaret kullanarak bir şekil çizin. Bu şekil yarış pistiniz olacak.
Robotu çizginin üstüne koyun ve açın. Çizgiyi tespit etmek için zemini tarar. Çizgiyi bulduğunda, yolu izlemeye başlar.
Hangisini daha hızlı hale getirdiğini görmek için diğer robotlarla yarışın!
Gerekli Donanım
- Arduino Robotu
- Büyük beyaz kağıt parçası
- Kalın siyah işaretleyici
- bant
Talimat
- Parkuru hazırlayın. Soem beyaz kağıdına kalın bir çizgi çizin, çizginin uçlarının bir arada olduğundan emin olun. Biri yeterince büyük değilse birden fazla kağıt kullanın. Çizgi yaklaşık 3 cm (1 inç) genişliğinde olmalıdır.
- Robotun kağıdın kaymasına neden olmaması için kağıdı yere bantlayın. Yüzey açık renkte olmalıdır.
- Örneği yükleyin, USB'yi çıkarın ve gücü açın.
- Robotu çizginin üzerine gelecek şekilde piste yerleştirin.
- Başlangıç ekranından sonra robot kendini kalibre edecektir. Hattı tespit ederek birkaç kez sallanacak.
- Robot çizgiyi takip etmeye başlayacak. Her şey yolunda giderse, sürekli pistin etrafında dönecektir. Robot çizgiden çıkarsa , nasıl kalibre edileceğiyle ilgili ayrıntılar için lineFollowConfig () öğesine bakın.
Denemek
Kendi yarış pistinizi çizin
Robotun yarışı koşmasına izin ver!
Kod
This sketch demonstrates the line following capabilities
of the Arduino Robot. On the floor, place some black
electrical tape along the path you wish the robot to follow.
To indicate a stopping point, place another piece of tape
perpendicular to the path.
Circuit:
* Arduino Robot
created 1 May 2013
by X. Yang
modified 12 May 2013
by D. Cuartielles
This example is in the public domain
*/
#include <ArduinoRobot.h> // include the robot library
#include <Wire.h>
long timerOrigin; // used for counting elapsed time
void setup() {
// initialize the Robot, SD card, display, and speaker
Robot.begin();
Robot.beginTFT();
Robot.beginSD();
Robot.beginSpeaker();
// show the logots on the TFT screen
Robot.displayLogos();
Robot.drawBMP("lf.bmp", 0, 0); // display background image
Robot.playFile("chase.sqm"); // play a song from the SD card
// add the instructions
Robot.text("Line Following\n\n place the robot on\n the track and \n see it run", 5, 5);
Robot.text("Press the middle\n button to start...", 5, 61);
Robot.waitContinue();
// These are some general values that work for line following
// uncomment one or the other to see the different behaviors of the robot
//Robot.lineFollowConfig(14, 9, 50, 10);
Robot.lineFollowConfig(11, 7, 60, 5);
//set the motor board into line-follow mode
Robot.setMode(MODE_LINE_FOLLOW);
// start
Robot.fill(255, 255, 255);
Robot.stroke(255, 255, 255);
Robot.rect(0, 0, 128, 80); // erase the previous text
Robot.stroke(0, 0, 0);
Robot.text("Start", 5, 5);
Robot.stroke(0, 0, 0); // choose color for the text
Robot.text("Time passed:", 5, 21); // write some text to the screen
timerOrigin = millis(); // keep track of the elapsed time
while (!Robot.isActionDone()) { //wait for the finish signal
Robot.debugPrint(millis() - timerOrigin, 5, 29); // show how much time has passed
}
Robot.stroke(0, 0, 0);
Robot.text("Done!", 5, 45);
}
void loop() {
//nothing here, the program only runs once. Reset the robot
//to do it again!
}
Nasıl çalışır
Robot, motor kartının altında ışığın nereye yansıdığını algılayan beş kızılötesi sensöre sahiptir. Bu bilgiler, düz devam edip etmeyeceğinize veya dönüş hızını değiştirmek için kullanılır.
Durduruluyor
Robot, beş sensörün tümünü aynı anda kaplayan siyah bir şekil algıladığında duracaktır. Robotun eylemleri durdurması ve gerçekleştirmesi için parçalar oluşturmak üzere bu özelliği kullanın.