Ako už bolo spomenuté, Arduino Due je doska založená na radiči ARM určená pre elektronických inžinierov a fanúšikov. Táto doska DUE sa dá použiť na výrobu CNC strojov, 3D tlačiarní, robotických ramien atď. Všetky tieto projekty majú spoločnú vlastnosť, ktorou je Position Control. Ktorýkoľvek z týchto projektov vyžaduje presnosť, pokiaľ ide o ich pozíciu. Presné polohy na týchto strojoch je možné dosiahnuť pomocou servomotorov. V tejto relácii budeme riadiť polohu servomotora pomocou Arduino Due. Interfacing servomotorov sme už pokryli pomocou Arduino Uno a servomotorové prepojenie mikrokontrolérom 8051.
Servomotory:
Servomotory sú známe svojim presným pohybom alebo pozíciou hriadeľa. Nie sú navrhované pre vysokorýchlostné aplikácie. Sú navrhnuté pre nízku rýchlosť, stredný krútiaci moment a presnú aplikáciu polohy. Tieto motory sa používajú v strojoch s robotickými ramenami, riadení letov a riadiacich systémoch. Servomotory sa používajú aj v niektorých tlačiarňach a faxoch.
Servomotory sú k dispozícii v rôznych tvaroch a veľkostiach. V tomto výučbe budeme používať servomotor SG90. SG90 je 180 stupňový servomotor. Týmto servom môžeme teda umiestniť os od 0 do 180 stupňov.
Servomotor má hlavne tri vodiče, jeden je na kladné napätie, druhý na zem a posledný na nastavenie polohy. ČERVENÝ vodič je pripojený k napájaniu, hnedý vodič je pripojený k zemi a ŽLTÝ vodič (alebo BIELY) je pripojený k signálu.
Servomotor je kombináciou jednosmerného motora, systému riadenia polohy a prevodových stupňov. V serve máme riadiaci systém, ktorý berie signál PWM zo signálneho kolíka. Dekóduje signál a získa z neho pracovný pomer. Potom porovnáva pomer s preddefinovanými hodnotami pozícií. Ak je rozdiel v hodnotách, upraví to zodpovedajúcim spôsobom polohu serva. Poloha osi servomotora je teda založená na pracovnom pomere signálu PWM k kolíku SIGNAL.
Frekvencia signálu PWM (Pulse Width Modulated) sa môže líšiť v závislosti od typu servomotora. Dôležitá je tu POVINNOSŤ PWM signálu. Skontrolujte to kvôli PWM s Arduino Due. V takom prípade sa však s výberom Duty Ratio nemusíme obávať. V Arduine máme špeciálnu funkciu; pri jeho volaní môžeme upraviť polohu serva jednoduchým uvedením uhla. O tom si povieme v pracovnej sekcii nižšie.
Pred pripojením servomotora na Arduino môžete svoje servo otestovať pomocou tohto testovacieho obvodu servomotora. Skontrolujte tiež tieto projekty na Control Servo pomocou Flex Sensor alebo Force Sensor.
Komponenty:
Hardvér: Arduino Due, napájanie (5v), servomotor.
Softvér: Arduino nightly, stiahnite si ho z odkazu nižšie (https://www.arduino.cc/en/Main/Software)
Podrobné informácie o tom, ako stiahnuť a nainštalovať tento softvér, nájdete v prvom výučbe Začíname s programom Arduino Due.
Schéma zapojenia a pracovné vysvetlenie:
Ako už bolo povedané v ARDUINO, máme preddefinované knižnice, ktoré zodpovedajúcim spôsobom nastavia frekvencie a prevádzkové pomery, keď sa vyvolá alebo zahrnie hlavičkový súbor. V ARDUINO musíme jednoducho uviesť potrebnú polohu serva a DUE generuje vhodný signál PWM pre servo. Veci, ktoré musíme urobiť pre získanie presnej polohy serva, sú,
#include
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (needed_position_ angle);
Hlavičkový súbor „#include
Po druhé, meno sa má zvoliť pre servo pomocou „Servo myservo“ , tu je myservo zvolený názov, takže pri písaní pozície budeme používať tento názov, táto funkcia sa hodí, keď máme k dispozícii veľa servov na ovládanie, týmto môžeme ovládať až 12 serv.
S Arduino Due má 12 PWM kanály, musíme povedať, POHĽADÁVKY, kde je signál pin serva je pripojený alebo tam, kde je potreba generovať PWM signál. Aby sme to dosiahli, máme „myservo.attach (2);“ , tu hovoríme DUE, že sme pripojili signálny pin serva na PIN2.
Všetko, čo zostáva, je nastavenie polohy, polohu serva nastavíme pomocou „ myservo.write (45);“ , týmto príkazom sa servo ruka presunie o 45 stupňov. Ak zmeníme „45“ na „175“, os serva sa nakloní na 175 stupňov a zostane tam. Potom, kedykoľvek potrebujeme zmeniť polohu serva, stačí zavolať príkaz „ myservo.write (needed_position_angle);“ .
V programe ideme zvyšovať a znižovať uhly pomocou slučiek. Takže servo zametá od 0 do 180, potom od 180 do 0 a tak ďalej. Ovládanie servomotora od spoločnosti Arduino Due je najlepšie vysvetliť krok za krokom v kóde C nižšie.