Πώς να φτιάξετε ένα ρομπότ στο σπίτι (με εικόνες)

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

Πώς να φτιάξετε ένα ρομπότ στο σπίτι (με εικόνες)
Πώς να φτιάξετε ένα ρομπότ στο σπίτι (με εικόνες)

Βίντεο: Πώς να φτιάξετε ένα ρομπότ στο σπίτι (με εικόνες)

Βίντεο: Πώς να φτιάξετε ένα ρομπότ στο σπίτι (με εικόνες)
Βίντεο: Steel & Sharp Crystal | PixARK #13 2024, Νοέμβριος
Anonim

Θέλετε να μάθετε πώς να φτιάχνετε το δικό σας ρομπότ; Υπάρχουν πολλοί διαφορετικοί τύποι ρομπότ, τα οποία μπορείτε να φτιάξετε μόνοι σας. Οι περισσότεροι άνθρωποι θέλουν να δουν ένα ρομπότ να κάνει την εύκολη δουλειά του από το σημείο Α στο Β. Μπορείτε να φτιάξετε ένα ρομπότ εντελώς από αναλογικά εξαρτήματα ή να αγοράσετε ένα κιτ εκκίνησης. Η κατασκευή του δικού σας ρομπότ είναι ένας πολύ καλός τρόπος για να μάθετε ηλεκτρονικά και προγραμματισμό υπολογιστών.

Βήμα

Μέρος 1 από 5: Συναρμολόγηση του ρομπότ

1123333 1
1123333 1

Βήμα 1. Συγκεντρώστε τα εξαρτήματά σας

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

  • Arduino Uno (ή άλλος μικροελεγκτής)
  • 2 σερβίς 360 μοιρών
  • 2 τροχοί που ταιριάζουν με το σερβο
  • 1 δωρεάν τροχός
  • 1 δοκιμαστική σανίδα (σανίδα ή σανίδα έργου) που δεν έχει κολληθεί (αναζητήστε μια δοκιμαστική σανίδα που έχει δύο θετικές και αρνητικές σειρές σε κάθε πλευρά)
  • 1 αισθητήρας εγγύτητας (με καλώδιο σύνδεσης τεσσάρων ακίδων)
  • 1 διακόπτης κουμπιού
  • 1 αντίσταση 10kΩ
  • 1 καλώδιο USB A έως B
  • 1 σετ κεφαλών που σπάνε
  • 1 υποδοχή μπαταρίας 6 x AA με πρίζα ρεύματος 9V DC
  • 1 συσκευασία καλωδίων 22. jumper ή μονό καλώδιο
  • Μόνωση μπρος -πίσω (διπλή ταινία) ή πιστόλι κόλλας
1123333 2
1123333 2

Βήμα 2. Γυρίστε τη θήκη της μπαταρίας έτσι ώστε η επίπεδη πλάτη της να είναι στραμμένη προς τα πάνω

Θα φτιάξετε το σώμα του ρομπότ χρησιμοποιώντας τη βάση της μπαταρίας ως βάση.

1123333 3
1123333 3

Βήμα 3. Τοποθετήστε δύο σερβίτσες με την ίδια κατεύθυνση στο τέλος της θέσης της μπαταρίας

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

1123333 4
1123333 4

Βήμα 4. Κολλήστε τα servos με τη μόνωση ή την κόλλα σας

Βεβαιωθείτε ότι το σερβο είναι σταθερά προσαρτημένο στη θήκη μπαταριών. Το πίσω μέρος του servo πρέπει να ευθυγραμμιστεί με το πίσω μέρος του διαμερίσματος μπαταριών.

Τώρα, τα servos θα πρέπει να καταλαμβάνουν το μισό χώρο στο πίσω μέρος του χώρου της μπαταρίας

1123333 5
1123333 5

Βήμα 5. Κολλήστε την πλακέτα δοκιμής κάθετα στον υπόλοιπο χώρο στο χώρο της μπαταρίας

Αυτός ο πίνακας δοκιμής θα κρέμεται ελαφρώς στο μπροστινό μέρος του χώρου μπαταριών και θα εκτείνεται και στις δύο πλευρές. Βεβαιωθείτε ότι ο πίνακας δοκιμής είναι σφιχτός πριν προχωρήσετε. Η σειρά "A" πρέπει να είναι πιο κοντά στο σερβο.

1123333 6
1123333 6

Βήμα 6. Συνδέστε τον μικροελεγκτή Arduino στο επάνω μέρος του σερβο

Εάν συνδέσετε σωστά το σερβο, θα πρέπει να υπάρχει ένα επίπεδο μέρος των δύο σερβο που αγγίζουν το ένα το άλλο. Κολλήστε την πλακέτα Arduino σε αυτό το επίπεδο σημείο, έτσι ώστε οι υποδοχές τροφοδοσίας USB και Arduino να είναι στραμμένες προς τα κάτω (μακριά από τη δοκιμαστική πλακέτα). Το μπροστινό μέρος του Arduino θα επικαλύπτεται με τον πίνακα δοκιμών.

1123333 7
1123333 7

Βήμα 7. Τοποθετήστε τους τροχούς στα servos

Πιέστε σταθερά τους τροχούς στον περιστρεφόμενο σερβο μηχανισμό. Αυτό μπορεί να απαιτεί σημαντική δύναμη καθώς οι τροχοί έχουν σχεδιαστεί για να έχουν οπές που ταιριάζουν ακριβώς με το σχήμα του σερβο άκρου.

1123333 8
1123333 8

Βήμα 8. Τοποθετήστε τον ελεύθερο τροχό στο κάτω μέρος της πλακέτας δοκιμής

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

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

Μέρος 2 από 5: Καλωδίωση του ρομπότ

1123333 9
1123333 9

Βήμα 1. Κόψτε δύο κεφαλίδες 3 ακίδων

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

1123333 10
1123333 10

Βήμα 2. Τοποθετήστε τις δύο κεφαλίδες στις ακίδες 1-3 και 6-8 στη σειρά Ε στον πίνακα δοκιμής

Βεβαιωθείτε ότι έχουν τοποθετηθεί σταθερά ή σταθερά.

1123333 11
1123333 11

Βήμα 3. Συνδέστε τα servo καλώδια με την κεφαλίδα, με το μαύρο καλώδιο στην αριστερή πλευρά (ακίδες 1 και 6)

Αυτό θα συνδέσει το σερβο με την πλακέτα δοκιμής. Βεβαιωθείτε ότι το αριστερό σερβο είναι συνδεδεμένο με την αριστερή κεφαλίδα και το δεξιό σερβο είναι συνδεδεμένο με τη δεξιά κεφαλίδα.

1123333 12
1123333 12

Βήμα 4. Συνδέστε το κόκκινο καλώδιο βραχυκυκλωτήρα από τους πείρους C2 και C7 στον κόκκινο πείρο ράγας (θετικό)

Βεβαιωθείτε ότι χρησιμοποιείτε την κόκκινη ράγα στο πίσω μέρος του πίνακα δοκιμών (πιο κοντά στο υπόλοιπο σώμα του ρομπότ).

1123333 13
1123333 13

Βήμα 5. Συνδέστε το μαύρο καλώδιο βραχυκυκλωτήρα από τους πείρους Β1 και Β6 στον μπλε πείρο ράγας (γείωση)

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

1123333 14
1123333 14

Βήμα 6. Συνδέστε τα καλώδια του λευκού βραχυκυκλωτήρα από τις ακίδες 12 και 13 του Arduino στο A3 και A8

Αυτό θα επιτρέψει στο Arduino να ελέγξει το σερβο και να γυρίσει τον τροχό.

1123333 15
1123333 15

Βήμα 7. Συνδέστε τον αισθητήρα στο μπροστινό μέρος της πλακέτας δοκιμής

Ο αισθητήρας δεν είναι τοποθετημένος στην εξωτερική ράγα ισχύος στην πλακέτα δοκιμής, αλλά στις δύο πρώτες σειρές ακίδων με γράμματα (J). Βεβαιωθείτε ότι το έχετε τοποθετήσει ακριβώς στη μέση με ίσο αριθμό κενών ακίδων σε κάθε πλευρά.

1123333 16
1123333 16

Βήμα 8. Συνδέστε το μαύρο καλώδιο βραχυκυκλωτήρα από τον πείρο I14 στον πρώτο μπλε πείρο ράγας στα αριστερά του αισθητήρα

Αυτό θα γειώσει τον αισθητήρα.

1123333 17
1123333 17

Βήμα 9. Συνδέστε το κόκκινο καλώδιο βραχυκυκλωτήρα από τον πείρο I17 στον πρώτο κόκκινο πείρο ράγας στα δεξιά του αισθητήρα

Αυτό θα παρέχει ισχύ στον αισθητήρα.

1123333 18
1123333 18

Βήμα 10. Συνδέστε τα καλώδια του λευκού βραχυκυκλωτήρα από τον πείρο I15 στον πείρο 9 στο Arduino και από το I16 στον πείρο 8

Αυτό θα παρέχει πληροφορίες από τον αισθητήρα στον μικροελεγκτή.

Μέρος 3 από 5: Εγκατάσταση του καλωδίου τροφοδοσίας

1123333 19
1123333 19

Βήμα 1. Αναποδογυρίστε το ρομπότ για να δείτε το χώρο της μπαταρίας στο εσωτερικό του

Τοποθετήστε το διαμέρισμα της μπαταρίας έτσι ώστε το καλώδιο να βγαίνει από κάτω αριστερά.

1123333 20
1123333 20

Βήμα 2. Συνδέστε το κόκκινο σύρμα με το δεύτερο ελατήριο από αριστερά στο κάτω μέρος

Βεβαιωθείτε ότι το διαμέρισμα της μπαταρίας είναι σωστά ευθυγραμμισμένο ή στραμμένο προς τη σωστή κατεύθυνση.

1123333 21
1123333 21

Βήμα 3. Συνδέστε το μαύρο καλώδιο με το τελευταίο ελατήριο κάτω δεξιά

Αυτά τα δύο καλώδια θα βοηθήσουν στην παροχή της σωστής τάσης στο Arduino.

1123333 22
1123333 22

Βήμα 4. Συνδέστε τα κόκκινα και μαύρα καλώδια στις κόκκινες και μπλε ακίδες που βρίσκονται στη δεξιά πλευρά, στο πίσω μέρος του πίνακα δοκιμής

Το μαύρο σύρμα πρέπει να πηγαίνει στον μπλε πείρο ράγας στον πείρο 30. Το κόκκινο σύρμα πρέπει να πηγαίνει στον κόκκινο πείρο ράγας στον πείρο 30.

1123333 23
1123333 23

Βήμα 5. Συνδέστε το μαύρο καλώδιο από τον πείρο GND στο Arduino στο πίσω μέρος της μπλε ράγας

Συνδέστε το καλώδιο στον πείρο 28 στη μπλε ράγα.

1123333 24
1123333 24

Βήμα 6. Συνδέστε το μαύρο σύρμα από το πίσω μέρος της μπλε ράγας στο μπροστινό μέρος της μπλε ράγας στον πείρο 29 και για τις δύο ράγες

Μην συνδέετε την κόκκινη ράγα γιατί μπορεί να προκαλέσετε ζημιά στο Arduino.

1123333 25
1123333 25

Βήμα 7. Συνδέστε το κόκκινο σύρμα από το μπροστινό μέρος της κόκκινης ράγας στον πείρο 30 με τον πείρο 5V στο Arduino

Αυτό θα παρέχει δύναμη στο Arduino.

1123333 26
1123333 26

Βήμα 8. Τοποθετήστε το διακόπτη του κουμπιού στο διάστημα μεταξύ των ακίδων 24-26

Αυτός ο διακόπτης θα σας επιτρέψει να απενεργοποιήσετε το ρομπότ χωρίς να χρειαστεί να απενεργοποιήσετε το ρεύμα.

1123333 27
1123333 27

Βήμα 9. Συνδέστε το κόκκινο καλώδιο από το H24 στην κόκκινη ράγα στον επόμενο κενό πείρο στα δεξιά του αισθητήρα

Αυτό θα παρέχει ισχύ στο κουμπί.

1123333 28
1123333 28

Βήμα 10. Χρησιμοποιήστε μια αντίσταση για να συνδέσετε το H26 στη μπλε ράγα

Συνδέστε το με τον πείρο ακριβώς δίπλα στο μαύρο καλώδιο που μόλις συνδέσατε στα προηγούμενα βήματα.

1123333 29
1123333 29

Βήμα 11. Συνδέστε το λευκό σύρμα από το G26 στο pin 2 στο Arduino

Αυτό θα επιτρέψει στο Arduino να εντοπίσει κουμπιά ώθησης.

Μέρος 4 από 5: Εγκατάσταση του λογισμικού Arduino

1123333 30
1123333 30

Βήμα 1. Λήψη και εξαγωγή του Arduino IDE

Εδώ αναπτύσσεται το Arduino και σας επιτρέπει να προγραμματίζετε οδηγίες τις οποίες μπορείτε στη συνέχεια να ανεβάσετε στον μικροελεγκτή Arduino. Μπορείτε να το κατεβάσετε δωρεάν από το arduino.cc/en/main/software. Αποσυμπιέστε το αρχείο που έχετε κατεβάσει κάνοντας διπλό κλικ στο αρχείο και μετακινώντας το φάκελο που περιέχει σε μια τοποθεσία με εύκολη πρόσβαση. Στην πραγματικότητα δεν θα εγκαταστήσετε το πρόγραμμα, αλλά θα το εκτελέσετε απλώς από ένα φάκελο που εξήχθη κάνοντας διπλό κλικ στο arduino.exe.

1123333 31
1123333 31

Βήμα 2. Συνδέστε τη θήκη μπαταριών στο Arduino

Τοποθετήστε την πίσω πρίζα της μπαταρίας στην υποδοχή του Arduino για να την τροφοδοτήσετε.

1123333 32
1123333 32

Βήμα 3. Τοποθετήστε το Arduino στον υπολογιστή σας μέσω USB

Οι πιθανότητες είναι ότι τα Windows δεν θα αναγνωρίσουν τη συσκευή.

1123333 33
1123333 33

Βήμα 4. Πατήστε

Win+R και πληκτρολογήστε devmgmt.msc.

Αυτή η εντολή θα ανοίξει τη Διαχείριση συσκευών.

1123333 34
1123333 34

Βήμα 5. Κάντε δεξί κλικ στο Άγνωστη συσκευή στην περιοχή Άλλες συσκευές και επιλέξτε Ενημέρωση λογισμικού προγράμματος οδήγησης

Εάν δεν βλέπετε αυτήν την επιλογή, κάντε κλικ στην επιλογή Ιδιότητες, επιλέξτε την καρτέλα Πρόγραμμα οδήγησης και, στη συνέχεια, κάντε κλικ στην επιλογή Ενημέρωση προγράμματος οδήγησης.

1123333 35
1123333 35

Βήμα 6. Επιλέξτε Περιήγηση στον υπολογιστή μου για λογισμικό προγραμμάτων οδήγησης

Αυτό θα σας επιτρέψει να επιλέξετε τα ενσωματωμένα προγράμματα οδήγησης που συνοδεύουν το Arduino IDE.

1123333 36
1123333 36

Βήμα 7. Κάντε κλικ στην επιλογή Αναζήτηση και, στη συνέχεια, ανοίξτε το φάκελο που εξαγάγατε νωρίτερα

Θα βρείτε τον φάκελο προγραμμάτων οδήγησης σε αυτό.

1123333 37
1123333 37

Βήμα 8. Επιλέξτε το φάκελο προγραμμάτων οδήγησης και κάντε κλικ στο OK

Επιβεβαιώστε ότι θέλετε να συνεχίσετε εάν έχετε προειδοποιηθεί για άγνωστο λογισμικό.

Μέρος 5 από 5: Προγραμματισμός ρομπότ

1123333 38
1123333 38

Βήμα 1. Ανοίξτε το Arduino IDE κάνοντας διπλό κλικ στο αρχείο arduino.exe στο φάκελο IDE

Θα σας υποδεχτούν με ένα κενό έργο.

1123333 39
1123333 39

Βήμα 2. Επικολλήστε ή επικολλήστε τον ακόλουθο κώδικα για να κάνετε το ρομπότ σας προηγμένο

Ο παρακάτω κωδικός θα διατηρήσει το Arduino σας.

#include // αυτό προσθέτει τη βιβλιοθήκη "Servo" στο πρόγραμμα // η ακόλουθη εντολή δημιουργεί δύο servo αντικείμενα Servo leftMotor. Servo rightMotor; void setup () {leftMotor.attach (12); // αν αλλάξατε κατά λάθος τους αριθμούς pin για το σερβο, μπορείτε να αλλάξετε τους αριθμούς εδώ rightMotor.attach (13). } void loop () {leftMotor.write (180); // με περιστροφή 360 μοιρών (συνεχής περιστροφή), ο αριθμός 180 δίνει εντολή στο σερβο να κινείται «μπροστά» με πλήρη ταχύτητα. rightMotor.write (0); // αν και οι δύο τιμές είναι 180, το ρομπότ θα περιστραφεί σε κύκλο επειδή το σερβο αντιστρέφεται. Το "0" λέει στο ρομπότ να κινείται "προς τα πίσω" με πλήρη ταχύτητα. }

1123333 40
1123333 40

Βήμα 3. Δημιουργήστε και ανεβάστε το πρόγραμμα

Κάντε κλικ στο κουμπί δεξιού βέλους στην επάνω αριστερή γωνία για να δημιουργήσετε και να ανεβάσετε ένα πρόγραμμα στο συνδεδεμένο Arduino.

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

1123333 41
1123333 41

Βήμα 4. Προσθέστε μια λειτουργία διακοπτών διακοπής (διακόπτης θανάτωσης)

Προσθέστε τον ακόλουθο κώδικα στην ενότητα "void loop ()" του κωδικού σας για να προσθέσετε μια λειτουργία διακοπτών διακοπής πάνω από τη λειτουργία "εγγραφή ()".

if (digitalRead (2) == HIGH) // αυτή η εντολή εκτελείται όταν πατηθεί το κουμπί στο pin 2 Arduino {while (1) {leftMotor.write (90); // "90" είναι η ουδέτερη θέση για το σερβο, το οποίο λέει στο σερβο να σταματήσει να στρίβει δεξιάMotor.write (90). }}

1123333 42
1123333 42

Βήμα 5. Ανεβάστε και ελέγξτε τον κωδικό σας

Με τον κωδικό stop switch που έχει ήδη προστεθεί, μπορείτε να ανεβάσετε τον κώδικα και να δοκιμάσετε το ρομπότ. Το ρομπότ πρέπει να συνεχίσει προς τα εμπρός μέχρι να πατήσετε το κουμπί διακοπτών διακοπής που θα προκαλέσει το ρομπότ να σταματήσει. Ο πλήρης κωδικός θα μοιάζει με αυτόν:

#include // η ακόλουθη εντολή δημιουργεί δύο Servo leftMotor servo αντικείμενα. Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Παράδειγμα

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

#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // αυτός ο κώδικας δίνει χρονική υστέρηση στην έξοδο της κονσόλας κάθε 1/4 δευτερόλεπτο (250 ms) χωρίς υπογραφή για μεγάλο χρονικό διάστημαSerialDelay = 0; const int loopPeriod = 20; // αυτός ο κώδικας ορίζει τη συχνότητα ανάγνωσης του αισθητήρα στα 20 ms, η οποία είναι 50 Hz ανυπόγραφη για μεγάλο χρονικό διάστημαLoopDelay = 0; // αυτός ο κώδικας εκχωρεί τις συναρτήσεις TRIG και ECHO στις ακίδες του Arduino. Προσαρμόστε τους αριθμούς εδώ αν τους συνδέσετε με διαφορετικό τρόπο const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int υπερηχητικός2Distance; int υπερηχητική2Διάρκεια; // αυτός ο κώδικας ορίζει δύο πιθανές καταστάσεις ρομπότ: συνεχίστε προς τα εμπρός ή στρίψτε αριστερά #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = συνέχιση προς τα εμπρός (DEFAULT), 1 = στροφή αριστερά void setup () {Serial.begin (9600); // αυτός ο αισθητήρας καθορίζει το pinMode διαμόρφωσης του πείρου (ultrasonic2TrigPin, OUTPUT). pinMode (ultrasonic2EchoPin, INPUT); // αυτό εκχωρεί τον κινητήρα στις καρφίτσες Arduino leftMotor.attach (12). rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // αυτός ο κώδικας ανιχνεύει ένα '' stop '' {ενώ (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // αυτός ο κώδικας εκτυπώνει μηνύματα εντοπισμού σφαλμάτων σε σειριακή κονσόλα εάν (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // αυτός ο κώδικας δίνει εντολή στον αισθητήρα να διαβάσει και να αποθηκεύσει δεδομένα σχετικά με τη μετρούμενη απόσταση stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (κατάσταση == DRIVE_FORWARD) // αν δεν εντοπιστεί κανένα εμπόδιο {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // αν δεν υπάρχει τίποτα μπροστά από το ρομπότ υπερηχητική Απόσταση θα είναι αρνητική για ορισμένους υπερήχους εάν δεν υπάρχουν εμπόδια {// οδηγήστε προς τα εμπρός rightMotor.write (180); leftMotor.write (0); } else // εάν υπάρχει ένα αντικείμενο μπροστά μας {state = TURN_LEFT; }} else if (κατάσταση == TURN_LEFT) // αν εντοπιστεί εμπόδιο, στρίψτε αριστερά {unsigned long timeToTurnLeft = 500; // χρειάζεται περίπου 0,5 δευτερόλεπτα για να στρίψει 90 μοίρες. Mayσως χρειαστεί να προσαρμόσετε αυτήν την τιμή εάν οι τροχοί σας διαφέρουν σε μέγεθος από το μέγεθος στο παράδειγμα χωρίς υπογραφή long turnStartTime = millis (); // διατηρήστε την κατάσταση όταν το ρομπότ αρχίσει να γυρίζει ενώ ((millis ()-turnStartTime) <timeToTurnLeft) // διατηρήστε αυτόν τον κύκλο μέχρι να περάσει ο χρόνοςToTurnLeft (500) {// στρίψτε αριστερά, θυμηθείτε ότι όταν και τα δύο είναι "180", το ρομπότ θα γυρίσει. rightMotor.write (180); leftMotor.write (180); } κατάσταση = DRIVE_FORWARD; }} void readUltrasonicSensors () {// αυτό είναι για υπερήχους 2. mayσως χρειαστεί να αλλάξετε αυτήν την εντολή εάν χρησιμοποιείτε διαφορετικό αισθητήρα. digitalWrite (ultrasonic2TrigPin, HIGH); καθυστέρηση Μικροδευτερόλεπτα (10); // τραβήξτε τον πείρο TRIG ψηλά για τουλάχιστον 10 μικροδευτερόλεπτα digitalWrite (ultrasonic2TrigPin, LOW). υπερηχητική2Διαρκείας = παλμόςIn (υπερηχητικός2EchoPin, HIGH); υπερηχητικός2Distance = (υπερηχητικός2Διάρκεια/2)/29; } // το ακόλουθο είναι για σφάλματα εντοπισμού σφαλμάτων στην κονσόλα. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (υπερηχητικός2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Συνιστάται: