RPi- ovládání pomocí GPIO tlačítek ? (vyřešeno) - Verze k tisku +- XBMC-Kodi.cz (https://www.xbmc-kodi.cz) +-- Fórum: KODI - hardware (https://www.xbmc-kodi.cz/forum-kodi-hardware) +--- Fórum: HW - Raspberry Pi (https://www.xbmc-kodi.cz/forum-hw-raspberry-pi) +--- Téma: RPi- ovládání pomocí GPIO tlačítek ? (vyřešeno) (/prispevek-rpi-ovladani-pomoci-gpio-tlacitek-vyreseno) |
RPi- ovládání pomocí GPIO tlačítek ? (vyřešeno) - Petrvald - 03.11.2016 Měl bych dotaz, jestli nemá někdo zkušenost s mapováním tlačítek. Mám v plánu vytvořit z RPi radio, které se bude převážně ovládat přes telefon. Rád bych ale k rpi připojil pár tlačítek, kterým bych přiřadil základní funkce jako play, stop, next, či spuštění konkrétního souboru - streamu. Ideálně kdyby to šlo přes OpenELEC/LibreELEC, případně Raspbian-Kodi. Díky za reakce. RE: RPi- ovládání pomocí namapovaných tlačítek ? - cuore - 03.11.2016 Jelikož to je linux, tak to bude fungovat pod Lirc. poohlédni se po lirc.conf ten bude pravděpodobně ve /storage/.config a po lircmap.xml ve usr/share/xbmc/system u openelec to bude asi ve /storage/.kodi/userdata/. V tvém případě pokud vše funguje tak budeš chtít pouze přemapovat tlačítka, takže tě bude zajímat jen lircmap.xml. Není to žádná věda kdysi jsem si dělal celý ovladač ještě pod MythTV a nedávno upravoval pod Kodi pár tlačítek, takže to je otestované že to maká. RE: RPi- ovládání pomocí namapovaných tlačítek ? - jkmh - 03.11.2016 Toto https://learn.adafruit.com/pi-wifi-radio?view=allby nebo toto http://it.cestuji.info/raspberry_radio.php by ti nenahodilo nějaký nápad? RE: RPi- ovládání pomocí namapovaných tlačítek ? - Petrvald - 04.11.2016 Díky za rady, v Libreelec/Openelec by se mělo nastavení ukládat pod složkou keymaps ( /storage/.kodi/userdata/keymaps ) více zde : http://kodi.wiki/view/Keymaps Nějak se mi ale nedaří dohledat zda lze k tlačítku přiřadit spuštění konkrétního souboru a ještě by mě zajímalo jestli lze zjistit že dané tlačítko se systémem komunikuje je aktivní např. příkazem ? Jinak pro mé účely by mohl stačit modul s LCD a tlačítky : RE: RPi- ovládání pomocí namapovaných tlačítek ? - cuore - 04.11.2016 Teď si říkám ty si měl na mysli hardwarové tlačítka? Já pochopil že to místní ovládání pořešíš pomocí IR. Jsem uživatel používající Passport , který neumí číst pravidla o nepoužívání podpisu z Tapatalku. RE: RPi- ovládání pomocí namapovaných tlačítek ? - Petrvald - 05.11.2016 jj, uvažoval jsem o HW tlačítkách nebo nějakém modulu. Prozatím hledám informace a pak se rozhodnu pro finální řešení. RE: RPi- ovládání pomocí namapovaných tlačítek ? - cuore - 05.11.2016 No tak tady se musíš rozhodnout zda jít cestou pythonu, bashe. U rasbianu obojí jde jednoduše a u openelec to budeš mít malinko složitější. Podporu pythonu si povolíš jako doplněk a u bashe budeš muset ke GPIO přistupovat malinko neohrabaně. Až budu na PC napíšu sem přímo příklady ať to nemusíš hledat. Jsem uživatel používající Passport , který neumí číst pravidla o nepoužívání podpisu z Tapatalku. RE: RPi- ovládání pomocí namapovaných tlačítek ? - cuore - 05.11.2016 Takže pokud se vydáš cestou pythonu musíš si aktivovat doplněk RPi.GPIO a pak ve scriptu zavolat knihovnu Kód: import sys a pak samo sebou říct jaké označení GPIO budeš používat Když se bude používat číslování hardwarových pinů konektoru, nastaví se příkaz na: Kód: GPIO.setmode(GPIO.BOARD) Pokud se bude používat označení signálů jako v procesoru, nastaví se: Kód: GPIO.setmode(GPIO.BCM) no a pak by si čekal na stisk tlačítka požadovaného pinu s pullup odporem Kód: GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_UP) U openelecu jsem nebyl schopen přistoupit ke GPIO jinak, než přímo/složitě. Takhle nastavíš pin4 jako výstup a nahodíš ho Kód: echo "4" > /sys/class/gpio/export Kód: echo "4" > /sys/class/gpio/unexport Kód: echo "4" > /sys/class/gpio/export Kód: cat /sys/class/gpio/gpio4/value Kód: raspi-gpio set 4 op dl Kód: raspi-gpio set 4 op dh Kód: raspi-gpio get 4 Kód: raspi-gpio set 4 ip Kód: raspi-gpio set 4 ip pu Kód: raspi-gpio set 4 ip pd RE: RPi- ovládání pomocí namapovaných tlačítek ? - Petrvald - 06.11.2016 Opět díky za užitečné informace, sice ne všem řádkům rozumím, ale časem to snad dám . Ještě k těm tlačítkům, pokud jsem to správně pochopil není třeba používat odpor externě, ale je možné ho aktivovat přímo na RPi ? Jestli správně počítám, tak přes GPIO by mělo jít namapovat až 17 tlačítek : RE: RPi- ovládání pomocí namapovaných tlačítek ? - cuore - 06.11.2016 Ano u raspberry lze využít interní odpor. A tlačítek při použití sériové linky můžeš mít kolik chceš. Pokud by si využíval jen GPIO tak zatím používám jen ty zelené, takže jak si psal 17, ale myslím si, že jdou v případě nouze použít i ty ostatní. Jsem uživatel používající Passport , který neumí číst pravidla o nepoužívání podpisu z Tapatalku. RE: RPi- ovládání pomocí namapovaných tlačítek ? - Petrvald - 06.11.2016 OK, objednal jsem si testovací sadu, tak jak dorazí hned začnu laborovat. RE: RPi- ovládání pomocí GPIO tlačítek ? - Petrvald - 01.12.2016 Ovládání pomocí GPIO tlačítek mám již vyřešeno . Nebylo to však na první pokus a musel jsem řešit komplikace se správným formátem příkazu (chyba syntaxe) a další problém byl v limitaci, kdy OpenELEC nebral více jak 20 stisků za minutu . Než se pustíte do prvního skriptíku, tak je potřeba mít nainstalovaný doplněk RPi.GPIO (je součástí repozitáře OpenELEC/LibreELEC). Tlačítko jsem zapojil nejednoduším způsobem, to jest pin GPIO (zelený) a GND (černý). Pro ty co budou začínat je vhodné si vyzkoušet zda tlačítko funguje a je správně zapojeno. Jako příklad uvedu test tlačítka na OpenELEC zapojeného přes pin č. 7 (hardwarové značení). Dále už jsem postupoval přes PuTTY: 1. pro pořádek jsem vytvořil složku ve které budu mít skripty uložené: Kód: mkdir skript 2. přejdu do složky a vytvořím soubor s názvem test.py Kód: cd ./skript 3. a do něj vložit (samozřejmě upravit podle použitého pinu) Kód: import sys 4. nyní si skript spustíme Kód: python test.py 5. v případě že máme správně zapojeno a zapsáno, dostaneme po stisknutí : Kód: tlacitko bylo stisknuto Takto jednoduše si otestujeme jakékoliv tlačítko zapojené do GPIO. Z předchozího víme že nám tlačítko funguje, takže zbývá zadat co se má stát po jeho stisknutí. Při brouzdání po netu jsem objevil seznam vestavěných funkcí, díky kterým můžu mapovat dle libosti. Pomocí tohoto seznamu plně nahradím Keymap editor + další, např. probuzení CEC, vyčištění knihovny, vysunutí /zasunutí mechaniky, spuštění konkrétního streamu/videa, otevření vybraného doplňku ... Kompletní seznam najdete zde: http://kodi.wiki/view/list_of_built-in_functions Pro názornost uvedu příklad, kdy budu chtít "namapovat" tlačítka připojené k pinu č. 29, 31, 33, 35, 37 a přiřadím jim funkce: pohyb vlevo, pohyb vpravo, restart, spuštění spořiče a spuštění doplňku Sosáč. Kód: import sys aby se nám skript spustil automaticky po zapnutí RPi je potřeba vytvořit soubor autostart.sh (/storage/.config/autostart.sh) a vložit do něj: Kód: python /storage/skript/test2.py & samozřejmě cestu a název skriptu si upravíte podle svého. Prozatím by to mohlo stačit , snažil jsem se popisovat celkem podrobně, aby se chytli i začínající uživatelé jako já . RE: RPi- ovládání pomocí GPIO tlačítek ? (vyřešeno) - cuore - 02.12.2016 No vida a nějaké foto rádia nebude? Jinak jsem jen tak okrajově testnul nezelené GPIO konkrétně 2 a 3. Použitelné jsou, jen tyhle dva jsou po zapojení raspberry pod napětím a shodil jsem je až ve scriptu. Zajímavá vlastnost, která se může někdy hodit. Jsem uživatel používající Passport , který neumí číst pravidla o nepoužívání podpisu z Tapatalku. RE: RPi- ovládání pomocí GPIO tlačítek ? (vyřešeno) - Petrvald - 03.12.2016 Zatím žádné není, takže není co fotit . Přestavbu chci řešit až nahradím současné RPi 2, každopádně už vím jak na to. Ještě pořeším nějakej informační displej, zatím nejsem pevně rozhodnut, ale dnes dorazil první kandidát (HD44780), tak uvidím co z něj zítra vykouzlím... |