Smart Dustbin From Magicbit: 5 Βήματα
Smart Dustbin From Magicbit: 5 Βήματα
Anonim
Image
Image

Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάξουμε έναν έξυπνο κάδο απορριμμάτων χρησιμοποιώντας το Magicbit dev. πλακέτα με Arduino IDE. Ας ξεκινήσουμε.

Προμήθειες

  • Magicbit
  • Καλώδιο USB-A σε Micro-USB
  • Αισθητήρας υπερήχων - HC -SR04 (Generic)
  • Μικρο-σερβοκινητήρας SG90

Βήμα 1: Ιστορία

Ρύθμιση υλικού
Ρύθμιση υλικού

Πριν προχωρήσετε στο έργο, ας δούμε τι είναι το Smart trash trashbin. Υπάρχουν ένας ή περισσότεροι κάδοι απορριμμάτων σε κάθε σπίτι. Σε πολλές φορές το κάλυψες. Γιατί αυτό θα μυρίσει στο σπίτι σας. Έτσι, όταν θέλετε να βάλετε κάποια σκουπίδια στον κάδο απορριμμάτων, πρέπει να τα ανοίξετε. Αλλά αν, όταν πλησιάζετε κοντά στον κάδο απορριμμάτων για να βάλετε τα σκουπίδια και αυτόματα καλύπτει, τότε πώς φαίνεται. Τρελό ααα…. έτσι είναι ο έξυπνος κάδος απορριμμάτων.

Βήμα 2: Θεωρία και Μεθοδολογία

Η θεωρία είναι πολύ απλή. Όταν περπατάτε κοντά στον κάδο απορριμμάτων θα σας εντοπίσει. Εάν η απόσταση μεταξύ σας και του κάδου απορριμμάτων είναι μικρότερη από κάποια καθορισμένη απόσταση, τότε το κάλυμμα του κάδου απορριμμάτων θα ανοίξει αυτόματα. Για την ολοκλήρωση και των δύο αυτών αντικειμένων χρησιμοποιούμε αισθητήρα υπερήχων HC-SRO4 και μικρούς σερβοκινητήρες. Μπορείτε να αποκτήσετε οποιοδήποτε τύπο ψηφιακού σερβοκινητήρα.

Βήμα 3: Ρύθμιση υλικού

Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού

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

Ο αισθητήρας υπερήχων χρησιμοποίησε 3,3 v για ενεργοποίηση. Ως εκ τούτου, χρησιμοποιήσαμε τη δεξιά κάτω θύρα του πίνακα Magicbit για να συνδέσουμε τον αισθητήρα υπερήχων στο Magicbit. Αλλά ο σερβοκινητήρας χρησιμοποιείται 5V για σωστή λειτουργία, γι 'αυτό χρησιμοποιήσαμε την αριστερή κάτω θύρα για να συνδέσουμε τον σερβοκινητήρα με το Magicbit. Σε αυτήν την περίπτωση, χρησιμοποιούμε μονάδα σύνδεσης Magic bit servo connector. Αλλά αν δεν έχετε αυτήν τη μονάδα, μπορείτε να χρησιμοποιήσετε τρία καλώδια jumper για να συνδέσετε 5V σε 5V, Gnd σε Gnd και ακίδα σήματος σε 26 ακίδες στο magicbit.

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

Βήμα 4: Ρύθμιση λογισμικού

Ρύθμιση λογισμικού
Ρύθμιση λογισμικού

Το τμήμα λογισμικού είναι επίσης πολύ εύκολο. Ας δούμε τον κώδικα Arduino IDE και πώς λειτουργεί αυτός ο κώδικας.

Για οδήγηση σερβο χρησιμοποιούμε τη σερβο βιβλιοθήκη ESP32. Αυτή η βιβλιοθήκη περιλαμβάνει σχεδόν στο μαγικό διαχειριστή πλακέτας bit στο Arduino IDE. Για την αντιμετώπιση του αισθητήρα υπερήχων χρησιμοποιούμε τη νέα βιβλιοθήκη Ping. Μπορείτε να το κατεβάσετε από τον παρακάτω σύνδεσμο.

bitbucket.org/teckel12/arduino-new-ping/d…

Κατεβάστε το αρχείο zip και μεταβείτε στα εργαλεία> συμπεριλάβετε τη βιβλιοθήκη> προσθέστε βιβλιοθήκη Zip στο Arduino. τώρα επιλέξτε το αρχείο zip που έχετε κατεβάσει από τη νέα βιβλιοθήκη καρφιτσών. στον κώδικα δηλώνουμε πρώτα σερβο και υπερηχητικές βιβλιοθήκες αισθητήρων. Στη λειτουργία βρόχου ελέγχουμε πάντα την απόσταση από τον κάδο απορριμμάτων έως το πλησιέστερο μπροστινό αντικείμενο. Αν αυτός ο τρίφτης είναι 200, τότε η έξοδος απόστασης της βιβλιοθήκης είναι 0. Όταν η απόσταση είναι μικρότερη από 60 εκατοστά, τότε εκτελείται για βρόχο για το άνοιγμα του καλύμματος περιστρέφοντας σερβο. Εάν η απόσταση είναι μεγαλύτερη από 60 εκατοστά, τότε το κάλυμμα θα πέσει κάτω. Χρησιμοποιώντας boolean μεταβλητή ελέγχουμε πάντα την κατάσταση του εξωφύλλου. Εάν το κάλυμμα είναι κάτω τότε μόνο θα ανοίξει. Επίσης το αντίστροφο. Τώρα επιλέξτε τη σωστή θύρα και πλακέτα COM ως magcibit και, στη συνέχεια, ανεβάστε τον κωδικό. Τώρα ο έξυπνος κάδος απορριμμάτων σας είναι έτοιμος για χρήση.

Βήμα 5: Κωδικός Arduino

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

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo Library int distance? Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Καθορίζει σε ποια ακίδα είναι συνδεδεμένος ο σερβοκινητήρας καθυστέρηση (3000). } void loop () {// περιστρέφει τον σερβοκινητήρα από 15 έως 165 μοίρες για (int i = 0; i <= 180; i ++) {RadarServo.write (i); καθυστέρηση (50)? απόσταση = sonar.ping_cm (); // Καλεί μια συνάρτηση για τον υπολογισμό της απόστασης που μετράται από τον αισθητήρα υπερήχων για κάθε βαθμό για (int j = 0; j0) {break; } Serial.print (i); // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print (","); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση Serial.print (j). // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print ("*"). Serial.print (1); // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("/"). // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο IDE επεξεργασίας για ευρετηρίαση Serial.print (απόσταση). // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("."); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση}} // Επαναλαμβάνει τις προηγούμενες γραμμές από 165 έως 15 μοίρες για (int i = 180; i> = 0; i-) {RadarServo. γράψτε (i); καθυστέρηση (50)? απόσταση = sonar.ping_cm (); για (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {συνέχεια; } Serial.print (i); // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print (","); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση Serial.print (j). // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print ("*"). Serial.print (-1); // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("/"). // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο IDE επεξεργασίας για ευρετηρίαση Serial.print (απόσταση). // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("."); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο IDE επεξεργασίας για ευρετηρίαση}}}