Sadržaj:
- Korak 1: Popis dijelova
- Korak 2: Postavljanje Raspberry Pi
- Korak 3: Raspberry Pi i nosač za kameru
- Korak 4: Sklapanje semafora
- Korak 5: Ožičenje (1. dio)
- Korak 6: Izgradnja okoliša
- Korak 7: Dovršavanje PVC okvira
- Korak 8: Ožičenje (2. dio)
- Korak 9: Završeno
- 10. korak: Dodaci (fotografije)
Video: Analizator prometnih uzoraka pomoću otkrivanja živih objekata: 11 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
U današnjem svijetu semafori su neophodni za sigurnu cestu. Međutim, mnogo puta semafori mogu biti neugodni u situacijama kada se netko približava svjetlu baš kad ono postane crveno. Time se gubi vrijeme, pogotovo ako svjetlo sprječava jedno vozilo da prođe kroz raskrižje kada nema nikoga na cesti. Moja inovacija je pametan semafor koji koristi detekciju objekata uživo s kamere za brojanje broja automobila na svakoj cesti. Hardver koji ću koristiti za ovaj projekt je Raspberry Pi 3, modul kamere i razni elektronički hardver za samo svjetlo. Korištenjem OpenCV -a na Raspberry Pi -u, prikupljeni podaci će se voditi kroz kod koji kontrolira LED diode putem GPIO -a. Ovisno o tim brojkama, semafor će se promijeniti, propuštajući automobile najoptimalnijim redoslijedom. U tom bi se slučaju propustila traka s najviše automobila kako bi traka s manje automobila bila u praznom hodu, čime bi se smanjilo zagađenje zraka. Time bi se uklonile situacije kada se mnogi automobili zaustave dok nema automobila na raskrižju ceste. Ovo ne samo da štedi vrijeme za sve, već i čuva okoliš. Vrijeme koje ljudi zaustavljaju na znaku zaustavljanja s motorom u praznom hodu povećava količinu zagađenja zraka, pa stvaranjem pametnog semafora mogu optimizirati svjetlosne obrasce tako da automobili provode što je moguće manje vremena s zaustavljenim vozilom. U konačnici, ovaj sustav semafora mogao bi se implementirati u gradove, predgrađa ili čak ruralna područja kako bi ljudi bili učinkovitiji, smanjilo bi zagađenje zraka.
Korak 1: Popis dijelova
Materijali:
Raspberry Pi 3 Model B v1.2
Raspberry Pi kamera v2.1
5V/1A mikro USB napajanje
HDMI monitor, tipkovnica, miš SD kartica s Raspbian Jessie
Raspberry Pi GPIO kabel za probijanje
Crvene, žute, zelene LED diode (po 2 u svakoj boji)
Ženski konektori za Raspberry Pi (7 jedinstvenih boja)
Raznolika žica promjera 24 (različite boje) + termoskupljajuća cijev
2’x2’drvena ploča ili platforma
Vijci za drvo
Crna površina (karton, pjenasta ploča, plakatna ploča itd.)
Bijela (ili bilo koja boja osim crne) traka za označavanje na cesti
Crna boja u spreju (za PVC)
½”PVC cijev s koljenastim zglobovima od 90 stupnjeva (2), T utičnicom (1), ženskim adapterom (2)
Alati
Lemilica
3D pisač
Bušite raznim svrdlima
Oglasna ploča
Toplinski pištolj
Korak 2: Postavljanje Raspberry Pi
Umetnite SD karticu u Raspberry Pi i pokrenite sustav.
Slijedite ovaj vodič za instaliranje potrebnih OpenCV knjižnica. Imajte vremena za ovaj korak jer instaliranje biblioteke OpenCV može potrajati nekoliko sati. Ovdje svakako instalirajte i postavite kameru.
Također biste trebali instalirati pip:
pikamera
gpiozero
RPi. GPIO
Evo konačnog koda:
from picamera.array import PiRGBArray
iz picamera uvoz PiCamera
uvoziti pikameru. niz
uvoz numpy kao np
vrijeme uvoza
uvoz cv2
uvezite RPi. GPIO kao GPIO
vrijeme uvoza
Način rada GPIO.set (GPIO. BCM)
za i u (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
sirovo = PiRGBArray (kamera, veličina = (480, 480))
vrijeme.spavanje (0,1)
colorLower = np.para ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
brojač = 0
za okvir u cam.capture_continuous (neobrađeno, format = "bgr", use_video_port = True):
okvir = okvir. niz
hsv = cv2.cvtBoja (okvir, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
mask = cv2.blur (maska, (3, 3))
mask = cv2.dilate (maska, ništa, iteracije = 5)
mask = cv2.erode (maska, ništa, iteracije = 1)
maska = cv2.dilate (maska, ništa, iteracije = 3)
ja, prag = cv2.threshold (maska, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
centar = Nema
vert = 0
horiz = 0
ako je len (cnts)> 0:
za c u cntovima:
(x, y), radijus = cv2.minOkružni krug (c)
centar = (int (x), int (y))
radius = int (radijus)
cv2.circle (okvir, središte, radijus, (0, 255, 0), 2)
x = int (x)
y = int (y)
ako je 180 <x <300:
ako je y> 300:
vert = vert +1
elif y <180:
vert = vert +1
drugo:
vert = vert
ako je 180 <y <300:
ako je x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
drugo:
horiz = horiz
ako je vert! = initvert:
ispis "Automobili u okomitoj traci:" + str (vert)
initvert = vert
ispis "Automobili u vodoravnoj traci:" + str (horiz)
inithoriz = horiz
ispis '----------------------------'
ako horiz! = inithoriz:
ispis "Automobili u okomitoj traci:" + str (vert)
initvert = vert
ispis "Automobili u vodoravnoj traci:" + str (horiz)
inithoriz = horiz
ispis '----------------------------'
ako je vert <horiz:
GPIO.izlaz (23, GPIO. HIGH)
GPIO.izlaz (21, GPIO. HIGH)
GPIO.izlaz (16, GPIO. LOW)
GPIO.izlaz (25, GPIO. LOW)
ako je horiz <vert:
GPIO.izlaz (16, GPIO. HIGH)
GPIO.izlaz (25, GPIO. HIGH)
GPIO.izlaz (23, GPIO. LOW)
GPIO.izlaz (21, GPIO. LOW)
cv2.imshow ("Okvir", okvir)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", thresh)
neobrađeno.skraćeno (0)
ako cv2.waitKey (1) & 0xFF == ord ('q'):
pauza
cv2.destroyAllWindows ()
GPIO.cleanup ()
Korak 3: Raspberry Pi i nosač za kameru
3D ispišite kućište i kameru, montirajte i sastavite.
Korak 4: Sklapanje semafora
Isprobajte semafor uz ploču. Svaki suprotni skup LED dioda dijeli anodu, a svi dijele zajedničku katodu (uzemljenje). Ukupno bi trebalo biti 7 ulaznih žica: 1 za svaki par LEDS (6) + 1 žica za uzemljenje. Lemite i sastavite semafore.
Korak 5: Ožičenje (1. dio)
Lemite igle ženskog zaglavlja na oko 5 stopa žice. Ovo su strane koje će ove žice kasnije provući kroz PVC cijevi. Budite sigurni da možete razlikovati različite setove svjetla (2 x 3 boje i 1 tlo). U ovom slučaju, krajeve drugog niza crvenih, žutih i plavih žica označio sam oštricom kako bih znao koji je koji.
Korak 6: Izgradnja okoliša
Izgradnja okoliša Napravite ovakvu drvenu paletu od 2 metra kvadratne. Staro drvo je u redu jer će biti prekriveno. Izbušite rupu koja odgovara vašem adapteru. Izbušite vijke kroz stranice palete kako biste pričvrstili PVC cijev na mjesto. Odrežite crnu pjenastu ploču kako bi odgovarala drvenoj paleti ispod. Izbušite rupu koja stane oko PVC cijevi. Ponovite na suprotnom uglu. Označite ceste bijelom trakom.
Korak 7: Dovršavanje PVC okvira
Na gornjoj cijevi izbušite rupu u koju stane snop žica. Gruba rupa je u redu sve dok možete pristupiti unutrašnjosti cijevi. Provucite žice kroz PVC cijevi i zglobove koljena radi testnog uklapanja. Kad se sve dovrši, obojite PVC crnom bojom u spreju kako biste očistili izgled glavnog okvira. Izrežite mali razmak u jednoj od PVC cijevi kako biste uklopili T-spoj. Ovom t-spoju dodajte PVC cijev da bi semafor visio. Promjer bi mogao biti isti kao glavni okvir (1/2 ), no ako koristite tanju cijev, pobrinite se da 7 žica provuče zub. Izbušite rupu kroz ovu cijev da bi semafor visio.
Korak 8: Ožičenje (2. dio)
Ponovo ožičite sve kako je prethodno testirano. Dvaput provjerite semafor i ožičenje s pločicom kako biste potvrdili da su sve veze uspostavljene. Lemi semafor na žice koje prolaze kroz krak T-spoja. Omotajte izložene žice električnom trakom kako biste spriječili kratke hlače i čistiji izgled.
Korak 9: Završeno
Da biste pokrenuli kôd, postavite izvor kao ~/.profile i cd na lokaciju vašeg projekta.
10. korak: Dodaci (fotografije)
Preporučeni:
Praćenje objekata na temelju otkrivanja boje: 10 koraka
Praćenje objekata temeljenih na otkrivanju boja: Priča Napravio sam ovaj projekt kako bih naučio obradu slika pomoću Raspberry PI i otvoriti životopis. Kako bih ovaj projekt učinio zanimljivijim, upotrijebio sam dva SG90 servo motora i na njega montirao kameru. Jedan motor za kretanje vodoravno, a drugi motor za okomito kretanje
Brojač objekata pomoću IC -a: 9 koraka (sa slikama)
Brojač objekata pomoću IC -a: U ovom malom projektu stvorit ćemo potpuno automatski brojač objekata s jednostavnim segmentnim prikazom. Ovaj je projekt prilično jednostavan i uključuje samo jednostavnu elektroniku. Ovaj se krug temelji na infracrvenoj radi otkrivanja objekata, kako bi saznali više
Analizator uzoraka stijena: 4 koraka
Analizator uzoraka stijena: Analizator uzoraka stijena koristi se za identifikaciju i analizu vrsta uzoraka stijena tehnikom vibracija mekim udarcem. To je nova metoda u identificiranju uzoraka stijena. Ako postoji meteorit ili bilo koji nepoznati uzorak stijene, može se procijeniti
Ukulele od živih šarki s ananasom: 9 koraka (sa slikama)
Ukulele od živih šarki s ananasom: Ukulele od ananasa u potpunosti sam napravio laserskim rezačem, CNC usmjerivačem i 3D pisačem. Gotovo nijedan ručni alat nije potreban za ovaj projekt, a proizvodi sjajno zvuče sopran ukulele. Sve datoteke digitalne izrade potrebne za reprodukciju ovog projekta su
Metode otkrivanja razine vode Arduino pomoću ultrazvučnog senzora i Funduino senzora vode: 4 koraka
Metode otkrivanja razine vode Arduino pomoću ultrazvučnog senzora i senzora vode Funduino: U ovom projektu pokazat ću vam kako stvoriti jeftin detektor vode pomoću dvije metode: 1. Ultrazvučni senzor (HC-SR04) .2. Funduino senzor vode