Od wielu miesięcy się zastanawiałem, jak mógłbym wesprzeć świat Internetu Rzeczy w rzeczy samej, w naszej Rzeczypospolitej. Każda myśl, prezentacja i wystąpienie zostały skrupulatnie przemyślane i wdrożona w życie w ciągu całego 2018 roku. Na postawie tej sprawnej edukacji odważyłem się w ostatnim kwatale 2018 roku otworzyć meetup dla sympatyków Internet of Things, Hardware & Robotics. Ten wpis jest poświęcony pierwszemu wydarzeniu, które miało miejsce w Poznaniu w siedzibie Allegro i było inauguracją wydarzenia mojego pomysłu.
Każdy z Was pewnie kiedyś chciał zrobić coś dla ludzi, otóż i ja również pomyślałem, że coś takiego będzie świetnym uwieńczeniem ok. 20-letniej kariery zawodowej wokół różnych poznanych przeze mnie branż: automatyki przemysłowej, grafiki komputerowe, projektowania układów elektronicznych i systemów wbudowanych, systemów rozproszonych, zarządzania projektami i tworzeniem niebanalnego programowania, wspierania e-commerce w PL, zwinności i pewnie paru innych.
Wymyśliłem, że skupienie się na jednej dziedzinie może nie być sprawiedliwe, bo ludzie interesujący się IoT interesują się tak jak ja programowaniem, SBC - systemami wbudowanymi, automatyką, architekturami, protokołami. Spojrzałem przez ten pryzmat i wyszło, że meetup, który chcę założyć powien posiadać szerszy kontekst tzn.
Naturalnie wypadło na meetup.com jako stronę hostującą wydarzenia i co ciekawe po 14 dniach było już 130 osób zapisanych i lubiących tą inicjatywę. Oczywiście liczby stały się motywatorem, aby tą sporą jak dla mnie społeczność spytać w ankiecie, czego oczekują na początek. Wyniki ankiety jednoznacznie wskazały, że nie należy rozdzielać tematu hardware, software oraz IoT.
Jakby z automatu zaczęli do mnie pisać ludzie z różnych branż z kraju i nie tylko, chcąc zaoferować swoje wystąpienie na meetupie. To spowodowało kolejną falę pozytywnego wydźwięku. Kiedy powiedziałem o tym pomyśle kilku znajomym (prelegenci) z branży oraz wspierającej mnie od strony technicznej (salka, rezerwacja, pizza, pokrycie kosztów) koleżance Oli z Allegro, wówczas wszystko się zaczęło urzeczywistniać i pojawił się na horyzoncie termin pierwszego spotkania :-)
Poprosiłem kolegów o pomoc w przygotowaniu swoich prelekcji w ulubionych tematach i taki oto kształt przybrała wersja pierwsza meetupu, który był oklaskany nieraz podczas tego dnia sukcesem.
Tematy jakie poruszyliśmy i mój krótki komentarz do nich (kolejność zgodna z agendą):
Souly – Smart Building – system IoT w praktyce
Marcin Dryjański wprowadził nas w praktyczny system Internetu Rzeczy o nazwie Souly, który tworzony jest w firmie Grandmetric w Poznaniu. Co ciekawego, chłopaki pokazali swoje rozwiązania techniczne, podzielili się wnioskami oraz dość szczegółowymi aspektami projektowymi. Nie zabrakło też wielu porad, jakie problemy są przy tej skali instalacji oraz implementacji (ok. 500 punktów/bramek IoT). Szanuję bardzo pracę chłopaków, gdyż zaskoczyli mnie już na współtworzonym razem meetupie Network & Wireless Meetup, kiedy mówili o poprzedniej wersji swojego produktu. W tej prezentacji zauważyłem naniesione poprawki, które zdążyli zwinnie wdrożyć do systemu na produkcje. Klienci zapewne są z nich dumni i dzięki wielkie za pokazanie, że w Pyrlandii (dla niewtajemniczonych: miasta Poznania) robi się na wysokim poziomie - pierwsze na skalę kraju - produkty Internet of Things.
Oto z jaką uwagą uczestnicy patrzyli na slajdy Marcina:
FreeRTOS - podstawy
Tymoteusz Sielach wprowadził nas w podstawy systemu czasu rzeczywistego FreeRTOS. Uwagi i trafne spostrzeżenia, jakie zostały poruszone wielu osobom zwróciły uwagę, że można coś zrobić sprawniej w systemach wbudowanych zamiast klepać w Arduino. Zdecydowanie kolega podkreślił, że można zyskać wchodząć w FreeRTOS oraz napisać solidny modularny kod aplikacji.
Dla osób lubujących się w Arduino na pewno była to doza spjrzenia w tą bardziej uprzemysłowioną stronę. Tak wyglądał ten temat prezentowany przez Tymka:
Kochanie, po co nam w domu szafa serwerowa (v1.1)
Julian Szulc zaprosił nas do wnętrza swojej szafy serwerowej oraz autorskich adaptacji rozwiązań IoT w domu. Bardzo fajny projekt, w którym Julian buduje serwerownie od podstaw w zakątku domowym. Nie tyle buduje, co zaprojektował dom pod taką okoliczność, aby szafka serwerowa miała swoją wnękę, nadmiar ciepła z grzejących się urządzeń był odpowiednio odprowadzany i rynny na kabelki stanowiły miejsce zabaw dla domowych kotów :-)
Super przekaz i wartościowa porcja wiedzy, jak można się bawić Internetem Rzeczy, przy okazji również używać go w potrzebach domowych t.j. automatyczne podgrzewanie mleka dla dziecka, lokalizowania partnerki, prywatny magazyn dla wszystkich danych, wizualne statystki i metryki.
Wow, jest sporo technicznego mięsa w opowieści Juliana. Z rozmów po meetupie wiem, że wielkim zainteresowaniem ludzi cieszyły się gotowe receptury Juliana na postawienie całego swojego domowego stacka automatyzacji ioT w Dockerach. Oto wizerunek kolegi Juliana:
Przezroczysty telefon komórkowy
Mateusz Piasecki to kolega, którego poznałem na sobotnim warsztacie z Blockchain i po kilku chwilach dyskusji o naszych zainteresowaniach wyraziłem brak meetupu w naszej dziedzinie IoT w Poznaniu. Mateusz przekonał mnie, że na pewno znajdą się chętni, więc po prostu założyłem meetup i tak się formalnie historia zaczęła.
Wracając do ciekawej prezentacji, była ona ukazaniem w tajemniczy i pomysłowy sposób możliwości jakie dają nam przezroczyste wyświetlacze. Mateusz przedstawił tą gałąź przemysłu jako coś, co niebawem ziści wszelkie nadzieje fanatyków sci-fi i będziemy mogli nosić w kieszeni, albo na ręce coś co jest niby bransoletką a niby telefonem, bo tego nie widać :-)
Super, że udało się wypożyczyć jeden prawdziwy egzemplarz takiego wyświetlacza i pokazać nam jak to działa dzisiaj. Proszę zobaczcie, jakie tłumy przyciągnął ten prelegent do urządzenia:
Zbudujmy robota z ROS - RoboTICK.
Marcin Bielak - tak, to moja prywatna inicjatywa o nazwie RoboTICK, do której zapraszam żądnych wiedzy z dziedzin: IoT, hardware, software, cloud, Machine Learning i protokołów sieciowych. Co mam na myśli: otóż zaprezentowałem szkielet prototypu oraz wizualizację robota mobilnego, trójkołowego i chcę wspólnie z poznanymi na meetupie ludźmi go wykonać. Tak wygląda wizualizacja mojego autorstwa (wykonana w programie Open Source Blender):
Nic nadzwyczajnego pewnie pomyślicie, ale przy moich założeniach zduplikowanego komputera pokładowego, autonomiczności i wielu torów zasilania - jak w serwerowniach :-) - to będzie nie lada wyzwanie. Zaprezentowałem te koncepty podczas prezentacji, pokazałem przy tym inne kierunki typu: IoT Blockchain, Swarm Robots, Reinforcement Learning (Machine Learning) w których będę rozwijał ten projekt.
Zachęcam Was do udziału w projekcie i gwarantuję wspólną naukę, zabawę oraz poznawanie nowości z lubianej tematyki IoT, Hardware & Robotics. Oto moja skromna osoba przed widownią:
ludzi, którzy są chętni do niezobowiązującej pracy nad różnymi ideami wokół IoT
opinie ludzi o tym co chcę zrobić
możliwości tworzenia tej skali projektów, które jak się okazało otworzyły się szerzej tzn. otrzymałem propozycję wystąpienia na uczelni przed setkami studentów chętnymi do realizacji takich pomysłów oraz opcję współpracy we współtworzeniu łazików marsjańskich na konkursy ERC
alternatywne ścieżki realizacji projektu
Bardzo pozytywny feedback otrzymałem, przez co nadal rozważam, jak pogodzić czas prywatny, życie zawodowe i projekty, aby sprostać nowym wyzwaniom. Coś pewnie się z tego "urodzi", ale zawsze daję sobie czas na zracjonalizowanie możliwości, bo jak wiemy jest ich tak dużo w tych czasach, że warto skupić się na najważniejszych dla siebie.
Naturalnie czas na networking nadszedł dość szybko i wszyscy dzięki wsparciu finansowemu mojego pracodawcy Allegro.pl - któremu dziękuję - otrzymaliśmy na zakończenie megabajty kalorii w postaci ciepłej pizzy. A było w co zęby wbijać zapewniam Was.
Ilość pytań po każdym wykładzie była piękna, musiałem nawet użyć mechanizmu "tykadła" tzn. z powodów czasowych poprosić o przeniesienie dyskusji na później. Oczywiście nie obraźcie się, inni też chcieli coś od siebie przedstawić - mam dzięki temu pewien pomysł na różne dyskusję w kolejnych edycjach meetupów. Niewiarygodnie wiele tematów, które zostały poruszone w trakcie dyskusji przybliża mnie do myśli, że jest potrzeba na takie miejsce jak mój meetup wiele pytań siedzi gdzieś tam w ludziach z branży IT a takie spotkania pozwalają się im uwolnić. Naturalnie nie zawsze dostajemy poprawną odpowiedź, ale mamy gdzie zapytać, skomentować swoje wątpliwości i to się tutaj znacząco liczy. Cenimy sobie podczas meetupu szczere chęci dzielenia się wiedzą, bo to są zasady otwartego na wiedzę społeczeństwa, które wspieramy.
Dziękuję bardzo wszystkim zaangażowanym:
prelegentom
uczestnikom
Aleksandrze Dondziak, za wsparcie mentorskie i organizację techniczną wydarzenia (w profesjonalnej sali w budynku Allegro i za pizze).
Do zobaczenia na kolejnym meetupie, który jak już wiem pojawi się niebawem tutaj.
Chciałbym się podzielić wrażeniami z wystąpienia oraz polecić Net::IP jako wartościową inicjatywę dla społeczności lokalnych DevOpsów we Wrocławiu i nie tylko :-)
Z pozytywnym nastawieniem jak zwykle mogłem podzielić się swoimi doświadczeniami oraz researchem z używania protokołów internetu rzeczy MQTT, HTTP oraz DDS.
Liczebność na meetupie dopisała, bo było coś ponad 60 osób, miejsce dość przyjemne i oczywiście rarytasik to pizza wypiekana na miejscu z pieca.
Pokrótce każdy z prelegentów (Ja i Piotr) pokazał coś, co jest wyciągniętym tzw. mięsiwem technicznym i bardzo ucieszyły nas liczne pytania, które pojawiały się wokół tematyki spotkania.
W kwestii swojej prezentacji mam wrażenia, że dotrzymałem kontraktu i wystąpienie cieszyło się zainteresowaniem. Określam to na podstawie pytań w trakcie i po wydarzeniu.
Zadziwiają mnie zawsze pytania o podstawy typu "jak zacząć z IoT, którą płytkę wybrać, jak programować" i oczywiście zakładamy, że na meetup przyjść może każdy i takie pytania są jak najbardziej ok. To co mnie zadziwia, to fakt jak długo dociera do ludzi informacja o powszechności np: takiego środowiska i hardwaru jakim jest Arduino oraz mistycznego Raspberry Pi
Z tego miejsca zachęcam wszystkich do ryzykowania i wydawania czasami tzw. stówki w celu edukacyjnym, bo w dobie dzisiajszych możliwości, jeśli kupicie nawet nieodpowiedni sprzęt lub soft. to zawsze zyskacie wiedzę i kolejne zakupy będą bardziej trafione :-)
W kwestii wystąpienia kolegi z Akamai, to jestem pełen podziwu dla mistrzostwa i wykorzystania protokołu BGP do sporej optymalizacji i pięknego przeskalowywania architektury. Znam ludzi, którzy wspominali mi o tym, że taki eksperyment chcą przeprowadzić i posiłkując się materiałem przedstawionym na meetupie bardzo w to uwierzyli. Czekamy na realizację i poprawę kolejnej zacnej infrastruktury ;-)
Dziękuję z tego miejsca wszystkim uczestnikom i prelegentom meetupu Net::IP i oby więcej takich wspaniałych edukacyjnych dni w naszym codziennym technicznym życiu się pojawiało.
Jak miło czyta się kolejne wątki twórczości Open Hardware, które zbliżają nas do kosmosu ;-)
Otóż, okazuje się, że są na świecie fanatycy (czyt. fascynaci) wysyłania sztucznych satelitów i do tego testują kod Open Source na orbicie. Cały pic polega na tym, że projekt ArduSat powstał na kickstarter.com i pozwoliłz założenia programistom umieszczać swój kod na orbicie - a to dla każdego GEEKa, fana sci-fi, marzyciela-elektronika ;) ... zaiste fenomenalny pomysł !!!
Ta powyższa wiadomość wstrząsnęła mną dość konkretnie, bo w sumie konstrukcyjnie nie jest to jakiś zaawansowany twór (zawiera 16-cie mikrokontrolerów AVR t.j. używam\ słynny projekt Arduino. Można powiedzieć, że jest to wieloprocesorowy projekt kompatybilny z Arduino.
Autorzy założyli, że jeden mikrokontroler będzie odpowiedzialny za jeden typ pomiaru, co może okazać się dość racjonalne na orbicie. Dlatego, że przy tak zmiennych warunkach atmosferycznych, w szczególności temperaturowych krzem może zachowywać się dość nieprzewidywalnie. Rozdzielenie kompetencji na wiele mikrokontrolerów jednoukładowych (czyli wyspecjalizowanych procesorów z przetwornikami w środku) zapewni utrate jednego pomiaru, jeśli zawiedzie procesor a nie 16-tu, gdyby wszystko było mierzone jednym kontrolerem. Oczywiście, jest też niezbędny nadzorca, który został tam zainstalowany i pełni rolę watchdoga oraz spina magistralę danych modułu.
Dla miłośników areonautyki i startów rakiet załączam pełnometrażowy dokument, który pokazuje umieszczenie ArduSat na orbicie :-) Przyjemnego oglądania i rozmyślania... byćmoże to Wy wpadniecie na kolejny takiej skali pomysł użycia popularnych 8-bitowych procesorów w wielkim eksperymencie
Konstrukcja robota i sposób jego programowania obejmuje szereg dokumentacji i procedur. Zebrałem kilka myśli na temat tych zagadnień. Nic, co jest przedstawione tutaj jest wprost niezbędne, ale możliwe, że zaciekawie tych, którzy chcą zbudować od zera robota. W tym wpisie zainspirowałem się materiałami z GitHub oraz licznymi forami na temat budowy robotów.
Jak zacząć z konstrukcją robota ?
Robot składa się z zestawu elementów mechanicznych oraz elektronicznych, które działają zgodnie z napisanym programem.
Niektóre elementy są wykonane na wymiarm do tego celu często wykorzystywany jest program QCad lub AutoCAD. Czasami wystarczający jest dla nas edytor wektorowy Inkscape, dlatego że jest prostszy w użyciu niżeli jakiekolwiek narzędzie CAD. Co ciekawe posiada też eksporty do GCODE, aby dokonać frezowania na podłączonej do komputera maszynie CNC.
Warto wesprzeć się wiedzą z zajęć praktyczno-technicznych na temat obsługi narzędzi ręcznych. Nie wszystko musimy wykonać na drukarce 3D lub na ploterze CNC. Jest to oczywiście udogodnienie dla każdego inżyniera, kiedy projekt przygotowany w oprogramowaniu CAD wygeneruje dla nas dokumentację produkcyjną CAM.
Mając dane dla obrabiarki numerycznej o wektorach cięcia lub wiercenia np: w formacie Gerber lub GCODE jesteśmy w stanie zlecić prace mechaniczne firmie zewnętrznej na wybranych wcześniej materiale (np: plexi, sklejka, aluminium, ). Dokłądność wykonanie mechanicznych części zostanie zagwarantowana przez firmę wykonującą frezowanie, cięcie, wiercenie. I tutaj dochodzimy do dość ważnego szczególu - jakość wykoniania części mechanicznych ma znaczenie.
Okazuje się bowiem, że każde przesunięcie, nieprecyzyjne wykonania w robotach np: jeżdżących stanowi problem w postaci poprawnej jazdy po linii prostej. Często też drgania z silników przenoszą się na obudowe i może się okazać, że np: przy zakręcaniu nasz robot niedeterministycznie jeżdżi lub montaż zasilania nie będzie właściwy. Z powyższych podowód często przed złożeniem fizycznych części robota musimy sprawdzić ich dopasowanie, precyzję i jakość. Często używam pilnika ew. papieru ściernego, aby obrobić delikatnie obudowę bazową robota i zapewnić sprawniejsze pasowanie składanych elementów, złącz, źrub oraz łożysk.
Oczywiście wiele projektów robotów raz z dokładnymi wzorami do frezowania jest dostępnych na licencji GPL lub Creative Commons, co wiele ułatwia ludziom, którzy chcą przeskoczyć fazę przygotowania mechanicznych podzespołów robota.
Modelownie robota w programie 3D
Od wielu lat projektanci robotów zyskują coraz więcej narzędzi do wsparcia ich pracy i czcęsto też pasji. Jedną z wielu aplikacji do projektowania robotów niewątpliwie jest mój ulubiony Blender. Możemy zamodelować robota w trzecch wymiarach, postawić go w świecie wirtualnym używając wbudowanego w Blendera silnika fizyki i spowodować, że będzie działał, głównie dzięki temu, że w Blenderze mamy możliwość programowania logiki, akcji w języku Python. Daje nam to niesamowite możliwość przetestowania naszego robota o fizycznych wymiarach i masie w piaskownicy (Sandbox) bez ruszania się od tego narzędzia projektowego. To co symulujemy sobie w programie 3D na pewno oszczędzi naszego czasu na wielokrotnyc próbach i błędach.
Metoda prób i błędów - rzeczywista ścieżka w innowacji
Uważam, że to jest najważniejsza część w procesie tworzenia robotów. Jest to naturalna metoda pracy w każdej innowacji, wynalazku i projekcie o dużym poziomie skomplikowania. Musisz posiadać determinację i wierzyć w swoje możliwości rozwoju w wielu dziedzinach: mechanika, konstrukcje, automatyka, elektronika, programowanie, algorytmika. Jest też taka opcja, że znajdziesz drużynę i razem wspólnie osiągniecie sukces w budownie robota i byćmoże wystartujecie w jednym z wielu konkursów robotycznych. Do tego momentu musisz wiedzieć, że każdy mały błąd i krok wstecz gwarantuje przy odpowiedniej determinacji duży sukcecs w przyszłości.
NIe wstydź się swojego robotycznego pająka
Często też mamy do czynienia z sytuacją, że robimy coś do szuflady. Jest to sytuacja dość niekorzystna, gdyż nie mamy okazji zestawić swojego dzieła z naturalnym krytycyzmem osoby spoza żyjącej w naszym mózgu wizji :-) Polecam Wam, aby oddać swoją zabawkę robotyczną na jedną godzinę dziecku porzyczyć do zabawy innemu koledze. Na pewno wnioski i spostrzeżenia będą na tyle istotne, że zainspiruje nas to do budowania kolejnej wersji naszego "pająka" - mam tutaj na myśli robota, któremu zwisają kable, nie do końca dokręconego, nie zupełnie skończonego, ale wykonanego własnymi rękami. I właśnie to się liczy najbardziej, że udało Wam się osiągnąć kolejny stopień wtajemniczenia i dajecie sobie radę z problemami technicznymi. Tak rodzą się inżynierowie :-)
Napędy, sterowniki silników i zasilanie
Każdy konstruując robota chciałby posiadać uniwersalny napęd oraz elektronikę do niego. Oczywiście nie jest to takie oczywiste, że każdy napęd w robocie można nazwać dedykowanym i tylko w robotach amatorskich możemy sobie ze względów edukacyjnych pozwolić na takie uproszczenia. Dlaczego tak jest, że napędy zależą od zastosowania robota? Otóż, każdy robot ma swoje przeznaczenie w przemysle, czy produkcji. Nie jesteśmy przez to w stanie wytworzyć uniwersalnego napędu o jednej ekstra małej masie, bo robot spawalniczy potrzebuje innego napędu oraz przyspieszenia niżeli robot jeżdżący po planecie Mars we własnym dedykowanym pojeżdzie. INnego typu napęd będzie miał robot latający np: drone niżeli robot mieszający produkty spożywcze. Każdy z powyższych przykładów posiada swoje specyficzne cechy napędu, a co za tym idzie specyficzne sterowniki.
Budując napęd amatorskiego robota możemy wybrać silnik: DC (z przekładnią, enkoderem lub bez nich), krokowy, serwomechanizm z obrotem 260 stopni. Ten wybór zależy od ceny i rozmiarów oczywiście, bo czasami budując microsumo lub minisumo musimy zwrócić szczegółną uwaŋ na wybór napędu i zasilania, gdyż w rozgrywkach sumo robotów mamy ograniczenia regulaminowe
Na szczęście budując prototyp prostego robota na rynku dla celów amatorskich mamy dostęp do wielu płytek sterowników silników DC oraz krokowych. Dodatkowo silniki są dostępne w tak wielu opcjach, że wybór jest bardzo elastyczny.
Myślę, że jest taka drobna rzecz, która nam zawsze przemyka przy budownie robotów jak grubość osi silnika. Wiele razy dzięsiąte części militetra w wyliczonym otworze i odpowiedniej osi silnika spowodowały w moich prototypach robotów, że koło jest zbyt słabo osadzone i wpada w wiracje. Następstwem tego są wibracje na kołach, czyli robot zjeżdża delikatnie z trasy. Oczywiście można to skorygować programowo i wręcz należy, ale jeśli uczymy się budowania robotów, to każda linika nadmiarowego kodu w pierwszych programach jest zbędna i szczególnie kiedy można jej uniknąć zapewniając dobre dopasowanie mechaniki :-)
Istotna pułapka to również prąd silnika oraz max. prąd sterownika, bo kiedy robot nasz zatrzymuje się na przeszkodzie i nie mamy obsługi pomiaru prądu na silnikach oprogramowanej, wówczas może dojść do przegrzania i przepalenia silników ew. sterowników. Uwaga! W warunkach domowych łatwo przez nieuwagę doprowadzić do pożaru, przed czym przestrzegam. Każdy sterownik napędu powinien posiadać zabezpieczenie prądowe i powinniśmy być świadomi mocy naszych silników oraz dostosować grubość przewodów do prądu przepływającego pezez nie, aby uniknąć wypadku.
Ważne również jest użycie akumulatorów lub baterii, których moc i masa jest dopasowania do naszej konstrukcji. Musicie uważać też na akumultory Li-Ion oraz Li-Po, bo ich niewłaśniwe użycie grozi wybuchem lub zagrożeniem dla Wazsego żdrowia. Dobierajcie baterie też do warunków np: nie wiele systemów zasiania akceptuje wodę lub wilgoć, co też warto uwzględnić
Co do softu ułatwiającego projektoranie zasilania i napędów to mamy kilka opcji w OPenSource, oto lista kilku.
Lista aplikacji dla elektroników:
Powyżej umieszczone programy wspierają nas w budowie elektroniki robota, nie tylko napędów, więc jak widać w świecie OpenSource mamy sporo gotowego softu dla projektów elektroniki w naszych robotach.
Zasadniczo nie mogę pominąć fraktu, czym zajmuje sie elektronika w robocie. Otóż jest to serce zasialania i sterownia robota, więc jest niezbędna i od jakości jej wykonania zależy powtarzalność zachowania robota, czyli gwarancja dobrej zabawy z naszym robotem.
O co chodzi w tej jakości ? Zasadniczo w tym, aby płytka PCB była wykonana dość praktycznie ew. stosujemy uniersalną płytką i gwarantujemy, że nie będzie zimnych lutów, czyli przerw w połączeniach lutowanychc. Dodatkowo warto zapewnić kondensator elektrolityczny przy każdym rozgałęzieniu zasilania, co zapewni filtrowanie skoków napięcia i zakłuceń, gdy nie mamy odrębnego zasilania do części napędowej i części cyfrowej. Bo zakładam, że posiadamy jedno źródło zasialani bez skomplikowanych konwerterów napięć.
Praktyczną opcją jest użycie Arduino
lub jego klonów z gotowymi sterownikami silników, które posiadają już wspomniane zabezpieczenia i nie musimy się tym przejmować.
Programowanie + mikrokontrolery jednoukładowe AVR z użyciem Arduino
Oczywiście implementując algorytmu działania naszego robota niezbędne jest dla nas środowisko. Oto mój sprawdzony w boju zestaw bibliotek, które pomagają mi na budowanie softu dla mikrokontrolerów jednoukładowych AVR i zapewniają kompilację bez posiadania dedykowanego środowiska.
Moje repozytorium na github.com z frameworkiem do zaabawy z AVR
Powyżej linkowany zestaw narzędzi uratował mnie, kiedy nie było jeszcze Arduino. Natomiast obecnie mamy świetnie rozwijający się projekt środowiska IDE do programowania mikrokontrolerów AVR, który ma szansę stac się wygodnym lkikalnym standardem i tego temu projektowi OpenSource życzę. Zachęcam Was do zgłębiana wiedzy o aplikacji Arduino oraz platformie Arduiono, gdyż jest to moim zdaniem najprostsze środowisko do nauki programowania sterowników robotów.
Społeczność Arduino IDE stale rozwija się i przybywają nowe bibliteki. Przykładem takiej biblioteki, którą przetestowałem mogę polecić do budoway amatorskiego robota jest pakiet Motor dla Arduino IDE, który pozwala nam na sterownie niezależnie dowolną ilośćią silników, poprzez sterownik fizyczny oparty o uład scalony L293.
Podczas przeglądania materiałów n.t. Arduino natknąłem się na kilka dokumentów z linkami do stron autorów. Zamieszaczam je poniżej i życzę przyjemnej lektury. Niektóre wynalzki wykorzystujące współczene możliwości mikrokontrolerów są na prawdę niebanalne. Dla przykładu taka oto latająca platforma - kto by uwierzył, że kilka deseczek, dwa serwa, jakiś tani mikrokontroler zasilanie i możemy latać :-)
Kolejny przykładowy wynalazek, który może Was zainteresować dotyczy nietypowego lustra - złożonego ze sporej ilości silników i oczywiście kamery, która przetwarza obraz i steruje tym widowiskowym falującym lustrem:
Szczytem chyba jest BIOTICALS. Projekt, w którym roślina w doniczce podlega stałemu monitoringowi warunków i mikrokontroler, który ją monitoruje wysyła na dedykowanego bloga tej roślinki - nie żartuję sobie, hahaha - widomości w stylu Podlej mnie wreszcie :) W tym przykładzie do mikroblogowania wykorzystany jest twitter API .
Poniższe wartościowe materiały, które zawierają całą masę szalonych pomysłów:
Podczas przeglądania materiałów n.t. Arduino natknąłem się na kilka dokumentów z linkami do stron autorów. Zamieszaczam je poniżej i życzę przyjemnej lektury. NIektóre wynalzki wykorzystujące współczene możliwości mikrokontrolerów są na prawdę niebanalne. Dla przykładu taka oto latająca platforma - kto by uwierzył, że kilka deseczek, dwa serwa, jakiś tani mikrokontroler zasilanie i możemy latać :-)
Kolejny przykładowy wynalazek, który może Was zainteresować dotyczy nietypowego lustra - złożonego ze sporej ilości silników i oczywiście kamery, która przetwarza obraz i steruje tym widowiskowym falującym lustrem:
Szczytem chyba jest BIOTICALS. Projekt, w którym roślina w doniczce podlega stałemu monitoringowi warunków i mikrokontroler, który ją monitoruje wysyła na telefon komórkowy oraz dedykowanego microbloga tej roślinki - nie żartuję sobie, hahaha - widomości w stylu Podlej mnie wreszcie :) W tym przykładzie do mikroblogowania wykorzystany jest twitter API .
Poniższe wartościowe materiały, które zawierają całą masę szalonych pomysłów:
W ramach czytanki jaką były wypowiedzi ludzi na wykop.pl na temat Arduino - każdy może zostać elektronikiem/robotykiem! zrodziła mi się myśl zupełnie odmienna i przeciwstawna do tak zabarwionego pozytywnie nagłówkowego frazesu. Najbardziej rozbawła mnie nieświadomość wrzucającego, cytuję "Cała europa i stany szaleją na jej punkcie, a w naszym rodzimym internecie cisza. Patrzcie jakie to proste!". Tak, czas na prostotę nastał już wiele lat temu, gdy pojawiły się pierwsze mikrokontrolery jednoukładowe :-). Cóż, w mniemanu wielu handlarzy arduino z polskich aukcji internetowych - wnioskując po cenie - niesamowicie skomplikowanym sprzętem jest ten Open Hardware Arduino! Najpewnej cena ta może wynikać z założonego tytułu tego posta oraz ze świeżego tematu w naszym kraju. W sumie pisałem już w listopadzie na łamach tego bloga o Arduino i Freeduino oraz o Open Hardware tzn. kilka miesięcy temu, lecz obserwuję zarazem, jak działają mechanizmy rynkowe chciałbym się z Wami tym podzielić.
Na początek dobrze to mieć jako gotowiec na lokalnych aukcjach, nasi znajomi blogerzy powinni coś już w tym czasie zacząć pisać (ponad migającą diodę), na aukcjach musi pojawić się naturalnie konkurencja, powstają pierwsze kopie oraz interpretacje pomysłów już zrealizowanych poza granicami kraju, kilku poważniejszych projektantów systemów mikroprocesorowych uśmiechnie się i pokaże, że takie moduły otaczają nas od zawsze, ktoś pokaże i opowie w ojczystym języku na youtube, że zrobienie wielu gadżetów się upraszcza do minimum lutowana i wymaga wyłącznie weny przegrzebywana forumów w poszukiwanu nowych interfejsów, mój robiony na kolanie ;) moduł arduino powinen się nieco zakurzyć na biurku od braku nowego pomysłu na robota lub inną niebanalną zabawkę, ktoś zakupi lutownicę i zacznie powielać tanie moduły do arduino, bo niestać nas na LegoMndstorms ...
... i tak oto powolnie Panowie rozkręca się świat Open Hardware i Open Source. Uważam, że właśnie taka czeka nas przyszłość :-) bez wielokrotnego powielania zbędnie traconego czasu na uzyskane większej modularności w sferze konstrukci elektronicznych. To na czym nasi starsi koledzy i ojcowie budowali tzw. mikroprocesorówkę automatyki przemysłowej nie staje coraz bardziej zagrożone, przez to, że ludzie w wolnym czasie zaczną lutować jakiś open hardware. To właśnie jest podwalina do wielkich wynalazków w tej dziedzinie i otwartych rozwiązań elektroniczno-programistycznych. Czeka nas współdzielenie się kodem dla naszych modułów, aby były sprawniejsze, użyteczniejsze, wydajniejsze, niezawodne ... Zaznaczę tylko, że w tej sytuacji elektronikiem lub automatykiem nie każdy może siebie ot tak nazywać, o ile nie widnieje w tej nazwie przydomek wynalazca amator. Jednakże każdego dnia, kiedy jakiś amator wynalazca publikuje kolejne rozwiązanie uwieńczone tygodniami prób i błędów mam cichą nadzieję, że niebawem wielkie korporacje zauważą, że tak na prawdę sprzedają zwyczajny szajs :-) Wznoszę węc wiwat dla epoki urządzeń wbudowanych - oby każdy potencjalny majsterkowicz mógł bawić się do woli!
Polecam również poniższe lektury zaczerpnięte z dyskusji zrodzonej na wykopie: http://www.arduino.cc/playground/Projects/ArduinoUsers http://www.phidgets.com/ http://www.roborealm.com/ http://hardware.processing.org/ http://processing.org/ https://www.silabs.com/products/mcu/Pages/ToolStick.aspx http://www.sunspotworld.com/ http://pl.wikipedia.org/wiki/Colobot http://www.colobot.yoyo.pl/ http://www.srodki-dydaktyczne.men.gov.pl/www/main-5.php?distributor=201&
Firma SUN zaprojektowałą i sprzedaje "alternatywny" do Arduino moduł, lecz o innej skali zastosowań, oto przykład filmu z realizacją ramienia robota ze sterowaniem rękawiczką zakładaną na dłoń operatora :-)
... przytoczę także porównanie, bo SunSpot steruje też rakietą !
Marcin Bielak, architekt i programista biznesowych aplikacji internetowych. Stawia od początku na wysoką jakość produktu. W programowaniu wykorzystuje: Open Source, Linux, Python, Golang, ECMAScript/JavaScript.