Innholdsfortegnelse:

Vift hånden for å kontrollere OWI robotarm Ingen strenger festet: 10 trinn (med bilder)
Vift hånden for å kontrollere OWI robotarm Ingen strenger festet: 10 trinn (med bilder)

Video: Vift hånden for å kontrollere OWI robotarm Ingen strenger festet: 10 trinn (med bilder)

Video: Vift hånden for å kontrollere OWI robotarm Ingen strenger festet: 10 trinn (med bilder)
Video: Jeg jobber på Private Museum for the Rich and Famous. Skrekkhistorier. Skrekk. 2024, Desember
Anonim
Image
Image
Deler
Deler

IDEEN:

Det er minst 4 andre prosjekter på Instructables.com (fra 13. mai 2015) rundt endring eller kontroll av OWI Robotic Arm. Ikke overraskende, siden det er et så flott og billig robotsett å leke med. Dette prosjektet er lik i ånden (dvs. kontroller robotarmen med Arduino), men annerledes i tilnærmingen. [video]

Tanken er å kunne kontrollere robotarmen trådløst ved hjelp av bevegelser. Jeg prøvde også å holde modifikasjoner av robotarmen til et minimum, så den kan fortsatt brukes med den originale kontrolleren.

Høres enkelt ut.

Det det endte med å bli er et tredelt prosjekt:

  1. En hanske utstyrt med nok sensorer til å styre en LED og 5 motorer
  2. En Arduino Nano -basert sender som godtar kontrollkommandoer fra hansken og sender den trådløst til Arm controller -enheten
  3. En Arduino Uno-basert trådløs mottaker og motorstyringsenhet festet til OWI Robotic Arm

FUNKSJONER

  1. Støtte for alle 5 frihetsgrader (DOF) og LED
  2. Stor rød knapp - for å stoppe motorene på armen umiddelbart for å forhindre skade
  3. Bærbar modulær design

For mobilbrukere: "salgsfremmende video" av dette prosjektet er på YouTube her.

Trinn 1: Deler

HANSKE:

Du trenger følgende for å bygge en hanskekontroller:

  1. Isotoner Smartouch Tech Stretch Hitch (eller lignende) - på Amazon.com
  2. Spectra Symboflex Sensor 2.2 " - på Amazon.com
  3. GY -521 6DOF MPU6050 3 -akse gyroskop + akselerometermodul - på Fasttech.com
  4. 2X5 BOX HEADER RETT - 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 og gult
  8. 2 x små knapper
  9. Motstander, ledninger, nål, svart tråd, limpistol, loddepistol, lodding, 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 transceiver Arduino -kompatibel - på Amazon.com
  3. Gymboss WRISTBAND - på Amazon.com
  4. 9V batteriholderboksveske med Wire Lead ON/OFF Switch - på Amazon.com
  5. 2X5 BOX HEADER RETT - på Phoenixent.com
  6. 9v batteri
  7. 47uF (50v) kondensator
  8. Motstander, ledninger, limpistol, loddepistol, lodding, etc.

OWI ROBOTIC ARM CONTROLLER BOX:

  1. Arduino Compatible Uno R3 Rev3 Development Board - på Fasttech.com
  2. Prototype Shield DIY KIT for Arduino (eller lignende) - på Amazon.com
  3. nRF24L01+ 2,4 GHz trådløs transceiver Arduino -kompatibel - på Amazon.com
  4. 3 x L293D 16 -pinners integrert krets IC -motordriver - på Fasttech.com
  5. 1 x SN74HC595 74HC595 8-biters skiftregister med 3-staters utdataregistre DIP16-på Amazon.com
  6. 47uF (50v) kondensator
  7. Boks for Arduino - på Amazon.com
  8. På / av bryter
  9. 2 x 13 mm knapper (en rød og en grønn hette)
  10. 2 x 2X7 BOX HEADER STRAIGHT - samme som ovenfor på Phoenixent.com
  11. FLAT RIBBON CABLE 14 Conductor.050 "pitch - samme som ovenfor på Phoenixent.com
  12. 9v batteri + klemmekontakt
  13. Motstander, ledninger, limpistol, loddepistol, lodding, etc.

… og selvfølgelig:

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

Trinn 2: PROTOTYPING

PROTOTYPING
PROTOTYPING
PROTOTYPING
PROTOTYPING

Jeg foreslår sterkt å prototyper hver av kontrollerenhetene før du lodder alle komponentene sammen.

Dette prosjektet bruker noen utfordrende maskinvarer:

nRF24L01

Det tok meg en stund å få de to nRF24 til å snakke med hverandre. Tilsynelatende gir verken Nano eller Uno nok stabilisert 3.3v effekt for at modulene skal fungere konsekvent. En løsning i mitt tilfelle var en 47uF kondensator på tvers av strømstiftene på begge nRF24 -modulene. Det er også noen få finesser ved bruk av RF24-bibliotek i IRQ- og ikke-IRQ-moduser, så jeg anbefaler å studere eksemplene nøye.

Et par flotte ressurser:

nRF24L01 Ultra lav effekt 2,4 GHz RF -mottaker IC produktside

RF24 driverbiblioteksside

Bare å google nRF24 + arduino vil produsere mange lenker. Det er verdt å undersøke

74HC595 SKIFTREGISTER

Ikke overraskende å måtte styre 5 motorer, en LED, to knapper og en trådløs modul jeg gikk tom for pins på Uno relativt raskt. Den velkjente måten å "forlenge" pin -tallet ditt er å bruke et skiftregister. Siden nRF24 allerede brukte SPI -grensesnittet, bestemte jeg meg for å bruke SPI for programmering av skiftregister også (for hastighet og for å lagre pins) i stedet for shiftout () -funksjonen. Til min overraskelse fungerte det som en sjarm fra første gang. Du kan sjekke det ut i pin -oppgaven og i skissene.

Breadboard og jumper wires er vennene dine.

Trinn 3: HANSKE

HANSKE
HANSKE
HANSKE
HANSKE
HANSKE
HANSKE
HANSKE
HANSKE

OWI Robotic ARM har 6 elementer å kontrollere (OWI Robotic Arm Edge Picture)

  1. En LED plassert på GRIPPER på enheten
  2. EN GRIPPER
  3. EN HÅNDVERK
  4. En ELBOW - er delen av robotarmen festet til HÅNDLEDEN
  5. En SKULDER er delen av robotarmen festet til BASE
  6. EN BASE

Hansken er designet for å kontrollere Robotic Arms LED og alle 5 motorene (Degrees of Freedom).

Jeg har individuelle sensorer merket på bildene, samt en beskrivelse nedenfor:

  1. GRIPPER styres av knappene på langfingeren og pinky. Griper lukkes ved å trykke pekefingeren og langfingrene sammen. Griper åpnes ved å trykke ringen og rosa sammen.
  2. WRIST styres av den fleksible motstanden på indeksfinner. Krølling av fingeren halvveis får håndleddet til å gå ned, og krølle det hele veien får håndleddet til å gå opp. Å holde pekefingeren rett stopper håndleddet.
  3. ELBÅEN styres av akselerometer - vippe håndflaten opp og ned beveger albuen henholdsvis opp og ned
  4. SKULDEREN styres av akselerometer - vipper håndflaten til høyre og til venstre (ikke opp ned!). Flytter skulderen henholdsvis opp og ned
  5. BASE styres også av akselerometer, i likhet med skulder -vippende håndflate til høyre og til venstre helt opp ned (håndflaten vender opp) beveger basen henholdsvis høyre og venstre
  6. Lysdioden på griperen slås av/på ved å trykke begge gripeknappene samtidig.

Alle knappersvar blir forsinket med 1/4 av et sekund for å unngå rystelser.

Å montere hansken krever litt lodding og mye sying. I utgangspunktet er det bare å feste 2 knapper, fleksibel motstand, Accel/Gyro -modul til stoffet i hansken og føringskabler til kontaktboksen.

To lysdioder på tilkoblingsboksen er:

  1. GRØNN - slå på
  2. GUL - blinker når data overføres til armkontrollboksen.

Trinn 4: TRANSMITTER BOX

SENDERBOKS
SENDERBOKS
SENDERBOKS
SENDERBOKS
SENDERBOKS
SENDERBOKS

Senderkassen er i hovedsak Arduino Nano, nRF24 trådløs modul, fleksibel ledningskontakt og 3 motstander: 2 nedtrekkbare 10 kOhm motstander for gripekontrollknappene på hansken, og en spenningsdeling 20 kOhm motstand for den fleksible sensoren som styrer håndleddet.

Alt er loddet sammen på et vero-board. Vær oppmerksom på at nRF24 "henger" over Nano. Jeg var bekymret for at dette kan forårsake forstyrrelser, men det fungerer.

Ved å bruke 9v-batteriet gjør stroppdelen litt klumpete, men jeg ønsket ikke å rote med LiPo-batterier. Kanskje senere.

Se trinnet for tildeling av pinner for loddeinstruksjoner

Trinn 5: ARM CONTROL BOX

ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS
ARMKONTROLLBOKS

Armkontrollboks er basert på Arduino Uno. Den mottar kommandoer fra hansken trådløst via nRF24 -modulen, og styrer OWI Robotoc Arm via 3 L293D -driverbrikker.

Siden nesten alle Uno -pinner ble brukt, er det mange ledninger inne i esken - den stenger knapt!

Etter design starter boksen i AV -modus (som om du trykker på en rød stoppknapp), noe som gir operatøren tid til å ta på hansken og gjøre seg klar. Når den er klar, trykker operatøren på den grønne knappen, og forbindelsen mellom hansken og kontrollboksen bør opprettes umiddelbart (som indikert av den gule LED -en på hansken og den røde LED -en på kontrollboksen).

KOBLER TIL OWI

Tilkobling til robotarmen gjøres via 14 -pins to rader header (i henhold til bildet ovenfor) via en 14 -tråds flat kabel.

  • LED-tilkoblinger er til felles jord (-) og arduino-pinne A0 via 220 Ohm motstand
  • Alle motorkabler er koblet til L293D-pinner 3/6 eller 11/14 (+/- henholdsvis). Hver L293D støtter 2 motorer, derav to pinner.
  • OWI -strømlinjer er venstre (+6v) og høyre (GND) pinner på 7 -pinners kontakten på baksiden av den gule toppen. (Du kan se ledningene plugget inn på bildet ovenfor). Disse to er koblet til pinne 8 (+) og 4, 5, 12, 13 (GND) på alle tre L293D -er.

Se resten av pin -tildelingen i neste trinn

Trinn 6: PIN -OPPGAVE

PIN -OPPGAVE
PIN -OPPGAVE
PIN -OPPGAVE
PIN -OPPGAVE
PIN -OPPGAVE
PIN -OPPGAVE

NANO:

  • 3.3v - 3.3v til nRF24L01 chip (pin 2)
  • 5v - 5v til akselerometerkort, knapper, fleksibel sensor
  • a0 - fleksibel motstandsinngang
  • a1 - gul "comms" LED -kontroll
  • a4 - SDA til akselerometer
  • a5 - SCL til akselerometer
  • d02 - nRF24L01 chip Interrupt pin (pin 8)
  • d03 - åpen gripeknappinngang
  • d04 - lukk gripeknappinngang
  • d09 - SPI CSN pin til nRF24L01 chip (pin 4)
  • d10 - SPI CS pin til nRF24L01 chip (pin 3)
  • d11 - SPI MOSI til nRF24L01 -brikke (pin 6)
  • d12 - SPI MISO til nRF24L01 -brikke (pin 7)
  • d13 - SPI SCK til nRF24L01 -brikke (pin 5)
  • Vin - 9v +
  • GND - felles grunn

UNO:

  • 3.3v - 3.3v til nRF24L01 chip (pin 2)
  • 5v - 5v til knapper
  • Vin - 9v +
  • GND - felles grunn
  • a0 - LED for håndleddet +
  • a1 - SPI SS -pin for skiftregister Velg - for å feste 12 på skiftregister
  • a2 - RØD knappinngang
  • a3 - GRØNN knappinngang
  • a4 - retning base høyre - pin 15 på L293D
  • a5 - komm. led
  • d02 - nRF24L01 IRQ -inngang (pin 8)
  • d03 - aktiver baseservo (pwm) pin 1 eller 9 på L293D
  • d04 - retning base venstre - pin 10 på respektive L293D
  • d05 - aktiver skulder servo (pwm) pin 1 eller 9 på L293D
  • d06 - aktiver albue servo (pwm) pin 1 eller 9 på L293D
  • d07 - SPI CSN pin til nRF24L01 chip (pin 4)
  • d08 - SPI CS pin til nRF24L01 chip (pin 3)
  • d09 - aktiver håndleddservo (pwm) pin 1 eller 9 på L293D
  • d10 - aktiver griper servo (pwm) pin 1 eller 9 på L293D
  • d11 - SPI MOSI til nRF24L01 chip (pin 6) og pin 14 på Shift Register
  • d12 - SPI MISO til nRF24L01 -brikke (pin 7)
  • d13 - SPI SCK til nRF24L01 chip (pin 5) og pin 11 på Shift Register

SKIFTREGISTER OG L293D:

  • pin QA (15) på 74HC595 til pin 2 i L293D #1
  • pin QB (1) av 74HC595 til pin 7 i L293D #1
  • pin QC (2) av 74HC595 til pin 10 i L293D #1
  • pin QD (3) av 74HC595 til pin 15 i L293D #1
  • pin QE (4) av 74HC595 til pin 2 i L293D #2
  • pin QF (5) av 74HC595 til pin 7 i L293D #2
  • pin QG (6) av 74HC595 til pin 10 i L293D #2
  • pin QH (7) av 74HC595 til pin 15 i L293D #2

Trinn 7: KOMMUNIKASJON

KOMMUNIKASJON
KOMMUNIKASJON

Hanske sender 2 byte med data til kontrollboksen 10 ganger i sekundet eller når et signal fra en av sensorene mottas.

2 byte er tilstrekkelig for 6 kontroller fordi vi bare trenger å sende:

  • ON/OFF for LED (1 bit) - Jeg brukte faktisk 2 bits for å være i samsvar med motorene, men en er nok
  • AV/HØYRE/VENSTRE for 5 motorer: 2 bit hver = 10 bits

Totalt 11 eller 12 bits er tilstrekkelig.

Retningskoder:

  • AV: 00
  • HØYRE: 01
  • VENSTRE: 10

Kontrollord ser slik ut (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 - griper
  • M2 - håndledd
  • M3 - albue
  • M4 - skulder
  • M5 - base

Byte 1 kan lett mates direkte inn i skiftregisteret, siden det er høyre/venstre retning for motorene 1 til 4.

En timeout på 2 sekunder er aktivert for kommunikasjon. Hvis det oppstår timeout, stoppes alle motorene som om en RØD knapp ble trykket.

Trinn 8: SKETSER og mer …

SKETSER og mer …
SKETSER og mer …

HANSKE

Hanskeskisse bruker følgende biblioteker:

  • DirectIO - tilgjengelig på Github
  • I2Cdev - tilgjengelig på Github
  • Wire - en del av Arduino IDE
  • MPU6050 - tilgjengelig på Github
  • SPI - en del av Arduino IDE
  • RF24 - tilgjengelig på Github

og tre biblioteker utviklet av meg:

  • AvgFilter - tilgjengelig fra Github
  • DhpFilter - tilgjengelig på Github
  • TaskScheduler - tilgjengelig på Github

Hanskeskisse er tilgjengelig her: Hanskeskisse v1.3

ARMKONTROLLBOKS

Arm sketch bruker følgende biblioteker:

  • DirectIO - tilgjengelig på Github
  • PinChangeInt - tilgjengelig på Github
  • SPI - en del av Arduino IDE
  • RF24 - tilgjengelig på Github

og et bibliotek utviklet av meg:

TaskScheduler - tilgjengelig på Github

Armskisse er tilgjengelig her: Arm Sketch v1.3

Dataark for maskinvare som brukes

  • 74HC595 skiftregister - datablad
  • L293D motordriver - datablad
  • nRF24 trådløs modul - datablad
  • MPU6050 akselerometer/gyroskopmodul - datablad

31. mai 2015 OPPDATERING:

En ny versjon av hansker og armkontrollbokskisser er tilgjengelig her: Hanske- og armskisser v1.5

De ligger også på github her.

Endringer

  • Lagt til ytterligere to byte i kommunikasjonsstrukturen for å sende forespurt motorhastighet for håndledd-, albue-, skulder- og basismotorer som en 5 -bits verdi (0.. 31) fra hansken i forhold til vinkelen på kontrollbevegelsen (se nedenfor). Arm Control Box tilordner verdier [0.. 31] til respektive PWM -verdier for hver av motorene. Dette muliggjør gradvis hastighetskontroll av operatøren og mer presis armhåndtering.
  • Nytt sett med bevegelser:

1. LED: Knapper styrer LED - langfingerknapp - PÅ, pinkifinger -knapp - AV

2. GRIPPER: Fleksibel stripekontroll Gripper - halvbøyet finger - ÅPEN, helt bøyd finger - LUK

3. HÅNDVERK: Håndleddet styres ved å vippe håndflaten fra henholdsvis helt horisontal posisjon OPP og NED. Mer tilt gir mer fart

4. ARM: Armen styres ved å vippe håndflaten fra helt horisontal posisjon VENSTRE og HØYRE. Mer tilt gir mer fart

5. SKULDER: Skulderen styres ved å rotere håndflaten HØYRE og VENSTRE fra håndflaten og peke rett opp. Håndflaten roteres langs albueaksen (det er å vinke med hånden)

6. BASE: Basen styres på samme måte som skulderen med håndflaten pekende rett ned.

Trinn 9: HVA ELLER?

HVA ANNET?
HVA ANNET?

IMAGINASJON PÅ JOBBEN

Som vanlig med slike systemer kan de programmeres til å gjøre mye mer.

For eksempel inneholder nåværende design allerede flere evner, ikke mulig med standard fjernkontroll:

  • Gradvis hastighetsøkning: hver motorbevegelse startes med en forhåndsdefinert minimal hastighet, som økes gradvis hvert 1. sekund til en maksimal hastighet oppnås. Dette gir mer presis kontroll over hver av motorene (spesielt håndleddet og griperen)
  • Raskere bevegelsesavbrytelse: Når kommandoen mottas av armboksen for å stoppe en motor, reverserer den motoren et øyeblikk i omtrent 50 ms, og dermed "bryter" bevegelsen og gir en mer presis kontroll.

HVA ANNET?

Kanskje en mer forseggjort kontrollbevegelse kan implementeres. Eller samtidige bevegelser kan brukes til omfattende kontroller. Kan armen danse?

Hvis du har en idé om hvordan du programmerer hansken på nytt, eller har en versjon av en skisse du vil at jeg skal teste - vennligst gi meg beskjed: [email protected]

Trinn 10: *** VI VINNE !!! ***

*** VI VANT !!! ***
*** VI VANT !!! ***

Dette prosjektet vant førstepremien i konkurransen Coded Creations sponset av Microsoft.

Sjekk det ut! WOO-HOO !!!

Kodede kreasjoner
Kodede kreasjoner
Kodede kreasjoner
Kodede kreasjoner

Andre pris i de kodede kreasjonene

Anbefalt: