Innehållsförteckning:
- Steg 1: Delar
- Steg 2: PROTOTYPING
- Steg 3: HANDSKA
- Steg 4: TRANSMITTER BOX
- Steg 5: ARM CONTROL BOX
- Steg 6: PIN -UPPGIFT
- Steg 7: KOMMUNIKATION
- Steg 8: SKETSAR och mer …
- Steg 9: VAD ÄNNU?
- Steg 10: *** VI VINNADE !!! ***
Video: Vifta med handen för att styra OWI robotarm Inga strängar kopplade: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
IDÉN:
Det finns minst 4 andra projekt på Instructables.com (från och med den 13 maj 2015) kring att ändra eller kontrollera OWI Robotic Arm. Inte överraskande, eftersom det är ett så bra och billigt robotkit att spela med. Detta projekt är likadant i andan (det vill säga styr robotarmen med Arduino), men annorlunda i tillvägagångssättet. [video]
Tanken är att kunna styra robotarmen trådlöst med hjälp av gester. Jag försökte också hålla modifieringar av robotarmen till ett minimum så att den fortfarande kan användas med den ursprungliga styrenheten.
Låter enkelt.
Vad det slutade med är ett tredelat projekt:
- En handske utrustad med tillräckligt med sensorer för att styra en LED och 5 motorer
- En Arduino Nano -baserad sändarenhet för att acceptera kontrollkommandon från handsken och skicka den trådlöst till Arm controller -enheten
- En Arduino Uno-baserad trådlös mottagare och motorstyrenhet ansluten till OWI Robotic Arm
FUNKTIONER
- Stöd för alla 5 grader av frihet (DOF) och lysdioden
- Stor röd knapp - för att omedelbart stoppa motorerna på armen och förhindra skador
- Bärbar modulär design
För mobilanvändare: "PR -videon" av detta projekt finns på YouTube här.
Steg 1: Delar
HANDSKE:
Du behöver följande för att bygga en handskkontroll:
- Isotoner Smartouch Tech Stretch Stitched Glove (eller liknande) - på Amazon.com
- Spectra Symboflex Sensor 2.2 " - på Amazon.com
- GY -521 6DOF MPU6050 3 Axis Gyroscope + Accelerometer Module - på Fasttech.com
- 2X5 BOX HEADER RAKT - på Phoenixent.com
- 2X5 IDC SOCKET -RECEPTACLE - på Phoenixent.com
- FLAT RIBBON CABLE 10 Conductor.050 "Pitch - på Phoenixent.com
- 2 x 5 mm lysdioder - grönt och gult
- 2 x små knappar
- Motstånd, trådar, nål, svart tråd, limpistol, lödpistol, lödning etc.
TRANSMISSION STRAP-ON BOX:
- Arduino -kompatibelt Nano v3.0 ATmega328P -20AU -kort - på Fasttech.com
- nRF24L01+ 2,4 GHz trådlös sändtagare Arduino -kompatibel - på Amazon.com
- Gymboss ARMBAND - på Amazon.com
- 9V batterihållarboxfodral med Wire Lead ON/OFF Switch - på Amazon.com
- 2X5 BOX HEADER RAKT - på Phoenixent.com
- 9v batteri
- 47uF (50v) kondensator
- Motstånd, ledningar, limpistol, lödpistol, lödning etc.
OWI ROBOTIC ARM CONTROLLER BOX:
- Arduino Compatible Uno R3 Rev3 Development Board - på Fasttech.com
- Prototype Shield DIY KIT för Arduino (eller liknande) - på Amazon.com
- nRF24L01+ 2,4 GHz trådlös sändtagare Arduino -kompatibel - på Amazon.com
- 3 x L293D 16 -polig integrerad krets IC -motordrivrutin - på Fasttech.com
- 1 x SN74HC595 74HC595 8-bitars skiftregister med 3-staters utdataregister DIP16-på Amazon.com
- 47uF (50v) kondensator
- Låda för Arduino - på Amazon.com
- På / Av knapp
- 2 x 13 mm knappar (en röd och en grön keps)
- 2 x 2X7 BOX HEADER RAKT - samma som ovan på Phoenixent.com
- FLAT RIBBON CABLE 14 Conductor.050 "Pitch - samma som ovan på Phoenixent.com
- 9v batteri + klämkontakt
- Motstånd, ledningar, limpistol, lödpistol, lödning etc.
… och naturligtvis:
OWI Robotic Arm Edge - Robotarm - OWI -535 - på Adafruit.com
Steg 2: PROTOTYPING
Jag föreslår starkt att man prototyper var och en av kontrollenheterna innan man lödar ihop alla komponenterna.
Detta projekt använder några utmanande hårdvaror:
nRF24L01
Det tog mig ett tag att få de två nRF24 att prata med varandra. Tydligen ger varken Nano eller Uno tillräckligt med stabiliserad 3,3v effekt för att modulerna ska fungera konsekvent. En lösning i mitt fall var en 47uF kondensator över strömstiften på båda nRF24 -modulerna. Det finns också några särdrag med att använda RF24-bibliotek i IRQ- och icke-IRQ-lägen, så jag rekommenderar att studera exemplen riktigt noga.
Ett par bra resurser:
nRF24L01 IC -produktsida med låg effekt 2,4 GHz RF -sändtagare
RF24 drivrutinsbibliotekssida
Bara att googla nRF24 + arduino kommer att producera många länkar. Det är värt att undersöka
74HC595 SKIFTREGISTER
Inte överraskande att behöva styra 5 motorer, en lysdiod, två knappar och en trådlös modul jag tog slut på stift på Uno relativt snabbt. Det välkända sättet att "förlänga" ditt antal stift är att använda ett skiftregister. Eftersom nRF24 redan använde SPI -gränssnittet bestämde jag mig för att använda SPI för programmering av skiftregister också (för hastighet och för att spara stift) istället för funktionen shiftout (). Till min förvåning fungerade det som en charm från första gången. Du kan kolla in det i stifttilldelningen och i skisserna.
Brödbräda och bygelkablar är dina vänner.
Steg 3: HANDSKA
OWI Robotic ARM har 6 objekt att styra (OWI Robotic Arm Edge Picture)
- En lysdiod på enhetens GRIPPER
- EN GRIPPARE
- EN HANDLEDNING
- En ELBOW - är den del av robotarmen som är fäst vid handleden
- En SKULDER är den del av robotarmen som är fäst vid BASEN
- EN BAS
Handsken är utformad för att styra Robotic Arms LED och alla 5 motorer (Degrees of Freedom).
Jag har individuella sensorer markerade på bilderna samt en beskrivning nedan:
- GRIPPER styrs av knapparna på långfingret och pinky. Gripparen stängs genom att trycka pek- och långfingrarna ihop. Griper öppnas genom att trycka ringen och pinky tillsammans.
- WRIST styrs av det flexibla motståndet på indexfindern. Om fingret krullas halvvägs får handleden att sjunka, och att krulla det hela vägen får handleden att gå upp. Hålla pekfingret rakt stoppar handleden.
- ELBOW styrs av accelerometer - luta handflatan upp och ner flyttar armbågen upp respektive ned
- SKULDEN styrs av accelerometer - lutande handflata åt höger och till vänster (dock inte upp och ner!) Flyttar axeln upp respektive ned
- BASE styrs också av accelerometer, liknande axel -lutande handflata till höger och till vänster hela vägen upp och ner (handflatan uppåt) flyttar basen åt höger respektive vänster
- Lysdioden på griparen slås på/av genom att trycka på båda gripknapparna samtidigt.
Alla knappsvar är försenade med 1/4 sekund för att undvika skakningar.
Att montera handsken kräver lite lödning och mycket sömnad. I grund och botten är det bara att fästa 2 knappar, flexibelt motstånd, Accel/Gyro -modul på handskens tyg och ledningskablar till kontaktdosan.
Två lysdioder på anslutningslådan är:
- GRÖN - slå på
- GUL - blinkar när data överförs till armkontrollboxen.
Steg 4: TRANSMITTER BOX
Sändarboxen är i huvudsak Arduino Nano, trådlös nRF24-modul, flexibel trådkontakt och 3 motstånd: 2 neddragbara 10 kOhm-motstånd för gripknapparna på handsken och ett spänningsindelning på 20 kOhm för den flexibla sensorn som styr handleden.
Allt är lödt ihop på en vero-board. Observera att nRF24 "hänger" över Nano. Jag var orolig för att detta kan orsaka störningar, men det fungerar.
Att använda 9v-batteriet gör att remmen är lite skrymmande, men jag ville inte bråka med LiPo-batterier. Kanske senare.
Se stifttilldelningssteget för lödningsinstruktioner
Steg 5: ARM CONTROL BOX
Armkontrollbox är baserad på Arduino Uno. Den tar emot kommandon från handsken trådlöst via nRF24 -modulen och styr OWI Robotoc Arm via 3 L293D -drivrutinschips.
Eftersom nästan alla Uno -stift användes finns det många trådar inuti lådan - den stängs knappt!
Av design startar lådan i AV -läge (som om en rödstoppsknapp trycks in), vilket ger operatören tid att ta på sig handsken och göra sig redo. När den är klar trycker operatören på den gröna knappen, och anslutningen mellan handsken och kontrollboxen bör omedelbart upprättas (som indikeras av den gula lysdioden på handsken och den röda lysdioden på kontrollboxen).
ANSLUTAR TILL OWI
Anslutning till robotarmen görs via 14 -stifts dubbla radhuvud (enligt bilden ovan) via en 14 -trådig platt kabel.
- LED-anslutningar är gemensamma (-) och arduino-stift A0 via 220 Ohm-motstånd
- Alla motorkablar är anslutna till L293D-stift 3/6 eller 11/14 (+/- respektive). Varje L293D stöder 2 motorer, därav två par stift.
- OWI -kraftledningar är stiften längst till vänster (+6v) och till höger (GND) på den 7 -poliga kontakten på baksidan av den gula toppen. (Du kan se trådarna anslutna på bilden ovan). Dessa två är anslutna till stift 8 (+) och 4, 5, 12, 13 (GND) på alla tre L293D.
Se resten av pin -tilldelningen i nästa steg
Steg 6: PIN -UPPGIFT
NANO:
- 3.3v - 3.3v till nRF24L01 -chip (stift 2)
- 5v - 5v till accelerometerkort, knappar, flexibel sensor
- a0 - flexibel motståndsingång
- a1 - gul "comms" LED -kontroll
- a4 - SDA till accelerometer
- a5 - SCL till accelerometer
- d02 - nRF24L01 chip Avbrottsstift (stift 8)
- d03 - öppna gripknappens ingång
- d04 - stäng gripknappens ingång
- d09 - SPI CSN -stift till nRF24L01 -chip (stift 4)
- d10 - SPI CS -stift till nRF24L01 -chip (stift 3)
- d11 - SPI MOSI till nRF24L01 -chip (stift 6)
- d12 - SPI MISO till nRF24L01 -chip (stift 7)
- d13 - SPI SCK till nRF24L01 -chip (stift 5)
- Vin - 9v +
- GND - gemensam grund
UNO:
- 3.3v - 3.3v till nRF24L01 -chip (stift 2)
- 5v - 5v till knappar
- Vin - 9v +
- GND - gemensam grund
- a0 - Handled LED +
- a1 - SPI SS -stift för skiftregister Välj - för att fästa 12 på skiftregister
- a2 - RÖD knapp ingång
- a3 - GRÖN knappinmatning
- a4 - riktningsbas höger - stift 15 på L293D
- a5 - comms led
- d02 - nRF24L01 IRQ -ingång (stift 8)
- d03 - aktivera bas servo (pwm) stift 1 eller 9 på L293D
- d04 - riktningsbas vänster - stift 10 på respektive L293D
- d05 - aktivera axel servo (pwm) stift 1 eller 9 på L293D
- d06 - aktivera armbågsservo (pwm) stift 1 eller 9 på L293D
- d07 - SPI CSN -stift till nRF24L01 -chip (stift 4)
- d08 - SPI CS -stift till nRF24L01 -chip (stift 3)
- d09 - aktivera handledsservo (pwm) stift 1 eller 9 på L293D
- d10 - aktivera gripservo (pwm) stift 1 eller 9 på L293D
- d11 - SPI MOSI till nRF24L01 -chip (stift 6) och stift 14 på skiftregister
- d12 - SPI MISO till nRF24L01 -chip (stift 7)
- d13 - SPI SCK till nRF24L01 -chip (stift 5) och stift 11 på skiftregister
SKIFTREGISTER OCH L293D:
- stift QA (15) på 74HC595 till stift 2 i L293D #1
- stift QB (1) på 74HC595 till stift 7 i L293D #1
- stift QC (2) på 74HC595 till stift 10 i L293D #1
- stift QD (3) av 74HC595 till stift 15 i L293D #1
- stift QE (4) på 74HC595 till stift 2 i L293D #2
- stift QF (5) på 74HC595 till stift 7 i L293D #2
- stift QG (6) av 74HC595 till stift 10 i L293D #2
- stift QH (7) av 74HC595 till stift 15 i L293D #2
Steg 7: KOMMUNIKATION
Handske skickar 2 byte med data till kontrollboxen 10 gånger per sekund eller när en signal från en av sensorerna tas emot.
2 byte är tillräckligt för 6 kontroller eftersom vi bara behöver skicka:
- ON/OFF för LED (1 bit) - Jag använde faktiskt 2 bitar för att överensstämma med motorerna, men en räcker
- AV/HÖGER/VÄNSTER för 5 motorer: 2 bitar vardera = 10 bitar
Totalt 11 eller 12 bitar är tillräckligt.
Riktningskoder:
- AV: 00
- HÖGER: 01
- VÄNSTER: 10
Kontrollordet ser ut så här (bitvis):
Byte 2 ---------------- Byte 1 ----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - gripare
- M2 - handled
- M3 - armbåge
- M4 - axel
- M5 - bas
Byte 1 kan bekvämt matas direkt in i skiftregistret, eftersom det styr höger/vänster riktning för motorerna 1 till 4.
En timeout på 2 sekunder är aktiverad för kommunikation. Om timeout inträffar stoppas alla motorer som om en RÖD knapp trycktes.
Steg 8: SKETSAR och mer …
HANDSKE
Handske -skiss använder följande bibliotek:
- DirectIO - tillgängligt på Github
- I2Cdev - tillgängligt på Github
- Wire - en del av Arduino IDE
- MPU6050 - tillgänglig på Github
- SPI - en del av Arduino IDE
- RF24 - tillgänglig på Github
och tre bibliotek utvecklade av mig:
- AvgFilter - tillgängligt för Github
- DhpFilter - tillgängligt på Github
- TaskScheduler - tillgänglig på Github
Handskeskiss finns här: Handskeskiss v1.3
ARMKONTROLLBOX
Arm sketch använder följande bibliotek:
- DirectIO - tillgängligt på Github
- PinChangeInt - tillgängligt på Github
- SPI - en del av Arduino IDE
- RF24 - tillgänglig på Github
och ett bibliotek utvecklat av mig:
TaskScheduler - tillgänglig på Github
Armskiss finns här: Arm Sketch v1.3
Datablad för maskinvara som används
- 74HC595 skiftregister - datablad
- L293D motordrivrutin - datablad
- nRF24 trådlös modul - datablad
- MPU6050 accelerometer/gyroskopmodul - datablad
31 maj 2015 UPPDATERING:
En ny version av handsk- och armkontrollboxskisser finns här: Handsk- och armskisser v1.5
De finns också på github här.
Ändringar
- Lagt till ytterligare två byte i kommunikationsstrukturen för att skicka begärt motorhastighet för handled, armbåge, axel- och basmotorer som ett 5 -bitars värde (0.. 31) från handsken i proportion till vinkeln på kontrollgesten (se nedan). Arm Control Box kartlägger värden [0.. 31] till respektive PWM -värden för var och en av motorerna. Detta möjliggör gradvis hastighetsreglering av föraren och mer exakt armhantering.
- Ny uppsättning gester:
1. LED: Knappar kontroll LED - långfingerknapp - ON, pinkie finger -knapp - OFF
2. GRIPPER: Flexibla bandkontroller Gripper - halvböjt finger - ÖPPET, helt böjt finger - STÄNG
3. HANDLED: Handleden styrs genom att luta handflatan från helt horisontellt läge UPP respektive NER. Mer tilt ger högre hastighet
4. ARM: Armen styrs genom att luta handflatan från helt horisontellt läge VÄNSTER och HÖGER. Mer tilt ger högre hastighet
5. SKULDER: Axeln styrs genom att rotera handflatan HÖGER och VÄNSTER från handflatan och pekar rakt uppåt. Handflatan roteras längs armbågsaxeln (som viftar med handen)
6. BASE: Basen styrs på samma sätt som axeln med handflatan pekande rakt nedåt.
Steg 9: VAD ÄNNU?
IMAGINATION PÅ ARBETET
Som vanligt med sådana system kan de programmeras att göra mycket mer.
Till exempel innehåller nuvarande design redan ytterligare förmågor, inte möjligt med standardfjärrkontrollen:
- Gradvis hastighetsökning: varje motorrörelse initieras med en fördefinierad minimal hastighet, som ökas gradvis var 1 sekund tills en maximal hastighet uppnås. Detta möjliggör mer exakt styrning av var och en av motorerna (särskilt handleden och griparen)
- Snabbare avstängning av rörelse: när kommandot tas emot av armboxen för att stoppa en motor, backar den motorn för en stund i cirka 50 ms, vilket "bryter" rörelsen och möjliggör en mer exakt kontroll.
VAD ANNARS?
Kanske en mer genomarbetad kontroll gest kan genomföras. Eller samtidigt kan gester användas för utarbetade kontroller. Kan armen dansa?
Om du har en idé om hur du programmerar handsken igen eller har en version av en skiss du vill att jag ska testa - meddela mig: [email protected]
Steg 10: *** VI VINNADE !!! ***
Detta projekt vann första priset i tävlingen Coded Creations som sponsras av Microsoft.
Kolla in det! WOO-HOO !!!
Andra pris i de kodade skapelserna
Rekommenderad:
Mångsidig I/O Extender PCB för att styra många Nixie -rör med I2C: 9 steg (med bilder)
Mångsidig I/O Extender PCB för att styra många Nixie -rör med I2C: För närvarande finns det ett stort intresse för att väcka vintage nixie -rör till liv. Massor av nixie -rörklockor är tillgängliga på marknaden. Det verkade till och med vara en livlig handel med gamla lager av ryska nixie -rör. Även här på Instructables där
Använd Cortana och en Arduino för att styra RGB -lysdioder eller Ledstrips med din röst !: 4 steg (med bilder)
Använd Cortana och en Arduino för att styra RGB -lysdioder eller Ledstrips med din röst !: I den här instruerbara filmen visar jag dig hur du kan styra din RGB -LED eller LED -remsa med din röst. Detta görs av CoRGB -appen som är tillgänglig gratis i Windows App Store. Denna app är en del av mitt CortanaRoom -projekt. När du är klar med
Android (remotexy) UI för att styra servomotor med Arduino och Bluetooth: 7 steg (med bilder)
Android (remotexy) UI för att styra servomotor med Arduino och Bluetooth: I den här instruktionsboken ger jag dig ett snabbt steg för att göra Android -användargränssnitt med Remotexy Interface Maker för att styra servomotor ansluten till Arduino Mega via Bluetooth. Denna video visar hur användargränssnittet kommer att styra servomotorns hastighet och position
Hur man använder ESP32 för att styra LED med Blynk Via WiFi: 7 steg (med bilder)
Så här använder du ESP32 för att styra LED med Blynk Via WiFi: Denna handledning kommer att använda ESP32 -utvecklingskort för att styra LED med Blynk via WiFi. Blynk är en plattform med iOS- och Android -appar för att styra Arduino, Raspberry Pi och liknande över Internet. Det är en digital instrumentpanel där du kan bygga en
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?