Obsah:
- Krok 1: Idea
- Krok 2: Vytvoření ovladače
- Krok 3: Přizpůsobení ovladače
- Krok 4: Nástroje pro zjednodušení krejčovství
Video: Falling in Stm32: Remote Control for Home Media Center: 4 Steps (with Pictures)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Toto je kompletní prototyp pro dálkové ovládání domácích mediálních center založené na mikrořadiči smt32, stm32f103c8t6 známém jako deska „bluepill“. Předpokládejme, že používáte PC pro domácí mediální centrum. Je to velmi flexibilní řešení, které vám umožní umístit obrovskou videotéku na interní pevný disk, nebo můžete přehrávat video ze sítě, například z youtube nebo tak, nemáte vůbec problém s kodeky nebo přehráváním videa, protože je to velmi snadno aktualizovat softwarový přehrávač kdykoli. Hlavní nevýhodou tohoto řešení je, že byste k ovládání přehrávání měli používat myš a klávesnici. IR dálkový ovladač je k tomu velmi pohodlný režim.
V tomto článku ukážu, jak vytvořit vlastní dálkové ovládání pomocí čipové bluepill desky.
Krok 1: Idea
Hlavní myšlenka je velmi jednoduchá: deska bluepill má vestavěný port USB a může fungovat jako klávesnice USB HID. Pokud k desce připojíme infračervený přijímač, mohl by přeložit příkaz z vašeho IR dálkového ovládání na „stisknutí klávesy“virtuální klávesnice. Nejsou vyžadovány žádné další ovladače!
Ve světě kolem nás existuje mnoho IR protokolů. Každý televizor dodavatele VCS má svůj vlastní IR protokol. Ale všechny tyto protokoly mají něco společného: ke kódování signálu používají pulzní modulaci. Obvykle existuje nějaká preambule: dlouhý impuls před prvním bitem v paketu. Poté IR řízení vysílá celý paket s 0 a 1 a dokončuje přenos s dokončením dlouhého impulsu. K dekódování bitu potřebujeme změřit délkový impuls a délku píku. Špičková délka logiky 0 a logiky 1 je obvykle stejná, rozdíl je v celkové délce impulsu.
Mikroprocesory stm32 mají vestavěnou funkci pro zachycení signálu PWM. Téměř do každého časovače mikrořadiče lze vložit více „PWM zachycení signálu“, když kanálové proměnné časovače uloží celkovou délku impulsu a jeho délku špičky. Zde musím zdůraznit malý detail: když IR přijímač zachytí signál, napětí na jeho pracovním pinu bude 0 a v klidovém stavu je napětí na pracovním pinu 5 nebo 3,3 voltů v závislosti na napájecím napětí infračerveného přijímače. To znamená, že přijímač signál „invertuje“.
V režimu snímání PWM lze mikrořadič stm32 snadno přeměnit na IR dálkový překladač z IR dálkového ovládání na kódy klávesnice. Poté můžete spustit svůj oblíbený vizualizační software, například Kodi z VLC, který vám v mediálním centru přehraje váš oblíbený film.
Krok 2: Vytvoření ovladače
K programování mikrořadiče stm32 bych chtěl doporučit bezplatný software od STM: system workbench (aka ac6) a nástroj pro konfiguraci desky cubeMX. K nahrání softwaru do mikrořadiče lze použít čipový klon adaptéru ST-Link V2. K tomuto kroku připojené soubory projektu systému Workbench, soubor F1-IR_remote.zip.
Nástroj pro konfiguraci desky zjednodušuje proces počáteční hardwarové konfigurace našeho mikrořadiče.
Pokud používáte nástroj System Workbench, můžete použít pouze stažený projekt. Pokud si ale přejete prozkoumat projekt podrobněji, můžete vytvořit konfiguraci desky v cubeMX:
- Vytvořte nový projekt a vyberte desku stm32f103c8
- Vyberte položku „Krystalový/keramický rezonátor“pro položku „Vysokorychlostní hodiny (HSE)“v nabídce RCC.
- Vyberte položku 'Serial Wire' pro položku 'Debug' v nabídce SYS.
-
Nakonfigurujte časovač č. 2 (nabídka TIM2) v režimu snímání PWM, jak je znázorněno na obrázku:
- Slave Mode -> Reset Mode
- Zdroj spouštění -> TI1FP1
- Zdroj hodin -> Interní hodiny
- Channel1 -> Direct Capture přímý režim
- Zaškrtněte políčko 'Zařízení (FS) v nabídce USB
- V položce „Třída FS IP“v nabídce USB_DEVICE vyberte prvek rozevírací nabídky „Třída zařízení lidského rozhraní (HID)“
- Na konfiguračním panelu hodin zajistěte, aby časovač č. 2 poskytoval 72 MHz, protože potřebujeme počítadlo časovače pro každý 1 mks.
- Na konfiguračním panelu nakonfigurujte zařízení USB podle obrázku
-
Na konfiguračním panelu nakonfigurujte časovač č. 2 následujícím způsobem:
- Vyvolávač - 71 (od 0 do 71) - 1 mikrosekundový tik!
- Režim čítače - nahoru
- Počitadlo - 39 999 (měli bychom být schopni změřit dlouhý puls)
- Vstupní zachytávací kanál 1 - Falling Edge (pamatujte, že signál z IR přijímače je invertovaný)
V režimu snímání PWM bude časovač č. 2 fungovat následovně:
Když byla detekována padající fronta, čítač časovače by byl uložen do registru Channel1 a čítač časovače by byl resetován pomocí 0. Potom časovač pokračuje v počítání směru. Můžeme tedy snadno změřit délku pulsu v mikrosekundách.
Ve výchozím nastavení STM32 USB HID simuluje USB myš. Zde najdete pokyny k přeměně ovladače na klávesnici.
Krok 3: Přizpůsobení ovladače
Projekt pracuje s dálkovým ovládáním Panasonic a mediálním centrem Kodi. Chcete -li přizpůsobit projekt pro svůj vlastní ovladač, měli byste do pole Inc/code.h přidat pole kódu pro dálkové ovládání, jako jsem to udělal pro dálkové ovládání panasonic (panasonicCode). Jak vidíte, každý příkaz má jedinečné ID (ve výčtu IRcommmand). Projekt rozpoznává 24 příkazů (0-23). Příkazy jsou seřazeny podle relevance.
typový výčet {IR_play = 0, IR_stop, IR_power, IR_unknown} IR pří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};
Poté byste měli přidat vlastní dálkové ovládání metodou init () ve funkci IR.cpp s funkcí addRemote (). Argumenty funkce jsou:
- Počet bitů v paketu
- Délka záhlaví paketu
- Bitová délka „nula“
- 'Jedna' bitová délka
- Ukazatel na pole kódu
- Číslujte prvky pole
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode)/sizeof (uint32_t));
}
Soubor také obsahuje další tabulku pro převod příkazů na kódy klávesnice. Pole kbdr_kodi obsahuje klíčové kódy pro mediální centrum Kodi. Můžete přidat další pole pro svůj vlastní program mediálního centra, například vlc player. Pokud byste přidali další tabulku aplikací centra médií, vytvořili byste další objekt KBD a inicializovali jej v souboru main.cpp.
Krok 4: Nástroje pro zjednodušení krejčovství
V úložišti jsou další dva projekty
- IR vyšetřování - umožňuje měřit parametry časování signálů vašeho dálkového ovladače.
- IR_capture - umožňuje zachytit HEX kódy vašeho dálkového ovladače.
Stačí načíst IR vyšetřovací projekt a připojit USB port desky bluepill k vašemu počítači. Poté spusťte libovolný terminálový program na zařízení virtuálního sériového portu, který odpovídá desce stm32. Zatímco stisknete tlačítka na dálkovém ovladači, program by změřil přijaté impulzy a vytiskl průměrné časy pro různé pulsy. Mělo by zjednodušit detekci délky pulsu pro záhlaví paketu, nulu a jeden bit.
V IR vyšetřovacím projektu pracuje časovač č. 2 v režimu zachycení PWM se dvěma kanály: kanál 1 zachycuje celou délku pulsu a kanál 2 zachycuje délku píku. Když byla detekována sestupná hrana signálu, hodnota časovače byla uložena do registru prvního kanálu a časovač byl resetován pomocí 0. Když byla zjištěna stoupající hrana signálu, čítač časovače se uložil do registru kanálu 2.
K zachycení kódů tlačítek vašeho vlastního dálkového ovladače lze použít projekt IR_capture. Do souboru main.c byste měli přidat vzdálenou definici, jako je tato:
IRcode panasonic = {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60};
- .hdr - délka záhlaví v mks
- .bits - počet bitů v paketu
- .zero - délka nulového bitu
- .one - délka jeden bit
- .dev - odchylka (rozdíl v časech, které lze akceptovat). Obvykle je to 1/10 nejmenší délky.
Poté přidejte dálkový ovladač do seznamu podporovaných dálkových ovladačů:
konstantní IR kód* vzdálený [2] = {& panasonic, & pioneer};
Doporučuje:
Folow-UP: Advanced Media Center With Odroid N2 and Kodi (4k and HEVC Support): 3 Steps
Folow-UP: Advanced Media Center With Odroid N2 and Kodi (4k and HEVC Support): Tento článek je pokračováním mého předchozího, celkem úspěšného článku o budování všestranného mediálního centra, založeného nejprve na velmi populárním Raspberry PI, ale později byl kvůli nedostatku výstupu kompatibilního s HEVC, H.265 a HDMI 2.2 přepnut
Home Presence Simulator and Security Control Device: 6 Steps (with Pictures)
Home Presence Simulator and Security Control Device: Tento projekt nám umožňuje simulovat přítomnost a detekovat pohyby v našem domě. Můžeme nakonfigurovat síť zařízení instalovaných v různých místnostech našeho domova, všechna ovládaná hlavním zařízením. Tento projekt kombinuje tyto funkce na jednom d
Media Center Raspberry PI, OSMC DAC/AMP: 3 kroky
Media Center Raspberry PI, OSMC DAC/AMP: Vezměte si Raspberry pi, přidejte DAC a zesilovač a máte velmi pěkné mediální centrum za málo peněz. Nejprve musím říci " VELKÉ " děkuji lidem z GearBestu za zaslání této položky k vyzkoušení. A pokud si přejete jeden získat
1981 Přenosný videorekordér Raspberry PI Media Center: 12 kroků (s obrázky)
1981 Přenosný videorekordér Raspberry PI Media Center: Jedná se o přenosný videorekordér Sharp VC -2300H z počátku 80. let, který jsem převedl - nyní má v srdci Raspberry Pi a běží na něm vynikající software mediálního centra Raspbmc. Mezi další upgrady patří příjemné arduino hodiny a drátová „páska“z
Ir Remote Remote Controlled Home Applicatin Project With Fan Regulator: 5 Steps
Ir Remote Remoteled Home Applicatin Project With Fan Regulator: This project for those who have culture with arduino and projects, not for noob'si made this as a project but I am using this for production purposes too … for this reason I can ' t sdílet všechny kompletní skici