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

Πώς να φτιάξετε ένα έξυπνο ρομπότ χρησιμοποιώντας το Arduino: 4 βήματα
Πώς να φτιάξετε ένα έξυπνο ρομπότ χρησιμοποιώντας το Arduino: 4 βήματα

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

Βίντεο: Πώς να φτιάξετε ένα έξυπνο ρομπότ χρησιμοποιώντας το Arduino: 4 βήματα
Βίντεο: Robot Temperature 1 ΕΠΑΛ ΔΑΦΝΗΣ 2024, Νοέμβριος
Anonim
Image
Image

γεια σας,

Είμαι κατασκευαστής arduino και σε αυτό το σεμινάριο θα σας δείξω πώς να φτιάξετε έξυπνο ρομπότ χρησιμοποιώντας arduino

αν σας άρεσε το σεμινάριό μου, σκεφτείτε να υποστηρίξετε το κανάλι μου στο YouTube που ονομάζεται δημιουργός arduino

Προμήθειες

ΠΡΑΓΜΑΤΑ ΠΟΥ ΘΑ ΧΡΕΙΑΣΤΕ:

1) arduino uno

2) υπερηχητικός αισθητήρας

3) Bo μοτέρ

4) τροχοί

5) μπαστούνια παγωτού

6) Μπαταρία 9V

Βήμα 1: ΣΥΝΔΕΣΕΙΣ

ΚΟΛΛΗΣΕ ΟΛΑ ΤΑ ΣΥΣΤΑΤΙΚΑ ΣΤΟΝ ΤΟΠΟ
ΚΟΛΛΗΣΕ ΟΛΑ ΤΑ ΣΥΣΤΑΤΙΚΑ ΣΤΟΝ ΤΟΠΟ

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

Βήμα 2: ΚΟΛΛΗΣΕΤΕ ΟΛΑ ΤΑ ΣΥΣΤΑΤΙΚΑ ΤΟΠΟΥ

ΕΝΤΑΞΕΙ,

τώρα συνδέστε όλα τα πράγματα στη θέση τους όπως φαίνεται στην παραπάνω εικόνα

Βήμα 3: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Τώρα,

ξεκινήστε να προγραμματίζετε τον πίνακα με τον παρακάτω κωδικό

// ARDUINO OBSTACLE AVOIDING CAR //// Πριν ανεβάσετε τον κώδικα πρέπει να εγκαταστήσετε την απαραίτητη βιβλιοθήκη // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // Βιβλιοθήκη NewPing https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // Για να εγκαταστήσετε τις βιβλιοθήκες μεταβείτε στο σκίτσο >> Συμπεριλάβετε Βιβλιοθήκη >> Προσθήκη αρχείου. ZIP >> Επιλέξτε τα ληφθέντα αρχεία ZIP από τους παραπάνω συνδέσμους //

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

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

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

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

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

#define MAX_SPEED_OFFSET 20

Σόναρ 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;

boolean goForward = false?

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

void setup () {

myservo.attach (10);

myservo.write (115); καθυστέρηση (1000)? απόσταση = 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 (); καθυστέρηση (300)? απόστασηL = lookLeft (); καθυστέρηση (300)?

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

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

int lookRight ()

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

int lookLeft ()

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

int readPing () {

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

void moveStop () {

motor1.run (ΑΠΕΛΕΥΘΕΡΩΣΗ)? //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (ΑΠΕΛΕΥΘΕΡΩΣΗ); } void moveForward () {

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

{goForward = true; motor1.run (ΜΠΡΟΣΤΑ); //motor2.run(FORWARD); //motor3.run(FORWARD); 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(BACKWARD); //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 turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (ΜΠΡΟΣΤΑ); καθυστέρηση (350)? motor1.run (ΜΠΡΟΣΤΑ); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ΜΠΡΟΣΤΑ); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); καθυστέρηση (350)? motor1.run (ΕΜΠΡΟΣ); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ΜΠΡΟΣΤΑ); }

Συνιστάται: