Raspberry Pi är ett ARM-arkitekturbaserat kort designat för elektroniska ingenjörer och hobbyister. PI är en av de mest betrodda projektutvecklingsplattformarna där ute nu. Med högre processorhastighet och 1 GB RAM kan PI användas för många högprofilerade projekt som bildbehandling och Internet of Things.
För att göra något av högprofilerade projekt måste man förstå de grundläggande funktionerna i PI. Vi kommer att täcka alla grundläggande funktioner i Raspberry Pi i dessa handledning. I varje handledning kommer vi att diskutera en av funktionerna i PI. I slutet av denna Raspberry Pi-handledningsserie kommer du att kunna göra högprofilerade projekt själv. Gå igenom handledningarna nedan:
- Komma igång med Raspberry Pi
- Raspberry Pi-konfiguration
- LED blinkande
- Raspberry Pi-knappgränssnitt
- Raspberry Pi PWM-generation
- Styr DC-motor med Raspberry Pi
I den här handledningen kommer vi att kontrollera hastigheten på en stegmotor med Raspberry Pi. I Stepper Motor, som själva namnet säger, är axelns rotation i stegform. Det finns olika typer av stegmotor; här kommer vi att använda den mest populära som är Unipolar Stepper Motor. Till skillnad från likströmsmotor kan vi rotera stegmotorn till en viss vinkel genom att ge den korrekta instruktioner.
För att rotera denna stegmotor med fyra steg kommer vi att leverera effektpulser med hjälp av stegmotordrivkrets. Drivkretsen tar logiska utlösare från PI. Om vi kontrollerar logikutlösarna kontrollerar vi kraftpulserna och därmed stegmotorns hastighet.
Det finns 40 GPIO-utgångsstift i Raspberry Pi 2. Men av 40 kan endast 26 GPIO-stift (GPIO2 till GPIO27) programmeras. Några av dessa stift utför vissa speciella funktioner. Med särskild GPIO avsatt har vi bara 17 GPIO kvar. Var och en av dessa 17 GPIO-stift kan leverera maximalt 15 mA ström. Och summan av strömmar från alla GPIO-stift kan inte överstiga 50 mA. Om du vill veta mer om GPIO-stift går du igenom: LED blinkar med Raspberry Pi
Det finns + 5V (Pin 2 & 4) och + 3.3V (Pin 1 & 17) utgångsstift på kortet för att ansluta andra moduler och sensorer. Dessa kraftskenor kan inte användas för att driva stegmotorn, eftersom vi behöver mer kraft för att rotera den. Så vi måste leverera kraften till Stepper Motor från en annan strömkälla. Min stegmotor har en spänning på 9V så jag använder ett 9v batteri som min andra strömkälla. Sök i stegmotorns modellnummer för att veta spänningsvärde. Välj sekundär källa på lämpligt sätt beroende på betyg.
Som tidigare nämnts behöver vi en förarkrets för att driva stegmotorn. Vi kommer också att utforma en enkel transistordrivkrets här.
Komponenter som krävs:
Här använder vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alla grundläggande hårdvaru- och mjukvarukrav har tidigare diskuterats, du kan slå upp det i Raspberry Pi Introduktion, annat än vad vi behöver:
- Anslutningsstift
- 220Ω eller 1KΩ motstånd (3)
- Stegmotor
- Knappar (2)
- 2N2222 Transistor (4)
- 1N4007-diod (4)
- Kondensator - 1000uF
- Brödbräda
Kretsförklaring:
Stegmotor använder 200 steg för att slutföra 360 graders rotation, betyder att den roterar 1,8 grader per steg. När vi kör en stegmotor med fyra steg så måste vi ge fyra pulser för att slutföra en enda logisk cykel. Varje steg i denna motor fullbordar 1,8 graders rotation, så för att kunna slutföra en cykel behöver vi 200 pulser. Så 200/4 = 50 logiska cykler behövs för att slutföra en enda rotation. Kontrollera detta om du vill veta mer om Steppers Motors och dess körlägen.
Vi kommer att köra var och en av dessa fyra spolar med en NPN-transistor (2N2222), den här NPN-transistorn tar logikpulsen från PI och driver motsvarande spole. Fyra transistorer tar fyra logiker från PI för att driva fyra steg av stegmotor.
Transistordrivkretsen är en knepig installation; här bör vi vara uppmärksamma på att felaktig anslutning av transistorn kan ladda kortet kraftigt och skada det. Kontrollera detta för att förstå stegmotorförarens krets.
Motorn är en induktion och så när vi byter motor upplever vi induktiv spikning. Denna spikning kommer att värma upp transistorn kraftigt, så vi kommer att använda dioden (1N4007) för att ge transistorn skydd mot induktiv spikning.
För att minska spänningsfluktuationerna ansluter vi en 1000uF kondensator över strömförsörjningen som visas i kretsschemat.
Arbetsförklaring:
När allt är anslutet enligt kretsschemat, kan vi sätta PÅ PI för att skriva programmet i PYHTON.
Vi kommer att prata om några kommandon som vi ska använda i PYHTON-programmet, Vi ska importera GPIO-filer från biblioteket, nedanstående funktion gör att vi kan programmera GPIO-stift av PI. Vi döper också om "GPIO" till "IO", så i programmet när vi vill hänvisa till GPIO-stift kommer vi att använda ordet "IO".
importera RPi.GPIO som IO
Ibland, när GPIO-stiften, som vi försöker använda, kan göra några andra funktioner. I så fall får vi varningar när vi kör programmet. Kommandot nedan ber PI att ignorera varningarna och fortsätta med programmet.
IO.setwarnings (False)
Vi kan hänvisa GPIO-stift på PI, antingen med stiftnummer ombord eller med deras funktionsnummer. Som "PIN 35" på tavlan är "GPIO19". Så vi berättar här antingen att vi kommer att representera nålen här med '35' eller '19'.
IO.setmode (IO.BCM)
Vi ställer in fyra GPIO-stift som utgång för att driva fyra stegmotorns spolar.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Vi ställer in GPIO26 och GPIO19 som ingångsstift. Vi kommer att upptäcka knapptryckning med dessa stift.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Om villkoret i hängslen är sant kommer uttalandena inuti slingan att utföras en gång. Så om GPIO-stiftet 26 blir lågt kommer uttalandena i IF-slingan att köras en gång. Om GPIO-stiftet 26 inte blir lågt kommer inte uttalandena i IF-slingan att utföras.
if (IO.input (26) == False):
Detta kommando kör slingan 100 gånger, x ökas från 0 till 99.
för x i intervallet (100):
Medan 1: används för infinity loop. Med detta kommando kommer uttalandena i den här slingan att köras kontinuerligt.
Vi har alla kommandon som behövs för att nå stegmotorns hastighetskontroll med detta.
Efter att ha skrivit programmet och kört det är allt som finns kvar att styra kontrollen. Vi har två knappar anslutna till PI. En för att öka fördröjningen mellan de fyra pulserna och en för att minska fördröjningen mellan de fyra pulserna. Själva förseningen talar om hastighet; om fördröjningen är högre, bromsar motorn mellan varje steg och rotationen går därför långsamt. Om förseningen är nära noll roterar motorn med maximal hastighet.
Här bör man komma ihåg att det bör vara en viss fördröjning mellan pulserna. Efter att ha gett en puls tar stegmotorn några millisekunder tid att nå sitt sista steg. Om det inte ges någon fördröjning mellan pulserna kommer stegmotorn inte att röra sig alls. Normalt är 50 ms fördröjning bra mellan pulserna. Mer information finns i databladet.
Så med två knappar kan vi styra fördröjningen, som i sin tur styr stegmotorns hastighet.