Hindernisse vermeiden Roboter mit Servomotor
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Notwendige Werkzeuge und Maschinen
|
Apps und Onlinedienste
|
Über dieses Projekt
Alles über das Projekt
Ich studiere Media Arts Design an der Multimedia University in Cyberjaya Malaysia. Dies ist mein Gamma-Jahr des Studiums von Medienkunst. Interaktionsdesign ist das Thema, das den Studenten beibringt, wie man Arduino-Komponenten verwendet und wie es funktioniert. In meiner letzten Aufgabe habe ich den Roboter Hindernisvermeidung als mein eigenes Projekt ausgewählt und lerne, wie alle Komponenten funktionieren.
Schritt 1:
Bereiten Sie Ihr Roboter-Chassis vor und bauen Sie es auf. Im Inneren des Pakets befinden sich einige Komponenten, Chassis, zwei Motoren, zwei Räder, ein Vorderrad, ein Batteriehalter, einige Schrauben, Schalter und Überbrückungskabel. Foto unten:
Schritt 2:
Bevor Sie die Überbrückungsdrähte an Ihren beiden Motoren anlöten, würde ich empfehlen, alle Komponenten zu testen, um sicherzustellen, dass sie alle gut funktionieren, zum Beispiel:Beide DC-Motoren, Arduino-Platine, Motorschild, Servomotor und Ultraschallsensor. Dann beginnen wir mit dem Löten des roten und schwarzen Kabels an beiden Motoren, Beispielbild unten:
Schritt 3:
Kommen Sie zu unserem Batteriechassis und Schalterteil. Wir müssen nur die Hälfte des schwarzen Kabels vom Batteriegehäuse abschneiden und 1 Kabelseite an 1 Loch löten, ein weiteres schwarzes Kabel wird an einem anderen Loch gelötet. Unser Schalter ist fertig!
Schritt 4:
Wir müssen das Arduino-Board und das Motor Shield-Board stapeln, Motor Shield wird auf dem Arduino-Board gestapelt. Beispiel unten:
Schritt 5:
Wir werden zum Motor Shield Board übergehen. Diese Abschirmung versorgt die Motoren und den Servomotor mit Strom, die Motoren benötigen viel Strom, und diese Abschirmung kann jedem Motor bis zu 600 mA Strom zuführen. Wir müssen die DC-Motordrähte an der Motorschildplatine löten / befestigen. Wenn die Drähte Ihres Gleichstrommotors lang genug sind, um die Motorabschirmung zu erreichen, ist dies großartig. Wenn nicht, müssen Sie möglicherweise externe Überbrückungsdrähte verwenden (egal, ob männlich/weiblich Überbrückungskabel), schneiden Sie den Überbrückungsdrahtkopf ab und vergewissern Sie sich im Inneren des Kupferleitung wird angezeigt. (Sie müssen den Gummi des Überbrückungsdrahts abschneiden, damit der Kupferdraht sichtbar wird). Und Sie müssen die externen Drähte an die DC-Motordrähte löten. Beispiel:
Verbinden Sie dann das linke Motorkabel mit dem M1-Stecker der Motorabschirmung. Das rechte Motorkabel wird mit dem M3-Stecker der Motorabschirmungsplatine verbunden. Beispiel:
Schritt 6:
Dann müssen wir das rote und schwarze Kabel des Batterieschalters mit der Motorabschirmungsplatine verbinden.
Danach müssen wir die männlichen und weiblichen Überbrückungsdrähte zum Löten auf 5V, GND, Analog Pin 4 und Analog Pin 5 vorbereiten. Zuvor müssen wir die gleichen Farben der weiblichen und männlichen Überbrückungsdrähte finden und sie in zwei Hälften schneiden . Warum muss die gleiche Farbe sein? Zunächst ist für uns leicht zu erkennen, welcher Draht zu welchem Teil gehört. Zweitens wird das weiße männliche Überbrückungskabel mit dem weißen weiblichen Überbrückungskabel verlötet, das an 5V angeschlossen wird. Schwarze Farbe Männlicher Überbrückungsdraht wird mit weiblichem Überbrückungsdraht verlötet und männlicher Überbrückungsdraht wird an GND gelötet. Orangefarbener männlicher Überbrückungsdraht wird mit orangefarbenem weiblichem Überbrückungsdraht gelötet, orangefarbener männlicher Überbrückungsdraht wird an Analog Pin 5 gelötet Analoger Pin 4. Beispiel:
Schritt 7:
Sie können doppelseitiges Klebeband oder eine Heißklebepistole verwenden, um die beiden Schilde am Roboterchassis zu befestigen.
Schritt 8:Kommen Sie zum Ultraschallsensor-Teil
Von den weiblichen und männlichen Überbrückungsdrähten, die wir gerade löten, wird der weiße Überbrückungsdraht (5V) (Überbrückungsdraht für die weibliche Seite) mit dem VCC-Pin des Ultraschallsensors verbunden. Schwarzes Überbrückungskabel (GND) (Überbrückungskabel der weiblichen Seite) wird mit dem GND-Pin verbunden. Das braune Überbrückungskabel (Analog Pin 4) (Überbrückungskabel der weiblichen Seite) wird mit dem Echo-Pin verbunden. Das orangefarbene Überbrückungskabel (Analog Pin 5) (Überbrückungskabel der weiblichen Seite) wird mit dem TRIG-Pin verbunden.
Schritt 9:
Schließlich wird der Servomotor mit dem Servo_2-Steckplatz verbunden. Hinweis * (Es gibt nur wenige Arten von Servomotoren. Möglicherweise müssen Sie online nachsehen, wie sie an den Servo_2-Steckplatz angeschlossen werden). Unten ist für meine eigene Version des Servosteckplatzes.
Letzter Schritt:Code
Für diesen Roboter zur Vermeidung von Hindernissen benötigen wir 3 Bibliotheken, die Motor Shield-Bibliothek für den Motor Shield-Treiber, die neue Ping-Bibliothek für den Ultraschallsensor. Drittens ist die Arduino-IDE. Nachfolgend finden Sie die herunterladbaren Links für Bibliotheken:
Motorschild-Bibliothek
- Neue Ping-Bibliothek
Ich freue mich, dass Sie sich mein Projekt ansehen. Ich hoffe, die Anweisungen sind klar genug, damit Sie den Roboter zur Vermeidung von Hindernissen selbst befolgen und bauen können. Danke!
Video zum Testen:
Code
- Arduino-IDE
Arduino-IDE C#
Kopieren Sie den Code und fügen Sie ihn in die Arduino IDE ein und laden Sie ihn dann auf Ihr Arduino-Board hoch#include#include #include #define TRIG_PIN A4 #define ECHO_PIN A5#define MAX_DISTANCE_POSSIBLE 1000 #define MAX_SPEED 150 // #define MOTORS_CALIBRATION_OFFSET 3#define COLL_DIST 20 #define TURN_DIST COLL_DIST+10 NewPing Sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE_POSSIBLE);AF_DCMotor leftMotor(3, MOTOR12_8KHZ); AF_DCMotor rechtsMotor(1, MOTOR12_8KHZ); Servo neckControllerServoMotor;int pos =0; int maxDist =0;int maxAngle =0;int maxRight =0;int maxLeft =0;int maxFront =0;int Course =0;int curDist =0;String motorSet ="";int speedSet =0;void setup() { neckControllerServoMotor.attach(10); neckControllerServoMotor.write (90); Verzögerung (2000); checkPath(); motorSet ="FORWARD"; neckControllerServoMotor.write (90); moveForward();}void loop() { checkForward(); checkPath();}void checkPath() { int curLeft =0; int curFront =0; int curRight =0; int curDist =0; neckControllerServoMotor.write(144); Verzögerung (120); for(pos =144; pos>=36; pos-=18) { neckControllerServoMotor.write (pos); Verzögerung (90); checkForward(); curDist =readPing(); if (curDist curDist) {maxAngle =pos;} if (pos> 90 &&curDist> curLeft) { curLeft =curDist;} if (pos ==90 &&curDist> curFront) {curFront =curDist;} if (pos <90 &&curDist> curRight) {curRight =curDist;} } maxLeft =curLeft; maxRight =curRight; maxFront =curFront;}void setCourse() { if (maxAngle <90) {turnRight();} if (maxAngle> 90) {turnLeft();} maxLeft =0; maxRechts =0; maxFront =0;}void checkCourse() { moveBackward(); Verzögerung (500); moveStop(); setCourse();}void changePath() { if (pos <90) {lookLeft();} if (pos> 90) {lookRight();}}int readPing() { delay(70); unsigned int uS =sonar.ping(); int cm =uS/US_ROUNDTRIP_CM; return cm;}void checkForward() { if (motorSet=="FORWARD") {leftMotor.run(FORWARD); rechtMotor.run(FORWARD); } }void checkBackward() { if (motorSet=="BACKWARD") {leftMotor.run(BACKWARD); rightMotor.run (RÜCKWÄRTS); aufrechtzuerhalten. aufrechtzuerhalten. MoveStop () {leftMotor.run (RELEASE); rightMotor.run(RELEASE);}void moveForward() { motorSet ="FORWARD"; leftMotor.run(FORWARD); rechtMotor.run(FORWARD); for (speedSet =0; speedSet
Schaltpläne
Herstellungsprozess
- Einfacher Pi-Roboter
- Linienfolger-Roboter
- Steuerung eines Roomba-Roboters mit Arduino und Android-Gerät
- Steuerung des Servomotors mit Arduino und MPU6050
- Autonomer Heimassistent-Roboter
- DIY Arduino Roboterarm – gesteuert durch Handgesten
- Steuern Sie den Arduino-Roboterarm mit der Android-App
- Roboter für supercoole Indoor-Navigation
- Was ist ein Servomotor?
- Koppeln von Getrieben mit Servomotoren