Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette vil vise deg hvordan du lager en automatisert fotoboks ved hjelp av bringebærpi, en ultralydavstandssensor og et par andre tilbehør. Jeg ønsket å gjøre et prosjekt som bruker både sofistikert maskinvare og et program som er sofistikert. Jeg undersøkte prosjekter som dette på bringebær pi ressurs -siden, noen av disse prosjektene er fysisk databehandling med python og mikrobit -selfie. En av disse viste hvordan du bruker bringebær pi -kameraet og den andre viste hvordan du bruker ultralydavstandssensoren.
Trinn 1: Materialer
Før vi begynner å bygge kretsen vår trenger du noen materialer:
1 x Raspberry Pi 3
1 x T-skomaker
1 x Pi -kamera
1 x ultralydavstandssensor
3 x RGB -lysdioder
10 x 330 ohm motstander
1 x 560 ohm motstand
5 x spole av forskjellige fargede kabler
1 x brødbrett
Trinn 2: Bygg kretsen
Dette er måten jeg gikk frem for å koble til kretsen min:
1. For å lage denne kretsen, vil du koble Raspberry Pi -kameraet til den riktige kontakten
2. Koble T-skomakeren til brødbrettet.
3. Ved hjelp av egendefinerte lengdekabler koble en til kraftskinnen og en til bakkeskinnen
4. Koble til ultralydavstandssensoren og plugg "vcc" -benet til strøm, "gnd" i bakken, "trig" til en GPIO -pin, og "ekko" til en 330 ohm motstand som kobles til en 560 ohm motstand som er koblet til bakken og en GPIO -pin.
5. Sett de tre RGB -lysdiodene på brødbrettet inline som kobler LED -anoden til strøm, og koble de forskjellige benene som styrer fargen på lysdiodene til 330 ohm motstander og deretter til GPIO -pinner.
Trinn 3: Koden
For å få Raspberry Pi til å bruke GPIO -pinnene, må vi kode kodene for å gjøre noe. For å lage koden jeg laget brukte jeg python 3 IDLE. Koden jeg lagde bruker både RPi. GPIO og gpiozero -biblioteket for å fungere. Det er prosedyrer for de forskjellige fargene, og det er en funksjon som beregner avstanden ved hjelp av ultralydavstandssensoren, og når det er noe innen rekkevidde, åpnes pi -kameraets forhåndsvisning og lysdiodene teller ned, og deretter blir det tatt et bilde.
Her er koden jeg brukte:
fra picamera import PiCamerafrom gpiozero importknapp, LED fra tid importer søvnimport RPi. GPIO som GPIO importtid
r = [LED (23), LED (25), LED (12)]
g = [LED (16), LED (20), LED (21)] b = [LED (17), LED (27), LED (22)] -knapp = Knapp (24) GPIO.setmode (GPIO. BCM) GPIO_TRIGGER = 19 GPIO_ECHO = 26 GPIO.setup (GPIO_TRIGGER, GPIO. OUT) GPIO.setup (GPIO_ECHO, GPIO. IN)
def rød (x):
r [x].off () g [x].on () b [x].on ()
def off (x):
r [x].on () g [x].on () b [x].on ()
def off ():
r [0].on () g [0].on () b [0].on () r [1].on () g [1].on () b [1].on () r [2].on () g [2].on () b [2].on ()
def green (x):
r [x].on () g [x].off () b [x].on ()
def blå (x):
r [x].on () g [x].on () b [x].off ()
def run ():
camera.capture ('selfie.jpg') camera.stop_preview ()
def distanse ():
GPIO.output (GPIO_TRIGGER, True) time.sleep (0.00001) GPIO.output (GPIO_TRIGGER, False) StartTime = time.time () StopTime = time.time () mens GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () mens GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () TimeElapsed = StopTime - StartTime distance = (TimeElapsed *34300) / 2 returavstand
av()
mens sant: d = avstand () hvis int (d) <= 30: med PiCamera () som kamera: kamera. start_preview () rød (0) søvn (1) blå (1) søvn (1) grønn (2) søvn (1) off () camera.capture ('selfie.jpg') camera.stop_preview ()