Akárcsak a természetben, a beágyazott rendszerekhez készült fejlesztőeszközök is „ökoszisztémákat” alkotnak. Egyes ökoszisztémák nagyon zártak, alig vannak átfedéseik másokkal, míg más ökoszisztémák nyitottak és széleskörűek, szinte mindent támogatnak, ami csak létezik. Magától értetődik, hogy a fejlesztőknek és a mérnököknek határozott véleményük van erről a témáról. Ahogyan egy üvegház több ökoszisztémát is fenntart, úgy az általunk készített üvegház-demó is több mikrovezérlőt (MCU) és azokhoz kapcsolódó ökoszisztémákat mutat be, amelyek együtt működnek.
Greenhouse Demo – Az üvegház bemutatója
A Greenhouse Demo egy üvegház-vezérlő egyszerűsített változata. A megvalósítás alapgondolata az, hogy a tetőt intelligensen nyissák ki és csukják be, hogy az esővíz bejuthasson az üvegházba. Ezt egy motoros vászonponyva-mechanizmus segítségével valósítottuk meg. A vászonponyvát régi promóciós vászon táskákból készítettem el, és én [a szerző] varrtam össze a kívánt alakra. A tető mechanikus vezetőit és menetes csavarját egy 3D-nyomtatóból alakítottuk át, léptetőmotoros meghajtással. Esőérzékelőként egy MTCH9010 értékelőlapot használunk. Végül egy felhasználói felület lehetővé teszi az automatikus (eső) vezérlés kézi felülírását.
A rendszer négy funkcionális blokkból áll:
– Felhasználói felület, kapacitív érintőképernyő-vezérlő a PIC32CM GC Curiosity Pro (EA36K74A) mikrovezérlővel a VS Code® környezetben
– Intelligens léptetőmotor-vezérlő referencia-terv, amely az AVR® EB mikrovezérlő-családra épül az MPLAB® Code Configurator Melody szoftverben
– Egy fő alkalmazásprocesszor SAM E54-gyel az Xplained Pro fejlesztőkészletben (ATSAME54-XPRO), Zephyr RTOS futtatásával
– Egy folyadékérzékelő az MTCH9010 kiértékelőkészlet (EV24U22A) felhasználásával, egy ASIC-kel
A cikkben bemutatott üvegházi demonstrációs rendszer a Microchip romániai alkalmazásfejlesztő csapata által kifejlesztett „Smart Retractable Roof” (intelligens behúzható tető) megoldáson alapul. Ez a referencia-terv az üvegházi rendszertől kissé eltérő módon valósul meg: az intelligens léptetőmotor-vezérlő közvetlenül kapcsolódik az MTCH9010-hez a tető helyzetének vezérléséhez. Ez a konfiguráció ideális olyan alkalmazásokhoz, ahol az alkalmazásprocesszornak nem szükséges ismernie a tető aktuális állapotát.

Felhasználói felület-vezérlő
Mivel ennek az üvegház vezérlőpanel általában olyan helyen található, ahol vízzel kell számolni, fontos volt ezt figyelembe venni a felhasználói felület tervezésekor. A kapacitív érintőpanelek vonzóak, mivel nincsenek mozgó alkatrészeik, és könnyen lezárhatók egy burkolat alatt. Ugyanakkor a kapacitív érintőképernyők érzékenyek lehetnek a víz okozta téves működésre.
Ezen hatások a minimalizálása érdekében egy továbbfejlesztett Peripheral Touch Controller (PTC) vezérlővel rendelkező mikrokontrollert – például a PIC32CM-GC család egyik tagját – alkalmaztunk, hogy a jelen lévő nedvesség hatását a lehető legkisebb mértékűre csökkentsük. A kapacitív érintőképernyős interfész fejlesztése az MPLAB Harmony szoftver és a kapacitív érintőképernyős könyvtárak segítségével történik, amelyek jelentősen megkönnyítik az érintőképernyős alkalmazások fejlesztését.
A bemutató felhasználói felülete egy PIC32CM GC Curiosity Pro (EA36K74A) mikrovezérlőből áll, amely egy QT7 XPlained Pro Extension (ATQT7-XPRO) kiegészítőhöz van csatlakoztatva, így biztosítva egy (kapacitív) csúszkát és két érintőgombot.

A két nyomógomb segítségével a felhasználó teljesen kinyithatja vagy bezárhatja a ponyvát, míg a csúszka részleges kinyitási vagy bezárási beállításokat tesz lehetővé. Ha a felhasználói felület 30 másodpercig vagy annál hosszabb ideig inaktív marad, a bemutató visszavált az MTCH9010 esőérzékelőre, amely automatikusan eldönti, hogy a ponyvát ki kell-e nyitni vagy be kell-e zárni.
Intelligens léptetőmotor-vezérlő
A Smart Stepper Motor Controller egy referencia-terv, amely az AVR EB mikrovezérlőcsaládot használja a léptetőmotor léptetéséhez, fél-léptetéséhez és mikroléptetéséhez szükséges hullámformák előállításához. Azáltal, hogy a hullámformákat a mikrovezérlő generálja, a motor önállóan működhet, anélkül, hogy a rendszer más részén található fő alkalmazásprocesszor(ok) logikai műveleteire vagy beavatkozására lenne szükség. Ez hasznos olyan jelek esetében, mint a végálláskapcsolók, a mechanikus ütközők, a kvadratúra-enkóderek vagy más, figyelemmel kísérendő jelek.

Az MCU parancsokat fogad az alkalmazásprocesszortól, és azokat végrehajtva a ponyvát a megadott helyre mozgatja. Ennek az „intelligens” léptetőmotor-vezérlőnek az egyik előnye, hogy a funkciói szoftveresen beállíthatók. Például ha analóg jeleket vagy végálláskapcsolókat csatlakoztatnak, a firmware módosítható úgy, hogy figyelembe vegye ezeket a jeleket.
Bár a motorhoz rögzített NYÁK egyedi kivitelű, ez a funkcióblokk a többfázisú tápegységgel /Multi-Phase Power Board (MPPB) [EV35Z86A]/, az AVR EB Curiosity Nano adapterrel /AVR EB Curiosity Nano adapter (EV88N31A)/ és az AVR EB Curiosity Nano-val /AVR EB Curiosity Nano (EV73J36A)/ is megvalósítható.
Alkalmazásprocesszor
A bemutatóban szereplő alkalmazásprocesszor egy SAM E54 mikrokontroller, amelyen a Zephyr® RTOS (valós idejű operációs rendszer) fut. A Zephyr egyik legnagyobb előnye más valós idejű operációs rendszerekkel és eszközláncokkal szemben az, hogy az API (alkalmazásprogramozási interfész) egységes marad, a gyártóspecifikus kód és az absztrahált, magasabb szintű API-k között pedig egyértelmű elhatárolás van. Ez lehetővé teszi a fejlesztők számára, hogy minimális erőfeszítéssel olyan kódot írjanak, amely több különböző mikrokontrolleren is működik.
A Zephyr emellett kiváló hálózati támogatással /networking support/ és folyamatosan bővülő funkciókészlettel /ever-expanding list of capabilities/ rendelkezik, ami miatt elengedhetetlen eszközzé teszi komplex alkalmazásokhoz. A Zephyr nyílt forráskódú (Apache 2.0 licenc alatt áll), rendkívül aktív felhasználói bázissal rendelkezik, és számos különböző programozási eszközt támogat, többek között az OpenOCD-t, a Segger® J-Linket és a GDB-t.
Egyéb ökoszisztémák
Az üvegházi bemutatóban közvetlenül használt ökoszisztémákon túl számos egyéb lehetőség is rendelkezésre áll. A legnépszerűbb példák közé tartozik az IAR Embedded Workbench, Arm® Keil, MikroE’s Necto Studio és a SEGGER Embedded Studio. Ezek a prémium kategóriás eszközök fejlett funkciókkal és azokhoz illeszkedő, kiváló minőségű támogatással rendelkeznek.
Például nemrég problémám adódott a Zephyr indításával egy mikrokontrolleren, ahol nem tudtam hozzáférni a szokásos hibakeresőkhöz, és a `printf` használata sem jöhetett szóba. A SEGGER Ozone-t és egy J-Link+ eszközt használtam ennek a bonyolult problémának a megoldására. Az Ozone egy speciális hibakereső környezet, amely eltekint a szokásos IDE-fülektől, és helyette speciálisabb ablakokat és képernyőket kínál a fejlesztőnek. Az én esetemben a probléma abban nyilvánult meg, hogy az MCU a hibakeresőből megfelelően elindult, de hidegindításkor nem. Némi hibaelhárítás és tesztelés után végül megállapítottam, hogy az egyik hiba a kódomban lévő RAM-inicializálási hiba volt. A problémát egy aprócska indító assembly-kóddal javítottam ki, amely a fő rendszermag elindulása előtt futott le. Az általam írt assembly-kódrészletet az érdeklődők számára alább csatoltam.

A történet tanulsága az, hogy a többi fejlesztői környezet is egyedi előnyökkel jár. Erre egy másik példa az, hogy az IAR beépítette a Zephyr támogatását /support for Zephyr/ az IDE-megoldásába. Sok szempontból az, hogy melyik ökoszisztémában fejlesztünk, személyes preferenciák kérdése. Valójában nincs rossz válasz, ha az adott megoldás biztosítja a tervünk működéséhez szükséges funkciókat. A „Greenhouse” bemutató ezt szemlélteti azzal, hogy több ökoszisztémát és eszközláncot mutat be, amelyek egyetlen rendszerben működnek együtt.
További információkért látogasson el a Microchip weboldalára: www.microchip.com
Robert Perkel a Microchip Technology alkalmazástechnikai mérnöke. Technikai tartalmakat – például alkalmazási útmutatókat, vendégcikkeket és videókat – készít. Feladata továbbá a perifériák felhasználási eseteinek elemzése, valamint kódpéldák és bemutatók kidolgozása. Perkel a Virginia Tech egyetemen szerzett számítástechnikai mérnöki diplomát.











