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

Τηλεχειριστήριο IR υπολογιστή: 4 βήματα
Τηλεχειριστήριο IR υπολογιστή: 4 βήματα

Βίντεο: Τηλεχειριστήριο IR υπολογιστή: 4 βήματα

Βίντεο: Τηλεχειριστήριο IR υπολογιστή: 4 βήματα
Βίντεο: Προγραμματιζόμενα τηλεχειριστήρια 2-in-1 EDISION: How To 2024, Ιούνιος
Anonim
Τηλεχειριστήριο IR υπολογιστή
Τηλεχειριστήριο IR υπολογιστή

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

Το έργο αποτελείται από διάφορα μέρη:

  1. Τηλεχειριστήριο
  2. Λογισμικό υπολογιστή
  3. Μονάδα δέκτη IR

Βήμα 1: Το τηλεχειριστήριο

Το Τηλεχειριστήριο
Το Τηλεχειριστήριο

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

Βήμα 2: Λογισμικό

Έχω δημιουργήσει το πρόγραμμα για το λειτουργικό σύστημα GNU/Linux που τρέχει σε ένα τερματικό. Ο πηγαίος κώδικας είναι δωρεάν για λήψη/χρήση/κοινή χρήση/τροποποίηση. Για να μεταγλωττίσετε τον κώδικα, απλώς εκδώστε την εντολή όπως το gcc -o remotePC remotePC.c στο τερματικό. Για να εκτελέσετε τον τύπο προγράμματος./remotePC.

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

Η περιγραφή του προγράμματος

Το πρόγραμμα ελέγχει πρώτα αν υπάρχει το αρχείο /dev /ttyACM0 ή ttyACM1. Εάν ναι, το αναγνωριστικό ομάδας του αρχείου έχει ελεγχθεί ότι είναι διαφορετικό από το μηδέν. Αυτό σημαίνει ότι η σειριακή θύρα μπορεί να διαβαστεί και να γραφτεί από τον κοινό χρήστη. Δύο byte με τιμές 0xAA 0x55 γράφονται στη συνέχεια στη θύρα για να σηματοδοτήσουν ότι το πρόγραμμα είναι έτοιμο να λάβει τα δεδομένα. Τα εισερχόμενα δεδομένα συγκρίνονται με τις αποθηκευμένες τιμές. Εάν βρεθεί η αντιστοίχιση, εκτελείται η προκαθορισμένη ενέργεια.

Έλεγχος έντασης

Το πρόγραμμα είναι σε θέση να ενεργοποιήσει/απενεργοποιήσει τον ήχο, να αυξήσει/μειώσει την ένταση του ήχου σε επίπεδο συστήματος. Αυτό επιτυγχάνεται με τη χρήση του προγράμματος pactl. Στη συνέχεια, οι εντολές μοιάζουν με αυτό:

pactl set-sink-mute 0 εναλλαγή

pactl set-sink-volume-0 +10%

pactl set-sink-volume 0 -10%

Εάν είναι απαραίτητο, εγκαταστήστε τα απαιτούμενα πακέτα.

Το στοιχείο ελέγχου VLC Media Player

Το πρόγραμμα μπορεί επίσης να ξεκινήσει/θέσει σε παύση τον ήχο/βίντεο και να αλλάξει το κομμάτι στο προηγούμενο/επόμενο στη λίστα αναπαραγωγής του VLC Media Player. Σε αυτήν την περίπτωση χρησιμοποιείται το Desktop Bus. Οι εντολές:

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Prevenue

Βήμα 3: Ενότητα δέκτη IR

Μονάδα δέκτη IR
Μονάδα δέκτη IR
Μονάδα δέκτη IR
Μονάδα δέκτη IR
Μονάδα δέκτη IR
Μονάδα δέκτη IR

Το τρίτο μέρος του έργου είναι το πιο περίπλοκο αλλά αρκετά απλό ακόμα. Η ιδέα είναι ότι ο δέκτης IR θα εξάγει το σήμα στο MCU που θα το μετατρέψει στον μοναδικό αριθμό. Αυτός ο αριθμός θα μεταδοθεί στη συνέχεια στον υπολογιστή μέσω USB.

Η μονάδα προορίζεται να τοποθετηθεί μέσα στη θήκη του υπολογιστή και να συνδεθεί στην υποδοχή USB της μητρικής πλακέτας με το καλώδιο. Σε περίπτωση που προτιμάτε την εξωτερική σύνδεση με το USB θα πρέπει να κάνετε μικρές ρυθμίσεις.

MCU

Έχω δημιουργήσει τη μονάδα στον μικροελεγκτή PIC16F1829. Η επιλογή του MCU δεν είναι κρίσιμη, μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο MCU εάν είστε σε θέση να προσαρμόσετε τον πηγαίο κώδικα. Έχω επιλέξει αυτό το PIC για δύο λόγους. Πρώτον το είχα διαθέσιμο και δεύτερον οι καρφίτσες του υπέστησαν εν μέρει ζημιά από την εντατική χρήση στα διάφορα έργα δοκιμών. Wantedθελα λοιπόν να το χρησιμοποιήσω στο μόνιμο έργο πριν γίνει εντελώς άχρηστο.:-)

Δέκτη IR

Το δεύτερο μέρος στο οποίο βασίζεται η μονάδα είναι ο δέκτης IR VS1838B - αυτός που αναφέρεται στο 1ο βήμα.

Μετατροπέας UART/USB

Το τρίτο μέρος είναι το MCP2221 που είναι ο μετατροπέας UART/I2C/USB.

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

Η καλωδίωση

Στην πρώτη εικόνα υπάρχει το κύκλωμα δοκιμών στο breadboard. Στο δεύτερο υπάρχει το σχήμα καλωδίωσης.

Η λίστα με τα μέρη

1 τεμ PIC16F1829 (ή οποιοδήποτε άλλο MCU)

1 τεμ VS1838B (ή οποιοσδήποτε άλλος δέκτης IR)

1 τεμ MCP2221 (ή οποιοσδήποτε άλλος μετατροπέας UART/USB)

2 τεμάχια κεφαλίδα 4 ακίδων

1 κεφαλίδα 6 ακίδων

1 τεμ αντίσταση 100R

Αντίσταση 2 τεμ 10Κ

Αντίσταση 2 τεμ 330R

Πυκνωτής 1 τεμ 470 nF

2 τεμ ηλεκτρολυτικός πυκνωτής 4,7 uF

Διακόπτης 1 υπολογιστή (προαιρετικό)

Συναρμολόγηση PCB

Συνδυάστε την ενότητα με τη χρήση του σχηματικού. Μπορείτε είτε να χρησιμοποιήσετε τον γενικό πίνακα είτε να δημιουργήσετε το προσαρμοσμένο PCB. Εάν συμβαίνει το τελευταίο, έχω παράσχει τα αρχεία KiCad στο παρακάτω αρχείο.

Το υλικολογισμικό

Ο πηγαίος κώδικας για το PIC που γράφτηκε με τη χρήση του MPLAB X IDE και του μεταγλωττιστή XC8 είναι διαθέσιμος για λήψη παρακάτω.

Σημειώνει τον πηγαίο κώδικα

Για όσους θα ήθελαν να μάθουν τι ακριβώς κάνει το πρόγραμμα είναι οι ακόλουθες γραμμές.

Αφού ολοκληρωθούν όλες οι ρυθμίσεις, το κόκκινο LED είναι αναμμένο και το MCU περιμένει τα δεδομένα 0x55AA. Μετά από αυτό, η λυχνία LED γίνεται πράσινη και το MCU αρχίζει να ανιχνεύει το σήμα από τον δέκτη IR με τη χρήση των διακοπών. Μετρά και καταγράφει τα χρονικά διαστήματα που το σήμα βρίσκεται σε υψηλά και χαμηλά επίπεδα. Αυτοί οι χρόνοι μετατρέπονται στη συνέχεια στον αριθμό 32-bit που αποστέλλεται στον υπολογιστή.

Η σχέση μεταξύ των χρόνων και του τελικού αριθμού δίνεται από το πρωτόκολλο NEC.

Βήμα 4: Πώς να χρησιμοποιήσετε τη συσκευή

Πώς να χρησιμοποιήσετε τη συσκευή
Πώς να χρησιμοποιήσετε τη συσκευή
Πώς να χρησιμοποιήσετε τη συσκευή
Πώς να χρησιμοποιήσετε τη συσκευή
Πώς να χρησιμοποιήσετε τη συσκευή
Πώς να χρησιμοποιήσετε τη συσκευή

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

Ανεβάστε το υλικολογισμικό στο PIC. Χρησιμοποιώ τον προγραμματιστή PICkit 3.

Σκεύη, εξαρτήματα

Εγκαταστήστε τη μονάδα δέκτη IR όπως φαίνεται στις εικόνες:

  1. Συνδέστε την κεφαλίδα USB είτε στην εσωτερική υποδοχή USB της μητρικής πλακέτας μέσα στη θήκη του υπολογιστή με το κατάλληλο καλώδιο 4 καλωδίων είτε εξωτερικά στην υποδοχή USB με το τυπικό καλώδιο USB. Στη δεύτερη περίπτωση πρέπει να βοηθήσετε τον εαυτό σας με κάποιο τρόπο, π.χ. όπως φαίνεται στην 3η εικόνα για έμπνευση.
  2. Συνδέστε το καλώδιο τροφοδοσίας 5 V από την πηγή τροφοδοσίας μέσα στη θήκη του υπολογιστή στην κεφαλίδα 4 ακίδων. Or τροφοδοτήστε τη μονάδα με άλλο τρόπο σε περίπτωση εξωτερικής χρήσης.

Αναζητήστε την περιγραφή των ακίδων υποδοχής USB της μητρικής πλακέτας. Δεν είμαι σίγουρος αν η καλωδίωση ακολουθεί κάποιο πρότυπο, οπότε είναι καλύτερο να βεβαιωθείτε. Στην περίπτωσή μου υπάρχουν δύο σειρές με 5 ακίδες στην επάνω σειρά και 4 ακίδες στην κάτω. Από αριστερά προς τα δεξιά οι ακίδες είναι + 5 V, D-, D +, Gnd. Ο 5ος πείρος στην πρώτη σειρά δεν είναι συνδεδεμένος. Επισυνάπτω το καλώδιο όπως φαίνεται στη δεύτερη εικόνα.

Λογισμικό

Εκτελέστε το πρόγραμμα στο τερματικό. Εάν όλα πάνε σωστά, το τελευταίο μήνυμα του προγράμματος είναι "αναμονή δεδομένων …". Τώρα, όταν πατάτε το κουμπί στο τηλεχειριστήριο, ο ληφθείς κωδικός θα εμφανιστεί στο τερματικό. Με αυτόν τον τρόπο θα γνωρίζετε ποιο κουμπί εκπέμπει ποιον κωδικό.

Τώρα κάποια προγράμματα προγραμματισμού σας περιμένουν αλλά μην ανησυχείτε. Λίγα πράγματα πρέπει να αλλάξουν στον πηγαίο κώδικα του προγράμματος, ώστε το πρόγραμμα να ανταποκρίνεται στο τηλεχειριστήριό σας. Ανοίξτε το αρχείο remotePC.c στον επεξεργαστή κειμένου ή σε κάποιο IDE αν σας αρέσει και αντικαταστήστε τους κωδικούς μου με τους δικούς σας. Απλώς πατήστε τα κουμπιά που σκοπεύετε να χρησιμοποιήσετε για κάθε ενέργεια ένα προς ένα. Απλώς αντιγράψτε τους κωδικούς που εμφανίζονται στο τερματικό και επικολλήστε τους στον πηγαίο κώδικα στο μέρος με την αντίστοιχη ενέργεια.

Όταν τελειώσετε τερματίστε το πρόγραμμα και επανασυγκολλήστε τον κώδικα με την εντολή gcc -o remotePC remotePC.c. Εκτελέστε ξανά το πρόγραμμα και θα ανταποκρίνεται στο τηλεχειριστήριό σας από εδώ και στο εξής.

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

Συνιστάται: