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

USB NEC Υπέρυθρο πομπός και δέκτης: 4 βήματα (με εικόνες)
USB NEC Υπέρυθρο πομπός και δέκτης: 4 βήματα (με εικόνες)

Βίντεο: USB NEC Υπέρυθρο πομπός και δέκτης: 4 βήματα (με εικόνες)

Βίντεο: USB NEC Υπέρυθρο πομπός και δέκτης: 4 βήματα (με εικόνες)
Βίντεο: Πολλαπλοί παίκτες 3D εναέριες μάχες μαχητών!! 🛩✈🛫🛬 - Air Wars 3 GamePlay 🎮📱 2024, Ιούνιος
Anonim
USB NEC Υπέρυθρο πομπός και δέκτης
USB NEC Υπέρυθρο πομπός και δέκτης

Αυτό το έργο είναι ένα spin-off ενός άλλου έργου που δουλεύω και δεδομένου ότι υπάρχει ένας διαγωνισμός Remote Control 2017 στο Instructables, σκέφτηκα ότι δημοσίευσα αυτό το έργο. Αν λοιπόν σας αρέσει αυτό το έργο, ψηφίστε το. Ευχαριστώ.

Όπως ίσως γνωρίζετε, είμαι μεγάλος οπαδός των ελεγκτών PIC 8-bit Microchip, δείτε:

Χρησιμοποιώ τη γλώσσα προγραμματισμού JAL αφού μοιάζει με Pascal (που μου αρέσει επίσης). Μπορείτε να κατεβάσετε τον μεταγλωττιστή JAL και τις βιβλιοθήκες από: https://www.justanotherlanguage.org/downloads (κάντε κύλιση προς τα κάτω για την πιο πρόσφατη έκδοση).

Κανονικά γράφω όλο τον κώδικα μόνος μου για να καταλάβω πλήρως τι κάνω, αλλά για αυτό το έργο χρειάστηκε να συνδέσω το PIC στη θύρα USB του υπολογιστή και έτσι χρειάστηκα ένα σειριακό πρόγραμμα οδήγησης JAL USB για αυτόν τον ελεγκτή PIC. Χρησιμοποίησα το σειριακό πρόγραμμα οδήγησης USB στο πακέτο λήψης JAL που φαίνεται να λειτουργεί καλά. Δεδομένου ότι αυτό το σειριακό πρόγραμμα οδήγησης USB γράφτηκε για έναν συγκεκριμένο PIC, χρησιμοποίησα αυτό το PIC που είναι το PIC18F14K50. Αυτός ο ελεγκτής έχει πολύ περισσότερη λειτουργικότητα από ό, τι χρειάζομαι για αυτό το έργο, έτσι είμαι αυτή τη στιγμή στη διαδικασία να κάνω αυτό το πρόγραμμα οδήγησης USB να δουλέψει σε μια απλούστερη έκδοση PIC, την PIC16F1455, η οποία είναι επίσης φθηνότερη.

Τι σημαίνει λοιπόν αυτό το έργο; Με τη συσκευή που αναφέρεται σε αυτό το Instructables μπορείτε να στείλετε και να λάβετε εντολές τηλεχειριστηρίου υπερύθρων από και προς τον υπολογιστή σας μέσω της θύρας USB χρησιμοποιώντας το δημοφιλές πρωτόκολλο υπέρυθρων NEC. Με αυτόν τον τρόπο μπορείτε να παρακολουθείτε τις εντολές υπέρυθρης ακτινοβολίας και μπορείτε να ελέγχετε οποιαδήποτε συσκευή χρησιμοποιεί το πρωτόκολλο τηλεχειριστηρίου υπερύθρων NEC. Το έργο αποκωδικοποιεί και μεταφράζει μηνύματα υπέρυθρης ακτινοβολίας σε byte διεύθυνσης και byte εντολής ή σε μήνυμα επανάληψης. Η διεύθυνση - φυσικά - χρησιμοποιείται για να απευθυνθεί σε μια συγκεκριμένη συσκευή όπως μια τηλεόραση ή ένα ραδιόφωνο, όπου το byte εντολών υποδεικνύει τη λειτουργία που πρέπει να εκτελεστεί όπως η ένταση ήχου, η ένταση ήχου. Δίπλα στην αποκωδικοποίηση αυτών των μηνυμάτων, μπορούν επίσης να μεταδοθούν μέσω υπέρυθρης ακτινοβολίας χρησιμοποιώντας αυτήν τη συσκευή.

Βήμα 1: Μερικές πληροφορίες σχετικά με το πρωτόκολλο υπέρυθρης ακτινοβολίας NEC

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

Μια σύντομη εισαγωγή σε αυτό το πρωτόκολλο. Το πρωτόκολλο NEC Infra Red Remote Control χρησιμοποιείται σε πολλές συσκευές και τηλεχειριστήρια που μπορείτε να αγοράσετε. Διαμορφώνει ένα υπέρυθρο σήμα σε φορέα 38 kHz και χρησιμοποιεί κωδικοποίηση απόστασης παλμού για την κωδικοποίηση ενός λογικού «1» και ενός λογικού «0». Το πρωτόκολλο χρησιμοποιεί έναν απλό έλεγχο για να διαπιστώσει εάν το μήνυμα είναι εντάξει στέλνοντας τόσο τη διεύθυνση όσο και το byte εντολής και μια ανεστραμμένη έκδοση και των δύο σε ένα και το αυτό μήνυμα και ελέγχοντας αν είναι τα ίδια μετά τη λήψη. Όταν πατηθεί ένα κουμπί στο τηλεχειριστήριο στέλνει ένα πλήρες υπέρυθρο μήνυμα με διεύθυνση και εντολή μία φορά. Κρατώντας πατημένο το κουμπί θα έχει ως αποτέλεσμα την αποστολή συντομότερου μηνύματος επανάληψης χωρίς πληροφορίες διεύθυνσης και εντολής. Ο χρόνος επανάληψης των εκπεμπόμενων μηνυμάτων ενώ κρατάτε πατημένο το κουμπί είναι σταθερός.

Περισσότερες πληροφορίες σχετικά με το πρωτόκολλο NEC Infra Red μπορείτε να βρείτε στη διεύθυνση:

Βήμα 2: Απαιτούμενα εξαρτήματα

Απαιτούμενα εξαρτήματα
Απαιτούμενα εξαρτήματα
Απαιτούμενα εξαρτήματα
Απαιτούμενα εξαρτήματα

Πρέπει να έχετε τα ακόλουθα στοιχεία για αυτό το έργο:

  • Μικροελεγκτής PIC PIC18F14K50, δείτε:
  • Κρύσταλλος 12 MHz
  • Κεραμικός πυκνωτής: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Ηλεκτρολυτικός πυκνωτής 47 uF/16V
  • Υπέρυθρο Δέκτης TSOP4838, δείτε:
  • Αντιστάσεις: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED: 2 * Υπέρυθρο, 1 Κεχριμπάρι, 1 Πράσινο, 1 Κόκκινο
  • Τρανζίστορ BC640, δείτε:
  • Μπλουζάκι (προαιρετικό)
  • Συνδετήρας USB

Δείτε το σχηματικό διάγραμμα για τον τρόπο σύνδεσης των εξαρτημάτων. Χρησιμοποίησα ένα breadboard για αυτό το έργο όπως μπορείτε να δείτε στην εικόνα και στο βίντεο. Το κύκλωμα παίρνει την ισχύ του από τη θύρα USB του υπολογιστή.

Βήμα 3: Το λογισμικό και η λειτουργία της συσκευής

Όπως ήδη αναφέρθηκε, το λογισμικό είναι γραμμένο για PIC18F14K50. Γράφτηκε σε JAL. Επισυνάπτεται το αρχείο Intel Hex για τον προγραμματισμό του PIC σας. Το λογισμικό εκτελεί τις ακόλουθες λειτουργίες:

  • Αποκωδικοποίηση μηνυμάτων υπερύθρων NEC και αποστολή στον υπολογιστή μέσω USB. Το μήνυμα αποκωδικοποιείται από τη ροή δυαδικών ψηφίων που δημιουργείται από τον δέκτη υπερύθρων και μεταφράζεται σε μια διεύθυνση + μήνυμα εντολής ή ένα μήνυμα επανάληψης.
  • Αποστολή μηνυμάτων υπερύθρων NEC που λαμβάνονται από τον υπολογιστή μέσω USB. Σημειώστε ότι το λογισμικό δημιουργεί επίσης τη συχνότητα φορέα 38 kHz που οδηγεί απευθείας τα LED υπέρυθρης ακτινοβολίας. Παράλληλα με το LED υπέρυθρης ακτινοβολίας είναι συνδεδεμένο ένα πορτοκαλί LED για να κάνει ορατή τη μετάδοση ενός μηνύματος.

Από προεπιλογή, αυτό το κύκλωμα θα σβήσει τον δέκτη υπερύθρων κατά τη μετάδοση ενός μηνύματος υπέρυθρης ακτινοβολίας. Εάν ένας βραχυκυκλωτήρας τοποθετηθεί στη θέση "Απενεργοποίηση", θα απενεργοποιήσει αυτήν τη λειτουργία σίγασης. Σε αυτή την περίπτωση, το μεταδιδόμενο μήνυμα υπέρυθρων θα αποκωδικοποιηθεί επίσης παράλληλα με τη μετάδοση και μετά από πλήρη λήψη θα σταλεί ως ληφθέν μήνυμα υπέρυθρων στον υπολογιστή. Εάν ληφθεί ένα έγκυρο μήνυμα υπέρυθρης ακτινοβολίας NEC, η κόκκινη λυχνία «IR OK» θα ανάψει.

Για να λειτουργήσετε αυτήν τη συσκευή πρέπει να έχετε ένα πρόγραμμα Terminal Emulator στον υπολογιστή σας. Χρησιμοποίησα τον «Τερμίτη» για αυτόν τον σκοπό. Όταν η συσκευή είναι συνδεδεμένη στον υπολογιστή, θα αναγνωρίζεται αυτόματα ως πρόσθετη θύρα COM από τα Windows 10, καθώς φαίνεται ότι υπάρχει πρόγραμμα οδήγησης Microchip για αυτήν τη συσκευή στα Windows 10 προεγκατεστημένο. Η ρύθμιση για αυτήν τη θύρα COM πρέπει να είναι: 19200 baud 8 bit, 1 stop-bit, χωρίς ισοτιμία και χρήση ελέγχου ροής RTS/CTS. Ο ρυθμός baud μπορεί να ρυθμιστεί σε οποιαδήποτε άλλη τιμή, αν χρειαστεί, έτσι θα λειτουργήσει και ο ρυθμός baud των 115200. Μόλις η συσκευή διαμορφωθεί μέσω της θύρας USB, συνδέοντας την μέσω του προγράμματος Terminal Emulator, θα ανάψει η πράσινη λυχνία «Διαμόρφωση».

Λήψη υπέρυθρων μηνυμάτων

Όταν λαμβάνεται ένα μήνυμα υπέρυθρης ακτινοβολίας, τα ακόλουθα θα εμφανίζονται στο πρόγραμμα Terminal Emulator:

  • ‘A: xx C: xx’ σε περίπτωση πλήρους μηνύματος, όπου xx είναι ο δεκαεξαδικός αριθμός της διεύθυνσης (A) και της εντολής (C). Οι τιμές και για τα δύο μπορεί να κυμαίνονται από 0x00 (0) έως 0xFF (255).
  • «Επανάληψη» σε περίπτωση επανάληψης μηνύματος.

Αποστολή μηνυμάτων υπερύθρων

Για αυτό έπρεπε να ορίσω ένα πρωτόκολλο που λέει στη συσκευή τι να κάνει. Δεδομένου ότι χρησιμοποιούμε έναν εξομοιωτή τερματικού, χρησιμοποίησα χαρακτήρες ASCII για να ορίσω ένα μήνυμα. Το πρωτόκολλο για την αποστολή μιας εντολής στη συσκευή χρησιμοποιεί την ακόλουθη μορφή: ‘! AACCRR#’, όπου (όλοι οι χαρακτήρες δεν έχουν διάκριση πεζών -κεφαλαίων):

  • «!» Υποδηλώνει την έναρξη του μηνύματος.
  • Το "AA" είναι η τιμή της διεύθυνσης σε δεκαεξαδική σημειολογία, οπότε "0" έως "9" και "A" έως "F",
  • "CC" είναι η τιμή της εντολής σε δεκαεξαδική σημειογραφία, έτσι "0" έως "9" και "A" έως "F"
  • Το «RR» είναι ο αριθμός των επαναλαμβανόμενων μηνυμάτων που πρέπει να μεταδοθούν σε δεκαεξαδική σημειογραφία, ώστε «0» στο «9» και «Α» στο «F». Η τιμή «00» σημαίνει ότι δεν αποστέλλεται επαναλαμβανόμενο μήνυμα.

Ένα παράδειγμα μηνύματος με διεύθυνση 0x07, εντολή 0x05 και 3 επαναλήψεις θα πρέπει στη συνέχεια να πληκτρολογηθούν ως εξής στο πρόγραμμα Terminal Emulator:! 070503#

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

  • «Υ» σημαίνει ότι μεταδόθηκε ένα μήνυμα. Σημειώστε ότι αυτή η απάντηση δίνεται μετά τη μετάδοση όλων των μηνυμάτων - συμπεριλαμβανομένων όλων των επαναλήψεων - οπότε μπορεί να χρειαστεί λίγος χρόνος για να δοθεί αυτή η απάντηση όταν πρέπει να μεταδοθούν πολλά επαναλαμβανόμενα μηνύματα.
  • «Ν» σημαίνει ότι υπήρχε παράνομος χαρακτήρας στο μήνυμα που στάλθηκε στον υπολογιστή.
  • «Β» σημαίνει ότι μια μετάδοση υπέρυθρων ήταν ακόμη απασχολημένη όταν δόθηκε η εντολή.
  • ?’Σημαίνει ότι η συσκευή περίμενε‘!’Αλλά έλαβε κάτι άλλο.

Βήμα 4:

Έκανα ένα σύντομο βίντεο της συσκευής σε δράση. Για αυτό το βίντεο χρησιμοποίησα μια εμπορική λυχνία LED με το τηλεχειριστήριό της για να δω ότι λειτουργεί τόσο η μετάδοση όσο και η λήψη. Το βίντεο δείχνει τα εξής:

  • Διαμόρφωση της συσκευής USB από το πρόγραμμα Terminal Emulation. Όταν η συσκευή έχει ρυθμιστεί, αποκρίνεται με το μήνυμα «USB NEC Infra Red Transmitter and Receiver». Στη συσκευή είναι ενεργοποιημένη η πράσινη λυχνία LED που δείχνει ότι η συσκευή έχει διαμορφωθεί από τον υπολογιστή.
  • Η λυχνία ανάβει με το Τηλεχειριστήριο. Για αυτό το τηλεχειριστήριο χρησιμοποιεί τη διεύθυνση 0x00 και την εντολή 0x07 η οποία αποκωδικοποιείται από τη συσκευή και εμφανίζεται στον υπολογιστή.
  • Η λυχνία σβήνει με το Τηλεχειριστήριο. Για αυτό το τηλεχειριστήριο χρησιμοποιεί τη διεύθυνση 0x00 και την εντολή 0x06 η οποία αποκωδικοποιείται από τη συσκευή και εμφανίζεται στον υπολογιστή.
  • Η λυχνία ανάβει πληκτρολογώντας την ίδια εντολή Τηλεχειριστηρίου στον υπολογιστή με τιμή επανάληψης 0 (χωρίς επανάληψη), πληκτρολογώντας ‘! 000700#’. Η λάμπα ανάβει.
  • Αλλάζοντας το χρώμα της λάμπας σε μπλε χρησιμοποιώντας τη διεύθυνση 0x00 και την εντολή 0x0A και χρησιμοποιώντας τις επαναλήψεις 0x30. Το Amber Led, το οποίο συνδέεται παράλληλα με τα LED υπέρυθρης ακτινοβολίας, αναβοσβήνει δείχνοντας τη μετάδοση του επαναλαμβανόμενου μηνύματος μέσω του υπέρυθρου. Το πληκτρολογημένο μήνυμα είναι "! 000A30#".

Λάβετε υπόψη ότι κατά την εγγραφή αυτού του βίντεο η σύνδεση βραχυκυκλωτήρα "Απενεργοποίηση" ήταν ενεργή, ώστε να μπορείτε επίσης να δείτε το μεταδιδόμενο μήνυμα "! 000700#", να λαμβάνεται ως "A: 00 C: 07" στο πρόγραμμα Terminal Emulation. Στην επίδειξη του λαμπτήρα με μπλε χρώμα μπορείτε επίσης να δείτε ότι η κόκκινη λυχνία LED ανάβει όσο διαβιβάζονται τα έγκυρα - επαναλαμβανόμενα - μηνύματα αφού λαμβάνονται και αποκωδικοποιούνται παράλληλα με τη μετάδοση των επαναλαμβανόμενων μηνυμάτων.

Διασκεδάστε χτίζοντας το δικό σας έργο και περιμένετε τις αντιδράσεις σας. Μην ξεχάσετε να ψηφίσετε για αυτό το έργο στο διαγωνισμό Remote Control 2017 αν σας αρέσει. Ευχαριστώ και πάλι.

Συνιστάται: