Raspberry PI Rotary tid förflutit rigg. (7 / 7 steg)
Steg 7: Python programmet och USB-lagring.
Innan jag förklara bitarna av programmet värt bara titta på hur jag kontrollerar Raspberry PI. Till att börja jag vill köra raspberry PI headless så det är inget tangentbord mus eller bildskärm. så innan jag kunde åstadkomma detta har jag haft koppla in en USB WiFi dongle och konfigurera trådlösa lösenordet så att den ansluter till mitt WiFi. sedan när jag kopplar in PSU raspberry pi kommer att starta upp och jag kan ansluta till den via min windows-dator använder putty.
- Anslut nätdelen och låta PI stöveln upp.
- Öppna upp routern webbsida med adress i webbläsaren. 192.168.1.1 är min (på windows).
- Räkna ut vilka anslutningar du har och anteckna den PI nummer.
- Öppna Putty och skriv in numret och Anslut.
- Logga in med pi som namn och hallon som lösenord.
- Sedan navigera till rätt fil och kör programmet med "sudo python stepper01.py"
- Kontrollera det fungerar genom att titta på det parkera först och sedan ta bilder.
Och så vidare.
Programmet förklaras
1) ställa in import och GPIO stift och riktning.
importera matematik
Importera tid import datetime som avskiljare
importera RPi.GPIO som GPIO
importera os import sys
# till springa den här program
# Öppna terminal och nagigate till katalogen sedan Skriv "sudo python stepper01.py"
# Detta kör programmet
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings(False)
GPIO.setup (4, GPIO. OUT)
GPIO.setup (17, GPIO. OUT)
GPIO.setup (27, GPIO. OUT)
GPIO.setup (22, GPIO. OUT)
GPIO.setup (26, GPIO. OUT)
GPIO.setup (19, GPIO. OUT)
GPIO.setup (10, GPIO. I)2) starta huvudprogrammet (rutin)
Kontrollera lamporna är släckta. initalise räknaren kontrollera USB-minnet och vända upp stegmotor till park.
GPIO.output (26, falskt)
GPIO.output (19, falskt)
F = 0
checkMedia()
checkSlot()
Starta huvudsakliga rutin.
3) log starttiden, slå på lampor, kontrollera USB-minne, ta 25 bilder, flytta motor varje gång.
samtidigt sant:
startTime = time.time()
GPIO.output (26, True)
Time.Sleep(1)
GPIO.output (19, True)
Time.Sleep(1)
checkMedia()
för B i intervall (0, 25):
x i range(0,2):
rotate(0,1,0,0)
rotate(0,0,1,0)
rotate(0,0,0,1)
rotate(1,0,0,0)
takePicture(B)
4) sedan ökas räknaren foto filen namn, vända upp och parkera, Släck ljuset, träna fördröjningstiden och sova tills nästa foton.
F = F + 1
checkSlot()
GPIO.output (26, falskt)
Time.Sleep(1)
GPIO.output (19, falskt)
Time.Sleep(1)
endTime = time.time()
Total Time = endTime - startTime
Fördröjningstid = 600 - total Time
#15 minuter skulle vara 900
#10 minuter skulle vara 600
Time.Sleep(delayTime)
5) nu kan titta på avsnittet stepper motor...
def rotate(ln1,ln2,ln3,ln4):
AllZero()
om ln1 == 1:
GPIO.output (4, True)
annat:
GPIO.output (4, falskt)
om ln2 == 1:
GPIO.output (17, True)
annat:
GPIO.output (17, falskt)
om ln3 == 1:
GPIO.output (22, True)
annat:
GPIO.output (22, falskt)
om ln4 == 1:
GPIO.output (27, True)
annat:
GPIO.output (27, falskt)
timeSleep1()
AllZero()
6) Detta är det avsnitt som Parker tabellen.
def checkSlot():
g = 1
medan g == 1:
rotate(1,0,0,0)
om GPIO.input (10) == 0:
resetStart()
g = 0
returnera
rotate(0,0,0,1)
om GPIO.input (10) == 0:
resetStart()
g = 0
returnera
rotate(0,0,1,0)
om GPIO.input (10) == 0:
resetStart()
g = 0
returnera
rotate(0,1,0,0)
om GPIO.input (10) == 0:
resetStart()
g = 0
returnera
7) Detta är den sista delen att titta på. Hela programmet är i filer.
def takePicture(fileNumber):
y = str(F)
filnamn = ("pic_")+str(B)+("_")+y+(".jpg")
skriva ut (filnamn)
partA=("/media/pi/KINGSTON/Photos/Photo")
partB=str(B)
OS.chdir (partA + partB)
kommandot = ("sudo raspistill -t 200 - n -o")
OS.system (kommando + filnamn)
OS.chdir("/Home/PI")