Amint arról korábban szó esett, az Arduino Due egy ARM vezérlőalapú tábla, amelyet elektronikus mérnököknek és hobbistáknak terveztek. Ez a DUE kártya CNC gépek, 3D nyomtatók, robotkarok stb. Készítésére használható. Mindezeknek a projekteknek van egy közös jellemzőjük, a Position Control. Ezen projektek bármelyikének pontosnak kell lennie a pozíciója felé. Pontos pozíciókat ezekben a gépekben a Servo Motors érhet el. Ebben a munkamenetben az Arduino Due segítségével ellenőrizzük a szervomotor helyzetét. A szervomotoros interfészt már ismertettük az Arduino Uno-val, a szervomotoros interfészt pedig a 8051 mikrovezérlővel.
Szervomotorok:
A szervomotorok pontos tengelymozgásukról vagy helyzetükről ismertek. Ezeket nem javasoljuk nagy sebességű alkalmazásokhoz. Ezeket alacsony fordulatszámra, közepes nyomatékra és pontos helyzetmeghatározásra javasoljuk. Ezeket a motorokat robotkaros gépekben, repülésvezérlőkben és vezérlőrendszerekben használják. A szervomotorokat egyes nyomtatókban és faxgépekben is használják.
A szervomotorok különböző formában és méretben kaphatók. Ebben az oktatóanyagban az SG90 szervomotort fogjuk használni. Az SG90 egy 180 fokos szervomotor. Tehát ezzel a szervóval a tengelyt 0 és 180 fok között tudjuk elhelyezni.
A szervomotor főleg három vezetékkel rendelkezik, az egyik a pozitív feszültségre, a másik a földre, az utolsó pedig a helyzet beállítására szolgál. A RED vezeték csatlakozik az áramhoz, a barna vezeték a földhöz és a SÁRGA vezeték (vagy FEHÉR) csatlakozik a jelhez.
A szervomotor az egyenáramú motor, a helyzetszabályozó rendszer és a fogaskerekek kombinációja. A szervóban van egy vezérlő rendszerünk, amely a PWM jelet a jelcsapról veszi. Dekódolja a jelet, és megkapja belőle az arányt. Ezt követően összehasonlítja az arányt az előre definiált pozícióértékekkel. Ha különbség van az értékekben, akkor ennek megfelelően állítja be a szervo helyzetét. Tehát a szervomotor tengelypozíciója a PWM jel és a SIGNAL csap közötti terhelési arányon alapul.
A PWM (Pulse Width Modulated) jel frekvenciája a szervomotor típusától függően változhat. A fontos itt a PWM jel DUTY RATIO. Ellenőrizze ezt a PWM esetében az Arduino Due alkalmazással. Ebben az esetben azonban nem is kell aggódnunk a Duty Ratio kiválasztása miatt. Arduinóban van egy speciális funkciónk; hívásakor beállíthatjuk a szervo helyzetét, csak a szög kijelölésével. Erről az alábbi Munkaszakaszban fogunk beszélni.
Mielőtt összekapcsolná a szervomotort az Arduino Due-vel, tesztelheti szervóját ennek a szervomotor-tesztelő áramkörnek a segítségével. Ellenőrizze ezeket a projekteket a Servo vezérléséhez Flex Sensor vagy Force Sensor segítségével is.
Alkatrészek:
Hardver: Arduino Due, tápegység (5v), szervomotor.
Szoftver: Arduino esténként, töltse le az alábbi linkről (https://www.arduino.cc/en/Main/Software)
A szoftver letöltésével és telepítésével kapcsolatos részletekért olvassa el az első oktatóanyagot az Arduino Due használatának megkezdéséhez
Áramkör és működési magyarázat:
Amint azt korábban az ARDUINO-ban elmondtuk, előre definiált könyvtárak vannak, amelyek ennek megfelelően fogják beállítani a frekvenciákat és a terhelési arányokat, amint a fejlécfájl meghívásra kerül, vagy benne van. Az ARDUINO-ban egyszerűen meg kell adnunk a szükséges szervo helyzetét, és a DUE megfelelő PWM jelet generál a szervóhoz. A dolgok, amiket meg kell tennünk a szervo pontos helyzetének megszerzéséhez,
#include
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (szükséges_pozíció_szög);
A „#include. Fejlécfájl
Másodszor a szervo nevét a „Servo myservo” használatával kell megválasztani, itt a myservo a választott név, tehát miközben a pozícióra írunk, ezt a nevet fogjuk használni, ez a szolgáltatás jól jön, ha sok szervót tudunk irányítani, ezzel akár 12 szervót is vezérelhetünk.
Mivel az Arduino Due 12 PWM csatornával rendelkezik, meg kell mondanunk a DUE-nak, hogy a szervo jelcsapja hol van csatlakoztatva, vagy hol kell előállítania a PWM jelet. Ehhez meg kell adnunk a „myservo.attach (2);” , itt elmondjuk a DUE-nak, hogy csatlakoztattuk a szervo jelcsapját a PIN2-nél.
Csak a pozíció beállítása áll rendelkezésre, a szervo helyzetét a „ myservo.write (45);” használatával állítjuk be. , ezzel a paranccsal a szervokéz 45 fokkal mozog. Ha a „45” értéket „175” -re változtatjuk, akkor a szervo tengelye 175 fokos szögbe dönt és ott marad. Ezt követően, amikor meg kell változtatnunk a szervo helyzetét, csak meg kell hívnunk a „ myservo.write (needed_position_angle);” parancsot . .
A programban növelni és csökkenteni fogjuk a szögeket hurkok használatával. Tehát a szervo 0-ról 180-ra söpör, majd 180-ról 0-ra és így tovább. Az Arduino Due szervomotor-vezérlését a C kód alábbiakban részletesen, lépésről lépésre magyarázza.