Tartalomjegyzék:
- 1. lépés: Alkatrészlista
- 2. lépés: A Raspberry Pi beállítása
- 3. lépés: Raspberry Pi és kamera tartó
- 4. lépés: Lámpaszerelés
- 5. lépés: huzalozás (1. rész)
- 6. lépés: A környezet kialakítása
- 7. lépés: A PVC keret véglegesítése
- 8. lépés: huzalozás (2. rész)
- 9. lépés: Kész
- 10. lépés: Extrák (fotók)
Videó: Forgalomminta -elemző élő objektum -észlelést alkalmazva: 11 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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ó
3D nyomtatja ki a tokot és a kamerát, majd szerelje össze.
4. lépés: Lámpaszerelés
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)
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 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 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)
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
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:
Élő képpontok - képzeld el, hogy a technológiának van élete: 4 lépés (képekkel)
Élő Pixelek - Képzeld el, hogy a technológiának van élete: Látva, hogy az intelligens otthoni termékek gyakoribbak az életünkben, elkezdtem gondolkodni az emberek és ezek a termékek közötti kapcsolaton. Ha egy napon az intelligens otthoni termékek mindenki életének nélkülözhetetlen részévé válnak, milyen hozzáállást kell tanúsítanunk
Objektum -orientált programozás: Tárgyak létrehozása Tanulás/Tanítási módszer/technika Shape Puncher segítségével: 5 lépés
Objektumorientált programozás: Objektumok létrehozása Tanulás/tanítási módszer/technika Shape Puncher használatával: Tanulási/tanítási módszer az objektum-orientált programozásban újonnan tanulóknak. Ez lehetővé teszi számukra, hogy vizualizálják és lássák az objektumok osztályokból történő létrehozásának folyamatát. EkTools 2 hüvelykes nagy lyukasztó; a szilárd formák a legjobbak.2. Egy darab papír vagy c
ChatterBox - az objektum fordító: 6 lépés
ChatterBox - az objektum fordító: Olyan eszköz, amely minden tárgyat beszélni tud! Óvatosan használja
HOME AUTOMATIKA A HELYI MQTT SZERVEREN ALKALMAZVA RASPBERRY PI ÉS NODEMCU TÁBLA HASZNÁLATA: 6 lépés
HOME AUTOMATIKA A HELYI MQTT SZERVEREN ALKALMAZVA RASPBERRY PI ÉS NODEMCU TÁBLA HASZNÁLATÁVAL: Eddig több oktatóvideót készítettem a készülékek interneten keresztül történő vezérléséről. Ezért mindig az Adafruit MQTT szervert részesítettem előnyben, mivel könnyen kezelhető és felhasználóbarát is volt. De mindez az interneten alapult. Ez azt jelenti, hogy mi
Objektum -orientált programozás: Tárgyak létrehozása Tanulás/Tanítási módszer/technika ollóval: 5 lépés
Objektum-orientált programozás: Objektumok létrehozása Tanulás/Tanítási módszer/technika ollóval: Tanulási/tanítási módszer az objektum-orientált programozásban újonnan tanulóknak. Ez lehetővé teszi számukra, hogy vizualizálják és lássák az objektumok osztályokból történő létrehozásának folyamatát. 2. Papír vagy kartonpapír. 3. Jelölő