MATLAB + Arduino

MATLAB + Arduino

Arduino to tani i łatwy w obsłudze mikro-kontroler, który może stanowić podstawę budowy przeróżnych urządzeń i sterowanych cyfrowo mechanizmów. Platforma kierowana jest do hobbystów i w zasadzie każdy, bez technicznego wykształcenia, po kilku godzinach zabawy jest w stanie uruchomić swoje pierwsze projekty oparte o Arduino. System ma jednak swoje ograniczenia, które ujawniają się gdy przychodzi do realizacji bardziej złożonych pomysłów. Z jednej strony jest to dosyć prymitywne środowisko programistyczne (w sensie IDE, nie grupy użytkowników programu 🙂 ), które nie ułatwia życia kiedy trzeba szukać błędów popełnionych w projekcie. Z drugiej strony jest to wydajność obliczeniowa Arduino. Lekarstwem na te bolączki może być pożenienie Arduino i MATLABa. W zasadzie nie jest to klasyczne małżeństwo, bo bardzo istotne znaczenie w ma ten trzeci, czyli komputer PC udostępniający swoją moc obliczeniową. Konfiguracji w związku może być zatem kilka. Metody połączenia MATLABa i Arduino przedstawiam poniżej, każda ma swoje wady i zalety. Czytaj dalej MATLAB + Arduino

Callback function w MATLAB

Callback function w MATLAB

Callback function to bardzo przydatny mechanizm pozwalający wywołać wskazaną przez użytkownika funkcję przy okazji obsługi jakiegoś zdarzenia. Scenariuszy, w których callback funtion może się przydać jest kilka. Dla przykładu, potrzebne nam do analizy dane mogą być na bieżąco odczytywane ze sprzętu pomiarowego lub serwera. W związku z tym w MATLABie tworzymy odmierzający czas obiekt, z którym to wiążemy szereg procedur umożliwiających cykliczne pobieranie i analizę porcji danych – i tu właśnie jest miejsce na wykorzystanie mechanizmu callback. Najlepiej będzie zilustrować to przykładem - spróbujmy zaimplementować w MATLAbie technikę Pomodoro. W skrócie, Pomodoro to technika motywacyjna umożliwiająca zwiększenie naszej produktywności na tej zasadzie, że czując potrzebę przerwy mówimy sobie „pocisnę jeszcze te 15 minut a potem luz”. Zazwyczaj w technice pomodoro wykorzystuje się kuchenny minutnik, my wykorzystamy MATLABa i obiekt timer. Czytaj dalej Callback function w MATLAB

Fraktal - konkurs

Fraktal

Dziś firma ONT startuje z konkursem "Fraktal", w którym można wygrać kubek z logiem MATLAB&Simulink, parę ciepłych skarpet na zimę z wyszytą membraną MathWorks'a i inne, równie atrakcyjne nagrody. Zasady konkursu są bardzo proste. Do 23 października na adres mailowy konkurs@ont.com.pl należy nadesłać stworzony w MATLABie  obraz przedstawiający fraktal oraz m-kod służący do wygenerowania tegoż że obrazu. Oceniany, od strony artystycznej, będzie wyłącznie obraz.  Kod posłuży jedynie do weryfikacji, że dzieło powstało w MATLABie, a nie na kalkulatorze na przykład. Zasady proste, nagrody ciekawe, zapraszam do wzięcia udziału!

fraktal_1

W związku z wielkim konkursem o ciepłe skarpetki dzisiaj wpis poświęcony fraktalom. Czytaj dalej Fraktal - konkurs

Rozwiązywanie równań różniczkowych w MATLABie

Rozwiązywanie równań różniczkowych w MATLABie

Od kilku dni dostępna jest wersja 2016b MATLABa. Tym razem zmiany koncentrują się głównie na obszarze „Big Data”. Wśród nowinek znalazła się jednak jedna, która choć wcale nie spektakularna, może znacznie ułatwić codzienną pracę każdemu użytkownikowi. Chodzi o wprowadzenie możliwości definiowania funkcji w obrębie skryptu. Przy próbie policzenia czegoś na szybko może to być bardzo pomocne – przykładem niech będzie numeryczne rozwiązywanie równań różniczkowych.
Czytaj dalej Rozwiązywanie równań różniczkowych w MATLABie

Programowanie obiektowe w MATLAB

Programowanie obiektowe w MATLAB

W dzisiejszym świecie zastosowanie technik programowania obiektowego widoczne jest wszędzie. Wystarczy, że człowiek lodówkę otworzy i już na niego oo wyskakuje, ale co się dziwić? Skoro Arduino można programować dziś obiektowo, to tostery też można. MATLAB, jako współczesny język programowania, również jest zorientowany obiektowo. Nie było tak co prawda zawsze, możliwość programowania obiektowego wprowadzono kilka lat temu. Zrobiono to jednak bez większego rozgłosu i spora część użytkowników może sobie nie zdawać sprawy z tego, że w MATLABie można programować obiektowo. W tym braku świadomości nie ma nic złego, MATLAB to środowisko obliczeniowe wykorzystywane na wielu płaszczyznach i do wielu celów, nie każdy użytkownik programu jest programistą i nie każdemu zaawansowane techniki programistyczne są do szczęścia potrzebne. Warto jednak zapoznać się z postawami z tego prostego względu, że z wersji na wersję w MATLABie powiększa się liczba gotowych klas przygotowanych do wykorzystania przez użytkowników. Czytaj dalej Programowanie obiektowe w MATLAB

MATLAB Compiler, MATLAB Coder

Stworzenie algorytmu obliczeniowego w MATLAbie to dla niektórych koniec pracy, dla innych dopiero początek. Każdy algorytm obliczeniowy czemuś służy i może się zdarzyć, że końcowy odbiorca będzie zainteresowany wielokrotnym wykorzystaniem algorytmu, a nie będzie w ogóle zainteresowany MATLABem, czy też szerzej, technologią wykorzystaną do jego opracowania. W środowisku MATLAB istnieją dwa podejścia umożliwiające oderwanie owocu pracy (algorytmu, aplikacji) od drzewa (środowiska MATLAB) i sprezentowanie go „na zewnątrz”. Każde podejście przeznaczone jest dla trochę innej grupy odbiorców i każde wymaga uzbrojenia środowiska MATLAB w dodatkowe moduły (toolboxy): MATLAB Compiler lub MATLAB Coder. Same nazwy modułów niestety nie pomagają w rozszyfrowaniu tego, co się za nimi kryje.

Czytaj dalej MATLAB Compiler, MATLAB Coder

Uchwyty do funkcji i funkcje anonimowe w MATLABie

Uchwyty do funkcji, funkcje anonimowe

Jak wejść w temat tak, żeby za szybko nie rozbolała głowa? Na pewno nie polecam rozpoczynać od lektury teoretycznie powiązanego z tematem wpisu na Wikipedii. Najlepszym sposobem na wprowadzenie do tematu jest pokazanie sensownego przykładu i tak spróbuję rozegrać to tym razem. Rozpocznę od obliczenia przy pomocy MATLABa następującej całki:

 \int_{0}^{1}\sin t dt Czytaj dalej Uchwyty do funkcji i funkcje anonimowe w MATLABie

MATLAB Tutorial #10

Instrukcja warunkowa IF

Treść obu stworzonych uprzednio plików (monty_uparciuch.m oraz monty_niestateczny.m) w znacznym stopniu się pokrywa. Różnica pomiędzy nimi polega na tym, że w jednym przypadku gracza stawia się przed możliwością zmiany wyboru bramki i gracz z tej propozycji korzysta, w drugim pozostaje on przy swoim pierwotnym wyborze. Dołożymy do kodu zawartego w monty_niestateczny dodatkową część, która będzie uzależniała przebieg algorytmu od zdefiniowanych warunków – w naszym przypadku takim warunkiem będzie wybór strategii, jaką obrał gracz.

Czytaj dalej MATLAB Tutorial #10

MATLAB - bezpłatny kurs

MATLAB - bezpłatny kurs

Pisałem już o ciekawym sposobie na zdobycie oprogramowania MATLAB całkowicie za darmo. Gwoli przypomnienia, licencję na oprogramowanie możemy zdobyć na okres ok. 3 miesięcy w sytuacji, gdy jest nam ona potrzebna do ukończenia kursu na portalu Coursera.org. Jeśli któryś z oferowanych przez Coursera kursów wymaga pracy w środowisku MATLAB, to najprawdopodobniej możemy liczyć na bezpłatny dostęp do programu.

Czytaj dalej MATLAB - bezpłatny kurs