Jak uprościć i przyspieszyć program w MATLABie? [FILM]

Czy zdarzyło Ci się kiedyś, że Twój program realizujący stosunkowo proste obliczenia wykonywał się bardzo długo? A może jakaś pętla spowodowała, że MATLAB przestał reagować na polecenie Ctr+c?
Przyczyną może być niezoptymalizowany pod kątem obliczeń wektorowych program. Okazuje się bowiem, że klasyczne podejście do programowania znane z języków niższego poziomu, gdzie na przykład do kopiowania elementów musimy używać pętli, nie jest wskazane w produkcie MathWorksa. MATLAB jest zoptymalizowany pod kątem obliczeń macierzowo-wektorowych i wykorzystanie tej cechy umożliwia uzyskanie uproszczenia programu, a przede wszystkim skrócenie czasu obliczeń. Zapraszam do lektury wpisu oraz zobaczenia filmu na Youtube dotyczącego tego tematu, link do którego znajduje się na końcu posta.
Czytaj dalej Jak uprościć i przyspieszyć program w MATLABie? [FILM]

Matlab dla każdego

W oczekiwaniu na nowe wpisy dotyczące programowania w MATLABie, chciałbym zwrócić Waszą uwagę, a szczególnie osób zainteresowanych rozpoczęciem pracy w tym środowisku obliczeniowym, na dostosowane do różnych potrzeb i elastyczne wersje licencji, które oferuje MathWorks. Obecnie do dyspozycji są cztery główne rodzaje licencji: standard, education, home i student. Każda z nich dodatkowo jest podzielona na podkategorie, dzięki czemu każdy znajdzie wersję najbardziej optymalną do swoich potrzeb. Co ciekawe, producent już za 35 EUR oferuje dostęp do wersji studenckiej. Jest to w pełni funkcjonalna wersja Matlaba, której głównym ograniczeniem jest wykorzystanie programu wyłącznie na potrzeby i czas trwania studiów. Czytaj dalej Matlab dla każdego

Blog reaktywacja

Po dłuższej chwili nieaktywności na blogu, wracamy ze zdwojoną siłą i workiem pomysłów na nowe tematy. Nie jest to, jak można by myśleć, postanowienie noworoczne, do realizacji którego zabraknie za chwilę zapału. Z nową energią i nowymi autorami będziemy wypełniać nasz blog treściami, które, mamy nadzieję, Was zainteresują. Nowe wpisy i artykuły będą pojawiać się co najmniej dwa razy w miesiącu. Ich forma będzie różna; od tradycyjnych postów, przed dłuższe artykuły, po formę wideo: tutoriale, przewodniki „how to” oraz ciekawostki ze Świata MATLABa. Poruszone problemy będą natury praktycznej, a więc akcent będzie postawiony na rozwiązywanie konkretnych zagadnień i problemów inżynierskich. Nieco więcej niż dotychczas będzie tematów związanych ze statystyczną analizą danych, przetwarzaniem sygnałów, czy np. obsługą sprzętu pomiarowego. Nie zabraknie również treści poświęconych podstawom programowania w MATLABie. Każdy, niezależnie do tego czy zaczyna swoją przygodę z MATLABem czy jest bardziej zaawansowanym użytkownikiem, znajdzie na naszym blogu coś dla siebie. Już niebawem opublikujemy nieco więcej szczegółów i zakres tematyczny najbliższych wpisów. Stay tuned 😊 A dla tych którzy nie mogą się doczekać, przypominamy, że dostępny jest nasz tutorial w formie tekstowej, wprowadzający w arkana użytkowania MATLABa. Chcesz lepiej poznać MATLABa? Jesteś w dobrym miejscu!

LEGO EV3 i regulacja PID: Identyfikacja oraz automatyczne strojenie

Implementacja algorytmu PID to nie wszystko

Dzisiejszy post będzie kontynuacją ciągu artykułów na temat tworzenia algorytmu sterowania mobilnym robotem w środowisku Simulink. Dla przypomnienia, w ostatnim wpisie zajęliśmy się omówieniem robota oraz implementacją podstawowych algorytmów obsługujących silniki, doczytujących dane z enkoderów i wyliczających faktyczne prędkości obrotowe oraz liniowe kół robota. Również, na samym końcu rozpoczęliśmy implementację regulatora PID pozwalającego zadawanie konkretnej prędkości robota.

Czytaj dalej LEGO EV3 i regulacja PID: Identyfikacja oraz automatyczne strojenie

LEGO EV3, ciąg dalszy: Sterowanie robotem mobilnym

Roboty w akcji

W ostatnim wpisie na temat programowania LEGO Mindstorms z wykorzystaniem MATLABa i Simulinka przedstawione zostały podstawowe zagadnienia związane z podłączaniem sterownika LEGO EV3 do komputera, komunikacją z Simulinkiem oraz wgrywaniem utworzonych algorytmów do urządzenia LEGO. Dziś, tak jak obiecano, rozpoczynamy cykl prezentujący wybrane roboty w akcji.

Na pierwszy rzut zajmiemy się programowaniem klasycznego robota mobilnego, jeżdżącej platformy, na podstawie której omówionych zostanie kilka ważnych aspektów tworzenia algorytmów sterujących robotem, przydatnych również przy innych konstrukcjach.

Czytaj dalej LEGO EV3, ciąg dalszy: Sterowanie robotem mobilnym

Programowanie LEGO Mindstorms EV3 z użyciem Simulinka

Zabawa na poważnie

Klocki LEGO większości z nas kojarzą się z beztroską zabawą w dzieciństwie, gdy czas nie odgrywał żadnej roli, kluczowe było natomiast stworzenie konstrukcji, która efektownie zapełni nasz plac budowy, skutecznie ochroni przed atakami nieprzyjaciela, a przy okazji wzbudzi podziw w oczach zapatrzonych w nas rodziców i dziadków. Zapewne dużo mniej osób miało styczność z serią LEGO Mindstorms, w której oprócz samych klocków znajdziemy także zestaw podzespołów elektromechanicznych, takich jak czujniki czy serwomotory oraz kontrolująca je jednostka centralna. Zestaw LEGO Mindstorms dzięki połączeniu tych wszystkich wymienionych elementów w całość pozwala nam na tworzenie programowalnych robotów.
Czytaj dalej Programowanie LEGO Mindstorms EV3 z użyciem Simulinka

MATLAB Tutorial #11

Import danych z wielu plików

W zasadzie tutorial został zakończony. Celem dotychczasowych wpisów serii było zaznajomienie użytkownika ze środowiskiem MATLAB na tyle, by mógł on usiąść przed komputerem i zacząć z programem w miarę wygodnie pracować. Oczywiście w praktyce, gdy przychodzi zmierzyć się z rzeczywistym problemem, dość szybko okazuje się, że czegoś ważnego w tutorialu nie było… No i jest to jak najbardziej zrozumiała sytuacja. Wszystkiego zamknąć w krótkim samouczku nie sposób, można jednak poruszyć kilka dość często pojawiających się problemów. A jeden z najczęściej pojawiających się, to problem sprawnego odczytu danych z wielu plików.
Czytaj dalej MATLAB Tutorial #11

Simulink, Arduino i LCD

Simulink, Arduino i LCD

Biblioteka Simulink Support for Arduino zawiera całą gamę bloków umożliwiających komunikację pomiędzy Arduino i światem zewnętrznym. Można korzystać w we/wy cyfrowych i analogowych, portu szeregowego a ostatnio nawet interfejsów I2C i SPI, które zapewniają obsługę prostych układów peryferyjnych. Jednak może się zdarzyć, że będziemy chcieli wykorzystać jakiś bardziej złożony układ, który nie jest obsługiwany z poziomu Simulinka, Zestaw gotowych bloków z biblioteki Simulinka jest niewystarczający choćby w przypadku chęci obsługi podłączonego do Arduino modułu LCD. Na szczęście w takich wypadkach można zapewnić sobie obsługę niestandardowego urządzenia samemu, a jest to możliwe dzięki tak zwanej s-funkcji. Czytaj dalej Simulink, Arduino i LCD

ThingSpeak - przykłady

 

ThingSpeak - przykłady

Do korzystania z ThingSpeak potrzebne jest nam źródło danych, stałe połączenie z internetem oraz odrobina cierpliwości do czytania dokumentacji. ThingSpeak współpracuje z przeróżnymi systemami i siłą rzeczy nie istnieje uniwersalna formuła, która pozwoliłaby na natychmiastową konfigurację systemu w każdym przypadku. Na szczęście czytanie dokumentacji w przypadku ThingSpeak nie sprawia kłopotu, a dużym ułatwieniem na start są liczne przykłady.

Czytaj dalej ThingSpeak - przykłady