Raspberry Pi er et ARM-arkitekturbaseret kort designet til elektroniske ingeniører og hobbyister. PI er en af de mest pålidelige projektudviklingsplatforme derude nu. Med højere processorhastighed og 1 GB RAM kan PI bruges til mange højt profilerede projekter som billedbehandling og Internet of Things.
For at udføre nogle af højt profilerede projekter skal man forstå de grundlæggende funktioner i PI. Vi vil dække alle de grundlæggende funktioner i Raspberry Pi i disse vejledninger. I hver tutorial vil vi diskutere en af funktionerne i PI. Ved afslutningen af denne Raspberry Pi Tutorial Series vil du være i stand til at lave projekter med høj profil alene. Gå igennem nedenstående vejledninger:
- Kom godt i gang med Raspberry Pi
- Raspberry Pi-konfiguration
- LED Blinkende
- Raspberry Pi-knapgrænseflade
- Raspberry Pi PWM generation
- Styring af jævnstrømsmotor ved hjælp af Raspberry Pi
I denne vejledning styrer vi hastigheden på en trinmotor ved hjælp af Raspberry Pi. I Stepper Motor, som navnet selv siger, er akselens rotation i trinform. Der findes forskellige typer trinmotor; herinde vil vi bruge den mest populære, der er Unipolar Stepper Motor. I modsætning til jævnstrømsmotor kan vi rotere trinmotor til en bestemt vinkel ved at give den de rette instruktioner.
For at rotere denne 4-trins trinmotor leverer vi effektimpulser ved hjælp af trinmotordriverkredsløb. Førerkredsløbet tager logiske udløsere fra PI. Hvis vi styrer de logiske udløsere, styrer vi effektimpulserne og dermed trinmotorens hastighed.
Der er 40 GPIO output pins i Raspberry Pi 2. Men ud af 40 kan kun 26 GPIO-ben (GPIO2 til GPIO27) programmeres. Nogle af disse ben udfører nogle specielle funktioner. Med særlig GPIO afsat, har vi kun 17 GPIO tilbage. Hver af disse 17 GPIO-pin kan levere maksimalt 15 mA strøm. Og summen af strømme fra alle GPIO-pins kan ikke overstige 50 mA. Hvis du vil vide mere om GPIO-ben, skal du gå igennem: LED blinker med Raspberry Pi
Der er + 5V (Pin 2 & 4) og + 3.3V (Pin 1 & 17) power output pins på kortet til tilslutning af andre moduler og sensorer. Disse strømskinner kan ikke bruges til at køre trinmotoren, fordi vi har brug for mere strøm til at dreje den. Så vi er nødt til at levere strømmen til Stepper Motor fra en anden strømkilde. Min stepmotor har en spænding på 9V, så jeg bruger et 9v batteri som min anden strømkilde. Søg efter dit trinvise modelnummer for at kende spændingsvurderingen. Afhængig af klassificeringen skal du vælge den sekundære kilde passende.
Som tidligere nævnt har vi brug for et førerkredsløb til at køre trinmotoren. Vi vil også designe et simpelt transistordriverkredsløb her.
Nødvendige komponenter:
Her bruger vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion, bortset fra hvad vi har brug for:
- Tilslutningsstifter
- 220Ω eller 1KΩ modstand (3)
- Stepper Motor
- Knapper (2)
- 2N2222 Transistor (4)
- 1N4007 Diode (4)
- Kondensator- 1000uF
- Brødbræt
Forklaring af kredsløb:
Trinmotor bruger 200 trin til at fuldføre 360 graders rotation, hvilket betyder, at den roterer 1,8 grader pr. Trin. Når vi kører en 4-trins trinmotor, er vi nødt til at give fire impulser for at gennemføre en enkelt logisk cyklus. Hvert trin i denne motor fuldfører 1,8 graders rotation, så for at gennemføre en cyklus har vi brug for 200 impulser. Så 200/4 = 50 logiske cyklusser er nødvendige for at gennemføre en enkelt rotation. Tjek dette for at vide mere om Steppers Motors og dets køremåder.
Vi kører hver af disse fire spoler med en NPN-transistor (2N2222), denne NPN-transistor tager den logiske puls fra PI og driver den tilsvarende spole. Fire transistorer tager fire logik fra PI til at køre fire trin i trinmotor.
Transistordriverkredsløbet er en vanskelig opsætning; her skal vi være opmærksomme på, at forkert tilslutning af transistoren kan belaste kortet stærkt og beskadige det. Kontroller dette for at forstå trinmotordriverkredsløbet korrekt.
Motoren er en induktion, og så mens vi skifter motor, oplever vi induktiv spiking. Denne spiking vil opvarme transistoren kraftigt, så vi bruger diode (1N4007) til at yde beskyttelse til transistoren mod induktiv spiking.
For at reducere spændingsudsvingene tilslutter vi en 1000uF kondensator over strømforsyningen som vist i kredsløbsdiagrammet.
Arbejdsforklaring:
Når alt er tilsluttet i henhold til kredsløbsdiagrammet, kan vi tænde PI for at skrive programmet i PYHTON.
Vi vil tale om få kommandoer, som vi skal bruge i PYHTON-programmet, Vi skal importere GPIO-filer fra biblioteket, nedenstående funktion giver os mulighed for at programmere GPIO-ben på PI. Vi omdøber også "GPIO" til "IO", så når vi vil henvise til GPIO-ben i programmet, bruger vi ordet 'IO'.
importer RPi.GPIO som IO
Nogle gange, når GPIO-stifterne, som vi prøver at bruge, udfører måske nogle andre funktioner. I så fald modtager vi advarsler, mens vi udfører programmet. Kommandoen nedenfor fortæller PI at ignorere advarslerne og fortsætte med programmet.
IO.setwarnings (Falsk)
Vi kan henvise GPIO-benene på PI, enten ved pin-nummer om bord eller ved deres funktionsnummer. Ligesom 'PIN 35' på tavlen er 'GPIO19'. Så vi fortæller her, at enten skal vi repræsentere stiften her med '35' eller '19'.
IO.setmode (IO.BCM)
Vi indstiller fire GPIO-ben som output til kørsel af fire spoler af trinmotor.
IO.opsætning (5, IO.OUT) IO.opsætning (17, IO.OUT) IO.opsætning (27, IO.OUT) IO.opsætning (22, IO.OUT)
Vi indstiller GPIO26 og GPIO19 som input-pins. Vi registrerer tryk på knappen ved hjælp af disse ben.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Hvis betingelsen i selerne er sand, vil udsagnene i sløjfen blive udført en gang. Så hvis GPIO-pin 26 går lavt, udføres udsagnene inde i IF-sløjfen en gang. Hvis GPIO-pin 26 ikke går lavt, udføres udsagnene inden i IF-sløjfen ikke.
hvis (IO.input (26) == Falsk):
Denne kommando udfører sløjfen 100 gange, x øges fra 0 til 99.
for x i området (100):
Mens 1: bruges til uendelig løkke. Med denne kommando udføres udsagnene inde i denne sløjfe kontinuerligt.
Vi har alle de nødvendige kommandoer for at opnå hastighedskontrol af trinmotor med dette.
Efter at have skrevet programmet og udført det, er alt, hvad der er tilbage, at betjene kontrollen. Vi har to knapper tilsluttet PI. Én til at øge forsinkelsen mellem de fire impulser og en til at reducere forsinkelsen mellem de fire impulser. Selve forsinkelsen taler om hastighed; hvis forsinkelsen er højere, tager motoren bremser mellem hvert trin, og rotationen er derfor langsom. Hvis forsinkelsen er nær nul, roterer motoren med maksimal hastighed.
Her skal det huskes, at der skal være en vis forsinkelse mellem impulser. Efter at have givet en puls tager steppermotoren få millisekunder tid at nå sin sidste fase. Hvis der ikke er nogen forsinkelse mellem impulser, vil trinmotoren slet ikke bevæge sig. Normalt er 50ms forsinkelse fint mellem impulser. For mere nøjagtig information, se på databladet.
Så med to knapper kan vi styre forsinkelsen, som igen styrer trinmotorens hastighed.