CategoryMicromouse

Zabawy z folią aluminiową

Po zlutowaniu nowego PCB, zgodnie z planem opisanym poprzednio, przystąpiłem do strojenia regulatorów silników. O ile z ruchem postępowym poszło szybko – w końcu robiłem to już któryś raz – tak z ruchem obrotowym natrafiłem na kolejne problemy. Jako sprzężenie zwrotne dla regulatora używam żyroskopu i okazało się, że odczyty są mocno zaszumione. Zakłócenia są obecne tylko przy podłączonych silnikach. Głównym podejrzanym jest pole elektromagnetyczne generowane przez silniki. W ruch poszła więc tytułowa folia aluminiowa. Efekty były dosyć komiczne.

Czytaj dalej

Micromouse ma nowe PCB

Pracując nad regulatorami silników zrobiłem zwarcie na płytce czyniąc ją niezdatną do użytku. Pisałem o tym w poprzednim tekście o Micromouse – link. Miałem w zapasie jeszcze części i PCB, więc przystąpiłem do lutowania. Niestety na drugiej płytce również miałem problemy z poprawnym działaniem robota. Przy okazji spaliłem programator ostatecznie tracąc szanse na sprawdzenie czegokolwiek na sprzęcie. Przyszła więc pora na zrobienie nowej wersji płytki. Poza tym miałem problem z jednym mocowaniem kół – w konkretnym ułożeniu zębatek stawiało ono opór i w rezultacie nie kręciło się tak dobrze jak drugie. Na tych dwóch rzeczach skupiałem się w swych ostatnich pracach nad robotem.

Czytaj dalej

Postępy prac nad Micromouse

Dawno nic nie było o postępach w pracach nad Micromousem, więc pora na mały update. Od ostatniego wpisu o regulatorze obrotów z sierpnia udało się zrobić parę rzeczy. Udało się również parę rzeczy zepsuć. Projekt posunął się do przodu na różnych frontach, ale postępy przystopowało trochę spalenie płytki.

Czytaj dalej

Projekt regulatora obrotów silnika

Dzisiaj omówię, w jaki sposób zaprojektować regulator obrotów silnika. Pokażę jak zebrać dane pomiarowe, a następnie dokonać ich analizy i obróbki. W trakcie tego procesu wytłumaczę jakich narzędzi używam i w jaki sposób je wykorzystuję.

Podobny artykuł napisałem kiedyś na Forbocie – link. Jednak jest kilka istotnych różnic. Przede wszystkim tam był brany pod uwagę sam układ enkoder – silnik bez kół i całej konstrukcji mechanicznej robota. Przez to nie musiałem wtedy walczyć z takimi zakłóceniami i nieliniowościami. Poza tym wtedy wyprowadziłem model na podstawie pomiaru dla jednej wartości wypełnienia. Tutaj wykonuję pomiary dla trzech wartości i patrzę jak wyznaczone modele sprawdzają się dla innych danych pomiarowych.

Czytaj dalej

Robot jeździ o własnych siłach

Problemem na którym zatrzymałem się ostatnio podczas próby wprawienia robota w ruch (link) było przeniesienie napędu z silnika na koła. Osią obrotu koła jest jest śruba przechodząca przez mocowanie silnika. Jest ona dokręcana za pomocą nakrętki, co widać na poniższym zdjęciu.Kiedy nakrętka jest wkręcona za mocno, występuje opór przy próbie obrotu koła. Zębatka na wale silnika przestaje się wtedy kręcić. Po poluzowaniu śruby, koło dobrze się kręci, ale nakrętka zaczyna się odkręcać i po jakimś czasie wypada. Rozwiązaniem mojego problemu okazał się klej do śrub. Dzięki sklejeniu nakrętki ze śrubą, nie odpada ona podczas obracania się koła. Nie muszę więc tak mocno skręcać śruby i koło może swobodnie się kręcić.

Po zamontowaniu kół i sklejeniu śrub robot mógł w końcu wyruszyć w swą pierwszą trasę. Została ona uwieczniona na filmiku:

Czytaj dalej

Sprawić, żeby robot zaczął jeździć

Trzy miesiące konkursu „Daj się poznać” już praktycznie minęły i o ile jestem zadowolony z treści, które pojawiły się na blogu, to prace nad rozwojem robota są w szczerym polu. Od początku wiedziałem, że realizacja całego projektu potrwa dłużej niż konkursowe trzy miesiące, ale liczyłem, że będę już trochę dalej. Uświadomiłem to sobie w poniedziałek i wtedy też postanowiłem podjąć się wyzwania – do końca maja (czyli w 3 dni) miałem sprawić, żeby robot zaczął jeździć. Z tego powodu w ostatnich dniach solidnie popracowałem nad projektem. Tym bardziej, że przed trzema dniami wyzwania miałem jeszcze owocny weekend z OctoPrint i drukarką 3D. Na zdjęciu puszczony na telewizorze kolejny odcinek serialu „Bootowanie Raspberry Pi”.

Czytaj dalej

Funkcje debugowe i sterownik silników

Ostatnio udało się trochę pchnąć do przodu prace nad softem. Dorobiłem prototypy funkcji debugowych i interfejsu użytkownika, a także napisałem sterownik silników, który następnie przetestowałem na robocie. Okazało się, że na płytce PCB jednak znajdowały się błędy. Zmiany w kodzie zostały wrzucone na GitHub, pojawiły się tam też pierwsze wpisy do Issue Trackera.

Czytaj dalej

Budowanie szkieletu aplikacji

Zgodnie z założeniami, które nakreśliłem we wpisie o architekturze systemu, zabrałem się do projektowania prototypów funkcji poszczególnych bloków. Dzięki temu mogę zbudować szkielet aplikacji przechodzący przez wszystkie warstwy i stopniowo wypełniać go kodem. Główny nacisk położyłem na driverach powiązanych z warstwą sprzętową. Zależy mi na szybkim zaimplementowaniu driverów, żeby można było przetestować poprawność pracy poszczególnych podzespołów na docelowej płytce. Poza tym hardware jest najbardziej zależny od rzeczy narzuconych odgórnie i dobrze jest sprawdzić jak najszybciej, czy planowana koncepcja jest na pewno realizowalna. Zaktualizowany kod znajduje się na GitHubie projektu na gałęzi dev.

Czytaj dalej

Lutowanie płytki

Płytki PCB mam już od jakiegoś czasu, elementy też, ale dopiero ostatnio znalazłem trochę czasu, żeby to wszystko polutować. Tak więc lutownica w dłoń i do dzieła!

Czytaj dalej

Architektura systemu

Koncepcję robota opisałem już jakiś czas temu i od razu zabrałem się za realizacje hardware. Soft na razie został zepchnięty na dalszy plan, ale powoli to się zmienia. W ramach przygotowań do implementacji postanowiłem więc określić architekturę systemu. Jako, że to projekt po godzinach, nie ma żadnych narzuconych procedur dotyczących dokumentacji. Nie oznacza to jednak, że ma jej w ogóle nie być. Założenie jest takie, żeby pisać tylko tyle dokumentacji ile jest w danej chwili potrzebne i żeby rosła razem z postępem prac. W tej kwestii projekt potraktuję jako poligon doświadczalny.

Czytaj dalej

© 2017 ucgosu.pl

Theme by Anders NorénUp ↑