Obsah:
- Krok 1: Myšlienka
- Krok 2: Vytvorenie ovládača
- Krok 3: Prispôsobenie ovládača
- Krok 4: Nástroje na zjednodušenie krajčírstva
Video: Falling in Stm32: Remote Control for Home Media Center: 4 Steps (with Pictures)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Toto je kompletný prototyp diaľkového ovládača domáceho mediálneho centra založený na mikroovládači smt32, stm32f103c8t6 známom ako doska „bluepill“. Predpokladajme, že používate počítač pre domáce mediálne centrum. Je to veľmi flexibilné riešenie, ktoré vám umožní umiestniť veľkú video knižnicu na interný pevný disk, alebo môžete prehrávať video zo siete, napríklad z youtube alebo podobne, nemáte problém s kodekmi alebo s prehrávaním videa, pretože je to veľmi softvérový prehrávač je možné kedykoľvek ľahko aktualizovať. Hlavnou nevýhodou tohto riešenia je, že na ovládanie prehrávania by ste mali používať myš a klávesnicu. Infračervený diaľkový ovládač je na to veľmi vhodný režim.
V tomto článku vám ukážem, ako si vytvoriť vlastné diaľkové ovládanie pomocou čipovej bluepill dosky.
Krok 1: Myšlienka
Hlavná myšlienka je veľmi jednoduchá: doska bluepill má vstavaný port USB a môže fungovať ako klávesnica USB HID. Ak k doske pripojíme infračervený prijímač, môže príkaz z vášho diaľkového ovládača IR preložiť na „stlačenie klávesu“virtuálnej klávesnice. Nie sú potrebné žiadne ďalšie ovládače!
Vo svete okolo nás existuje mnoho IR protokolov. Každý televízor dodávateľa VCS má svoj vlastný IR protokol. Ale všetky tieto protokoly majú niečo spoločné: na kódovanie signálu používajú impulznú moduláciu. Obvykle existuje nejaká preambula: dlhý impulz pred prvým bitom v pakete. Potom IR ovládanie vyšle celý paket s 0 a 1 a dokončí prenos dokončením dlhého impulzu. Na dekódovanie bitu potrebujeme zmerať dĺžkový impulz a dĺžku píku. Špičková dĺžka logiky 0 a logiky 1 sú zvyčajne rovnaké, rozdiel je v úplnej dĺžke impulzu.
Mikroprocesory stm32 majú vstavanú funkciu na zachytenie signálu PWM. Takmer do každého časovača mikroovládača je možné vložiť „viac zachytávania signálu PWM“, keď kanálové premenné časovača uložia celkovú dĺžku impulzu a jeho maximálnu dĺžku. Tu musím zdôrazniť malý detail: keď infračervený prijímač zachytí signál, napätie na jeho pracovnom kolíku sa zmení na 0 a v kľudovom stave je napätie na pracovnom kolíku 5 alebo 3,3 voltov v závislosti od napájacieho napätia infračerveného prijímača. To znamená, že prijímač signál „invertuje“.
V režime snímania PWM je možné z mikrokontroléra stm32 ľahko urobiť IR diaľkový prekladač z IR diaľkového ovládača na kódy klávesnice. Potom môžete spustiť svoj obľúbený vizualizačný softvér, napríklad Kodi z VLC, na prehrávanie vášho obľúbeného filmu v mediálnom centre.
Krok 2: Vytvorenie ovládača
Na programovanie mikroovládača stm32 by som chcel odporučiť bezplatný softvér od STM: systémový pracovný stôl (aka ac6) a nástroj na konfiguráciu dosky cubeMX. Na nahranie softvéru do mikroovládača je možné použiť čipový klon adaptéra ST-Link V2. K tomuto kroku sú priložené súbory projektu systému Windows Workbench, súbor F1-IR_remote.zip.
Nástroj na konfiguráciu dosky zjednodušuje proces počiatočnej hardvérovej konfigurácie nášho mikrokontroléra.
Ak používate nástroj systémový pracovný stôl, môžete použiť iba stiahnutý projekt. Ak však chcete projekt preskúmať podrobnejšie, môžete v cubeMX vytvoriť konfiguráciu dosky:
- Vytvorte nový projekt a vyberte dosku stm32f103c8
- Vyberte položku „Kryštálový/keramický rezonátor“pre položku „Vysokorýchlostné hodiny (HSE)“v ponuke RCC.
- V položke „Debug“v ponuke SYS vyberte „Sériový vodič“.
-
Nakonfigurujte časovač č. 2 (ponuka TIM2) v režime snímania PWM, ako je znázornené na obrázku:
- Režim Slave -> Obnoviť režim
- Zdroj spúšťača -> TI1FP1
- Zdroj hodín -> Interné hodiny
- Channel1 -> Input Capture priamy režim
- Začiarknite políčko „Zariadenie (FS) v ponuke USB
- V položke „Trieda IP IP“v ponuke USB_DEVICE vyberte prvok rozbaľovacej ponuky „Trieda zariadenia ľudského rozhrania (HID)“
- Na paneli konfigurácie hodín nezabudnite poskytnúť časovaču č. 2 časovač 72 MHz, pretože potrebujeme počet časovačov pri každom 1 mks.
- Na konfiguračnom paneli nakonfigurujte zariadenie USB podľa obrázku
-
Na konfiguračnom paneli nakonfigurujte časovač č. 2 nasledovne:
- Vyvolávač - 71 (od 0 do 71) - 1 mikrosekundový kliešť!
- Režim počítadla - hore
- Počítadlo - 39 999 (mali by sme byť schopní zmerať dlhý impulz)
- Vstupný zachytávací kanál 1 - Falling Edge (pamätajte, že signál z IR prijímača je invertovaný)
V režime snímania PWM by časovač č. 2 fungoval nasledovne:
Keď sa zistí padajúca predná časť, počítadlo časovača sa uloží do registra kanála 1 a počítadlo časovača sa vynuluje pomocou 0. Potom časovač pokračuje v počítaní smeru. Môžeme teda ľahko zmerať dĺžku impulzu v mikrosekundách.
Štandardne trieda STM32 USB HID simuluje myš USB. Tu nájdete pokyny na zmenu ovládača na klávesnicu.
Krok 3: Prispôsobenie ovládača
Projekt funguje s diaľkovým ovládaním Panasonic a mediálnym centrom Kodi. Na prispôsobenie projektu pre váš vlastný ovládač by ste mali pridať pole kódu pre diaľkové ovládanie, ako som to urobil pre diaľkové ovládanie panasonic (panasonicCode), do hlavičky Inc/code.h. Ako vidíte, každý príkaz má jedinečné ID (vo výčte IRcommmand). Projekt rozpoznáva 24 príkazov (0-23). Príkazy sú zoradené podľa relevantnosti.
typový výčet {IR_play = 0, IR_power, IR_unknown} IR príkaz;
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};
Potom by ste mali pridať vlastné diaľkové ovládanie metódou init () vo funkcii IR.cpp s funkciou addRemote (). Argumenty funkcie sú:
- Počet bitov v pakete
- Dĺžka hlavičky paketu
- Bit „nuly“
- „Jedna“bitová dĺžka
- Ukazovateľ na pole kódu
- Číselné prvky poľa
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode)/sizeof (uint32_t));
}
Súbor tiež obsahuje ďalšiu tabuľku na prevod príkazov na kódy klávesnice. Pole kbdr_kodi obsahuje kľúčové kódy pre mediálne centrum Kodi. Môžete pridať ďalšie pole pre svoj vlastný program mediálneho centra, napríklad vlc player. Ak by ste pridali ďalšiu tabuľku aplikácií centra médií, vytvorili by ste ďalší objekt KBD a inicializovali by ste ho v súbore main.cpp.
Krok 4: Nástroje na zjednodušenie krajčírstva
V úložisku sú ďalšie dva projekty
- IR vyšetrovanie - umožňuje merať časové parametre signálov vášho diaľkového ovládača.
- IR_capture - umožňuje zachytiť HEX kódy vášho diaľkového ovládača.
Stačí načítať projekt IR Investate a pripojiť USB port dosky bluepill k počítaču. Potom spustite na zariadení virtuálneho sériového portu ľubovoľný terminálový program zodpovedajúci doske stm32. Kým stlačíte tlačidlá na diaľkovom ovládači, program zmeria prijaté impulzy a vytlačí priemerné časy pre rôzne impulzy. Malo by sa zjednodušiť zisťovanie dĺžky impulzu pre hlavičku paketu, nula a jeden bit.
V projekte IR vyšetrovania pracuje časovač č. 2 v režime zachytávania PWM s dvoma kanálmi: kanál jeden zachytáva celú dĺžku impulzu a kanál 2 zachytáva dĺžku píku. Keď sa zistí klesajúca hrana signálu, hodnota časovača sa uloží do registra prvého kanála a časovač sa vynuluje 0. Keď sa zistí stúpajúca hrana signálu, počítadlo časovača sa uloží do registra kanála 2.
Na zachytenie kódov tlačidiel vášho vlastného diaľkového ovládača je možné použiť projekt IR_capture. Do súboru main.c by ste mali pridať vzdialenú definíciu, ako je táto:
IR kód panasonic = {.hdr = 5252,.bitov = 48,.zero = 902,.jeden = 1755,.dev = 60};
- .hdr - dĺžka hlavičky v mks
- .bits - počet bitov v pakete
- .zero - dĺžka nulového bitu
- .jeden - dĺžka jeden bit
- .dev - odchýlka (rozdiel v časoch, ktoré je možné akceptovať). Obvykle je to 1/10 najmenšej dĺžky.
Potom pridajte diaľkový ovládač do zoznamu podporovaných diaľkových ovládačov:
konštantný IR kód* diaľkový [2] = {& panasonic, & pioneer};
Odporúča:
EWON Raspberry Pi Powered Home Robot: 7 Steps (with Pictures)
EWON Raspberry Pi Powered Home Robot: Nedávno som sa pristihol, že kvôli súčasnej situácii sledujem veľa sérií Netflix, dúfam, že ste všetci v bezpečí, a videl som, že bola vydaná sezóna 5 hry Black Mirror. Antologický seriál, ktorý sa točí okolo skupiny osobných životov ľudí
Folow-UP: Advanced Media Center With Odroid N2 and Kodi (4k and HEVC Support): 3 kroky
Folow-UP: Advanced Media Center With Odroid N2 and Kodi (4k and HEVC Support): Tento článok nadväzuje na môj predchádzajúci, celkom úspešný článok o budovaní všestranného mediálneho centra, spočiatku založený na veľmi obľúbenom Raspberry PI, ale neskôr, kvôli nedostatku výstupu kompatibilného s HEVC, H.265 a HDMI 2.2, bol prepínač
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: 4 Steps (with Pictures)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, sem a needidade de acessar os recursos de plataformas nativas to Android ou do IOS. Používajú viac počítačov, ako napríklad notebooky s oknami 10. Essa plataforma chama-se Ionic, q
Media Center Raspberry PI, OSMC DAC/AMP: 3 kroky
Media Center Raspberry PI, OSMC DAC/AMP: Vezmite Raspberry pi, pridajte DAC a zosilňovač a máte veľmi pekné mediálne centrum za málo peňazí. V prvom rade musím povedať „VEĽKÉ“ďakujem ľuďom v GearBest za zaslanie tejto položky na vyskúšanie. A ak si ho chcete zaobstarať
1981 Portable VCR Raspberry PI Media Center: 12 krokov (s obrázkami)
1981 Prenosný videorekordér Raspberry PI Media Center: Jedná sa o prenosný videorekordér Sharp VC -2300H zo začiatku 80. rokov, ktorý som skonvertoval - teraz má v srdci Raspberry Pi a je v ňom spustený vynikajúci softvér mediálneho centra Raspbmc. Medzi ďalšie inovácie patria elegantné hodiny na báze arduina a „páska“z drôtu EL