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.

SenseHat emulator

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.

SenseHat bővítmény betöltése

Új blokkészlet és bekötés

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.

Roll, Pitch és Yaw tengelyek értelmezése

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.

Szenzorkiolvasás SenseHat-ből

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.

Joystick használata SenseHat-ből

A forráskódok letölthetőek:

Az téma negyedik fejezete itt található

Az téma harmadik fejezete itt található

Az téma második fejezete itt található

Az téma első fejezete itt található