Sisällysluettelo:

Robottivarsi Zio -moduuleilla Osa 2: 11 vaihetta
Robottivarsi Zio -moduuleilla Osa 2: 11 vaihetta

Video: Robottivarsi Zio -moduuleilla Osa 2: 11 vaihetta

Video: Robottivarsi Zio -moduuleilla Osa 2: 11 vaihetta
Video: Как избежать появления трещин на стенах? Подготовка под штукатурку. #11 2024, Heinäkuu
Anonim
Robottivarsi Zio -moduuleilla Osa 2
Robottivarsi Zio -moduuleilla Osa 2

Tämän päivän opetusohjelmassa käytämme kaikkia 4 servoa ja langatonta PS2 -ohjainta robottivarren ohjaamiseen.

Tämä blogikirjoitus on osa Zio Robotics -sarjaa.

Johdanto

Edellisessä blogissamme julkaisimme osan 1 opetusohjelman robottiharjan ohjaamisesta Zio -moduulien avulla. Osa 1 keskittyi enimmäkseen siihen, että Robotic Arm's Claw ohjataan automaattisesti avautumaan ja sulkeutumaan.

Tämän päivän opetusohjelmassa korostamme sitä hieman sisällyttämällä langattoman PS2 -ohjaimen ohjaamaan robottivartta. Tässä projektissa käytämme 4 servoa.

Vaihe 1: Projektin yleiskatsaus

Vaikeusaste:

Zio Padawan

Hyödyllisiä resursseja:

Sinulla pitäisi olla perustiedot Zio -kehityskorttien asentamisesta. Tässä opetusohjelmassa oletamme, että kehityskorttisi on jo määritetty ja valmis määritettäväksi. Jos et ole vielä määrittänyt levyäsi, tutustu Zio Qwiicin aloitusoppaan opetusohjelmaan, jotta pääset alkuun:

Zio Zuino M UNO Qwiicin aloitusopas

Vaihe 2: Kaaviot

Kaaviot
Kaaviot

Tässä on Robotic Arm Part 2 -projektin kytkentäkaaviot sekä PS2 -ohjaimen kaavio, jota tarvitaan koodausosan ymmärtämiseen.

Vaihe 3: PS2 -ohjaimen kaavio

PS2 -ohjaimen kaavio
PS2 -ohjaimen kaavio

Vaihe 4: Zio -moduulien yhteyden määritys

Alla on Zio -moduuliemme liitäntä, joka asennetaan robottivarren kanssa. Kaikkien moduulien liittäminen yhteen on melko helppoa, eikä niiden asennus vie yli 10 minuuttia.

Vaihe 5: Liitä robottivarren servo Zio 16 Servo -ohjaimeen

Liitä Robot Arm Servo Zio 16 Servo -ohjaimeen
Liitä Robot Arm Servo Zio 16 Servo -ohjaimeen

Vaihe 6: Liitä 16 Servo DC/DC Boosteriin ja aseta se 6,0 V: n jännitteelle

Liitä 16 Servo DC/DC Boosteriin ja aseta se 6,0 V: n jännitteelle
Liitä 16 Servo DC/DC Boosteriin ja aseta se 6,0 V: n jännitteelle

Käytämme DC/DC -tehostinta tehostamaan ja säätämään akun syöttöjännitettä arvoon 6.0.

Säädä jännitettä DC -tehostimen potentiometrillä, kunnes saat 6,0. Paina In/Out -painiketta, kunnes näytössä näkyy 6.0. Sinun on ensin syötettävä virtaa (3,7 V paristo) DC/DC Booster -laitteeseesi jännitteen säätämiseksi.

Vaihe 7: Liitä Zuino M Uno Zio 16 Servo -ohjaimeen

Liitä Zuino M Uno Zio 16 Servo -ohjaimeen
Liitä Zuino M Uno Zio 16 Servo -ohjaimeen

Qwiic Liitä Zuino M Uno Zio Servo -ohjaimeen qwiic -kaapelilla.

Vaihe 8: Unon liittäminen PS2 -vastaanottimeen

Unon yhdistäminen PS2 -vastaanottimeen
Unon yhdistäminen PS2 -vastaanottimeen

Tässä on liitosten nastakaavio. Tarvitset 5 uros -naarasliitintä tähän osaan.

Vaihe 9: Robottivarren koodi

Käytämme PS2 Arduino -kirjastoa koodataksemme langattoman PS2 -ohjaimen toimimaan robottivartemme kanssa. Löydät ja lataat tämän Robotic Arm Part 2 -projektin lähdekoodin Github -sivultamme.

Lataa ja asenna seuraavat kirjastot ja tallenna ne paikalliseen Arduino IDE -kirjastojen kansioon:

  • Adafruit PWM Servo -ohjainkirjasto
  • PS2 Arduino -kirjasto

Jos haluat asentaa kirjastot, avaa Arduino IDE, siirry Luonnos -välilehteen, valitse Sisällytä kirjasto -> Lisää. Zip -kirjasto. Valitse yllä olevat kirjastot, jotka sisällytetään IDE -laitteeseesi.

Arduinolla on kätevä opas kirjastojen asentamiseen Arduino IDE -laitteeseen. Tarkista ne täältä!

Vaihe 10: Suorita koodi

Suorita koodi
Suorita koodi

Avaa Arduino IDE. Valitse Tiedostot> Esimerkit> PS2_Arduino_Library, valitse PS2X_Servo

Huomautus: Ennen kuin voit ohjata robottivartta PS2 -ohjaimella, tarkista seuraavat vaiheet: Kytke PS2 -ohjain päälle. Tarkista, että tilan merkkivalo palaa. Jos ei, paina ohjaimen Mode -painiketta. Kun olet tehnyt edellä mainitut toimet, sinun on painettava Zuino M Unon nollauspainiketta, jotta se lukee ohjaimen asetukset. Sinun täytyy painaa L1 ja ohjaussauvaa liikuttaaksesi robottivartta.

  • Vasen ohjaussauva ohjaa käsivarren taivutusta ylös- tai alaspäin
  • Oikea ohjaussauva ohjaa kynsiä joko avautumaan tai sulkeutumaan ja kiertämään kynsiä vasemmalle tai oikealle.

Vaihe 11: Koodin selitys

PS2X Arduino -kirjaston käyttö on yksinkertaista, vaatii vain alustamisen, asennuksen ja sitten lukukomennon.

Jos haluat määrittää PS2 -ohjaimesi yhteyden Unoosi, alla on nastat, jotka sinun on määritettävä koodissasi:

/************************************************* ****************PS2 -ohjaimeen yhdistetyt nastat:* - 1e -sarake: alkuperäinen* - 2e colmun: Stef? *korvaa PIN -numerot käyttämilläsi ****************************************** **********************/#define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#define PS2_SEL 10 // 16#define PS2_CLK 12 // 17

Olemme korvanneet nastat niillä, joilla käytämme yhteyttä Uno -laitteeseemme yllä olevan nastakaavion mukaisesti.

/************************************************* ***************** Valitse PS2 -ohjaimen tilat:* - paineet = painonappien analoginen lukeminen* - jyrinä = moottorin jyrinä*poista 1 rivin kommentti jokaisesta tilanvalinnasta ** ************************************************** *************///#määritä paineet tosi#määrittele paineet epätosi

Tässä määrittelimme PS2 -tilan paineille ja rummutukselle epätosi. Kommentoimme niitä, joita emme käytä.

Käytämme vain ohjaimen joystick -komentoa ja L1: tä ohjaamaan robottivartemme liikettä.

void loop () {/* Sinun on luettava peliohjain saadaksesi uusia arvoja ja asettaaksesi värähtelyarvot ps2x.read_gamepad (pieni moottori päälle/pois, suurempi moottorin voima 0-255), jos et ota rumblea käyttöön, käytä ps2x.read_gamepad (); ilman arvoja Sinun on kutsuttava tämä vähintään kerran sekunnissa*/if (error == 1) // ohita silmukka, jos ohjainta ei löydy paluu; else {// DualShock Controller ps2x.read_gamepad (epätosi, värinä); // lue ohjain ja aseta suuri moottori pyörimään värinänopeudella, jos (ps2x. Button (PSB_START)) // on TOSI niin kauan kuin painiketta painetaan Serial.println ("Käynnistys pidetään päällä"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Valinta on pidossa"); värise = ps2x. Analog (PSAB_CROSS); // tämä asettaa suuren moottorin värähtelynopeuden sen mukaan, kuinka voimakkaasti painat sinistä (X) -painiketta, jos (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// tulosta tikun arvot, jos jompikumpi on TRUE RY_Value = ps2x. Analog (PSS_RY); RX_arvo = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("tikkuarvot:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Sarja.println (LX_arvo);

Alla olevassa koodissa koodataan servomme, jotka ohjaavat robottivartta ja jotka sisällytetään funktiokutsuun ps2x.button -kohtaan (PSB_L1) || ps2x.button (PSB_R1).

Sinun on painettava L1- tai R1 -painiketta yhdessä ohjaussauvan kanssa ohjataksesi robottivartta.

Vasemman ohjaussauvan ohjaus servot 2 ja 3 käsivarsiosalle - ohjaa käsivarren taivutusta ylöspäin ja alaspäin, kun taas oikea ohjaussauva ohjaa servoja 0 ja 1 robottivarren kynsissä avaamaan tai sulkemaan ja kiertämään vasemmalle tai oikealle.

SERVO 0, 1 - Kynsi SERVO 2, 3 - Varsi

Voit tehdä muutoksia tämän osion arvoihin ohjataksesi robottiharjan kulmaa:

pulselen0 = kartta (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = kartta (RX_arvo, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = kartta (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = kartta (LX_arvo, 0, 255, SERVOMIN3, SERVOMAX3);

Suositeltava: