Skocz do zawartości

Linefollower, jaką platformę wybrać? (STM32/ ESP32) Ktoś doradzi w kwestii planowania?


morteusz

Pomocna odpowiedź

Razem z kolegą przymierzamy się do stworzenia nowego (drugiego) LF-a i stoimy przed wyborem odpowiedniej platformy. Tym razem planujemy wybrać technologię optymalną dla założeń, nie taką jaką najlepiej znamy gdyż mamy całkiem sporo czasu i jesteśmy gotowi nauczyć się nowej technologii. 
Przechodząc do rzeczonych założeń:

  •  komunikacja bluetooth lub wifi. Jeszcze nie możemy się zdecydować ale osobiście marzy mi się złożona aplikacja desktopowa z masą wykresów i zapisem do bazy danych więc skłaniałbym się do drugiej opcji. Chyba że weźmiemy esp, wtedy nie ma problemu.
  • Z raczej podstawowych elementów: silniki planujemy zamontować hpcb 10:1 obustronny wał; sterownik silników; nad ilością transoptorów dalej debatujemy ale nie będziemy chyba szaleć i ograniczymy się do max 10; również myślimy aby zainspirować się cukiereczkiem i dać diody adresowalne do sygnalizacji.
  • Co istotne zależy nam (a przynajmniej mi 😉) żeby przystosować konstrukcję do mapowania trasy, zdaję sobie sprawę że temat jest złożony ale kręci mnie to niesamowicie więc chciałbym żeby konstrukcja była przynajmniej przystosowana do testowania tego systemu czyli w planach zakładamy użycie imu enkoderów oraz czytnika sd. 

Właściwie przy każdym wpisie na jakimkolwiek forum jestem krzyczany za to że nie podaję podstawowych informacji/specyfikacji/założeń hur dur. Jak zapomniałem o czymś poinformować to proszę pytać.

W naszym dwuosobowym zespole kolega Piotrek zajmuje się elektroniką i konstrukcją a ja programowaniem. Obaj mamy doświadczenie z arduino. Piotrek radzi sobie dobrze z smd a ja staram się ogarniać programowanie, algorytmikę i matematykę (poziom rozszerzonej klasy 3 liceum ale otarłem się już o całki pochodne i różniczki)

Proszę o pomoc przy wyborze odpowiedniej platformy, esp kusi wbudowanym wifi ale może przeszkadzać komunikacją na poziomie 3V. Z tego co widzę znakomita większość konstrukcji bazuje na stm32 chociaż mnie atrakcyjniejsze na ten moment wydaje się esp.

Jeżeli ktoś ma jakąś wiedzę w temacie mapowania trasy albo wie gdzie ją pozyskać to byłbym wdzięczny za poinstruowanie bo naprawdę niewiele jest tego w internecie. Jeżeli idzie o obecne prace nad robotem to ograniczają się do researchu i testów w utworzonym przeze mnie symulatorze w unity

569308560_Zrzutekranu(19).thumb.png.6eaaac4fc050a9ed7c323567e59894c3.png

Link do komentarza
Share on other sites

Jeśli chcecie nauczyć się czegoś nowego to dobrym krokiem będzie pójście w stronę STM32. Dobierzecie sobie odpowiedni mikrokontroler na podstawie potrzebnych peryferiów oraz GPIO. Programowanie tego będzie dużo trudniejsze niż w przypadku Arduino, ale za to możliwości też będą znacznie większe. W STM32 na pewno przyda się wam wiele kanałów ADC, DMA i sprzętowa obsługa enkoderów. Docelowo będzie to dużym ułatwieniem. Jeśli ktoś z Was planuje dalej zajmować się elektroniką to w kontekście studiów i pracy częściej przyda się STM32.

Sprawdźcie sobie nasz kurs STM32L4 i zobaczcie jak wygląda programowanie tych układów. Będzie tam masa zagadnień, z którymi nie spotkaliście się podczas pracy z Arduino, ale takie jest właśnie "prawdziwe" programowanie mikrokontrolerów. Nasz kurs STM32 jest stosunkowo nowy, zawartość tego kursu była dokładnie sprawdza przez firmę, która produkuje te układ, więc myślę, że to dobry start 😉

  • Lubię! 1
Link do komentarza
Share on other sites

STM32 jako główny kontroler - sterowanie silnikami, odczyt wszystkich czujników itd. Do tego ESP32 (może wpinane na złączu aby w razie potrzeby odpiąć i zredukować masę) do komunikacji. Jeśli podłączycie ESP do UART1 STM32 to będziecie mieli jeszcze opcje żeby robić OTA STM32 np: https://github.com/ESP32-Musings/OTA_update_STM32_using_ESP32

A co do mapowania i symulacji, lepiej będzie będzie to robić w ROS https://docs.ros.org/en/foxy/Tutorials/Advanced/Simulators/Simulation-Main.html niż w Unity.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

50 minut temu, Harnas napisał:

STM32 jako główny kontroler - sterowanie silnikami,

 

50 minut temu, Harnas napisał:

tego ESP32 (może wpinane na złączu aby w razie potrzeby odpiąć i zredukować masę) do komunikacji.

Takie pytanko: jeśli ESP32 ma specjalizowany sprzętowy podsystem do sterowania silnikami (MCPWM) to dlaczego nie chcesz z niego korzystać? W tej sytuacji po co tam ten STM w ogóle?

A może ESP32 WROVER? Taki z 8 MB PSRAM i 16 MB flash?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

2 godziny temu, ethanak napisał:

A może ESP32 WROVER? Taki z 8 MB PSRAM i 16 MB flash?

Pamięć podłączana przez SPI niekoniecznie jest równie dobra jak wbudowana w mikrokontroler, więc nie wiem czy to powinno być tak ważne kryterium. Do STM32L4 można sobie podłączyć nawet 256MB pamięci zewnętrznej.

Link do komentarza
Share on other sites

Przed chwilą, Elvis napisał:

Pamięć podłączana przez SPI niekoniecznie jest równie dobra jak wbudowana w mikrokontroler

Doskonale rozumiem - ale do mapowania się nadaje. Przy okazji: te megabajty siedzą sobie grzecznie wbudowane w moduł za trzydzieści zeta, a do odpalenia potrzebne są (oprócz konwertera USB-UART) dwa rezystory.

Nie upieram się że to koniecznie musi być ESP32 - ale chyba dość rzadko spotyka się LF-y na tym mikrokontrolerze, i może warto się z tym zmierzyć?

Link do komentarza
Share on other sites

Pomysł Harnasa wydaje mi się bardzo ciekawy. Kusi wizja programowania bezprzewodowego ale zastanawiam się czy da się to zrobić przy użyciu samego esp? Jestem w trakcie researchu na ten temat OTA ale może ktoś mógłby szybko poinstruować?

11 godzin temu, ethanak napisał:

dość rzadko spotyka się LF-y na tym mikrokontrolerze, i może warto się z tym zmierzyć?

Brzmi jak wyzwanie. Zawsze lepiej móc pochwalić się czymś oryginalniejszym na zawodach robotów.

Link do komentarza
Share on other sites

@morteusz to warto też się zorientować czy dany język lub biblioteki, które chcesz wykorzystać pozwolą na łatwe uruchomienie wszystkich zaawansowanych peryferiów ESP, które będziesz potrzebował. Bo jeśli się okaże, że musisz działać z dokumentacją i analizować każdy rejestr to pewnie będzie to jeszcze trudniejsze niż korzystanie z STM32.

Link do komentarza
Share on other sites

15 minut temu, morteusz napisał:

Obecnie uczę się w micropythonie A pomocą Thonny

A, to lepiej zapomnij o ESP32. Albo espressif-idf, albo arduino-ide, w micropythonie możesz sobie co najwyżej diodą pomigać. Tak jak wspomniał @Treker - nie masz dostępu do peryferiów (ani do większości potrzebnych funkcji). A to nie AVR, żeby sobie rejestry podglądać...

 

  • Lubię! 1
Link do komentarza
Share on other sites

Może nie wywołując burzy mógłby ktoś prostym językiem wyjaśnić dlaczego micropython może być gorszym wyborem? Jaki języki/ ide będzie lepsze i dlaczego. Na micropythonie nie zrobiłem jeszcze niczego więcej niż zabawa około godziny z pirem i diodkami. Słyszałem że można esp programować przez arduino ale podobno "nie warto"

Link do komentarza
Share on other sites

23 minuty temu, morteusz napisał:

Słyszałem że można esp programować przez arduino ale podobno "nie warto"

Dlaczego nie warto? Arduino dla ESP32 to po prostu nakładka na esp-idf dodająca znane funkcje typu millis(), digitalRead() i tym podobne. Bibliotek (również tych obsługujących specjalizowane peryferia) jest dość dużo. Większość aplikacji na ESP32 powstaje właśnie w Arduino. Zresztą - przejrzyj sobie moje kody na esp32 (np. metrówka, suwmiarka czy sztandarowy czytak) - wszystko robione w Arduino.

A z tym "nie warto" to pewnie jak z tym gościem co się skarżył, że nie może pływać bo woda za rzadka...

28 minut temu, morteusz napisał:

mógłby ktoś prostym językiem wyjaśnić dlaczego micropython może być gorszym wyborem

Bo nie masz dostępu do 99% potrzebnych funkcji, a sam język nie zapewnia pracy w czasie rzeczywistym.

Ogólnie (tu zaraz znowu się ktoś odezwie że nie mam racji) micropython jest pomyślany jako "przejściowy" język, dla tych co znają Pythona na dużych maszynach i chcą popróbować mikrokontrolerów. Oczywiście można zostać przy micropythonie. Można (jak stwierdził @Elvis ) pisać w C brakujące biblioteki... tylko czy jest sens, jeśli i tak musisz programować w C/C++?

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.