Indholdsfortegnelse:

Vift din hånd med at styre OWI robotarm Ingen snore vedhæftet: 10 trin (med billeder)
Vift din hånd med at styre OWI robotarm Ingen snore vedhæftet: 10 trin (med billeder)

Video: Vift din hånd med at styre OWI robotarm Ingen snore vedhæftet: 10 trin (med billeder)

Video: Vift din hånd med at styre OWI robotarm Ingen snore vedhæftet: 10 trin (med billeder)
Video: A diary containing terrible secrets. Transition. Gerald Durrell. Mystic. Horror 2024, December
Anonim
Image
Image
Dele
Dele

IDEEN:

Der er mindst 4 andre projekter på Instructables.com (pr. 13. maj 2015) omkring ændring eller kontrol af OWI Robotic Arm. Ikke overraskende, da det er et så godt og billigt robotkit at lege med. Dette projekt er ens i ånden (dvs. styr den robotarm med Arduino), men anderledes i tilgangen. [video]

Ideen er at kunne styre robotarmen trådløst ved hjælp af bevægelser. Jeg forsøgte også at holde ændringer af robotarmen til et minimum, så den stadig kunne bruges med den originale controller.

Lyder enkelt.

Hvad det endte med at være, er et tredelt projekt:

  1. En handske udstyret med nok sensorer til at styre en LED og 5 motorer
  2. En Arduino Nano -baseret senderenhed til at acceptere kontrolkommandoer fra handsken og sende den trådløst til Arm controller -enheden
  3. En Arduino Uno-baseret trådløs modtager og motorstyringsenhed fastgjort til OWI Robotic Arm

FUNKTIONER

  1. Understøttelse af alle 5 frihedsgrader (DOF) og LED'en
  2. Stor rød knap - for øjeblikkeligt at stoppe motorerne på armen og forhindre skader
  3. Bærbart modulært design

For mobilbrugere: "reklamevideoen" af dette projekt er på YouTube her.

Trin 1: Dele

HANDSKE:

Du skal bruge følgende for at bygge en handskecontroller:

  1. Isotoner Smartouch Tech Stretch Stitched Handske (eller lignende) - på Amazon.com
  2. Spectra Symboflex Sensor 2.2 " - på Amazon.com
  3. GY -521 6DOF MPU6050 3 -akset gyroskop + accelerometer -modul - på Fasttech.com
  4. 2X5 BOX HEADER STRAIGHT - 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øn og gul
  8. 2 x små knapper
  9. Modstande, ledninger, nål, sort tråd, limpistol, loddepistol, lodning osv.

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 batteriholder boks etui med Wire Lead ON/OFF switch - på Amazon.com
  5. 2X5 BOX HEADER STRAIGHT - på Phoenixent.com
  6. 9v batteri
  7. 47uF (50v) kondensator
  8. Modstande, ledninger, limpistol, loddepistol, lodning osv.

OWI ROBOTIC ARM CONTROLLER BOX:

  1. Arduino -kompatibelt Uno R3 Rev3 Development Board - på Fasttech.com
  2. Prototype Shield DIY KIT til 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 -bens integreret kredsløb IC -motordriver - på Fasttech.com
  5. 1 x SN74HC595 74HC595 8-bit skiftregister med 3-staters outputregistre DIP16-på Amazon.com
  6. 47uF (50v) kondensator
  7. Kasse til Arduino - på Amazon.com
  8. Tænd/sluk -kontakt
  9. 2 x 13 mm knapper (en rød og en grøn kasket)
  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 + clip-on stik
  13. Modstande, ledninger, limpistol, loddepistol, lodning osv.

… og selvfølgelig:

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

Trin 2: PROTOTYPING

PROTOTYPING
PROTOTYPING
PROTOTYPING
PROTOTYPING

Jeg foreslår på det kraftigste at prototypere hver af controllerenhederne, før alle lodde komponenter loddes sammen.

Dette projekt bruger et par udfordrende stykker hardware:

nRF24L01

Det tog mig et stykke tid at få de to nRF24 til at tale med hinanden. Tilsyneladende leverer hverken Nano eller Uno nok af stabiliseret 3.3v effekt til, at modulerne kan fungere konsekvent. En løsning i mit tilfælde var en 47uF kondensator på tværs af strømstifterne på begge nRF24 -moduler. Der er også et par særheder ved brug af RF24-bibliotek i IRQ- og ikke-IRQ-tilstande, så jeg anbefaler at studere eksemplerne virkelig omhyggeligt.

Et par store ressourcer:

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

RF24 Driver biblioteksside

Bare at google nRF24 + arduino vil producere en masse links. Det er værd at undersøge

74HC595 SKIFTREGISTER

Ikke overraskende at skulle styre 5 motorer, en LED, to knapper og et trådløst modul, jeg løb relativt hurtigt tør for stifter på Uno. Den velkendte måde at "forlænge" dit pinkode er at bruge et skiftregister. Da nRF24 allerede brugte SPI -grænsefladen, besluttede jeg også at bruge SPI til programmering af skiftregister (for hastighed og for at gemme ben) i stedet for funktionen shiftout (). Til min overraskelse virkede det som en charme fra første gang. Du kan tjekke det ud i pin -tildelingen og i skitserne.

Breadboard og jumperwires er dine venner.

Trin 3: HANDSKE

HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE
HANDSKE

OWI Robotic ARM har 6 elementer at styre (OWI Robotic Arm Edge Picture)

  1. En LED på enhedens GRIPPER
  2. EN GRIPPER
  3. EN HÅNDLED
  4. En ELBOW - er den del af robotarmen, der er fastgjort til HÅNDLEDET
  5. En SKULDER er den del af robotarmen, der er fastgjort til BASE
  6. EN BASE

Handsken er designet til at styre Robotic Arms LED og alle 5 motorer (frihedsgrader).

Jeg har individuelle sensorer markeret på billederne samt en beskrivelse herunder:

  1. GRIPPEREN styres af knapperne på langfingeren og pinky. Griberen lukkes ved at trykke indeks og langfingre sammen. Griberen åbnes ved at trykke ringen og lyserød sammen.
  2. WRIST styres af den fleksible modstand på indeksfinderen. Krølning af fingeren halvvejs får håndleddet til at gå ned, og krølle det hele vejen får håndleddet til at gå op. Ved at holde pegefingeren lige stopper håndleddet.
  3. ELBÅEN styres af accelerometer - vippe håndfladen op og ned flytter albuen henholdsvis op og ned
  4. SKULDEN styres af accelerometer - vippe håndfladen til højre og til venstre (dog ikke på hovedet!) Bevæger skulderen henholdsvis op og ned
  5. BASE'en styres også af accelerometer, svarende til skulder -vippende håndflade til højre og til venstre helt på hovedet (håndfladen opad) flytter basen henholdsvis til højre og venstre
  6. Lysdioden på griberen tændes/slukkes ved at trykke begge griberkontrolknapper sammen.

Alle knappersvar er forsinket med 1/4 sekund for at undgå rystelser.

Montering af handsken kræver lidt lodning og meget syning. Grundlæggende er det bare at vedhæfte 2 knapper, fleksibel modstand, Accel/Gyro -modul til handskens stof og kabelføring til forbindelsesboksen.

To lysdioder på tilslutningsboksen er:

  1. GRØN - tænd for strømmen
  2. GUL - blinker, når data overføres til armkontrolboksen.

Trin 4: TRANSMITTER BOX

TRANSMITTERBOKS
TRANSMITTERBOKS
TRANSMITTERBOKS
TRANSMITTERBOKS
TRANSMITTER BOX
TRANSMITTER BOX

Senderkassen er i det væsentlige Arduino Nano, nRF24 trådløst modul, fleksibelt ledningsstik og 3 modstande: 2 pull-down 10 kOhm modstande til griberkontrolknapperne på handsken og en spændingsdeling 20 kOhm modstand til den fleksible sensor, der styrer håndleddet.

Alt er loddet sammen på et vero-board. Bemærk, at nRF24 "hænger" over Nano. Jeg var bekymret for, at dette kunne forårsage interferens, men det virker.

Brug af 9v-batteriet gør rem-on-delen lidt omfangsrig, men jeg ville ikke rode med LiPo-batterier. Måske senere.

Se trin til tildeling af stifter for lodningsinstruktioner

Trin 5: ARM CONTROL BOX

ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS
ARMKONTROLBOKS

Arm kontrolboks er baseret på Arduino Uno. Den modtager kommandoer fra handsken trådløst via nRF24 -modul og styrer OWI Robotoc -armen via 3 L293D -driverchips.

Da næsten alle Uno -ben blev brugt, er der mange ledninger inde i kassen - den lukker knap nok!

Efter design starter boksen i OFF -tilstand (som om der trykkes på en rød stopknap), hvilket giver operatøren tid til at tage handsken på og gøre sig klar. Når den er klar, trykker operatøren på den grønne knap, og forbindelsen mellem handsken og kontrolboksen skal straks etableres (som angivet med den gule LED på handsken og den røde LED på kontrolboksen).

TILKOBLER TIL OWI

Tilslutning til robotarmen foretages via 14 -pins dobbeltrækkeoverskrift (ifølge billedet ovenfor) via et 14 -tråds fladt kabel.

  • LED-forbindelser er til fælles jord (-) og arduino pin A0 via 220 Ohm modstand
  • Alle motorkabler er forbundet til L293D-stifter 3/6 eller 11/14 (+/- henholdsvis). Hver L293D understøtter 2 motorer, derfor to stifter.
  • OWI -strømledninger er venstre (+6v) og højre (GND) ben på det 7 -polede stik på bagsiden af den gule top. (Du kan se ledningerne tilsluttet på billedet ovenfor). Disse to er forbundet til ben 8 (+) og 4, 5, 12, 13 (GND) på alle tre L293D'er.

Se resten af pin -tildelingen i næste trin

Trin 6: PIN -OPGAVE

PIN -OPGAVE
PIN -OPGAVE
PIN -OPGAVE
PIN -OPGAVE
PIN -OPGAVE
PIN -OPGAVE

NANO:

  • 3.3v - 3.3v til nRF24L01 chip (pin 2)
  • 5v - 5v til accelerometerkort, knapper, fleksibel sensor
  • a0 - fleksibel modstandsindgang
  • a1 - gul "comms" LED -kontrol
  • a4 - SDA til accelerometer
  • a5 - SCL til accelerometer
  • d02 - nRF24L01 chip Afbryd pin (pin 8)
  • d03 - åbn griberknapindgang
  • d04 - luk griberknapindgang
  • d09 - SPI CSN pin til nRF24L01 chip (pin 4)
  • d10 - SPI CS pin til nRF24L01 chip (pin 3)
  • d11 - SPI MOSI til nRF24L01 chip (pin 6)
  • d12 - SPI MISO til nRF24L01 chip (pin 7)
  • d13 - SPI SCK til nRF24L01 chip (pin 5)
  • Vin - 9v +
  • GND - fælles grundlag

UNO:

  • 3.3v - 3.3v til nRF24L01 chip (pin 2)
  • 5v - 5v til knapper
  • Vin - 9v +
  • GND - fælles grundlag
  • a0 - LED ved håndled +
  • a1 - SPI SS pin til skiftregister Vælg - til pin 12 på skiftregister
  • a2 - RØD knapindgang
  • a3 - GRØN knapindgang
  • a4 - retning base højre - pin 15 på L293D
  • a5 - komm. led
  • d02 - nRF24L01 IRQ input (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åndledsservo (pwm) pin 1 eller 9 på L293D
  • d10 - aktiver griber 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 chip (pin 7)
  • d13 - SPI SCK til nRF24L01 chip (pin 5) og pin 11 på Shift Register

SKIFTREGISTER OG L293D'er:

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

Trin 7: KOMMUNIKATION

MEDDELELSE
MEDDELELSE

Handske sender 2 bytes data til kontrolboksen 10 gange i sekundet eller når der modtages et signal fra en af sensorerne.

2 bytes er tilstrækkeligt til 6 kontroller, fordi vi kun skal sende:

  • ON/OFF for LED (1 bit) - Jeg brugte faktisk 2 bit for at være i overensstemmelse med motorerne, men en er nok
  • FRA/HØJRE/VENSTRE for 5 motorer: 2 bit hver = 10 bit

I alt 11 eller 12 bit er tilstrækkeligt.

Retningskoder:

  • FRA: 00
  • HØJRE: 01
  • VENSTRE: 10

Kontrolord ser sådan ud (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 - griber
  • M2 - håndled
  • M3 - albue
  • M4 - skulder
  • M5 - bund

Byte 1 kunne bekvemt føres direkte ind i skifteregistret, da den styrer højre/venstre retning for motorerne 1 til 4.

En timeout på 2 sekunder er aktiveret for kommunikation. Hvis der opstår timeout, stoppes alle motorer, som om der blev trykket på en RØD knap.

Trin 8: SKETSER og mere …

SKETSER og mere …
SKETSER og mere …

HANDSKE

Handske -skitse bruger følgende biblioteker:

  • DirectIO - tilgængelig på Github
  • I2Cdev - tilgængelig på Github
  • Wire - en del af Arduino IDE
  • MPU6050 - tilgængelig på Github
  • SPI - en del af Arduino IDE
  • RF24 - tilgængelig på Github

og tre biblioteker udviklet af mig:

  • AvgFilter - tilgængelig fra Github
  • DhpFilter - tilgængelig på Github
  • TaskScheduler - tilgængelig på Github

Handskeskitse er tilgængelig her: Handskeskitse v1.3

ARMKONTROLBOKS

Arm sketch anvender følgende biblioteker:

  • DirectIO - tilgængelig på Github
  • PinChangeInt - tilgængelig på Github
  • SPI - en del af Arduino IDE
  • RF24 - tilgængelig på Github

og et bibliotek udviklet af mig:

TaskScheduler - tilgængelig på Github

Armskitse er tilgængelig her: Armskitse v1.3

Dataark for brugt hardware

  • 74HC595 skiftregister - datablad
  • L293D motor driver - datablad
  • nRF24 trådløst modul - datablad
  • MPU6050 accelerometer/gyroskopmodul - datablad

31. maj 2015 OPDATERING:

En ny version af handsker og arm kontrol boks skitser er tilgængelig her: Handske og arm skitser v1.5

De er også placeret på github her.

Ændringer

  • Tilføjet yderligere to bytes til kommunikationsstrukturen for at sende den ønskede motorhastighed for håndled, albue, skulder og basismotorer som en 5 bit værdi (0.. 31) fra handsken i forhold til vinklen på kontrolbevægelsen (se nedenfor). Arm Control Box kortlægger værdier [0.. 31] til respektive PWM -værdier for hver af motorerne. Dette muliggør gradvis hastighedsregulering af operatøren og mere præcis armhåndtering.
  • Nyt sæt gestus:

1. LED: Knapper styrer LED - langfingerknap - ON, pinkie finger -knap - OFF

2. GRIPPER: Fleksibel båndkontrol Gripper - halvbøjet finger - ÅBEN, fuldt bøjet finger - LUK

3. HÅNDLED: Håndleddet styres ved at vippe håndfladen fra henholdsvis fuldt vandret position OP og NED. Mere tilt giver mere fart

4. ARM: Armen styres ved at vippe håndfladen fra fuldstændig vandret position VENSTRE og HØJRE. Mere tilt giver mere fart

5. SKULDER: Skulderen styres ved at dreje håndfladen HØJRE og VENSTRE fra håndfladen og peger lige op. Håndfladen drejes langs albueaksen (som det er at vinke din hånd)

6. BASE: Basen styres på samme måde som skulderen med håndfladen pegende nedad.

Trin 9: HVAD ANDET?

HVAD ELLERS?
HVAD ELLERS?

BILLEDE PÅ ARBEJDE

Som sædvanlig med sådanne systemer kunne de programmeres til at gøre meget mere.

For eksempel inkorporerer det nuværende design allerede yderligere evner, ikke muligt med standardfjernbetjeningen:

  • Gradvis hastighedsforøgelse: hver motorbevægelse startes med en foruddefineret minimal hastighed, som øges gradvist hvert 1. sekund, indtil der opnås en maksimal hastighed. Dette tillader mere præcis styring af hver af motorerne (især håndled og griber)
  • Hurtigere bevægelsesafbrydelse: Når kommandoen modtages af armboksen for at stoppe en motor, vender den øjeblikkeligt motoren i cirka 50 ms, hvilket "bryder" bevægelsen og muliggør en mere præcis kontrol.

HVAD ELLERS?

Måske kunne en mere udførlig kontrolbevægelse implementeres. Eller samtidige bevægelser kan bruges til detaljerede kontroller. Kan armen danse?

Hvis du har en idé om, hvordan du omprogrammerer handsken, eller har en version af en skitse, du vil have mig til at teste - lad mig vide det: [email protected]

Trin 10: *** VI VANDT !!! ***

*** VI VANDT !!! ***
*** VI VANDT !!! ***

Dette projekt vandt førstepræmien i konkurrencen Coded Creations sponsoreret af Microsoft.

Tjek det ud! WOO-HOO !!!

Kodede kreationer
Kodede kreationer
Kodede kreationer
Kodede kreationer

Anden pris i de kodede kreationer

Anbefalede: