Raspberry Pi er et ARM-arkitekturbasert kort designet for elektroniske ingeniører og hobbyister. PI er en av de mest pålitelige plattformene for prosjektutvikling der ute nå. Med høyere prosessorhastighet og 1 GB RAM kan PI brukes til mange høyprofilerte prosjekter som bildebehandling og tingenes internett.
For å gjøre noen av høyprofilerte prosjekter, må man forstå de grunnleggende funksjonene til PI. Vi vil dekke alle de grunnleggende funksjonene til Raspberry Pi i disse opplæringene. I hver opplæring vil vi diskutere en av funksjonene til PI. Ved slutten av denne Raspberry Pi Tutorial Series, vil du kunne gjøre høyprofilerte prosjekter alene. Gå gjennom veiledningene nedenfor:
- Komme i gang med Raspberry Pi
- Raspberry Pi-konfigurasjon
- LED Blinky
- Raspberry Pi-knappegrensesnitt
- Raspberry Pi PWM generasjon
- Kontrollerer DC-motor ved hjelp av Raspberry Pi
I denne opplæringen vil vi kontrollere hastigheten til en trinnmotor ved hjelp av Raspberry Pi. I Stepper Motor, som navnet selv sier, er rotasjonen av akselen i trinnform. Det finnes forskjellige typer trinnmotor; her inne vil vi bruke den mest populære som er Unipolar Stepper Motor. I motsetning til DC-motor, kan vi rotere trinnmotoren til en bestemt vinkel ved å gi den riktige instruksjoner.
For å rotere denne firetrinns trinnmotoren, vil vi levere kraftpulser ved å bruke trinnmotordrivkrets. Førerkretsen tar logiske utløsere fra PI. Hvis vi kontrollerer logikkutløserne, kontrollerer vi kraftpulsene og dermed hastigheten til trinnmotor.
Det er 40 GPIO-utgangspinner i Raspberry Pi 2. Men av 40 kan bare 26 GPIO-pinner (GPIO2 til GPIO27) programmeres. Noen av disse pinnene utfører noen spesielle funksjoner. Med spesial GPIO satt til side, har vi bare 17 GPIO igjen. Hver av disse 17 GPIO-pinnene kan levere maksimalt 15 mA strøm. Og summen av strømmer fra alle GPIO-pins kan ikke overstige 50 mA. For å vite mer om GPIO-pinner, gå gjennom: LED blinker med Raspberry Pi
Det er + 5V (Pin 2 & 4) og + 3.3V (Pin 1 & 17) strømuttak på kortet for tilkobling av andre moduler og sensorer. Disse motorskinnene kan ikke brukes til å kjøre trinnmotoren, fordi vi trenger mer kraft for å rotere den. Så vi må levere kraften til Stepper Motor fra en annen strømkilde. Steppermotoren min har en spenningsgrad på 9V, så jeg bruker et 9v batteri som min andre strømkilde. Søk på trinnmotormodellnummeret ditt for å vite spenningsverdien. Avhengig av vurdering, velg den sekundære kilden på riktig måte.
Som nevnt tidligere, trenger vi en førerkrets for å kjøre trinnmotoren. Vi vil også designe en enkel transistordriverkrets her.
Nødvendige komponenter:
Her bruker vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grunnleggende maskinvare- og programvarekravene er tidligere diskutert, du kan slå opp i Raspberry Pi Introduksjon, annet enn det vi trenger:
- Koble pinner
- 220Ω eller 1KΩ motstand (3)
- Stepper Motor
- Knapper (2)
- 2N2222 Transistor (4)
- 1N4007 Diode (4)
- Kondensator - 1000uF
- Brødtavle
Kretsforklaring:
Stepper motor bruker 200 trinn for å fullføre 360 graders rotasjon, betyr at den roterer 1,8 grader per trinn. Når vi kjører en firetrinns trinnmotor, må vi gi fire pulser for å fullføre en enkelt logisk syklus. Hvert trinn i denne motoren fullfører 1,8 graders rotasjon, så for å fullføre en syklus trenger vi 200 pulser. Så 200/4 = 50 logiske sykluser som trengs for å fullføre en enkelt rotasjon. Sjekk dette for å vite mer om Steppers Motors og dens kjøremodus.
Vi kjører hver av disse fire spolene med en NPN-transistor (2N2222), denne NPN-transistoren tar den logiske pulsen fra PI og driver den tilsvarende spolen. Fire transistorer tar fire logikker fra PI for å kjøre fire trinn med trinnmotor.
Transistordriverkretsen er et vanskelig oppsett; her bør vi være oppmerksom på at feilkobling av transistoren kan belaste kortet tungt og skade det. Kontroller dette for å forstå trinnkretsens drivkrets.
Motoren er en induksjon, og mens vi bytter motor, opplever vi induktiv spiking. Denne spikingen vil varme opp transistoren tungt, så vi vil bruke diode (1N4007) for å gi beskyttelse til transistoren mot induktiv spiking.
For å redusere spenningssvingningene, kobler vi en 1000uF kondensator over strømforsyningen som vist i kretsdiagrammet.
Arbeidsforklaring:
Når alt er koblet til i henhold til kretsskjemaet, kan vi slå PI på for å skrive programmet i PYHTON.
Vi vil snakke om få kommandoer som vi skal bruke i PYHTON-programmet, Vi skal importere GPIO-filer fra biblioteket, under funksjonen gjør det mulig for oss å programmere GPIO-pinner på PI. Vi omdøper også "GPIO" til "IO", så når vi vil referere til GPIO-pinner i programmet, bruker vi ordet "IO".
importer RPi.GPIO som IO
Noen ganger, når GPIO-pinnene, som vi prøver å bruke, gjør noen andre funksjoner. I så fall vil vi motta advarsler mens vi kjører programmet. Kommandoen nedenfor forteller PI å ignorere advarslene og fortsette med programmet.
IO.setwarnings (False)
Vi kan henvise GPIO-pinnene til PI, enten med pin-nummer om bord eller etter deres funksjonsnummer. Som 'PIN 35' på tavlen er 'GPIO19'. Så vi forteller her enten at vi skal representere nålen her med '35' eller '19'.
IO.setmode (IO.BCM)
Vi setter fire av GPIO-pinner som utgang for å kjøre fire trinn med trinnmotor.
IO.oppsett (5, IO.OUT) IO.oppsett (17, IO.OUT) IO.oppsett (27, IO.OUT) IO.oppsett (22, IO.OUT)
Vi setter GPIO26 og GPIO19 som inngangspinner. Vi vil oppdage knappetrykk med disse pinnene.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Hvis tilstanden i klammeparentesene er oppfylt, vil utsagnene i løkken utføres en gang. Så hvis GPIO-tappen 26 blir lav, vil utsagnene i IF-sløyfen utføres en gang. Hvis GPIO-tappen 26 ikke blir lav, vil ikke utsagnene i IF-sløyfen bli utført.
if (IO.input (26) == False):
Denne kommandoen utfører løkken 100 ganger, x økes fra 0 til 99.
for x innen rekkevidde (100):
Mens 1: brukes til uendelig sløyfe. Med denne kommandoen vil utsagnene i denne sløyfen utføres kontinuerlig.
Vi har alle kommandoene som trengs for å oppnå hastighetskontroll av trinnmotor med dette.
Etter at du har skrevet programmet og kjørt det, er alt som er igjen å betjene kontrollen. Vi har to knapper koblet til PI. En for å øke forsinkelsen mellom de fire pulser og den andre for å redusere forsinkelsen mellom de fire pulser. Forsinkelsen i seg selv snakker om fart; hvis forsinkelsen er høyere, tar motoren bremser mellom hvert trinn, og rotasjonen går sakte. Hvis forsinkelsen er nær null, roterer motoren med maksimal hastighet.
Her skal det huskes at det skal være noen forsinkelser mellom pulser. Etter å ha gitt en puls, tar trinnmotoren noen millisekunder tid å nå sin siste fase. Hvis det ikke er noen forsinkelse gitt mellom pulser, vil ikke trinnmotoren bevege seg i det hele tatt. Normalt er 50ms forsinkelse bra mellom pulser. For mer nøyaktig informasjon, se på databladet.
Så med to knapper kan vi kontrollere forsinkelsen, som igjen styrer trinnmotorens hastighet.