Ang Raspberry Pi ay isang ARM architecture processor based board na dinisenyo para sa mga elektronikong inhinyero at libangan. Ang PI ay isa sa pinaka mapagkakatiwalaang mga platform sa pagbuo ng proyekto doon ngayon. Sa mas mataas na bilis ng processor at 1 GB RAM, maaaring magamit ang PI para sa maraming mga proyekto sa mataas na profile tulad ng pagproseso ng Imahe at Internet of Things.
Para sa paggawa ng alinman sa mga proyekto sa mataas na profile, kailangang maunawaan ng isa ang mga pangunahing pag-andar ng PI. Saklawin namin ang lahat ng mga pangunahing pag-andar ng Raspberry Pi sa mga tutorial na ito. Sa bawat tutorial tatalakayin namin ang isa sa mga pagpapaandar ng PI. Sa pagtatapos ng Raspberry Pi Tutorial Series na ito, magagawa mong mag-isa ang mga proyekto ng mataas na profile na mag-isa. Dumaan sa mga tutorial sa ibaba:
- Pagsisimula sa Raspberry Pi
- Pag-configure ng Raspberry Pi
- LED Blinky
- Pag-interfacing ng Button ng Raspberry Pi
- Paglikha ng Raspberry Pi PWM
- Pagkontrol sa DC Motor gamit ang Raspberry Pi
Sa tutorial na ito, makokontrol namin ang Bilis ng isang Stepper Motor gamit ang Raspberry Pi. Sa Stepper Motor, tulad ng sinasabi mismo ng pangalan, ang pag-ikot ng baras ay nasa Hakbang na form. Mayroong iba't ibang mga uri ng Stepper Motor; dito ay gagamitin namin ang pinakapopular na Unipolar Stepper Motor. Hindi tulad ng DC motor, maaari nating paikutin ang stepper motor sa anumang partikular na anggulo sa pamamagitan ng pagbibigay nito ng wastong mga tagubilin.
Upang paikutin ang Four Stage Stepper Motor na ito, maghatid kami ng mga pulso ng kuryente sa pamamagitan ng paggamit ng Stepper Motor Driver Circuit. Ang circuit ng driver ay tumatagal ng mga pag-trigger ng lohika mula sa PI. Kung makokontrol namin ang mga pag-trigger ng lohika, kinokontrol namin ang mga pulso ng kuryente at kaya't ang bilis ng stepper motor.
Mayroong 40 GPIO output pin sa Raspberry Pi 2. Ngunit sa labas ng 40, 26 na GPIO pin lamang (GPIO2 hanggang GPIO27) ang maaaring mai-program. Ang ilan sa mga pin na ito ay nagsasagawa ng ilang mga espesyal na pagpapaandar. Na isantabi ang espesyal na GPIO, mayroon lamang kaming 17 GPIO na natitira. Ang bawat isa sa mga 17 GPIO pin na ito ay maaaring maghatid ng maximum na 15mA kasalukuyang. At ang kabuuan ng mga alon mula sa lahat ng mga GPIO Pins ay hindi maaaring lumagpas sa 50mA. Upang malaman ang higit pa tungkol sa mga GPIO pin, dumaan sa: LED Blinking with Raspberry Pi
Mayroong + 5V (Pin 2 & 4) at + 3.3V (Pin 1 & 17) na mga power output pin sa board para sa pagkonekta ng iba pang mga module at sensor. Ang mga riles ng kuryente na ito ay hindi maaaring gamitin upang himukin ang Stepper Motor, dahil kailangan namin ng higit na lakas upang paikutin ito. Kaya kailangan nating ihatid ang lakas sa Stepper Motor mula sa isa pang mapagkukunan ng kuryente. Ang aking stepper motor ay may rating ng boltahe na 9V kaya't gumagamit ako ng isang 9v na baterya bilang aking pangalawang mapagkukunan ng kuryente. Maghanap sa numero ng modelo ng iyong stepper motor upang malaman ang rating ng boltahe. Nakasalalay sa rating pumili ng pangalawang mapagkukunan nang naaangkop.
Tulad ng naunang sinabi, kailangan namin ng isang circuit ng driver upang himukin ang Stepper Motor. Magdidisenyo din kami ng isang Simple Transistor Driver Circuit dito.
Kinakailangan ang Mga Bahagi:
Narito ginagamit namin ang Raspberry Pi 2 Model B kasama ang Raspbian Jessie OS. Ang lahat ng pangunahing mga kinakailangan sa Hardware at Software ay dati nang tinalakay, maaari mo itong tingnan sa Panimula ng Raspberry Pi, bukod sa kailangan namin:
- Kumokonekta na mga pin
- 220Ω o 1KΩresistor (3)
- Stepper Motor
- Mga Pindutan (2)
- 2N2222 Transistor (4)
- 1N4007 Diode (4)
- Kapasitor- 1000uF
- Lupon ng Tinapay
Paliwanag sa Circuit:
Gumamit ang Stepper motor ng 200 mga hakbang upang makumpleto ang pag- ikot ng 360 degree, nangangahulugang paikutin nito ang 1.8 degree bawat hakbang. Habang nagmamaneho kami ng isang Four Stage Stepper Motor, kaya kailangan naming magbigay ng apat na pulso upang makumpleto ang solong cycle ng lohika. Ang bawat hakbang ng motor na ito ay nakumpleto ang 1.8 degree na pag-ikot, kaya upang makumpleto ang isang cycle kailangan namin ng 200 pulso. Kaya't kailangan ng 200/4 = 50 na mga cycle ng lohika upang makumpleto ang isang solong pag-ikot. Suriin ito upang malaman ang tungkol sa Steppers Motors at ang Mga Mode sa Pagmamaneho.
Kami ay magdadala ng bawat isa sa mga apat na coil sa pamamagitan ng isang NPN transistor (2N2222), ang NPN transistor na ito ay tumatagal ng lohika pulso mula sa PI at hinihimok ang kaukulang coil. Apat na mga transistor ang kumukuha ng apat na mga lohika mula sa PI upang magmaneho ng apat na yugto ng stepper motor.
Ang circuit ng driver ng transistor ay isang nakakalito na pag-setup; narito dapat nating bigyang pansin na ang maling pagkonekta sa transistor ay maaaring mai-load ang board ng mabigat at mapinsala ito. Suriin ito upang maunawaan nang maayos ang Stepper Motor Driver Circuit.
Ang motor ay isang induction at sa gayon habang inililipat ang motor, nakakaranas kami ng inductive spiking. Ang spike na ito ay magpapainit ng transistor, kaya gagamitin namin ang Diode (1N4007) upang magbigay ng proteksyon sa transistor laban sa Inductive Spiking.
Upang mabawasan ang mga pagbabago-bago ng boltahe, magkokonekta kami ng isang 1000uF capacitor sa kabuuan ng supply ng kuryente tulad ng ipinakita sa Circuit Diagram.
Paggawa ng Paliwanag:
Kapag ang lahat ay konektado ayon sa diagram ng circuit, maaari nating buksan ang PI upang isulat ang programa sa PYHTON.
Pag-uusapan natin ang ilang mga utos na gagamitin namin sa programa ng PYHTON, Mag-a-import kami ng GPIO file mula sa silid-aklatan, sa ibaba ang pagpapaandar ay nagbibigay-daan sa amin upang mai-program ang mga pin ng GPIO ng PI. Pinapalitan din namin ang pangalan ng "GPIO" sa "IO", kaya sa programa tuwing nais naming mag-refer sa mga GPIO pin gagamitin namin ang salitang 'IO'.
i-import ang RPi.GPIO bilang IO
Minsan, kapag ang mga GPIO pin, na sinusubukan naming gamitin, ay maaaring gumagawa ng ilang iba pang mga pagpapaandar. Sa kasong iyon, makakatanggap kami ng mga babala habang isinasagawa ang programa. Sa ibaba ng utos ay sinasabi sa PI na huwag pansinin ang mga babala at magpatuloy sa programa.
IO.setwarnings (Mali)
Maaari naming i-refer ang mga GPIO pin ng PI, alinman sa pamamagitan ng pin number sa board o ng kanilang function number. Tulad ng 'PIN 35' sa pisara ay 'GPIO19'. Kaya sasabihin namin dito alinman na ilalarawan namin ang pin dito sa pamamagitan ng '35' o '19'.
IO.setmode (IO.BCM)
Nagtatakda kami ng apat na mga GPIO pin bilang output para sa pagmamaneho ng apat na coil ng stepper motor.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Itinatakda namin ang GPIO26 at GPIO19 bilang mga input pin. Madidiskubre namin ang pindot ng pindutan ng mga pin na ito.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Kung sakaling ang Kundisyon sa mga brace ay totoo, ang mga pahayag sa loob ng loop ay papatayin nang isang beses. Kaya't kung ang GPIO pin 26 ay bumaba, kung gayon ang mga pahayag sa loob ng IF loop ay naisasagawa nang isang beses. Kung ang GPIO pin 26 ay hindi bumaba, kung gayon ang mga pahayag sa loob ng IF loop ay hindi naisakatuparan.
kung (IO.input (26) == Mali):
Ang utos na ito ay nagpapatupad ng loop ng 100 beses, na nadagdagan mula 0 hanggang 99.
para sa x sa saklaw (100):
Habang ang 1: ay ginagamit para sa infinity loop. Gamit ang utos na ito ang mga pahayag sa loob ng loop na ito ay patuloy na maisasagawa.
Mayroon kaming lahat ng mga utos na kinakailangan upang makamit ang Speed Control ng Stepper Motor kasama nito.
Matapos isulat ang programa at ipatupad ito, ang natitira lamang ay ang pagpapatakbo ng kontrol. Mayroon kaming dalawang mga pindutan na konektado sa PI. Isa para sa mga pagtaas ng pagkaantala sa pagitan ng apat na pulso at iba pa para sa pagbawas ng pagkaantala sa pagitan ng apat na pulso. Ang pagkaantala mismo ay nagsasalita ng bilis; kung ang pagkaantala ay mas mataas ang motor ay tumatagal ng preno sa pagitan ng bawat hakbang at sa gayon ay mabagal ang pag-ikot. Kung ang pagka- antala ay malapit sa zero, pagkatapos ay ang motor ay umiikot sa maximum na bilis.
Narito dapat tandaan na, dapat mayroong ilang pagkaantala sa pagitan ng mga pulso. Matapos bigyan ang isang pulso, ang stepper motor ay tumatagal ng ilang milliseconds ng oras upang maabot ang huling yugto nito. Kung walang pagkaantala na ibinigay sa pagitan ng mga pulso, ang stepper motor ay hindi talaga gagalaw. Karaniwan ang pagkaantala ng 50ms ay maayos sa pagitan ng mga pulso. Para sa mas tumpak na impormasyon, tingnan ang sheet ng data.
Kaya sa dalawang mga pindutan maaari nating makontrol ang pagkaantala, na kung saan ay kontrolin ang bilis ng stepper motor.