Innehållsförteckning:

Vifta med handen för att styra OWI robotarm Inga strängar kopplade: 10 steg (med bilder)
Vifta med handen för att styra OWI robotarm Inga strängar kopplade: 10 steg (med bilder)

Video: Vifta med handen för att styra OWI robotarm Inga strängar kopplade: 10 steg (med bilder)

Video: Vifta med handen för att styra OWI robotarm Inga strängar kopplade: 10 steg (med bilder)
Video: Универсальный выход из аллергии 2024, November
Anonim
Image
Image
Delar
Delar

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:

  1. En handske utrustad med tillräckligt med sensorer för att styra en LED och 5 motorer
  2. En Arduino Nano -baserad sändarenhet för att acceptera kontrollkommandon från handsken och skicka den trådlöst till Arm controller -enheten
  3. En Arduino Uno-baserad trådlös mottagare och motorstyrenhet ansluten till OWI Robotic Arm

FUNKTIONER

  1. Stöd för alla 5 grader av frihet (DOF) och lysdioden
  2. Stor röd knapp - för att omedelbart stoppa motorerna på armen och förhindra skador
  3. 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:

  1. Isotoner Smartouch Tech Stretch Stitched Glove (eller liknande) - på Amazon.com
  2. Spectra Symboflex Sensor 2.2 " - på Amazon.com
  3. GY -521 6DOF MPU6050 3 Axis Gyroscope + Accelerometer Module - på Fasttech.com
  4. 2X5 BOX HEADER RAKT - på Phoenixent.com
  5. 2X5 IDC SOCKET -RECEPTACLE - på Phoenixent.com
  6. FLAT RIBBON CABLE 10 Conductor.050 "Pitch - på Phoenixent.com
  7. 2 x 5 mm lysdioder - grönt och gult
  8. 2 x små knappar
  9. Motstånd, trådar, nål, svart tråd, limpistol, lödpistol, lödning etc.

TRANSMISSION STRAP-ON BOX:

  1. Arduino -kompatibelt Nano v3.0 ATmega328P -20AU -kort - på Fasttech.com
  2. nRF24L01+ 2,4 GHz trådlös sändtagare Arduino -kompatibel - på Amazon.com
  3. Gymboss ARMBAND - på Amazon.com
  4. 9V batterihållarboxfodral med Wire Lead ON/OFF Switch - på Amazon.com
  5. 2X5 BOX HEADER RAKT - på Phoenixent.com
  6. 9v batteri
  7. 47uF (50v) kondensator
  8. Motstånd, ledningar, limpistol, lödpistol, lödning etc.

OWI ROBOTIC ARM CONTROLLER BOX:

  1. Arduino Compatible Uno R3 Rev3 Development Board - på Fasttech.com
  2. Prototype Shield DIY KIT för Arduino (eller liknande) - på Amazon.com
  3. nRF24L01+ 2,4 GHz trådlös sändtagare Arduino -kompatibel - på Amazon.com
  4. 3 x L293D 16 -polig integrerad krets IC -motordrivrutin - på Fasttech.com
  5. 1 x SN74HC595 74HC595 8-bitars skiftregister med 3-staters utdataregister DIP16-på Amazon.com
  6. 47uF (50v) kondensator
  7. Låda för Arduino - på Amazon.com
  8. På / Av knapp
  9. 2 x 13 mm knappar (en röd och en grön keps)
  10. 2 x 2X7 BOX HEADER RAKT - samma som ovan på Phoenixent.com
  11. FLAT RIBBON CABLE 14 Conductor.050 "Pitch - samma som ovan på Phoenixent.com
  12. 9v batteri + klämkontakt
  13. Motstånd, ledningar, limpistol, lödpistol, lödning etc.

… och naturligtvis:

OWI Robotic Arm Edge - Robotarm - OWI -535 - på Adafruit.com

Steg 2: PROTOTYPING

PROTOTYPING
PROTOTYPING
PROTOTYPING
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

HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE

OWI Robotic ARM har 6 objekt att styra (OWI Robotic Arm Edge Picture)

  1. En lysdiod på enhetens GRIPPER
  2. EN GRIPPARE
  3. EN HANDLEDNING
  4. En ELBOW - är den del av robotarmen som är fäst vid handleden
  5. En SKULDER är den del av robotarmen som är fäst vid BASEN
  6. 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:

  1. 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.
  2. 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.
  3. ELBOW styrs av accelerometer - luta handflatan upp och ner flyttar armbågen upp respektive ned
  4. SKULDEN styrs av accelerometer - lutande handflata åt höger och till vänster (dock inte upp och ner!) Flyttar axeln upp respektive ned
  5. 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
  6. 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:

  1. GRÖN - slå på
  2. GUL - blinkar när data överförs till armkontrollboxen.

Steg 4: TRANSMITTER BOX

SÄNDARLåda
SÄNDARLåda
SÄNDARLåda
SÄNDARLåda
SÄNDARLåda
SÄNDARLåda

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
ARMKONTROLLBOX
ARMKONTROLLBOX
ARMKONTROLLBOX
ARMKONTROLLBOX
ARMKONTROLLBOX
ARMKONTROLLBOX
ARMKONTROLLBOX

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

PIN -UPT
PIN -UPT
PIN -UPT
PIN -UPT
PIN -UPT
PIN -UPT

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

KOMMUNIKATION
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 …

SKETSAR och mer …
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?

VAD ANNARS?
VAD ANNARS?

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 !!! ***

*** VI VANN !!! ***
*** VI VANN !!! ***

Detta projekt vann första priset i tävlingen Coded Creations som sponsras av Microsoft.

Kolla in det! WOO-HOO !!!

Kodade skapelser
Kodade skapelser
Kodade skapelser
Kodade skapelser

Andra pris i de kodade skapelserna

Rekommenderad: