Spisu treści:

Robotyczny dwunożny sterowany Arduino: 13 kroków (ze zdjęciami)
Robotyczny dwunożny sterowany Arduino: 13 kroków (ze zdjęciami)

Wideo: Robotyczny dwunożny sterowany Arduino: 13 kroków (ze zdjęciami)

Wideo: Robotyczny dwunożny sterowany Arduino: 13 kroków (ze zdjęciami)
Wideo: Robot kroczący test serw 2024, Listopad
Anonim
Image
Image
Robot dwunożny sterowany Arduino
Robot dwunożny sterowany Arduino
Robot dwunożny sterowany Arduino
Robot dwunożny sterowany Arduino

Projekty Fusion 360 »

Zawsze intrygowały mnie roboty, zwłaszcza takie, które próbują naśladować ludzkie działania. To zainteresowanie skłoniło mnie do zaprojektowania i opracowania robota dwunożnego, który mógłby imitować chodzenie i bieganie człowieka. W tej instrukcji pokażę Ci projekt i montaż robota dwunożnego.

Głównym celem podczas budowania tego projektu było uczynienie systemu tak solidnym, jak to tylko możliwe, tak aby podczas eksperymentowania z różnymi chodami i bieganiem nie musiałem stale martwić się o awarię sprzętu. To pozwoliło mi docisnąć sprzęt do granic możliwości. Drugim celem było sprawienie, aby dwunożny był stosunkowo tani przy użyciu łatwo dostępnych części hobbystycznych i drukowania 3D, pozostawiając miejsce na dalsze ulepszenia i rozbudowy. Te dwa cele połączone razem zapewniają solidną podstawę do przeprowadzania różnych eksperymentów, pozwalając rozwijać dwunożnego do bardziej specyficznych wymagań.

Kontynuuj tworzenie własnego robota dwunożnego kontrolowanego przez Arduino i oddaj głos w „Arduino Contest”, jeśli podobał Ci się projekt.

Krok 1: Proces projektowania

Proces projektowania
Proces projektowania
Proces projektowania
Proces projektowania
Proces projektowania
Proces projektowania

Humanoidalne nogi zostały zaprojektowane w darmowym oprogramowaniu do modelowania 3d firmy Autodesk Fusion 360. Zacząłem od zaimportowania serwonapędów do projektu i zbudowałem wokół nich nogi. Zaprojektowałem wsporniki do serwomotoru, które zapewniają drugi punkt obrotu diametralnie przeciwny do wału serwomotoru. Posiadanie podwójnych wałów na obu końcach silnika zapewnia stabilność konstrukcji i eliminuje wszelkie przekrzywienia, które mogą wystąpić, gdy nogi są wykonane, aby przejąć pewne obciążenie. Ogniwa zostały zaprojektowane tak, aby utrzymać łożysko, podczas gdy wsporniki wykorzystywały śrubę do wału. Po zamontowaniu ogniw na wałach za pomocą nakrętki łożysko zapewni gładki i solidny punkt obrotu po przeciwnej stronie wału serwomotoru.

Kolejnym celem podczas projektowania dwunożnego modelu było zachowanie jak najbardziej zwartego modelu, aby maksymalnie wykorzystać moment obrotowy zapewniany przez serwomotory. Wymiary ogniw zostały wykonane tak, aby osiągnąć duży zakres ruchu przy jednoczesnej minimalizacji całkowitej długości. Skrócenie ich spowodowałoby zderzenie wsporników, zmniejszając zakres ruchu, a zbyt długie powodowałoby niepotrzebny moment obrotowy na siłownikach. Na koniec zaprojektowałem korpus robota, na którym montuje się Arduino i inne elementy elektroniczne.

Uwaga: Części są zawarte w jednym z poniższych kroków.

Krok 2: Rola Arduino

Rola Arduino
Rola Arduino

W tym projekcie wykorzystano Arduino Uno. Arduino było odpowiedzialne za obliczenie ścieżek ruchu różnych testowanych chodów i poinstruowało siłowniki, aby poruszały się pod precyzyjnymi kątami z precyzyjną prędkością, aby uzyskać płynny ruch chodu. Arduino to świetny wybór do tworzenia projektów ze względu na swoją wszechstronność. Zapewnia szereg pinów IO, a także zapewnia interfejsy, takie jak szeregowy, I2C i SPI, do komunikacji z innymi mikrokontrolerami i czujnikami. Arduino zapewnia również doskonałą platformę do szybkiego prototypowania i testowania, a także daje programistom miejsce na ulepszenia i możliwości rozbudowy. W ramach tego projektu kolejne wersje będą obejmować jednostkę pomiaru bezwładnościowego do przetwarzania ruchu, takiego jak wykrywanie upadków i dynamiczne poruszanie się w nierównym terenie oraz czujnik pomiaru odległości w celu uniknięcia przeszkód.

W tym projekcie wykorzystano Arduino IDE. (Arduino udostępnia również internetowe IDE)

Uwaga: programy dla robota można pobrać w jednym z poniższych kroków.

Krok 3: Potrzebne materiały

Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały

Oto lista wszystkich komponentów i części wymaganych do stworzenia własnego robota Bipedal z napędem Arduino. Wszystkie części powinny być powszechnie dostępne i łatwe do znalezienia.

ELEKTRONIKA:

Arduino Uno x 1

Silnik serwo Towerpro MG995 x 6

Płyta perforowana (podobny rozmiar do Arduino)

Męski i żeński nagłówek (około 20 szt.)

Zworki (10 sztuk)

MPU6050 IMU (opcjonalnie)

Czujnik ultradźwiękowy (opcjonalnie)

SPRZĘT KOMPUTEROWY:

Łożysko do deskorolki (8x19x7mm)

Nakrętki i śruby M4

Filament do drukarki 3D (jeśli nie posiadasz drukarki 3D, powinna ona znajdować się w lokalnym miejscu pracy lub wydruki można wykonać online za dość tanio)

Bez Arduino i drukarki 3D całkowity koszt tego projektu to 20$.

Krok 4: Części drukowane 3D

Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D
Części drukowane w 3D

Części wymagane do tego projektu musiały być zaprojektowane na zamówienie, dlatego do ich wydrukowania użyto drukarki 3D. Wydruki zostały wykonane z wypełnieniem 40%, 2 obwodami, dyszą 0,4 mm i wysokością warstwy 0,1 mm z PLA, kolorem do wyboru. Poniżej znajdziesz pełną listę części i STL do wydrukowania własnej wersji.

Uwaga: Od tego momentu części będą się odwoływać za pomocą nazw z listy.

  • nożny uchwyt serwa x 1
  • lustro uchwytu na serwomechanizm stopy x 1
  • uchwyt na serwo kolanowe x 1
  • lustro uchwytu na serwo kolanowe x 1
  • nożny uchwyt serwa x 1
  • lustro uchwytu na serwomechanizm stopy x 1
  • ogniwo nośne x 2
  • link klaksonu serwa x 2
  • stopka x 2
  • most x 1
  • mocowanie elektroniki x 1
  • rozpórka elektroniki x 8 (opcjonalnie)
  • przestrzeń na serwomechanizm x 12 (opcjonalnie)

Łącznie bez przekładek jest 14 części. Całkowity czas drukowania to około 20 godzin.

Krok 5: Przygotowanie wsporników serwo

Przygotowanie wsporników serwo
Przygotowanie wsporników serwo
Przygotowanie wsporników serwo
Przygotowanie wsporników serwo
Przygotowanie wsporników serwo
Przygotowanie wsporników serwo

Po wydrukowaniu wszystkich części możesz zacząć od skonfigurowania serw i wsporników serw. Najpierw wsuń łożysko do uchwytu serwomechanizmu kolanowego. Pasowanie powinno być ciasne, ale radzę nieco przeszlifować wewnętrzną powierzchnię otworu zamiast dociskać łożysko, co może grozić uszkodzeniem części. Następnie przełóż śrubę M4 przez otwór i dokręć ją za pomocą nakrętki. Następnie chwyć łącznik nożny i przymocuj do niego okrągły serwomechanizm za pomocą dostarczonych śrub. Przymocuj łącznik stopy do uchwytu serwomechanizmu kolanowego za pomocą śrub, których użyjesz również do zamocowania serwomotoru. Upewnij się, że silnik jest ustawiony tak, aby wał znajdował się po tej samej stronie śruby, którą wcześniej przymocowałeś. Na koniec zabezpiecz serwo resztą śrub i nakrętek.

Zrób to samo z uchwytem serw biodrowego i uchwytem serwomechanizmu nożnego. Dzięki temu powinieneś mieć trzy serwosilniki i odpowiadające im wsporniki.

Uwaga: podaję instrukcję budowania jednej nogi, druga jest po prostu lustrzana.

Krok 6: Tworzenie elementów łączących

Tworzenie elementów łączących
Tworzenie elementów łączących
Tworzenie elementów łączących
Tworzenie elementów łączących
Tworzenie elementów łączących
Tworzenie elementów łączących

Po zmontowaniu wsporników zacznij tworzyć linki. Aby utworzyć ogniwo łożyska, ponownie lekko przeszlifuj wewnętrzną powierzchnię otworów na łożysko, a następnie wepchnij łożysko do otworu po obu stronach. Upewnij się, że wsuwasz łożysko, aż jedna strona znajdzie się w jednej płaszczyźnie. Aby zbudować łącznik klaksonu serwomechanizmu, chwyć dwa okrągłe klaksony serwomechanizmu i dostarczone śruby. Umieść rogi na wydruku 3D i wyrównaj otwory, następnie przykręć róg do wydruku 3D, dokręcając śrubę od strony wydruku 3D. Do tych śrub zalecam użycie drukowanej w 3D podkładki do serwomechanizmów. Po zbudowaniu ogniw możesz rozpocząć montaż nogi.

Krok 7: Montaż nóg

Montaż nóg
Montaż nóg
Montaż nóg
Montaż nóg
Montaż nóg
Montaż nóg
Montaż nóg
Montaż nóg

Po złożeniu ogniw i wsporników można je połączyć, aby zbudować nogę robota. Najpierw użyj łącznika serwomechanizmu, aby połączyć wspornik serwomechanizmu biodrowego i wspornik serwomechanizmu kolanowego. Uwaga: Nie przykręcaj jeszcze klaksonu do serwomechanizmu, ponieważ w następnym etapie jest etap konfiguracji i będzie to niewygodne, jeśli klakson zostanie przykręcony do serwonapędu.

Po przeciwnej stronie zamontuj ogniwo łożyska na wystających śrubach za pomocą nakrętek. Na koniec przymocuj wspornik serwomechanizmu nożnego, wkładając wystającą śrubę przez łożysko na uchwycie serwomechanizmu kolanowego. I przymocuj wał serwa do serwomechanizmu połączonego z uchwytem serwomechanizmu kolanowego po drugiej stronie. To może być trudne zadanie i polecam do tego drugą parę rąk.

Powtórz kroki dla drugiej nogi. Użyj zdjęć dołączonych do każdego kroku jako odniesienia.

Krok 8: Niestandardowa płytka drukowana i okablowanie

Niestandardowa płytka drukowana i okablowanie
Niestandardowa płytka drukowana i okablowanie
Niestandardowa płytka drukowana i okablowanie
Niestandardowa płytka drukowana i okablowanie
Niestandardowa płytka drukowana i okablowanie
Niestandardowa płytka drukowana i okablowanie

Jest to krok opcjonalny. Aby uporządkować okablowanie, zdecydowałem się wykonać niestandardową płytkę drukowaną za pomocą płytki perf i pinów nagłówka. PCB zawiera porty do bezpośredniego podłączenia przewodów serwosilnika. Ponadto zostawiłem też dodatkowe porty na wypadek, gdybym chciał rozbudować i dodać inne czujniki, takie jak bezwładnościowe jednostki pomiarowe lub ultradźwiękowe czujniki odległości. Zawiera również port dla zewnętrznego źródła zasilania wymaganego do zasilania serwosilników. Połączenie zworki służy do przełączania między USB a zewnętrznym zasilaniem Arduino. Zamontuj Arduino i PCB po obu stronach mocowania elektroniki za pomocą śrub i drukowanych w 3D przekładek.

Uwaga: Upewnij się, że odłączyłeś zworkę przed podłączeniem Arduino do komputera przez USB. Niewykonanie tego może spowodować uszkodzenie Arduino.

Jeśli zdecydujesz się nie używać płytki drukowanej i zamiast tego użyć płytki stykowej, oto połączenia serwa:

  • Lewe biodro >> szpilka 9
  • Prawe biodro >> szpilka 8
  • Lewe kolano >> szpilka 7
  • Prawe kolano >> szpilka 6
  • Lewa stopka >> trzpień 5
  • Prawa stopa >> trzpień 4

Jeśli zdecydujesz się na PCB, postępuj zgodnie z tą samą kolejnością, jak powyżej, używając portów na PCB od prawej do lewej, z portem IMU skierowanym do góry. I użyj zwykłych przewodów połączeniowych męskich do żeńskich, aby podłączyć płytkę drukowaną do Arduino za pomocą powyższych numerów pinów. Upewnij się, że podłączyłeś również pin uziemiający i stworzyłeś ten sam potencjał uziemienia i pin Vin, gdy zdecydujesz się uruchomić go bez zasilania USB.

Krok 9: Składanie ciała

Składanie Ciała
Składanie Ciała
Składanie Ciała
Składanie Ciała
Składanie Ciała
Składanie Ciała

Po złożeniu dwóch nóg i elektroniki połącz je ze sobą, aby zbudować korpus robota. Użyj elementu mostu, aby połączyć ze sobą dwie nogi. Użyj tych samych otworów montażowych w uchwycie serwomechanizmu biodrowego oraz nakrętek i śrub, które mocują serwosilnik. Na koniec podłącz uchwyt elektroniki do mostka. Wyrównaj otwory w uchwycie mostka i elektroniki i użyj nakrętek i śrub M4, aby wykonać połączenie.

Aby uzyskać pomoc, zapoznaj się z załączonymi obrazami. W ten sposób zakończyłeś budowę sprzętu robota. Następnie wskoczmy do oprogramowania i ożyw robota.

Krok 10: Wstępna konfiguracja

Konfiguracja wstępna
Konfiguracja wstępna
Konfiguracja wstępna
Konfiguracja wstępna
Konfiguracja wstępna
Konfiguracja wstępna

Podczas budowy tego projektu zauważyłem, że serwomotory i klaksony nie muszą być idealnie wyrównane, aby pozostać względnie równoległym. Dlatego „centralna pozycja” każdego serwomotoru musi być ręcznie regulowana, aby zrównać się z nogami. Aby to osiągnąć, usuń rogi serw z każdego serwomechanizmu i uruchom szkic Initial_setup.ino. Gdy silniki ustawią się w pozycji centralnej, ponownie przymocuj rogi tak, aby nogi były idealnie proste, a stopa idealnie równoległa do podłoża. Jeśli tak jest, masz szczęście. Jeśli nie, otwórz plik constants.h znajdujący się na sąsiedniej karcie i zmodyfikuj wartości przesunięcia serwomechanizmu (linie 1-6), aż nogi będą idealnie wyrównane, a stopa będzie płaska. Pobaw się wartościami, a dowiesz się, co jest konieczne w Twoim przypadku.

Po ustawieniu stałych zanotuj te wartości, ponieważ będą potrzebne później.

Aby uzyskać pomoc, zapoznaj się z ilustracjami.

Krok 11: Trochę o kinematyce

Trochę o kinematyce
Trochę o kinematyce
Trochę o kinematyce
Trochę o kinematyce
Trochę o kinematyce
Trochę o kinematyce

Aby dwunożny wykonywał przydatne czynności, takie jak bieganie i chodzenie, różne chody muszą być zaprogramowane w postaci ścieżek ruchu. Ścieżki ruchu to ścieżki, po których porusza się efektor końcowy (w tym przypadku stopy). Można to osiągnąć na dwa sposoby:

  1. Jednym podejściem byłoby podawanie kątów połączeń różnych silników w sposób brutalny. Takie podejście może być czasochłonne, żmudne, a także pełne błędów, ponieważ ocena jest czysto wizualna. Zamiast tego istnieje mądrzejszy sposób na osiągnięcie pożądanych rezultatów.
  2. Drugie podejście polega na podaniu współrzędnych efektora końcowego zamiast wszystkich kątów połączenia. To jest tak zwana kinematyka odwrotna. Wprowadzane przez użytkownika współrzędne i kąty połączeń dostosowują się, aby ustawić efektor końcowy na określonych współrzędnych. Tę metodę można uznać za czarną skrzynkę, która przyjmuje jako dane wejściowe współrzędne i wyprowadza kąty połączenia. Dla tych, którzy są zainteresowani tym, jak powstały równania trygonometryczne tej czarnej skrzynki, mogą spojrzeć na powyższy diagram. Dla tych, którzy nie są zainteresowani, równania są już zaprogramowane i mogą być używane za pomocą funkcji pos, która przyjmuje jako dane wejściowe x, z i wyprowadza trzy kąty odpowiadające silnikom.

Program zawierający te funkcje można znaleźć w następnym kroku.

Krok 12: Programowanie Arduino

Programowanie Arduino
Programowanie Arduino
Programowanie Arduino
Programowanie Arduino

Przed programowaniem Arduino należy dokonać drobnych modyfikacji w pliku. Pamiętasz stałe, o które prosiłem cię o zdjęcie notatki? Zmodyfikuj te same stałe do wartości ustawionych w pliku constants.h.

Uwaga: Jeśli korzystałeś z projektów przedstawionych w tej instrukcji, nie masz nic do zmiany. W przypadku, gdy niektórzy z Was stworzyli własne projekty, będziecie musieli zmienić kilka dodatkowych wartości wraz z przesunięciami. Stała l1 mierzy odległość między osią biodra a kolanem. Stała l2 mierzy odległość między osią kolana a osią kostki. Więc jeśli zaprojektowałeś swój własny model, zmierz te długości i zmodyfikuj stałe. Ostatnie dwie stałe są używane do chodów. Stała stepClearance mierzy, jak wysoko podniesie się stopa podczas wychodzenia do przodu po kroku, a stała stepHeight mierzy wysokość od podłoża do bioder podczas wykonywania kroków.

Gdy wszystkie stałe zostaną zmodyfikowane zgodnie z potrzebami, możesz wgrać główny program. Główny program po prostu inicjalizuje robota do pozycji chodu i zaczyna robić kroki do przodu. Funkcje można modyfikować w zależności od potrzeb, aby zbadać różne chody, prędkości i długości kroków, aby zobaczyć, co działa najlepiej.

Krok 13: Wyniki końcowe: czas na eksperymenty

Wyniki końcowe: czas na eksperymenty
Wyniki końcowe: czas na eksperymenty
Wyniki końcowe: czas na eksperymenty
Wyniki końcowe: czas na eksperymenty
Wyniki końcowe: czas na eksperymenty
Wyniki końcowe: czas na eksperymenty

Dwunożny może stawiać kroki o długości od 10 do 2 cm bez przewracania się. Prędkość również można zmieniać, zachowując równowagę chodu. Ten dwunożny w połączeniu z mocą Arduino zapewnia solidną platformę do eksperymentowania z różnymi innymi chodami i innymi celami, takimi jak skakanie lub balansowanie podczas kopania piłki. Polecam spróbować zmienić ścieżki ruchu nóg, aby stworzyć własne chody i odkryć, jak różne chody wpływają na wydajność robota. Czujniki, takie jak IMU i czujnik odległości, można dodać do systemu, aby zwiększyć jego funkcjonalność, a czujniki siły można dodać do nóg, aby eksperymentować z dynamiczną lokomocją na nierównych powierzchniach.

Mam nadzieję, że podobał ci się ten Instructable i jest wystarczającą inspiracją do zbudowania własnego. Jeśli podobał Ci się projekt, wesprzyj go, odrzucając głos w „Arduino Contest”.

Miłego tworzenia!

Konkurs Arduino 2020
Konkurs Arduino 2020
Konkurs Arduino 2020
Konkurs Arduino 2020

I nagroda w konkursie Arduino 2020

Zalecana: