Osnova témat

  • Úvod

    Raspberry Pi projekty, hračky a výzvy


    Logo_EU_MSMT

    Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu "Rozvoj lidských zdrojů TUL pro zvyšování relevance, kvality a přístupu ke vzdělání v podmínkách Průmyslu 4.0" CZ.02.2.69/0.0/0.0/16_015/0002329 – ESF OP VVV.


  • Co je Raspberry Pi

    Budeme si hrát. Elektronické hračky, trochu toho programování, něco málo sestavování. Počítač Raspberry Pi je malý a přitom dostatečně výkonný a co vlastně umí, to ukáže video.

    Co potřebuji:
    • počítač Raspberry Pi, verze B, varianta 3 nebo 4 pro rozumný výkon
    • zdroj 5V, nejméně 2A, microUSB A pro Raspberry 3 a nižší, USB C pro Raspberry 4
    • kabel k monitoru, HDMI pro Raspberry 3 a nižší, miniHDMI pro Raspberry 4
    • microSD kartu (alespoň 8 GB)
    • USB myš a klávesnici
    • monitor
    Vhodné distribuce pro Raspberry
    • Raspberry Pi OS: distribuce OS Linux vyvíjená přímo pro Raspberry Pi, hodí se pro všechny desky
    • Ubuntu Mate: distribuce OS Linux vhodná pouze pro model 4, velmi přátelský desktop
    • Windows 10 IoT Core: Windows 10 pro malé počítače. Vhodné, pokud chcete simulovat desktop. Pokud ale chcete programovat, používat rozšíření pro RPi, jděte do Linuxu.
    • ... spousty distribucí orientovaných na hry nebo multimédia založených na OS Linux.
    Instalace:
    1. Stáhněte obraz OS pro vaše Raspberry na váš počítač. Vezměte SD kartu a nahrajte tento obraz na ni.
    2. SD kartu s obrazem OS vložte do Raspberry Pi, připojte klávesnici, myš, obrazovku a zdroj. Tím RPi zapnete.
    3. Sledujte, jak nabíhá OS a probíhá nastavení.
    Co nastavit (specificky pro Raspberry Pi OS)

    Nastavení Raspberry Pi OS provádějte pomocí GUI, terminálové aplikace raspi-config nebo úpravou konfiguračních souborů, nejlépe v tomto pořadí. V případě, že zvolíte jinou distribuci, bude chybět krok s raspi-config a konfigurační soubory se mohou mírně lišit.

    Uživatelský účet

    Výchozí uživatel má jméno pi a heslo raspberry. Je to natolik známá informace, že nikdy neponechávejte toto nastavení. Pokud vám změna hesla nepřijde dostatečně silné opatření, můžete změnit i přihlašovací jméno.

    1. Nastavte heslo pro uživatele root: sudo passwd root. V raspi-config zrušte autologin a start GUI. Restartuje počítač, měla by nab2hnout pouze příkazová řádka, kde se přihlásíte jako root a heslo, které jste zadali.
    2. Proveďte příkaz usermod -l nový_login pi.
    3. Pomocí oblíbeného textového editoru (třeba nano, ale pokud je to vim, musíte jej nejdříve nainstalovat) prohlédněte následující soubory a změňte uživatele pi na nový_login.
      • /etc/passwd pokud budete chtít přejmenovávat také home uživatele: mv /home/pi /home/nový_login, změňte toto nastavení i zde.
      • /etc/group pokud budete chtít změnit jméno skupiny z pi na něco jiného
      • /etc/subuid
      • /etc/subgid
      • /etc/lightdm/lightdm.conf
      • /etc/systemd/system/autologin\@.service
      • /etc/systemd/system/getty\@tty1.service.d/autologin.conf
      • /etc/sudoers.d/020_pijuice-nopasswd pokud máte nainstalovanou platformu pijuice
      • /etc/sudoers.d/010_pi-nopasswd
    4. V raspi-config vraťte autologin do GUI (pokud jej tedy chcete), raspi-config se vás zeptá, pro kterého uživatele měníte nastavení, vy zadáte, že pro nový_login. Restartujte počítač.

    Wifi

    Automatické nastavení po prvním spuštění vás provede zadáním země, kde jste, vyhledáním wifi a zadáním hesla. Toto nastavení je ukládáno do souboru /etc/wpa.supplicant. V případě, že se snažíte připojit k síti jako třeba eduroam, můžete narazit na problémy.

    SSH

    V raspi-config obvykle ještě povoluju službu ssh, abych se k Raspberry Pi mohla připojit pomocí pohodlněho dektopového počítače.

  • Multimediální stanice

    Jak použít Raspberry Pi jako multimediální stanici
    • ujasněte si, co za multimédia chcete využít
    • USB rozhraní je možné použít, ale nepřehnat to (ne více než 2 zařízení)
    Obraz
    • všechny počítače Raspberry nabízí připojení HDMI. Připojit obrazový výstup na monitor nebo na projektor je tedy snadné. V případě RPi 4 i na dva.
    • displey port umožní připojení menší obrazovky (například 7'')
    • nejmenší displeje (pod 3.5'') jsou připojované na GPIO
    Zvuk - výstup
    • Raspberry Pi umožňuje výstup pomocí 3.5mm jack nebo pomocí USB
    • na GPIO je možné připojit externí zvukovou kartu
    Zvuk - vstup
    • jack na Raspberry Pi nemá vstup pro mikrofon
    • použijte buď zvukovou kartu připojenou k GPIO, které často mívají integrovaný mikrofon(y)
    • nebo externí zvukovou kartu do USB, která umožní připojení mikrofonu
    • případně mikrofon do USB
    Kamera
    • camera port na desce Raspberry Pi slouží k připojení různých modelů kamer. Je potřeba je povolit v raspi-config (camera - enable). Jejich programování pomocí pythonovské knihovny PiCamera je velmi snadné.
    • USB kamera je možná, ale také hodně zatěžuje výkon počítače
    Jak připojit zařízení k GPIO

  • Stanice pro online schůzky

    Dali jsme si úkol: sestrojit stanici pro online výuku umožňující snadnou práci pro menší dítě (ovládání mikrofonu bez klávesnice)

    Co potřebuji:
    • počítač Raspberry Pi 4, nejméně 4GB RAM (raději 8GB)
    • zdroj 5V, nejméně 2A, USB C pro Raspberry 4
    • kabel k monitoru miniHDMI
    • microSD kartu (alespoň 8 GB)
    • USB myš a klávesnici
    • monitor
    • tlačítko s připojením na GPIO (například Grove tlačítko, LED indikace není potřeba, ale není špatná)
    • GPIO propojky (female-male a Grove-GPIO female)
    • kamera (MIPI kamerový modul)
    • USB zvuková karta + jack mikrofon (nebo libovolný jiný USB mikrofon) + reproduktor
    Instalace:

    Raspberry Pi OS. Ve starších verzích je potřeba povolit kameru v rpi-config. Také je potřeba zkontrolovat funkčnost mikrofonu, USB zvukové karty bývají bezproblémové.

    Připojení tlačítka:
    • pin 2: 5v zdroj (na tlačítku signál VCC)
    • pin 9: země (na tlačítku signál GND)
    • pin 11: klávesa "D" (na tlačítku signál SIG2, ovládání tlačítka)
    • pin 13: klávesa "Ctrl" (na tlačítku signál SIG2, ovládání tlačítka)
    • pin 15: ovládání LED (na tlačítku signál SIG1, ovládání LED)

    Kromě manuálního připojení tlačítka na GPIO je potřeba ještě do souboru /boot/config přidat řádky, které zajistí, že stisk tlačítka bude simulovat stisk klávesy Ctrl-C

    #gpio button
    #gpio=17=ip
    dtoverlay=gpio-key,gpio=17,label="D",keycode=32
    dtoverlay=gpio-key,gpio=27,label="Ctrl",keycode=29
    

  • Miniaturní klavír

    Co potřebuji:
    • počítač Raspberry Pi 3 nebo 4
    • PianoHat
    • zdroj 5V, nejméně 2A
    • microSDkarta (stačí 8GB)
    • reproduktor
    Instalace:

    Raspberry Pi OS. Pro instalaci Piano HAT navštivte https://github.com/pimoroni/piano-hat

    Připojení k Raspberry:

    Při této úloze byl uživatel připojený pomocí SSH, tedy Raspberry běží bez monitoru, klávesnice, myši. Je to pohodlné, pokud stejně potřebujete mít vedle spuštěnou běžnou stanici a Raspberry vykonává nějakou svou menší úlohu. Nicméně připojení periferií a práce přímo na stanici by úlohu nijak nezměnila.

    Odkazy:

    Skládání vyšších harmonických funkcí

    Analyzátor zvuku v mikrofonu,sprektrum

    přednáška František Fuka: Hudba z geekovsko-matematického hlediska - DevFest Praha 2012: https://youtu.be/RQuRFCE5NzI

  • Práce s kamerou

    Co potřebuji:
    • počítač Raspberry Pi, tentokrát bez nároku na výkon, stačí i verze 3
    • zdroj 5V, nejméně 2A
    • monitor
    • microSD kartu (raději alespoň 64GB, chcete-li ukládat timelapse obrázky)
    • USB myš a klávesnici (jen pro první spuštění, pak není potřeba
    • kamera (MIPI kamerový modul nebo libovolná jiná kamera, kterou máte k dispozici)
    Instalace:

    Raspberry Pi OS nebo Ubuntu Mate. Pozor na novější verze Raspberry Pi OS a jejich kompatibilitu s knihovnou picam. Ve starších verzích Raspberry Pi OS je potřeba povolit kameru v rpi-config. Ubuntu Mate může a nemusí spolupracovat s některými MIPI kamerovými moduly.

    Kód:

    Ukázka python skriptu pro spuštění kamery jednou za minutu a uložení obrázku se jménem <rok><měsíc><den>_<hodina><minuta><sekunda>.jpg do adresáře /home/ferda/fotky/

    #!/usr/bin/python3
    
    from time import sleep
    from picamera import PiCamera
    import requests
    import datetime
    
    camera = PiCamera()
    camera.resolution = (2592, 1944)
    camera.drc_strength = 'low'
    camera.start_preview()
    print("Camera warm-up time")
    sleep(2)
    try:
        while True:
             filename = "/home/ferda/fotky/" + datetime.datetime.now().strftime("%y%m%d_%H%M%S") + ".jpg"
             print(filename)
             camera.capture(filename)
             sleep(60) #takes photo every minute
    except KeyboardInterrupt:
        pass
    camera.stop_preview() 
    

    Obrázky je možné pak dále zpracovat podle chuti a schopností a video z nich vytvoří například příkaz:

    ffmpeg -i moje_timelapse_video.mp4  -qscale 1 -qcomp 0 -qblur 0 /home/ferda/fotky/*.jpg
  • Připojení baterie

    Co potřebuji:
    • počítač Raspberry Pi, tentokrát bez nároku na výkon, stačí i verze 3 nebo Zero
    • malý LCD displej
    • microSD kartu (raději alespoň 64GB, chcete-li ukládat větší množství obrázků)
    • USB myš a klávesnici
    • kamera (MIPI kamerový modul)

    • platforma PiJuice s baterií
    • zdroj pouze pro dobíjení
    Instalace:

    Raspberry Pi OS. Pozor na novější verze Raspberry Pi OS a jejich kompatibilitu s knihovnou picam. Ve starších verzích Raspberry Pi OS je potřeba povolit kameru v rpi-config.

    Programování:

    Skript pro sběr obrázků je možné zkopírovat z úlohy "práce s kamerou". Pro praktické a častější použití je vhodné celou úlohu automatizovat, aby skript byl spouštěný po startu stroje.

    Rozpoznávání obrazu:

    Tuto část úlohy pro její obsáhlost ponechávám na laskavém divákovi. Proveditelné řešení je provést na velkém počítači strojové učení vzorů, ty pak přenést na raspberry a nechat jej rozpoznávat obrázky. V tomto případě už bych nepoužila  pouze Raspberry Zero

    Úsporná varianta:

    Je možné vyzkoušet celý systém bez displeje, tedy pouze RPI s platformou PiJuice a kamerou. Hardwarová stránka se krásně zjednoduší, vystačíte s menší baterií. Na druhou stranu musíte zajistit spuštění programu pro sběr obrázků (možno automaticky po bootu přidáním do crontab s časem @reboot) a kontrolou jejich kvality. Schůdné řešení je pomocí vzdáleného připojení se na RPI, pohodlné řešení je třeba namapování disku na jiný počítač ve stejné podsíti pomocí NFS, ale aby vše fungovalo automaticky, chce to už trochu cviku a nadšení pro přidělování statických IP adres. Nebyli byste první, kdo zjistí, že v ostrém provozu v podmínkách vzdáleným laboratorním vynález skončil na tom, že se zrovna nemůžu připojit, nemůžu zkontrolovat, jestli obrázky vznikají, a při návratu do domácího prostředí zjistit, že vše fungovalo, jen jsem zapomněla sundat krytku kamery.

    Raspberry v divočině:

    Zatímco mobil či tablet venku vytáhnete bez obavy o jejich okamžité zničení, Raspberry Pi v krabičce od sušenek bude daleko křehčí. Při výrobě takové krabičky si dejte pozor, aby do ní nemohla vniknout vlhkost a zároveň bylo zařízeno odvětrávání a chlazení systému.