Tartalomjegyzék:

Forgalomminta -elemző élő objektum -észlelést alkalmazva: 11 lépés (képekkel)
Forgalomminta -elemző élő objektum -észlelést alkalmazva: 11 lépés (képekkel)

Videó: Forgalomminta -elemző élő objektum -észlelést alkalmazva: 11 lépés (képekkel)

Videó: Forgalomminta -elemző élő objektum -észlelést alkalmazva: 11 lépés (képekkel)
Videó: Брайан Китинг и Ли Кронин: Жизнь во Вселенной 2024, November
Anonim
Image
Image
Forgalomminta -elemző az élő objektumok felismerésével
Forgalomminta -elemző az élő objektumok felismerésével

A mai világban a közlekedési lámpák elengedhetetlenek a biztonságos közlekedéshez. A közlekedési lámpák azonban sokszor bosszantóak lehetnek olyan helyzetekben, amikor valaki éppen akkor közeledik a lámpához, amikor az pirosra vált. Ez időt veszít, különösen akkor, ha a fény megakadályozza, hogy egyetlen jármű is áthaladjon a kereszteződésen, amikor senki más nincs az úton. Az én innovációm egy intelligens közlekedési lámpa, amely élő objektumérzékelést használ a kamerából, hogy megszámolja az egyes utakon lévő autók számát. A hardver, amelyet ebben a projektben fogok használni, egy Raspberry Pi 3, egy kamera modul és különféle elektronikus hardverek a fényhez. A Raspberry Pi OpenCV használatával az összegyűjtött információk a LED -eket a GPIO -n keresztül vezérlő kódon keresztül futnak. E számoktól függően a közlekedési lámpa megváltozik, és a legoptimálisabb sorrendben engedi át az autókat. Ebben az esetben a legtöbb autót tartalmazó sávot engednék át, így a kevesebb autóval rendelkező sáv alapjáraton járna, csökkentve a légszennyezést. Ez kiküszöbölné azokat a helyzeteket, amikor sok autót megállítanak, miközben nincs autó a kereszteződő úton. Ez nemcsak időt takarít meg mindenki számára, hanem a környezetet is. Az az idő, amikor az embereket megállítják a stoptáblánál, ha a motor üresjáratban van, növeli a légszennyezést, így egy intelligens közlekedési lámpa létrehozásával képes vagyok optimalizálni a fényviszonyokat, hogy az autók a lehető legkevesebb időt töltsék leállított járművükkel. Végső soron ezt a jelzőlámpa -rendszert városokban, külvárosokban vagy akár vidéki területeken is megvalósíthatnák, hogy az emberek számára hatékonyabbak legyenek, csökkentenék a légszennyezést.

1. lépés: Alkatrészlista

Anyagok:

Raspberry Pi 3 B modell v1.2

Raspberry Pi Camera v2.1

5V/1A mikro USB tápegység

HDMI monitor, billentyűzet, egér SD kártya Raspbian Jessie -vel

Raspberry Pi GPIO kitörőkábel

Piros, sárga, zöld LED -ek (mindegyik színből 2)

Női csatlakozók a Raspberry Pi -hez (7 egyedi szín)

Vegyes 24 méteres huzal (különböző színekben) + hőre zsugorodó cső

2 x 2 hüvelykes fa panel vagy platform

Fa csavarok

Fekete felület (karton, hablap, plakátlap stb.)

Fehér (vagy bármilyen más színű, fekete színű) szalag az útjelzésekhez

Fekete spray festék (PVC -hez)

½ hüvelykes PVC cső 90 fokos könyökcsuklóval (2), T aljzat (1), női adapter (2)

Eszközök

Forrasztópáka

3d nyomtató

Fúrjon különféle fúrószárakkal

Kenyeretábla

Hőfegyver

2. lépés: A Raspberry Pi beállítása

Töltse be az SD -kártyát a Raspberry Pi -be, és indítsa el.

Kövesse ezt az útmutatót a szükséges OpenCV könyvtárak telepítéséhez. Ügyeljen arra, hogy legyen ideje elvégezni ezt a lépést, mivel az OpenCV könyvtár telepítése néhány órát is igénybe vehet. Feltétlenül telepítse és állítsa be a kamerát is ide.

A pip telepítését is meg kell tennie:

picamera

gpiozero

RPi. GPIO

Itt a véglegesített kód:

innen: picamera.array import PiRGBArray

a picamera import PiCamera -ból

importálja a picamera.array -t

importálja a numpy -t np -ként

importálási idő

import cv2

importálja az RPi. GPIO -t GPIO -ként

importálási idő

GPIO.setmode (GPIO. BCM)

i esetén (23, 25, 16, 21):

GPIO.setup (i, GPIO. OUT)

bütyök = PiCamera ()

cam.resolution = (480, 480)

cam.framerate = 30

nyers = PiRGBArray (bütyök, méret = (480, 480))

time.sleep (0,1)

colorLower = np.array ([0, 100, 100])

colorUpper = np.array ([179, 255, 255])

initvert = 0

inithoriz = 0

számláló = 0

kerethez a cam.capture_continuous -ban (nyers, formátum = "bgr", use_video_port = True):

keret = keret.tömb

hsv = cv2.cvtColor (keret, cv2. COLOR_BGR2HSV)

maszk = cv2.inRange (hsv, colorLower, colorUpper)

maszk = cv2.blur (maszk, (3, 3))

maszk = cv2.dilate (maszk, nincs, iterációk = 5)

maszk = cv2.erode (maszk, nincs, iterációk = 1)

maszk = cv2.dilate (maszk, nincs, iterációk = 3)

én, cséplés = cv2.threshold (maszk, 127, 255, cv2. THRESH_BINARY)

cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]

center = Nincs

vert = 0

horizont = 0

ha len (cnts)> 0:

c cnts esetén:

(x, y), sugár = cv2.minEnclosingCircle (c)

központ = (int (x), int (y))

sugár = int (sugár)

cv2.kör (keret, középpont, sugár, (0, 255, 0), 2)

x = int (x)

y = int (y)

ha 180 <x <300:

ha y> 300:

vert = vert +1

elif y <180:

vert = vert +1

más:

vert = vert

ha 180 <y <300:

ha x> 300:

horizont = horizont +1

elif x <180:

horizont = horizont +1

más:

horizont = horizont

ha vert! = initvert:

nyomtatás "Autók függőleges sávban:" + str (vert)

initvert = vert

nyomtatás "Autók vízszintes sávban:" + str (horizont)

inithoriz = horizont

nyomtatás '----------------------------'

ha horizont! = inithoriz:

nyomtatás "Autók függőleges sávban:" + str (vert)

initvert = vert

nyomtatás "Autók vízszintes sávban:" + str (horizont)

inithoriz = horizont

nyomtatás '----------------------------'

ha vert <horizont:

GPIO.kimenet (23, GPIO. HIGH)

GPIO.kimenet (21, GPIO. HIGH)

GPIO.kimenet (16, GPIO. LOW)

GPIO.kimenet (25, GPIO. LOW)

ha horizont <vert:

GPIO.kimenet (16, GPIO. HIGH)

GPIO.kimenet (25, GPIO. HIGH)

GPIO.kimenet (23, GPIO. LOW)

GPIO.kimenet (21, GPIO. LOW)

cv2.imshow ("Keret", keret)

cv2.imshow ("HSV", hsv)

cv2.imshow ("Cséplés", cséplés)

nyers.futtatás (0)

ha cv2.waitKey (1) & 0xFF == ord ('q'):

szünet

cv2.destroyAllWindows ()

GPIO.cleanup ()

3. lépés: Raspberry Pi és kamera tartó

Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó
Raspberry Pi és kamera tartó

3D nyomtatja ki a tokot és a kamerát, majd szerelje össze.

4. lépés: Lámpaszerelés

Közlekedési lámpa szerelvény
Közlekedési lámpa szerelvény
Közlekedési lámpa szerelvény
Közlekedési lámpa szerelvény
Közlekedési lámpa szerelvény
Közlekedési lámpa szerelvény

Próbálja ki a közlekedési lámpát kenyérsütővel. Minden ellentétes LED -készletnek van egy anódja, és mindegyiknek közös katódja (földje). Összesen 7 bemeneti vezetéknek kell lennie: 1 minden LED -párhoz (6) + 1 földelő vezeték. Forrasztja és szerelje össze a közlekedési lámpákat.

5. lépés: huzalozás (1. rész)

Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)
Kábelezés (1. rész)

Forrasztja a női fejlécet körülbelül 5 láb huzalra. Ezek az oldalak a későbbiekben ezek a vezetékek kígyóznak a PVC csöveken. Ügyeljen arra, hogy képes legyen megkülönböztetni a különböző lámpákat (2 x 3 szín és 1 föld). Ebben az esetben egy másik piros, sárga és kék vezeték végét élesítéssel jelöltem, így tudom, melyik melyik.

6. lépés: A környezet kialakítása

A környezet építése
A környezet építése
A környezet építése
A környezet építése
A környezet építése
A környezet építése
A környezet építése
A környezet építése

A környezet építése Készítsen egy 2 láb négyzet alakú fa raklapot. A fahulladék jó, mivel eltakarják. Fúrjon lyukat, amely éppen illeszkedik az adapterhez. Fúrjon csavarokat a raklap oldalán, hogy rögzítse a PVC csövet. Vágja le a fekete hablapot, hogy illeszkedjen az alatta lévő fa raklaphoz. Fúrjon lyukat a PVC cső körül. Ismételje meg a szemközti sarokban. Jelölje meg az utakat fehér szalaggal.

7. lépés: A PVC keret véglegesítése

A PVC keret véglegesítése
A PVC keret véglegesítése
A PVC keret véglegesítése
A PVC keret véglegesítése
A PVC keret véglegesítése
A PVC keret véglegesítése

A felső csövön fúrjon lyukat, amely elfér egy köteg vezetékben. Egy durva lyuk rendben van, amíg hozzáfér a csövek belsejéhez. Kísérje át a vezetékeket a PVC csöveken és könyökcsuklókon a próbaillesztés érdekében. Miután minden befejeződött, fesse le a PVC -t némi fekete festékkel, hogy tisztázza a fő keret megjelenését. Vágjon egy kis rést az egyik PVC csőbe, hogy illeszkedjen a T-csuklóhoz. Adjon hozzá PVC csövet ehhez a csuklóhoz, hogy a közlekedési lámpa lelógjon. Az átmérő megegyezhet a fő kerettel (1/2 ), de ha vékonyabb csövet használ, győződjön meg arról, hogy a 7 vezeték át tud kígyózni. Fúrjon lyukat ezen a csövön, hogy a lámpa lógjon.

8. lépés: huzalozás (2. rész)

Kábelezés (2. rész)
Kábelezés (2. rész)
Kábelezés (2. rész)
Kábelezés (2. rész)
Kábelezés (2. rész)
Kábelezés (2. rész)

Csatlakoztasson újra mindent a korábban tesztelt módon. Ellenőrizze kétszer a közlekedési lámpát és a kábelezést egy kenyérsütő táblával, hogy minden csatlakozás létrejött -e. Forrasztja a jelzőlámpát a T-csuklókaron keresztül érkező vezetékekhez. Tekerje be a szabad vezetékeket elektromos szalaggal, hogy elkerülje a rövidzárlatot és tisztább megjelenést biztosítson.

9. lépés: Kész

Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!

A kód futtatásához feltétlenül állítsa a forrást ~/.profile és cd értékre a projekt helyére.

10. lépés: Extrák (fotók)

Ajánlott: