Πίνακας περιεχομένων:
- Βήμα 1: Μαύρο κουτί
- Βήμα 2: Arduino
- Βήμα 3: Προσάρτηση του Arduino στο Blackbox
- Βήμα 4: Αισθητήρας υπερήχων
- Βήμα 5: Σύνδεση Breadboard του αισθητήρα στο Arduino
- Βήμα 6: Ασπίδα κινητήρα
- Βήμα 7: Σύνδεση του Motor Shield στο Arduino
- Βήμα 8: Σύνδεση των 4 κινητήρων και των μπαταριών στο Shield
- Βήμα 9: Προγραμματίστε το ρομπότ
Βίντεο: Εμπόδιο αποφυγής ρομποτικού αυτοκινήτου: 9 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Πώς να φτιάξετε ένα εμπόδιο αποφεύγοντας το ρομπότ
Βήμα 1: Μαύρο κουτί
το πρώτο βήμα χρησιμοποίησα ένα μαύρο κουτί ως βάση για το ρομπότ μου.
Βήμα 2: Arduino
Το Arduino είναι ο εγκέφαλος όλου του συστήματος και ενορχηστρώστε τους κινητήρες μας
Βήμα 3: Προσάρτηση του Arduino στο Blackbox
Έβαλα το arduino στο blackbox χρησιμοποιώντας ζεστή κόλλα
Βήμα 4: Αισθητήρας υπερήχων
Για να φτιάξουμε ένα ρομπότ που μπορεί να κινείται μόνο του χρειαζόμαστε ένα είδος εισόδου, έναν αισθητήρα που ταιριάζει στον στόχο μας. Ο υπερηχητικός αισθητήρας είναι ένα όργανο που μετρά την απόσταση από ένα αντικείμενο χρησιμοποιώντας υπερηχητικά ηχητικά κύματα. Ένας αισθητήρας υπερήχων χρησιμοποιεί έναν μορφοτροπέα για την αποστολή και λήψη παλμών υπερήχων που μεταδίδουν πληροφορίες σχετικά με την εγγύτητα ενός αντικειμένου
Βήμα 5: Σύνδεση Breadboard του αισθητήρα στο Arduino
Χρησιμοποίησα καλώδια για να αρσενικήσω τη σύνδεση μεταξύ του breadboard και του arduino.
Δώστε προσοχή ότι ο αισθητήρας ping μπορεί να έχει διαφορετική διάταξη καρφιτσών, αλλά θα πρέπει να έχει έναν πείρο τάσης, έναν πείρο γείωσης, έναν πείρο τριγώνου και έναν πείρο ηχώ.
Βήμα 6: Ασπίδα κινητήρα
Οι πίνακες Arduino δεν μπορούν να ελέγξουν τους κινητήρες συνεχούς ρεύματος μόνοι τους, επειδή τα ρεύματα που παράγουν είναι πολύ χαμηλά. Για την επίλυση αυτού του προβλήματος χρησιμοποιούμε ασπίδες κινητήρα. Η ασπίδα κινητήρα έχει 2 κανάλια, τα οποία επιτρέπουν τον έλεγχο δύο κινητήρων DC, ή 1 βηματικό μοτέρ. … Με την αντιμετώπιση αυτών των ακίδων, μπορείτε να επιλέξετε ένα κανάλι κινητήρα για εκκίνηση, να καθορίσετε την κατεύθυνση του κινητήρα (πολικότητα), να ρυθμίσετε την ταχύτητα του κινητήρα (PWM), να σταματήσετε και να θέσετε σε λειτουργία τον κινητήρα και να παρακολουθήσετε την τρέχουσα απορρόφηση κάθε καναλιού
Βήμα 7: Σύνδεση του Motor Shield στο Arduino
Απλώς συνδέστε την ασπίδα του κινητήρα στο arduino με τα καλώδια του αισθητήρα σφιγμένα
Βήμα 8: Σύνδεση των 4 κινητήρων και των μπαταριών στο Shield
Κάθε Motor Shield έχει (τουλάχιστον) δύο κανάλια, ένα για τους κινητήρες και ένα για μια πηγή ενέργειας, συνδέστε τα μεταξύ τους
Βήμα 9: Προγραμματίστε το ρομπότ
εκτελέστε αυτόν τον κωδικό
#συμπεριλάβω #συμπεριλάβω
Σόναρ NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor1 (1, MOTOR12_1KHZ); AF_DCMotor motor2 (2, MOTOR12_1KHZ); AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;
#define TRIG_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 150 #define MAX_SPEED 100 #define MAX_SPEED_OFFSET 10
boolean goForward = false? int απόσταση = 80; int speedSet = 0;
void setup () {
myservo.attach (10); myservo.write (115); καθυστέρηση (2000). απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? }
void loop () {int distanceR = 0; int απόστασηL = 0; καθυστέρηση (40)? if (απόσταση <= 15) {moveStop (); καθυστέρηση (50)? moveBackward (); καθυστέρηση (150)? moveStop (); καθυστέρηση (100)? απόστασηR = lookRight (); καθυστέρηση (100)? απόστασηL = lookLeft (); καθυστέρηση (100)?
if (distanceR> = distanceL) {turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } απόσταση = readPing (); }
int lookRight () {myservo.write (50); καθυστέρηση (250)? int distance = readPing (); καθυστέρηση (50)? myservo.write (100); απόσταση επιστροφής? }
int lookLeft () {myservo.write (120); καθυστέρηση (300)? int distance = readPing (); καθυστέρηση (100)? myservo.write (115); απόσταση επιστροφής? καθυστέρηση (100)? }
int readPing () {καθυστέρηση (70); int cm = sonar.ping_cm (); αν (cm == 0) {cm = 200? } επιστροφή cm. }
void moveStop () {motor1.run (RELEASE); motor2.run (ΑΠΕΛΕΥΘΕΡΩΣΗ)? motor3.run (ΑΠΕΛΕΥΘΕΡΩΣΗ); motor4.run (ΑΠΕΛΕΥΘΕΡΩΣΗ); } void moveForward () {
αν (! goForward) {goForward = true? motor1.run (ΕΜΠΡΟΣ); motor2.run (ΕΜΠΡΟΣ); motor3.run (ΜΠΡΟΣΤΑ); motor4.run (ΜΠΡΟΣΤΑ); για (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); καθυστέρηση (5)? }}}
void moveBackward () {goForward = false; motor1.run (BACKWARD); motor2.run (ΠΙΣΩ) motor3.run (BACKWARD); motor4.run (BACKWARD); για (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); καθυστέρηση (5)? } void turnLeft () {motor1.run (BACKWARD); motor2.run (ΠΙΣΩ) motor3.run (ΜΠΡΟΣΤΑ); motor4.run (ΜΠΡΟΣΤΑ); καθυστέρηση (500)? motor1.run (ΕΜΠΡΟΣ); motor2.run (ΕΜΠΡΟΣ); motor3.run (ΜΠΡΟΣΤΑ); motor4.run (ΜΠΡΟΣΤΑ); }
void turnLeft () {motor1.run (BACKWARD); motor2.run (ΠΙΣΩ) motor3.run (ΜΠΡΟΣΤΑ); motor4.run (ΜΠΡΟΣΤΑ); καθυστέρηση (500)? motor1.run (ΕΜΠΡΟΣ); motor2.run (ΕΜΠΡΟΣ); motor3.run (ΜΠΡΟΣΤΑ); motor4.run (ΜΠΡΟΣΤΑ); }
Συνιστάται:
Εμπόδιο αποφυγής LEGO Robot: 8 βήματα (με εικόνες)
Εμπόδιο στην αποφυγή του ρομπότ LEGO: Αγαπάμε το LEGO και αγαπάμε επίσης τα Crazy Circuits, έτσι θέλαμε να τα συνδυάσουμε σε ένα απλό και διασκεδαστικό ρομπότ που μπορεί να αποφύγει να πέσει σε τοίχους και άλλα αντικείμενα. Θα σας δείξουμε πώς φτιάξαμε το δικό μας και θα περιγράψουμε τα βασικά που χρειάζονται για να φτιάξετε το δικό σας
Εμπόδιο αποφυγής ρομπότ χρησιμοποιώντας Arduino Nano: 5 βήματα
Εμπόδιο αποφυγής ρομπότ με χρήση Arduino Nano: Σε αυτό το διδακτικό, θα περιγράψω πώς μπορείτε να κάνετε ένα εμπόδιο αποφεύγοντας το ρομπότ χρησιμοποιώντας το Arduino
Εμπόδιο αποφυγής ρομπότ με αισθητήρες IR χωρίς μικροελεγκτή: 6 βήματα
Εμπόδιο αποφυγής ρομπότ με αισθητήρες IR χωρίς μικροελεγκτή: Λοιπόν αυτό το έργο είναι ένα παλαιότερο έργο, το έκανα το 2014 τον Ιούλιο ή τον Αύγουστο, σκέφτηκα να το μοιραστώ μαζί σας. Είναι ένα απλό εμπόδιο αποφυγής ρομπότ που χρησιμοποιεί αισθητήρες IR και λειτουργεί χωρίς μικροελεγκτή. Οι αισθητήρες IR χρησιμοποιούν IC opamp
Εμπόδιο αποφυγής ρομπότ (Arduino): 8 βήματα (με εικόνες)
Εμπόδιο αποφυγής ρομπότ (Arduino): Εδώ θα σας δώσω οδηγίες σχετικά με τη δημιουργία ενός ρομπότ αποφυγής εμποδίων με βάση το Arduino. Ελπίζω να κάνω βήμα προς βήμα οδηγό για την κατασκευή αυτού του ρομπότ με πολύ εύκολο τρόπο. Ένα εμπόδιο που αποφεύγει το ρομπότ είναι ένα πλήρως αυτόνομο ρομπότ που μπορεί να αποφύγει κάθε εμμονή
Cloudy Cloud σας θεραπεύει (Εμπόδιο αποφυγής ρομπότ με λειτουργία συλλογής): 8 βήματα
Cloudy Cloud σας θεραπεύει (Εμπόδιο στην αποφυγή ρομπότ με λειτουργία συλλογής): Μια άχρηστη μηχανή - Arduino Robot