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

Τεχνολογία για τον παππού σας: 13 βήματα (με εικόνες)
Τεχνολογία για τον παππού σας: 13 βήματα (με εικόνες)

Βίντεο: Τεχνολογία για τον παππού σας: 13 βήματα (με εικόνες)

Βίντεο: Τεχνολογία για τον παππού σας: 13 βήματα (με εικόνες)
Βίντεο: ΑΝΕΚΔΟΤΑΡΑ 🤣🤣 #swimming #shorts 2024, Νοέμβριος
Anonim
Image
Image

Πόσες φορές έχετε πάει στο σπίτι των παππούδων σας για να βοηθήσετε με ένα «πρόβλημα τεχνολογίας» που κατέληξε να είναι ένα καλώδιο ρεύματος χωρίς πρίζα, μια απομακρυσμένη μπαταρία ή να μην μπορείτε να αλλάξετε την πηγή στην τηλεόρασή τους; Ξέρω ότι για μένα, αυτό συμβαίνει αρκετά συχνά. Ενώ τα περισσότερα από τα προβλήματά τους μπορούν να λυθούν απλά τρέχοντας στο κατάστημα για κάποια νέα ΑΑ, μερικές φορές θα μπορούσαν να επωφεληθούν από μια πιο προσαρμοσμένη λύση.

Για παράδειγμα, ο παππούς της φίλης μου πήρε μια νέα τηλεόραση και προσπαθήσαμε να του μάθουμε πώς να αλλάζει την πηγή, ώστε να μπορεί να αλλάζει μεταξύ DVD και τηλεόρασης - αλλά απλά δεν μπορούσε να το καταλάβει. Ασχολείται επίσης με την αποτυχημένη όραση και δεν ενδιαφέρεται πολύ να προσπαθήσει να θυμηθεί περίπλοκες διαδικασίες, απλώς θέλει να παρακολουθεί τις εκπομπές του όταν το θέλει. Αφού προσπάθησα να εξηγήσω ήρεμα τα βήματα κατά την τελευταία μας επίσκεψη χωρίς μεγάλη επιτυχία, αποφάσισα ότι θα του έκανα το δικό του απλό τηλεχειριστήριο δύο κουμπιών. Αυτό θα του επέτρεπε να αλλάξει την πηγή εισόδου στην τηλεόρασή του ανώδυνα, αλλάζοντας ανάμεσα στα αγαπημένα του Matlock DVD και το Price is Right με ευκολία.

Βήμα 1: Υλικά

  • PhidgetIR
  • PhidgetSBC4 (ή οποιοσδήποτε υπολογιστής σαν το Raspberry Pi)
  • Συγκολλητικό σίδερο
  • Πλευρικά κοπτικά
  • Συρματόσχοινα
  • Jumper Wires
  • Καλώδιο USB
  • Καλώδιο Phidget
  • Περίφραξη
  • Κεφαλίδες διαμπερών οπών
  • Θερμοσυρρικνωμένος σωλήνας

Βήμα 2: Προγραμματισμός

Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση

Για να δημιουργήσω το τηλεχειριστήριο, χρειαζόμουν τη δυνατότητα να στέλνω εντολές καταναλωτή υπέρυθρων (CIR) στην τηλεόραση. Αποφάσισα να χρησιμοποιήσω το PhigetIR για αυτήν την εργασία. Το PhidgetIR είναι μια ελεγχόμενη συσκευή USB που έχει τη δυνατότητα να στέλνει και να λαμβάνει εντολές CIR. Το επέλεξα για μερικούς λόγους:

  • Wantedθελα να τελειώσω αυτό το έργο το συντομότερο δυνατό και να το χρησιμοποιήσω, οπότε η σκέψη να σπάσω τον παλμογράφο και το ψωμί μου δεν ήταν ελκυστική. Επίσης, πόσο πιθανό είναι τα κυκλώματά μου να δουλεύουν στο χέρι σε ένα ή δύο χρόνια;
  • Το PhidgetIR έχει τη δυνατότητα να "μάθει" εντολές CIR κάνοντας την ανάπτυξη εξαιρετικά απλή.
  • Μπορείτε να χρησιμοποιήσετε σχεδόν οποιαδήποτε βασική γλώσσα προγραμματισμού με το PhidgetIR. Αυτό σήμαινε ότι μπορούσα να χρησιμοποιήσω την Java και να τελειώσω γρήγορα τα πράγματα.
  • Τέλος, εργάζομαι για το Phidgets, οπότε είμαι άνετος με το API και υπάρχουν πάντα εφεδρικές συσκευές.

Επειδή επέλεξα να χρησιμοποιήσω το PhidgetIR, χρειάστηκα έναν υπολογιστή για να τον τελειώσω. Iθελα αυτό το έργο να είναι μια αυτόνομη εφαρμογή, σαν ένα κανονικό τηλεχειριστήριο, οπότε ένας υπολογιστής ή φορητός υπολογιστής ήταν εκτός. Επέλεξα να χρησιμοποιήσω ένα PhidgetSBC4 (έναν υπολογιστή με έναν πίνακα που εκτελεί Debian Linux), επειδή μου επέτρεψε να συνδεθώ και με τα δύο κουμπιά χωρίς πρόσθετο υλικό. Μπορούν απλά να συνδεθούν απευθείας στον ενσωματωμένο διανομέα VINT. Σημείωση: μπορείτε επίσης να χρησιμοποιήσετε ένα Raspberry Pi για αυτό το έργο. Τέλος, εκτός από λειτουργικό ήχο, ήθελα αυτό το έργο να φαίνεται υπέροχο, οπότε αποφάσισα ότι θα ήταν απαραίτητο ένα περίβλημα με 3D εκτύπωση.

Βήμα 3: Τρισδιάστατη εκτύπωση

Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση

Για αυτό το έργο, το Geomagic χρησιμοποιήθηκε για τη μοντελοποίηση του περιβλήματος. Υπάρχουν διαθέσιμα αρχεία τρισδιάστατων βημάτων τόσο για το PhidgetIR όσο και για το PhidgetSBC4 που απλοποίησαν τη διαδικασία. Μερικές αποφάσεις λήφθηκαν κατά τη διάρκεια αυτού του βήματος σχετικά με το μέγεθος και τη λειτουργικότητα του περιβλήματος:

  • Το PhidgetIR διαθέτει δύο LED IR που πρέπει να είναι στραμμένα προς την τηλεόραση για να στείλετε εντολές. Αντί να σχεδιάσετε το περίβλημα γύρω από την πλακέτα PhidgetIR, τα IR LED θα μπορούσαν να ξεκολληθούν και να κολληθούν στις οπές στο πλάι του περιβλήματος. Ο πίνακας PhidgetIR θα μπορούσε στη συνέχεια να τοποθετηθεί μακριά από τα LED, χρησιμοποιώντας τον κενό χώρο.
  • Οι σύνδεσμοι VINT Hub στο PhidgetSBC4 θα μπορούσαν να λυγίσουν προς τα πάνω, κάτι που θα επέτρεπε την πρόσβαση στις συνδέσεις του κουμπιού και θα απέτρεπε επίσης την ανάγκη δημιουργίας μεγαλύτερου περιβλήματος.

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

Βήμα 4: Συναρμολόγηση - Αφαιρέστε τα LED

Συναρμολόγηση - Αφαιρέστε τα LED
Συναρμολόγηση - Αφαιρέστε τα LED
Συναρμολόγηση - Αφαιρέστε τα LED
Συναρμολόγηση - Αφαιρέστε τα LED
Συναρμολόγηση - Αφαιρέστε τα LED
Συναρμολόγηση - Αφαιρέστε τα LED

Τα IR LED θα κολληθούν τελικά σε τρύπες στο πλάι του περιβλήματος. Αυτό σημαίνει ότι πρέπει πρώτα να ξεκολλήσουν.

Βήμα 5: Συναρμολόγηση - Προσθήκη κεφαλίδων μέσω οπών

Συναρμολόγηση - Προσθήκη κεφαλίδων μέσω οπών
Συναρμολόγηση - Προσθήκη κεφαλίδων μέσω οπών
Συναρμολόγηση - Προσθήκη κεφαλίδων μέσω οπών
Συναρμολόγηση - Προσθήκη κεφαλίδων μέσω οπών

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

Βήμα 6: Συναρμολόγηση - Συνδέστε LED

Συναρμολόγηση - Συνδέστε LED
Συναρμολόγηση - Συνδέστε LED
Συναρμολόγηση - Συνδέστε LED
Συναρμολόγηση - Συνδέστε LED

Κολλήστε τις λυχνίες LED στο πλάι του περιβλήματος.

Βήμα 7: Συναρμολόγηση - Επισυνάψτε το PhidgetIR

Συνέλευση - Επισυνάψτε το PhidgetIR
Συνέλευση - Επισυνάψτε το PhidgetIR
Συνέλευση - Επισυνάψτε το PhidgetIR
Συνέλευση - Επισυνάψτε το PhidgetIR
Συνέλευση - Επισυνάψτε το PhidgetIR
Συνέλευση - Επισυνάψτε το PhidgetIR

Συνδέστε το PhidgetIR στο περίβλημα και συνδέστε τα LED.

Βήμα 8: Συναρμολόγηση - Προσθήκη κουμπιών

Συνέλευση - Προσθήκη κουμπιών
Συνέλευση - Προσθήκη κουμπιών
Συνέλευση - Προσθήκη κουμπιών
Συνέλευση - Προσθήκη κουμπιών
Συνέλευση - Προσθήκη κουμπιών
Συνέλευση - Προσθήκη κουμπιών

Τα κουμπιά πρέπει να συνδεθούν με τον ενσωματωμένο διανομέα VINT στο PhidgetSBC, οπότε έκοψα ένα καλώδιο Phidget στη μέση και κόλλησα τις άκρες στα κουμπιά. Σημειώστε ότι απαιτείται μόνο το λευκό σύρμα (σήμα) και το μαύρο (γείωση).

Βήμα 9: Συνέλευση - Τοποθέτηση όλων μαζί

Συνέλευση - Συνδυάζοντας τα πάντα μαζί
Συνέλευση - Συνδυάζοντας τα πάντα μαζί
Συνέλευση - Συνδυάζοντας τα πάντα μαζί
Συνέλευση - Συνδυάζοντας τα πάντα μαζί

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

Βήμα 10: Λογισμικό - Κωδικός

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

PhidgetIR ir = νέο PhidgetIR ();

DigitalInput tvButton = νέο DigitalInput (); DigitalInput otherButton = νέο DigitalInput ();

Τα αντικείμενα ψηφιακής εισόδου αντιστοιχίζονται σε ένα φυσικό πλήκτρο στο διανομέα VINT. Τα συμβάντα επισύναψης, αποσύνδεσης, σφάλματος και αλλαγής κατάστασης είναι επίσης εγγεγραμμένα σε:

tv.setIsHubPortDevice (αληθινό);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (αληθινό); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

Η κατάσταση ακροατή αλλαγής κατάστασης που αναφέρεται παραπάνω μοιάζει με αυτό:

privatestatic DigitalInputStateChangeListener onStateChangeListener = νέο DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); δοκιμάστε {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Error:"+ ex.getDescription ());}}};

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

while (true) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - TV"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Βήμα 11: Λογισμικό - Εντολές CIR

Λογισμικό - Εντολές CIR
Λογισμικό - Εντολές CIR

Ακολουθεί ένα παράδειγμα του τρόπου δημιουργίας μιας εντολής (εντολή αύξησης της έντασης ήχου σε αυτήν την περίπτωση):

// Κωδικός IR

IRCodeInfo sourceButtonCI = νέο IRCodeInfo (); String volumeUp = "77e1d0f0"; // Ρύθμιση κουμπιού πηγής sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI. επαναλάβετε [0] = 9084; sourceButtonCI.επαναλάβετε [1] = 2308; sourceButtonCI.επαναλάβετε [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

Για να λάβω τις πληροφορίες για αυτήν την εντολή, χρησιμοποίησα απλώς το παράδειγμα PhidgetIR που συνοδεύει τις βιβλιοθήκες Phidget. Αφού δείξετε το τηλεχειριστήριο προς το PhidgetIR και κρατήσετε πατημένο το κουμπί αύξησης της έντασης, το IR "μαθαίνει" τον κώδικα και συμπληρώνει το παράδειγμα. Αυτές οι πληροφορίες μπορούν στη συνέχεια να αντιγραφούν στον κώδικα.

Βήμα 12: Εκτέλεση του προγράμματος

Το αρχείο Java μπορεί να γραφτεί και να μεταγλωττιστεί σε εξωτερικό υπολογιστή. Τοποθετήστε το PhidgetRemote.java και το phidget22.jar στον ίδιο φάκελο και εκτελέστε την ακόλουθη εντολή:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

macOS/Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

Μετά τη μεταγλώττιση, αντιγράψτε τα αρχεία της κλάσης που δημιουργήθηκαν στο PhidgetSBC4 και ρυθμίστε το ώστε να εκτελείται κατά την εκκίνηση.

Βήμα 13: Αποτέλεσμα

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

Διαγωνισμός τηλεχειριστηρίου 2017
Διαγωνισμός τηλεχειριστηρίου 2017
Διαγωνισμός τηλεχειριστηρίου 2017
Διαγωνισμός τηλεχειριστηρίου 2017

Τρίτο Βραβείο στον Διαγωνισμό Τηλεχειριστηρίου 2017

Συνιστάται: