Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
Tai yra visas namų žiniasklaidos centro nuotolinio valdymo pulto prototipas, pagrįstas smt32 mikrovaldikliu, stm32f103c8t6, žinomu kaip „bluepill“lenta. Tarkime, namų medijos centrui naudojate kompiuterį. Tai labai lankstus sprendimas, leidžiantis į vidinį standųjį diską įdėti didžiulę vaizdo įrašų biblioteką arba leisti vaizdo įrašus iš tinklo, pvz., „YouTube“ar pan., Neturite problemų dėl kodekų ar vaizdo įrašų atkūrimo, nes tai labai bet kuriuo metu lengva atnaujinti programinės įrangos grotuvą. Pagrindinis šio sprendimo trūkumas yra tas, kad atkūrimui valdyti turėtumėte naudoti pelę ir klaviatūrą. IR nuotolinio valdymo pultas yra labai patogus režimas.
Šiame straipsnyje aš parodysiu, kaip sukurti savo nuotolinio valdymo pultą naudojant lustinę „bluepill“plokštę.
1 žingsnis: idėja
Pagrindinė idėja yra labai paprasta: „bluepill“plokštė turi įtaisytą USB prievadą ir gali veikti kaip USB HID klaviatūra. Jei prie plokštės prijungsime IR imtuvą, komanda iš jūsų IR nuotolinio valdymo pulto gali paversti virtualios klaviatūros klavišo paspaudimu. Nereikia jokių papildomų vairuotojų!
Mus supančiame pasaulyje yra daug IR protokolų. Kiekvienas VCS pardavėjo televizorius turi savo IR protokolą. Tačiau visi šie protokolai turi bendrą bruožą: jie naudoja impulsų moduliaciją signalui koduoti. Paprastai yra tam tikra įžanga: ilgas impulsas prieš pirmąjį paketo bitą. Tada IR valdiklis perduoda visą paketą su 0 ir 1 ir užbaigia perdavimą baigdamas ilgą impulsą. Norėdami iššifruoti bitą, turime išmatuoti ilgio impulsą ir smailės ilgį. Paprastai logikos 0 smailės ilgis ir 1 logika yra vienodi, skirtumas yra visas impulsų ilgis.
„Stm32“mikrovaldikliai turi integruotą funkciją PWM signalui fiksuoti. Beveik kiekvienas mikrovaldiklio laikmatis gali būti įtrauktas į „PWM signalo fiksavimą daugiau“, kai laikmačio kanalo kintamieji išsaugo bendrą impulsų ilgį ir didžiausią jų ilgį. Čia turiu pabrėžti smulkmeną: kai IR imtuvas sugauna signalą, jo darbinio kaiščio įtampa tampa 0, o tuščiosios eigos būsenoje darbinio kaiščio įtampa yra 5 arba 3,3 voltai, priklausomai nuo IR imtuvo maitinimo įtampos. T.y., imtuvas „apverčia“signalą.
Naudojant PWM fiksavimo režimą, „stm32“mikrovaldiklį galima lengvai paversti IR nuotoliniu IR vertėju iš IR nuotolinio į klaviatūros kodus. Tada galite paleisti savo mėgstamą vizualizavimo programinę įrangą, pavyzdžiui, „Vodi Kodi“, kad žiniasklaidos centre paleistumėte mėgstamą filmą.
2 veiksmas: valdiklio sukūrimas
Norėdami užprogramuoti „stm32“mikrovaldiklį, norėčiau rekomenduoti nemokamą programinę įrangą iš STM: sistemos darbastalio (dar žinomo kaip ac6) ir plokštės konfigūravimo įrankį „cubeMX“. Norėdami įkelti programinę įrangą į mikrovaldiklį, galite naudoti ST-Link V2 adapterio lusto kloną. Prie šio veiksmo pridedami sistemos darbastalio projekto failai-F1-IR_remote.zip failas.
Lentos konfigūravimo įrankis supaprastina pradinį mūsų mikrovaldiklio aparatinės įrangos konfigūravimą.
Jei naudojate sistemos darbo stalo įrankį, galite tiesiog naudoti atsisiųstą projektą. Bet jei norite išsamiau ištirti projektą, galite sukurti plokštės konfigūraciją „cubeMX“:
- Sukurkite naują projektą ir pasirinkite lentą stm32f103c8
- RCC meniu „High Speed Clock (HSE)“pasirinkite „Crystal/Ceramic Resonator“.
- SYS meniu „Derinti“pasirinkite „Serial Wire“.
-
Konfigūruokite laikmatį #2 (TIM2 meniu) PWM fiksavimo režimu, kaip parodyta paveikslėlyje:
- Vergų režimas -> Atstatymo režimas
- Trigerio šaltinis -> TI1FP1
- Laikrodžio šaltinis -> Vidinis laikrodis
- Kanalas1 -> Įvesties fiksavimo tiesioginis režimas
- USB meniu pažymėkite žymės langelį „Įrenginys (FS)“
- Pasirinkite išskleidžiamojo meniu elementą „Žmogaus sąsajos įrenginių klasė (HID)“, esantį meniu „USB_DEVICE“elemente „FS IP klasė“
- Laikrodžio konfigūracijos skydelyje būtinai pateikite 72 MHz laikmačiui Nr. 2, nes mums reikia skaičiuoti laikmatį kas 1 mks.
- Konfigūracijos skydelyje sukonfigūruokite USB įrenginį, kaip parodyta paveikslėlyje
-
Konfigūracijos skydelyje sukonfigūruokite laikmatį#2 taip:
- Prescaller - 71 (nuo 0 iki 71) - 1 mikrosekundė varnelė!
- Skaitiklio režimas - aukštyn
- Skaitiklio laikotarpis - 39999 (turėtume sugebėti išmatuoti ilgą impulsą)
- Įvesties fiksavimo kanalas1 - krintantis kraštas (atminkite, kad signalas iš IR imtuvo yra apverstas)
PWM fiksavimo režimu laikmatis#2 veiktų taip:
Kai aptinkamas krintantis frontas, laikmačio skaitiklis bus išsaugotas kanalo 1 registre ir laikmačio skaitiklis bus iš naujo nustatytas 0. Tada laikmatis ir toliau skaičiuos kryptį. Taigi mes galime lengvai išmatuoti pulso ilgį per mikro sekundes.
Pagal numatytuosius nustatymus STM32 USB HID klasė imituoja USB pelę. Čia rasite instrukciją, kaip valdiklį paversti klaviatūra.
3 žingsnis: pritaikykite valdiklį
Projektas veikia su „Panasonic“nuotolinio valdymo pultu ir „Kodi“žiniasklaidos centru. Norėdami pritaikyti savo valdiklio projektą, prie „Inc/code.h“antraštės pridėkite nuotolinio valdymo pulto kodų masyvą, kaip aš padariau „panasonic“nuotolinio valdymo pultui (panasonicCode). Kaip matote, kiekviena komanda turi unikalų ID (IRcommmand enum). Yra 24 komandos (0–23), kurias atpažįsta projektas. Komanda surūšiuota pagal svarbą.
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_pavadinimas, IR_pavadinimas, IR_įrašas, IR, IR_power, IR_unknown} IRkomanda;
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};
Tada turėtumėte pridėti savo nuotolinio valdymo pultą prie metodo init () IR.cpp su addRemote () funkcija. Funkcijos argumentai yra šie:
- Bitų skaičius pakuotėje
- Paketo antraštės ilgis
- „Nulio“bitų ilgis
- „Vieno“bito ilgio
- Rodyklė į kodų masyvą
- Masyvo skaičių elementai
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode)/sizeof (uint32_t));
}
Taip pat faile yra kita lentelė komandoms konvertuoti į klaviatūros kodus. „KBdr_kodi“masyve yra pagrindiniai „Kodi“žiniasklaidos centro kodai. Savo medijos centro programai galite pridėti kitą masyvą, pavyzdžiui, „vlc player“. Jei pridėtumėte kitą medijos centro programų lentelę, sukurkite kitą objektą KBD ir inicijuokite jį main.cpp.
4 žingsnis: įrankiai, skirti supaprastinti pritaikymą
Saugykloje yra dar du projektai
- IR tyrimas - leidžia išmatuoti nuotolinio valdymo pulto signalų laiko parametrus.
- IR_capture - leidžia užfiksuoti nuotolinio valdymo pulto HEX kodus.
Tiesiog įkelkite IR tyrimo projektą ir prijunkite „bluepill“plokštės USB prievadą prie kompiuterio. Tada paleiskite bet kurią terminalo programą virtualiame nuoseklaus prievado įrenginyje, atitinkančiame stm32 plokštę. Kol paspausite nuotolinio valdymo pulto mygtukus, programa išmatuos gautus impulsus ir atspausdins vidutinį skirtingų impulsų laiką. Tai turėtų supaprastinti paketo antraštės, nulio ir vieno bitų impulsų ilgio aptikimą.
IR tyrimo projekte laikmatis Nr. 2 veikia PWM fiksavimo režimu su dviem kanalais: pirmasis kanalas fiksuoja visą impulsų ilgį, o 2 kanalas - didžiausią ilgį. Kai aptinkamas mažėjantis signalo kraštas, laikmačio reikšmė įrašoma į pirmojo kanalo registrą, o laikmatis nustatomas iš naujo. Kai aptinkamas kylančio signalo kraštas, laikmačio skaitiklis išsaugomas 2 kanalo registre.
Norėdami užfiksuoti savo nuotolinio valdymo pulto mygtukų kodus, galite naudoti projektą „IR_capture“. Į failą main.c turėtumėte pridėti tokį nuotolinį apibrėžimą:
IR kodas „panasonic“= {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60};
- .hdr - antraštės ilgis mks
- .bits - bitų skaičius pakete
- .zero - nulinio bito ilgis
- .vienas - ilgis vienas vienas bitas
- .dev - nuokrypis (laiko skirtumas, kurį galima priimti). Paprastai jis yra 1/10 mažiausio ilgio.
Tada įtraukite nuotolinio valdymo pultą į palaikomų nuotolinio valdymo pultų sąrašą:
const IRcode* remote [2] = {& panasonic, & pioneer};
Rekomenduojamas:
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu -- NRF24L01+ pamoka: 5 žingsniai (su paveikslėliais)
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu || NRF24L01+ Pamoka: Šiame projekte parodysiu, kaip aš naudoju populiarųjį nRF24L01+ RF IC, norėdamas belaidžiu būdu sureguliuoti LED juostos ryškumą per tris nenaudingus televizoriaus nuotolinio valdymo pulto mygtukus. Pradėkime
„IRduino“: „Arduino“nuotolinio valdymo pultas - imituokite pamestą nuotolinio valdymo pultą: 6 žingsniai
„IRduino“: „Arduino“nuotolinio valdymo pultas - imituokite pamestą nuotolinio valdymo pultą: jei kada nors pametėte televizoriaus ar DVD grotuvo nuotolinio valdymo pultą, žinote, kaip apmaudu, kai tenka vaikščioti, ieškoti ir naudoti paties įrenginio mygtukus. Kartais šie mygtukai net nesuteikia tokių funkcijų kaip nuotolinio valdymo pultas. Gauti
Įprastas nuotolinio valdymo rinkinys transformuotas į keturių kanalų RC žaislinį nuotolinio valdymo pultą: 4 žingsniai
Įprastas nuotolinio valdymo rinkinys transformuotas į keturių kanalų RC žaislinį nuotolinio valdymo pultą: 62 将 通用 遥控 转换 转换 为 为 玩具 模型 中 使用 的 四方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 完成 这个 电子 项目 并 并 为 视频 教程 完成 这个 电子 项目 并 并 为
Konvertuokite savo IR nuotolinio valdymo pultą į RF nuotolinio valdymo pultą: 9 žingsniai (su paveikslėliais)
Konvertuokite savo IR nuotolinio valdymo pultą į RF nuotolinio valdymo pultą: Šiandienos instrukcijoje aš jums parodysiu, kaip galite naudoti bendrą RF modulį be mikrovaldiklio, kuris galiausiai paskatins mus sukurti projektą, kuriame bet kurio įrenginio IR nuotolinio valdymo pultą galima paversti RF Nuotolinis. Pagrindinis privalumas konvertuojant
„Alexa“balso valdymo televizoriaus nuotolinio valdymo pultas ESP8266: 9 žingsniai
„Alexa“balso valdymo televizoriaus nuotolinio valdymo pultas ESP8266: Ar kas nors jūsų namuose atleidžia nuotolinio valdymo pultą, ar einate į tuščią kambarį, kad pamatytumėte, kaip televizorius skleidžiasi. Baterijos pradeda gesti ir nekontroliuojamos iš kambario galo. Dabar galite valdyti savo televizorių, DVR, bet ką su IR valdikliu, kurį galite