Sadržaj:
- Korak 1: Lista 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
- Korak 10: Dodaci (fotografije)
Video: Analizator prometnih obrazaca pomoću detekcije živih objekata: 11 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U današnjem svijetu semafori su neophodni za sigurnu cestu. Međutim, mnogo puta semafori mogu biti neugodni u situacijama kada se neko približava svjetlu baš kad ono postane crveno. Ovo gubi vrijeme, pogotovo ako svjetlo sprečava jedno vozilo da prođe kroz raskrsnicu kada nema nikoga na putu. 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 različiti elektronički hardver za samo svjetlo. Koristeći OpenCV na Raspberry Pi -u, prikupljene informacije će se voditi kroz kod koji kontrolira LED diode putem GPIO -a. Ovisno o tim brojevima, semafor će se promijeniti, propuštajući automobile najoptimalnijim redoslijedom. U tom slučaju bi se pustila 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 raskrsnici. Ovo ne samo da štedi vrijeme za sve, već i čuva okoliš. Vrijeme koje ljudi zaustavljaju na znaku zaustavljanja sa praznim motorom 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 sa zaustavljenim vozilom. Na kraju, ovaj sistem semafora mogao bi se primijeniti u gradovima, predgrađima ili čak ruralnim područjima kako bi ljudi bili efikasniji, smanjilo bi zagađenje zraka.
Korak 1: Lista dijelova
Materijali:
Raspberry Pi 3 Model B v1.2
Raspberry Pi kamera v2.1
5V/1A mikro USB napajanje
HDMI monitor, tastatura, miš SD kartica sa Raspbian Jessie
Raspberry Pi GPIO kabl za probijanje
Crvene, žute, zelene LED diode (po 2 boje)
Ž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 sa lakatnim spojevima od 90 stepeni (2), T utičnica (1), ženski adapter (2)
Alati
Lemilica
3D štampač
Bušite raznim burgijama
Breadboard
Toplinski pištolj
Korak 2: Postavljanje Raspberry Pi
Umetnite SD karticu u Raspberry Pi i pokrenite sistem.
Slijedite ovaj vodič za instaliranje potrebnih OpenCV biblioteka. Imajte vremena za ovaj korak jer instaliranje biblioteke OpenCV može potrajati nekoliko sati. Ovdje također instalirajte i postavite kameru.
Takođe biste trebali instalirati pip:
picamera
gpiozero
RPi. GPIO
Evo konačnog koda:
from picamera.array import PiRGBArray
iz pikamera iz uvoza PiCamera
import picamera.array
uvoz numpy kao np
vreme uvoza
import cv2
uvezite RPi. GPIO kao GPIO
vreme uvoza
Način rada GPIO.set (GPIO. BCM)
za i in (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))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
brojač = 0
za okvir u cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtBoja (okvir, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
mask = cv2.blur (maska, (3, 3))
maska = cv2.dilate (maska, ništa, iteracije = 5)
maska = 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))
radijus = int (radijus)
cv2.circle (okvir, centar, 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
if vert! = initvert:
ispis "Automobili u okomitoj traci:" + str (vert)
initvert = vert
ispis "Automobili u vodoravnoj traci:" + str (horiz)
inithoriz = horiz
ispis '----------------------------'
if 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 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 (0)
if cv2.waitKey (1) & 0xFF == ord ('q'):
break
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 pomoću ploče. Svaki suprotni set LED dioda dijeli anodu, a svi oni 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 na kojima će ove žice kasnije provući PVC cijevi. Budite sigurni da možete razlikovati različite setove svjetla (2 x 3 boje i 1 osnovno). 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 drvenu paletu od 2 metra kvadratne poput ove. Staro drvo je u redu jer će biti pokriveno. 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 mogao visjeti. Promjer bi mogao biti isti kao glavni okvir (1/2 ), iako ako koristite tanju cijev, pobrinite se da 7 žica prođe kroz njih. 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 pomoću matične ploče 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 nastanak kratkih hlača i čistiji izgled.
Korak 9: Završeno
Za pokretanje koda, postavite izvor kao ~/.profile i cd na lokaciju vašeg projekta.
Korak 10: Dodaci (fotografije)
Preporučuje se:
Napravite lijepe crteže od živih Arduino podataka (i spremite podatke u Excel): 3 koraka
Napravite lijepe crteže od živih Arduino podataka (i spremite podatke u Excel): Svi se volimo igrati s našom P … loto funkcijom u Arduino IDE -u. Međutim, iako može biti korisno za osnovne aplikacije, podaci se brišu kao više dodaju se bodovi i to nije osobito ugodno za oči. Arduino IDE ploter ne
Rob za prepoznavanje prometnih znakova Raspberry Pi 4: 6 koraka
Raspberry Pi 4 Robot za prepoznavanje saobraćajnih znakova: Ovo uputstvo je zasnovano na mom univerzitetskom projektu. Cilj je bio stvoriti sistem u kojem neuronska mreža analizira sliku, a zatim će na osnovu prepoznavanja reći arduino robotu da se kreće preko Rosa. Na primjer, ako se prepozna znak za skretanje desno
Brojač objekata pomoću IC: 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 projekt je prilično jednostavan i uključuje samo jednostavnu elektroniku. Ovo kolo je zasnovano na infracrvenoj radi otkrivanja objekata, kako bi saznali više
Strukturiranje zadataka za pisanje pomoću Google obrazaca + AutoCrat: 12 koraka
Strukturiranje zadataka za pisanje s Google Forms + AutoCrat: Imaju li vaši učenici poteškoće u strukturiranju teza, uvoda, sažetaka ili čitavih pismenih zadataka? Primate li eseje koji nisu slijedili određeni format? Ako je tako, upotrijebite Google Forms i Chrome ekstenziju autoCrat da zadržite
Ukulele od živih šarki ananasa: 9 koraka (sa slikama)
Ukulele od živih šarki od ananasa: Ukulele od ananasa u potpunosti sam napravio laserskim rezačem, CNC usmjerivačem i 3D štampačem. Skoro nikakvi ručni alati nisu potrebni za ovaj projekt, a proizvodi sjajno zvuče sopran ukulele. Sve datoteke digitalne izrade potrebne za reprodukciju ovog projekta su