Spisu treści:
- Krok 1: Potrzebne materiały, narzędzia i maszyny
- Krok 2: Projektowanie 2D i 3D
- Krok 3: Drukowanie 3D
- Krok 4: Formowanie i odlewanie
- Krok 5: Projektowanie i produkcja elektroniki
- Krok 6: Montaż
- Krok 7: Programowanie
Wideo: Ramię protetyczne pracujące z myosensorem: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-31 10:23
Ten projekt to opracowanie protezy ramienia dla osób po amputacji. Celem tego projektu jest stworzenie niedrogiej protezy ramienia dla osób, których nie stać na profesjonalne ramię.
Ponieważ ten projekt jest wciąż w fazie prototypowania, zawsze może być lepiej, ponieważ na razie może tylko otwierać i zamykać dłoń, aby móc chwycić rzeczy! Niemniej jednak jest to proteza ramienia DIY, którą można wykonać w domu lub w lokalnym laboratorium.
Krok 1: Potrzebne materiały, narzędzia i maszyny
Maszyny:
- drukarka 3d
- Wycinarka laserowa
- Pulpitowa maszyna CNC
Narzędzia:
- Żyłka wędkarska
- 3mm żarnik
- Wiertarka
- Super klej
- Szczypce do otworów
- Multimetr
- Stacja lutownicza
- Wosk do obróbki mechanicznej
- Krzem do form
Materiały:
- Blacha miedziana
- 1x ATMEGA328P-AU
- 1x16 MHz kryształ
- 1x rezystor 10k
- 2x kondensatory 22pF
- 1x kondensator 10uF
- 1x kondensator 1uF
- 1x kondensator 0.1uF
- 1x Misensor
- 5x mikrosilniki serwo
- 1x Arduino UNO
Oprogramowanie:
- IDE Arduino
- Fusion360
- Cura
- Orzeł
- KORDONEK
Krok 2: Projektowanie 2D i 3D
Projektowanie 3D
Pierwszym krokiem było zaprojektowanie palców, dłoni i przedramienia protezy ramienia z uwzględnieniem elektroniki, która miałaby trafić do protezy ramienia. Szczerze mówiąc, użyłem jako podstawy projektu inmoov open source i od tego zacząłem.
Dłoń jest dość trudna do zaprojektowania, ponieważ palce powinny mieć różne proporcje między nimi. Więc:
Palce: pobrałem palce z projektu inmoov.
Palma:
- Najpierw naszkicowałem układ dłoni i wyciągnąłem go.
- Następnie wykonałem otwory na połączenia palca i przedramienia za pomocą szkiców, polecenia cięcia i polecenia zaokrąglania.
- Potem musiałem zrobić rurki, aby móc wprowadzać żyłki i sterować palcami za pomocą silników.
- Na koniec trzeba było dodać otwory wewnątrz dłoni, aby możliwe było zamknięcie dłoni po pociągnięciu żyłki.
Przedramię:
- Na różnych płaszczyznach utworzyłem dwa szkice i użyłem polecenia elipsy. Użyłem polecenia wyciągnięcia złożonego, aby utworzyć pożądany kształt.
- Następnie użyto polecenia powłoki, aby uczynić go pustym, a polecenie podziału, aby przeciąć go na pół, abym mógł w nim zaprojektować i zapewnić najlepszą dostępność, gdy montuję swoją elektronikę w środku.
- Wykonano również szkic przy nadgarstku, wytłoczony i połączony z głównym przedramieniem tak, aby mógł połączyć się z dłonią.
- Mając widoczność do projektowania wewnątrz przedramienia, stworzyłem szkic w wymiarach pięciu silników, których będę używał, po jednym na każdy palec, i mojej płytki drukowanej (płytki drukowanej), której będę używał. Następnie wyciskałem je, aż osiągnęły pożądaną wysokość i usunąłem niepotrzebne części z tyłu cylindra za pomocą backspace.
- Na koniec zaprojektowano otwory na śruby, w sposób niewidoczny na całym projekcie, aby można było zamknąć przedramię za pomocą podobnych poleceń jak powyżej.
Kończąc projekt, wybrałem każdy korpus i pobrałem go jako plik.stl i wydrukowałem je osobno w 3D.
Projektowanie 2D
Ponieważ chciałem, aby moje żyłki były rozdzielone, gdy są obsługiwane przez silniki, postanowiłem zrobić dla nich szczeliny prowadzące. W tym celu tak naprawdę nie musiałem projektować niczego nowego, ale używałem mniejszej elipsy, gdy użyłem polecenia wyciągnięcia do utworzenia przedramienia.
Wyeksportowałem jego szkic jako plik.dxf po użyciu wycinarki laserowej. Po uzyskaniu pożądanego kształtu wywierciłem w szczelinie otwory o średnicy 0,8 mm, które uznałem za konieczne.
Krok 3: Drukowanie 3D
Po wyeksportowaniu każdego pliku stl użyłem Cury do wygenerowania.gcode różnych części palców, dłoni i przedramienia. Zastosowane ustawienia ilustrują powyższe zdjęcia. Materiałem części drukowanych 3D jest PLA.
Krok 4: Formowanie i odlewanie
Celem odlewania dłoni jest mocniejsze trzymanie protezy ramienia, ponieważ PLA może być śliski.
Projektowanie 3D
- Korzystając z istniejącego wcześniej szkicu dłoni, próbowałem naśladować naszą dłoń, projektując do niej swego rodzaju okręgi za pomocą polecenia łuku.
- Następnie wyciągnąłem je na różnych wysokościach i użyłem polecenia zaokrąglenia, aby wygładzić krawędzie wewnętrznych „okręgów”.
- Następnie zaprojektowałem pudełko o takich samych wymiarach jak mój wosk do obróbki mechanicznej i umieściłem tam negatyw mojego projektu za pomocą wycięcia w poleceniu łączenia.
Proces CAM
Po przygotowaniu projektu do frezowania na stacjonarnej maszynie CNC musiałem wygenerować do tego gcode. W moim przypadku korzystałem z maszyny CNC firmy Roland MDX-40!
- Najpierw wszedłem do środowiska CAM Fusion360.
- Następnie wybrałem „nową konfigurację” w menu ustawień.
- Wybrałem odpowiednie parametry (patrz zdjęcia) i wcisnąłem ok.
- Następnie w menu 3D wybrałem czyszczenie adaptacyjne i po wstawieniu narzędzia, którego użyłem, jak pokazano na zdjęciach, wybrałem odpowiednie parametry.
- Na koniec wybrałem czyszczenie adaptacyjne i kliknąłem proces post. Upewniłem się, że jest to maszyna Roland mdx-40 i kliknąłem ok, aby uzyskać gcode.
- Następnie wyfrezowałem blok wosku według mojego projektu za pomocą maszyny.
Odlewanie krzemu
- Najpierw ostrożnie wymieszałem oba roztwory krzemu, aby nie powodować pęcherzyków powietrza, zgodnie z arkuszem danych (link znajdujący się na materiałach), biorąc pod uwagę proporcje mieszania, żywotność i czas wyjęcia z formy.
- Następnie wlałem go do formy od najniższego punktu, upewniając się, że punkt styku jest stały, a średnica wlewanego roztworu jest jak najcieńsza, aby uniknąć pęcherzyków powietrza.
- Po wlaniu silikonu do formy musiałem upewnić się, że w środku nie ma pęcherzyków powietrza, więc potrząsnąłem formą za pomocą wiertarki ze skośnym gwoździem.
- Na koniec, ponieważ zapomniałem tego zrobić w swoim projekcie, wybiłem otwory w silikonie, gdy był gotowy, za pomocą szczypiec do otworów w taki sposób, aby pasowały do otworów na powierzchni dłoni.
Krok 5: Projektowanie i produkcja elektroniki
Aby zaprojektować moją płytkę i zrozumieć, co się dzieje na pinach mikrokontrolera, musiałem przeczytać jej arkusz danych. Jako płytkę bazową wykorzystałem mikro satshakit, a następnie zmodyfikowałem go zgodnie z potrzebami mojego systemu.
Ponieważ satshakit to płytka DIY oparta na arduino, mogłem ją zmodyfikować zgodnie z moimi poszukiwaniami połączeń moich części z arduino. Tak więc miosensor łączy się z arduino za pomocą jednego pinu GND, jednego pinu VCC i jednego pinu analogowego. Podczas gdy jeden serwosilnik wykorzystuje jeden pin GND, jeden pin VCC i jeden pin PWM. Musiałem więc odsłonić w sumie sześć pinów GND i VCC biorąc pod uwagę zasilanie płytki, jeden pin analogowy i pięć pinów PWM. Musiałem również wziąć pod uwagę ujawnienie pinów do programowania płytki (które są MISO, MOSI, SCK, RST, VCC i GND).
Podjęłam następujące kroki:
- Najpierw pobrałem pliki eagle mikro-satshakita.
- Następnie zmodyfikowałem mikro-satshakit zgodnie z moimi potrzebami za pomocą Eagle. Poradnik jak korzystać z Eagle można znaleźć tutaj i tutaj.
- Po zrootowaniu płyty wyeksportowałem ją jako plik-p.webp" />
Po uzyskaniu ścieżek wewnętrznych i zewnętrznych mojej płyty jako png, nadszedł czas na wygenerowanie ich gkodu, aby móc go wyfrezować w maszynie cnc desktopowej Roland mdx-40. Do generowania.gcode użyłem modułów fab. Ustawienia, które należy ustawić w modułach fab i znaleźć tutaj.
Na koniec przylutowałem wszystko, czego potrzebowałem, zgodnie z moją tablicą z orłem. Powyżej znajduje się zdjęcie schematu oraz lutowanej płytki.
Powodem stworzenia własnej płytki PCB zamiast użycia Arduino UNO jest oszczędność miejsca, gdy używam własnej płytki.
Krok 6: Montaż
Tak więc po wydrukowaniu palców:
- Otwory wewnętrzne musiałem wywiercić wiertłem o średnicy 3,5 mm, a otwory zewnętrzne wiertłem o średnicy 3 mm. Otwory wewnętrzne oznaczają część, która po połączeniu części pochodzi z otworu wewnętrznego i zewnętrznego, część, która po połączeniu pochodzi z zewnątrz.
- Potem musiałem skleić superklej najpierw drugim palcem, a trzeci czwartym.
- Następnie połączyłem części 1+2 z 3+4 z 5 przez małe otwory za pomocą filamentu o średnicy 3mm.
- Wreszcie palce były gotowe do złożenia z dłonią, a następnie z przedramieniem.
Tak więc nadszedł czas, aby przełożyć żyłkę przez palce.
Jedna linia przechodziła od tylnej strony palca przez rurkę na łączniku palec-dłoń i do przedramienia, a druga linia przechodziła od przedniej strony palca do otworu po wewnętrznej stronie dłoni i do przedramienia
Specjalną uwagą jest przełożenie żyłki przez kawałek drewna z otworem o średnicy i zawiązanie supełka. W przeciwnym razie, gdy linka zostanie pociągnięta, może zejść w dół palca, co mi się przydarzyło bez względu na to, ile węzłów zrobiłem.
- Po przeciągnięciu żyłki przez palce, dłoń i przedramię powinny być połączone za pomocą kilku wydrukowanych w 3D śrub robotów,
- Ponownie przepuściłem linie przez wycięty laserowo otwór, aby je oddzielić, a następnie połączyłem je z serwomotorami.
- Mocowanie żyłki we właściwej pozycji serwomechanizmu jest nie lada wyzwaniem. Ale to, co zrobiłem, to wziąć skrajne pozycje palca i połączyć go z skrajnym położeniem serwomechanizmu.
- Po znalezieniu odpowiednich pozycji wywierciłem otwory w specjalnych gniazdach na serwa i przykręciłem serwa we właściwe miejsca upewniając się, że dwa serwa są lekko podniesione od pozostałych, w przeciwnym razie zderzyłyby się podczas pracy.
Krok 7: Programowanie
Przed napisaniem programu musiałem sprawić, by zmodyfikowany mikro-satshakit można było zaprogramować. Aby to zrobić, musiałem wykonać poniższe czynności:
- Podłącz Arduino Uno do komputera.
- Wybierz odpowiedni port i płytkę Arduino Uno pod narzędziami.
- W obszarze >Plik >Przykłady znajdź i otwórz szkic „ArduinoISP”.
- Prześlij szkic do Arduino.
- Odłącz Arduino od komputera.
- Połącz płytkę z Arduino zgodnie ze schematem na obrazku.
- Podłącz Arduino do komputera.
- Wybierz kartę „Arduino/Genuino Uno” i programator „Arduino jako ISP”.
- Kliknij >Narzędzia >Nagraj bootloader.
- Po pomyślnym zakończeniu bootloadera możemy napisać nasz program:
//w tym biblioteka, której użyłem do serwomotorów
#include #include SoftwareSerial mySerial(7, 8); #define MYO_PIN A0 int sensorValue; napięcie pływaka; //nadaj nazwę mojemu serwo VarSpeedServo servo1; Serwo VarSpeedServo2; Serwo VarSpeedServo3; Serwo VarSpeedServo4; Serwo VarSpeedServo5; #define PINKY 5 #define PINKY_PIN 10 #define RINGFINGER 4 #define RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #define INDEX 2 #define INDEX_PIN 5 #define KCIUK 1 #define KCIUK 6 void setup(){ pinMode,(MYO_P); //pin, do którego podłączyłem mój servo1.attach(THUMB_PIN); servo2.attach(INDEX_PIN); servo3.attach(ŚRODKOWY_PIN); servo4.attach(RINGFINGER_PIN); servo5.attach(PINKY_PIN); pozycja domyślna(KCIĄTEK, 40); pozycja domyślna(INDEKS, 40); pozycja domyślna(ŚRODEK, 40); domyślnaPozycja(PALEC PIERŚCIENIA, 40); pozycja domyślna(RÓŻOWY, 40); mójSerial.początek(9600); mySerial.print("Inicjowanie…"); } void loop(){ sensorValue = analogRead(A0); napięcie = wartość czujnika * (5,0 / 1023,0); mójSerial.println(napięcie); opóźnienie (100); if (napięcie > 1) { closePosition(PINKY, 60); closePozycja(PALEC PIERŚCIENI, 60); closePozycja(ŚRODEK, 60); closePozycja(INDEKS, 60); closePozycja(KCIUK, 60); } else{ openPosition(PINKY, 60); openPosition(RINGFIGER, 60); openPosition(ŚRODEK, 60); openPosition(INDEKS, 60); openPosition(KCIUK, 60); } } void defaultPosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(90, _speed, true); else if(finger == RINGFINGER) servo4.write(70, _speed, true); else if(finger == ŚRODEK) servo3.write(20, _speed, true); else if(finger ==INDEX) servo2.write(20, _speed, true); else if(finger == KCIUK) servo1.write(20, _speed, true); } void closePosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(180, _speed, true); else if(finger == RINGFINGER) servo4.write(180, _speed, true); else if(finger == ŚRODEK) servo3.write(180, _speed, true); else if(finger == INDEX) servo2.write(180, _speed, true); else if(finger == KCIUK) servo1.attach(180, _speed, true); } void openPosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(0, _speed, true); else if(finger == RINGFINGER) servo4.write(0, _speed, true); else if(finger == ŚRODEK) servo3.write(0, _speed, true); else if(finger == INDEX) servo2.write(0, _speed, true); else if(finger == KCIUK) servo1.write(0, _speed, true); } //Po napisaniu programu wgrywamy go na płytkę za pomocą >Sketch>Upload using Programmer //Teraz możesz odpiąć swój micro satshakit od arduino i zasilić go przez power bank //I voila!! Masz protezę ręki
Zalecana:
Ramię robota z chwytakiem: 9 kroków (ze zdjęciami)
Ramię robota z chwytakiem: Zbieranie drzewek cytrynowych jest uważane za ciężką pracę ze względu na duże rozmiary drzew, a także ze względu na gorący klimat regionów, w których sadzone są drzewa cytrynowe. Dlatego potrzebujemy czegoś innego, aby pomóc robotnikom rolnym w łatwiejszym wykonywaniu ich pracy
Ramię robota 3D z silnikami krokowymi sterowanymi przez Bluetooth: 12 kroków
Ramię robota 3D z silnikami krokowymi sterowanymi przez Bluetooth: W tym samouczku zobaczymy, jak wykonać ramię robota 3D z silnikami krokowymi 28byj-48, serwomotorem i częściami drukowanymi w 3D. Płytka drukowana, kod źródłowy, schemat elektryczny, kod źródłowy i wiele informacji znajdują się na mojej stronie internetowej
RAMIĘ ROBOTYCZNE Xbox 360 [ARDUINO]: RAMIĘ AXIOM: 4 kroki
RAMIĘ ROBOTYCZNE Xbox 360 [ARDUINO]: RAMIĘ AXIOM:
Arduino protetyczne ramienia: 4 kroki
Protetyczne ramię Arduino: wykonane przez Joeya Pang Kieuw Moy G&I1CTamo ramię jest stworzone dla osób, które mają ograniczony budżet, ale nadal chcą protezy ramienia z funkcjami
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