Βιβλιοθήκη Booze με LED και ενσωματωμένο πάρτι χορού

Βιβλιοθήκη Booze με LED και ενσωματωμένο πάρτι χορού

Januar 4, 2023 0 Von admin

Όταν η κοπέλα μου και εγώ μετακομίσαμε στο μικρό μας διαμέρισμά στο Σαν Φρανσίσκο, θέλαμε να στήσουμε ένα είδος συμπαγούς ντουλάπι για ποτά και ράφι κρασιού. Μετά από ένα γρήγορο ταξίδι στο IKEA είχαμε ένα ράφι που μπορούσαμε εύκολα να το μετατρέψουμε σε φανταχτερό μεθοκοπώμονάδα ραφιού! *εισάγετε μουσικό μοντάζ εδώ* Αφού προσθέσατε θήκες για ποτήρια κρασιού και μπουκάλια, ήταν καλό, αλλά και πάλι λίγο βαρετό και όχι αρκετά τέλειος. Τη νύχτα θα στεκόταν ακριβώς στον τοίχο σε μια σκιά, χωρίς να παρουσιάζει καθόλου τη δουλειά μας. Μια αληθινή προσβολή για όλο το αλκοόλ που είχαμε στην οθόνη. Ένιωσα ότι χρειαζόταν κάτι περισσότερο – λίγο φως…και αισθητήρες…και μπορεί επίσης να διοργανώσω ένα χορευτικό πάρτι ενώ είμαι σε αυτό.

IMG_9089 φωτογραφία

IMG_9146 IMG_9148

Και εδώ είναι ένα ανόητο βίντεο που δείχνει το όλο θέμα…

Προσαρμογή του ραφιού IKEA

Μετατρέποντας το ράφι του ΙΚΕΑ σε α ράφι ποτών ήταν εκπληκτικά εύκολο. Απλώς προσθέσαμε μερικές ανάποδες θήκες για ποτήρια κρασιού στο επάνω μέρος και μια σχάρα κρασιού στο κάτω μέρος. Αριστοκρατικό.

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

IMG_9088 φωτογραφία 3 φωτογραφία 5

Οι σχάρες κρασιού ήταν δώρο από τους γονείς μου και έτυχε να έχουν το σωστό χρώμα και να ταιριάζουν σχεδόν τέλεια. Απλώς έπρεπε να ξυρίσω περίπου 1/16″ και από τις δύο πλευρές και μετά ταιριάζουν άνετα στο κάτω ράφι.

φωτογραφία 1

Τα Ηλεκτρονικά

Λίγες μέρες μετά τη μετατροπή κατάλαβα ότι τα ράφια ήταν λίγο πολύ σκοτεινά τη νύχτα. Ήθελα να με καλωσορίζει φωτίζοντας απαλά τα ράφια κάθε φορά που ανέβαινα για ένα ποτό. Άρχισα λοιπόν ένα αισθητήρας εμβέλειας υπερήχων to an Arduino Mega 2560 και 2 μέτρα από Λωρίδες LED RGB.

Γρήγορα συνειδητοποίησα ότι θα ήταν βαρετό και εντελώς βλάσφημο να χρησιμοποιήσω τόσα πολλά RGB LED και να λάμπει μόνο λευκό φως. (έτσι λειτουργεί το χαρακτηριστικό creep, παιδιά) Άρπαξα λοιπόν έναν δέκτη υπερύθρων και Τηλεχειριστήριο υπερύθρων SparkFun — που μόλις είχα ξαπλώσει — και έφτιαξα μερικά προγράμματα που ενεργοποιούνται και ελεγχόμενα υπερύθρων:

  • Πρόγραμμα Α: Ξεθωριάζει κάθε ράφι με ένα τυχαίο χρώμα, ανεξάρτητα (αλλιώς γνωστό ως Λειτουργία χορευτικού πάρτι).
  • Πρόγραμμα Β: Ο σταυρός ξεθωριάζει κάθε ράφι ταυτόχρονα μεταξύ κόκκινου, πράσινου και μπλε.
  • Πρόγραμμα Γ: Επιλέγετε το χρώμα για όλα τα ράφια μέσω των βελών πάνω/κάτω και αριστερά/δεξιά στο τηλεχειριστήριο. Αποθηκεύει το επιλεγμένο χρώμα στο ενσωματωμένο EEPROM για την επόμενη φορά. Κάπως σαν μια απλή εκδοχή της απόχρωσης Phillips.

IMG_9090 IMG_9091 IMG_9095 IMG_9135

Κρυφοί αισθητήρες

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

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

IMG_9121 IMG_9122 IMG_9123 IMG_9128 IMG_9130 φωτογραφία 1

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

Κύκλωμα

πλήρες_κύκλωμα

Το Arduino Mega αντιμετωπίζει κάθε ράφι ως μια ανεξάρτητα ελεγχόμενη έξοδο RGB — πράγμα που σημαίνει ότι χρησιμοποιώ 12 ακίδες PWM για 4 ράφια (4 ράφια x 3 χρώματα = 12 PWM). Το διάγραμμα δείχνει μόνο ένα ράφι, για αναφορά.

Η νέα σειρά αισθητήρων υπερήχων HRLV της Maxbotix υποστηρίζει έξοδο TTL εάν συγκολλήσετε ένα βραχυκυκλωτήρα. Το χρησιμοποιώ για υπολογισμούς απόστασης αντί για την τυπική αναλογική έξοδο που χρησιμοποιούν τα περισσότερα σεμινάρια.

Ο δέκτης υπερύθρων, δυστυχώς, υποβάλλεται σε επεξεργασία μέσω μιας πλακέτας Pro Mini και στη συνέχεια αποστέλλεται στο mega μέσω του Serial1. Είναι ένα άσχημο hack που θα εξηγήσω αργότερα στην ενότητα Firmware.

IMG_9098 IMG_8874 IMG_8876

LED και MOSFET

Ακολουθώντας μια αρκετά τυπική προσέγγιση, και περιγράφεται από λαγιάδα, χρησιμοποίησα 12 MOSFET για να συνδέσω τα LED στη γείωση. Το μόνο πράγμα που άλλαξα στο παράδειγμά της είναι η προσθήκη του 100 Ohm αντιστάσεις που τραβούν τον πείρο της πύλης στο έδαφος. Αυτά τα συρόμενες αντιστάσεις κρατήστε τους διακόπτες MOSFET κλειστούς όταν οι ακίδες δεν είναι ψηλά. Χωρίς αυτό, μπορείτε να ενεργοποιήσετε μερικά LED μέχρι να μηδενίσετε χειροκίνητα τις ακίδες.

Αντί να χρησιμοποιήσω τα παραδοσιακά μεγάλα MOSFET, πήρα μια τσάντα με μικρά SPT από Jameco. Ακόμα και πάλι ήταν μια πρόκληση να τα στριμώξετε όλα στην σανίδα ασπίδας – μερικά ήταν κολλημένα κάτω από την ασπίδα για να χωρέσουν.

MosfetLED_circuit_picture_transparent
MosfetLED_schematic

Λήψη αρχείων Fritzing

Υλικολογισμικό

Όλος ο κώδικας γράφτηκε σε ακατέργαστη C++ στο eclipse, μέσω του plugin arduino. Έχω δημοσιεύσει τον κύριο πηγαίο κώδικα του προγράμματος github.

Έλεγχος 12 PWM — Διαφορετικά γνωστό ως Hot PWM Action

Πέρασα τον περισσότερο χρόνο μου για να ανακαλύψω πώς να κάνω το Arduino Mega να ελέγχει και τις 12 εξόδους PWM ανεξάρτητα χωρίς να επιβραδύνει καθόλου το πρόγραμμα. Χρησιμοποιούνται οι πιο κοινές τεχνικές ξεθώριασμα LED delay() για να ρυθμίσετε την ταχύτητα του fade. Η μέθοδος καθυστέρησης, φυσικά, κάνει το υπόλοιπο πρόγραμμα να μην ανταποκρίνεται στην είσοδο εύρους, την είσοδο υπερύθρων ή άλλες ενέργειες.

Για να το διορθώσω, δημιούργησα το Fader LED βιβλιοθήκη arduino. Αντί να χρησιμοποιείτε delay, κάθε κύκλος ελέγχει τον χρόνο του επεξεργαστή και αλλάζει την τιμή PWM όπως χρειάζεται. Για παράδειγμα, για να εξασθενίσει από το 0 στο 255 σε 2 δευτερόλεπτα, θα αύξανε το PWM κατά 1 κάθε ~8 χιλιοστά του δευτερολέπτου (2000 / 255 = 7,84). Η βιβλιοθήκη είναι επίσης γραμμένη για να „καλύψει τη διαφορά“ αυτόματα εάν το animation υστερούσε λόγω άλλων παραγόντων που καθυστερούσαν τον επεξεργαστή.

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

Είσοδος υπερύθρων

Το μόνο ενοχλητικό σε αυτό το έργο ήταν ότι η βιβλιοθήκη IRremote προκαλούσε την κατάρρευση του προγράμματος. Δεν είμαι απολύτως σίγουρος γιατί, αλλά όταν άρχισα να χρησιμοποιώ το τηλεχειριστήριο IR θα λάμβανε τους πρώτους κωδικούς υπερύθρων και στη συνέχεια το arduino δεν ανταποκρινόταν. Έχω ακούσει ότι η χρήση χρονόμετρων συστήματος μπορεί να έρχεται σε διένεξη με άλλες βιβλιοθήκες, αλλά δεν είμαι σίγουρος αν αυτό συμβαίνει εδώ.

Αντί να αφιερώσω πολύ χρόνο σε αυτό, άρπαξα ένα επιπλέον Arduino Pro Mini, έριξα τον δέκτη υπερύθρων σε αυτό και μετά του έβαλα να στείλει τους κωδικούς IR στο mega μέσω του Serial1. Γρήγορα και βρώμικα.

Ολοκληρώθηκε!