Turinys:

Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių
Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių

Video: Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių

Video: Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių
Video: roboto ranka 2024, Liepa
Anonim
Robotų ranka su „Zio“moduliais 2 dalis
Robotų ranka su „Zio“moduliais 2 dalis

Šiandienos pamokoje mes naudosime visas 4 servo sistemas ir PS2 belaidį valdiklį, kad valdytume robotą.

Šis tinklaraščio įrašas yra „Zio Robotics“serijos dalis.

Įvadas

Ankstesniame tinklaraštyje paskelbėme 1 dalies vadovėlį, kaip valdyti robotinę ranką naudojant „Zio“modulius. 1 dalyje daugiausia dėmesio buvo skiriama automatiniam jūsų robotinės rankos letenos valdymui atidaryti ir uždaryti.

Šiandienos pamokoje mes šiek tiek patobulinsime, įtraukdami „PS2“belaidį valdiklį, skirtą valdyti robotų ranką. Šiam projektui mes naudosime 4 servo sistemas.

1 žingsnis: projekto apžvalga

Sunkumo lygis:

Zio Padawan

Naudingi ištekliai:

Turėtumėte turėti pagrindinį supratimą, kaip įdiegti „Zio“kūrimo plokštes. Šioje pamokoje darome prielaidą, kad jūsų kūrimo lenta jau sukonfigūruota ir paruošta nustatyti. Jei dar nesukonfigūravote savo plokštės, peržiūrėkite mūsų „Zio Qwiic“pradžios vadovo pamoką, kad galėtumėte pradėti:

„Zio Zuino M UNO Qwiic“pradžios vadovas

2 žingsnis: schemos

Schemos
Schemos

Čia yra 2 -osios robotinės rankos projekto prijungimo schemos, taip pat PS2 valdiklio schema, reikalinga norint suprasti jūsų kodavimo dalį.

3 žingsnis: PS2 valdiklio schema

PS2 valdiklio schema
PS2 valdiklio schema

4 veiksmas: „Zio“modulių ryšio nustatymas

Žemiau yra mūsų „Zio“modulių, kuriuos reikia nustatyti naudojant „Robotic Arm“, prijungimas. Sujungti visus modulius yra gana paprasta ir tai užtruks ne ilgiau kaip 10 minučių.

5 veiksmas: prijunkite robotų rankos servo prie „Zio 16“servo valdiklio

Prijunkite robotų rankos servo prie „Zio 16“servo valdiklio
Prijunkite robotų rankos servo prie „Zio 16“servo valdiklio

6 veiksmas: prijunkite „16 Servo“prie DC/DC stiprintuvo ir nustatykite 6,0 V įtampą

Prijunkite „16 Servo“prie DC/DC stiprintuvo ir nustatykite 6,0 V įtampą
Prijunkite „16 Servo“prie DC/DC stiprintuvo ir nustatykite 6,0 V įtampą

Mes naudojame DC/DC stiprintuvą, kad padidintume ir sureguliuotume akumuliatoriaus maitinimo įtampą iki 6,0.

Naudokite DC stiprintuvo potenciometrą, kad sureguliuotumėte įtampą, kol gausite 6,0. Spauskite įvesties/išvesties mygtuką, kol ekrane pasirodys 6.0. Norėdami sureguliuoti įtampą, į savo DC/DC stiprintuvą pirmiausia turite tiekti maitinimą (3,7 V baterija).

7 veiksmas: prijunkite „Zuino M Uno“prie „Zio 16“servo valdiklio

Prijunkite „Zuino M Uno“prie „Zio 16“servo valdiklio
Prijunkite „Zuino M Uno“prie „Zio 16“servo valdiklio

„Qwiic“prijunkite „Zuino M Uno“prie „Zio Servo“valdiklio „qwiic“kabeliu.

8 veiksmas: „Uno“prijungimas prie PS2 imtuvo

„Uno“prijungimas prie PS2 imtuvo
„Uno“prijungimas prie PS2 imtuvo

Čia yra jungčių kaiščių diagrama. Šiai daliai jums reikia 5 jungiamųjų laidų nuo vyrų iki moterų.

9 žingsnis: Robotų rankos kodas

Mes naudosime „PS2 Arduino“biblioteką, kad koduotume savo PS2 belaidį valdiklį, kad jis veiktų su mūsų robotine ranka. Šio „Robotic Arm 2“projekto šaltinio kodą galite rasti ir atsisiųsti mūsų „Github“puslapyje.

Atsisiųskite ir įdiekite šias bibliotekas ir išsaugokite jas vietiniame „Arduino IDE“bibliotekų aplanke:

  • „Adafruit PWM Servo Driver“biblioteka
  • PS2 „Arduino“biblioteka

Norėdami įdiegti bibliotekas, atidarykite „Arduino IDE“, eikite į skirtuką Eskizas, pasirinkite Įtraukti biblioteką -> Pridėti. ZIP biblioteka. Pasirinkite pirmiau nurodytas bibliotekas, kurios bus įtrauktos į jūsų IDE.

„Arduino“turi patogų vadovą, kaip įdiegti bibliotekas į „Arduino IDE“. Patikrinkite juos čia!

10 veiksmas: paleiskite kodą

Paleiskite savo kodą
Paleiskite savo kodą

Atidarykite „Arduino IDE“. Skiltyje Failai> Pavyzdžiai> PS2_Arduino_Library pasirinkite PS2X_Servo

Pastaba: Prieš valdydami savo robotinę ranką naudodami PS2 valdiklį, patikrinkite šiuos veiksmus: Įjunkite PS2 valdiklį. Patikrinkite, ar užsidega režimo šviesos diodas. Jei ne, paspauskite valdiklio mygtuką „Mode“. Atlikę aukščiau aprašytus veiksmus, turite paspausti „Zuino M Uno“atstatymo mygtuką, kad jis nuskaitytų valdiklio nustatymus. Norėdami judinti robotinę ranką, turite paspausti L1 ir vairasvirtę.

  • Kairė vairasvirtė valdo rankos lenkimą aukštyn arba žemyn
  • Dešinė vairasvirtė valdo leteną, kad ji atsidarytų arba užsidarytų ir pasuktų į kairę arba į dešinę.

11 veiksmas: kodo paaiškinimas

„PS2X Arduino“bibliotekos naudojimas yra paprastas, tik reikia inicijuoti, nustatyti ir tada skaityti.

Norėdami nustatyti „PS2“valdiklio ryšį su „Uno“, toliau pateikiami kaiščiai, kuriuos turite apibrėžti savo kode:

/************************************************ ****************prie PS2 valdiklio prijungti kaiščiai:* - 1e stulpelis: originalus* - 2e colmun: Stef? *pakeiskite PIN kodus tais, kuriuos naudojate ****************************************** **********************/#define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#define PS2_SEL 10 // 16#define PS2_CLK 12 // 17

Mes pakeitėme kaiščius tais, kuriuos naudojame prisijungdami prie „Uno“, kaip nurodyta aukščiau esančioje smeigtukų diagramoje.

/************************************************ **************** Pasirinkite PS2 valdiklio režimus:* - slėgis = analoginis mygtukų skaitymas* - triukšmas = variklio dundėjimas*1 eilutės komentavimas kiekvienam režimo pasirinkimui ** ************************************************* *************

Čia mes nustatėme PS2 režimą, skirtą slėgiui ir dundėjimui, kaip klaidingą. Mes pakomentavome tuos, kurių nenaudojame.

Roboto rankos judesiui valdyti naudosime tik valdiklio vairasvirtės komandą ir L1.

void loop () {/* Turite perskaityti „Gamepad“, kad gautumėte naujas vertes ir nustatytumėte vibracijos vertes ps2x.read_gamepad (mažas variklis įjungtas/išjungtas, didesnis variklio stipris nuo 0 iki 255), jei neįjungiate triukšmo, naudokite ps2x.read_gamepad (); be reikšmių Turėtumėte tai paskambinti bent kartą per sekundę*/if (error == 1) // praleisti ciklą, jei nerastas valdiklis grįžti; else {// „DualShock Controller“ps2x.read_gamepad (klaidinga, vibruoti); // skaityti valdiklį ir nustatyti didelį variklį, kad jis suktųsi „vibraciniu“greičiu, jei (ps2x. Button (PSB_START)) // bus TIKRA, kol bus paspaustas mygtukas Serial.println („Start is holded“); if (ps2x. Button (PSB_SELECT)) Serial.println ("Pasirinkimas laikomas"); vibruoti = ps2x. Analog (PSAB_CROSS); // tai nustatys didelį variklio vibracijos greitį pagal tai, kaip stipriai paspausite mėlyną (X) mygtuką, jei (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// spausdinkite lazdelės reikšmes, jei kuri nors iš jų yra TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Stick Values:"); Serial.print (RX_Value); Serial.print (""); Serijinis atspaudas (RY_Value); Serial.print (""); Serijinis atspaudas (LY_Value); Serial.print (""); Serial.println (LX_Value);

Toliau pateiktas kodas yra tas, kuriame mes koduojame savo servo sistemas, valdančias mūsų robotinę ranką, kurią įtraukiame į funkcijos iškvietimą po mygtuku ps2x.bouton (PSB_L1) || mygtukas ps2x. (PSB_R1).

Norėdami valdyti savo robotinę ranką, kartu su vairasvirte turite paspausti L1 arba R1 mygtuką.

Kairiosios vairasvirtės valdymo servos 2 ir 3 rankos daliai - valdykite atitinkamai rankos lenkimą aukštyn ir žemyn, o dešinioji vairasvirtė valdo 0 ir 1 robotinės rankos letenos servos, kad atidarytumėte arba uždarytumėte ir pasuktumėte į kairę arba į dešinę.

SERVO 0, 1 - letena SERVO 2, 3 - rankos

Šiame skyriuje galite pakeisti reikšmes, kad galėtumėte valdyti savo roboto rankos kampo laipsnį:

pulselen0 = žemėlapis (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = žemėlapis (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = žemėlapis (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = žemėlapis (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Rekomenduojamas: