Kaip aptarta anksčiau, „ Arduino Due“ yra ARM valdikliu pagrįsta lenta, skirta elektronikos inžinieriams ir mėgėjams. Ši DUE plokštė gali būti naudojama gaminant CNC mašinas, 3D spausdintuvus, robotus ir pan. Visi šie projektai turi bendrą bruožą, tai yra padėties valdymas. Bet kuriam iš šių projektų reikia tikslumo, atsižvelgiant į jų padėtį. Tikslią šių mašinų padėtį gali pasiekti „ Servo Motors“. Šioje sesijoje mes kontroliuosime servo variklio padėtį su „Arduino Due“. Servo variklio sąsają jau aptarėme su „Arduino Uno“ ir servo variklio sąsają su „8051“ mikrovaldikliu.
Servo varikliai:
„Servo“ varikliai yra žinomi dėl tikslaus veleno judėjimo ar padėties. Jie nėra siūlomi didelės spartos programoms. Jie siūlomi mažam greičiui, vidutiniam sukimo momentui ir tiksliai pritaikyti padėtį. Šie varikliai naudojami robotinėse rankose, skrydžio valdymo ir valdymo sistemose. Servo varikliai taip pat naudojami kai kuriuose spausdintuvuose ir fakso aparatuose.
Servo varikliai yra įvairių formų ir dydžių. Būsime naudojant SG90 servo variklis šiame samouczku. SG90 yra 180 laipsnių servovariklis. Taigi naudodami šį servo ašį mes galime nustatyti ašį nuo 0 iki 180 laipsnių.
Servovariklis daugiausia turi tris laidus, vienas skirtas teigiamai įtampai, kitas - įžeminimui, o paskutinis - padėties nustatymui. RED laidas yra prijungtas prie maitinimo, rudas laidas yra prijungtas prie žemės, o geltona (arba BALTA) - prie signalo.
Servovariklis yra nuolatinės srovės variklio, padėties valdymo sistemos ir pavarų derinys. Servo serveryje mes turime valdymo sistemą, kuri ima PWM signalą iš signalo kaiščio. Jis iššifruoja signalą ir gauna iš jo darbo santykį. Po to jis lygina santykį su iš anksto nustatytomis pozicijų vertėmis. Jei vertės skiriasi, ji atitinkamai sureguliuoja servo padėtį. Taigi servovariklio ašies padėtis pagrįsta PWM signalo ir SIGNAL kaiščio darbo santykiu.
PWM (moduliuojamas impulso pločio) signalo dažnis gali skirtis priklausomai nuo servo variklio tipo. Svarbus dalykas yra PWM signalo PAREIGOS RATIO. Patikrinkite, ar nėra PWM su „Arduino Due“. Tačiau šiuo atveju net nereikia jaudintis dėl muito santykio pasirinkimo. „Arduino“ mes atliekame ypatingą funkciją; paskambinę galime reguliuoti servo padėtį, tik nurodydami kampą. Apie tai kalbėsime žemiau esančiame darbo skyriuje.
Prieš sujungdami servo variklį su „Arduino Due“, galite patikrinti savo servo servorą naudodami šią servo variklio testerio grandinę. Taip pat patikrinkite šiuos projektus, norėdami valdyti „Servo“ naudodami „Flex Sensor“ arba „Force Sensor“.
Komponentai:
Aparatūra: „ Arduino Due“, maitinimo šaltinis (5v), servovariklis.
Programinė įranga: „ Arduino“ kas vakarą atsisiųskite ją iš toliau pateiktos nuorodos (https://www.arduino.cc/en/Main/Software)
Išsamesnės informacijos apie tai, kaip atsisiųsti ir įdiegti šią programinę įrangą, rasite apsilankę pirmajame „Arduino Due“ pradžios pamokyme.
Grandinės schema ir darbo paaiškinimas:
Kaip minėta anksčiau ARDUINO, mes turime iš anksto apibrėžtas bibliotekas, kurios atitinkamai nustatys dažnius ir darbo santykius, kai bus iškviestas arba įtrauktas antraštės failas. „ARDUINO“ mes tiesiog turime nurodyti reikalingą servo padėtį, o DUE sukuria atitinkamą PWM signalą servo servetui. Tai, ką turime padaryti, kad tiksliai nustatytume servo padėtį, yra
# įtraukti
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (reikalingas_pozicijos_ kampas);
Antraštės failas „#include
Antra pavadinimas turi būti pasirinktas servo naudojant "servo myservo" , čia myservo yra pasirinktas vardas, toks, o rašymas padėtyje mes ketiname naudoti šį pavadinimą, ši funkcija praverčia, kai mes turime daug Actuators kontroliuoti, tai galime valdyti net 12 servo.
Kai „ Arduino Due“ turi 12 PWM kanalų, turime pasakyti DUE, kur prijungtas servo signalo kaištis arba kur jis turi generuoti PWM signalą. Norėdami tai padaryti, turime „myservo.attach (2);“ , čia mes sakome DUE, kad mes prijungėme servo signalo kaištį prie PIN2.
Lieka nustatyti padėtį, nustatysime servo padėtį naudodami „ myservo.write (45);“ , šia komanda servo ranka pasislenka 45 laipsniais. Jei „45“ pakeisime į „175“, servo ašis pasislenka į 175 laipsnių kampą ir lieka ten. Po to, kai tik reikia pakeisti servo padėtį, mes tiesiog turime iškviesti komandą „ myservo.write (needed_position_angle);“ .
Programoje mes padidinsime ir sumažinsime kampus naudodami kilpas. Taigi servo serveris nušluoja nuo 0 iki 180, tada nuo 180 iki 0 ir pan. „ Arduino Due “ servo variklio valdymas geriausiai paaiškinamas žemiau esančiu C kodo žingsniu.