Das für den Robotwettbewerb konstruierte Fahrzeug soll mit Ultraschallsensoren ausgestattet werden, damit es Hindernisse erkennen und ihnen selbsttätig ausweichen kann.
Der Sensor muss dafür an der Fahrzeugvorderseite angebracht werden, was mit einem Breadboard und einem Arduino Nano einfacher zu lösen ist als mit einem UNO.
Weiter bietet sich an, die relativ teuren Getriebemotoren aus Metall gegen sehr viel günstigere Motoren mit Kunststoffgetriebe und -ummantelung auszutauschen. Das ist auch deshalb zu empfeheln, weil jeder Motor – trotz des geringen Preises – mit einem passenden Rad ausgeliefert wird.
Leider begnügen sich letztgenannte Motoren nicht mit den 5V und 40mA vom Arduino, was den Einsatz eines Motorentreibers nötig macht. Mehr dazu findet sich hier.
Die weiteren Ausführungen passen also zu dem linken Fahrzeug. Wer die Lösung in der Mitte besser findet, muss die entsprechenden Anschlüsse auf dem Nano nutzen:
- 2x GND jeweils für den einen und den anderen Motor
- 1x GND für den US-Sensor
- Pin 10 und 9 jeweils für den einen und den anderen Motor
- Pin 13 an „Echo“ des US-Sensors
- Pin 12 an „Trig“ des US-Sensors
- VCC muss mit 5V am Arduino verbunden werden.
In der unteren Abbildung können die oben genannten Anschlussdetails nachvollzogen werden.
Nicht dargestellt ist die 9V Batterie, die mit dem Pluspol an „Vin“ und mit dem Minuspol an „GND“ des Arduinos angeschlossen werden muss. Es ist kein Problem, den Arduino trotz angeschlossener Batterie zum Programmieren mit dem USB-Anschluss am Rechner zu verbinden.
Programmcode:
#define trigPin 12
#define echoPin 11
#define mot1 10
#define mot2 9
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(mot1, OUTPUT);
pinMode(mot2, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance < 12) {
digitalWrite(mot2, LOW);
delay(2000);
}
else {
digitalWrite(mot1, HIGH);
digitalWrite(mot2, HIGH);
}
}
Zur Übertragung des Codes zum Mikrocontroller muss das Arduino-Board über die USB-Schnittstelle mit dem Computer verbunden sein. Der obige Programmcode kann über „Copy & Paste“ von dieser Interseite in die Arduino IDE eingefügt werden.
Den Robino vor der Programmierung aufbocken, damit die Räder frei drehen können. Nach dem Übertragen des Codes setzen sich nämlich die Motoren sofort in Bewegung. Wird die Verbindung zum Computer gelöst, bleiben die Motoren stehen. Beim Anschließen des 9V-Batterieblocks laufen sie sofort wieder an.
Eine Funktionsprüfung kann so erfolgen, dass man eine Hand kurz vor den Sensor führt und darauf achtet, ob sich ein Motor abschaltet. Dann kann der erste Probelauf beginnen.
In Christians Shop gibt es Getriebemotoren, Ultraschallsensoren, Kabel und Breadboard. Holzbrettchen gibt es im heimischen Baumarkt. Mit Heißkleber lassen sich die Teile an gewünschter Stelle rasch und problemlos befestigen. Für die vorderen Abstützung sind auch andereLösungen denkbar als Tischtennisballhälften.