INHOUDSOPGAWE:
- Stap 1: Die idee
- Stap 2: Skep die beheerder
- Stap 3: Pas die beheerder aan
- Stap 4: Gereedskap om kleremakery te vereenvoudig
Video: Val in Stm32: Afstandsbediening vir Home Media Center: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Dit is 'n volledige prototipe vir afstandsbediening vir tuismediasentrum, gebaseer op smt32 -mikrobeheerder, stm32f103c8t6, bekend as 'bluepill' -bord. Gestel u gebruik 'n rekenaar vir tuismediasentrum. Dit is 'n baie buigsame oplossing, waarmee u 'n groot videobiblioteek op die interne hardeskyf kan plaas, of u kan video vanaf die netwerk speel, byvoorbeeld YouTube of so, u het geen probleme met codecs of video speel nie, want dit is baie maklik om die sagteware -speler enige tyd op te dateer. Die grootste nadeel van hierdie oplossing is dat u die muis en die sleutelbord moet gebruik om u afspeel te beheer. Die IR -afstandsbediening is baie gerieflik hiervoor.
In hierdie artikel sal ek wys hoe u 'n eie afstandsbediening kan maak met 'n chip bluepill -bord.
Stap 1: Die idee
Die hoofgedagte is baie eenvoudig: die bloupilbord het 'n ingeboude usb -poort en kan dien as 'n USB HID -sleutelbord. As ons 'n IR -ontvanger aan die bord koppel, kan dit die opdrag van u IR -afstandsbediening na 'sleuteldruk' van die virtuele sleutelbord vertaal. Geen ekstra bestuurders is nodig nie!
Daar is baie IR -protokolle in die wêreld rondom ons. Elke TV van VCS -verskaffer het sy eie IR -protokol. Maar al hierdie protokolle het iets gemeen: hulle gebruik polsmodulasie om die sein te kodeer. Gewoonlik is daar 'n aanhef: 'n lang impuls voor die eerste bietjie in die pakkie. Dan stuur IR -beheer die hele pakkie uit met 0 en 1 en finaliseer die transmissie met 'n lang pols. Om die bietjie te dekodeer, moet ons die lengtepuls en lengte van die piek meet. Gewoonlik is die pieklengte van logika 0 en logika 1 dieselfde, die verskil is in die volledige polslengte.
Die stm32 -mikrobeheerders het 'n ingeboude funksie om PWM -sein op te vang. Byna elke timer van die mikrobeheerder kan die 'PWM -seinopname meer' geplaas word as die kanaalveranderlikes van die timer die totale lengte van die pols en sy pieklengte bespaar. Hier moet ek die klein detail uitlig: as die IR -ontvanger die sein kry, word die spanning op die werkpen 0 en in die ledige toestand is die spanning in die werkpen 5 of 3,3 volt, afhangende van die voedingsspanning van die IR -ontvanger. Dit wil sê, die ontvanger 'draai' die sein om.
Met die PWM -opnamemodus kan die stm32 -mikrobeheerder maklik omskep word in 'n IR -afstandsvertaler van IR -afstandsbediening na die sleutelbordkodes. Dan kan u u gunsteling visualiseringsagteware begin, byvoorbeeld Kodi van VLC om u gunsteling fliek op die mediasentrum te speel.
Stap 2: Skep die beheerder
Om stm32 mikrobeheerder te programmeer, wil ek die gratis sagteware van STM aanbeveel: stelselwerkbank (ook bekend as ac6) en die bordkonfigurasiehulpmiddel cubeMX. Om die sagteware na die mikrobeheerder op te laai, kan die chipkloon van die ST-Link V2-adapter gebruik word. Die stelsel werkbank projek lêers wat by hierdie stap aangeheg is, F1-IR_remote.zip lêer.
Die bordkonfigurasiehulpmiddel vergemaklik die proses van die aanvanklike hardeware -opset van ons mikrobeheerder.
As u die stelselwerkbankinstrument gebruik, kan u die afgelaaide projek net gebruik. Maar as u die projek in meer besonderhede wil ondersoek, kan u die bordkonfigurasie in die cubeMX skep:
- Skep 'n nuwe projek en kies bord stm32f103c8
- Kies 'Crystal/Ceramic Resonator' vir die item 'High Speed Clock (HSE)' in die RCC -spyskaart.
- Kies 'Serial Wire' vir die item 'Ontfout' in die SYS -kieslys.
-
Stel die timer 2 in (TIM2 -spyskaart) in die PWM -opnamemodus, soos op die foto getoon:
- Slawe af -> Herstel modus
- Triggerbron -> TI1FP1
- Klokbron -> Interne klok
- Channel1 -> Input Capture direkte modus
- Stel die boks 'Toestel (FS) in die USB -kieslys in
- Kies die aftrekkieslys-element 'Human Interface Device Class (HID)' in die 'Class of FS IP' item in USB_DEVICE-kieslys
- Maak seker dat u in die klokkonfigurasiepaneel 72 MHz aan die timer #2 verskaf, want ons benodig 'n timer by elke 1 mk.
- Stel die USB -toestel in die konfigurasiepaneel in soos op die foto getoon
-
Stel die timer#2 in die konfigurasiepaneel soos volg in:
- Prescaller - 71 (van 0 tot 71) - 1 mikro sekonde bosluis!
- Tellermodus - op
- Tellerperiode - 39999 (ons behoort die lang pols te kan meet)
- Invoeropname -kanaal 1 - Falling Edge (onthou dat die sein van die IR -ontvanger omgekeerd is)
In die PWM -opnamemodus werk die timer#2 die volgende:
As die vallende voorkant bespeur word, sal die tydteller in die kanaal1 -register gestoor word en die tydteller sal teruggestel word met 0. Dan sal die tydteller voortgaan om die rigting op te tel. Ons kan dus die polslengte in mikrosekondes maklik meet.
Die STM32 USB HID -klas simuleer standaard die USB -muis. Hier vind u die instruksie om die beheerder in 'n sleutelbord te verander.
Stap 3: Pas die beheerder aan
Die projek werk saam met Panasonic -afstandsbediening en Kodi -mediasentrum. Om die projek vir u eie beheerder aan te pas, moet u die kode -skikking vir u afstandbeheer byvoeg, net soos ek vir panasonic -afstandsbediening (panasonicCode) by die Inc/code.h -kop. Soos u kan sien, het elke opdrag 'n unieke ID (in die IR -opdrag). Daar is 24 opdragte (0-23) wat deur die projek herken word. Die opdrag word gesorteer volgens die relevansie.
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, IRs_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_tyds, IR_titels, IRt_tref, IRt_t, Eerste, IR_krag, IR_onbekend} IR -opdrag;
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};
Dan moet u u eie afstandsbediening by die init () metode in die IR.cpp met addRemote () funksie byvoeg. Die funksie -argumente is:
- Aantal stukkies in die pakkie
- Die pakkie Koplengte
- 'Nul' bitlengte
- 'Een' bietjie lengte
- Wyser na die kode -skikking
- Getalelemente van die skikking
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode)/sizeof (uint32_t));
}
Die lêer bevat ook 'n ander tabel om opdragte in sleutelbordkodes om te skakel. Die kbdr_kodi -skikking bevat die sleutelkodes vir die Kodi -mediasentrum. U kan nog 'n skikking vir u eie mediasentrumprogram byvoeg, byvoorbeeld vlc -speler. As u 'n ander mediasentrumtoepassingstabel sou byvoeg, sou u 'n ander KBD -voorwerp skep en dit in die main.cpp inisialiseer.
Stap 4: Gereedskap om kleremakery te vereenvoudig
Daar is nog twee ander projekte in die bewaarplek
- IR -ondersoek - waarmee u die tydsberekeningparameters van die seine van u afstandsbediening kan meet.
- IR_capture - waarmee u die HEX -kodes van u afstandbeheer kan opneem.
Laai net die IR -ondersoekprojek en koppel die USB -poort van die bluepill -bord aan op u rekenaar. Begin dan 'n terminale program op die virtuele seriële poortapparaat, wat ooreenstem met die stm32 -bord. Terwyl u op die knoppies op u afstandsbediening druk, meet die program die ontvangde pulse en druk die gemiddelde tye vir verskillende polse af. Dit moet vereenvoudig word om die polslengte vir die pakkopskrif, nul en een bis, op te spoor.
In die IR -ondersoekprojek werk die timer #2 in die PWM -opnamemodus met twee kanale: kanaal een vang die hele polslengte op en kanaal2 vang die pieklengte. As die dalende seinrand opgespoor word, word die timerwaarde in die kanaal een -register gestoor en die timer met 0. As die stygende rand van die sein opgespoor word, word die tydteller in die kanaal 2 -register gestoor.
Om die knoppiekodes van u eie afstandsbediening vas te lê, kan die IR_capture -projek gebruik word. In die main.c -lêer moet u die eksterne definisie soos hierdie byvoeg:
IRcode panasonic = {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60};
- .hdr - die koplengte in mks
- .bits - die aantal bisse in die pakkie
- .zero - die lengte van die nulbit
- .one - die lengte een die een bietjie
- .dev - die afwyking (die verskil in tye wat aanvaar kan word). Gewoonlik is dit 1/10 van die kleinste lengte.
Voeg dan u afstandsbediening by die lys met ondersteunde afstandbeheer:
const IRcode* remote [2] = {& panasonic, & pioneer};
Aanbeveel:
TV -afstandsbediening word 'n RF -afstandsbediening -- NRF24L01+ Tutoriaal: 5 stappe (met foto's)
TV -afstandsbediening word 'n RF -afstandsbediening || NRF24L01+ Tutoriaal: In hierdie projek sal ek u wys hoe ek die gewilde nRF24L01+ RF IC gebruik het om die helderheid van 'n LED -strook draadloos aan te pas deur drie nuttelose knoppies van 'n TV -afstandsbediening. Laat ons begin
1981 Draagbare videorecorder Raspberry PI Media Center: 12 stappe (met foto's)
1981 Draagbare videorecorder Raspberry PI Media Center: Dit is 'n vroeë 80's Sharp VC -2300H draagbare videorecorder wat ek omgeskakel het - dit het nou 'n Raspberry Pi in die hart van die uitstekende Raspbmc mediasentrum sagteware. Ander opgraderings sluit in 'n snaakse arduino-gebaseerde horlosie en 'n EL-band "band"
Skakel u IR -afstandsbediening om in RF -afstandsbediening: 9 stappe (met foto's)
Skakel u IR -afstandsbediening na RF -afstandsbediening om: In die instruksies van vandag sal ek u wys hoe u 'n generiese RF -module kan gebruik sonder 'n mikrobeheerder, wat ons uiteindelik sal lei om 'n projek te bou waar u 'n IR -afstandsbediening van enige toestel na 'n RF kan omskakel Afgeleë. Die grootste voordeel van die omskakeling van 'n
Digitale beheerder vir lugvering met behulp van Arduino en slimfoon afstandsbediening: 7 stappe (met foto's)
Digitale beheerder vir lugvering met behulp van Arduino en slimfoon afstandsbediening: Hallo almal. In hierdie instruksies sal ek probeer om jou te wys hoe om 'n kontroleerder vir jou motor se lugvering te bou, met behulp van een arduino + bluetooth module en vir afstandsbediening van enige slimfoon met Android +4.4, dit is ook my heel eerste instruksionele so dra w
Olympus Evolt E510 afstandsbediening vir kabel (weergawe 2 met outomatiese fokus op afstandsbediening): 6 stappe (met foto's)
Olympus Evolt E510 afstandsbediening vir kabel (weergawe 2 met outomatiese fokus op afstandsbediening): Gister het ek 'n eenvoudige afstandsbediening vir my Olympus E510 gebou. Die meeste kameras het 'n ontspanknop (die een wat u druk om 'n foto te neem) met twee modusse. As die knoppie saggies ingedruk word, sal die kamera outomaties fokus en die lig meet