Konfigurácia Simulink modelu pre beh na zariadení
Simulink je prostredie, v ktorom môžete vytvoriť model zariadenia a simulovať jeho správanie bez toho, aby ste mali skutočný hardvér k dispozícií. Odladený algoritmus vytvorený v Simulinku môže byť neskôr nasadený na rôzne zariadenia. Podpora zariadení sa do Simulinku pridáva pomocou hardvérových balíčkov (Hardware Support Packages). Balíčky rozširujú bloky Simulinku zvyčajne o periférie zariadenia, pomocou ktorých môžeme snímať alebo riadiť. V tomto návode si ukážeme ako nakonfigurujeme model Simulinku tak, aby bežal na Arduine a povieme si o 2 možnostiach pre nahratie modelu na Arduino.
Čo budeme potrebovať?
Pred nahratím modelu odporúčame mať zapojené jednotlivé komponenty na piny Arduina. Arduino by malo byť pripojené do počítača cez UBS kábel. Konfigurácia modelu sa môže robiť
- v prázdnom modeli - pred vytvorením algoritmu
- v hotovom modeli - po vytvorení algoritmuv
Odstránenie existujúceho spojenia v MATLABe
Pokiaľ ste v MATLABe testovali príkazy a vytvorili ste si objekt arduina príkazom
a=arduino();
je potrebné pred nahratím kódu na zariadenie zrušiť toto spojenie príkazom
clear a
Robíme to preto, lebo MATLAB si obsadí COM port počítača a znemožní nahrať kód zo Simulinku.
Konfigurácia Arduina v Simulinku
Nastavenie spojenia s Arduinom si ukážeme na prázdnom modeli. Otvoríme Simulink a zvolíme Blank model.
V záložke APPS rozbalíme roletku a preskrolujeme sa na Run on Hardware Board.
V nasledujúcom okne zvolíme typ zariadenia v našom prípade Arduino MEGA 2560.
Po zvolení zariadenia sa pridá v modeli záložka HARDWARE. Arduino môžeme konfigurovať pomocou tlačidla Hardware Settings. Niekedy sa môže stať, že MATLAB automaticky nerozpozná port, na ktorý je Arduino pripojené do počítača. V takom prípade musíme
- otvoriť nastavenie zariadenia - Hardware Settings
- rozbaliť možnosť - Target hardware recources
- zvoliť - Host-board connection
- prepnúť - Set host COM port z Automatically na Manual
- zapísať číslo COM portu
- potvrdiť pomocou tlačidla Apply
Ako zistíme na ktorý port je pripojené Arduino?
- Windows - Device Manager, COM & LPT
- Linux - ls /dev/* (/dev/ttyUSB* , /dev/ttyACM*)
- Mac - ls /dev/* (/dev/tty.usbmodem* , /dev/tty.usbserial*)
V tomto okamihu máme nakonfigurované zariadenie a môžeme vytvoriť algoritmus. Pre jednoduchosť pridáme len digitálny vstup a prepojíme ho digitálny výstup (napr. Button a LED). Model môžeme uložiť.
Monitor & Tune
Veľké plus Simulinku je možnosť interaktívneho ladenia a zobrazovania signálov. Pokiaľ váš model obsahuje vstupné bloky ako je napríklad konštanta (Constant) alebo výstupné bloky ako je Display alebo Scope môžeme ich po nahratí na zariadenie meniť alebo sledovať. Pre nahratie modelu na zariadenie a jeho interaktívne ladenie môžeme využiť možnosť Monitor & Tune. Najskôr je dobré nastaviť ako dlho má model na zariadení bežať. Rozbaľte roletku pod tlačidlom Monitor & Tune a v položke Stop Time nastavte čas. Pokiaľ chcete, aby algoritmus bežal do nekonečna nastavte inf. Interaktívny režim spustíte tlačidlom Monitor & Tune. Simulink preloží a nahrá model na zariadenie (čo pár sekúnd bude trvať, sledujte výpisy v ľavej dolnej časti okna modelu) a po nahratí a spojení sa s arduinom spustí algoritmus. Algoritmus zastavíte tlačidlom Stop, aj keď ste nastavili čas na nekonečno.
Build, Deploy & Start
Interaktívny režim je dobrý na ladenie, ale aj keď algoritmus beží na Arduine potrebujeme spojenie s počítačom a Simulink. Našim cieľom je však, aby algoritmus bežal na Arduine bez pripojenia k počítaču. Simulink poskytuje voľbu Build, Deploy & Start, ktorá nahrá a spustí algoritmus na Arduino. Po úspešnom nahratí (znova to môže trvať pár sekúnd, sledujte výpisy v ľavej dolnej časti okna modelu) môžete Arduino odpojiť od počítača a pripojiť externú baterku (PowerBanku). Po pripojení baterky sa algoritmus spustí nanovo.
V tomto návode sme si ukázali ako nastavíme model Simulinku tak, aby sme boli schopní nahrať model na Arduino. Ukázali sme si ako spustiť interaktívny režim na ladenie parametrov modelu. Po odladení parametrov môžeme nahrať algoritmus na Arduino a odpojiť ho od počítača.