Tartalomjegyzék:

Robotkar Zio modulokkal 2. rész: 11 lépés
Robotkar Zio modulokkal 2. rész: 11 lépés

Videó: Robotkar Zio modulokkal 2. rész: 11 lépés

Videó: Robotkar Zio modulokkal 2. rész: 11 lépés
Videó: 9. Motorvezérlés, bevezetés a robotikába 2024, Július
Anonim
Robotkar Zio modulokkal, 2. rész
Robotkar Zio modulokkal, 2. rész

A mai oktatóanyagban mind a 4 szervót és egy PS2 vezeték nélküli vezérlőt fogjuk használni a robotkar vezérléséhez.

Ez a blogbejegyzés a Zio Robotics sorozat része.

Bevezetés

Korábbi blogunkban közzétettük az 1. rész bemutatóját arról, hogyan lehet Zio modulok segítségével vezérelni egy robotkart. Az első rész többnyire arra összpontosított, hogy automatikusan vezérelje a robotkar karját a nyitáshoz és a bezáráshoz.

A mai oktatóanyagban egy kicsit megnöveljük, ha PS2 vezeték nélküli vezérlőt is beépítünk a robotkar vezérléséhez. Ehhez a projekthez 4 szervót fogunk használni.

1. lépés: A projekt áttekintése

Nehézségi szint:

Zio Padawan

Hasznos források:

Alapvető ismeretekkel kell rendelkeznie a Zio fejlesztőlapok telepítéséről. Ebben az oktatóanyagban feltételezzük, hogy a fejlesztőtábla már konfigurálva van, és készen áll a beállításra. Ha még nem konfigurálta a táblát, a kezdéshez tekintse meg az alábbi Zio Qwiic Start Guide bemutatónkat:

Zio Zuino M UNO Qwiic Kezdő útmutató

2. lépés: Vázlatok

Vázlatok
Vázlatok

Itt található a Robotkar 2. rész projektjének bekötési rajza, valamint a kódoló rész megértéséhez szükséges PS2 vezérlő diagram.

3. lépés: PS2 vezérlő diagram

PS2 vezérlő diagram
PS2 vezérlő diagram

4. lépés: A Zio modulok csatlakoztatásának beállítása

Az alábbiakban bemutatjuk a Zio moduljaink csatlakoztatását a robotkarral. Az összes modul összekapcsolása nagyon egyszerű, és nem tart tovább 10 percnél.

5. lépés: Csatlakoztassa a robotkaros szervót a Zio 16 szervo vezérlőhöz

Csatlakoztassa a robotkaros szervót a Zio 16 szervo vezérlőhöz
Csatlakoztassa a robotkaros szervót a Zio 16 szervo vezérlőhöz

6. lépés: Csatlakoztassa 16 szervóját DC/DC erősítőhöz, és állítsa 6,0 V -ra

Csatlakoztassa 16 szervóját DC/DC erősítőhöz, és állítsa 6,0 V feszültségre
Csatlakoztassa 16 szervóját DC/DC erősítőhöz, és állítsa 6,0 V feszültségre

DC/DC erősítőt használunk az akkumulátor tápfeszültségének növelésére és beállítására 6,0 -ra.

A DC Booster potenciométerével állítsa be a feszültséget, amíg 6,0 értéket nem kap. Nyomja meg a Be/Ki gombot, amíg a kijelzőn megjelenik a 6.0. A feszültség beállításához először áramot (3,7 V -os elemet) kell szolgáltatnia a DC/DC Booster -hez.

7. lépés: Csatlakoztassa a Zuino M Uno -t a Zio 16 szervo vezérlőhöz

Csatlakoztassa a Zuino M Uno -t a Zio 16 szervo vezérlőhöz
Csatlakoztassa a Zuino M Uno -t a Zio 16 szervo vezérlőhöz

Qwiic Csatlakoztassa a Zuino M Uno -t a Zio Servo vezérlőhöz qwiic kábellel.

8. lépés: Az Uno csatlakoztatása a PS2 vevőhöz

Uno csatlakoztatása a PS2 vevőhöz
Uno csatlakoztatása a PS2 vevőhöz

Itt található a kapcsolatok pin diagramja. Ehhez a részhez 5 férfi -női jumper vezetékre van szüksége.

9. lépés: A robotkar kódja

A PS2 Arduino könyvtár segítségével kódoljuk a PS2 vezeték nélküli vezérlőnket, hogy együttműködjön a robotkarunkkal. Ennek a robotkaros 2. rész projektnek a forráskódját megtalálhatja és letöltheti a Github oldalunkon.

Töltse le és telepítse a következő könyvtárakat, és mentse a helyi Arduino IDE könyvtárak mappájába:

  • Adafruit PWM Servo Driver Library
  • PS2 Arduino könyvtár

A könyvtárak telepítéséhez nyissa meg az Arduino IDE -t, lépjen a Vázlat fülre, válassza a Könyvtár felvétele -> Hozzáadás. Zip könyvtár lehetőséget. Válassza ki a fenti könyvtárakat, amelyek szerepelni fognak az IDE -ben.

Az Arduino praktikus útmutatót tartalmaz a könyvtárak Arduino IDE -be történő telepítéséhez. Nézze meg őket itt!

10. lépés: Futtassa a kódot

Futtassa a kódot
Futtassa a kódot

Nyissa meg az Arduino IDE -t. A Fájlok> Példák> PS2_Arduino_Library területen válassza a PS2X_Servo lehetőséget

Megjegyzés: Mielőtt a PS2 vezérlővel vezérelheti robotkarját, ellenőrizze az alábbi lépéseket: Kapcsolja be a PS2 vezérlőt. Ellenőrizze, hogy a Mode LED világít -e. Ha nem, nyomja meg a Mode gombot a vezérlőn. A fentiek elvégzése után meg kell nyomnia a Zuino M Uno reset gombját, hogy elolvashassa a vezérlő beállításait. Nyomja meg az L1 gombot és a botkormányt a robotkar mozgatásához.

  • A bal joystick vezérli a kar felfelé vagy lefelé hajlítását
  • A Joystick vezérli a karmot, hogy nyissa vagy zárja, és balra vagy jobbra forgassa.

11. lépés: A kód magyarázata

A PS2X Arduino könyvtár használata egyszerű, csak inicializálást, beállítást, majd olvasási parancsot igényel.

A PS2 vezérlő és az Uno kapcsolatának beállításához az alábbiakban a PIN -kódokat kell megadnia a kódban:

/************************************************* ****************PS2 vezérlőhöz csatlakoztatott csapok:* - 1e oszlop: eredeti* - 2e colmun: Stef? *cserélje ki a PIN -kódokat azokra, amelyeket használ ****************************************** **********************/#define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#define PS2_SEL 10 // 16#define PS2_CLK 12 // 17

A csapokat lecseréltük azokra, amelyeket az Uno -hoz való csatlakozásunkhoz használunk, amint azt a fenti pin diagram mutatja.

/************************************************* **************** Válassza ki a PS2 vezérlő üzemmódjait:* - nyomás = nyomógombok analóg leolvasása* - dübörgés = motorzúgás*az egyes módok kiválasztásához tartozó sorok 1. megjegyzése ** ************************************************** ************ //

Itt definiáltuk a PS2 módot a nyomás és a dübörgés hamisnak. Megjegyeztük azokat, amelyeket nem használunk.

Csak a vezérlő joystick parancsát és az L1 -et fogjuk használni a robotkarunk mozgásának vezérlésére.

void loop () {/* El kell olvasnia a Gamepadet, hogy új értékeket kapjon, és beállítsa a rezgési értékeket ps2x.read_gamepad (kis motor be/ki, nagyobb motorerősség 0-255 között), ha nem engedélyezi a zúgást, használja a ps2x.read_gamepad (); értékek nélkül Ezt legalább másodpercenként meg kell hívni*/if (error == 1) // kihagyni a ciklust, ha nincs vezérlő visszatérés; else {// DualShock Controller ps2x.read_gamepad (hamis, rezeg); // olvassa el a vezérlőt, és állítsa be a nagymotort, hogy "rezgő" sebességgel forogjon, ha (ps2x. Button (PSB_START)) // IGAZ lesz, amíg a gombot megnyomják Serial.println ("Az indítás tartva van"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Kiválasztás folyamatban"); rezeg = ps2x. Analog (PSAB_CROSS); // ez beállítja a nagy motor rezgési sebességét attól függően, hogy milyen erősen nyomja meg a kék (X) gombot, ha (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// kinyomtatja a botértékeket, ha valamelyik TRUE RY_Value = ps2x. Analog (PSS_RY); RX_érték = ps2x. Analóg (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Stick Values:"); Soros.nyomtatás (RX_érték); Serial.print (""); Sorozatnyomat (RY_érték); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Sorozat.println (LX_érték);

Az alábbi kódban kódoljuk a robotkarunkat vezérlő szervóinkat, amelyeket a függvényhívásban a ps2x.button (PSB_L1) alatt veszünk fel || ps2x.button (PSB_R1).

A robotkar vezérléséhez nyomja meg az L1 vagy R1 gombot a joystick segítségével.

A bal oldali joystick vezérlő szervok 2 és 3 a kar részhez - szabályozza a kar felfelé és lefelé hajlítását, míg a jobb joystick a robotkar karjának 0 és 1 szervóját nyitja vagy zárja, és balra vagy jobbra forgatja.

SERVO 0, 1 - Karom SERVO 2, 3 - Kar

Ebben a részben módosíthatja az értékeket, hogy szabályozhassa a robotkar szöge mértékét:

pulselen0 = térkép (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = térkép (RX_érték, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = térkép (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = térkép (LX_érték, 0, 255, SERVOMIN3, SERVOMAX3);

Ajánlott: