Kot smo že omenili, je Arduino Due plošča na osnovi krmilnika ARM, zasnovana za elektronske inženirje in ljubitelje. Ta plošča DUE se lahko uporablja za izdelavo CNC strojev, 3D tiskalnikov, robotskih orožij itd. Vsi ti projekti imajo skupno značilnost, ki je nadzor položaja. Vsak od teh projektov potrebuje natančnost glede na svoj položaj. Natančne položaje v teh strojih lahko doseže Servo Motors. Na tej seji bomo nadzirali položaj servo motorja z Arduino Due. Servo motorne povezave smo že pokrili z Arduino Uno in Servo Motor Interfacing z 8051 mikrokrmilnikom.
Servo motorji:
Servo motorji so znani po natančnem gibanju ali položaju gredi. Te niso predlagane za visoke hitrosti. Predlagane so za nizko hitrost, srednji navor in natančno uporabo položaja. Ti motorji se uporabljajo v robotskih strojih za roke, krmiljenju leta in nadzornih sistemih. Servo motorji se uporabljajo tudi v nekaterih tiskalnikih in telefaksih.
Servo motorji so na voljo v različnih oblikah in velikostih. V tej vadnici bomo uporabili servo motor SG90. SG90 je 180-stopinjski servo motor. Tako lahko s tem servo osi postavimo os od 0 do 180 stopinj.
Servo motor ima večinoma tri žice, eno je za pozitivno napetost, drugo za ozemljitev in zadnjo za nastavitev položaja. RDEČA žica je priključena na napajanje, rjava žica je priključena na maso, RUMENA žica (ali BELA) pa na signal.
Servo motor je kombinacija enosmernega motorja, sistema za nadzor položaja in zobnikov. In servo, imamo krmilni sistem, ki vzame signal PWM iz signalnega zatiča. Dekodira signal in od njega dobi delovni koeficient. Nato primerja razmerje z vnaprej določenimi vrednostmi položajev. Če pride do razlike v vrednostih, ustrezno prilagodi položaj servo-servo-kolesa. Položaj osi servo motorja torej temelji na razmerju med delovanjem signala PWM in zatičem SIGNAL.
Frekvenca PWM (Pulse Width Modulated) signala se lahko razlikuje glede na vrsto servo motorja. Tu je najpomembnejše razmerje dolžnosti signala PWM. Preverite to za PWM z Arduino Due. Vendar v tem primeru z izbiro razmerja dolžnosti sploh ne smemo skrbeti. V Arduinu imamo posebno funkcijo; ko ga pokličemo, lahko nastavimo položaj servo-pogona, samo z navedbo kota. O tem bomo govorili v spodnjem delovnem delu.
Preden povežete servo motor z Arduino Due, lahko svoj servo preizkusite s pomočjo tega vezja servo motorja. Te projekte preverite tudi na Control Servo s pomočjo Flex Sensor ali Force Sensor.
Sestavni deli:
Strojna oprema: Arduino Due, napajalnik (5v), servo motor.
Programska oprema: Arduino zvečer, prenesite ga s spodnje povezave (https://www.arduino.cc/en/Main/Software)
Za podrobnosti o tem, kako prenesti in namestiti to programsko opremo, obiščite prvo vadnico Uvod v Arduino Due.
Shema vezja in delovna razlaga:
Kot smo že omenili v ARDUINO, imamo vnaprej določene knjižnice, ki bodo po klicu ali vključitvi datoteke glave ustrezno nastavile frekvence in razmerja dolžnosti. V ARDUINO moramo preprosto navesti položaj servo servo, ki je potreben, in DUE generira ustrezen PWM signal za servo. Stvari, ki jih moramo storiti, da dobimo natančen položaj servo servo, so,
#include
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (kot_položaja_položaj);
Datoteka z glavo »#include
Drugič, ime je treba izbrati za servo z uporabo "Servo myservo" , tukaj je myservo izbrano ime, zato je med pisanjem za položaj, ki ga bomo uporabljali to ime, ta funkcija prišla prav, ko imamo na voljo veliko servo serv, s tem lahko nadzorujemo kar 12 servomotorjev.
Ko ima Arduino Due 12 PWM kanalov, moramo DUE povedati, kje je priključen signalni zatič servo servo ali kje mora generirati PWM signal. Za to imamo "myservo.attach (2);" , tukaj DUE-u povemo, da smo signalni zatič servo priključili na PIN2.
Levo je še, da nastavimo položaj, položaj servo- pogona pa bomo nastavili z uporabo » myservo.write (45);« , s tem ukazom se servo kazalka pomakne za 45 stopinj. Če spremenimo '45' na '175', se servoos nagne na 175 stopinj in ostane tam. Po tem moramo vsakič, ko moramo spremeniti položaj servo- pogona, samo poklicati ukaz " myservo.write (needed_position_angle);" .
V programu bomo kote povečevali in zmanjševali z uporabo zank. Tako se servo pomika od 0 do 180, nato od 180 do 0 in tako naprej. Nadzor servo motorja Arduino Due je najbolje razložiti v korakih po spodnji kodi C.