Inhaltsverzeichnis:
- Schritt 1: Werkzeuge & Materialien
- Schritt 2: Hardware-Montage
- Schritt 3: Elektrische Anschlüsse
- Schritt 4: Arduino programmieren
- Schritt 5: Testen (Video)
Video: ROADRUNNER - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Roadrunner ist ein kleines automatisiertes Fahrzeug, das die Funktion hat, Getränkedosen zu den durstigen Benutzern zu transportieren.
Wie es funktioniert? Eine Dose wird auf den oberen Boden des Fahrzeugs gestellt und das Gewicht der Dose löst einen kleinen Knopf aus, der dem Transporteur mitteilt, dass er einsatzbereit ist. Um sich selbst zu orientieren, folgt Roadrunner einem Weg auf dem Boden in Form einer schwarzen Linie, die anzeigt, wohin er gehen soll, und dank der Verwendung von Fotosensoren kann er erkennen, wenn er aus dem Weg geht, und seine Richtung korrigieren, um auf diese Weise immer in der Spur zu bleiben. Sobald das Fahrzeug beim Benutzer ankommt, holt es die Getränkedose ab und macht den kleinen Transportstopp an derselben Stelle. Er wird seinen Marsch nicht wiederholen, bis der Benutzer die Dose wieder darauf setzt, um zum Ausgangspunkt zurückzukehren und seine Arbeit zu beenden.
Schritt 1: Werkzeuge & Materialien
Schritt 2: Hardware-Montage
1. KÖRPER
Für die Karosserie haben wir eine Aluminiumplatte verwendet, die wir in die gewünschte Form geschnitten und gebogen haben. Wir haben auch alle Löcher gemacht, die für die Schrauben benötigt werden.
2. RÄDER
Wir haben 2 Räder aus einem Mecano-Spiel verwendet, die perfekt zu unserem Roboter passen. Die Servos gehen unter die mit Hilfe von Schrauben verbundene Platte. Für das Vorderrad haben wir ein "Freilaufrad" verwendet, damit es problemlos in jede Richtung fahren kann.
3. FOTOSENSOREN
Für die RDL-Photosensoren haben wir eine Platine verwendet und die Schaltung darauf geschweißt, sie enthält einen Widerstand, den LDR, ein Plus, ein Minus und ein Signal.
4. ARDUINO-BOARD
Wir befestigten das Arduino-Board mit Schrauben an der Platte. Dann haben wir einfach die gesamte Schaltung daran angeschlossen. Zur Versorgung des Boards haben wir 2 9V-Batterien verwendet, die wir zusammengeführt und in den Arduino gesteckt haben.
5. OBERE PLATTE
Für die obere Platte haben wir eine Laserschneidmaschine zum Schneiden von PMMA verwendet. Wir haben diese Form mit AutoCad entworfen. Es besteht aus einer großen Platte, 3 runden Ringen und einem runden Stück, das in die Ringe passt. Wir haben der Platte Platz gegeben, damit wir einen Knopf anbringen konnten.
Schritt 3: Elektrische Anschlüsse
1. Servomotoren anschließen:
Servomotoren bestehen aus drei Kabeln; eine gelb oder orange für Signal, rot für Leistung (Vcc) und schwarz oder braun für Masse (GND). Der rote und der braune werden an den entsprechenden Pins des Arduino (5V und GND) befestigt. Ein Servo ist mit PWM-Pin 10 und das andere mit PWM-Pin 11 verbunden.
2. Verbindungstaste:
Etwas eigenartig funktionieren die elektronischen Tasten; erlauben, die Spannung diagonal über die Pins zu leiten, dh wenn wir vier Pins haben, müssen wir den Eingang und den Ausgang nur mit zwei Pins verbinden, 1-4 oder 2-3, um zu funktionieren. Wenn wir beispielsweise die Pins 1-4 wählen, verbinden wir die Masse (GND) mit Pin 4, und der Ausgang wird mit dem PWM 9-Pin verbunden und wiederum zusammen mit einem Widerstand von 1 kOhm mit 5 V verbunden (Vcc).
3. Fotosensoren anschließen:
Um die Fotosensoren anzuschließen, müssen wir eines der Beine direkt an die Vcc-Versorgung legen und das andere gleichzeitig an einen analogen Pin (in diesem Fall an die Pins A0 und A1) und an die Masse GND zusammen mit ein Widerstand von 1kOhm.
Notiz:
Sie können kleine Stecker an die Drähte löten, wenn die Drähte nicht direkt in das Arduino passen, oder ein Protoboard verwenden, um die verschiedenen Verbindungen zu erleichtern. In diesem Projekt haben wir Verbindungsstreifen für verschiedene Fugen verwendet.
Schritt 4: Arduino programmieren
CODE
#include Servo myservoL;
Servo myservoR;
int inPin = 7;
int buttonVal = 1;
Leere Einrichtung () {
//SERVOMOTOR
myservoL.attach(10);
myservoR.attach(11);
Serial.begin (9600); }
Leere Schleife () {
int LDR_L = analogRead(A2);
int LDR_R = analogRead(A1);
buttonVal = digitalRead (inPin);
// LINKS PACKEN
if (LDR_L > 590 && buttonVal == 0) {
myservoL.write(180);
//Seriell.println (LDR_L); }
anders {
myservoL.write (92);
//Seriell.println (LDR_L);
}
// RECHTS EINPACKEN
if (LDR_R > 750 && buttonVal == 0) {
myservoR.write(-270);
//Seriell.println (LDR_R); }
anders {
myservoR.write (92);
//Seriell.println (LDR_R); }
}