Arduino Due alkalmazás GridEye szenzorral
Cikksorozatunk befejező részében a GridEye szenzorral megvalósítunk egy önállóan futó Arduino Due alkalmazást, mely a mini hőkamera képét egy 8X8-as RGB LED mátrixon jeleníti meg, miközben a céltárgy mozgását egy szervomotorral igyekszünk követni.

 

Cikksorozatunk első részében bemutattuk a Panasonic GridEye termoelem mátrix szenzort és annak felhasználási lehetőségeit, valamint írtunk arról, hogy hogyan lehet ezt a szenzort egy önállóan működő mini-hőkameraként felhasználni. A cikksorozat második részében a korábban megismert kiértékelő kit Arduino pajzsként való felhasználásával szimuláltunk egy gesztusvezérelt elektronikai rendszert (jelenlét-érzékelésen alapuló vezérlés), és egy PC alapú mozgáskövető világításkapcsolási megoldást is bemutattunk.

A GridEye szenzor

Mint azt  az olvasó már tudja, a Panasonic GridEye eszköze egy 8X8-as MEMS technológiára épülő hőelem mátrix, azaz 64 különálló szenzorral képes abszolút hőmérsékletet detektálni az objektum által kibocsátott infravörös sugárzás érzékelésével.

 

 

A GridEye képes a hőmérséklet és a hőmérsékleti gradiens észlelésére és egyszerű, kisfelbontású (8X8=64 pixeles) hőkép felvételére is. A végtermék fejlesztés megkönnyítésére készített, a szenzort és soros kommunikációs interfészt tartalmazó kártya kialakítása alkalmassá teszi azt Arduino Due miniszámítógéphez illeszkedő „shield” -ként való használatra.

 

 

Fontos felhívnunk a figyelmet arra, hogy a GridEye kiértékelő kit 3.3V-os kártya, így csak az Arduino Due számítógépekkel működik. Az UNO-hoz már csak fizikai kialakítása miatt sem alkalmazható, a MEGA verziók, bár rendelkeznek a megfelelő csatlakozókkal melyek látszólag illeszkednek is a kártya fizikai csatlakozásaihoz, azok 5V-os feszültségszintje miatt nem kompatibilisek a 3.3V-os GridEye Evaluation kittel.

A feladat

A megvalósítandó szimulációs feladat során a GridEye előtt mozgó objektum, jelen esetben az emberi kéz és annak közvetlen környezetének hőmérsékleti adatait az Arduino számítógéppel az I2C buszon keresztül a szenzorból kiolvassuk. Szoftveres feldolgozás során kiemeljük a kéz hőképét, majd ezt egy a kereskedelemben kapható WS2812B meghajtóval rendelkező 8X8-as RGB LED mátrixon jelenítjük meg.

 

 

A lapon található egy termisztor is, mely a NYÁK környezeti hőmérsékletét méri, természetesen ennek adatára is szükség van. A kéz érzékelését az egyszerűség kedvéért úgy végezzük, hogy azon pixelek hőmérsékletadatait, melyek a szenzor környezeti hőmérsékleténél jelentősen nagyobb értékkel rendelkeznek piros, melyek pedig ezzel egyezőek zöld színnel jelenítjük meg az RGB LED mátrixon. Az így kiemelt „piros folt” mozgását egy szervó motorral követjük.

Az Arduino Due számítógép

Az Arduino Due az Atmel SAM3X8E ARM Cortex-M3 CPU-ra épülő mikrokontroller lap. Ez az Arduino család első 32-bit ARM magra épülő tagja. 54 digitális I/O porttal rendelkezik, melyek közül 12 PWM kimenetként is használható. Meghajthatunk vele például egy szervomotort, mely segítségével követhetjük a hőforrás mozgását.

Mint említettük a korábbi verzióktól eltérően a Due 3.3V-os kártya, így a GPIO portok maximális jelszintje is csak 3.3V. Emiatt a szervomotor meghajtásához kiviteltől függően esetleg gondoskodni kell a feszültségillesztésről (3.3V-ról  5V-ra), például a sorozat előző részében kifejtett módon, az SN74HC125N vonalmeghajtó alkalmazásával.

A WS2812B alapú RGB LED mátrix

A WS2812B 5050 RGB LED diódákból készített 8X8-as mátrix ideális kijelző a GridEye szenzor számára, hiszen egy az egyben hozzárendelhetők a LED-ek a szenzor pixeleihez.

 

 

A WS2812B tartalmazza a címezhető LED drivert és az R,G,B chipeket is. Az egyes fénypontok összefűzhetők LED szalaggá, vagy az általunk használt eszközben egy 64 pontból álló fénymezővé. A panelen nem találunk előtétellenállásokat sem, mivel a WS2812B a fizikai chipeket impulzusszélesség modulált áramgenerátoros táplálással hajtja meg. Az egyes LED-ek címzéséhez egy soros bit-stream küldése szükséges a lánc első WS2812B elemére.

 

 

Az adatfolyam 3 byte-os RGB intenzítás értékeket tartalmaz a lánc minden meghajtója számára, így esetünkben az Arduino Due 3x8x64 = 1536 bitnyi adatot kell, hogy küldjön a 64 LED számára másodpercenként tízszer, mivel ez a GridEye szenzor mintavételezési frekvenciája (10 Hz). A lánc minden WS2812B eszköze továbbadja a Dout kimeneten keresztül az adatokat a következő láncelem Din bemenetére, így minden LED megkapja a saját 24 bites színinformációját.

Miután az adatok minden WS2812B-n rendelkezésre állnak, az Arduinonak szinkronizáló jelet kell kiküldeni, ezzel  minden láncelem egyidejűleg jeleníti meg a számára előírt színt. Az egyes színeket így a mért hőmérsékletértékeknek feleltehetjök meg. Egyszerűbb megoldás lehet, ha egy adott küszöbérték alatt zöld, afelett piros színnel érzékeltethetjük a kéz jelenlétét, mint ahogy a példánkban mi is tettük.

Mivel az egyes LED-ek árama kb 3X20 mA, a teljes modulra vetítve az áramfelvétel kb 3.8A-re tehető maximális kivezérlésnél, tehát mindenképpen erős külső tápegységre van szükség.

 

 

A LED mátrix meghajtására természetesen gyakorlott programozóként magunk is vállalkozhatunk, de erre nincsen szükség, mert az Arduino közösség számára elérhetők olyan könyvtárak, mint például a Fastled Animation Library, mely egyszerű interfészt biztosít nem csak a WS2812B, de más hasonló elven működő modulok számára is (Neopixel, WS2801, WS2811, LPD8806, TM1809).

 

 

A fenti kódrészlet megmutatja milyen egyszerű a 64 egymáshoz fűzött LED programozása az Arduino Due egyik digitális kimenetén keresztül. A színek mért hőmérsékleti adatokhoz való igazítása a cikksorozat előző részében leírtak és némi fantázia segítségével könnyen elvégezhető. Természetesen a szerző minden szükséges segítséget megad az érdeklődők számára.

Szervomotor illesztése

A WS2812B 5050 RGB LED márix az előzőekben tárgyaltak alapján kiválóan alkalmazható a GridEye szenzorral mért hőmérsékleti adatok kijelzésére, azonban gesztusvezérlési alkalmazásokban a kijelzés nem elegendő, valamilyen vezérlésre és beavatkozásra is szükség van. Ennek modellezésére az Arduino számítógéphez egy szervomotort illesztünk és a mozgó objektum (kéz) hőképének követésére utasítjuk.

 

 

A DC szervo kiviteltől (áramfelvételtől) függően vagy külső tápforrásról, vagy az Arduino lapról közvetlenül, esetleg feszültségillesztésen (3.3V –> 5V) keresztül táplálható, a pozícionálás pedig az Arduino Due egyik PWM (impulzusszélesség modulált) kimenetéről oldható meg. Szerencsére a bonyolult programozási algoritmusok megírása itt is elkerülhető, mindössze az ingyenesen elérhető SERVO könyvtárra van szükség. Az alábbi programrészlet bemutatja, hogy miként tudjuk a szervomotort 5 fokonként pozícionálni a „hotspot” GridEye szenzoron megjelenő képének jobbra és balra mozgásának követésére.

 

 

Természetesen a fent bemutatott példák nem teljes programok, mindösszesen csak arra hivatottak, hogy megmutassuk, milyen egyszerű is egy ilyen rendszer elkészítése. Amennyiben az olvasó komolyabban érdeklődik a téma iránt, az Endrich budapesti irodájában bármikor lehetőség van személyes konzultációra és a működő modellek is megtekinthetők.

 

Cikkünk az Endrich Bauelemente Vertriebs GmbH közreműködésével készült. Szerzője Kiss Zoltán okleveles villamosmérnök, kelet-európai értékesítési vezető.
 
Értékesítési iroda: H-1188 Budapest, Kölcsey u. 102/A.
 
E-mail: z.kiss@endrich.com
 
Web: www.endrich.com
 
További konzultációért és mintákért, adatlapokért keresse a szerzőt!

 

1800 milliárd dollárt kellene költeni energiahatékonysági beruházásokra
Idén akár 624 milliárd dollárt is költhetnek energiahatékonysági beruházásokra világszerte a tavalyi 600 milliárd dollár után – derül ki a Nemzetközi Energiaügynökség (IEA) előrejelzéséből.
25 év alatt 80 ezren vettek részt a Cisco Hálózati Akadémia hazai képzésein
Felmérések szerint Magyarországon néhány éven belül akár 44 ezer informatikus hiányozhat a munkaerőpiacról. A Cisco célja: a következő 10 évben újabb 10 millió diák digitális képzése az EMEA régióban.
A forráshiány a legnagyobb akadály a vállalati innovációk előtt
Nem változott a magyarországi vállalatok innovációs aktivitása az elmúlt fél évben; a K&H ezt mérő indexe a 100 pontig terjedő skálán 28 ponton stagnált, ezzel nőtt Magyarország lemaradása a legnagyobb innovátor országokhoz és az EU-átlaghoz képest is; a digitalizáció azonban erősödött.
Mesterséges intelligenciával lesz az adatokból üzleti előny
Az adatok napjainkban nagyobb értéket jelentenek a legtöbb vállalat számára, mint az arany – ha megfelelően tudják értelmezni és hasznosítani azokat.
Globális piacokra dolgozik a Continental veszprémi telephelye
Jelentős mérföldkő a hazai autóiparban: az idén 30 éves telephely kulcsfontosságú szerepet játszik a csúcstechnológiás, jövőálló termékek fejlesztésében, tesztelésében és gyártásában.