Satura rādītājs:
- 1. darbība: detaļu saraksts
- 2. darbība. Raspberry Pi iestatīšana
- 3. darbība: Raspberry Pi un kameras stiprinājums
- 4. solis: luksoforu montāža
- 5. solis: elektroinstalācija (1. daļa)
- 6. solis: vides veidošana
- 7. solis: PVC rāmja pabeigšana
- 8. darbība: elektroinstalācija (2. daļa)
- 9. solis: pabeigts
- 10. darbība. Papildu pakalpojumi (fotoattēli)
Video: Satiksmes modeļa analizators, izmantojot tiešu objektu noteikšanu: 11 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Mūsdienu pasaulē luksofori ir būtiski drošam ceļam. Tomēr daudzas reizes luksofori var būt kaitinoši situācijās, kad kāds tuvojas gaismai tieši tad, kad tā kļūst sarkana. Tas tērē laiku, it īpaši, ja gaisma neļauj vienam transportlīdzeklim nokļūt krustojumā, ja uz ceļa nav neviena cita. Mans jauninājums ir gudrs luksofors, kas izmanto dzīvu objektu noteikšanu no kameras, lai saskaitītu automašīnu skaitu uz katra ceļa. Aparatūra, ko es izmantošu šim projektam, ir Raspberry Pi 3, kameras modulis un dažādas elektroniskās aparatūras pašai gaismai. Izmantojot OpenCV uz Raspberry Pi, apkopotā informācija tiks izmantota, izmantojot kodu, kas kontrolē gaismas diodes, izmantojot GPIO. Atkarībā no šiem skaitļiem luksofors mainīsies, ļaujot automašīnām cauri visoptimālākajā secībā. Šajā gadījumā braukšanas josla ar visvairāk automašīnu tiktu izlaista, lai josla ar mazāk automašīnām darbotos tukšgaitā, samazinot gaisa piesārņojumu. Tas novērstu situācijas, kad daudzas automašīnas tiek apturētas, kamēr uz krustojošā ceļa nav automašīnu. Tas ne tikai ietaupa laiku ikvienam, bet arī ietaupa vidi. Laiks, kas tiek apstādināts pie pieturas zīmes ar dzinēju tukšgaitā, palielina gaisa piesārņojumu, tāpēc, izveidojot gudru luksoforu, es varu optimizēt gaismas shēmas, lai automašīnas pavadītu pēc iespējas mazāk laika, apstādinot transportlīdzekli. Galu galā šo luksoforu sistēmu varētu ieviest pilsētās, priekšpilsētās vai pat lauku apvidos, lai tā būtu efektīvāka cilvēkiem, samazinātu gaisa piesārņojumu.
1. darbība: detaļu saraksts
Materiāli:
Raspberry Pi 3 Modelis B v1.2
Raspberry Pi kamera v2.1
5V/1A mikro USB barošanas avots
HDMI monitors, tastatūra, peles SD karte ar Raspbian Jessie
Raspberry Pi GPIO izlaušanās kabelis
Sarkanas, dzeltenas, zaļas gaismas diodes (2 no katras krāsas)
Sieviešu savienotāji Raspberry Pi (7 unikālas krāsas)
Dažādu 24 gabarītu vads (dažādas krāsas) + termiski saraušanās caurule
2x2 collu koka panelis vai platforma
Koka skrūves
Melna virsma (kartons, putu dēlis, plakātu dēlis utt.)
Balta (vai jebkura cita krāsa, izņemot melnu) lente ceļa marķēšanai
Melna aerosola krāsa (PVC)
½ collu PVC caurule ar 90 grādu elkoņa locītavām (2), T ligzda (1), adapteris sievietēm (2)
Rīki
Lodāmurs
3D printeris
Urbis ar dažādiem urbjiem
Maizes dēlis
Siltuma lielgabals
2. darbība. Raspberry Pi iestatīšana
Ievietojiet SD karti Raspberry Pi un palaidiet to.
Izpildiet šo rokasgrāmatu, lai instalētu nepieciešamās OpenCV bibliotēkas. Pārliecinieties, ka jums ir laiks, lai veiktu šo darbību, jo OpenCV bibliotēkas instalēšana var aizņemt pāris stundas. Noteikti arī šeit instalējiet un iestatiet kameru.
Jums vajadzētu arī instalēt pip:
picamera
gpiozero
RPi. GPIO
Šeit ir galīgais kods:
no picamera.array importēt PiRGBArray
no picamera importa PiCamera
importēt picamera.array
importēt numpy kā np
importa laiks
importēt cv2
importēt RPi. GPIO kā GPIO
importa laiks
GPIO.setmode (GPIO. BCM)
i (23, 25, 16, 21):
GPIO iestatīšana (i, GPIO. OUT)
kamera = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (izciļņa izmērs = (480, 480))
miega laiks (0,1)
colorLower = np.masīvs ([0, 100, 100])
colorUpper = np.masīvs ([179, 255, 255])
initvert = 0
inithoriz = 0
skaitītājs = 0
kadram cam.capture_continuous (raw, format = "bgr", use_video_port = True):
rāmis = rāmis.masīvs
hsv = cv2.cvtColor (rāmis, cv2. COLOR_BGR2HSV)
maska = cv2.inRange (hsv, colorLower, colorUpper)
maska = cv2.blur (maska, (3, 3))
maska = cv2.dilate (maska, nav, iterācijas = 5)
maska = cv2.erode (maska, nav, iterācijas = 1)
maska = cv2.dilate (maska, nav, iterācijas = 3)
es, rinda = cv2.threshold (maska, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findConturs (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
centrs = nav
vert = 0
horizonts = 0
ja len (cnts)> 0:
c cnts:
(x, y), rādiuss = cv2.minEnclosingCircle (c)
centrs = (int (x), int (y))
rādiuss = int (rādiuss)
cv2.aplis (rāmis, centrs, rādiuss, (0, 255, 0), 2)
x = int (x)
y = int (y)
ja 180 <x <300:
ja y> 300:
vert = vert +1
elifs y <180:
vert = vert +1
cits:
vert = vert
ja 180 <y <300:
ja x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
cits:
horiz = horizonts
ja vert! = initvert:
drukāt "Automašīnas vertikālā joslā:" + str (vert)
initvert = vert
drukāt "Automašīnas horizontālā joslā:" + str (horizonts)
inithoriz = horizonts
drukāt '----------------------------'
ja horiz! = inithoriz:
drukāt "Automašīnas vertikālā joslā:" + str (vert)
initvert = vert
drukāt "Automašīnas horizontālā joslā:" + str (horizonts)
inithoriz = horizonts
drukāt '----------------------------'
ja vert <horiz:
GPIO izvade (23, GPIO. HIGH)
GPIO izvade (21, GPIO. HIGH)
GPIO izvade (16, GPIO. LOW)
GPIO izeja (25, GPIO. LOW)
ja horiz <vert:
GPIO izvade (16, GPIO. HIGH)
GPIO izvade (25, GPIO. HIGH)
GPIO izvade (23, GPIO. LOW)
GPIO izvade (21, GPIO. LOW)
cv2.imshow ("Rāmis", kadrs)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Threes", kulšana)
raw.truncate (0)
ja cv2.waitKey (1) & 0xFF == ord ('q'):
pārtraukums
cv2.destroyAllWindows ()
GPIO.cleanup ()
3. darbība: Raspberry Pi un kameras stiprinājums
3D izdrukājiet korpusu un kameras stiprinājumu un salieciet.
4. solis: luksoforu montāža
Izmēģiniet luksoforu ar maizes dēli. Katrai pretējai gaismas diožu kopai ir kopīgs anods, un visiem tiem ir kopīgs katods (zemējums). Kopā jābūt 7 ieejas vadiem: 1 katram gaismas diodes pārim (6) + 1 zemējuma vads. Lodējiet un salieciet luksoforus.
5. solis: elektroinstalācija (1. daļa)
Lodējiet sieviešu galvenes tapas līdz aptuveni 5 pēdu vadam. Šīs ir tās puses, kuras šie vadi vēlāk čūskos caur PVC caurulēm. Pārliecinieties, ka varat atšķirt dažādus lukturu komplektus (2 x 3 krāsas un 1 zeme). Šajā gadījumā es atzīmēju vēl vienu sarkanu, dzeltenu un zilu vadu komplekta galus ar asiem, lai es zinātu, kurš ir kurš.
6. solis: vides veidošana
Vides veidošana Izveidojiet 2 pēdu kvadrātveida koka paliktni, piemēram, šo. Koksnes lūžņi ir labi, jo tie tiks aizklāti. Izurbiet caurumu, kas atbilst jūsu adapterim. Caur paletes malām urbiet skrūves, lai nostiprinātu PVC cauruli. Izgrieziet melno putu dēli, lai tas atbilstu koka paletei zem tā. Izurbiet caurumu, kas atbilst PVC caurulei. Atkārtojiet pretējā stūrī. Atzīmējiet ceļus ar baltu lenti.
7. solis: PVC rāmja pabeigšana
Augšējā caurulē urbiet caurumu, kurā var ietilpt vadu saišķis. Rupjš caurums ir piemērots, ja vien varat piekļūt cauruļu iekšpusei. Izmēģiniet vadus caur PVC caurulēm un elkoņa locītavām, lai tie būtu piemēroti testam. Kad viss ir pabeigts, krāsojiet PVC ar kādu melnu aerosola krāsu, lai notīrītu galvenā rāmja izskatu. Izgrieziet nelielu spraugu vienā no PVC caurulēm, lai tā atbilstu T veida savienojumam. Pievienojiet šim cauruļvadam PVC cauruli, lai luksofors varētu nokarāties. Diametrs varētu būt tāds pats kā galvenajam rāmim (1/2 ), tomēr, ja izmantojat plānāku cauruli, pārliecinieties, ka 7 vadi var izlīst cauri. Izurbiet caurumu caurulē, lai luksofors varētu pakārt.
8. darbība: elektroinstalācija (2. daļa)
Pārkārtojiet visu, kā iepriekš pārbaudīts. Vēlreiz pārbaudiet luksoforu un vadus ar maizes dēli, lai pārliecinātos, ka visi savienojumi ir izveidoti. Lodējiet luksoforu pie vadiem, kas nāk caur T veida savienojuma roku. Aptiniet atklātos vadus ar elektrisko lenti, lai novērstu šortus un iegūtu tīrāku izskatu.
9. solis: pabeigts
Lai palaistu kodu, noteikti iestatiet avotu kā ~/.profile un cd uz jūsu projekta atrašanās vietu.
10. darbība. Papildu pakalpojumi (fotoattēli)
Ieteicams:
MIDI kontrolēts pakāpju motors ar tiešu digitālo sintēzi (DDS): 3 soļi
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu: Vai jums kādreiz ir bijusi slikta ideja, ka jums TIKAI bija jāpārvēršas par mini projektu? Nu, es spēlēju ar skici, ko biju izveidojis Arduino Due, lai radītu mūziku ar AD9833 tiešās digitālās sintēzes (DDS) moduli … un kādā brīdī es iedomājos & q
Kā izveidot durvju zvanu bez pieskāriena, ķermeņa temperatūras noteikšanu, GY-906, 433 MHz, izmantojot Arduino: 3 soļi
Kā izveidot durvju zvanu bez pieskāriena, ķermeņa temperatūras noteikšanu, GY-906, 433 MHz, izmantojot Arduino: Šodien mēs izgatavosim durvju zvanu bez pieskāriena, tas noteiks jūsu ķermeņa temperatūru. Pašreizējā situācijā ir ļoti svarīgi zināt, vai kāda ķermeņa temperatūra ir augstāka par normālu, kad kāds sitās. Šis projekts parādīs sarkanu gaismu, ja tas atklās
IP kamera ar sejas noteikšanu, izmantojot ESP32-CAM paneli: 5 soļi
IP kamera ar sejas noteikšanu, izmantojot ESP32-CAM dēli: Šis ziņojums atšķiras no citiem, un mēs apskatām ļoti interesanto ESP32-CAM plati, kas ir pārsteidzoši lēta (mazāk nekā 9 USD) un viegli lietojama. Mēs izveidojam vienkāršu IP kameru, ko var izmantot tiešraides video plūsmas straumēšanai, izmantojot 2
Satiksmes signāls, izmantojot Arduino un ultraskaņas sensoru: 4 soļi
Satiksmes signāls, izmantojot Arduino un ultraskaņas sensoru: Viedo tehnoloģiju laikmetā viss kļūst gudrāks, un gudra transporta sistēma ir viena no jomām, kas būtiski ietekmēs mūsu dzīvi. Sākotnēji publicēts: https://highvoltages.co/tutorial/arduino-tutorial/traffic-sig
FoldTronics: 3D objektu izveide, izmantojot integrētu elektroniku, izmantojot salokāmās HoneyComb struktūras: 11 soļi
FoldTronics: 3D objektu izveide ar integrētu elektroniku, izmantojot salokāmas HoneyComb struktūras: Šajā apmācībā mēs iepazīstinām ar FoldTronics-2D griešanas tehnoloģijām, kas paredzētas elektronikas integrēšanai 3D salocītos objektos. Galvenā ideja ir griezt un perforēt 2D loksni, izmantojot griešanas ploteri, lai padarītu to salokāmu 3D šūnveida struktūrā