Talaan ng mga Nilalaman:
- Hakbang 1: Listahan ng Mga Bahagi
- Hakbang 2: Pag-set up ng Raspberry Pi
- Hakbang 3: Raspberry Pi at Camera Mount
- Hakbang 4: Traffic Light Assembly
- Hakbang 5: Mga Kable (Bahagi 1)
- Hakbang 6: Pagbuo ng Kapaligiran
- Hakbang 7: Pagtatapos sa PVC Frame
- Hakbang 8: Mga Kable (Bahagi 2)
- Hakbang 9: Tapos na
- Hakbang 10: Mga Dagdag (Mga Larawan)
Video: Traffic Pattern Analyzer Gamit ang Detalye ng Live na Bagay: 11 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Sa mundo ngayon, ang mga ilaw ng trapiko ay mahalaga para sa isang ligtas na kalsada. Gayunpaman, maraming beses, ang mga ilaw ng trapiko ay maaaring nakakainis sa mga sitwasyon kung saan ang isang tao ay papalapit sa ilaw tulad ng pamumula nito. Sinasayang nito ang oras, lalo na kung ang ilaw ay pumipigil sa isang solong sasakyan mula sa pagdaan sa intersection kung wala nang iba pa sa kalsada. Ang aking pagbabago ay isang matalinong ilaw ng trapiko na gumagamit ng live na pagtuklas ng bagay mula sa isang camera upang mabilang ang bilang ng mga kotse sa bawat kalsada. Ang hardware na gagamitin ko para sa proyektong ito ay isang Raspberry Pi 3, isang module ng kamera, at iba't ibang elektronikong hardware para sa ilaw mismo. Gamit ang OpenCV sa Raspberry Pi, ang impormasyong nakalap ay tatakbo sa pamamagitan ng code na kumokontrol sa mga LED sa pamamagitan ng GPIO. Nakasalalay sa mga numerong ito, magbabago ang ilaw ng trapiko, pinapabayaan ang mga kotse sa pinakamainam na pagkakasunud-sunod. Sa kasong ito, ang linya na may pinakamaraming kotse ay papasok sa gayon ang linya na may mas kaunting mga kotse ay magpapabaya, na magbabawas ng polusyon sa hangin. Aalisin nito ang mga sitwasyon kung maraming mga kotse ang tumitigil habang walang mga kotse sa kalsadang kalsada. Hindi lamang ito nakakatipid ng oras para sa lahat, ngunit nakakatipid din ito ng kapaligiran. Ang dami ng oras na ihihinto ang mga tao sa isang stop sign kasama ang kanilang pag-idle ng engine na nagdaragdag ng dami ng polusyon sa hangin, kaya sa pamamagitan ng paglikha ng isang matalinong ilaw ng trapiko, na-optimize ko ang mga pattern ng ilaw upang ang mga kotse ay gumugol ng pinakamaliit na oras na posible sa kanilang sasakyan na huminto. Sa huli, ang sistemang ilaw ng trapiko na ito ay maaaring ipatupad sa mga lungsod, suburb, o kahit na mga lugar sa kanayunan upang maging mas mahusay para sa mga tao ay mabawasan ang polusyon sa hangin.
Hakbang 1: Listahan ng Mga Bahagi
Mga Materyales:
Raspberry Pi 3 Model B v1.2
Raspberry Pi Camera v2.1
5V / 1A micro USB power supply
HDMI monitor, keyboard, mouse SD card kasama si Raspbian Jessie
Raspberry Pi GPIO breakout cable
Pula, dilaw, berde na LED (2 sa bawat kulay)
Mga babaeng konektor para sa Raspberry Pi (7 natatanging mga kulay)
Iba't ibang 24 gauge wire (magkakaibang kulay) + heat shrink tubing
2'x2 'kahoy na panel o platform
Mga turnilyo ng kahoy
Itim na ibabaw (karton, foam board, poster board, atbp.)
Puti (o anumang kulay maliban sa itim) tape para sa mga marka sa kalsada
Itim na spray na pintura (para sa PVC)
½”PVC pipe na may 90 degree elbow joint (2), T socket (1), female adapter (2)
Mga kasangkapan
Panghinang
3d printer
Mag-drill na may iba't ibang mga piraso ng drill
Breadboard
Mainit na baril
Hakbang 2: Pag-set up ng Raspberry Pi
I-load ang SD card sa Raspberry Pi at mag-boot up.
Sundin ang gabay na ito upang mai-install ang kinakailangang mga library ng OpenCV. Tiyaking mayroon kang oras upang magawa ang hakbang na ito, tulad ng pag-install ng OpenCV library ay maaaring tumagal ng ilang oras. Tiyaking i-install din at i-set up ang iyong camera dito.
Dapat mo ring i-install ang pip:
picamera
gpiozero
RPi. GPIO
Narito ang natapos na code:
mula sa picamera.array import PiRGBArray
mula sa picamera import PiCamera
import picamera.array
i-import ang numpy bilang np
oras ng pag-import
import cv2
i-import ang RPi. GPIO bilang GPIO
oras ng pag-import
GPIO.setmode (GPIO. BCM)
para sa ako sa (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (cam, laki = (480, 480))
oras. tulog (0.1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
counter = 0
para sa frame sa cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (frame, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
mask = cv2.blur (mask, (3, 3))
mask = cv2.dilate (mask, Wala, pag-ulit = 5)
mask = cv2.erode (mask, Wala, pag-ulit = 1)
mask = cv2.dilate (mask, Wala, pag-ulit = 3)
ako, thresh = cv2. Threshold (mask, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
gitna = Wala
vert = 0
pahalang = 0
kung len (cnts)> 0:
para sa c sa cnts:
(x, y), radius = cv2.minEnclosedCircle (c)
gitna = (int (x), int (y))
radius = int (radius)
cv2.circle (frame, center, radius, (0, 255, 0), 2)
x = int (x)
y = int (y)
kung 180 <x <300:
kung y> 300:
vert = vert +1
elif y <180:
vert = vert +1
iba pa:
vert = vert
kung 180 <y <300:
kung x> 300:
pahalang = pahalang +1
elif x <180:
pahalang = pahalang +1
iba pa:
pahalang = pahalang
kung vert! = initvert:
i-print ang "Mga Kotse sa patayong linya:" + str (vert)
initvert = vert
i-print ang "Mga Kotse sa pahalang na linya:" + str (pahalang)
inithoriz = pahalang
i-print '----------------------------'
kung pahalang! = inithoriz:
i-print ang "Mga Kotse sa patayong linya:" + str (vert)
initvert = vert
i-print ang "Mga Kotse sa pahalang na linya:" + str (pahalang)
inithoriz = pahalang
i-print '----------------------------'
kung vert <horiz:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
kung pahalang <vert:
GPIO.output (16, GPIO. HIGH)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Frame", frame)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", thresh)
raw.truncate (0)
kung cv2.waitKey (1) & 0xFF == ord ('q'):
pahinga
cv2.destroyAllWindows ()
GPIO.cleanup ()
Hakbang 3: Raspberry Pi at Camera Mount
I-print ng 3D ang case at i-mount ang camera at mag-ipon.
Hakbang 4: Traffic Light Assembly
Subukan ang ilaw ng trapiko gamit ang isang pisara. Ang bawat kalaban na hanay ng mga LED ay nagbabahagi ng isang anode, at lahat ng mga ito ay nagbabahagi ng isang karaniwang katod (lupa). Dapat mayroong isang kabuuang 7 mga wire ng pag-input: 1 para sa bawat pares ng LEDS (6) + 1 ground wire. Maghinang at tipunin ang mga ilaw ng trapiko.
Hakbang 5: Mga Kable (Bahagi 1)
Paghinang ang mga babaeng pin ng header sa halos 5 talampakan ng kawad. Ito ang mga panig na Ang mga wires na ito ay ahas sa pamamagitan ng mga pipa ng PVC sa paglaon. Siguraduhin na makilala ang iba't ibang mga hanay ng mga ilaw (2 x 3 mga kulay at 1 lupa). Sa kasong ito, minarkahan ko ang mga dulo ng isa pang hanay ng mga pula, dilaw, at asul na mga wire na may sharpie kaya alam ko kung alin ang alin.
Hakbang 6: Pagbuo ng Kapaligiran
Pagbuo ng kapaligiran Gumawa ng isang 2 talampakang parisukat na kahoy na papag tulad nito. Ang kahoy na scrap ay maayos dahil ito ay tatakpan. Mag-drill ng isang butas na akma sa iyong adapter. Mga drill screw sa pamamagitan ng mga gilid ng papag upang ma-secure ang pipa ng PVC sa lugar. Gupitin ang itim na board ng bula upang tumugma sa kahoy na papag sa ilalim. Mag-drill ng isang butas na umaangkop sa paligid ng pipa ng PVC. Ulitin sa kabaligtaran na sulok. Markahan ang mga kalsada ng ilang puting tape.
Hakbang 7: Pagtatapos sa PVC Frame
Sa tuktok na tubo, mag-drill ng isang butas na maaaring magkasya sa isang bundle ng mga wire. Ang isang magaspang na butas ay pagmultahin hangga't maaari mong ma-access ang loob ng mga tubo. Ahas ang mga wire sa pamamagitan ng mga pipa ng PVC at kasukasuan ng siko para sa isang fit na pagsubok. Kapag natapos na ang lahat, pintura ang PVC ng ilang itim na pinturang spray upang linisin ang hitsura ng pangunahing frame. Gupitin ang isang maliit na puwang sa isa sa mga pipa ng PVC upang magkasya sa isang T-joint. Magdagdag ng isang pipa ng PVC sa t-magkasanib na ito para mag-hang down ang ilaw ng trapiko. Ang diameter ay maaaring kapareho ng pangunahing frame (1/2 ), kahit na kung gumamit ka ng isang mas payat na tubo, siguraduhin na ang 7 wires ay maaaring lumusot. Mag-drill ng isang butas sa pamamagitan ng tubo na ito para mag-hang ang ilaw ng trapiko.
Hakbang 8: Mga Kable (Bahagi 2)
I-wire muli ang lahat tulad ng nasubok dati. I-double check ang ilaw ng trapiko at mga kable na may isang breadboard upang kumpirmahin na nagawa ang lahat ng mga koneksyon. Paghinang ang ilaw ng trapiko sa mga wire na dumarating sa T-joint arm. Balutin ang mga nakahantad na mga wire gamit ang electrical tape upang maiwasan ang anumang shorts at para sa isang mas malinis na hitsura.
Hakbang 9: Tapos na
Upang patakbuhin ang code, tiyaking itakda ang iyong mapagkukunan bilang ~ /.profile at cd sa lokasyon ng iyong proyekto.
Hakbang 10: Mga Dagdag (Mga Larawan)
Inirerekumendang:
Orientasyong Pag-program sa Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: 5 Hakbang
Pag-ooriya sa Pag-program ng Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: Pamamaraan sa pag-aaral / pagtuturo para sa mga mag-aaral na bago sa object-oriented na programa. Ito ay isang paraan upang pahintulutan silang makita at makita ang proseso ng paglikha ng mga bagay mula sa mga klase. Bahagi 1. EkTools 2-pulgada malaking suntok; ang mga solidong hugis ay pinakamahusay.2. Piraso ng papel o c
Orientasyong Pag-program sa Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Gunting: 5 Hakbang
Pag-ooriya sa Pag-program ng Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Paraan ng Pagtuturo / Pamamaraan Gamit ang Gunting: Pamamaraan sa pag-aaral / pagtuturo para sa mga mag-aaral na bago sa object-oriented na programa. Ito ay isang paraan upang pahintulutan silang makita at makita ang proseso ng paglikha ng mga bagay mula sa mga klase.Bahagi: 1. Gunting (anumang uri ang magagawa). 2. Piraso ng papel o karton. 3. Marker.
I-scan ang Mga Kalapit na Bagay upang Gumawa ng Modelo ng 3d Gamit ang ARDUINO: 5 Hakbang (na may Mga Larawan)
I-scan ang Mga Kalapit na Bagay upang Gumawa ng Modelong 3d Gamit ang ARDUINO: Ang proyektong ito ay tiyak sa pamamagitan ng paggamit ng HC-SR04 ultrasonic sensor upang i-scan ang mga kalapit na bagay. Para sa paggawa ng modelong 3d kailangan mong walisin ang sensor sa patayo na direksyon. Maaari mong i-program ang Arduino upang tumunog ng isang alarma kapag nakita ng sensor ang isang bagay
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
Robo Blanket: Gantsilyo ang isang Kumot Gamit ang isang pattern ng Cross Stitch .: 3 Mga Hakbang (na may Mga Larawan)
Robo Blanket: Gantsilyo ang isang Kumot Gamit ang isang pattern ng Cross Stitch .: Gusto ko ng crocheting. Ginagawa ko ito mula noong maliit pa ako. Ngunit kamakailan lamang natuklasan ko kung paano maggantsilyo ng mga larawan. Ngayon ipapakita ko sa iyo kung paano. Kakailanganin mo: Sinulid sa magkakaibang kulay. Isang pattern ng Cross Stitch Isang gantsilyo. (Ginamit ko ang laki H) Maaari kang makakuha ng mga cros