Spisu treści:

Bioinspired Robotic Snake: 16 kroków (ze zdjęciami)
Bioinspired Robotic Snake: 16 kroków (ze zdjęciami)

Wideo: Bioinspired Robotic Snake: 16 kroków (ze zdjęciami)

Wideo: Bioinspired Robotic Snake: 16 kroków (ze zdjęciami)
Wideo: Carnegie Mellon Modular Snake Demo | Engadget Expand 2013 2024, Lipiec
Anonim
Image
Image

Zainspirował mnie do rozpoczęcia tego projektu po obejrzeniu filmów badawczych zarówno wspinających się po drzewach robotycznych węży, jak i robotycznych węgorzy. To moja pierwsza próba budowania robotów za pomocą lokomocji serpentynowej, ale nie będzie to ostatnia! Subskrybuj na YouTube, jeśli chcesz zobaczyć przyszłe zmiany.

Poniżej przedstawiam budowę 2 różnych węży wraz z plikami do druku 3D oraz dyskusję na temat kodu i algorytmów do uzyskania ruchu wężopodobnego. Jeśli chcesz kontynuować naukę, po przeczytaniu tej instrukcji sugeruję przeczytanie linków w sekcji referencji na dole strony.

Ta instrukcja jest technicznie 2 w 1, ponieważ wyjaśniam, jak zrobić 2 różne wersje węża robota. Jeśli interesuje Cię tylko zbudowanie jednego z węży, zignoruj instrukcje dla drugiego węża. Te 2 różne węże będą odtąd określane zamiennie następującymi wyrażeniami:

  1. Wąż jednoosiowy, wąż 1D lub żółty i czarny wąż
  2. Wąż dwuosiowy, wąż 2D lub biały wąż

Oczywiście możesz wydrukować węże w dowolnym kolorowym żarniku. Jedyna różnica między tymi dwoma wężami polega na tym, że w wężu 2D każdy silnik jest obrócony o 90 stopni w stosunku do poprzedniego, podczas gdy w wężu 1D wszystkie silniki są ustawione w jednej osi.

Ostatnia przedmowa jest taka, że podczas gdy każdy z moich węży ma tylko 10 serwomechanizmów, możliwe jest wykonanie węży z mniej lub bardziej serwomechanizmami. Jedną rzeczą do rozważenia jest to, że przy mniejszej liczbie serw osiągniesz mniej udany ruch, a przy większej liczbie serw prawdopodobnie odniesiesz większy sukces z ruchem serpentynowym, ale będziesz musiał wziąć pod uwagę koszt, pobór prądu (patrz dalsze uwagi) i liczbę kołków dostępny na Arduino. Możesz zmienić długość węża, ale pamiętaj, że będziesz musiał również zmienić kod, aby uwzględnić tę zmianę.

Krok 1: Komponenty

To jest lista części dla jednego węża, jeśli chcesz zrobić oba węże, musisz podwoić objętość komponentów.

  • 10 serw MG996R*
  • Włókno do drukowania 3D 1,75 mm
  • 10 łożysk kulkowych, numer części 608 (uratowałem moją z zewnętrznej obręczy fidget spinners Jitterspin)
  • 20 małych łożysk kulkowych, numer części r188, do kół** (uratowałem moją z wewnętrznej części błystek Jitterspin fidget)
  • 40 śrub z łbem krzyżakowym 6-32 x 1/2" (lub podobnych)
  • 8 dłuższych śrub (nie mam numeru części, ale mają taką samą średnicę jak śruby powyżej)
  • Co najmniej 20 kawałków 4-calowych zamków błyskawicznych (od Ciebie zależy, ile chcesz użyć)
  • Po 5m czerwonego i czarnego przewodu o grubości 20 lub grubszego***
  • Standardowy przewód o grubości 22 mm
  • 30 męskich pinów nagłówka (podzielonych na 10 partii 3)
  • Arduino Nano
  • Części drukowane w 3D (patrz następna sekcja)
  • Jakaś forma zasilania (więcej informacji w dziale: "Zasilanie węża"), osobiście użyłem zmodyfikowanego zasilacza ATX
  • Kondensator elektrolityczny 1000uF 25V
  • Rurka termokurczliwa o różnych rozmiarach, lut, klej i inne różne narzędzia

*możesz użyć innych typów, ale będziesz musiał przeprojektować pliki 3D, aby pasowały do twoich serw. Również jeśli spróbujesz użyć mniejszych serwomechanizmów, takich jak sg90, może się okazać, że nie są one wystarczająco mocne (nie testowałem tego i eksperymentowanie będzie należało do Ciebie).

**nie musisz używać małych łożysk kulkowych do kółek, po prostu dużo leżałem. Alternatywnie możesz użyć kół LEGO lub innych kółek do zabawy.

***Przewód ten może przepływać do 10 amperów, jest zbyt cienki i prąd go stopi. Zobacz tę stronę, aby uzyskać więcej informacji.

Krok 2: Komponenty do druku 3D

Zgromadzenie Węży
Zgromadzenie Węży

Jeśli tworzysz węża 1D, wydrukuj te kawałki.

Jeśli tworzysz węża 2D, wydrukuj te kawałki.

Ważna uwaga: waga może być nieprawidłowa! Projektuję swoje komponenty w Fusion 360 (w jednostkach mm), wyeksportowałem projekt jako plik.stl do oprogramowania MakerBot, a następnie wydrukowałem go na drukarce Qidi Tech (klonowana wersja MakerBot Replicator 2X). Gdzieś w tym przepływie pracy jest błąd i wszystkie moje wydruki wychodzą za małe. Nie udało mi się zidentyfikować lokalizacji błędu, ale mam tymczasową poprawkę skalowania każdego wydruku do rozmiaru 106% w oprogramowaniu MakerBot, to rozwiązuje problem.

Biorąc to pod uwagę, uważaj, że jeśli wydrukujesz powyższe pliki, mogą one być niewłaściwie przeskalowane. Proponuję wydrukować tylko jedną sztukę i sprawdzić, czy pasuje do twojego serwomechanizmu MG996R przed wydrukowaniem ich wszystkich.

Jeśli wydrukujesz któryś z plików, daj mi znać, jaki jest wynik: czy wydruk jest za mały, w sam raz, za duży i o ile procent. Pracując razem jako społeczność, możemy rozwiązywać problemy z lokalizacją błędu za pomocą różnych drukarek 3D i fragmentatorów.stl. Po rozwiązaniu problemu zaktualizuję tę sekcję i powyższe linki.

Krok 3: Montaż Węży

Zgromadzenie Węży
Zgromadzenie Węży
Zgromadzenie Węży
Zgromadzenie Węży
Zgromadzenie Węży
Zgromadzenie Węży

Proces montażu jest w większości taki sam dla obu wersji węża. Jedyna różnica polega na tym, że w wężu 2D każdy silnik jest obrócony o 90 stopni w stosunku do poprzedniego, podczas gdy w wężu 1D wszystkie silniki są ustawione w jednej osi.

Zacznij od odkręcenia serwomechanizmu, zachowaj śruby i usuń górne i dolne elementy czarnej plastikowej ramy i uważaj, aby nie zgubić żadnego z kół zębatych! Wsuń serwo w wydrukowaną w 3D ramę, zorientowaną jak na powyższych zdjęciach. Wymień górną część obudowy serwomechanizmu i przykręć ją czterema śrubami 6-32 1/2 . Zachowaj dolną część ramy serwomechanizmu (na wypadek, gdybyś chciał użyć jej ponownie w późniejszych projektach) i zastąp ją 3D obudowa z nadrukiem, jedyną różnicą jest dodatkowe pokrętło do przesuwania się łożyska kulkowego. Skręć serwo z powrotem, powtórz 10 razy.

WAŻNE: Przed kontynuowaniem należy wgrać kod do Arduino i przesunąć każde serwo pod kątem 90 stopni. Niezastosowanie się do tego może spowodować uszkodzenie jednego lub więcej serwomechanizmów i/lub ramek drukowanych w 3D. Jeśli nie masz pewności, jak przesunąć serwo pod kątem 90 stopni, zobacz tę stronę. Zasadniczo podłącz czerwony przewód serwomechanizmu do 5 V na Arduino, brązowy przewód do GND, a żółty przewód do cyfrowego pinu 9, a następnie prześlij kod w łączu.

Teraz, gdy każdy serwo znajduje się pod kątem 90 stopni, kontynuuj:

Połącz 10 segmentów, wkładając wydrukowane w 3D pokrętło z jednej obudowy serwomechanizmu do otworu drugiego segmentu, a następnie z niewielką siłą wepchnij oś serwomechanizmu do jej otworu (patrz zdjęcia powyżej i wideo dla jasności). Jeśli tworzysz węża 1D, wszystkie segmenty powinny być wyrównane, jeśli robisz węża 2D, każdy segment powinien być obrócony o 90 stopni do poprzedniego segmentu. Zwróć uwagę, że ogon i rama głowy są tylko o połowę krótsze od pozostałych segmentów, połącz je, ale nie komentuj elementów w kształcie piramidy, dopóki nie zakończymy okablowania.

Zamocuj ramię serwa w kształcie litery X i wkręć je na miejsce. Wsuń łożysko kulkowe na wydrukowane w 3D pokrętło, będzie to wymagało delikatnego ściśnięcia 2 półokrągłych słupków razem. W zależności od marki używanego filamentu i gęstości wypełnienia, słupki mogą być zbyt kruche i łamliwe, nie sądzę, aby tak było, ale nie używaj nadmiernej siły. Osobiście użyłem filamentu PLA z 10% wypełnieniem. Gdy łożysko kulkowe jest założone, powinno pozostać zablokowane przez występy na pokrętle.

Krok 4: Obwód

Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie

Obwód jest taki sam dla obu robotycznych węży. Podczas procesu okablowania upewnij się, że jest wystarczająco dużo miejsca na okablowanie, aby każdy segment mógł się całkowicie obrócić, szczególnie w wężu 2D.

Powyżej znajduje się schemat obwodu dla okablowania z tylko 2 serwomechanizmami. Próbowałem wykonać rysunek obwodu z 10 serwomechanizmami, ale zrobiło się to zbyt przepełnione. Jedyną różnicą między tym obrazem a prawdziwym życiem jest to, że musisz połączyć 8 kolejnych serw równolegle i podłączyć przewody sygnałowe PWM do pinów na Arduino Nano.

Podczas okablowania linii energetycznych użyłem pojedynczego kawałka przewodu o grubości 18 (wystarczająco grubego, aby wytrzymać 10 amperów) jako głównej linii 5 V biegnącej wzdłuż węża. Używając narzędzia do ściągania izolacji, usunąłem mały odcinek izolatora w 10 regularnych odstępach i przylutowałem krótki kawałek drutu z każdego z tych odstępów grupę 3 męskich kołków rozgałęźnych. Powtórz to po raz drugi dla czarnego przewodu GND o rozmiarze 18 i drugiego męskiego kołka rozgałęźnego. Na koniec przylutuj dłuższy przewód do trzeciego męskiego pinu głowicy, ten pin przeniesie sygnał PWM do serwomechanizmu z Arduino Nano w główce węża (przewód musi być wystarczająco długi, aby dosięgnąć, nawet gdy segmenty się zginają). Zamocuj rurkę termokurczliwą zgodnie z wymaganiami. Podłącz 3 męskie styki nagłówka z 3 żeńskimi szpilkami na przewodach serwomechanizmu. Powtórz 10 razy dla każdego z 10 serwomechanizmów. Ostatecznie osiąga się to poprzez równoległe okablowanie serw i prowadzenie przewodów sygnałowych PWM do Nano. Powodem, dla którego męskie/żeńskie styki nagłówka były takie, że można łatwo rozbierać segmenty i wymieniać serwa, jeśli się zepsują, bez rozlutowywania wszystkiego.

Przylutuj przewody GND i 5V do płytki perforowanej 3x7 w ogonie z kondensatorem i zaciskami śrubowymi. Zadaniem kondensatora jest usunięcie wszelkich skoków poboru prądu powstałych podczas uruchamiania serw, które mogą zresetować Arduino Nano (jeśli nie masz kondensatora, prawdopodobnie możesz się bez niego obejść, ale lepiej być bezpiecznym). Pamiętaj, że długi bolec kondensatorów elektrolitycznych należy podłączyć do linii 5V, a krótszy bolec do linii GND. Przylutuj przewód GND do styku GND Nano, a przewód 5 V do styku 5 V. Zwróć uwagę, że jeśli używasz innego napięcia (patrz następna sekcja), powiedzmy baterię Lipo z 7,4 V, a następnie podłącz czerwony przewód do pinu Vin, a NIE pinu 5 V, co spowoduje zniszczenie pinu.

Przylutuj 10 przewodów sygnałowych PWM do pinów na Arduino Nano. Mój okablowałem w następującej kolejności, możesz wybrać inny sposób, ale pamiętaj, że będziesz musiał zmienić wiersze servo.attach() w kodzie. Jeśli nie masz pewności, o czym mówię, po prostu podłącz go w taki sam sposób, jak ja, a nie będziesz mieć problemów. Aby od serwomechanizmu na ogonie węża do głowy węża, podłączyłem oba moje węże w następującej kolejności. Podłączenie pinów sygnałowych do: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Użyj zipties, aby wyczyścić okablowanie. Przed kontynuowaniem sprawdź, czy wszystkie segmenty mogą się poruszać z wystarczającą ilością miejsca, aby przewody mogły się poruszać bez ich rozciągania. Teraz, gdy okablowanie jest gotowe, możemy przykręcić czapki w kształcie piramidy na głowie i ogonie. Zwróć uwagę, że ogon ma otwór na linkę, a głowa ma otwór na kabel do programowania Arduino.

Krok 5: Zasilanie węża

Zasilanie węża
Zasilanie węża
Zasilanie węża
Zasilanie węża
Zasilanie węża
Zasilanie węża

Ponieważ serwa są połączone równolegle, wszystkie otrzymują takie samo napięcie, ale prąd należy zsumować. Patrząc na arkusz danych dla serw MG996r, mogą one pobierać do 900mA każdy podczas pracy (zakładając, że nie przeciągają się). Zatem całkowity pobór prądu, jeśli wszystkie 10 serw porusza się w tym samym czasie, wynosi 0,9A*10=9A. W związku z tym normalny adapter do gniazdka ściennego 5V, 2A nie będzie działał. Postanowiłem zmodyfikować zasilacz ATX, zdolny do 5V przy 20A. Nie zamierzam wyjaśniać, jak to zrobić, ponieważ było to już dużo omawiane w Instructables i YouTube. Szybkie wyszukiwanie w Internecie pokaże, jak zmodyfikować jeden z tych zasilaczy.

Zakładając, że zmodyfikowałeś zasilacz, jest to po prostu przypadek podłączenia długiej linki między zasilaczem a zaciskami śrubowymi na wężyku.

Inną opcją jest użycie wbudowanego akumulatora lipo. Nie próbowałem tego, więc od Ciebie zależy zaprojektowanie uchwytu do akumulatorów i ich okablowanie. Pamiętaj o napięciach roboczych, poborze prądu serw i Arduino (nie lutuj niczego innego niż 5 V do pin 5v na Arduino, przejdź do pinu Vin, jeśli masz wyższe napięcie).

Krok 6: Sprawdź, czy wszystko działa

Zanim przejdziemy dalej, przetestujmy, że wszystko działa. Prześlij ten kod. Twój wąż powinien poruszać każdym serwo indywidualnie w zakresie 0-180, a następnie zakończyć układaniem w linii prostej. Jeśli tak nie jest, coś jest nie tak, najprawdopodobniej okablowanie jest nieprawidłowe lub serwa nie były początkowo wyśrodkowane pod kątem 90 stopni, jak wspomniano w sekcji „Montaż węży”.

Krok 7: Kod

Obecnie nie ma pilota do węża, cały ruch jest zaprogramowany i możesz wybrać, co chcesz. Opracuję pilota w wersji 2, ale jeśli chcesz nim sterować zdalnie, sugerowałbym zapoznanie się z innymi samouczkami na temat Instructables i dostosowanie węża do kompatybilności z bluetooth.

Jeśli tworzysz węża 1D, prześlij ten kod.

Jeśli tworzysz węża 2D, prześlij ten kod.

Zachęcam do zabawy z kodem, wprowadzania własnych zmian i tworzenia nowych algorytmów. Przeczytaj kilka następnych sekcji, aby uzyskać szczegółowe wyjaśnienie każdego rodzaju lokomocji i sposobu działania kodu.

Krok 8: Wagi Vs Koła

Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła
Wagi Vs Koła

Jednym z głównych sposobów poruszania się węży do przodu jest kształt ich łusek. Wagi pozwalają na łatwiejszy ruch do przodu. Aby uzyskać więcej informacji, obejrzyj ten film od 3:04, aby zobaczyć, jak łuski pomagają wężowi poruszać się do przodu. Patrząc na 3:14 na tym samym filmie, widać efekt, gdy węże są w rękawie, usuwając tarcie łusek. Jak pokazano na moim filmie na YouTube, gdy robotyczny wąż 1D próbuje pełzać po trawie bez łusek, nie porusza się ani do przodu, ani do tyłu, ponieważ siły sumują się do zera netto. W związku z tym musimy dodać trochę sztucznych łusek do podbrzusza robota.

Badania nad odtwarzaniem lokomocji za pomocą wagi zostały przeprowadzone na Uniwersytecie Harvarda i zademonstrowane w tym filmie. Nie byłem w stanie wymyślić podobnej metody przesuwania wagi w górę i w dół na moim robocie i zamiast tego zdecydowałem się na przymocowanie pasywnych wydrukowanych łusek 3D do podbrzusza.

Niestety okazało się to nieskuteczne (zobacz w moim filmie na YouTube o 3:38), ponieważ łuski wciąż ślizgały się po powierzchni dywanu zamiast zaczepiać o włókna i zwiększać tarcie.

Jeśli chcesz poeksperymentować z wykonanymi przeze mnie skalami, możesz wydrukować pliki 3D z mojego GitHuba. Jeśli uda Ci się stworzyć własny, daj mi znać w komentarzach poniżej!

Stosując inne podejście, spróbowałem użyć kółek wykonanych z łożysk kulkowych r188 z rurkami termokurczliwymi na zewnątrz jako „opony”. Możesz wydrukować plastikowe osie kół w 3D z plików.stl na moim GitHubie. Chociaż koła nie są biologicznie dokładne, są analogiczne do wag, ponieważ obrót do przodu jest łatwy, ale ruch z boku na bok jest znacznie trudniejszy. Możesz zobaczyć udany wynik kół w moim filmie na YouTube.

Krok 9: Ruch ślizgowy (jednoosiowy wąż)

I nagroda w konkursie Make it Move

Zalecana: