Hlavní navigace

Bezdrátový přenos s IQRF: přizpůsobení chování transceiveru

Ivona Spurná 1. 6. 2016

Transceivery IQRF zajišťují základní funkčnost samy o sobě již s vlastní programovou výbavou. Pokud je třeba více přizpůsobit jejich funkčnost, lze k tomu použít Custom DPA Handler.

Custom DPA Handler je volitelná programová nadstavba, pomocí které lze efektivně upravit chování transceiveru. V tomto dílu si ukážeme první z mnoha případů využití.

Custom DPA Handler

Jestliže je potřeba přizpůsobit chování a funkčnost transceiveru nad rámec, který poskytuje HWP (hardware profile) spolu s operačním systémem, je možno k tomuto účelu použít Custom DPA Handler. Jedná se o programovou nadstavbu psanou v jazyce C. Vytvořený program se následně kompiluje (vytvoří se HEX soubor) a nahraje obvyklým způsobem do transceiveru.

Custom DPA Handler umožňuje přistupovat k nestandardním periferiím nebo přizpůsobit chování standardních perfiferií. Tímto způsobem můžete například generovat PWM, odečítat hodnoty z externích čidel nebo ADC. Využití se najde mnoho a vycházejí z potřeb, požadavků a kreativy tvůrce.

K dispozici je poměrně velká sada již vytvořených programů Custom DPA Handler. Najdete je na webu technologie IQRF. Lze je buď rovnou využít nebo podle potřeby upravit.

Ukázka generování PWM

Co je PWM

Zjednodušeně řečeno – PWM je pulsně šířková modulace analogového signálu pomocí dvouhodnotového signálu, k čemuž může sloužit např. napětí, proud nebo světelné pulsy. Signál je zakódován pomocí stavů zapnuto a vypnuto. Poměr mezi těmito stavy se nazývá střída. Může nabývat hodnot mezi 0 % – 100 %, kde 0 % znamená vypnuto a 100 % znamená zapnuto. Pomocí PWM je možno řídit například otáčky stejnosměrného motoru nebo jas světla.

Jak generovat PWM

Pro jednoduchost – ať už z pohledu pořízeného hardware, tak i z pohledu zapojení – bylo v této ukázce zvoleno řídit pomocí PWM jas LED. Pro vyzkoušení je potřeba mít k dispozici funkční síť IQRF, tj. mít v ní jeden Koordinátor a aspoň jeden Nod, v němž bude generování PWM probíhat. K tomuto Nodu bude připojeno zařízení, v němž se bude pomocí PWM něco řídit (zde bude pomocí PWM měněn jas LED).

Pozn.: O tom, jak z transceiveru udělat Koordinátor nebo Nod, bylo už pojednáno v minulých dílech, stejně tak jako o vytvoření funkční sítě a jejím otestování.

Pro generování PWM pracujte se souborem CustomDpaHandler-UserPeripheral-PWM.c, který najdete v balíčku Startup package. Tento soubor v aplikaci IQRF IDE importujte do sekce Source. Můžete v něm provést případné změny a následně jej zkompilujte do HEX souboru. Tím si připravíte soubor vhodný pro nahrání do Nodu. Pokud nechcete žádné programové úpravy dělat, můžete rovnou využít již připravený zkompilovaný HEX soubor, ten importovat do sekce Output HEX a následně nahrát do Nodu. Zdrojové soubory i jejich kompilované varianty najdete v balíčku Startup Package připravené.

V konfiguraci Nodu je nutné povolit použití Custom DPA Handleru (záložka HWP). Jinak by k jeho využití i přes jeho přítomnost v Nodu nedocházelo.

Proto, aby příslušný transceiver generoval PWM, je třeba mu zaslat na příslušnou periferii potřebná data. Protože generování PWM zajišťuje příslušný Custom DPA Handler, je potřeba v souladu s kódem volit a zasílat správná data.

Ve zdrojového kódu se lze dočíst, že očekávaná data je třeba zasílat na první uživatelskou periferii (PNUM 0×20) a příkaz příslušející této periferii musí být nastaven na 0×00 (PCMD 0×00). Dále jsou očekávána data ovlivňující nastavení tří parametrů – předřadič (prescaler), frekvence (period), a střída (duty). Při testování aplikace můžete zadat tato data v terminálu do políčka PDATA (např. PDATA 0×00.FF.80). Poslední hodnota v rozsahu 0×00 až 0×FF mění hodnotu střídy a s tím i hodnotu jasu připojené LED. Při zaslané hodnotě střídy 0×00 nebude LED svítit, naopak při zaslané hodnotě 0×FF bude svítit naplno.

Pokud tedy chcete zaslat data na Nod s logickou adresou 0×0001, bude zpráva vypadat následovně: 00.01.20.00.FF.FF.00.FF.80.

Při vývoji aplikace je často potřeba prostudovat elektrotechnická schémata všech komponent, které se při daném příkladu používají. Obvykle zde najdete popsánu kompletní funkčnost daného zařízení, vstupy, výstupy, označení…

V tomto příkladu je využit transceiver, jehož podrobný popis najdete v jeho datasheetu a dále zařízení DK-EVAL-04, jehož popis je dostupný na IQRF.org.

PWM výstup je na transceiveru propojen s pinem C5, a v zařízení DK-EVAL-04, do kterého je transceiver zapojen, je tento pin vyveden do zdířky označené C5. Pokud pomocí PWM řídíme jas LED, zapojíme jeden konektor LED do zdířky označené C5 a druhý konektor do zdířky GND (ground, uzemnění).

Pro zjednodušení orientace, kam piny na vývojovém vybavení vedou, existují připravené popisky a polepky, můžete je najít buď přímo v technických dokumentech daného zařízení na webu technologie www.iqrf.org nebo se o nich zmiňují i vývojáři publikující na webu doitwireless.com.

V příštím díle si ukážeme, jakým způsobem lze číst data z externího teplotního čidla Dallas, hodnoty z externího čidla osvitu (fotorezistor) či hodnoty napětí pomocí potenciometru.

Našli jste v článku chybu?

2. 6. 2016 18:12

Dobrý den,

super, děkuji za obsáhlou odpověď a hlavně objektivní. Co se týče zápůjčky na zkoušku, rád bych, ale momentálně toho mám hodně, takže bych se k tomu nedostal (dělám tyhle věci po večerech, když rodina už spí a poslední dobou finišuje jeden projekt u zákazníka). Každopádně jsem si „uložil“ do paměti co a jak a až přijde čas, tak si 2 kousky koupím a vyzkouším co by se s tím dalo dělat.

2. 6. 2016 8:27

Nebudu se do článku navážet, pro mne je to zajímavé, byť z toho vidím jistý komerční záměr, ale proč ne.

Na druhou stranu se zeptám, pokud jsem v bytě, k čemu mi IQRF je? Mám v bytě/baráku WIFI a třeba ESP-07, který má rozměry zrhuba 2x1.5cm a je schopný provádět i určité operace autonomně, třeba sbírat data ze senzoru a posílat mi je na server (zatím jen ve fázi teoretické, praktickou začínám rozjíždět) mne vyjde zhruba okolo 100kč/kus (zaokrouhleno).

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?