MeArm: dziennik budowy

MeArm zachwycił mnie od samego początku.
kickstart_mearm
Tego właśnie szukałem – proste do realizacji ramię robotyczne o 3 stopniach swobody. Projekt wystartował na kickstarterze odnosząc spektakularny sukces. Urzekł mnie swoją prostotą i – co tu dużo ukrywać – niskimi kosztami. No i Open Source:)
Ta strona będzie rodzajem dziennika z budowy. Będę uzupełniał ja z każdym wykonanym krokiem.
mearm_stage_3_1

Uwaga: nowsza wersja instrukcji do budowy znajduje się na podstronie: Budowa czarnego MeArm.


14.01.2015

Tym razem w LNT:)


29.05.2015

Zaparkowany na chwilę projekt meArm wraca – tym razem sterowany przez Raspberry Pi i rozszerzenie do generowania PWM.

meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+
meArm by Arek Merta+raspberry Pi A+.

14.04.2015

Dzisiaj dotarł do mnie Sensor Shield v5.0. Moduł ten ma mi pomóc w podłączeniu serw do Arduino. Jego rozszerzony opis znajdziecie w tym wpisie.

MeArm z Sensor Shield
MeArm z Sensor Shield

Przemyślmy chwilę, gdzie by tu te serwa podłączyć:

Pin PWM? Przeznaczenie Zastosowanie
0 Nie UART/RXD
1 Nie UART/TXD
2 Nie
3 Tak  <serwo 1 : roll>
4 Nie
5 Tak  <serwo 2: pitch>
6 Tak  <serwo 3: yaw>
7 Nie
8 Nie  OLED/DC (dane/komendy)
9 Tak  <serwo 4: szczęki>
10 Tak  SPI/CS  OLED/CS (wybór czipa)
11 Tak  SPI/MOSI  OLED/D1 (MOSI dane)
12 Nie  SPI/MISO  OLED/RES (reset)
13 Nie  SPI/CLK  OLED/D0 (zegar)

Zamiast możemy odwołać się do znanego m.in. sposobu orientowania się w przestrzeni trójwymiarowej za pomocą współrzędnych lokalnych prędkości kątowych roll-pitch-yaw podczas obracania się względem osi x, y i z (kąty RPY).
roll_pitch_yaw


8.04.2015

Przy okazji pierwszych uruchomień z testerem serw okazało się, że trochę źle nałożyłem ramię na prawe serwo. Skutkiem tego był jego ograniczony zasięg do przodu. W gąszczu elementów niełatwo było wypiąć orczyk ramienia z zębatki serwa. Dobra rada: zanim złożycie kastę, warto wypróbować jak naprawdę chodzą serwa.

Zanim złożycie kastę, wypróbujcie jak chodzą serwa. Łatwo to zrobić mając do dyspozycji tester serw. Wystarczy:

  • Zasilić znajdujące się na podstawce Arduino
  • Do testera podłączyć kabelek z serwa: 3 żyły, najczęściej środkowa jest czerwona (+), jedna z zewnętrznych czarna lub brązowa (-) a druga biała lub żółta – sterowanie S. Upewnijcie się, że podłączyliście wtyczkę w dobrą stronę.
  • Za pomocą 2 kabelków męsko-żeńskich:
    • Połączcie ‚5V’ z Arduino do ‚+’ testera
    • Połączcie ‚GND’ z Arduino do ‚-‚ testera
  • Większość testerów ma przycisk wybierający między 3-ma trybami:
    • Pozycja neutralna
    • Sterowanie zamontowanym potencjometrem
    • Tryb automatyczny – ‚wycieraczki’
  • Sprawdźcie wszystkie 3 tryby!

Do uruchomienia ramienia nie potrzebuję wcale wybranego przeze mnie Sensor Shield v5. Wystarczy połączyć wszystko kabelkami do odpowiednich pinów Arduino – choć trochę ich będzie potrzeba… Cały kod znajduje się na githubie projektu. Kod jest raczej mało skomplikowany. Składa się z powtarzających się dla każdego serwa bloków:

//Odczytaj wartość z potencjometru/joystika
val = analogRead(potpin);
//Przeskaluj do zakresu 0..179 stopni rozumianego przez serwo
val = map(val, 0, 1023, 0, 179);
//Ustaw serwo
myservo.write(val);

Ciekawszy jest projekt ‚MeArmIK’. ‚IK’ pochodzi od ‚inverse kinematics’. Minęło tyle lat, a dalej robi mi się gorąco na myśl o podobnych zadaniach rozwiązywanych na studiach:) Generalnie w pierwszym projekcie (za pomocą potencjometrów lub wychyleń joysticka) mówimy poszczególnym serwom, jakie mają ustawić sobie kąty. W drugim przypadku mówimy systemowi, jaki pynkt w przestrzeni ma osiągnąć chwytak. Zadanie odwrotnej kinematyki polega na przeliczeniu tych współrzędnych na kąty serw. Podejście jest więc zasadniczo różne. IK abstrahuje nas od budowy robota (ile ma serw – czy fachowo stopni swobody) i pozwala na bardziej naturalne sterowanie.


05.04.2015

Serwo chwytaka wkładamy w prostokątny kołnierz:

Ramka serwa chwytaka
Ramka serwa chwytaka

Ta dźwignia będzie służyła do pozycjonowania chwytaka w poziomie:

Ramię poziomujące chwytak
Ramię poziomujące chwytak

Zwróćcie uwagę, że przednie śruby mocujące serwo nie mogą wystawać poza kołnierze. W przeciwnym razie będą blokować ramiona chwytaka. Użyłem tutaj śrub 8mm bez nakrętek.

Serwo i ramiona chwytaka
Serwo i ramiona chwytaka

Przed zamontowaniem ramion chwytaka proponuję przeszlifować wgłębienia między zębami tak, aby swobodnie mogły razem pracować. Tak będzie wyglądał chwytak po zmontowaniu:

Mearm - chwytak prawie zmontowany
Mearm – chwytak prawie zmontowany

Zauważcie, że montaż ramienia popychacza będzie wymagał dodania 2 dystansów:

Dystanse popychaczem ramion chwytaka
Dystanse popychaczem ramion chwytaka

Podobnie sprawa ma się z prawym górnym ramieniem pozycjonującym chwytak w poziomie:

MeArm - połączenie z ramieniem pozycjonującym chwytak wymaga dodania dystansu
MeArm – połączenie z ramieniem pozycjonującym chwytak wymaga dodania dystansu

Mechanika gotowa:

Mechanika gotowa
Mechanika gotowa

mearm_stage_3_1


4.04.2015

Boczne serwa przykręcamy do ścian kasty przez kołnierze śrubkami 12mm (i nakrętki z drugiej strony) – podobnie jak w przypadku serwa dolnego.
mearm_kasta_0
Zwróćcie teraz uwagę na przykręcanie ramion do orczyków serw. Z każdym serwem dostarczane są zazwyczaj dwa rodzaje śrubek: 2 większe  i jedna mniejsza. Te większe przeznaczone są do zamocowania serwa przez jego boczne uszka. Mniejszą śrubkę wkręca się przez orczyk w zębatkę serwa blokując orczyk, żeby nie wypadł. Zgodnie z krokiem 8 instrukcji, wkręty do mocowania serwa mają być użyte do przykręcenia orczyków do ramion. Jest to wykonalne, pod warunkiem wcześniejszego rozwiercenia dziurek w orczykach wiertłem 1.5mm. Jeżeli pominiecie tą operację ryzykujecie pęknięcie orczyka podczas wkręcania śrubek, a macie tylko jedną szansę.

Rozwierćcie otwory w orczykach wiertłem 1.5mm
Rozwierćcie otwory w orczykach wiertłem 1.5mm

Potem idzie już łatwo:

Wkręcony orczyk i ramię
Wkręcony orczyk i ramię

Ramiona składające się z dwóch elementów przykręcałem na śrubki 8mm – te z trzech a 12mm. Po nałożeniu ramienia z orczykiem na serwo nie zapomnijcie zablokować go wkrętem (tym mniejszym):

Zablokujcie orczyk w serwie.
Zablokujcie orczyk w serwie.

Budowanie nie powinno sprawić Wam żadnych problemów. Instrukcja jest dość przejrzysta i niewiele w niej pułapek. Zwróćcie jednak uwagę na montaż przedniej i tylnej ścianki kasty – łatwo można włożyć je odwrotnie:

Odwrotnie włożone tylna i przednia ściana kasty.
Odwrotnie włożone tylna i przednia ściana kasty.

Innymi słowy ten środkowy wspornik powinien być bliżej lewej strony (patrząc z kierunku tylnej ściany):

Wspornik w środku kasty
Wspornik w środku kasty

I dwa boki kasty razem:

Dwa boki kasty
Dwa boki kasty

Złóżcie boki kasty razem. W dalszej kolejności podłączcie ramiona:

MeArm - ramiona
MeArm – ramiona
MeArm - ramiona wysięgnika
MeArm – ramiona wysięgnika

Zwróćcie uwagę na dystans na szczycie prawego ramienia:
mearm_ramiona_2

Kilka uwag:

  • Uważnie obserwujcie rysunki w instrukcji, które elementy w jaki sposób powinny na siebie nachodzić;
  • Przed przykręceniem ramion do serwa sprawdźcie, jak mają chodzić. Instrukcja mówi np. o maksymalnym cofnięciu serwa tak, aby ramię znalazło się w odpowiedniej pozycji;
  • Nakrętki na śrubach nie są konieczne. Otwory są tak spasowane, że śruby wchodzą bardzo ciasno. Na razie dodaję je dla pewności – nie wiem, czy później nie usunę;
  • Ostre końce wkrętów serw są bezpiecznie skierowane do środka kasty; nie ma możliwości poranienia się nimi podczas zabawy;
  • Zabejcowanie/polakierowanie sprawia, że większość elementów wchodzi dość ciasno. Czasami trzeba użyć pilnika i papieru ściernego, żeby usunąć zalewy lakieru.

No, to pozostaje dodać chwytak:
mearm_stage_2_0

mearm_stage_2_1


31.03.2015

Dolne serwo jest odpowiedzialne za obracanie całego ramienia. Przykręciłem je do platformy poprzez kołnierz za pomocą 2 śrubek fi3mm/12mm (10 mm były trochę za krótkie).

MeArm - mocowanie dolnego serwa
MeArm – mocowanie dolnego serwa
MeArm - mocowanie dolnego serwa
MeArm – mocowanie dolnego serwa

Ponieważ model jest z drewna zrezygnowałem z podanego w instrukcji sposobu przykręcenia tej platformy do podstawy za pomocą śrub. Użyłem do tego fi3mm/15mm dystansów wew-zew. Dystanse od góry przykręciłem śrubkami fi3/8mm (10mm były za długie). Od dołu dystanse przykręciłem za pomocą odpowiednich nakrętek.
Może na to za wcześnie, ale przymierzyłem samo Arduino. Przykręciłem je za pomocą fi2/16mm śrubek poprez fi3/8mm dystanse (polyamid). Ponieważ śrubki były trochę za długie, dodałem po 2 podkładki na każdą.

MeArm - Arduino umocowane do platformy
MeArm – Arduino umocowane do platformy

W roli Arduino – żółte Visduino z portem microUSB.

MeArm - dolna platforma
MeArm – dolna platforma

I taki jeszcze gadżecik – świetnie znany wielu modelarzom: tester serw.

Modelarski tester serw
Modelarski tester serw

Do wyjścia podłączamy serwo (wtyczka poziomo); wejście zasilamy 4.5v – 6v np. z Arduino lub zasobnika z 4 bateriami AA. Kręcąc potencjometrem możecie zmieniać położenie serwa. Dostępne są też tryby automatyczne (wycieraczki) i ustawienie w pozycji neutralnej.

MeAr - testowanie serwa
MeArm – testowanie serwa

30.03.2015

Najniższy poziom to właściwie podstawka pod Arduino i montaż serwa obracającego ramieniem. Pracę zacząłem jednak od przyklejenia nóżek (h=4mm). Nie kupowałem nic specjalnego – użyłem starych uszczelek od kranów. Przykleiłem je do podstawki klejem polimerowym.
meArm_base0

meArm_base1
Jeżeli chodzi o montaż serwa, zamiast śrub (jak w projekcie) postanowiłem użyć dystansów zew-wew 3mm i śrubek 3mm. Tego typu dystanse mają z jednej strony gwint zewnętrzny na nakrętkę, a z drugiej – wewnętrzny na śrubkę.
meArm_base_joints
Ze względy na wybrane przeze mnie nóżki, przy 12mm dystansach serwo leżało praktycznie na ziemi- zdecydowałem się więc na 15mm.
Jeżeli chodzi o Arduino użyłem dystansów 8mm wew-wew poliamid i śrubek fi2mm/16mm. otwory montażowe mają 3mm, ale niektóre są położone tak blisko gniazd, że łebki 3mm śrubek nie mieszczą się. Dlatego użyłem 2mm, 2.5m powinny również pasować. Jeżeli chodzi o długość to:
L> 3mm (płytka arduino) + 3mm (płyta podstawy) + 8mm (dystans - możecie mieć inny) + 2mm (żeby chwycił gwint) ~ 16mm
Dojechały również zamówione serwa:

Serwa TowerPro SG90 dla meArm
Serwa TowerPro SG90 dla meArm

29.03.2015

Pomalowane części schną:
meArm_colors2
W miejscach, gdzie rozlał się CA powstały jaśniejsze odbarwienia. Nie szkodzi – jak dla mnie wygląda bardziej naturalnie.
W tle kombinuję nad sterowaniem. Ponieważ wszystko będę pewnie ściągał ze wschodu, zakupy trzeba zaplanować odrobinę wcześniej. Starając się unikać niepotrzebnych kosztów, kupiłem tani shield w wyprowadzeniami na serwa:
meArm_Arduino_sensorShield

I dwa małe joysticki:
meArm_Arduino_joystick
Razem niecałe 6 dolarów (24 PLN). Teraz myślę nad samym panelem sterowniczym. Chciałbym na niego zmieścić jeszcze mały OLED… Może tak:
meArm_booth
Zobaczymy:)


28.03.2015

Dzisiaj wziąłem się za porządki. Wypiąłem wszystkie elementy z ramek. I tu uwaga – niektóre ważne części mogą wyglądać jak odpady:
meArm_cut0
Te niewielki kółka to np. dystanse:
meArm_cut1
W kolejnym kroku oszlifowałem wszystkie elementy (papier ścierny 360).
Oryginalne ramiona wypalane są z pleksi – tutaj mam drewno i to nie najgrubsze. Bojąc się o pewne połączenia zaimpregnowałem je klejem cyjano-akrylowym – szczególnie otwory pod śrubki. To stary numer modelarski – nasączanie klejem wzmacnia drewno. Mam nadzieję, że to wystarczy.
Kolejny etap to zabezpieczenie drewna. Ponieważ lakier wyszedł, użyłem lakiero-bejcy.
meArm_colors1
Trzeba będzie położyć kilka warstw przeszlifowując elementy między nimi.


27.03.2015

Właśnie odebrałem 2 komplety elementów do budowy MeArm.

MeArm
MeArm – dwa komplety

Elegancko wypalone laserem w 3mm sklejce. Wcześniej zaopatrzyłem się już w pół kilo 3mm śrubek o różnych długościach i nakrętek. Równocześnie zamówiłem 4 serwa TowerPro SG90. Tyle powinno ‚teoretycznie’ wystarczyć do skończenia części mechanicznej. Wiem, że pewnie się na tym nie skończy. Oryginalny projekt – chociaż drewno też było przewidziane – celował głównie w pleksi. Widzę w planach, że wiele połączeń jest wkręcanych. O ile w przypadku pleksi jest to możliwe, o tyle dla drewna pewnie będę musiał użyć kombinacji śrubek, nakrętek, podkładek i dystansów.
Jeszcze nie zdecydowałem, co będzie kontrolować robota. Ciekawiej będzie chyba z Arduino – dzięki dużym możliwości generowania PWM do sterowania serwami. Raspberry z jakimś shieldem też by pasowała…


BOM

Element Skąd Cena Uwagi
Ogólne
Elementy wypalone laserowo PD 3mm sklejka
Serwa TowerPro sg90 x 4 Internet 40 Niektóre elementy są dopasowane do rozmiarów tego serwa
Joystick breakout Chiny $2,86
Arduino serwo shield Chiny $2,80
Podstawa
Śrubki fi 3mm/12mm x 2 + nakrętki Sklep ?? Mocowanie dolnego serwa
Śrubki fi 3mm/8mm x 4 Sklep ?? Mocowanie dystansów dolnego serwa od góry
Dystanse zew-wew fi 3mm/15mm x 4 (metal) Sklep 4x.68 Mocowanie platformy dolnego serwa
Montaż Arduino
Dystanse wew-wew fi 3mm/8mm x 4 (poliamid) Sklep 4x.68 Mocowanie Arduino
Śrubki fi 2mm/16mm x 4 + nakrętki Sklep ?? Mocowanie Arduino
Podkładki fi 2mm x 8 Sklep ?? Pod dystanse do montażu Arduino – dopasowanie śrub
Główna kolumna
Śruby fi3/12 mm x 4 + nakrętki  Sklep Montaż bocznych serw
Śruby fi3/8 mm x 2 + nakrętki  Sklep Montaż ramion
Kasta (kolumna główna) i ramiona
Śruby fi3/10 mm x 4 + nakrętki  Sklep Skręcenie boków kasty
Śruby fi3/8 mm x 4 + nakrętki  Sklep Lewe ramię i wspornik środkowy
Śruby fi3/10 mm x 2 + nakrętki  Sklep Łącznik między ramionami dolnymi
Śruby fi3/12 mm x 2 + nakrętki  Sklep Prawe ramię
Śruby fi3/8 mm x 2 + nakrętki  Sklep Prawe ramię
Budowa chwytaka
Śruby fi3/12 mm + nakrętki x 2 Sklep Montaż tyłu serwa chwytaka
Śruby fi3/8 mm x 2 Sklep Montaż przodu serwa chwytaka
Śruby fi3/8 mm x 2 Sklep Montaż osi ramion chwytaka
Śruba fi3/12 mm Sklep Montaż srzęgła chwytaka
Montaż chwytaka
Śruby fi3/8 mm x 2 Sklep Ramiona do kiści
Śruba fi3/10 mm x 2 Sklep Górne prawe ramię do kiści
Razem

Narzędzia

Co Skąd Cena
Papier ścierny 360 Sklep narzędziowy 1.5
Klej cyjano-akrylowy Sklep narzędziowy 7
Klej polimerowy Sklep narzędziowy 4
Lakier, lakiero-bejca Sklep narzędziowy 15
Stare uszczelki od kranów x4 na nóżki podstawki Szafa ??
Mały śrubokręt krzyżakowy  Sklep narzędziowy  3
Pilniczek półokrągły  Sklep narzędziowy 8
Wiertło 1.5mm + uchwyt ręczny Do rozwiercania orczyków 1.5+10
Tester serw Do testowania położeń serw 25

Źródła

2 thoughts on “MeArm: dziennik budowy”

Dodaj komentarz

Proszę dodaj swój komentarz. Pamiętaj, żeby nie podawać żadnych danych osobowych.