Eğitimler
RobotRunawayRobot
Robotunuz duvarlara çarpıyor mu? Bu sorunu çabucak çözer. Ultrasonik bir telemetre takarak robot, engellere çok yakın olup olmadığını öğrenebilir ve çarpışmayı önlemek için dönebilir.
Gerekli Donanım
- Arduino Robotu
- ultrasonik telemetre
- Ultrasonik sensörü takmak için kablo
Talimat
- Ultrasonik ranger'ı TK1'e bağlayın
- Sensörü robotun önüne sabitleyin
- Örneği yükleyin, USB'yi çıkarın ve gücü açın
- Robotu yere koyun
- Robot, önündeki engellerden kaçınarak hareket edecek
- Algılama aralığını değiştirmek isterseniz, aşağıdaki kodda @@ satırını bulun (getDistance () <20) **, 20 burada 20 cm anlamına gelir; diğer hassasiyetleri denemek için bunu başka bir değere değiştirin.
- Robot hızını da değiştirebilir, bunun nasıl yapılacağına dair bir ipucu için motorWrite () öğesine bakabilirsiniz.
Denemek
Kaçak robot
Kod
/* Runaway Robot
Play tag with your robot! With an ultrasonic
distance sensor, it's capable of detecting and avoiding
obstacles, never bumping into walls again!
You'll need to attach an untrasonic range finder to M1.
Circuit:
* Arduino Robot
* US range finder like Maxbotix EZ10, with analog output
created 1 May 2013
by X. Yang
modified 12 May 2013
by D. Cuartielles
This example is in the public domain
*/
// include the robot library
#include <ArduinoRobot.h>
#include <Wire.h>
int sensorPin = M1; // pin is used by the sensor
void setup() {
// initialize the Robot, SD card, and display
Serial.begin(9600);
Robot.begin();
Robot.beginTFT();
Robot.beginSD();
Robot.displayLogos();
// draw a face on the LCD screen
setFace(true);
}
void loop() {
// If the robot is blocked, turn until free
while (getDistance() < 40) { // If an obstacle is less than 20cm away
setFace(false); //shows an unhappy face
Robot.motorsStop(); // stop the motors
delay(1000); // wait for a moment
Robot.turn(90); // turn to the right and try again
setFace(true); // happy face
}
// if there are no objects in the way, keep moving
Robot.motorsWrite(255, 255);
delay(100);
}
// return the distance in cm
float getDistance() {
// read the value from the sensor
int sensorValue = Robot.analogRead(sensorPin);
//Convert the sensor input to cm.
float distance_cm = sensorValue * 1.27;
return distance_cm;
}
// make a happy or sad face
void setFace(bool onOff) {
if (onOff) {
// if true show a happy face
Robot.background(0, 0, 255);
Robot.setCursor(44, 60);
Robot.stroke(0, 255, 0);
Robot.setTextSize(4);
Robot.print(":)");
} else {
// if false show an upset face
Robot.background(255, 0, 0);
Robot.setCursor(44, 60);
Robot.stroke(0, 255, 0);
Robot.setTextSize(4);
Robot.print("X(");
}
}
Play tag with your robot! With an ultrasonic
distance sensor, it's capable of detecting and avoiding
obstacles, never bumping into walls again!
You'll need to attach an untrasonic range finder to M1.
Circuit:
* Arduino Robot
* US range finder like Maxbotix EZ10, with analog output
created 1 May 2013
by X. Yang
modified 12 May 2013
by D. Cuartielles
This example is in the public domain
*/
// include the robot library
#include <ArduinoRobot.h>
#include <Wire.h>
int sensorPin = M1; // pin is used by the sensor
void setup() {
// initialize the Robot, SD card, and display
Serial.begin(9600);
Robot.begin();
Robot.beginTFT();
Robot.beginSD();
Robot.displayLogos();
// draw a face on the LCD screen
setFace(true);
}
void loop() {
// If the robot is blocked, turn until free
while (getDistance() < 40) { // If an obstacle is less than 20cm away
setFace(false); //shows an unhappy face
Robot.motorsStop(); // stop the motors
delay(1000); // wait for a moment
Robot.turn(90); // turn to the right and try again
setFace(true); // happy face
}
// if there are no objects in the way, keep moving
Robot.motorsWrite(255, 255);
delay(100);
}
// return the distance in cm
float getDistance() {
// read the value from the sensor
int sensorValue = Robot.analogRead(sensorPin);
//Convert the sensor input to cm.
float distance_cm = sensorValue * 1.27;
return distance_cm;
}
// make a happy or sad face
void setFace(bool onOff) {
if (onOff) {
// if true show a happy face
Robot.background(0, 0, 255);
Robot.setCursor(44, 60);
Robot.stroke(0, 255, 0);
Robot.setTextSize(4);
Robot.print(":)");
} else {
// if false show an upset face
Robot.background(255, 0, 0);
Robot.setCursor(44, 60);
Robot.stroke(0, 255, 0);
Robot.setTextSize(4);
Robot.print("X(");
}
}
[Kodu Al]
See Also
- begin()
- motorsWrite()
- turn()