- Wymagane materiały:
- Drukowanie 3D wymaganych części:
- Sprzęt i schematy:
- Montaż robota:
- Programowanie Arduino dla Biped Robot:
- Aplikacja na Androida oparta na przetwarzaniu:
- Działanie robota dwunożnego sterowanego przez Bluetooth:
Witamy w kolejnym projekcie, w którym zbudujemy małego robota, który potrafi chodzić i tańczyć. Celem projektu jest nauczenie Cię, jak tworzyć małe roboty hobbystyczne za pomocą Arduino i jak programować silniki Servo do takich zastosowań. Pod koniec projektu będziesz mógł wykonać tego chodzącego i tańczącego robota, który przejmuje polecenie z telefonu komórkowego z systemem Android w celu wykonania określonych wcześniej czynności. Możesz także użyć programu (podanego na końcu samouczka), aby łatwo manipulować działaniami własnego robota, kontrolując położenie serwomotorów za pomocą monitora szeregowego. Posiadanie drukarki 3D uczyni ten projekt bardziej interesującym i fajnym wyglądem. Ale jeśli go nie masz, możesz skorzystać z dowolnej usługi online lub po prostu użyć kartonu do zbudowania tego samego.
Wymagane materiały:
Do budowy tego robota potrzebne są następujące materiały:
- Arduino nano
- Serwo SG90 - 4Nos
- Męskie kije Berg
- Moduł Bluetooth HC-05 / HC-06
- drukarka 3d
Jak widać, ten drukowany w 3D robot wymaga bardzo minimalnej liczby części elektronicznych do zbudowania, aby koszt projektu był jak najniższy. Ten projekt służy wyłącznie do celów koncepcyjnych i zabawnych i jak dotąd nie ma zastosowania w czasie rzeczywistym.
Drukowanie 3D wymaganych części:
Druk 3D to niesamowite narzędzie, które może wiele wnieść podczas tworzenia projektów prototypowych lub eksperymentowania z nowymi projektami mechanicznymi. Jeśli jeszcze nie odkryłeś zalet drukarki 3D ani tego, jak ona działa, możesz przeczytać Przewodnik dla początkujących po drukowaniu 3D.
W tym projekcie korpus robota pokazanego powyżej jest w całości wydrukowany w 3D. Możesz pobrać pliki STL stąd. Załaduj te pliki do oprogramowania do drukowania 3D, takiego jak Cura, i wydrukuj je bezpośrednio. Do wydrukowania wszystkich części użyłem mojej bardzo podstawowej drukarki. Drukarka to FABX v1 firmy 3ding, która jest dostępna w przystępnej cenie i ma objętość wydruku 10 cm sześciennych. Niska cena wiąże się z kompromisem w postaci niskiej rozdzielczości drukowania i braku karty SD lub funkcji wznawiania drukowania. Do drukowania plików STL używam oprogramowania o nazwie Cura. Ustawienia, których użyłem do drukowania materiałów są podane poniżej, możesz użyć tych samych lub zmienić je w zależności od drukarki.
Po wydrukowaniu wszystkich części wyczyść podpory (jeśli są), a następnie upewnij się, że otwory w nogawce i brzuchu są wystarczająco duże, aby zmieścić się na śrubę. Jeśli nie, użyj igły, aby nieco powiększyć otwór. Twoje wydrukowane w 3D części będą wyglądać jak coś poniżej.
Sprzęt i schematy:
Sprzęt dla tego sterowanego telefonem komórkowym dwunożnego robota Arduino jest naprawdę prosty. Pełne schematy pokazano na poniższym obrazku
Do wykonania powyższych połączeń użyłem tablicy Perf. Upewnij się, że twój obwód również zmieści się wewnątrz głowy robota. Gdy tablica Perf jest gotowa, powinna wyglądać jak poniżej.
Montaż robota:
Gdy sprzęt i części wydrukowane w 3D są gotowe, możemy złożyć robota. Przed zamocowaniem silników upewnij się, że umieściłeś je pod poniższymi kątami, aby program działał bezbłędnie.
Numer silnika |
Miejsce silnika |
Pozycja silnika |
1 |
Silnik lewego biodra |
110 |
2 |
Silnik prawego biodra |
100 |
4 |
Silnik prawej kostki |
90 |
5 |
Silnik prawego biodra |
80 |
Kąty te można ustawić za pomocą programu podanego na końcu samouczka. Po wykonaniu powyższych połączeń po prostu załaduj program do Arduino i wpisz w monitorze szeregowym (uwaga: prędkość transmisji to 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Twój monitor szeregowy powinien wyglądać mniej więcej tak po ustawieniu wszystkich silników na miejscu.
Po ustawieniu silników pod odpowiednimi kątami zamontuj je jak pokazano na powyższym rysunku.
Jeśli nie wiesz, jak złożyć silniki, obejrzyj film na końcu tego samouczka. Po zmontowaniu robota czas zaprogramować naszego tańczącego robota
Programowanie Arduino dla Biped Robot:
Programowanie robota BBB ( Bluetooth Biped Bob ) jest najbardziej interesującą i zabawną częścią tego samouczka. Jeśli jesteś bardzo dobry w programowaniu serwonapędów za pomocą Arduino, poleciłbym ci zrobić swój program. Bt, jeśli chcesz dowiedzieć się, jak używać serwomotorów w robotach, takich jak ta, ten program będzie bardzo pomocny. Możesz dowiedzieć się więcej o programowaniu arduino w naszej kategorii projektów arduino.
Kompletny program jest podany na końcu tego samouczka lub możesz pobrać cały kod stąd. Poniżej wyjaśnię segmenty tego samego. Program może sterować działaniami robotów poprzez monitor szeregowy lub Bluetooth. Możesz także wykonywać własne ruchy, sterując każdym silnikiem za pomocą monitora szeregowego.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Powyższe linie kodu używają, aby wspomnieć, który serwomotor jest podłączony do którego pinu Arduino. Tutaj w naszym przypadku serwa 1,2,4 i 5 są podłączone odpowiednio do pinów 3,5,9 i 10.
Bot_BT.begin (9600); // rozpocznij komunikację Bluetooth przy 9600 bodów Serial.begin (57600);
Jak wspomniano wcześniej, nasz robot kroczący może pracować na poleceniach Bluetooth, a także na poleceniach z monitora szeregowego. W związku z tym komunikacja szeregowa Bluetooth działa z szybkością transmisji 9600, a komunikacja szeregowa z szybkością transmisji 57600. Nazwa naszego obiektu Bluetooth to „Bot_BT”.
przełącznik (silnik) {przypadek 1: // Dla silnika jeden {Serial.println ("Uruchamiam silnik jeden"); if (num1
Przedstawiona powyżej obudowa przełącznika służy do indywidualnego sterowania serwomotorami. Pomoże to w wykonywaniu własnych kreatywnych ruchów za pomocą robota. Za pomocą tego segmentu kodu można po prostu określić numer silnika, od kąta do kąta, aby dany silnik przemieścił się w żądane miejsce.
Na przykład, jeśli chcemy przesunąć silnik numer 1, który jest silnikiem lewego biodra, z domyślnego położenia 110 stopni do 60 stopni. Możemy po prostu napisać „1,110,60” w szeregowym monitorze Arduino i nacisnąć enter. Przyda się to do wykonywania własnych złożonych ruchów za pomocą robota. Kiedy już eksperymentujesz ze wszystkimi od anioła do kąta, możesz wykonać własne ruchy i powtórzyć je, wykonując je jako funkcję.
if (Serial.available ()> 0) // Przeczytaj, co przychodzi przez Serial {gmotor = Serial.parseInt (); Serial.print ("wybrany numer->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("stopień"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("stopień"); flag = 1; }
Jeśli dane seryjne są dostępne, liczba przed pierwszym „,” jest uważana za gmotor, a następnie liczba przed drugim „,” jest uważana za gnum1, a liczba po drugim „,” jest uważana za gnum2.
if (Bot_BT.available ()) // Przeczytaj, co nadchodzi przez Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Przychodzące z BT:"); Serial.println (BluetoothData); }
Jeśli Bluetooth otrzyma jakieś informacje, otrzymane informacje są przechowywane w zmiennej „BluetoothData”. Ta zmienna jest następnie porównywana z predefiniowanymi wartościami w celu wykonania określonej akcji.
if (flag == 1) call (gmotor, gnum1, gnum2); // wywołanie odpowiedniego silnika w celu wykonania działania // Wykonaj funkcje zgodnie ze stanem wspólnym otrzymanym przez monitor szeregowy lub Bluetooth // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); if (gmotor == 12) move_left_front (); if (gmotor == 13) move_right_front (); if (BluetoothData == 49 - gmotor == 49) say_hi (); if (BluetoothData == 50 - gmotor == 50) walk1 (); if (BluetoothData == 51 - gmotor == 51) walk2 (); if (BluetoothData == 52 - gmotor == 52) dance1 (); if (BluetoothData == 53 - gmotor == 53) dance2 (); if (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
W tym miejscu wywoływane są funkcje na podstawie wartości otrzymanych z monitora szeregowego lub Bluetooth. Jak pokazano powyżej, zmienna gmotor będzie miała wartość monitora szeregowego, a BluetoothData - wartość z urządzenia Bluetooth. Liczby od 10,11,12 do 53,54 to wstępnie zdefiniowane liczby.
Na przykład, jeśli wpiszesz liczbę 49 w monitorze szeregowym. Zostanie wykonana funkcja say_hi (), w której robot przywita Cię pozdrowieniem.
Wszystkie funkcje są zdefiniowane na stronie „Bot_Functions”. Możesz go otworzyć i zobaczyć, co faktycznie dzieje się w każdej funkcji. Wszystkie te funkcje zostały stworzone przez eksperymentowanie od anioła do anioła każdego silnika przy użyciu obudowy przełącznika opisanej powyżej. Jeśli masz jakiekolwiek wątpliwości, możesz je zamieścić w sekcji komentarzy, a ja z przyjemnością Ci pomogę.
Aplikacja na Androida oparta na przetwarzaniu:
Aplikacja na Androida do sterowania robotem została zbudowana w trybie Processing Android. Jeśli chcesz wprowadzić zmiany w aplikacji, możesz pobrać pełny program do przetwarzania stąd.
Jeśli chcesz po prostu korzystać z aplikacji, możesz pobrać ją stąd jako plik APK i bezpośrednio zainstalować na telefonie komórkowym.
Uwaga: Twój moduł Bluetooth powinien mieć nazwę HC-06, w przeciwnym razie aplikacja nie będzie mogła połączyć się z Twoim modułem Bluetooth.
Po zainstalowaniu aplikacji możesz sparować moduł Bluetooth z Telefonem, a następnie uruchomić aplikację. Powinien wyglądać mniej więcej tak.
Jeśli chcesz uatrakcyjnić swoją aplikację lub połączyć się z innym urządzeniem niż Hc-06. Możesz użyć kodu przetwarzającego i wprowadzić w nim pewne zmiany, a następnie przesłać kod bezpośrednio do telefonu.
Działanie robota dwunożnego sterowanego przez Bluetooth:
Gdy Twój sprzęt, aplikacja na Androida i szkic Arduino są gotowe, czas na zabawę z naszym robotem. Możesz sterować robotem z aplikacji Bluetooth za pomocą przycisków w aplikacji lub bezpośrednio z monitora szeregowego, używając następujących poleceń, jak pokazano na poniższym obrazku.
Każde polecenie sprawi, że robot wykona pewne osobliwe zadania, a Ty możesz dodać więcej działań w oparciu o swoją kreatywność.
Robot może być również zasilany za pomocą adaptera 12V lub może być również zasilany baterią 9V. Akumulator można łatwo umieścić pod płytą Perf i można go również przykryć głowicą robota.
Pełną pracę tego robota sterowanego smartfonem można znaleźć na poniższym filmie.