Πίνακας περιεχομένων:

Πώς να φτιάξετε ένα DIY εμπόδιο Arduino που αποφεύγει το ρομπότ στο σπίτι: 4 βήματα
Πώς να φτιάξετε ένα DIY εμπόδιο Arduino που αποφεύγει το ρομπότ στο σπίτι: 4 βήματα

Βίντεο: Πώς να φτιάξετε ένα DIY εμπόδιο Arduino που αποφεύγει το ρομπότ στο σπίτι: 4 βήματα

Βίντεο: Πώς να φτιάξετε ένα DIY εμπόδιο Arduino που αποφεύγει το ρομπότ στο σπίτι: 4 βήματα
Βίντεο: Arduino Robot Workshop Open Fest 2016 ΑΕΙ Πειραιά Τ Τ 2024, Νοέμβριος
Anonim
Image
Image

Γεια σας παιδιά, Σε αυτό το Instructable, θα κάνετε ένα εμπόδιο αποφεύγοντας το ρομπότ. Αυτό το Instructable περιλαμβάνει την κατασκευή ενός ρομπότ με έναν υπερηχητικό αισθητήρα που μπορεί να ανιχνεύσει κοντινά αντικείμενα και να αλλάξει την κατεύθυνσή τους για να αποφύγει αυτά τα αντικείμενα. Ο υπερηχητικός αισθητήρας θα συνδεθεί με ένα σερβοκινητήρα που σαρώνει συνεχώς αριστερά και δεξιά αναζητώντας αντικείμενα στο δρόμο του.

Οπότε, χωρίς άλλη παρατήρηση, ας ξεκινήσουμε!

Βήμα 1: Τι χρειάζεστε σε αυτό το έργο:

Τι χρειάζεστε σε αυτό το έργο
Τι χρειάζεστε σε αυτό το έργο
Τι χρειάζεστε σε αυτό το έργο
Τι χρειάζεστε σε αυτό το έργο

Εδώ είναι η λίστα μερών:

1) Arduino Uno

2) Ασπίδα οδηγού κινητήρα

3) Σετ μοτέρ, πλαίσιο και τροχοί

4) Servo Motor

5) Αισθητήρας υπερήχων

6) Μπαταρία ιόντων λιθίου (2x)

7) Θήκη μπαταρίας

8) Αρσενικό και θηλυκό καλώδιο άλτης

9) Συγκολλητικό σίδερο

10) Φορτιστής

Βήμα 2: Διάγραμμα κυκλώματος

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Εργαζόμενος:

Πριν ξεκινήσετε να εργάζεστε στο έργο, είναι σημαντικό να καταλάβετε πώς λειτουργεί ο αισθητήρας υπερήχων. Η βασική αρχή πίσω από τη λειτουργία του αισθητήρα υπερήχων είναι η ακόλουθη:

Χρησιμοποιώντας ένα εξωτερικό σήμα σκανδάλης, η ακίδα Trig στον αισθητήρα υπερήχων είναι λογικά υψηλή για τουλάχιστον 10μs. Αποστέλλεται μια ηχητική έκρηξη από τη μονάδα πομπού. Αποτελείται από 8 παλμούς 40KHz.

Τα σήματα επιστρέφουν αφού χτυπήσουν μια επιφάνεια και ο δέκτης ανιχνεύσει αυτό το σήμα. Ο πείρος Echo είναι υψηλός από τη στιγμή της αποστολής και λήψης του σήματος. Αυτός ο χρόνος μπορεί να μετατραπεί σε απόσταση χρησιμοποιώντας κατάλληλους υπολογισμούς.

Ο στόχος αυτού του έργου είναι να υλοποιήσει ένα εμπόδιο αποφυγής ρομπότ χρησιμοποιώντας αισθητήρα υπερήχων και Arduino. Όλες οι συνδέσεις γίνονται σύμφωνα με το διάγραμμα κυκλώματος. Η λειτουργία του έργου εξηγείται παρακάτω.

Όταν το ρομπότ είναι ενεργοποιημένο, τόσο οι κινητήρες του ρομπότ θα λειτουργούν κανονικά όσο και το ρομπότ προχωράει μπροστά. Κατά τη διάρκεια αυτής της περιόδου, ο αισθητήρας υπερήχων υπολογίζει συνεχώς την απόσταση μεταξύ του ρομπότ και της ανακλαστικής επιφάνειας.

Αυτές οι πληροφορίες υποβάλλονται σε επεξεργασία από το Arduino. Εάν η απόσταση μεταξύ του ρομπότ και του εμποδίου είναι μικρότερη από 15 εκατοστά, το Ρομπότ σταματά και σαρώνει σε αριστερή και δεξιά κατεύθυνση για νέα απόσταση χρησιμοποιώντας Servo Motor και υπερηχητικό αισθητήρα. Εάν η απόσταση προς την αριστερή πλευρά είναι μεγαλύτερη από αυτή της δεξιάς πλευράς, το ρομπότ θα προετοιμαστεί για μια αριστερή στροφή. Αλλά πρώτα, κάνει λίγο πίσω και στη συνέχεια ενεργοποιεί το Left Wheel Motor με αντίστροφη κατεύθυνση.

Ομοίως, εάν η σωστή απόσταση είναι μεγαλύτερη από αυτή της αριστερής απόστασης, το Ρομπότ προετοιμάζει τη δεξιά περιστροφή. Αυτή η διαδικασία συνεχίζεται για πάντα και το ρομπότ συνεχίζει να κινείται χωρίς να χτυπά κανένα εμπόδιο.

Βήμα 3: Προγραμματισμός Arduino UNO

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

# καθορισμός TRIG_PIN A1

# define ECHO_PIN A0

# define MAX_DISTANCE 200

# define MAX_SPEED 255 // ορίζει ταχύτητα κινητήρων DC

# define MAX_SPEED_OFFSET 20

Σόναρ NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goForward = false?

int απόσταση = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); καθυστέρηση (2000). απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? απόσταση = readPing (); καθυστέρηση (100)? }

void loop () {

int απόστασηR = 0; int απόστασηL = 0; καθυστέρηση (40)?

if (απόσταση <= 15) {moveStop (); καθυστέρηση (100)? moveBackward (); καθυστέρηση (300)? moveStop (); καθυστέρηση (200)? απόστασηR = lookRight (); καθυστέρηση (200)? απόστασηL = lookLeft (); καθυστέρηση (200)?

εάν (απόστασηR> = απόστασηL) {

στρίψτε δεξιά(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } απόσταση = readPing (); }

int lookRight () {

myservo.write (50); καθυστέρηση (500)? int distance = readPing (); καθυστέρηση (100)? myservo.write (115); απόσταση επιστροφής? }

int lookLeft () {

myservo.write (170); καθυστέρηση (500)? int distance = readPing (); καθυστέρηση (100)? myservo.write (115); απόσταση επιστροφής? καθυστέρηση (100)? }

int readPing () {

καθυστέρηση (70)? int cm = sonar.ping_cm (); αν (cm == 0) {cm = 250? } επιστροφή cm. }

void moveStop () {

motor3.run (ΑΠΕΛΕΥΘΕΡΩΣΗ);

motor4.run (ΑΠΕΛΕΥΘΕΡΩΣΗ); }

void moveForward () {

αν (! πηγαίνει μπροστά) {

goForward = true?

motor3.run (ΜΠΡΟΣΤΑ);

motor4.run (ΜΠΡΟΣΤΑ); για (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // αυξήστε αργά την ταχύτητα για να αποφύγετε την υπερβολική φόρτωση των μπαταριών {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); καθυστέρηση (5)? }}}

void moveBackward () {

goForward = false?

motor3.run (BACKWARD);

motor4.run (BACKWARD); για (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // αυξήστε αργά την ταχύτητα για να αποφύγετε την υπερβολική φόρτωση των μπαταριών {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); καθυστέρηση (5)? }}

void turnRight () {

motor3.run (ΜΠΡΟΣΤΑ);

motor4.run (BACKWARD); καθυστέρηση (500)?

motor3.run (ΜΠΡΟΣΤΑ);

motor4.run (ΜΠΡΟΣΤΑ); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (ΜΠΡΟΣΤΑ); καθυστέρηση (500)?

motor3.run (ΜΠΡΟΣΤΑ);

motor4.run (ΜΠΡΟΣΤΑ); }

1) Κατεβάστε και εγκαταστήστε το Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Κατεβάστε και επικολλήστε το αρχείο βιβλιοθήκης NewPing (βιβλιοθήκη λειτουργιών αισθητήρα υπερήχων) στο φάκελο βιβλιοθηκών Arduino.

  1. Κατεβάστε το NewPing.rar παρακάτω
  2. Εξαγάγετε το στη διαδρομή - βιβλιοθήκες C: / Arduino

3) Ανεβάστε τον κωδικό στην πλακέτα Arduino μέσω καλωδίου USB

Κωδικός λήψης:

Βήμα 4: Τέλεια

Τώρα το ρομπότ σας είναι έτοιμο να αποφύγει κάθε εμπόδιο…

Θα χαρώ να απαντήσω σε όποιες απορίες έχετε

Emailme: [email protected]

Ιστοσελίδα:

Εγγραφείτε στο κανάλι μου στο YouTube:

Instagram:

Facebook:

Σας ευχαριστώ:)

Συνιστάται: