Pojazd dwukołowy LEGO sterowany ze smartfona przez WiFi (WeMos)

Pojazd dwukołowy LEGO sterowany ze smartfona przez WiFi (WeMos)

W moim poprzednim wpisie opisałem budowę prostego i taniego dwukołowca, którego można sterować smartfonem przez WiFi (ESP8266) wykorzystując aplikację Blynk. Wadą tego rozwiązania była konieczność wykorzystania sieci domowej (dostępu do internetu) oraz serwera Blynk w celu kontroli pojazdu, co uniemożliwiało wyjście z pojazdem w teren.
W tym wpisie pokażę jak wykorzystać tryb Access Point w ESP8266 aby uniezależnić się od dostępu do internetu i sieci domowej. W celu wyeliminowania części kabli jaka była potrzebna do podłączenia ESP-12e ze sterownikiem silników i zasileniem, użyję taniego modułu WeMos D1 mini wraz z DC Power Shield, który nie będzie wymagał użycia dodatkowego konwertera USB-UART do zaprogramowania ESP. Całość zabuduję klockami LEGO Duplo w celu zakrycia elektroniki i zasilania. Do kontroli pojazdu użyję aplikacji RoboRemoFree.

Spis części

Do zbudowania prostego pojazdu potrzeba:

Nie licząc baterii lub akumulatorków (które miałem w szufladzie), klocków LEGO (które zabrałem synowi), kleju, listwy goldpin oraz przewodów, całość powinna wynieść ok. 90 zł.
Moduły WeMos kupiłem ze sklepu firmowego (www.wemos.cc) na AliExpresie. Czekałem na nie tylko 23 dni, co jest wynikiem bardzo dobrym jak na zakupy u naszych chińskich przyjaciół.

Mimo, że silniki zasilane są napięciem maks. 6V, to użyta ilość baterii (6 sztuk – 9V) wynika z tego że, DC Power Shield potrzebuje zasilania min. 7V. Będzie to wymagało programowego ograniczenia mocy silników, o czym w dalszej części.

Przygotowanie

WeMosa programować będziemy w środowisku Arduino IDE. Instalację i konfigurację tego środowiska opisałem w poprzednim wpisie, w podrozdziale ‘Przygotowanie’, zatem tu je pominę. Aby wgrać program na WeMosa należy podłączyć go poprzez kabel USB do komputera i w programie Arduino IDE wybrać w menu Tools–>Board–>WeMos D1 R2 & mini, oraz w menu Tools–>Port wybrać odpowiedni port (COM’XX’). Dodatkowo w menu Tools ustawiamy Flash size: „4M (1M SPIFFS)” lub Flash size: „4M (3M SPIFFS)”. Resztę ustawień możemy pozostawić bez zmian.

Podłączenie WeMosa do mostka H

Po wgraniu programu (o którym w dalszej części opisu) do WeMosa należy połączyć go ze sterownikiem silników według schematu przedstawionego na rys. 1.

Rys. 1  Schemat podłączenia WeMos do sterownika silników

Czyli D4 i D3 będą sterować kanałem B, natomiast D2 i D1 będą sterować kanałem A. Podanie stanu wysokiego na wejście MODE sterownika powoduje że będzie on działał w trybie PHASE/ENABLE.

Aby pozbyć się większości kabli moduł WeMoss oraz sterownik umieściłem na płytce uniwersalnej z dolutowanymi listwami goldpin i połączeniami wykonanymi z nóżek po rezystorach (patrz rys. 2). 

Rys. 2  Płytka uniwersalna z dolutowanymi listwami goldpin i zworkami

Aplikacja RoboRemoFree – ustawienia

Po zainstalowaniu aplikacji RoboRemoFree należy stworzyć projekt zawierający jeden przycisk, jedną diodę, jeden suwak pionowy i jeden suwak poziomy jak pokazano na rys. 3.


Rys. 3 Ustawienia aplikacji RoboRemoFree

W celu edycji projektu i wstawienia elementów należy, kliknąć ‘Menu–>edit ui’ następnie kliknąć na puste miejsce na ekranie i wybrać odpowiedni element.
    Ustawienia elementów:

  • button:
    • set text: włącznik;
    • set press action: s
  • led:
    • set id: led
  • slider (pionowy):
    • set id: x
    • set min, max: min -100, max 100
  • slider (poziomy):
    • set id: y
    • set min, max: min -40, max 40

Po wprowadzeniu powyższych ustawień wciskamy przycisk Menu i wybieramy ‘don’t edit ui’. Uruchomienie i sposób połączenia się z pojazdem opiszę w dalszej części.

Program

Kod programu z komentarzami znajduje się poniżej. W programie założono że sterowanie odbywać się będzie z aplikacji RoboRemoFree.
Poniższy kod jest zmodyfikowaną wersją programu zaproponowaną przez ElektroPrzewodnika, Kurs Budowy Robotów FORBOT oraz stronę http://www.makerworkshop.com.au/emitcollect/electronics/esp8266-as-access-point-and-station-with-udp-comms/.
Chciałbym w tym miejscu nadmienić, że zarówno Tomasz Grabowski (a.k.a. ElektroPrzewodnik) jak i twórcy portalu FORBOT (w szczególności Damian Szymański a.k.a Treker) robią kawał dobrej roboty w propagowaniu elektroniki i robotyki. Jeżeli ktoś jeszcze ich nie zna to bardzo polecam kanał ElektroPrzewodnik i portal FORBOT.

W programie ustawiono maksymalną wartość PWM dla silników równą 170, co ogranicza programowo ich moc. Przy takiej wartości PWM maksymalne napięcie zasilania nie powinno przekroczyć 6 V. Przy użyciu innego zasilania, przed podłączeniem silników, warto zmierzyć jaka jest maksymalna wartość napięcia wychodząca z mostka H i dostosować ją do używanych silników dobierając odpowiednio maksymalną wartość PWM.

Składanie pojazdu

Do złożenia pojazdu potrzeba niestety użyć trochę kleju na gorąco, aby przymocować silniki i koło obrotowe (patrz rys. 4), oraz płytkę z elektroniką aby nie latała.


 

Rys. 4 Mocowanie silników i kół

Zasilanie i elektronikę można zabudować używając dostępnych klocków. W moim przypadku wygląda to tak jak na poniższych rysunkach.

Rys. 5 Składanie pojazdu

Oczywiście, niepodlegającym dyskusji jest fakt, że pojazd ten żadnych konkursów piękności nie wygra. Lecz nie o to chodziło. Pewnie używając mniejszych klocków (a nie Duplo) udałoby się zbudować coś bardziej przypominającego samochód. Ale to może za kilka lat jak syn wyrośnie z klocków Duplo :-) 

Uruchomienie pojazdu

Po wgraniu programu do WeMosa, powinien on przejść w tryb AP (niebieska dioda w module powinna się świecić) i tym samym pojazd jest gotowy do akcji.
W telefonie należy połączyć się z siecią ‘Samochod_Lego’ i w aplikacji RoboRemoFree w Menu wybrać opcję connect–>Internet (Udp) a następnie wpisać adres 192.168.4.1:4210 i kliknąć w niego w celu połączenia.
Następnie, włączenie pojazdu nastąpi po kliknięciu przycisku ‘włącznik’, co zasygnalizowane będzie przez zaświecenie wirtualnej diody w aplikacji.

Złożony i zaprogramowany pojazd w akcji można zobaczyć na filmie:

 

Ocena: 4.33/5 (głosów: 12)

Podobne posty

20 komentarzy do “Pojazd dwukołowy LEGO sterowany ze smartfona przez WiFi (WeMos)

  • Ciekawe połączenie klocki z elektroniką no i duży plus za dokładny i czytelny opis sam jestem na etapie budowy robota na czterokołowej platformie samojezdnej sterowanej bezprzewodowo na nRF24 Lo1 mam tylko trochę kłopotów z kodem – dopiero się uczę programowania

    Odpowiedz
    • No to widzę że i statywy do wiertarek i roboty robisz :-) Nie bawiłem się jeszcze nRF24Lo1 ale jak zrobisz to wrzuć opis. Chętnie poznam coś nowego.

      Odpowiedz
      • cześć trochę to pewnie potrwa ale zainteresowałem się ostatnio projektem Arduino i postanowiłem się trochę poduczyć, a to jest mój pierwszy robot, jak tylko skończę to na pewno opublikuję . Mam jeszcze jedno pytanie czy sam zmodyfikowałeś kod ?
        Czy ewentualnie mogę liczyć na jakąś małą pomoc jeśli będę chciał zmienić swój kod ?

        Odpowiedz
        • Modyfikowałem podpatrując jak inni to robią. Sam zaczynam zabawę i w wolnych chwilach poznaje możliwość tych różnych zabawek, których kiedyś jak chodziłem do szkoły nie było :-) Jeżeli tylko będę potrafił to oczywiście postaram się pomóc. Powodzenia.

          Odpowiedz
  • Jak tak przeglądam post nasunęła mi się jeszcze jedna uwaga zauważyłem że do zasilania pojazdu użyłeś baterii R6 ja w swoim zastosowałem bardzo wydajne akumulatory Litowo jonowe 18650 cztery szt. połączone szeregowo- równolegle tzn. połączyłem równolegle 2 sekcje po 2 szeregowo co przy pojemności pojedynczego akumulatora około 2200 mAh dało mi około 8 V i pojemność 4400 mAh no i mogę je wielokrotnie ładować co w sumie bardziej się chyba opłaca, akumulatory kupiłem firmowe Samsung na aliexpress .

    Odpowiedz
    • Czas niestety ustawiony jest prawidłowo. Dojazd do pracy wymaga wczesnej pobudki :-/
      A jeszcze się przy okazji dopytam Ciebie o ładowarkę do tych li-ion’ów. Masz jakąś szczególną, która się sprawdza i mógłbyś polecić? Na sieci można znaleźć i takie za 40 zł i takie za 140 lub więcej. Nie wiem na ile jest sens inwestować w te droższe.

      Odpowiedz
  • Właśnie takiego projektu szukałem. Dzięki dzięki. A czy byłby duży kłopot żeby sterować jednym silnikiem lewo prawo i pwm ale na l293 bo takie mam?

    Odpowiedz
    • Ciesze sie ze sie podoba. Co do sterownika silnikow to mozna uzyc dowolnego, byleby pasowal do uzytych silnikow. Ale nie bardzo kumam o co chodzi z tym jednym silnikiem lewo prawo?

      Odpowiedz
  • Ciągle mam problem z działaniem kół, wifi działa bez problemu, ale pojazd nie chce działać. Masz jakieś porady co sprawdzić? Dzięki za pomoc

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?