Sisällysluettelo:
- Vaihe 1: Osat
- Vaihe 2: PROTOTYYPPI
- Vaihe 3: KÄSINE
- Vaihe 4: LÄHETYSLAATIKKO
- Vaihe 5: ARM CONTROL BOX
- Vaihe 6: PIN -ASENNUS
- Vaihe 7: Viestintä
- Vaihe 8: luonnoksia ja muuta…
- Vaihe 9: MITÄ MUUTA?
- Vaihe 10: *** VOITIME !!! ***
Video: Heiluta kättäsi ohjataksesi OWI -robotti Ei jousia: 10 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
AJATUS:
Instructables.com -sivustossa on vähintään 4 muuta projektia (13.5.2015 alkaen), jotka liittyvät OWI Robotic Arm -laitteen muuttamiseen tai hallintaan. Ei ole yllättävää, koska se on niin loistava ja edullinen robottisarja, jolla voi pelata. Tämä projekti on hengessä samanlainen (eli ohjaa robottivartta Arduinolla), mutta lähestymistavassa erilainen. [video]
Ajatuksena on pystyä ohjaamaan robottivartta langattomasti eleillä. Yritin myös pitää robotin käsivarren muutokset mahdollisimman vähäisinä, joten sitä voidaan silti käyttää alkuperäisen ohjaimen kanssa.
Kuulostaa yksinkertaiselta.
Se päätyi kolmeosaiseen projektiin:
- Käsine, jossa on riittävästi antureita LEDin ja 5 moottorin ohjaamiseen
- Arduino Nano -lähetinlaite, joka hyväksyy ohjauskomennot käsineestä ja lähettää sen langattomasti käsiohjainlaitteeseen
- Arduino Uno -pohjainen langaton vastaanotin ja moottorin ohjauslaite, joka on kiinnitetty OWI-robottivarsiin
OMINAISUUDET
- Tukee kaikkia 5 vapausastetta (DOF) ja LEDiä
- Iso punainen painike - pysäyttää varren moottorit välittömästi vaurioiden estämiseksi
- Kannettava modulaarinen rakenne
Mobiilikäyttäjille: tämän hankkeen "mainosvideo" on YouTubessa täällä.
Vaihe 1: Osat
KÄSINE:
Tarvitset käsineohjaimen rakentamiseen seuraavat asiat:
- Isotoner Smartouch Tech Stretch Stitched Glove (tai vastaava) - Amazon.comissa
- Spectra Symboflex Sensor 2.2 " - Amazon.comissa
- GY -521 6DOF MPU6050 3 -akselinen gyroskooppi + kiihtyvyysanturimoduuli - sivustolla Fasttech.com
- 2X5 BOX HEADER STRAIGHT - Phoenixent.comissa
- 2X5 IDC SOCKET -RECEPTACLE - Phoenixent.comissa
- FLAT RIBBON CABLE 10 Johdin.050 "Pitch - Phoenixent.comissa
- 2 x 5 mm: n LEDit - vihreä ja keltainen
- 2 x pienet napit
- Vastukset, johdot, neula, musta lanka, liimapistooli, juotospistooli, juote jne.
VOIMANSIIRTOKOTELO:
- Arduino -yhteensopiva Nano v3.0 ATmega328P -20AU -kortti - Fasttech.com
- nRF24L01+ 2,4 GHz: n langaton lähetinvastaanotin Arduino -yhteensopiva - Amazon.comissa
- Gymboss WRISTBAND - Amazon.comissa
- 9 V: n paristokotelon kotelo, jossa on johdin ON/OFF -kytkin - Amazon.com
- 2X5 BOX HEADER STRAIGHT - Phoenixent.comissa
- 9v akku
- 47uF (50v) kondensaattori
- Vastukset, johdot, liimapistooli, juotospistooli, juote jne.
OWI ROBOTIC ARM CONTROLLER BOX:
- Arduino -yhteensopiva Uno R3 Rev3 -kehityskortti - Fasttech.comissa
- Prototype Shield DIY KIT Arduinolle (tai vastaavalle) - Amazon.comissa
- nRF24L01+ 2,4 GHz: n langaton lähetinvastaanotin Arduino -yhteensopiva - Amazon.comissa
- 3 x L293D 16 -nastainen integroidun piirin IC -moottorin ohjain - sivustolla Fasttech.com
- 1 x SN74HC595 74HC595 8-bittinen siirtorekisteri, jossa on 3-tilan lähtörekisterit DIP16-Amazon.com
- 47uF (50v) kondensaattori
- Laatikko Arduinolle - Amazon.comissa
- On / off kytkin
- 2 x 13 mm painiketta (yksi punainen ja yksi vihreä korkki)
- 2 x 2X7 BOX HEADER STRAIGHT - sama kuin yllä Phoenixent.comissa
- FLAT RIBBON CABLE 14 Johdin.050 "Pitch - sama kuin yllä Phoenixent.comissa
- 9V akku + kiinnitettävä liitin
- Vastukset, johdot, liimapistooli, juotospistooli, juote jne.
… Ja tietenkin:
OWI Robotic Arm Edge - Robottivarsi - OWI -535 - Adafruit.com -sivustolla
Vaihe 2: PROTOTYYPPI
Suosittelen vahvasti prototyyppien tekemistä jokaiselle ohjainlaitteelle ennen kaikkien komponenttien juottamista yhteen.
Tämä projekti käyttää muutamia haastavia laitteistoja:
nRF24L01
Kesti jonkin aikaa saada kaksi nRF24: tä puhumaan keskenään. Ilmeisesti Nano tai Uno eivät tarjoa tarpeeksi vakaata 3,3 V: n virtaa, jotta moduulit toimivat johdonmukaisesti. Minun tapauksessani ratkaisu oli 47uF: n kondensaattori molempien nRF24 -moduulien nastan poikki. RF24-kirjaston käyttäminen IRQ- ja ei-IRQ-tiloissa sisältää myös muutamia omituisuuksia, joten suosittelen tutkimaan esimerkkejä todella huolellisesti.
Pari hienoa resurssia:
nRF24L01 Erittäin pienitehoinen 2,4 GHz: n RF -lähetinvastaanottimen IC -tuotesivu
RF24 -ohjainkirjastosivu
Vain googlaamalla nRF24 + arduino tuottaa paljon linkkejä. Kannattaa tutkia
74HC595 SHIFT -REKISTERÖINTI
Ei ole yllättävää, että jouduin ohjaamaan 5 moottoria, LED -valoa, kahta painiketta ja langatonta moduulia. Unon nastat loppuivat suhteellisen nopeasti. Tunnettu tapa "pidentää" pin -lukumäärääsi on käyttää siirtorekisteriä. Koska nRF24 käytti jo SPI -käyttöliittymää, päätin käyttää SPI: tä myös siirtorekisteriohjelmointiin (nopeuden ja nastojen säästämiseksi) shiftout () -toiminnon sijasta. Yllätyksekseni se toimi kuin viehätys ensimmäisellä kerralla. Voit tarkistaa sen nastojen määrityksessä ja luonnoksissa.
Leipälauta ja hyppyjohdot ovat ystäväsi.
Vaihe 3: KÄSINE
OWI Robotic ARM sisältää 6 kohdetta ohjattavaksi (OWI Robotic Arm Edge Picture)
- LED -valo, joka sijaitsee laitteen GRAIPERISSA
- GRIPPER
- RANNE
- KYYNÄR - on osa RANNEESEEN kiinnitettyä robottivartta
- RAVA on robottiosan osa, joka on kiinnitetty pohjaan
- PERUSTA
Käsine on suunniteltu ohjaamaan Robotic Armin LED -valoa ja kaikkia 5 moottoria (vapausastetta).
Minulla on yksittäiset anturit merkitty kuviin ja kuvaus alla:
- GRIPPERiä ohjataan keskisormen painikkeilla ja vaaleanpunaisella. Kahva suljetaan painamalla etu- ja keskisormia yhteen. Kahva avataan painamalla rengasta ja pinkkiä yhdessä.
- WRIST: ää ohjaa indeksin etsimen joustava vastus. Sormen kiertäminen puoliväliin saa ranteen laskemaan alas ja sen kiertäminen kokonaan nostaa ranteen ylös. Etusormen pitäminen suorana pysäyttää ranteen.
- KYYNÄRÄÄ ohjataan kiihtyvyysmittarilla - kämmenen kallistaminen ylös ja alas siirtää kyynärpäätä ylös ja alas
- Olkapäitä ohjataan kiihtyvyysmittarilla - kallistuva kämmen oikealle ja vasemmalle (ei ylösalaisin!) Liikuttaa olkapäätä ylöspäin ja alaspäin
- BASEa ohjataan myös kiihtyvyysmittarilla, kuten olkapää - kallistuva kämmen oikealle ja vasemmalle ylösalaisin (kämmen ylöspäin) liikuttaa jalkaa oikealle ja vasemmalle
- Tarttimen LED -valo syttyy/sammuu painamalla molempia tartuntapainikkeita yhdessä.
Kaikki painikkeiden vastaukset viivästyvät 1/4 sekunnista värinän välttämiseksi.
Käsineen kokoaminen vaatii juotosta ja paljon ompelua. Pohjimmiltaan se kiinnittää vain 2 painiketta, joustavan vastuksen, Accel/Gyro -moduulin käsineen kankaaseen ja reitittää johdot liitäntärasiaan.
Liitäntäkotelossa on kaksi LEDiä:
- VIHREÄ - virta päällä
- KELTAINEN - vilkkuu, kun tietoja siirretään käsivarren ohjauslaatikkoon.
Vaihe 4: LÄHETYSLAATIKKO
Lähetinrasia on pääasiassa Arduino Nano, langaton nRF24-moduuli, joustava johdinliitin ja 3 vastusta: 2 alasvedettävää 10 kOhm: n vastusta hansikkaan tarttumispainikkeille ja jännitejako 20 kOhm: n vastus rannetta ohjaavalle joustavalle anturille.
Kaikki juotetaan yhteen vero-levylle. Huomaa, että nRF24 "roikkuu" nanon päällä. Pelkäsin, että tämä saattaa aiheuttaa häiriöitä, mutta se toimii.
9 V: n akun käyttäminen tekee hihnaosasta hieman tilaa vievän, mutta en halunnut sotkea LiPo-akkuja. Ehkä myöhemmin.
Katso juotosohjeet nastan kohdistusvaiheesta
Vaihe 5: ARM CONTROL BOX
Käsivarren ohjauslaatikko perustuu Arduino Unoon. Se vastaanottaa komentoja käsineeltä langattomasti nRF24 -moduulin kautta ja ohjaa OWI Robotoc Armia 3 L293D -ohjainsirun kautta.
Koska lähes kaikki Uno -nastat käytettiin, laatikon sisällä on paljon johtoja - se tuskin sulkeutuu!
Suunnittelun mukaan laatikko käynnistyy OFF -tilassa (ikään kuin punapysäytyspainiketta painettaisiin), jolloin käyttäjälle annetaan aikaa laittaa käsine päälle ja valmistautua. Kun valmistaja on valmis, käyttäjä painaa vihreää painiketta, ja hansikkaan ja ohjauslaatikon välinen yhteys on muodostettava välittömästi (kuten hansikkaan keltainen LED ja ohjauslaatikon punainen LED).
YHTEYTTÄ OWIIN
Liitäntä robotivarsiin tehdään 14 -nastaisen kaksirivisen otsikon kautta (yllä olevan kuvan mukaisesti) 14 -johtimisen litteän kaapelin kautta.
- LED-liitännät ovat yhteiseen maahan (-) ja arduino-nastaan A0 220 ohmin vastuksen kautta
- Kaikki moottorin johdot on kytketty L293D-nastoihin 3/6 tai 11/14 (+/-). Jokainen L293D tukee kahta moottoria ja siten kahta paria nastoja.
- OWI -voimajohdot ovat keltaisen yläosan takana olevan 7 -nastaisen liittimen vasemmanpuoleiset (+6v) ja oikeimmat (GND) -nastat. (Näet johdot kytkettyinä yllä olevasta kuvasta). Nämä kaksi on kytketty nastoihin 8 (+) ja 4, 5, 12, 13 (GND) kaikissa kolmessa L293D: ssä.
Katso loput nastamääritykset seuraavassa vaiheessa
Vaihe 6: PIN -ASENNUS
NANO:
- 3.3v - 3.3v - nRF24L01 -siru (nasta 2)
- 5v - 5v kiihtyvyysmittarilevyyn, painikkeet, joustava anturi
- a0 - joustava vastustulo
- a1 - keltainen "comms" LED -ohjaus
- a4 - SDA kiihtyvyysanturiin
- a5 - SCL kiihtyvyysanturiin
- d02 - nRF24L01 -sirun keskeytystappi (nasta 8)
- d03 - tarttujan avauspainikkeen tulo
- d04 - tarttujan painikkeen syöttö
- d09 - SPI CSN -nasta nRF24L01 -sirulle (nasta 4)
- d10 - SPI CS -nasta nRF24L01 -sirulle (nasta 3)
- d11 - SPI MOSI - nRF24L01 -siru (nasta 6)
- d12 - SPI MISO - nRF24L01 -siru (nasta 7)
- d13 - SPI SCK nRF24L01 -sirulle (nasta 5)
- Vin - 9v +
- GND - yhteinen perusta
UNO:
- 3.3v - 3.3v - nRF24L01 -siru (nasta 2)
- 5v - 5v painikkeille
- Vin - 9v +
- GND - yhteinen perusta
- a0 - Ranne -LED +
- a1 - SPI SS -tappi siirtorekisterille Valitse - nasta 12 siirtorekisterissä
- a2 - PUNAINEN painikkeen syöttö
- a3 - VIHREÄ -painikkeen syöttö
- a4 - suuntainen pohja oikea - tappi 15 mallissa L293D
- a5 - comms led
- d02 - nRF24L01 IRQ -tulo (nasta 8)
- d03 - ota käyttöön peruspalvelun (pwm) nasta 1 tai 9 L293D: ssä
- d04 - suuntapohja vasen - nasta 10 vastaavalla L293D: llä
- d05 - ota olkapään servo (pwm) -tappi 1 tai 9 käyttöön L293D: ssä
- d06 - ota kyynärpääservo (pwm) -tappi 1 tai 9 käyttöön L293D: ssä
- d07 - SPI CSN -nasta nRF24L01 -sirulle (nasta 4)
- d08 - SPI CS -nasta nRF24L01 -sirulle (nasta 3)
- d09 - ota ranneservon (pwm) nasta 1 tai 9 käyttöön L293D: ssä
- d10 - ota otteen servo (pwm) -tappi 1 tai 9 käyttöön L293D: ssä
- d11 - SPI MOSI - nRF24L01 -siru (nasta 6) ja nasta 14 siirtorekisterissä
- d12 - SPI MISO - nRF24L01 -siru (nasta 7)
- d13 - SPI SCK nRF24L01 -sirulle (nasta 5) ja nasta 11 siirtorekisterissä
SHIFT -REKISTERI JA L293D: t:
- pin QA (15) of 74HC595 to pin 2 L293D #1
- nasta QB (1) 74HC595 - nasta 7, L293D #1
- nasta QC (2) 74HC595 - nasta L293D #1
- nasta QD (3) 74HC595 - nasta L293D #1
- pin QE (4) of 74HC595 to pin 2 of L293D #2
- nasta QF (5) 74HC595 - nasta L293D #2
- nasta QG (6) 74HC595 - nasta L293D #2
- nasta QH (7) 74HC595 - nasta L293D #2
Vaihe 7: Viestintä
Glove lähettää 2 tavua dataa ohjauslaatikkoon 10 kertaa sekunnissa tai aina kun signaali joltakin anturilta vastaanotetaan.
2 tavua riittää kuuteen ohjaukseen, koska meidän tarvitsee lähettää vain:
- PÄÄLLE/POIS LEDille (1 bitti) - Käytin itse asiassa 2 bittiä ollakseni yhteensopivia moottoreiden kanssa, mutta yksi riittää
- OFF/OIKEA/VASEN 5 moottorille: 2 bittiä kukin = 10 bittiä
Yhteensä 11 tai 12 bittiä riittää.
Suuntakoodit:
- POIS: 00
- OIKEA: 01
- VASEN: 10
Ohjaussana näyttää tältä (vähän viisaasti):
Tavu 2 ---------------- Tavu 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 - tarttuja
- M2 - ranne
- M3 - kyynärpää
- M4 - olkapää
- M5 - pohja
Tavu 1 voidaan syöttää kätevästi suoraan siirtorekisteriin, koska se ohjaa moottoreiden 1-4 oikeaa/vasenta suuntaa.
2 sekunnin aikakatkaisu on käytössä viestinnässä. Jos aikakatkaisu tapahtuu, kaikki moottorit pysäytetään ikään kuin PUNAISTA painiketta painettaisiin.
Vaihe 8: luonnoksia ja muuta…
KÄSINE
Glove -luonnos käyttää seuraavia kirjastoja:
- DirectIO - saatavana Githubista
- I2Cdev - saatavana Githubista
- Lanka - osa Arduino IDE: tä
- MPU6050 - saatavana Githubista
- SPI - osa Arduino IDE: tä
- RF24 - saatavana Githubista
ja kolme kehittämääni kirjastoa:
- AvgFilter - saatavana Githubista
- DhpFilter - saatavana Githubista
- TaskScheduler - saatavana Githubista
Käsinepiirros on saatavilla täältä: Glove Sketch v1.3
VARSIOHJAUSLAATIKKO
Arm -luonnos käyttää seuraavia kirjastoja:
- DirectIO - saatavana Githubista
- PinChangeInt - saatavana Githubissa
- SPI - osa Arduino IDE: tä
- RF24 - saatavana Githubista
ja kehittämäni kirjasto:
TaskScheduler - saatavana Githubista
Varren luonnos on saatavilla täältä: Arm Sketch v1.3
Käytettyjen laitteiden tietolomakkeet
- 74HC595 shift register - tietolomake
- L293D -moottoriajuri - tietolomake
- Langaton nRF24 -moduuli - tietolomake
- MPU6050 kiihtyvyysmittari/gyroskooppimoduuli - tietolomake
31.5.2015 PÄIVITYS:
Uusi versio käsineiden ja käsivarsien ohjauslaatikon luonnoksista on saatavana täältä: Käsine- ja käsivarsiluonnokset v1.5
Ne sijaitsevat myös githubissa täällä.
Muutokset
- Lisätty kaksi tavua kommunikaatiorakenteeseen lähettämään pyydetty moottorin nopeus ranne-, kyynär-, olkapää- ja perusmoottoreille 5 -bittisenä arvona (0.. 31) käsineestä suhteessa ohjauseleen kulmaan (katso alla). Arm Control Box yhdistää arvot [0.. 31] kunkin moottorin vastaaviin PWM -arvoihin. Tämä mahdollistaa nopeuden asteittaisen ohjauksen kuljettajan toimesta ja tarkemman käsivarren käsittelyn.
- Uusi eleiden sarja:
1. LED: Painikkeiden ohjaus -LED - keskisormen painike - PÄÄLLÄ, pinkie -sormen painike - POIS
2. GRIPPER: Joustavat nauhaohjaimet Tarttuja - puoliksi taivutettu sormi - AUKI, täysin taivutettu sormi - SULJE
3. RANNE: Rannetta ohjataan kallistamalla kämmentä täysin vaakasuorasta asennosta YLÖS ja ALAS. Lisää kallistus lisää nopeutta
4. ARM: Käsiä ohjataan kallistamalla kämmentä täysin vaakasuorasta asennosta VASEN ja OIKEA. Lisää kallistus lisää nopeutta
5. Olkapää: Olkaa ohjataan kiertämällä kämmentä OIKEALLE ja VASEMMALLE kämmenestä suoraan ylöspäin. Kämmen kiertyy kyynärpääakselia pitkin (kuten kättä heiluttaen)
6. PERUS: Pohjaa ohjataan samalla tavalla kuin olkapää kämmenellä suoraan alaspäin.
Vaihe 9: MITÄ MUUTA?
KUVAUS TYÖSSÄ
Kuten tavallista tällaisissa järjestelmissä, ne voitaisiin ohjelmoida tekemään paljon enemmän.
Esimerkiksi nykyinen suunnittelu sisältää jo lisäominaisuuksia, jotka eivät ole mahdollisia tavallisella kaukosäätimellä:
- Nopeuden asteittainen lisäys: jokainen moottorin liike aloitetaan ennalta määrätyllä miniminopeudella, jota lisätään vähitellen 1 sekunnin välein, kunnes saavutetaan suurin nopeus. Tämä mahdollistaa jokaisen moottorin (erityisesti ranteen ja tarttujan) tarkemman hallinnan
- Nopeampi liikkeen peruutus: kun käsivarsikotelo vastaanottaa käskyn pysäyttää moottori, se peruuttaa moottorin hetkellisesti noin 50 ms, mikä "katkaisee" liikkeen ja mahdollistaa tarkemman ohjauksen.
MITÄ MUUTA?
Ehkä kehittyneempiä ohjauseleitä voitaisiin toteuttaa. Tai samanaikaisia eleitä voitaisiin käyttää kehittyneisiin ohjauksiin. Osaako Arm tanssia?
Jos sinulla on idea käsineen uudelleenohjelmointiin tai sinulla on versio luonnoksesta, jonka haluat minun testaavan - kerro minulle: [email protected]
Vaihe 10: *** VOITIME !!! ***
Tämä projekti voitti ensimmäisen palkinnon Microsoftin sponsoroimassa Coded Creations -kilpailussa.
Tarkista se! WOO-HOO !!!
Toinen palkinto koodatuissa luomuksissa
Suositeltava:
DIY 37 Leds Arduino -rulettipeli: 3 vaihetta (kuvilla)
DIY 37 Leds Arduino Roulette Peli: Ruletti on kasinopeli, joka on nimetty ranskalaisen sanan mukaan, joka tarkoittaa pientä pyörää
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: 20 vaihetta (kuvilla)
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: Hei, ystävä! Tässä kaksiosaisessa sarjassa opimme käyttämään Tinkercadin piirejä - hauskaa, tehokasta ja opettavaista työkalua piirien toiminnasta! Yksi parhaista tavoista oppia on tehdä. Joten suunnittelemme ensin oman projektimme: th
Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Weasleyn sijaintikello neljällä kädellä: Joten Raspberry Pi: n kanssa, joka oli pyörinyt jonkin aikaa, halusin löytää mukavan projektin, jonka avulla voisin hyödyntää sitä parhaalla mahdollisella tavalla. Löysin ppeters0502 tämän upean Instructable Build Your Own Weasley Location Clockin ja ajattelin, että
Ammattimainen sääasema käyttäen ESP8266- ja ESP32 -DIY: 9 vaihetta (kuvilla)
Ammattimainen sääasema käyttämällä ESP8266- ja ESP32 -DIY: LineaMeteoStazione on täydellinen sääasema, joka voidaan liittää Sensirionin ammattitunnistimiin sekä joihinkin Davis -instrumenttikomponentteihin (sademittari, tuulimittari)
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite