Wpis z mikrobloga

I ciąg dalszy tego wątku w którym robię autonomiczną kosiarkę. W sumie w tym tygodniu zrobiłem część rzeczy które planowałem ale też część których nie planowałem ( ͡ ͜ʖ ͡)
Jak tam wygląda sytuacja z softem? Tak jak pisałem na początku tygodnia zrobiłem obsługę żyroskopu oraz akcelerometru tak że mam informację jak bardzo obróciło się urządzenie (do kompletu brakuje magnetometru).
Zacząłem przygotowywać interfejs do udostępniania informacji na zewnątrz (np. zewnętrzny proces sztucznej inteligencji). Stwierdziłem że trzeba to zrobić na zasadzie wzorca visitor który to będzie raz za czas "odwiedzać wszystkie urządzenia" w systemie i zbierać z nich odczyty. Tak zebrane dane wystawia na zewnątrz. Tutaj waham się pomiędzy pipefs/procfs/ethernet. Ale chyba wygra pipe bo nie chce mi się pisać driver'a do proc'a ani obsługi klient-serwer po ethernet. Tak w ogóle przerobiłem obsługę wiadomości z #stm32. Wcześniej było kilka procesów które regularnie pytały warstwę transportową o aktualne dane. Taka architektura na #raspberrypi szybko zeżarła by mi zasoby wewnętrzne. Więc wywaliłem tak dużą ilość wątków i zastąpiłem je kolejnym wzorcem: chyba active object: urządzenia rejestrują się w warstwie transportowej na konkretne typy wiadomości. A ta jak odbierze konkretny typ wiadomość od razu przekazuje je do odpowiednich modułów obsługujące te wiadomości. Plusy: szybkie, łatwe, zżera mało zasobów, minusy: jeszcze nie wiem ( ͡° ͜ʖ ͡°) .
Co tam w hardware? Ostatecznie nie zrobiłem tych enkoderów do silników w tym tygodniu ale już zacząłem ogarniać temat.
W końcu zamontowałem koła do silników! Narobiłem się przy tym trochę bo dopiero 3 konstrukcja wyszła taka jak chciałem (zdjęcia w komentarzu). A dzisiaj niedzielnym wieczorem, wycinałem część obudów na paski i silniki coby się nie uwaliły w trakcie pracy trawą i piaskiem.
Przypuszczam że za jakieś 3-4 tygodnie zrobię pierwszy test platformy jeżdżącej na kablu zasilającym.

Co teraz planuje:
Soft: dokończyć interfejs udostępniający dane z czujników i urządzeń na "zewnątrz", obsługa magnetometru, i chyba co najważniejsze wirtualne trasy (urządzenie musi wiedzieć w którym jest miejscu). Ta ostatnia część będzie wykonywana i dla #raspberrypi jak i appki na android.
Hardware: dokończyć wycinanie obudów, zrobić te nieszczęsne enkodery (albo zamówić), przykręcić silniki do platformy.
Tagi: #raspberrypi #programowanie #cpp #diy #chwalesie #stm32 #robotyka #elektronika
K.....m - I ciąg dalszy tego wątku w którym robię autonomiczną kosiarkę. W sumie w ty...

źródło: comment_RPTkkoAHMRLNhfYIkE73lP6fwx3WfLpm.jpg

Pobierz
  • 10
  • Odpowiedz
@KabelZNadcisnieniem: if I were you, ale oczywko to tylko sugestia, to zainteresowałbym się frameworkiem o nazwie ROS (Robot Operating System). Ułatwi Ci to pracę, a i rozwiąże wiele problemów związanych z warstwą transportową danych
  • Odpowiedz
@Samcro : nawet nie wiedziałem że taki framework istnieje. Pozatym chciałem się nauczyć pisać platformy stricte pod roboty. Jak ten wyjdzie zacznę myśleć nad następnym.
@KapitanPoFakcie : Jestem świeżak jeżeli chodzi o robotykę i automatykę. Wiem że w przyszłości problem z dryftem IMU napewno wystapi. Mam stricte doświadczeniem z pisaniem oprogramowania pod hardware (sterowniki, kontrola rejestrów, odczyty). Między innymi dlatego wykonuje ten projekt ponieważ chcę wiedzieć jak się robi takie rzeczy (dodatkowo
  • Odpowiedz
  • 0
@KabelZNadcisnieniem skoro ma być autonomiczna to w sumie warto żeby dało się ją zostawić samą np na godzinę żeby ogarnęła cały trawnik. A nie podchodzić non stop żeby ją opróżniać :) pomijam planowanie trasy itd właściwie mogłoby to działać tak jak w odkurzaczach typu irobot
  • Odpowiedz