Tässä opetusohjelmassa aiomme suunnitella Arduino Unoon perustuvan robottivarren joistakin pahvista ja servomoottoreista. Koko rakentamisprosessi on selitetty yksityiskohtaisesti alla. Tässä projektissa Arduino Uno on ohjelmoitu ohjaamaan servomoottoreita, jotka toimivat robottivarren nivelinä. Tämä asetus näyttää myös robottinosturilta tai voimme muuntaa sen nosturiksi tekemällä joitain helppoja säätöjä. Tämä projekti on hyödyllinen aloittelijoille, jotka haluavat oppia kehittämään yksinkertaisen robotin halvalla tai haluavat vain oppia työskentelemään Arduino- ja servomoottoreiden kanssa.
Tätä Arduino-robottivarsi voidaan ohjata neljällä siihen kiinnitetyllä potentiometrillä, kutakin potentiometriä käytetään kunkin servon ohjaamiseen. Voit siirtää näitä servoja kiertämällä ruukkuja valitaksesi jonkin kohteen. Joidenkin käytäntöjen avulla voit helposti valita ja siirtää kohteen paikasta toiseen. Olemme käyttäneet täällä pienen vääntömomentin servoja, mutta voit käyttää tehokkaampia servoja poimimaan raskaita esineitä. Koko prosessi on osoitettu hyvin videon lopussa. Tarkista myös muut robotiikkaprojektimme täältä.
Tarvittavat komponentit
- Arduino Uno
- 1000uF kondensaattori (4 kpl)
- 100nF kondensaattori (4 kpl)
- Servomoottori (SG 90 - neljä kappaletta)
- 10K potti - vaihteleva vastus (4 kpl)
- Virtalähde (5v - mieluiten kaksi)
Servo moottori
Ensin puhumme hieman Servo Motorsista. Servomoottoreita käytetään pääasiassa silloin, kun tarvitaan tarkkaa akselin liikettä tai asentoa. Näitä ei ehdoteta suurten nopeuksien sovelluksiin. Servomoottoreita ehdotetaan matalalle nopeudelle, keskivääntömomentille ja tarkalleen asennolle. Joten nämä moottorit ovat parhaita robottivarren suunnittelussa.
Servomoottoreita on saatavana eri muodoissa ja kooissa. Aiomme käyttää pieniä servomoottoreita, tässä käytämme neljää SG90-servoa. Servomoottorissa on pääosin johdot, toinen on positiivista jännitettä varten, toinen maadoitusta varten ja viimeinen sijainnin asettamista varten. PUNAINEN johto on kytketty virtaan, musta johto on kytketty maahan ja KELTAINEN johto on kytketty signaaliin. Käy läpi tämä opas Servo-moottorin ohjaamisesta Arduinolla saadaksesi lisätietoja siitä. Arduinossa meillä on ennalta määritetyt kirjastot servon hallitsemiseksi, joten servoa on erittäin helppo hallita, jonka opit tämän opetusohjelman mukana.
Robottivarren rakentaminen
Ota tasainen ja vakaa pinta, kuten pöytä tai kovakortti. Aseta seuraavaksi servomoottori keskelle ja liimaa se paikalleen. Varmista, että pyörimisaste on kuvassa esitetyllä alueella. Tämä servo toimii käsivarren pohjana.
Aseta pieni pahvikappale ensimmäisen servon päälle ja aseta sitten toinen servo tämän laudan palaan ja liimaa se paikalleen. Servokierron on vastattava kaaviota.
Ota pahvia ja leikkaa ne 3 cm x 11 cm paloiksi. Varmista, ettei pala ole pehmennetty. Leikkaa suorakulmainen reikä toisesta päästä (jätä 0,8 cm alhaalta) juuri niin, että se mahtuu toiseen servoon, ja toisessa päässä asenna servovälineet tiukasti ruuveilla tai liimalla. Aseta sitten kolmas servo ensimmäiseen reikään.
Leikkaa nyt toinen pahvikappale, jonka pituudet ovat alla olevassa kuvassa, ja liimaa toinen vaihde tämän kappaleen alaosaan.
Liimaa nyt neljäs ja viimeinen servo toisen kappaleen reunaan kuvan osoittamalla tavalla.
Tämän ansiosta kaksi kappaletta yhdessä näyttää.
Kun kiinnitämme tämän kokoonpanon alustaan, sen pitäisi näyttää,
Se on melkein valmis. Meidän on vain tehtävä koukku tarttumaan ja poimimaan esine robottikäden tavoin. Leikkaa koukkua varten vielä kaksi kappaletta kartonkia, joiden pituus on 1cmx7cm ja 4cmx5cm. Liimaa ne yhteen kuvan osoittamalla tavalla ja kiinnitä lopullinen vaihde aivan reunaan.
Asenna tämä kappale päälle ja olemme rakentaneet robottivarren.
Tämän avulla robottivarren perusmallimme saatiin päätökseen ja näin olemme rakentaneet edullisen robottivarren. Liitä nyt piiri leipätaululle piirikaavion mukaisesti.
Piirikaavio ja selitys:
Piiri liitäntä Arduino Uno robottikäsivarsi on esitetty alla.
Vaihtuvien vastusten jännite ei ole täysin lineaarinen; se on meluisa. Joten tämän melun suodattamiseksi kondensaattorit sijoitetaan jokaisen vastuksen yli kuvan osoittamalla tavalla.
Nyt syötämme näiden muuttuvien vastusten tarjoaman jännitteen (jännite, joka edustaa sijainnin hallintaa) Arduinon ADC-kanaviin. Aiomme käyttää tähän neljä UNO: n ADO-kanavaa välillä A0 - A3. ADC-alustuksen jälkeen meillä on digitaalinen arvo ruukuista, jotka edustavat käyttäjän tarvitsemaa sijaintia. Otamme tämän arvon ja sovitamme sen servoasentoon.
Arduinolla on kuusi ADC-kanavaa. Olemme käyttäneet neljää robotti-käsivarteen. UNO ADC: n resoluutio on 10 bittiä, joten kokonaislukuarvot vaihtelevat välillä 0-1023 (2 ^ 10 = 1024 arvoa). Tämä tarkoittaa, että se kartoittaa 0 - 5 voltin syöttöjännitteet kokonaislukuiksi välillä 0 - 1023. Joten jokaiselle (5/1024 = 4,9 mV) yksikköä kohden. Lisätietoja jännitetasojen kartoittamisesta ADC-kanavien avulla Arduinossa on täällä.
Nyt, jotta UNO voisi muuntaa analogisen signaalin digitaaliseksi signaaliksi, meidän on käytettävä Arduino Unon ADC-kanavaa alla olevien toimintojen avulla:
1. analoginenLue (tappi); 2. analoginen viite (); 3. analogReadResolution (bittiä);
Työläs ADC kanavilla on oletusarvo viitearvon 5V. Tämä tarkoittaa, että voimme antaa enimmäistulojännitteen 5 V ADC-muunnokselle millä tahansa tulokanavalla. Koska jotkut anturit tarjoavat jännitteitä 0-2,5 V, niin 5 V: n referenssillä saamme pienemmän tarkkuuden, joten meillä on ohje, jonka avulla voimme muuttaa tätä vertailuarvoa. Joten vertailuarvon muuttamiseksi meillä on "analogReference ();"
Oletuksena saamme levyn ADC-enimmäistarkkuuden, joka on 10 bittiä, tätä resoluutiota voidaan muuttaa käskyllä ("analogReadResolution (bits);").
Robottikäsipiirissämme olemme jättäneet tämän referenssijännitteen oletusarvoon, joten voimme lukea arvon ADC-kanavalta kutsumalla suoraan toimintoon "analogRead (pin);", tässä "pin" edustaa nastaa, johon olemme liittäneet analogisen signaalin, sanovat haluamme lukea “A0”. ADC: n arvo voidaan tallentaa kokonaislukuun int SENSORVALUE0 = analogRead (A0); .
Nyt Puhutaanpa SERVO, Arduino Uno on ominaisuus, jonka avulla voimme hallita servo asentoon vain antaa asteen arvoa. Sano jos haluamme servon olevan 30: ssä, voimme edustaa arvoa suoraan ohjelmassa. SERVO-otsikkotiedosto ( Servo.h ) huolehtii kaikista käyttöasteiden laskelmista sisäisesti.
#sisältää
Tässä ensimmäinen lause edustaa otsikkotiedostoa SERVO MOTORin ohjaamiseksi. Toinen lausunto on servon nimeäminen; jätämme sen servo0: ksi, koska aiomme käyttää neljää. Kolmas lause kertoo, mihin servosignaalin tappi on kytketty; tämän on oltava PWM-tappi. Tässä käytämme PIN3: ta ensimmäiseen servoon. Neljäs lause antaa komennot servomoottorin sijoittamiseksi asteina. Jos sille annetaan 30, servomoottori pyörii 30 astetta.
Nyt meillä on SG90-servoasento 0-180 ja ADC-arvot 0-1023. Käytämme erikoistoimintoa, joka vastaa molempia arvoja automaattisesti.
anturiarvo0 = kartta (anturiarvo0, 0, 1023, 0, 180);
Tämä käsky kartoittaa molemmat arvot automaattisesti ja tallentaa tuloksen kokonaislukuun 'servovalue0' .
Näin olemme hallinneet Servoja Robotiikka-projektissamme Arduinoa käyttämällä. Tarkista koko koodi alla.
Robottivarren käyttö:
Käyttäjälle on tarjolla neljä pottia. Ja kiertämällä näitä neljää kattilaa tarjoamme vaihtelevan jännitteen UNO: n ADC-kanavilla. Joten Arduinon digitaaliset arvot ovat käyttäjän hallinnassa. Nämä digitaaliset arvot kartoitetaan servomoottorin sijainnin säätämiseksi, joten servoasento ohjaa käyttäjää ja kiertämällä näitä potteja käyttäjä voi liikuttaa robottivarren niveliä ja voi valita tai tarttua mihin tahansa esineeseen.