Indholdsfortegnelse:

USB NEC infrarød sender og modtager: 4 trin (med billeder)
USB NEC infrarød sender og modtager: 4 trin (med billeder)

Video: USB NEC infrarød sender og modtager: 4 trin (med billeder)

Video: USB NEC infrarød sender og modtager: 4 trin (med billeder)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, September
Anonim
USB NEC infrarød sender og modtager
USB NEC infrarød sender og modtager

Dette projekt er en spin-off af et andet projekt, jeg arbejder på, og da der er en fjernbetjening 2017-konkurrence om Instructables, tænkte jeg, at jeg postede dette projekt. Så hvis du kan lide dette projekt, skal du stemme på det. Tak.

Som du måske ved, er jeg en stor fan af Microchip 8-bit PIC-controllere, se:

Jeg bruger JAL programmeringssprog, da det ligner Pascal (som jeg også kan lide). JAL -kompilatoren og bibliotekerne kan downloades fra: https://www.justanotherlanguage.org/downloads (rul ned for den seneste udgivne version).

Normalt skriver jeg selv hele koden for fuldstændig at forstå, hvad jeg laver, men til dette projekt havde jeg brug for at tilslutte PIC'en til USB -porten på pc'en, og derfor havde jeg brug for en JAL USB -seriel driver til denne PIC -controller. Jeg brugte USB seriel driver i JAL download -pakken, som ser ud til at fungere fint. Da denne USB serielle driver blev skrevet til en bestemt PIC, brugte jeg den PIC, som er PIC18F14K50. Denne controller har meget mere funktionalitet, end jeg har brug for til dette projekt, så jeg er i øjeblikket i gang med at få denne USB -driver til at fungere på en enklere PIC -version, PIC16F1455, som også er billigere.

Så hvad handler dette projekt om? Med den enhed, der er nævnt i denne instruktion, kan du sende og modtage Infra Red fjernbetjeningskommandoer fra og til din pc via USB-porten ved hjælp af den populære NEC Infra-Red-protokol. På denne måde kan du overvåge Infra-Red-kommandoer, og du kan styre enhver enhed, der bruger NEC Infra-Red Remote Control-protokollen. Projektet afkoder og oversætter infrarøde meddelelser til en adressebyte og en kommandobyte eller til en gentagelsesmeddelelse. Adressen bruges - naturligvis - til at adressere en bestemt enhed som et tv eller en radio, hvor kommandobyte angiver den funktion, der skal udføres som Lydstyrke op, Lydstyrke ned. Ved siden af afkodning af disse meddelelser kan de også overføres via infrarød ved hjælp af denne enhed.

Trin 1: Nogle oplysninger om NEC infrarød protokol

Nogle oplysninger om NECs infrarøde protokol
Nogle oplysninger om NECs infrarøde protokol

En kort introduktion til denne protokol. NEC Infra Red Remote Control -protokollen bruges i mange enheder og fjernbetjeninger, som du kan købe. Det modulerer et infrarødt signal på en bærer på 38 kHz og bruger pulsafstandskodning til kodning af et logisk '1' og et logisk '0'. Protokollen bruger en simpel kontrol for at se, om meddelelsen er OK ved at sende både adressen og kommandobyten og en omvendt version af både i en og samme meddelelse og kontrollere, om de er ens efter modtagelse. Når der trykkes på en knap på fjernbetjeningen, sender den en komplet infrarød besked med adresse og kommando én gang. Hvis du holder knappen nede, vil der blive sendt en kortere gentagelsesbesked uden adresse- og kommandooplysninger. Gentagelsestiden for de overførte meddelelser, mens knappen holdes nede, er fast.

Flere oplysninger om NEC Infra Red-protokollen kan f.eks. Findes på:

Trin 2: Påkrævede komponenter

Påkrævede komponenter
Påkrævede komponenter
Påkrævede komponenter
Påkrævede komponenter

Du skal have følgende komponenter til dette projekt:

  • PIC mikrokontroller PIC18F14K50, se:
  • Krystal 12 MHz
  • Keramisk kondensator: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolytisk kondensator 47 uF/16V
  • Infra Red Receiver TSOP4838, se:
  • Modstande: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • Lysdioder: 2 * infrarød, 1 gul, 1 grøn, 1 rød
  • Transistor BC640, se:
  • Jumper (valgfri)
  • USB -stik

Se skematisk diagram om, hvordan komponenterne tilsluttes. Jeg brugte et brødbræt til dette projekt, som du kan se på billedet og i videoen. Kredsløbet får strøm fra pc'ens USB -port.

Trin 3: Softwaren og driften af enheden

Som allerede nævnt er softwaren skrevet til en PIC18F14K50. Det blev skrevet i JAL. Intel Hex -filen til programmering af din PIC er vedhæftet. Softwaren udfører følgende funktioner:

  • Afkodning af NEC infrarøde beskeder og send det til pc'en via USB. Meddelelsen dekodes fra bitstrømmen, der genereres af Infra-Red-modtageren og oversættes til en adresse + kommandobesked eller en gentagelsesmeddelelse.
  • Afsendelse af NEC Infra Red -beskeder modtaget fra pc'en via USB. Bemærk, at softwaren også skaber en 38 kHz bærefrekvens, som direkte driver infrarøde lysdioder. Parallelt med den infrarøde LED er der tilsluttet en gul LED for at gøre transmissionen af en besked synlig.

Som standard dæmper dette kredsløb den infrarøde modtager under transmission af en infrarød besked. Hvis en jumper er placeret i positionen 'Unmute', deaktiverer den denne lydløs -funktion. I så fald vil den transmitterede infrarøde besked også blive afkodet parallelt med transmissionen, og efter fuldstændig modtagelse sendes den som en modtaget infrarød besked til pc'en. Hvis der modtages en gyldig NEC infrarød meddelelse, lyser den røde 'IR OK' LED.

For at betjene denne enhed skal du have et Terminal Emulator -program på din pc. Jeg brugte 'Termite' til dette formål. Når enheden er forbundet til pc'en, genkendes den automatisk som en ekstra COM-port af Windows 10, da der ser ud til at være en Microchip-driver til denne enhed i Windows 10 forudinstalleret. Indstillingen for denne COM-port skal være: 19200 baud 8 bits, 1 stop-bit, ingen paritet og brug af RTS/CTS flowkontrol. Baudhastigheden kan indstilles til en hvilken som helst anden værdi, hvis det er nødvendigt, så en baudhastighed på 115200 vil også fungere. Når enheden er konfigureret via USB -porten ved at oprette forbindelse til den via Terminal Emulator -programmet, lyser den grønne 'Konfigurerede' LED.

Modtagelse af infrarøde beskeder

Når der modtages en infrarød meddelelse, vises følgende i Terminal Emulator-programmet:

  • 'A: xx C: xx' i tilfælde af en fuldstændig meddelelse, hvor xx er det hexadecimale nummer for adressen (A) og kommandoen (C). Værdier for begge kan variere fra 0x00 (0) til 0xFF (255).
  • 'Gentag' i tilfælde af en gentagen besked.

Afsendelse af infrarøde beskeder

Til dette havde jeg brug for at definere en protokol, der fortæller enheden, hvad den skal gøre. Da vi bruger en terminalemulator, brugte jeg ASCII -tegn til at definere en besked. Protokollen til at sende en kommando til enheden bruger følgende format: '! AACCRR#', hvor (alle tegn er store og små bogstaver):

  • '!' Angiver begyndelsen af meddelelsen.
  • 'AA' er værdien af adressen i hexadecimal notation, så '0' til '9' og 'A' til 'F',
  • 'CC' er værdien af kommandoen i hexadecimal notation, så '0' til '9' og 'A' til 'F'
  • 'RR' er antallet af gentagne meddelelser, der skal transmitteres i hexadecimal notation, så '0' til '9' og 'A' til 'F'. Værdien '00' betyder, at der ikke sendes en gentagelsesbesked.

Et eksempel på en besked med adresse 0x07, kommando 0x05 og 3 gentagelser skal derefter skrives som følger i Terminal Emulator -programmet:! 070503#

Enheden har forskellige svar, efter at en kommando er sendt fra pc'en:

  • 'Y' betyder, at der blev sendt en besked. Bemærk, at dette svar er givet, efter at alle meddelelser - inklusive alle gentagelser - er sendt, så det kan tage noget tid, før dette svar er givet, når der skal sendes mange gentagne meddelelser.
  • 'N' betyder, at der var en ulovlig karakter i meddelelsen, der blev sendt til pc'en.
  • 'B' betyder, at en infrarød transmission stadig var optaget, da kommandoen blev givet.
  • ?’Betyder, at enheden forventede’!’, Men den modtog noget andet.

Trin 4:

Jeg lavede en kort video af enheden i aktion. Til denne video brugte jeg en kommerciel LED -lampe med fjernbetjening for at se, at både transmission og modtagelse fungerer. Videoen viser følgende:

  • Konfiguration af USB -enheden fra Terminal Emulation -programmet. Når enheden er konfigureret, reagerer den med meddelelsen 'USB NEC Infrarød sender og modtager'. På enheden er den grønne LED tændt, hvilket viser, at enheden er konfigureret af pc'en.
  • Lampen tændes med fjernbetjeningen. Til dette bruger fjernbetjeningen adressen 0x00 og kommandoen 0x07, som afkodes af enheden og vises på pc'en.
  • Lampen slukkes med fjernbetjeningen. Til dette bruger fjernbetjeningen adressen 0x00 og kommandoen 0x06, som afkodes af enheden og vises på pc'en.
  • Lampen tændes ved at skrive den samme fjernbetjeningskommando på pc'en med en gentagelsesværdi på 0 (ingen gentagelse), så ved at skrive '! 000700#'. Lampen tændes.
  • Ændring af lampens farve til blå ved at bruge adressen 0x00 og kommandoen 0x0A og bruge 0x30 gentagelser. Den gule lysdiode, der er forbundet parallelt med infrarøde lysdioder, blinker og viser transmissionen af gentagelsesmeddelelsen via infrarød. Den indtastede besked er '! 000A30#'.

Bemærk, at under optagelsen af denne video var jumperforbindelsen 'Unmute' aktiv, så du også kunne se den transmitterede meddelelse '! 000700#', der blev modtaget som 'A: 00 C: 07' i Terminal Emulation -programmet. I demonstrationen af lampen, der farver blå, kan du også se, at den røde LED lyser, så længe de gyldige - gentag - meddelelser transmitteres, da de modtages og afkodes parallelt med transmissionen af gentagelsesmeddelelserne.

God fornøjelse med at bygge dit eget projekt og glæde dig til dine reaktioner. Glem ikke at stemme på dette projekt i fjernbetjeningen 2017 -konkurrencen, hvis du kan lide det. Tak igen.

Anbefalede: