Indholdsfortegnelse:
- Trin 1: Idéen
- Trin 2: Oprettelse af controlleren
- Trin 3: Tilpasning af controlleren
- Trin 4: Værktøjer til at forenkle skræddersyning
Video: Falling in Stm32: Fjernbetjening til Home Media Center: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Dette er en komplet prototype til fjernbetjening til hjemmemediacenter baseret på smt32 mikrocontroller, stm32f103c8t6 kendt som 'bluepill' -kort. Antag, at du bruger en pc til hjemme mediecenter. Det er en meget fleksibel løsning, som giver dig mulighed for at placere et enormt videobibliotek på den interne harddisk, eller du kan afspille video fra netværket, f.eks. Youtube eller deromkring, du har slet ingen problemer med codecs eller videoafspilning, fordi det er meget let at opdatere softwareafspilleren når som helst. Den største ulempe ved denne løsning er, at du skal bruge mus og tastatur til at styre din afspilning. IR -fjernbetjeningen er meget praktisk til dette.
I denne artikel vil jeg vise, hvordan du opretter din egen fjernbetjening ved hjælp af chip bluepill board.
Trin 1: Idéen
Hovedideen er meget enkel: bluepill -kortet har indlejret usb -port og kan fungere som USB HID -tastatur. Hvis vi tilslutter IR -modtager til kortet, kan det oversætte kommandoen fra din IR -fjernbetjening til 'tastetryk' på det virtuelle tastatur. Der kræves ingen ekstra drivere!
Der er mange IR -protokoller i verden omkring os. Hvert tv hos VCS -leverandører har sin egen IR -protokol. Men alle disse protokoller har en ting fælles: de bruger pulsmodulation til at kode signalet. Normalt er der en indledning: lang impuls før den første bit i pakken. Derefter sender IR -kontrol hele pakken med 0 og 1 og afslutter transmissionen med finish lang puls. For at afkode bit skal vi måle længdepulsen og længden af toppen. Normalt er spidslængden for logik 0 og logik 1 den samme, forskellen er i hele pulslængden.
Stm32 -mikrokontrollerne har indlejret funktion til at fange PWM -signal. Næsten hver timer på mikrokontrolleren kan sættes i 'PWM signal capture more', når kanalvariablerne i timeren gemmer den samlede længde af pulsen og dens maksimal længde. Her skal jeg fremhæve den lille detalje: Når IR -modtageren fanger signalet, bliver spændingen på dens arbejdsstift 0 og i inaktiv tilstand er spændingen i arbejdsstiften en 5 eller 3,3 volt afhængigt af IR -modtagerens forsyningsspænding. Det vil sige, at modtageren 'inverterer' signalet.
Med PWM -optagelsestilstand kan stm32 -mikrocontrolleren let omdannes til en IR -fjernoversætter fra IR -fjernbetjening til tastaturkoder. Derefter kan du starte din foretrukne visualiseringssoftware, f.eks. Kodi fra VLC for at afspille din yndlingsfilm på mediecenteret.
Trin 2: Oprettelse af controlleren
For at programmere stm32 mikro controller vil jeg gerne anbefale den gratis software fra STM: system workbench (aka ac6) og board konfigurationsværktøjet cubeMX. For at uploade softwaren til mikrocontrolleren kan chipklonen i ST-Link V2-adapteren bruges. Systemarbejdebænkprojektfiler knyttet til dette trin, F1-IR_remote.zip-fil.
Kortets konfigurationsværktøj forenkler processen med den indledende hardwarekonfiguration af vores mikrocontroller.
Hvis du bruger værktøjet til systemarbejdsbænk, kan du bare bruge det downloadede projekt. Men hvis du ønsker at undersøge projektet mere detaljeret, kan du oprette tavlekonfigurationen i cubeMX:
- Opret nyt projekt, og vælg tavle stm32f103c8
- Vælg 'Crystal/Ceramic Resonator' for punktet 'High Speed Clock (HSE)' i RCC -menuen.
- Vælg 'Serial Wire' for elementet 'Debug' i SYS -menuen.
-
Konfigurer timeren #2 (TIM2 -menuen) i PWM -optagelsestilstand som vist på billedet:
- Slave -tilstand -> Nulstil tilstand
- Udløserkilde -> TI1FP1
- Urkilde -> Intern ur
- Channel1 -> Input Capture direkte tilstand
- Indstil afkrydsningsfeltet 'Enhed (FS) i USB -menuen
- Vælg rullemenuen 'Human Interface Device Class (HID)' i elementet 'Class of FS IP' i USB_DEVICE menuen
- I urkonfigurationspanelet skal du sørge for at levere 72 MHz til timeren #2, fordi vi har brug for timertælling ved hver 1 mks.
- Konfigurer USB -enheden i konfigurationspanelet som vist på billedet
-
Konfigurer timer#2 i konfigurationspanelet som følger:
- Prescaller - 71 (fra 0 til 71) - 1 mikro sekund sekund!
- Tællertilstand - op
- Tællerperiode - 39999 (vi burde kunne måle den lange puls)
- Input capture channel1 - Falling Edge (husk at signalet fra IR -modtageren er inverteret)
I PWM -indspilningstilstand fungerer timeren#2 følgende:
Når den faldende front blev registreret, ville timertælleren blive gemt i kanal1 -registret, og timertælleren ville blive nulstillet med 0. Derefter ville timeren fortsætte med at tælle retning. Så vi kan let måle pulslængden i mikrosekunder.
Som standard simulerer STM32 USB HID -klassen USB -musen. Her kan du finde vejledningen til at gøre controlleren til tastatur.
Trin 3: Tilpasning af controlleren
Projektet fungerer med Panasonic fjernbetjening og Kodi mediecenter. For at skræddersy projektet til din egen controller skal du tilføje kodearrayet til din fjernbetjening, ligesom jeg gjorde for panasonic -fjernbetjeningen (panasonicCode) til Inc/code.h -overskriften. Som du kan se, har hver kommando unikt ID (i IRcommmand enum). Der er 24 kommandoer (0-23) genkendt af projektet. Kommandoen er sorteret efter relevansen.
typedef enum {IR_play = 0, IR_stop, IR_pause, IR_forward, IR_rewind, IR_last_channel, IR_OSD, IR_prevous_menu, IR_left, IR_right, IR_up, IR_down, IR_enter, IR_chapter_next, IR_chapter_previous, IR_info, IR_subtitle, IR_nxt_subtitle, IR_pos_subtitle, IR_teletext, IR_zoom, IR_mark_watched, IR_playlist, IR_power, IR_unknown} IRkommando;
const uint16_t kbrd_kodi = {HID_KEY_P, HID_KEY_X, HID_KEY_SPACE, HID_KEY_F, HID_KEY_R, HID_KEY_0, HID_KEY_M, HID_KEY_BACKSPACE, HID_KEY_LEFT, HID_KEY_RIGHT, HID_KEY_UP, HID_KEY_DOWN, HID_KEY_ENTER, HID_KEY_DOT, HID_KEY_COMMA, HID_KEY_S, HID_KEY_I, HID_KEY_T, HID_KEY_L, (uint16_t (HID_LEFT_CTRL) << 8) | HID_KEY_T, HID_KEY_V, HID_KEY_Z, HID_KEY_W, HID_KEY_C};
const uint32_t panasonicCode = {0xd00505d, 0xd00000d, 0xd00606d, 0xd00525f, 0xd00929f, 0x100eced, 0xd00101d, 0x1002b2a, 0x1007273, 0x100f2f3, 0x1005253, 0x100d2d3, 0x1009293, 0x1002c2d, 0x100acad, 0x1009c9d, 0x1008e8f, 0x1004e4f, 0x100cecf, 0x1000e0f, 0x180c041, 0x1801091, 0x180a021, 0xd00bcb1};
Derefter skal du tilføje din egen fjernbetjening i init () -metoden i IR.cpp med funktionen addRemote (). Funktionsargumenterne er:
- Antal bits i pakken
- Pakken Header længde
- 'Nul' bitlængde
- 'En' bit længde
- Markør til kodearrayet
- Nummerelementer i arrayet
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode)/sizeof (uint32_t));
}
Filen indeholder også en anden tabel til konvertering af kommandoer til tastaturkoder. Kbdr_kodi -arrayet indeholder nøglekoderne til Kodi mediecenter. Du kan tilføje endnu et array til dit eget mediecenterprogram, f.eks. Vlc -afspiller. Hvis du tilføjer en anden mediecenter -applikationstabel, ville du oprette et andet objekt KBD og initialisere det i main.cpp.
Trin 4: Værktøjer til at forenkle skræddersyning
Der er to andre projekter i depotet
- IR -undersøgelse - gør det muligt at måle timingparametrene for signalerne på din fjernbetjening.
- IR_capture - gør det muligt at fange HEX -koderne på din fjernbetjening.
Bare indlæs IR -undersøgelsesprojekt og tilslut USB -porten på bluepill -kortet til din computer. Start derefter et hvilket som helst terminalprogram på den virtuelle serielle portenhed, der svarer til stm32 -kortet. Mens du trykker på knapperne på din fjernbetjening, måler programmet de modtagne pulser og udskriver de gennemsnitlige tider for forskellige pulser. Det skulle forenkle at registrere pulslængden for pakkeoverskriften, nul og en bit.
I IR -undersøgelsesprojektet arbejder timeren #2 i PWM -optagelsestilstand med to kanaler: kanal én indfanger hele pulslængden og kanal2 indfanger spidslængden. Når den faldende signalkant blev registreret, gemtes timerværdien i kanal 1 -registret og timeren nulstilles med 0. Når signalets stigende kant blev registreret, gemtes timertælleren i kanal 2 -registeret.
For at fange knapkoderne på din egen fjernbetjening kan IR_capture -projektet bruges. I main.c -filen skal du tilføje fjerndefinitionen som denne:
IRcode panasonic = {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60};
- .hdr - headerlængden i mks
- .bits - antallet af bits i pakken
- .zero - længden af nul -bit
- .one - længden den ene bit
- .dev - afvigelsen (forskellen i tidspunkter, der kan accepteres). Normalt er det 1/10 af den mindste længde.
Tilføj derefter din fjernbetjening til listen over understøttede fjernbetjeninger:
const IRcode* remote [2] = {& panasonic, & pioneer};
Anbefalede:
TV -fjernbetjening Bliver en RF -fjernbetjening -- NRF24L01+ Tutorial: 5 trin (med billeder)
TV -fjernbetjening Bliver en RF -fjernbetjening || NRF24L01+ Tutorial: I dette projekt vil jeg vise dig, hvordan jeg brugte den populære nRF24L01+ RF IC til at justere lysstyrken på en LED -strimmel trådløst gennem tre ubrugelige knapper på en fjernsyns fjernbetjening. Lad os komme igang
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores
1981 Bærbar VCR Raspberry PI Media Center: 12 trin (med billeder)
1981 Bærbar videobåndoptager Raspberry PI Media Center: Dette er en tidlig 80'er Sharp VC -2300H bærbar videobåndoptager, som jeg har konverteret - den har nu en Raspberry Pi i hjertet, der kører den fremragende Raspbmc mediecenter software. Andre opgraderinger inkluderer et smart arduino-baseret ur og et EL-kabel "tape"
Konverter din IR -fjernbetjening til RF -fjernbetjening: 9 trin (med billeder)
Konverter din IR -fjernbetjening til RF -fjernbetjening: I dagens Instructable viser jeg dig, hvordan du kan bruge et generisk RF -modul uden en mikrokontroller, som i sidste ende vil føre os til at bygge et projekt, hvor du kan konvertere en IR -fjernbetjening af enhver enhed til en RF Fjern. Den største fordel ved at konvertere en
Styr dine elektriske apparater med din tv -fjernbetjening (ir -fjernbetjening) med temperatur- og luftfugtighedsvisning: 9 trin
Styr dig elektriske apparater med din tv -fjernbetjening (ir -fjernbetjening) med temperatur- og luftfugtighedsdisplay: hej, jeg er Abhay, og det er min første blog om Instructables, og i dag vil jeg vise dig, hvordan du styrer dine elektriske apparater med din fjernsyns fjernbetjening ved at bygge denne simpelt projekt. tak til atl lab for støtte og levering af materialet