Feltesszük a kalapot – Sense Hat programozása Scratch 3 környezetben
A Sense HAT a Raspberry Pi egyik kiegészítő panelje, amelyet kifejezetten a Nemzetközi Űrállomáson zajló Astro Pi misszióhoz készítettek. Az eszköz két példányát 2015 decemberében vitték fel az ISS fedélzetére.
A Sense HAT 8×8 RGB LED mátrixszal, ötgombos joystickkel rendelkezik, és a következő érzékelőket tartalmazza:
- Giroszkóp
- Gyorsulásmérő
- Magnetométer
- Hőmérő
- Légköri nyomás mérő
- Páratartalom mérő
A Sense Hat bővítmény betöltése
A Sense Hat programozhatósága a Pi4 illetve a Scratch 3.0 megjelenése előtt a Python-ra illetve a raspbian os részeként letölthető emulátorra korlátozódott.
Az új Pi4 megjelenésével párhuzamosan megjelent a program „Desktop” változata, ami már komoly Sense Hat támogatást tartalmaz. Ezt a Sense Hat bővítmény betöltése után érjük el.
A Sense Hat csatlakoztatása
A Sense Hat kialakítása olyan, hogy csatlakozósávja segítségével közvetlenül tudjuk illeszteni a Raspberry Pi GPIO portjához. A Pi4 változatnál azonban célszerű a panelt az ábrán látható 40-eres szalagkábel segítségével használni. Így elkerülhetjük, hogy a Pi4 túlmelegedjen, illetve, hogy a processzor által termelt hő befolyásolja a Sense Hat szenzorait.
A Sense Hat bővítmény elemei
ledmátrix vezérlő blokkok
A parancsok segítségével feliratokat, egyedi karaktereket írhatunk a kijelzőre, illetve készíthetünk pixelenként megadott képet, sprite-ot, valamint törölhetjük a kijelző tartalmát.
színbeállító blokkok
A színbeállító parancsok segítségével módosítani lehet a bekapcsolt fénypontok színét, intenzitását és fényerejét. Ezen kívül állítható a háttér képpontok színe is.
Az utolsó parancs segítségével koordináták megdásával tudjuk az egyes pixeleket ki, illetve adott színnel, fényerővel bekapcsolni.
kijelzés elforgatása
A blokk segítségével 90 fokonként tudjuk forgatni a megjelenítendő képet az alaphelyzethez képest.
joystick kiolvasása
A parancsokkal a HAT kisméretű botkormányát tudjuk kiolvasni, és az értékek alapján különböző parancsokat kiadni. A blokk alkalmazását egy egyszerű példával mutatjuk be a cikk későbbi részében.
A panel segítségével rázkódás, illetve az alaphelyzetből való kibillentés is érzékelhető. Erre szolgálnak az alábbi blokkok:
rázás és billentés kiolvasása
A parancsokkal a HAT rázását, illetve az alaphelyzethez képesti négy irányban történő elmozdítását (billentését) tudjuk érzékelni.
környezeti változók
Az utolsó blokkcsoport az un. környezeti változók mérésére szolgáló szenzorok értékeit adja, ezek a hőmérséklet, a barometrikus nyomás és a páratartalom. Az utolsó három parancs (roll, pitch, yaw) a HAT x,y,z tengely menti elmozdulását adja vissza 0 – 360o-os értékben. A blokkok előtt látható jelölőnégyzet segítségével a hat a szenzorok értékét folyamatosan ki tudja írni a scratch munkaablakában.
A roll, pitch, yaw értékek könnyebb megértéséhez egy magyarázó ábra. Hasonló rendszer működik a repülőgépek robotpilótáiban is.
Végezetül következzen két egyszerű mintaprogram a blokkok használatának bemutatására.
Mintaprogramok
Az első program segítségével a környezeti változók (hőmérséklet, nyomás, páratartalom) értékeit tudjuk kiíratni a led kijelzőre. A megjelenített értékek természetesen scrollozva jelennek meg a ledmátrixszon.
A második program a joystick használatát mutatja be. Az indulás pillanatában az x=3, y=3 pontban lévő led-et kapcsoljuk be 50%-os intenzitású piros színnel, majd a joy minden egyes elmozdításának hatására egy pixellel elmozdítjuk jobbra, balra, le illetve fel. A joy lenyomására újra a 3,3 pozícióba kerülünk.
A forráskódok letölthetőek:
Az téma negyedik fejezete itt található
Az téma harmadik fejezete itt található