Kuten aiemmin keskusteltiin, Arduino Due on ARM-ohjainpohjainen kortti, joka on suunniteltu sähköinsinööreille ja harrastajille. Tätä DUE-korttia voidaan käyttää CNC-koneiden, 3D-tulostimien, robottivarsien jne. Valmistamiseen. Kaikilla näillä projekteilla on yhteinen piirre, joka on Position Control. Mikä tahansa näistä projekteista vaatii tarkkuutta kohti asemaansa. Tarkat sijainnit näissä koneissa voidaan saavuttaa Servo Motorsilla. Tässä istunnossa aiomme hallita servomoottorin asemaa Arduino Due -sovelluksella. Olemme jo käsitelleet servomoottoriliitännän Arduino Unon kanssa ja servomoottoriliitännän 8051-mikrokontrollerilla.
Servomoottorit:
Servomoottorit tunnetaan tarkasta akselin liikkeestään tai sijainnistaan. Näitä ei ehdoteta suurten nopeuksien sovelluksiin. Näitä ehdotetaan matalalle nopeudelle, keskivääntömomentille ja tarkalleen asennolle. Näitä moottoreita käytetään robottivarren koneissa, lennonohjaimissa ja ohjausjärjestelmissä. Servomoottoreita käytetään myös joissakin tulostimissa ja fakseissa.
Servomoottoreita on saatavana eri muodoissa ja kooissa. Käytämme SG90-servomoottoria tässä opetusohjelmassa. SG90 on 180 asteen servomoottori. Joten tällä servolla voimme sijoittaa akselin 0-180 astetta.
Servomoottorissa on pääasiassa kolme johtoa, toinen on positiivista jännitettä, toinen maadoitusta ja viimeinen asennon asettamista varten. PUNAINEN johto on kytketty virtaan, ruskea johto on kytketty maahan ja KELTAINEN johto (tai VALKOINEN) on kytketty signaaliin.
Servomoottori on yhdistelmä tasavirtamoottoria, asennonohjausjärjestelmää ja vaihteita. Servossa meillä on ohjausjärjestelmä, joka ottaa PWM-signaalin signaalitapista. Se purkaa signaalin ja saa siitä suhdelukun. Sen jälkeen se vertaa suhdetta ennalta määriteltyihin sijaintiarvoihin. Jos arvoissa on eroja, se säätää servon sijaintia vastaavasti. Joten servomoottorin akseliasema perustuu PWM-signaalin ja SIGNAL-nastan väliseen suhdelukuun.
PWM (Pulse Width Modulated) -signaalin taajuus voi vaihdella servomoottorin tyypin mukaan. Tärkeää tässä on PWM-signaalin TULOSUHDE. Tarkista tämä PWM: lle Arduino Due -sovelluksella. Tässä tapauksessa meidän ei kuitenkaan tarvitse edes huolehtia Duty Ratio -valinnasta. Arduinossa meillä on erityinen toiminto; kutsumalla sitä voimme säätää servon sijaintia vain ilmoittamalla kulman. Puhumme siitä alla olevassa työosassa.
Ennen kuin servomoottori liitetään Arduino Due -palvelimeen, voit testata servoasi tämän servomoottorin testauspiirin avulla. Tarkista nämä projektit myös ohjaamalla Servoa Flex Sensorilla tai Force Sensorilla.
Komponentit:
Laitteisto: Arduino Due, virtalähde (5v), servomoottori.
Ohjelmisto: Arduino iltaisin, lataa se alla olevasta linkistä (https://www.arduino.cc/en/Main/Software)
Lisätietoja tämän ohjelmiston lataamisesta ja asentamisesta on ensimmäisessä oppaassa Aloittaminen Arduino Due -sovelluksesta.
Piirikaavio ja selitys:
Kuten aiemmin ARDUINO-ohjelmassa sanottiin, meillä on ennalta määritetyt kirjastot, jotka asettavat taajuudet ja suhdeluvut vastaavasti, kun otsikkotiedosto on kutsuttu tai sisällytetty. ARDUINOSSA meidän on yksinkertaisesti ilmoitettava tarvittava servon sijainti ja DUE tuottaa sopivan PWM-signaalin servolle. Asiat, jotka meidän on tehtävä servon tarkan sijainnin saamiseksi, ovat
#sisältää
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (tarvitaan_asento_kulma);
Otsikkotiedosto “#include
Toiseksi servolle on valittava nimi käyttämällä ”Servo myservo” , tässä myservo on valittu nimi, joten kun kirjoitamme sijaintia, aiomme käyttää tätä nimeä, tämä ominaisuus on kätevä, kun meillä on monia servoja hallita, voimme hallita tällä tavalla jopa 12 servoa.
Kun Arduino Due -laitteessa on 12 PWM-kanavaa, meidän on kerrottava DUE: lle, missä servon signaalitappi on kytketty tai missä sen on tuotettava PWM-signaali. Tätä varten meillä on ”myservo.attach (2);” , tässä sanotaan DUE: lle, että olemme liittäneet servon signaalinastan PIN2: een.
Ainoa jäljellä on asettaa sijainti, aiomme asettaa servon sijainnin käyttämällä ” myservo.write (45);” , tällä komennolla servokäsi liikkuu 45 astetta. Jos vaihdamme arvon 45 arvoksi 175, servo-akseli kulmautuu 175 asteeseen ja pysyy siellä. Sen jälkeen, kun meidän on vaihdettava servon sijaintia, meidän on vain kutsuttava komento " myservo.write (needed_position_angle);" .
Ohjelmassa aiomme lisätä ja vähentää kulmia käyttämällä silmukoita. Joten servo pyyhkäisee välillä 0-180, sitten välillä 180-0 ja niin edelleen. Servomoottori Ohjaus Arduino vuoksi selostetaan parhaiten askel askeleelta ja C-koodia alas alla.