26.1.2018 Praha Programování LEGO MINDSTORMS s použitím nástroje MATLAB a Simulink Jaroslav Jirkovský jirkovsky@humusoft.cz www.humusoft.cz info@humusoft.cz www.mathworks.com
Co je MATLAB a Simulink 2 MATLAB inženýrský nástroj a interaktivní prostředí pro vědecké a technické výpočty grafické a výpočetní nástroje grafická uživatelská rozhraní (GUI) otevřený systém Simulink nadstavba MATLABu modelování, simulace a analýza dynamických systémů prostředí blokových schémat platforma pro Model Based Design Aplikační knihovny Strojové učení, statistika a optimalizace Deep learning, neuronové sítě, fuzzy Zpracování obrazu a počítačové vidění Zpracování signálu a komunikace Finanční analýza a datová analytika Výpočetní biologie Modelování fyzikálních soustav Návrh řídicích systémů a robotika Systémy diskrétních událostí Měření a testování Tvorba samostatných aplikací Generování kódu (RT a embedded)
Výpočty, funkce, programy, tvorba aplikací Výpočetní funkce funkce z různých aplikačních oblastí Interaktivní dokumenty Připravená GUI Tvorba programů a algoritmů nástroje pro ladění programu Pokročilá grafika a vizualizace Tvorba vlastních grafických uživatelských rozhraní 3
Modelování systémů Modelování v grafickém prostředí Modelování matematickým popisem dh dt k1q1 k 2 h prvky pro spojité i diskrétní systémy matematické operace, nelinearity vstupní signály a grafické výstupy m x bx kx F Modelování algoritmů Fyzikální modelování soustav Stavové automaty a řídicí logika 4
Matematické výpočty a Datová analytika Statistické výpočty a pravděpodobnost Strojové učení Prokládání křivek Optimalizační úlohy Finanční analýza a modelování Neuronové sítě Fuzzy logika Symbolické výpočty 5
Zpracování obrazu a počítačové vidění Snímání reálného obrazu Zpracování obrazu a videa úprava obrazu, transformace, segmentace práce s barevnými prostory Počítačové vidění detekce a sledování objektů detekce obličeje, postav 3-D vision, OCR Deep Learning rozpoznávání obrazu a detekce objektů sémantická segmentace 6
Digitální zpracování signálu Měření a výstup reálných signálů Zpracování signálu a návrh filtrů návrh filtrů a filtrace signálu statistické zpracování signálu Pokročilé zpracování signálu návrh pokročilých digitálních filtrů stream-based zpracování signálu 7
Modelování řídicích systémů Propojení modelů soustav s regulátory blok PID regulátoru v mnoha variantách jiné regulátory z obecných prvků Nástroje pro ladění řídicích systémů automatické ladění PID regulátorů automatické ladění rozvětvených řídicích systémů ladění pomocí optimalizačních algoritmů Spojité a diskrétní prvky v jednom modelu Bohaté knihovny vstupních signálů 8
Aplikace v reálném čase a nasazení na HW Simulace v reálném čase PC s měřící kartou, real-time simulátory Spouštění modelů na výukovém hardware Arduino, LEGO Mindstorms, Raspberry Pi,... Generování kódu pro cílové platformy plně automatické jazyky: C/C++, HDL kód, strukturovaný text cílové platformy: P, DSP, FPGA, PLC 9
Program Základy Simulinku Podpůrný balíček pro LEGO EV3 Základní práce se senzory a motory Externí režim Robot sledující čáru Vyhýbaní se kolizím Funkce v Simulinku Stateflow 10
Simulink Prostředí pro modelování, simulace, implementace dynamických a embedded systémů Tvorba blokových schémat Multidoménové systémy Platforma pro Model Based Design Projektově orientované vyučování Podpora low-cost hardware MATLAB a Simulink + Support Packages EV3, NXT, Arduino, Raspberry Pi 11
Simulink v průmyslu Eurocopter: Helicopters Eaton: Hybrid Delivery Truck Caterpillar: Construction Machine IAV: CNG/LPG EMS GM: HVAC Delphi: Common Rail Diesel Dongfeng: BMS Honeywell: Flight Controls GM: Hybrid Powertrain Daimler: Vehicle Controller Lear: BCM Vodafone: Telematics 12 12
Programování barvy indikátoru stavu Indikátor stavu různé barvy Vytvoření modelu v Simulinku Bloky Constant Status Light Propojit bloky Konfigurace cílového zařízení Nahrání modelu na EV3 13
Získání a zobrazení hodnot EV3 senzorů Senzor port perioda vzorkování další nastavení Vytvoření modelu v Simulinku Bloky Ultrasonic Sensor Display Propojit bloky Hodnota senzoru se zobrazí na obrazovce EV3 14
Vyhýbání se kolizím Modelování a testování návrh funkce (logiky) zkoušení vstupů sledování výstupů Výměna vstupů za reálné Ultrasonic Sensor Motor Implementace nahrání do EV3 15
Interaktivní ovládání Ovládání robota rychlost diferenciál Typy programování Deploy to hardware External mode Externí režim změna vstupů monitorování výstupů 16
Robot sledující čáru Algoritmus čtení světelného senzoru zesílení rozdílu rozdělení rychlosti na kola Ladění parametrů Externí režim žádaná hodnota intenzity zesílení rychlost 17
Robot sledující čáru s vyhýbáním se kolizím I Spojení více modelů distribuce úloh kombinace částečných úloh Algoritmus sledování čáry detekce překážky zastavit motory Kombinace částí blok SWITCH 18
Robot sledující čáru s vyhýbáním se kolizím II Kombinace bloků nárůst složitosti Využití příkazů MATLABu Blok MATLAB Function 19 function [leftmotor,rightmotor] = control(distval,distthresh,basespeed,gain,setpoint,sensedlight) %#codegen if distval > distthresh err = sensedlight - setpoint; leftmotor = basespeed - gain*err; rightmotor = basespeed + gain*err; else leftmotor = 0; rightmotor = 0; end
Logické řízení Programátorský přístup Blok MATLAB Function Ukládání stavů Perzistentní proměnné switch case Stavový automat Stateflow grafický návrh stavy a přechody Výhoda Stateflow sledování stavů 20
21 Robot sledující čáru logické řízení
Zdroje informací Web společnosti MathWorks - Academia studenti, učitelé MATLAB academy https://matlabacademy.mathworks.com Kurz Onramp, zadarmo, vlastní tempo, cca 2 hodiny MATLAB Maker Community https://www.mathworks.com/matlabcentral/maker.html LEGO MINDSTORMS, Arduino, Raspberry Pi Webináry a akce www.humusoft.cz http://www.humusoft.cz/events/www-seminars/ 22
Děkuji za pozornost