Spisu treści:
- Krok 1: Teoria za projektem
- Krok 2: Projektowanie PCB
- Krok 3: Tworzenie PCB
- Krok 4: Projektowanie ramienia
- Krok 5: Drukowanie części
- Krok 6: Złóż wszystko razem
- Krok 7: Programowanie Arduino
- Krok 8: Programowanie w Pythonie
- Krok 9: Lista części
- Krok 10: Końcowe myśli
Wideo: Ramię robota kontrolowane przez Arduino i komputer: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Ramiona robotów znajdują szerokie zastosowanie w przemyśle. Niezależnie od tego, czy chodzi o operacje montażowe, spawanie lub nawet jeden służy do dokowania na ISS (Międzynarodowej Stacji Kosmicznej), pomagają ludziom w pracy lub całkowicie zastępują człowieka. Ramię, które zbudowałem, jest mniejszą reprezentacją ramienia robota, które ma służyć do przemieszczania obiektów. Jest kontrolowany przez arduino pro mini, który ma już wbudowaną bibliotekę do sterowania serwami. Serwa są sterowane przez PWM (Pulse Width Modulation), co nie jest trudne do zaprogramowania, ale ta biblioteka ułatwia. Użytkownik może sterować tymi serwomechanizmami za pomocą potencjometrów, które mają działać jako dzielniki napięcia lub z programu na PC, który wykorzystuje 4 suwaki do sterowania serwomotorami.
Do tego projektu musiałem zaprojektować własną płytkę drukowaną i wykonać ją, stworzyć modele 3D ramienia i napisać kod, który to wszystko kontroluje. Ponadto zakodowałem dodatkowy program w pythonie, który wysyła sygnały do arduino, który potrafi zdekodować ten sygnał i przesunąć serwa do pozycji ustawionej przez użytkownika.
Krok 1: Teoria za projektem
Arduino jest świetny pod tym względem, że oferuje darmową bibliotekę do pracy. Do tego projektu wykorzystałem bibliotekę Servo.h, która znacznie ułatwia sterowanie serwami.
Silnik servo jest sterowany przez PWM -Pulse Width Modulation - co oznacza, że aby sterować serwomechanizmem należy wykonać krótkie impulsy napięciowe. Serwo może dekodować długość tego sygnału i obracać się do zadanej pozycji. I tu właśnie wykorzystałem wspomnianą bibliotekę. Nie musiałem samodzielnie obliczać długości sygnału, ale skorzystałem z funkcji biblioteki, do której po prostu przekazuję parametr w stopniach i daje sygnał.
Do sterowania serwami wykorzystałem potencjometry pełniące rolę dzielników napięcia. Płyty Arduino mają kilka przetworników analogowo-cyfrowych, których użyłem w projekcie. Zasadniczo arduino monitoruje napięcie na środkowym pinie potencjometru i jeśli obraca się w jedną stronę, napięcie na nim wynosi 0 V (wartość = 0), a po drugiej stronie 5 V (wartość = 1023). Wartość ta jest następnie skalowana z zakresu 0-1023 do 0-180, a następnie przekazywana do wspomnianej już funkcji.
Kolejnym tematem jest komunikacja szeregowa z arduino, którą pokrótce omówię. Zasadniczo program napisany na PC wysyła wybraną przez użytkownika wartość, arduino może ją zdekodować i przesunąć serwo w daną pozycję
Krok 2: Projektowanie PCB
Zaprojektowałem 2 płytki - jedną do sterowania głównego, gdzie jest arduino i piny do serw, a na drugiej potencjometry. Powodem dla 2 płytek jest to, że chciałem sterować ramieniem robota z bezpiecznej odległości. Obydwa obwody połączone są kablem o podanej długości - w moim przypadku 80 cm.
Jako źródło zasilania wybrałem zewnętrzny adapter, ponieważ serwa, których użyłem, zużywają znacznie więcej energii niż może dostarczyć arduino. Jak widać są kondensatory, o których jeszcze nie wspomniałem. Są to kondensatory służące do filtracji. Jak już wiesz, serwomotor sterowany jest krótkimi impulsami. Impulsy te mogą sprawić, że napięcie zasilania spadnie, a potencjometry, które wcześniej miały zakres 0-5 woltów, mają teraz mniejszy zasięg. Oznacza to, że napięcie na środkowym pinie zmienia się, a arduino otrzymuje tę wartość i zmienia pozycję, w której znajduje się serwomotor. Może to trwać w nieskończoność i powoduje niepożądane oscylacje, które mogą być wyeliminowane przez niektóre kondensatory równolegle do zasilania.
Krok 3: Tworzenie PCB
Do robienia PCB sugeruję przeczytanie tego.
Użyłem metody Iron on Glossy paper i wyszło to świetnie.
Następnie przylutowałem części na płytce drukowanej. Widać, że użyłem gniazda arduino na wypadek, gdybym go potrzebował w przyszłości.
Krok 4: Projektowanie ramienia
W żadnym wypadku nie była to najtrudniejsza część tworzenia tego projektu.
Całość składa się z 8 części, z których 4 nie są ruchomymi - skrzynka na potencjometry i podstawa, na której znajduje się arduino - a pozostałe cztery to samo ramię. Nie będę się zagłębiał w szczegóły, z wyjątkiem tego, że projekt jest dość intuicyjny i w pewien sposób prosty. Został zaprojektowany tak, aby pasował do mojej niestandardowej płytki drukowanej i serw, które dołączę do listy części.
Krok 5: Drukowanie części
Części zostały wydrukowane na drukarce Prusa. Niektóre powierzchnie trzeba było trochę oszlifować i wywiercić otwory. Trzeba było również usunąć filary nośne.
Krok 6: Złóż wszystko razem
W tym kroku, jak mówi tytuł, złożyłem to wszystko razem.
Najpierw przylutowałem przewody na potencjometrach, a potem te przewody na płytce drukowanej. Potencjometry ładnie wpasowują się w otwory i przykleiłem płytkę na gorąco na słupkach, które zostały wydrukowane na spodzie pudełka. Otwory można wywiercić w desce i w pudełku, ale okazało się, że sklejenie wystarczy. Następnie zamknąłem obie części pudełka i zabezpieczyłem je 4 śrubami, które pasują do zaprojektowanych przeze mnie otworów.
W kolejnym kroku wykonałem płaski kabel taśmowy do połączenia obu płyt.
W skrzynce głównej przylutowałem przewody od pinu VCC złącza do przełącznika, a następnie do Vcc płytki i od GND płytki do GND złącza. Następnie przykleiłem na gorąco złącze i płytę na słupkach. Złącze pasuje do otworu, więc nie jest potrzebny gorący klej.
Następnie za pomocą śrub przymocowałem dolne serwo do dolnej części pudełka.
Następnie górną część puszki nałożyłem na dolną i tak samo jak puszkę potencjometru przykręciłem 4 śrubami.
Następna część była trochę trudna, ale udało mi się połączyć resztę ramienia z różnymi nakrętkami i podkładkami i nie było tak ciasno, jak się spodziewałem, ponieważ zaprojektowałem pewne tolerancje między częściami, więc łatwiej z nimi pracować.
A jako ostatni krok nałożyłem taśmę na spód pudełek, bo inaczej by się ślizgały.
Krok 7: Programowanie Arduino
Wspomniałem już, jak program działa w teorii stojącej za projektem, ale zamierzam to jeszcze bardziej podzielić.
Więc na początku musimy zdefiniować kilka zmiennych. W większości jest to kopiowane 4 razy, ponieważ mamy 4 serwa i moim zdaniem nie ma potrzeby robienia bardziej skomplikowanej logiki tylko po to, aby program był trochę krótszy.
Następna jest konfiguracja void, w której zdefiniowane są piny serw.
Następnie jest void loop - część programu, która zapętla się w nieskończoność. W tej części program pobiera wartość z potencjometru skaluje ją i wprowadza na wyjście. Ale jest jeden problem, że wartość z potencjometru dość mocno przeskakuje, więc musiałem dodać filtr, który uśrednia ostatnie 5 wartości, a następnie wprowadza na wyjście. Zapobiega to niepożądanemu kołysaniu.
Ostatnia część programu odczytuje dane z portu szeregowego i na podstawie przesłanych danych decyduje co zrobić.
Aby w pełni zrozumieć kod, proponuję odwiedzić oficjalne strony arduino.
Krok 8: Programowanie w Pythonie
Ta część tego projektu nie jest potrzebna, ale myślę, że to tylko zwiększa wartość tego projektu.
Python oferuje mnóstwo bibliotek, z których można korzystać za darmo, ale w tym projekcie używam tylko tkinter i serial. Tkinter jest używany do GUI (Graphical User Interface), a serial, jak sama nazwa wskazuje, służy do komunikacji szeregowej.
Ten kod tworzy GUI z 4 suwakami, które mają minimalną wartość 0 i maksymalnie 180. Może to być wskazówka dla Ciebie, że jest w stopniach, a każdy suwak jest zaprogramowany do sterowania jednym serwomechanizmem. Ten program jest dość prosty - pobiera wartość i wysyła ją do arduino. Ale sposób, w jaki wysyła, jest interesujący. Jeśli zdecydujesz się zmienić wartość pierwszego serwa na 123 stopnie, do arduino zostanie wysłana wartość 1123. Pierwsza liczba każdego wysłanego numeru mówi, który serwo ma być kontrolowany. Arduino ma kod, który może to zdekodować i przesunąć odpowiednie serwo.
Krok 9: Lista części
- Arduino Pro Mini 1 sztuka
- Serwo FS5106B 1 sztuka
- Serwo Futaba S3003 2 sztuki
- Nagłówek pinów 2x5 1 sztuka
- Nagłówek pinów 1x3 6 sztuk
- Kondensator 220uF 3 sztuki
- Micro Servo FS90 1 sztuka
- Złącze AWP-10 2 sztuki
- Złącze FC681492 1 sztuka
- Przełącznik P-B100G1 1 sztuka
- Gniazdo 2x14 1 sztuka
- TTL-232R-5v - konwerter 1 szt.
- Potencjometr B200K 4 sztuki
- i wiele innych śrub, podkładek i nakrętek
Krok 10: Końcowe myśli
Dziękuję za przeczytanie tego i mam nadzieję, że przynajmniej Cię zmotywowałem. To mój pierwszy większy projekt, który wykonałem sam bez kopiowania rzeczy z internetu i pierwszego postu z instrukcjami. Wiem, że ramię można by ulepszyć, ale na razie jestem z tego zadowolony. Wszystkie części i kody źródłowe są bezpłatne, możesz z nich korzystać i zmieniać je w dowolny sposób. Jeśli masz jakieś pytania, możesz je zadać w sekcji komentarzy. Możesz również obejrzeć filmy, nie są w świetnej jakości, ale pokazują funkcjonalność projektu.
Zalecana:
Kontrolowane przez FPGA ramię robota z serwomotorem RC - Digilent Contest: 3 kroki
Sterowane przez FPGA ramię robota z serwosilnikiem RC - Digilent Contest: ramię robota z serwosilnikiem sterowane przez FPGA Celem tego projektu jest stworzenie programowalnego systemu, który może wykonywać operacje lutowania na płycie perforowanej. System oparty jest na płytce rozwojowej Digilent Basys3 i będzie w stanie lutować ko
Kontrolowane przez Arduino ramię robota z 6 stopniami swobody: 5 kroków (ze zdjęciami)
Arduino Controlled Robotic Arm W/6 Degrees of Freedom: Jestem członkiem grupy robotycznej i każdego roku nasza grupa bierze udział w corocznych targach Mini-Maker. Począwszy od 2014 roku postanowiłem budować nowy projekt na coroczne wydarzenie. Miałem wtedy około miesiąca przed wydarzeniem, żeby coś ułożyć
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: WĘDZIK: 8 kroków
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: BITN: Kolejny proces instalacji opiera się na zakończeniu trybu omijania przeszkód. Proces instalacji w poprzedniej sekcji jest taki sam, jak proces instalacji w trybie śledzenia linii. Następnie spójrzmy na ostateczną formę A
Kontrolowane przez Arduino ramię robota z Lego Mindstorm: 6 kroków
Kontrolowane przez Arduino ramię robota z Lego Mindstorm: Zmień dwa stare silniki Lego Mindstorm na ramię chwytaka sterowane przez Arduino Uno. To jest projekt Hack Sioux Falls, w którym rzuciliśmy wyzwanie dzieciom, aby zbudowały coś fajnego za pomocą Arduino
Kontrolowane ramię robota Nunchuk (z Arduino): 14 kroków (ze zdjęciami)
Nunchuk Controlled Robotic Arm (z Arduino): Robotyczne ramiona są niesamowite! Posiadają je fabryki na całym świecie, gdzie precyzyjnie malują, lutują i przewożą rzeczy. Można je również znaleźć w eksploracji kosmosu, zdalnie sterowanych pojazdach podwodnych, a nawet w zastosowaniach medycznych! A teraz możesz