VKontakte Facebooku Świergot Kanał RSS

Manipulator ramienia robota na Arduino. Ramię mechaniczne manipulatora robota. Szkic za pomocą ultradźwiękowego czujnika odległości

Posiada podświetlenie. W sumie robot działa na 6 serwomotorach. Do wykonania części mechanicznej użyto akrylu o grubości dwóch milimetrów. Aby wykonać statyw, podstawa została wzięta z kuli dyskotekowej i bezpośrednio w nią wbudowany został jeden silnik.

Robot działa na płytce Arduino. Jako źródło zasilania wykorzystywana jest jednostka komputerowa.

Materiały i narzędzia:
- 6 serwomotorów;
- akryl o grubości 2 mm (a także mały kawałek grubość 4 mm);
- statyw (do stworzenia podstawy);
- ultradźwiękowy czujnik odległości typu hc-sr04;
- Kontroler Arduino Uno;
- sterownik mocy (produkowany samodzielnie);
- zasilanie z komputera;
- komputer (potrzebny do programowania Arduino);
- przewody, narzędzia itp.



Proces produkcyjny:

Krok pierwszy. Montaż części mechanicznej robota
Część mechaniczna jest montowana bardzo prosto. Dwa kawałki akrylu należy połączyć za pomocą serwosilnika. Pozostałe dwa ogniwa są połączone w podobny sposób. Jeśli chodzi o uchwyt, najlepiej kupić go online. Wszystkie elementy mocowane są za pomocą śrub.

Długość pierwszej części wynosi około 19 cm, a drugiej około 17,5 cm. Łącznik przedni ma długość 5,5 cm. Jeśli chodzi o pozostałe elementy, ich rozmiary dobierane są według własnego uznania.





Kąt obrotu u podstawy ramię mechaniczne powinien wynosić 180 stopni, dlatego należy zamontować serwomotor od dołu. W naszym przypadku należy go zainstalować w kuli dyskotekowej. Robot jest już zainstalowany na serwomotorze.

Aby zainstalować czujnik ultradźwiękowy Będziesz potrzebował kawałka akrylu o grubości 2 cm.

Aby zainstalować chwytak, będziesz potrzebować kilku śrub i serwomotoru. Należy zdjąć wahacz z serwomotoru i skrócić go tak, aby pasował do chwytaka. Następnie możesz dokręcić dwie małe śruby. Po montażu siłownik należy obrócić maksymalnie w lewo, a szczęki chwytaka muszą być zamknięte.

Teraz serwomotor jest przymocowany do 4 śrub, ważne jest, aby upewnić się, że znajduje się w skrajnie lewym położeniu, a wargi są dociśnięte do siebie.
Teraz można podłączyć serwo do płytki i sprawdzić czy chwytak działa.








Krok drugi. Oświetlenie robota
Aby robot był bardziej interesujący, możesz go podświetlić. Odbywa się to za pomocą diod LED o różnych kolorach.


Krok trzeci. Podłączenie części elektronicznej
Głównym kontrolerem robota jest płytka Arduino. Jednostka komputerowa służy jako źródło zasilania, na jej wyjściach należy znaleźć napięcie 5 woltów. Powinno tam być jeśli zmierzysz multimetrem napięcie na przewodzie czerwonym i czarnym. Napięcie to potrzebne jest do zasilania serwomotorów i czujnika odległości. Żółte i czarne przewody bloku wytwarzają już 12 woltów, są one potrzebne do działania Arduino.

W przypadku serwomotorów należy wykonać pięć złączy. Podłączamy 5 V do dodatnich, a ujemne do masy. Czujnik odległości podłącza się w ten sam sposób.

Na płytce znajduje się również wskaźnik zasilania LED. Aby go podłączyć, stosuje się rezystor 100 omów między +5 V a masą.










Wyjścia z serwomotorów są podłączone do wyjść PWM w Arduino. Takie piny na płytce są oznaczone symbolem „~”. Jeśli chodzi o ultradźwiękowy czujnik odległości, można go podłączyć do pinów 6 i 7. Dioda LED jest podłączona do masy i pinu 13.

Teraz możesz rozpocząć programowanie. Przed podłączeniem przez USB należy upewnić się, że zasilanie jest całkowicie wyłączone. Podczas testowania programu należy także wyłączyć zasilanie robota. Jeżeli tego nie zrobimy sterownik otrzyma napięcie 5V z USB i 12V z zasilacza.

Na schemacie widać, że dodano potencjometry do sterowania serwomotorami. Nie są one niezbędnym elementem robota, ale bez nich proponowany kod nie będzie działać. Potencjometry podłączamy do pinów 0,1,2,3 i 4.

Na schemacie jest rezystor R1, można go zastąpić potencjometrem 100 kOhm. Umożliwi to ręczną regulację jasności. Jeśli chodzi o rezystory R2, ich wartość nominalna wynosi 118 omów.

Oto lista głównych komponentów, które zostały użyte:
- 7 diod LED;
- R2 - rezystor 118 omów;
- R1 - rezystor 100 kOhm;
- przełącznik;
- fotorezystor;
- tranzystor bc547.

Krok czwarty. Programowanie i pierwsze uruchomienie robota
Do sterowania robotem wykorzystano 5 potencjometrów. Całkiem możliwe jest zastąpienie takiego obwodu jednym potencjometrem i dwoma joystickami. Sposób podłączenia potencjometru pokazano w poprzednim kroku. Po zamontowaniu szkicu robota można przetestować.

Pierwsze testy robota wykazały, że zamontowane serwomotory typu futuba s3003 okazały się dla robota słabe. Można ich używać jedynie do obracania ręki lub chwytania. Zamiast tego autor zainstalował silniki mg995. Idealna opcja będą silniki takie jak mg946.

Wśród cech tego robota na platformie Arduino można zauważyć złożoność jego konstrukcji. Ramię robota składa się z wielu dźwigni, które pozwalają mu poruszać się we wszystkich osiach, chwytać i przenosić różne rzeczy za pomocą tylko 4 serwomotorów. Zebrawszy własnymi rękami Dzięki takiemu robotowi z pewnością będziesz mógł zaskoczyć swoich znajomych i bliskich swoimi możliwościami i przyjemnym wyglądem tego urządzenia! Pamiętaj, że do programowania zawsze możesz wykorzystać nasze środowisko graficzne RobotON Studio!

Jeśli masz jakieś pytania lub uwagi, jesteśmy zawsze w kontakcie! Twórz i publikuj swoje wyniki!

Osobliwości:

Aby złożyć ramię robota własnymi rękami, będziesz potrzebować sporo elementów. Główną część zajmują części wydrukowane w 3D, jest ich około 18 (nie ma potrzeby drukowania slajdu). Jeśli pobrałeś i wydrukowałeś wszystko, czego potrzebujesz, będziesz potrzebować śrub, nakrętek i elektroniki:

  • 5 śrub M4 20 mm, 1 x 40 mm i pasujące nakrętki z zabezpieczeniem przed przekręceniem
  • 6 śrub M3 10 mm, 1 x 20 mm i odpowiednie nakrętki
  • Układ z przewody łączące lub tarcza
  • Arduino Nano
  • 4 serwomotory SG 90

Po zmontowaniu obudowy WAŻNE jest zapewnienie jej swobodnego ruchu. Jeśli kluczowe komponenty Roboarm poruszają się z trudem, serwomotory mogą nie wytrzymać obciążenia. Montując elektronikę trzeba pamiętać, że lepiej podłączyć obwód do zasilania po dokładnym sprawdzeniu połączeń. Aby uniknąć uszkodzenia serwonapędów SG 90, nie ma potrzeby ręcznego obracania samego silnika, jeśli nie jest to konieczne. Jeśli chcesz opracować SG 90, musisz płynnie przesuwać wał silnika w różnych kierunkach.

Dane techniczne:
  • Proste programowanie ze względu na niewielką liczbę silników tego samego typu
  • Obecność martwych stref dla niektórych serwomechanizmów
  • Szerokie zastosowanie robota w życiu codziennym
  • Ciekawa praca inżynierska
  • Konieczność użycia drukarki 3D

Witaj Giktimes!

Projekt uArm od uFactory zebrał fundusze na Kickstarterze ponad dwa lata temu. Od początku mówili, że tak będzie otwarty projekt, ale zaraz po zakończeniu kampanii nie spieszyli się z publikacją kodu źródłowego. Chciałem po prostu wyciąć plexi według ich rysunków i tyle, ale ponieważ nie było materiałów źródłowych i nic nie wskazywało na to w dającej się przewidzieć przyszłości, zacząłem powtarzać projekt ze zdjęć.

Teraz moje ramię robota wygląda tak:

Pracując powoli w ciągu dwóch lat udało mi się zrobić cztery wersje i zdobyłem całkiem spore doświadczenie. Pod wycięciem znajdziesz opis, historię projektu oraz wszystkie pliki projektu.

Próby i błędy

Kiedy zaczynałem pracę nad rysunkami, chciałem nie tylko powtórzyć uArm, ale go ulepszyć. Wydawało mi się, że w moich warunkach całkiem możliwe jest obejście się bez łożysk. Nie podobało mi się również to, że elektronika obracała się wraz z całym manipulatorem i chciałem uprościć konstrukcję dolnej części zawiasu. Poza tym od razu zacząłem rysować go trochę mniejszego.

Mając te parametry wejściowe narysowałem pierwszą wersję. Niestety nie dysponuję zdjęciami tej wersji manipulatora (która została wykonana w r kolor żółty). Błędy w nim były po prostu epickie. Po pierwsze, montaż był prawie niemożliwy. Z reguły mechanika, którą narysowałem przed manipulatorem była dość prosta i nie musiałem myśleć o procesie montażu. Ale mimo to złożyłem go i próbowałem uruchomić, a moja ręka prawie się nie poruszyła! Wszystkie części obracały się wokół śrub i jeśli je dokręciłem, aby było mniej luzu, nie mogła się ruszyć. Gdy go poluzowałem, żeby mógł się poruszać, pojawiała się niesamowita gra. W rezultacie koncepcja nie przetrwała nawet trzech dni. I rozpoczął pracę nad drugą wersją manipulatora.

Czerwony był już całkiem odpowiedni do pracy. Złożył się normalnie i mógł się poruszać dzięki smarowaniu. Udało mi się przetestować na nim oprogramowanie, ale mimo to brak łożysk i duże straty na różnych ciągach sprawiły, że był bardzo słaby.

Potem na jakiś czas porzuciłem pracę nad projektem, ale wkrótce postanowiłem doprowadzić go do skutku. Zdecydowałem się zastosować mocniejsze i popularne serwa, zwiększyć rozmiar i dodać łożyska. Co więcej, stwierdziłam, że nie będę się starała robić wszystkiego idealnie na raz. Szkicowałam rysunki w pośpiechu, nie rysując pięknych połączeń, i zamówiłam wycięcie z przezroczystej pleksi. Korzystając z powstałego manipulatora, mogłem debugować proces montażu, zidentyfikować obszary wymagające dodatkowego wzmocnienia i dowiedzieć się, jak używać łożysk.

Po dobrej zabawie z przezroczystym manipulatorem zacząłem rysować ostateczną białą wersję. Tak więc teraz wszystkie mechanizmy są całkowicie debugowane, odpowiadają mi i jestem gotowy powiedzieć, że nie chcę zmieniać niczego więcej w tym projekcie:

Przygnębia mnie to, że nie mogłem wnieść niczego zasadniczo nowego do projektu uArm. Zanim zacząłem rysować ostateczną wersję, modele 3D były już dostępne w GrabCad. W rezultacie po prostu trochę uprościłem pazur, przygotowałem pliki w wygodnym formacie i użyłem bardzo prostych i standardowych komponentów.

Cechy manipulatora

Zanim pojawił się uArm, manipulatory stacjonarne tej klasy wyglądał dość smutno. Albo w ogóle nie miały elektroniki, albo miały jakieś sterowanie za pomocą rezystorów, albo miały własne, autorskie oprogramowanie. Po drugie, zazwyczaj nie posiadały one układu zawiasów równoległych, a sam chwyt w trakcie pracy zmieniał swoje położenie. Jeśli zbierzesz wszystkie zalety mojego manipulatora, otrzymasz dość długą listę:
  1. System prętów umożliwiający umieszczenie mocnych i ciężkich silników u podstawy manipulatora, a także utrzymanie chwytaka równolegle lub prostopadle do podstawy
  2. Prosty zestaw elementów, które łatwo kupić lub wyciąć z plexi
  3. Łożyska w prawie wszystkich elementach manipulatora
  4. Łatwy w montażu. Okazało się to naprawdę trudnym zadaniem. Szczególnie trudno było przemyśleć proces montażu podstawy
  5. Położenie chwytu można zmieniać o 90 stopni
  6. Otwarte źródło i dokumentacja. Wszystko przygotowane w przystępnych formatach. Podam linki do pobrania modeli 3D, plików do rozkroju, spisu materiałów, elektroniki i oprogramowania
  7. Kompatybilny z Arduino. Jest wielu przeciwników Arduino, ale uważam, że jest to szansa na poszerzenie grona odbiorców. Profesjonaliści bez problemu mogą napisać swoje oprogramowanie w języku C – to zwykły kontroler firmy Atmel!

Mechanika

Do montażu należy wyciąć elementy z plexi o grubości 5 mm:

Za wycięcie wszystkich tych części policzyli mi około 10 dolarów.

Podstawa osadzona jest na dużym łożysku:

Szczególnie trudno było przemyśleć bazę pod kątem procesu montażu, ale miałem na oku inżynierów z uArm. Rockery osadzone są na trzpieniu o średnicy 6mm. Warto zaznaczyć, że mój łokieć trzymany jest na uchwycie w kształcie litery U, natomiast uFactory na uchwycie w kształcie litery L. Trudno wyjaśnić, na czym polega różnica, ale myślę, że poszło mi lepiej.

Uchwyt montowany jest osobno. Może obracać się wokół własnej osi. Sam pazur osadzony jest bezpośrednio na wale silnika:

Na końcu artykułu podam link do super szczegółowej instrukcji montażu na zdjęciach. Możesz śmiało skręcić to wszystko w ciągu kilku godzin, jeśli masz wszystko, czego potrzebujesz pod ręką. Przygotowałem także model 3D w formacie darmowy program SketchUp. Można go pobrać, zagrać i zobaczyć, co i jak zostało zmontowane.

Elektronika

Aby ręka działała wystarczy podłączyć pięć serwomechanizmów do Arduino i zasilić je energią z dobrego źródła. uArm wykorzystuje pewnego rodzaju silniki sprzężenia zwrotnego. Do sterowania chwytakiem zainstalowałem trzy zwykłe silniki MG995 i dwa małe motoreduktory metalowe.

Tutaj moja narracja jest ściśle powiązana z wcześniejszymi projektami. Jakiś czas temu zacząłem uczyć programowania Arduino i nawet przygotowałem do tych celów własną płytkę kompatybilną z Arduino. Natomiast pewnego dnia miałem okazję tanio zrobić deski (o czym też pisałem). Ostatecznie wszystko skończyło się na tym, że do sterowania manipulatorem wykorzystałem własną płytkę kompatybilną z Arduino i specjalistyczną tarczę.

Ta tarcza jest w rzeczywistości bardzo prosta. Posiada cztery rezystory zmienne, dwa przyciski, pięć złącz serwo i złącze zasilania. Jest to bardzo wygodne z punktu widzenia debugowania. Możesz przesłać szkic testowy i nagrać jakieś makro do kontroli lub coś w tym rodzaju. Na końcu artykułu podam też link do pobrania pliku płytki, ale jest on przygotowany do produkcji z metalizowanymi otworami, więc do domowej produkcji jest mało przydatny.

Programowanie

Najciekawsze jest sterowanie manipulatorem z poziomu komputera. uArm posiada wygodną aplikację do sterowania manipulatorem oraz protokół pracy z nim. Komputer wysyła 11 bajtów do portu COM. Pierwszy to zawsze 0xFF, drugi to 0xAA, a część pozostałych to sygnały dla serw. Następnie dane te są normalizowane i wysyłane do silników w celu przetworzenia. Moje serwa są podłączone do wejść/wyjść cyfrowych 9-12, ale można to łatwo zmienić.

Program terminala uArm umożliwia zmianę pięciu parametrów podczas sterowania myszą. Gdy mysz porusza się po powierzchni, zmienia się położenie manipulatora w płaszczyźnie XY. Obracanie kołem zmienia wysokość. LMB/RMB – ściśnij/odkompresuj pazur. PPM + koło - obróć uchwyt. To naprawdę bardzo wygodne. Jeśli chcesz, możesz napisać dowolny program terminala, który będzie komunikował się z manipulatorem przy użyciu tego samego protokołu.

Nie będę tutaj podawać szkiców - możesz je pobrać na końcu artykułu.

Film z pracy

I na koniec filmik przedstawiający sam manipulator. Pokazuje, jak sterować myszą, rezystorami i nagranym programem.

Spinki do mankietów

Pliki do cięcia plexi, modele 3D, listę zakupów, rysunki płytek i oprogramowanie można pobrać na końcu mojej strony.

Widok część wewnętrzna dłonie humanoidalnego robota RKP-RH101-3D. Dłoń robota humanoidalnego jest zaciśnięta w 50%. (patrz ryc. 2).

W tym przypadku możliwe są złożone ruchy ręki humanoidalnego robota, ale programowanie staje się bardziej złożone, interesujące i ekscytujące. Jednocześnie na każdym z palców ręki humanoidalnego robota można zainstalować dodatkowe różne czujniki i czujniki kontrolujące różne procesy.

Tak ogólnie wygląda konstrukcja manipulatora RKP-RH101-3D. Jeśli chodzi o złożoność zadań, które może rozwiązać konkretny robot, wyposażony w różne manipulatory zastępujące jego ręce, w dużej mierze zależą one od złożoności i doskonałości urządzenia sterującego.
Powszechnie mówi się o trzech generacjach robotów: robotach przemysłowych, adaptacyjnych i sztucznej inteligencji. Ale niezależnie od tego, jakiego rodzaju robota zaprojektowano, nie może obejść się bez rąk manipulacyjnych do wykonywania różnych zadań. Łączniki manipulatora są ruchome względem siebie i mogą wykonywać ruchy obrotowe i translacyjne. Czasami zamiast po prostu chwycić przedmiot roboty przemysłowe ostatnie ogniwo manipulatora (jego ręka) to jakieś narzędzie robocze, na przykład wiertło, klucz do nakrętek, pistolet do malowania lub palnik spawalniczy. Roboty humanoidalne mogą mieć także na wyciągnięcie ręki różne dodatkowe miniaturowe urządzenia, na wyciągnięcie ręki swoich manipulatorów w kształcie dłoni, służące np. do wiercenia, grawerowania czy rysowania.

Ogólny wygląd humanoida robota bojowego na serwach z rękami RKP-RH101-3D (patrz rys. 3).

Tworzymy manipulator robotyczny wykorzystujący dalmierz i wdrażający podświetlenie.

Wytniemy podstawę z akrylu. Jako silniki wykorzystujemy serwonapędy.

Ogólny opis projektu manipulatora robotycznego

W projekcie wykorzystano 6 serwomotorów. W części mechanicznej zastosowano akryl o grubości 2 mm. Jako statyw sprawdziła się podstawa z kuli dyskotekowej (w środku zamontowany jest jeden z silników). Zastosowano także ultradźwiękowy czujnik odległości i diodę LED o średnicy 10 mm.

Do sterowania robotem wykorzystywana jest płytka zasilająca Arduino. Samo źródło zasilania jest zasilaczem komputera.

Projekt dostarcza kompleksowych wyjaśnień dotyczących rozwoju ramienia robotycznego. Odrębnie rozpatrywane są zagadnienia zasilania opracowanego projektu.

Główne elementy projektu manipulatora

Zacznijmy rozwój. Będziesz potrzebować:

  • 6 serwomotorów (użyłem 2 modele mg946, 2 mg995, 2 futuba s3003 (mg995/mg946 mają lepszą charakterystykę niż futuba s3003, ale te drugie są znacznie tańsze);
  • akryl o grubości 2 mm (i mały kawałek o grubości 4 mm);
  • ultradźwiękowy czujnik odległości hc-sr04;
  • Diody LED 10 mm (kolor - według własnego uznania);
  • statyw (używany jako podstawa);
  • aluminiowy uchwyt (kosztuje około 10-15 dolarów).

Aby kontrolować:

  • płytka Arduino Uno (w projekcie wykorzystano domowej roboty płytkę całkowicie podobną do Arduino);
  • tablica zasilająca (będziesz musiał to zrobić sam, wrócimy do tego problemu później, wymaga to szczególnej uwagi);
  • zasilacz (w tym przypadku używany jest zasilacz komputerowy);
  • komputer do programowania manipulatora (jeśli do programowania używasz Arduino, to Arduino IDE)

Oczywiście będziesz potrzebować kabli i kilku podstawowych narzędzi, takich jak śrubokręty i tym podobne. Teraz możemy przejść do projektowania.

Montaż mechaniczny

Zanim przystąpię do opracowywania części mechanicznej manipulatora warto zaznaczyć, że nie posiadam rysunków. Wszystkie węzły zostały wykonane „na kolanie”. Ale zasada jest bardzo prosta. Masz dwa ogniwa akrylowe, pomiędzy którymi musisz zainstalować serwomotory. I dwa pozostałe linki. Również do montażu silników. Cóż, sam chwyt. Najłatwiej kupić taki uchwyt w Internecie. Prawie wszystko jest instalowane za pomocą śrub.

Długość pierwszej części wynosi około 19 cm; drugi - około 17,5; Długość łącznika przedniego wynosi około 5,5 cm. Pozostałe wymiary dobierz zgodnie z wymiarami swojego projektu. Zasadniczo rozmiary pozostałych węzłów nie są tak ważne.

Ramię mechaniczne musi zapewniać kąt obrotu 180 stopni u podstawy. Musimy więc zainstalować serwomotor na dole. W tym przypadku jest on zainstalowany w tej samej kuli dyskotekowej. W Twoim przypadku może to być dowolne odpowiednie pudełko. Robot jest zamontowany na tym serwomotorze. Można, jak pokazano na rysunku, zamontować dodatkowy metalowy pierścień kołnierzowy. Można się bez tego obejść.

Do montażu czujnika ultradźwiękowego stosuje się akryl o grubości 2 mm. Tuż poniżej możesz zainstalować diodę LED.

Trudno dokładnie wyjaśnić, jak skonstruować taki manipulator. Wiele zależy od komponentów i części, które masz w magazynie lub kupujesz. Na przykład, jeśli wymiary serwomechanizmów są różne, akrylowe ogniwa twornika również ulegną zmianie. Jeśli wymiary się zmienią, kalibracja manipulatora również będzie inna.

Po zakończeniu opracowywania części mechanicznej manipulatora na pewno będziesz musiał przedłużyć kable serwomotoru. W tym celu w projekcie wykorzystano przewody z kabla internetowego. Aby to wszystko wyglądało, nie bądź leniwy i na wolnych końcach przedłużanych kabli zainstaluj przejściówki - żeńskie lub męskie, w zależności od wyjść Twojej płytki Arduino, nakładki lub źródła zasilania.

Po złożeniu części mechanicznej możemy przejść do „mózgu” naszego manipulatora.

Uchwyt manipulatora

Do montażu uchwytu potrzebny będzie serwomotor i kilka śrub.

Czyli co dokładnie trzeba zrobić.

Zdejmij wahacz z serwa i skróć go, aż będzie pasował do Twojego chwytu. Następnie dokręć dwie małe śruby.

Po zamontowaniu serwa obróć je maksymalnie w lewo i ściśnij szczęki chwytaka.

Teraz możesz zamontować serwo za pomocą 4 śrub. Jednocześnie upewnij się, że silnik znajduje się nadal w skrajnie lewym położeniu, a szczęki chwytaka są zamknięte.

Można do niego podłączyć serwonapęd Płyta Arduino i sprawdź funkcjonalność chwytaka.

Należy pamiętać, że w przypadku zbyt dokręcenia śrub/śrub mogą wystąpić problemy z pracą chwytaka.

Dodanie oświetlenia do wskaźnika

Możesz rozjaśnić swój projekt, dodając do niego oświetlenie. Wykorzystano do tego diody LED. Jest to łatwe do wykonania i wygląda bardzo efektownie w ciemności.

Miejsca do zainstalowania diod LED zależą od Twojej kreatywności i wyobraźni.

Schemat elektryczny

Do ręcznej regulacji jasności można użyć potencjometru 100 kOhm zamiast rezystora R1. Jako rezystancję R2 zastosowano rezystory 118 omów.

Lista głównych komponentów, które zostały użyte:

  • R1 - rezystor 100 kOhm
  • R2 - rezystor 118 omów
  • Tranzystor bc547
  • Fotorezystor
  • 7 diod LED
  • Przełącznik
  • Połączenie z płytką Arduino

Jako mikrokontroler wykorzystano płytkę Arduino. Jako źródło zasilania wykorzystano zasilacz z komputera osobistego. Podłączając multimetr do czerwonego i czarnego kabla, zobaczysz 5 woltów (które są wykorzystywane przez serwomotory i ultradźwiękowy czujnik odległości). Żółty i czarny dadzą 12 woltów (dla Arduino). Wykonujemy 5 złączy dla serwomotorów, równolegle podłączamy dodatnie do 5 V, a ujemne do masy. To samo z czujnikiem odległości.

Następnie podłącz pozostałe złącza (po jednym z każdego serwa i dwa z dalmierza) do lutowanej przez nas płytki i Arduino. Jednocześnie nie zapomnij poprawnie wskazać pinów, których użyłeś w programie w przyszłości.

Dodatkowo na płycie zasilania zainstalowano wskaźnik LED zasilania. Jest to łatwe do wdrożenia. Dodatkowo zastosowano rezystor 100 omów pomiędzy 5 V a masą.

Dioda LED 10 mm na robocie jest również podłączona do Arduino. Rezystor 100 omów przechodzi od styku 13 do dodatniego ramienia diody LED. Negatywny - do ziemi. Można to wyłączyć w programie.

W przypadku 6 serwomotorów stosuje się 6 złączy, ponieważ 2 serwomotory na dole korzystają z tego samego sygnału sterującego. Odpowiednie przewody są połączone i podłączone do jednego pinu.

Powtarzam, że jako źródło zasilania wykorzystywany jest zasilacz z komputera osobistego. Lub oczywiście możesz kupić oddzielny zasilacz. Biorąc jednak pod uwagę fakt, że mamy 6 dysków, z których każdy może pobierać około 2 A, tak mocny zasilacz nie będzie tani.

Należy pamiętać, że złącza serwomechanizmów są podłączone do wyjść PWM Arduino. W pobliżu każdego takiego pinu na płytce znajduje się symbol~. Do pinów 6, 7 można podłączyć ultradźwiękowy czujnik odległości. Do pinów 13 i masy można podłączyć diodę LED. To wszystkie szpilki, których potrzebujemy.

Teraz możemy przejść do programowania Arduino.

Przed podłączeniem płytki poprzez USB do komputera pamiętaj o wyłączeniu zasilania. Podczas testowania programu wyłącz także zasilanie ramienia robota. Jeśli zasilanie nie zostanie wyłączone, Arduino otrzyma napięcie 5 woltów z USB i 12 woltów z zasilacza. W związku z tym moc z USB zostanie przeniesiona do źródła zasilania i trochę się „opadnie”.

Ze schematu okablowania wynika, że ​​dodano potencjometry do sterowania serwami. Potencjometry są opcjonalne, ale powyższy kod nie będzie działał bez nich. Potencjometry można podłączyć do pinów 0,1,2,3 i 4.

Programowanie i pierwsze uruchomienie

Do sterowania służy 5 potencjometrów (można je całkowicie zastąpić 1 potencjometrem i dwoma joystickami). Schemat podłączenia potencjometrów pokazano w poprzedniej części. Szkic Arduino jest tutaj.

Poniżej znajduje się kilka filmów przedstawiających ramię robota w akcji. Mam nadzieję, że ci się spodoba.

Powyższy film pokazuje najnowsze modyfikacje uzbrojenia. Musiałem trochę zmienić projekt i wymienić kilka części. Okazało się, że serwa Futuba s3003 są dość słabe. Okazały się służyć jedynie do chwytania lub obracania dłoni. Więc zainstalowali mg995. Cóż, mg946 będzie ogólnie doskonałą opcją.

Program sterujący i objaśnienia do niego

// sterowanie napędami odbywa się za pomocą rezystorów zmiennych - potencjometrów.

int potpin = 0; // pin analogowy do podłączenia potencjometru

int wartość; // zmienna do odczytu danych z pinu analogowego

mojeserwo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

mojeserwo5.attach(11);

pinMode(led, WYJŚCIE);

( //serwo 1, pin analogowy 0

val = analogRead(potpin); // odczytuje wartość potencjometru (wartość od 0 do 1023)

// skaluje wynikową wartość do użytku z serwami (uzyskując wartość z zakresu od 0 do 180)

myservo1.write(val); // ustawia serwo w pozycji zgodnej z obliczoną wartością

opóźnienie(15); // czeka, aż serwomotor osiągnie określoną pozycję

val = analogRead(potpin1); // serwo 2 na pinie analogowym 1

wartość = mapa(wart, 0, 1023, 0, 179);

myservo2.write(val);

val = analogRead(potpin2); // serwo 3 na pinie analogowym 2

wartość = mapa(wart, 0, 1023, 0, 179);

myservo3.write(val);

val = analogRead(potpin3); // serwo 4 na pinie analogowym 3

wartość = mapa(wart, 0, 1023, 0, 179);

myservo4.write(val);

val = analogRead(potpin4); //serva 5 na pinie analogowym 4

wartość = mapa(wart, 0, 1023, 0, 179);

myservo5.write(val);

Szkic za pomocą ultradźwiękowego czujnika odległości

To prawdopodobnie jedna z najbardziej imponujących części projektu. Na manipulatorze zamontowany jest czujnik odległości, który reaguje na znajdujące się w pobliżu przeszkody.

Poniżej przedstawiono podstawowe objaśnienia kodu

#zdefiniuj pin wyzwalający 7

Poniższy fragment kodu:

Nadaliśmy nazwy wszystkim 5 sygnałom (dla 6 napędów) (może być dowolna)

Następny:

Serial.begin(9600);

tryb pin(trigPin, WYJŚCIE);

tryb pin(echoPin, WEJŚCIE);

pinMode(led, WYJŚCIE);

mojeserwo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

mojeserwo5.attach(11);

Mówimy płycie Arduino, do których pinów podłączone są diody LED, serwomotory i czujnik odległości. Tutaj nie ma potrzeby niczego zmieniać.

pusta pozycja1())(

digitalWrite(led, WYSOKI);

myservo2.writeMicrosekundy(1300);

myservo4.writeMicrosekundy(800);

mojeserwo5.writeMicrosekundy(1000);

Jest tu kilka rzeczy, które możesz zmienić. Ustawiłem pozycję i nazwałem ją pozycją 1. Będzie on wykorzystany w przyszłym programie. Jeśli chcesz zapewnić inny ruch, zmień wartości w nawiasach od 0 do 3000.

Po tym:

pusta pozycja2())(

digitalWrite (led, NISKI);

myservo2.writeMicrosekundy(1200);

myservo3.writeMicrosekundy(1300);

myservo4.writeMicrosekundy(1400);

myservo5.writeMicrosekundy(2200);

Podobnie jak w przypadku poprzedniego elementu, tylko w tym przypadku jest to pozycja 2. Stosując tę ​​samą zasadę, możesz dodać nowe pozycje ruchu.

długi czas trwania, odległość;

digitalWrite(trigPin, LOW);

opóźnienieMikrosekundy(2);

digitalWrite(trigPin, WYSOKI);

opóźnienieMikrosekundy(10);

digitalWrite(trigPin, LOW);

czas trwania = impulsIn(echoPin, WYSOKI);

odległość = (czas trwania/2) / 29,1;

Teraz główny kod programu zaczyna działać. Nie powinieneś tego zmieniać. Głównym zadaniem powyższych linii jest konfiguracja czujnika odległości.

Po tym:

jeśli (odległość<= 30) {

jeśli (odległość< 10) {

myservo5.writeMicrosekundy(2200); //otwórz chwytak

myservo5.writeMicrosekundy(1000); //zamknij chwytak

Możesz teraz dodawać nowe ruchy w oparciu o odległość zmierzoną przez czujnik ultradźwiękowy.

jeśli (odległość<=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

pozycja1(); //w zasadzie ramię będzie działać zgodnie z tym, co określisz w nawiasach ( )

else( // jeśli odległość jest większa niż 30 cm, przejdź do pozycji 2

position()2 // podobnie jak w poprzedniej linii

Możesz zmienić odległość w kodzie i zrobić, co chcesz.

Ostatnie linie kodu

if (odległość > 30 || odległość<= 0){

Serial.println("Poza zasięgiem"); //wyświetlenie na monitorze szeregowym komunikatu, że przekroczyliśmy określony zakres

Serial.print(odległość);

Serial.println("cm"); //odległość w centymetrach

opóźnienie (500); //opóźnienie 0,5 sekundy

Można tu oczywiście wszystko przeliczyć na milimetry, metry, zmienić wyświetlany komunikat itp. Można trochę pobawić się z opóźnieniem.

To wszystko. Ciesz się, ulepszaj własne manipulatory, dziel się pomysłami i wynikami!



2024 O komforcie w domu. Gazomierze. System ogrzewania. Zaopatrzenie w wodę. System wentylacji