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 simulačných módoch.
Čo budeme potrebovať?
- Arduino MEGA 2560
- USB kábel typu A-B
- bread board (BB-301)
- 2x rezistor 220 Ohm a 1x rezistor 10 kOhm
- 2x LED (napr. červená a modrá)
- tlačidlo
- potenciometer
- prepojovacie drôty
- počítač/notebook s prostredím MATLAB
- Powerbanka
- Simulink Support Package for Arduino
Schéma
Zapojte súčiastky podľa uvedenej schémy


Odstránenie existujúceho spojenia v MATLABe
Pokiaľ ste v MATLABe testovali príkazy z predchádzajúceho návodu 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*)

Aby sa do Arduina zmestil väčší model podporujúci ladenie parametrov nastavíme v časti Code Generation konfiguráciu na Faster Runs.

Ladenie parametrov odomkne voľba Tunable v časti Code Generation a Optimization.

Vytvorenie testovacieho modelu
V tomto okamihu máme nakonfigurované zariadenie a môžeme vytvoriť algoritmus. Ako vytvoriť jednoduchý model na testovanie si ukážeme v nasledujúcom návode.
Connected IO
Prvý režim, ktorý si spomenieme je Connected IO. V tomto režime komunikujeme s Arduinom ako v prostredí MATLAB. Simulink teda nahrá na Arduino komunikačné rozhranie, pomocou ktorého sme schopní ovládať vstupy a výstupy. V záložke Hardware musíme prepnúť mod na Connected IO. Pokiaľ chcete, aby algoritmus bežal až kým ho nezastavíte, nastavte čas simulácie v časti Stop Time na inf. Model môžete spustiť tlačidlom Run with IO.

Výpočet modelu beží na našom počítači. Simulink sa preto snaží, aby simulácia bežala tak rýchlo, ako to len ide. Pre spomalenie simulácie na kvázi reálny čas využijeme nastavenia Simulation Pasing. Po zapnutí Simulation Pasing a spustení modelu už model pojde v približne reálnom čase.

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. Pokiaľ chcete, aby algoritmus bežal až kým ho nezastavíte, nastavte čas simulácie v časti Stop Time na 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.
