Obsah:
- Krok 1: Zoznam dielov
- Krok 2: Nastavenie Raspberry Pi
- Krok 3: Raspberry Pi a držiak fotoaparátu
- Krok 4: Zostavenie semaforu
- Krok 5: Zapojenie (časť 1)
- Krok 6: Budovanie životného prostredia
- Krok 7: Dokončenie rámu z PVC
- Krok 8: Zapojenie (časť 2)
- Krok 9: Hotovo
- Krok 10: Doplnky (fotografie)
Video: Analyzátor vzorov premávky pomocou detekcie živých objektov: 11 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
V dnešnom svete sú semafory nevyhnutné pre bezpečnú cestu. Semafor však mnohokrát môže byť nepríjemný v situáciách, keď sa niekto blíži k svetlu práve vtedy, keď sa zmení na červenú. Je to strata času, najmä ak svetlo bráni jednému vozidlu prejsť cez križovatku, keď na ceste nie je nikto iný. Mojou inováciou je inteligentný semafor, ktorý pomocou živej detekcie objektu z kamery počíta počet áut na každej ceste. Hardvér, ktorý použijem pre tento projekt, je Raspberry Pi 3, kamerový modul a rôzny elektronický hardvér pre samotné svetlo. Použitím OpenCV na Raspberry Pi budú zhromaždené informácie prevádzané prostredníctvom kódu, ktorý ovláda LED diódy prostredníctvom GPIO. V závislosti od týchto čísel sa zmení semafor a nechá autá prechádzať v najoptimálnejšom poradí. V tomto prípade by bol prejazdný pruh s väčším počtom automobilov, aby bol pruh s menším počtom automobilov voľnobežný, čím by sa znížilo znečistenie ovzdušia. Tým by sa odstránili situácie, keď je mnoho áut zastavených, zatiaľ čo na križovatke nie sú žiadne autá. Šetrí to nielen čas, ale aj životné prostredie. Doba, počas ktorej sú ľudia zastavovaní na značke zastavenia pri voľnobehu, zvyšuje množstvo znečistenia ovzdušia, takže vytvorením inteligentného semaforu dokážem optimalizovať svetelné vzorce tak, aby autá strávili čo najmenej času so zastaveným vozidlom.. V konečnom dôsledku by tento semaforový systém mohol byť implementovaný v mestách, na predmestiach alebo dokonca na vidieku, aby bol pre ľudí efektívnejší a znížil by znečistenie ovzdušia.
Krok 1: Zoznam dielov
Materiály:
Raspberry Pi 3 Model B v1.2
Kamera Raspberry Pi v2.1
Napájanie micro USB 5V/1A
HDMI monitor, klávesnica, myš SD karta s Raspbian Jessie
Prerušovací kábel Raspberry Pi GPIO
Červené, žlté, zelené LED diódy (2 z každej farby)
Samičie konektory pre Raspberry Pi (7 jedinečných farieb)
Rozmanitý drôt s rozmerom 24 (rôzne farby) + zmršťovacia bužírka
Drevený panel alebo platforma 2’x2 ‘
Skrutky do dreva
Čierny povrch (lepenka, penová doska, plagátová tabuľa atď.)
Biela (alebo iná farba ako čierna) páska na dopravné značenie
Čierna farba v spreji (na PVC)
½”rúrka z PVC s 90 -stupňovými kolenovými spojmi (2), zásuvka T (1), zásuvkový adaptér (2)
Nástroje
Spájkovačka
3D tlačiareň
Vŕtajte rôznymi vrtákmi
Breadboard
Tepelná pištoľ
Krok 2: Nastavenie Raspberry Pi
Vložte kartu SD do Raspberry Pi a spustite.
Podľa tejto príručky nainštalujte požadované knižnice OpenCV. Vykonajte tento krok, pretože inštalácia knižnice OpenCV môže trvať niekoľko hodín. Nezabudnite tu tiež nainštalovať a nastaviť kameru.
Mali by ste tiež nainštalovať pip:
pikamera
gpiozero
RPi. GPIO
Tu je konečný kód:
z picamera.array importujte PiRGBArray
z importu picamery PiCamera
import picamera.array
import numpy ako np
čas importu
import cv2
importujte RPi. GPIO ako GPIO
čas importu
GPIO.setmode (GPIO. BCM)
pre i v (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
kamera = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (kamera, veľkosť = (480, 480))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
počítadlo = 0
pre rámec v cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (rám, cv2. COLOR_BGR2HSV)
maska = cv2.inRange (hsv, colorLower, colorUpper)
maska = cv2.blur (maska, (3, 3))
mask = cv2.dilate (maska, žiadna, iterácie = 5)
mask = cv2.erode (maska, žiadna, iterácie = 1)
mask = cv2.dilate (maska, žiadna, iterácie = 3)
ja, mlátiť = cv2.prah (maska, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
stred = žiadny
vert = 0
horizont = 0
ak len (cnts)> 0:
pre c v cnts:
(x, y), polomer = cv2.minEnclosingCircle (c)
stred = (int (x), int (y))
radius = int (radius)
cv2.circle (rám, stred, polomer, (0, 255, 0), 2)
x = int (x)
y = int (y)
ak 180 <x <300:
ak y> 300:
vert = vert +1
elif y <180:
vert = vert +1
inak:
vert = vert
ak 180 <y <300:
ak x> 300:
horizont = horizont +1
elif x <180:
horizont = horizont +1
inak:
horizont = horizont
ak vert! = initvert:
vytlačiť „Autá vo zvislom pruhu:“+ str (vert)
initvert = vert
vytlačiť „Autá v horizontálnom pruhu:“+ str (horizont)
inithoriz = horizont
vytlačiť '----------------------------'
if horizon! = inithoriz:
vytlačiť „Autá vo zvislom pruhu:“+ str (vert)
initvert = vert
vytlačiť „Autá v horizontálnom pruhu:“+ str (horizont)
inithoriz = horizont
vytlačiť '----------------------------'
ak vert <horizont:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
ak horizont <vert:
GPIO.output (16, GPIO. HIGH)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow („Rám“, rám)
cv2.imshow („HSV“, hsv)
cv2.imshow („Mlátiť“, mlátiť)
raw.truncate (0)
ak cv2.waitKey (1) & 0xFF == ord ('q'):
prestávka
cv2.destroyAllWindows ()
GPIO.cleanup ()
Krok 3: Raspberry Pi a držiak fotoaparátu
3D tlačte puzdro a držiak na fotoaparát a zostavte ich.
Krok 4: Zostavenie semaforu
Vyskúšajte si semafor na doske. Každá protiľahlá sada LED diód zdieľa anódu a všetky zdieľajú spoločnú katódu (uzemnenie). Vstupných vodičov by malo byť celkom 7: 1 pre každý pár LED diód (6) + 1 uzemňovací vodič. Spájkujte a zostavte semafory.
Krok 5: Zapojenie (časť 1)
Spájkujte kolíkové kolíky samice na asi 5 stôp drôtu. Toto sú strany, ktorými sa tieto drôty budú neskôr hadom hadicami PVC hadiť. Uistite sa, že dokážete rozlíšiť rôzne sady svetiel (2 x 3 farby a 1 uzemnenie). V tomto prípade som ostrím označil konce ďalšej sady červených, žltých a modrých drôtov, aby som vedel, ktorý je ktorý.
Krok 6: Budovanie životného prostredia
Budovanie životného prostredia Vytvorte 2 -palcovú drevenú paletu takto. Šrot je v poriadku, pretože bude zakrytý. Vyvŕtajte otvor, ktorý sa presne hodí k vášmu adaptéru. Vyvŕtajte skrutky po stranách palety, aby ste zaistili PVC rúrku na mieste. Odrežte čiernu penovú dosku tak, aby zodpovedala drevenej palete pod ňou. Vyvŕtajte otvor, ktorý pasuje okolo rúrky z PVC. Opakujte v opačnom rohu. Označte cesty bielou páskou.
Krok 7: Dokončenie rámu z PVC
Na hornú rúrku vyvŕtajte otvor, do ktorého sa zmestí zväzok drôtov. Hrubý otvor je v poriadku, pokiaľ máte prístup k vnútorným častiam potrubí. Hadice prevlečte cez PVC rúrky a kolenné spoje, aby ste ich vyskúšali. Akonáhle je všetko dokončené, natrite PVC nejakou čiernou farbou v spreji, aby ste vyčistili vzhľad hlavného rámu. V jednej z rúrok z PVC vyrežte malú medzeru, aby sa zmestila na T-spoj. K tomuto t-spoju pridajte PVC rúrku, z ktorej bude semafor visieť. Priemer by mohol byť rovnaký ako hlavný rám (1/2 ), ak však použijete tenšiu rúrku, uistite sa, že sa cez ňu môže pretiahnuť 7 drôtov. Do tejto rúrky vyvŕtajte otvor, z ktorého bude visieť semafor.
Krok 8: Zapojenie (časť 2)
Znovu zapojte všetko, ako bolo testované predtým. Dôkladne skontrolujte semafor a zapojenie pomocou nepájivého poľa, aby ste sa presvedčili, že sú všetky spojenia vykonané. Pripájajte semafor na vodiče prechádzajúce ramenom T-kĺbu. Odkryté vodiče zabaľte elektrickou páskou, aby ste predišli skratom a vyzerali čistejšie.
Krok 9: Hotovo
Ak chcete spustiť kód, nastavte zdroj ako ~/.profile a cd na umiestnenie projektu.
Krok 10: Doplnky (fotografie)
Odporúča:
Ako vybudovať systém detekcie pohybu pomocou Arduina: 7 krokov
Ako vybudovať systém detekcie pohybu s Arduino: Postavte počítadlo pohybu a prítomnosti pomocou peria HUZZAH naprogramovaného pomocou Arduina a napájaného systémom Ubidots. Efektívna detekcia fyzického pohybu a prítomnosti v inteligentných domoch a inteligentnej výrobe môže byť veľmi užitočná v aplikáciách od
Počítadlo objektov pomocou IR: 9 krokov (s obrázkami)
Počítadlo objektov pomocou IR: V tomto malom projekte vytvoríme úplne automatické počítadlo objektov s jednoduchým segmentovým zobrazením. Tento projekt je pomerne jednoduchý a obsahuje iba jednoduchú elektroniku. Tento obvod je založený na infračervenom žiarení na detekciu predmetov a zistenie ďalších
Visuino Vybudujte systém detekcie narušenia pomocou Arduina: 8 krokov
Visuino Zostavte systém detekcie narušenia pomocou Arduina: V tomto návode použijeme mikrovlnný radarový snímač pohybu XYC-WB-DC pripojený k Arduino UNO a Visuino na detekciu akéhokoľvek pohybu v okruhu 5 m vrátane tenkých stien. Pozrite si ukážkové video
Detekcia objektov pomocou Dragonboard 410c alebo 820c pomocou OpenCV a Tensorflow .: 4 kroky
Object Detection W/ Dragonboard 410c or 820c using OpenCV and Tensorflow .: This instructables popisuje how to install OpenCV, Tensorflow, and machine learning frameworks for Python 3.5 to run the Object Detection
FoldTronics: Vytváranie 3D objektov pomocou integrovanej elektroniky pomocou skladacích štruktúr HoneyComb: 11 krokov
FoldTronics: Vytváranie 3D objektov s integrovanou elektronikou pomocou skladacích štruktúr HoneyComb: V tomto tutoriáli predstavujeme FoldTronics, výrobnú techniku založenú na 2D rezaní na integráciu elektroniky do 3D skladaných predmetov. Kľúčovou myšlienkou je rezať a perforovať 2D list pomocou rezacieho plotra, aby bol skladací do 3D plástovej štruktúry