- PWM (pulssinleveyden modulaatio):
- Servomoottori ja PWM:
- Vaaditut komponentit:
- Piirikaavio:
- Työskentely ja ohjelmointi Selitys:
Raspberry Pi on ARM-arkkitehtuuriprosessoripohjainen kortti, joka on suunniteltu elektroniikkasuunnittelijoille ja harrastajille. PI on yksi luotetuimmista projektien kehittämisalustoista. Suuremmalla prosessorinopeudella ja 1 Gt: n RAM-muistilla PI: tä voidaan käyttää moniin korkean profiilin projekteihin, kuten kuvankäsittelyyn ja esineiden internetiin.
Minkä tahansa korkean profiilin projektin suorittamiseksi on ymmärrettävä PI: n perustoiminnot. Käsittelemme kaikki Raspberry Pi: n perustoiminnot näissä opetusohjelmissa. Jokaisessa opetusohjelmassa keskustelemme yhdestä PI: n toiminnoista. Tämän Raspberry Pi Tutorial -sarjan loppuun mennessä voit tehdä itse korkean profiilin projekteja. Käy läpi alla olevat opetusohjelmat:
- Raspberry Pi: n käytön aloittaminen
- Vadelma Pi -määritys
- LED vilkkuu
- Vadelma Pi-painikkeen liitäntä
- Vadelma Pi PWM-sukupolvi
- DC-moottorin ohjaus Raspberry Pi: llä
- Askelmoottorin ohjaus Raspberry Pi: llä
- Raspberry Pi: n vuorovaikutteinen vaihtorekisteri
- Vadelma Pi ADC -opastus
Tässä opetusohjelmassa ohjaamme servomoottoria Raspberry Pi: llä. Ennen kuin menemme servoon, puhutaan PWM: stä, koska servomoottorin ohjaamisen käsite tulee siitä.
PWM (pulssinleveyden modulaatio):
Olemme aiemmin puhuneet PWM: stä monta kertaa: Pulssileveyden modulointi ATmega32: lla, PWM Arduino Unolla, PWM 555 ajastimen IC: llä ja PWM Arduino Due: lla. PWM tarkoittaa pulssinleveyden modulointia. PWM on menetelmä, jota käytetään vaihtelevan jännitteen saamiseen vakaasta virtalähteestä. PWM: n ymmärtämiseksi paremmin ota huomioon alla oleva piiri,
Jos kytkin on suljettu jatkuvasti tietyn ajanjakson ajan, yllä olevassa kuvassa LED palaa jatkuvasti tämän ajan. Jos kytkin on suljettu puoliksi sekunniksi ja avattu seuraavaksi puoliksi sekunniksi, LED palaa vasta ensimmäisellä puoliskolla. Nyt sitä osuutta, jolle LED palaa koko ajan, kutsutaan käyttöjaksoksi, ja se voidaan laskea seuraavasti:
Käyttösykli = Kytke päälle aika / (Kytke päälle aika + Sammuta aika)
Käyttöjakso = (0,5 / (0,5 + 0,5)) = 50%
Joten keskimääräinen lähtöjännite on 50% akun jännitteestä.
Kun nostamme PÄÄLLE- ja POIS-nopeutta tasolle, näemme LED-valon himmentävän sen sijaan, että se olisi päällä ja pois päältä. Tämä johtuu siitä, että silmämme eivät pysty saamaan selvästi yli 25 Hz: n taajuuksia. Harkitse 100 ms: n sykliä, kun LED on pois päältä 30 ms: n ajan ja palaa 70 ms: n ajan. Lähdössä on 70% vakaa jännite, joten LED palaa jatkuvasti 70%: n intensiteetillä.
Käyttösuhde vaihtelee 0: sta 100: een. '0' tarkoittaa täysin POIS ja '100' täysin ON. Tämä käyttösuhde on erittäin tärkeä servomoottorille. Servomoottorin asento määritetään tällä suhdeluvulla. Tarkista tämä PWM-esittelyä varten LEDillä ja Raspberry Pi: llä.
Servomoottori ja PWM:
Servomoottori on yhdistelmä tasavirtamoottoria, asennonohjausjärjestelmää ja vaihteita. Servoilla on monia sovelluksia nykyaikaisessa maailmassa, ja sen myötä niitä on saatavana eri muotoisina ja kokoisina. Käytämme SG90-servomoottoria tässä opetusohjelmassa, se on yksi suosituimmista ja halvimmista. SG90 on 180 asteen servo. 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 verkkovirtaan, Ruskea johdin on kytketty maahan ja keltainen lanka (tai valkoinen) on liitetty signaalia.
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 käyttösuhteeseen signaalitapissa.
PWM (Pulse Width Modulated) -signaalin taajuus voi vaihdella servomoottorin tyypin mukaan. SG90: ssä PWM-signaalin taajuus on 50 Hz. Jos haluat selvittää servosi toimintataajuuden, tarkista kyseisen mallin tietolomake. Joten kun taajuus on valittu, toinen tärkeä asia tässä on PWM-signaalin TYÖSUHDE.
Alla olevassa taulukossa on esitetty kyseisen servosuunnan servoasento. Voit saada minkä tahansa kulman välillä valitsemalla arvon vastaavasti. Joten 45 asteen servolla tullisuhteen tulisi olla '5' tai 5%.
ASEMA |
TULLISUUS |
0º |
2.5 |
90º |
7.5 |
180º |
12.5 |
Ennen kuin servomoottori liitetään Raspberry Pi: hen, voit testata servoasi tämän servomoottorin testauspiirin avulla. Tarkista myös alla olevat servoprojektimme:
- Servomoottorin ohjaus Arduinolla
- Servomoottorin ohjaus ja Arduino Due
- Servomoottorin liitäntä 8051-mikrokontrolleriin
- Servomoottorin ohjaus MATLAB: n avulla
- Servomoottorin ohjaus Flex-anturilla
- Servoasennon hallinta painolla (Force Sensor)
Vaaditut komponentit:
Tässä käytämme Raspberry Pi 2 -mallia B Raspbian Jessie -käyttöjärjestelmän kanssa. Kaikista laitteisto- ja ohjelmistovaatimuksista on keskusteltu aiemmin, voit etsiä niitä Raspberry Pi -johdannosta, paitsi mitä tarvitsemme:
- Liitintapit
- 1000uF kondensaattori
- SG90-servomoottori
- Leipälauta
Piirikaavio:
A1000µF on kytkettävä + 5 V: n tehokiskon poikki, muuten PI voi sammua satunnaisesti servoa ohjataessa.
Työskentely ja ohjelmointi Selitys:
Kun kaikki on kytketty piirikaavion mukaisesti, voimme käynnistää PI: n kirjoittamaan ohjelman PYHTON-muodossa.
Puhumme muutamasta komennosta, joita aiomme käyttää PYHTON-ohjelmassa, Aiomme tuoda GPIO-tiedoston kirjastosta, alla oleva toiminto antaa meille mahdollisuuden ohjelmoida PI: n GPIO-nastat. Nimeämme myös "GPIO": n "IO: ksi", joten aina kun haluamme viitata GPIO-nastoihin, käytämme sanaa "IO".
tuo RPi.GPIO IO: ksi
Joskus, kun GPIO-nastat, joita yritämme käyttää, saattavat tehdä joitain muita toimintoja. Siinä tapauksessa saamme varoituksia ohjelman suorituksen aikana. Alla oleva komento kehottaa PI: tä ohittamaan varoitukset ja jatkamaan ohjelmaa.
IO.setwarnings (väärä)
Voimme viitata PI: n GPIO-nastoihin joko aluksella olevalla pin-numerolla tai niiden toimintonumerolla. Kuten taululla oleva PIN-koodi 29, on GPIO5. Joten sanomme täällä joko aion edustaa tappi tässä '29' tai '5'.
IO.setmode (IO.BCM)
Asetamme PIN39- tai GPIO19-lähdön piniksi. Saamme PWM-lähdön tältä piniltä.
IO.asetukset (19, IO.OUT)
Kun olet asettanut lähtönastan, meidän on määritettävä tappi PWM-lähtöön, p = IO.PWM (lähtökanava, PWM-signaalin taajuus)
Yllä oleva komento on tarkoitettu kanavan asettamiseen ja myös kanavan taajuuden asettamiseen. 'p' tässä on muuttuja, se voi olla mikä tahansa. Käytämme GPIO19: tä PWM-ulostulokanavana. "PWM-signaalin taajuus" valitsemme 50, koska SG90-taajuus on 50 Hz.
Alla olevaa komentoa käytetään PWM-signaalin luomisen aloittamiseen. ' DUTYCYCLE ' on asetettu 'Käynnistys ' -suhteelle kuten edellä
s. aloitus (DUTYCYCLE)
Alla olevaa komentoa käytetään ikuisesti silmukana, tällä komennolla tämän silmukan sisällä olevat lauseet suoritetaan jatkuvasti.
Vaikka 1:
Tässä Servo- ohjauksen ohjelma Raspberry Pi: llä antaa PWM-signaalin GPIO19: ssä. PWM-signaalin käyttösuhdetta muutetaan kolmen arvon välillä kolmen sekunnin ajan. Joten servo kääntyy jokaisen sekunnin ajan kohtaan, jonka määrää suhdeluku. Servo pyörii jatkuvasti 0 °, 90 ° ja 180 ° kolmessa sekunnissa.