Sisukord:
- Samm: osade loend
- 2. samm: seadistage Raspberry Pi
- Samm: Raspberry Pi ja kaamera kinnitus
- 4. samm: valgusfoori kokkupanek
- 5. samm: juhtmestik (1. osa)
- 6. samm: keskkonna loomine
- Samm: PVC raami viimistlemine
- 8. samm: juhtmestik (2. osa)
- 9. samm: lõpetatud
- 10. toiming: lisad (fotod)
Video: Liiklusmustri analüsaator reaalajas objektide tuvastamise abil: 11 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Tänapäeva maailmas on valgusfoorid ohutu tee jaoks hädavajalikud. Kuid mitu korda võivad foorid olla tüütud olukordades, kus keegi läheneb tulele just siis, kui see punaseks läheb. See raiskab aega, eriti kui valgus takistab ühe sõiduki läbimist ristmikust, kui teel pole kedagi teist. Minu uuendus on nutikas valgusfoor, mis kasutab kaamerast reaalajas objektide tuvastamist, et lugeda igal teel olevate autode arvu. Riistvara, mida ma selle projekti jaoks kasutan, on Raspberry Pi 3, kaamera moodul ja valguse enda jaoks mitmesugune elektrooniline riistvara. Kasutades OpenCV -d Raspberry Pi -l, juhitakse kogutud teave läbi koodi, mis juhib LED -e GPIO kaudu. Sõltuvalt nendest numbritest valgusfoor muutub, lastes autod läbi kõige optimaalsemas järjekorras. Sellisel juhul lastaks läbi sõidurada, kus on kõige rohkem autosid, nii et vähemate autodega rada jääks tühikäigule, vähendades õhusaastet. See välistaks olukorrad, kui paljud autod peatatakse, kui ristuval teel pole ühtegi autot. See mitte ainult ei säästa aega kõigile, vaid säästab ka keskkonda. Aeg, mil inimesed peatuvad peatumismärgi juures tühikäigul töötava mootoriga, suurendab õhusaaste hulka, nii et nutika valgusfoori loomisega suudan optimeerida valgusmustreid nii, et autod veedavad võimalikult vähe aega peatatud sõidukiga. Lõppkokkuvõttes võiks seda valgusfoorisüsteemi rakendada linnades, eeslinnades või isegi maapiirkondades, et see oleks inimeste jaoks tõhusam, vähendaks õhusaastet.
Samm: osade loend
Materjalid:
Vaarika Pi 3 mudel B v1.2
Raspberry Pi kaamera v2.1
5V/1A mikro -USB toiteallikas
HDMI -monitor, klaviatuur, hiire SD -kaart koos Raspbian Jessiega
Raspberry Pi GPIO läbilöögikaabel
Punased, kollased, rohelised LED -id (2 iga värvi)
Naisühendused Raspberry Pi jaoks (7 ainulaadset värvi)
24 -meetrine traat (erinevad värvid) + termokahanev toru
2'x2 'puitpaneel või platvorm
Puidust kruvid
Must pind (papp, vahtplaat, plakatiplaat jne)
Valge (või mis tahes muu värv peale musta) teip teekattemärgistamiseks
Must pihustusvärv (PVC jaoks)
½”PVC toru 90 -kraadiste küünarliigenditega (2), T -pistikupesa (1), naissoost adapter (2)
Tööriistad
Jootekolb
3D printer
Puurige erinevate puuridega
Leivalaud
Soojuspüstol
2. samm: seadistage Raspberry Pi
Laadige SD -kaart Raspberry Pi -sse ja käivitage.
Nõutavate OpenCV teekide installimiseks järgige seda juhendit. Veenduge, et teil oleks selle toimingu tegemiseks aega, sest OpenCV kogu installimine võib võtta paar tundi. Installige ja seadistage kindlasti ka kaamera siia.
Peaksite ka pip installima:
picamera
gpiozero
RPi. GPIO
Siin on lõplik kood:
saidilt picamera.array import PiRGBArray
alates picamera import PiCamera
impordi picamera.array
import numpy np -na
impordi aeg
import cv2
RPi. GPIO importimine GPIO -na
impordi aeg
GPIO.setmode (GPIO. BCM)
i jaoks (23, 25, 16, 21):
GPIO.seadistus (i, GPIO. OUT)
nukk = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
toores = PiRGBArray (nukk, suurus = (480, 480))
aeg. uni (0,1)
colorLower = np.massiiv ([0, 100, 100])
colorUpper = np.massiiv ([179, 255, 255])
initvert = 0
inithoriz = 0
loendur = 0
kaadri jaoks cam.capture_continuous (raw, format = "bgr", use_video_port = True):
raam = raam.massiiv
hsv = cv2.cvtColor (raam, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
mask = cv2.blur (mask, (3, 3))
mask = cv2.dilate (mask, puudub, iteratsioonid = 5)
mask = cv2.erode (mask, puudub, iteratsioonid = 1)
mask = cv2.dilate (mask, puudub, iteratsioonid = 3)
mina, künnis = cv2.threshold (mask, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
keskus = puudub
vert = 0
horisont = 0
kui len (cnts)> 0:
c jaoks cnts:
(x, y), raadius = cv2.minEnclosingCircle (c)
keskus = (int (x), int (y))
raadius = int (raadius)
cv2.ring (raam, keskel, raadius, (0, 255, 0), 2)
x = int (x)
y = int (y)
kui 180 <x <300:
kui y> 300:
vert = vert +1
el <y: 180
vert = vert +1
muidu:
vert = vert
kui 180 <y <300:
kui x> 300:
horisont = horisont +1
elif x <180:
horisont = horisont +1
muidu:
horisont = horisont
kui vert! = initvert:
print "Autod vertikaalsel sõidurajal:" + str (vert)
initvert = vert
trükk "Autod horisontaalsel sõidurajal:" + str (horisont)
inithoriz = horisont
print '----------------------------'
kui horis! = inithoriz:
print "Autod vertikaalsel sõidurajal:" + str (vert)
initvert = vert
trükk "Autod horisontaalsel sõidurajal:" + str (horisont)
inithoriz = horisont
print '----------------------------'
kui vert <horisont:
GPIO väljund (23, GPIO. HIGH)
GPIO väljund (21, GPIO. HIGH)
GPIO väljund (16, GPIO. LOW)
GPIO väljund (25, GPIO. LOW)
kui horisont <vert:
GPIO väljund (16, GPIO. HIGH)
GPIO väljund (25, GPIO. HIGH)
GPIO väljund (23, GPIO. LOW)
GPIO väljund (21, GPIO. LOW)
cv2.imshow ("Raam", kaader)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", threes)
toores.truncate (0)
kui cv2.waitKey (1) & 0xFF == ord ('q'):
murda
cv2.destroyAllWindows ()
GPIO.cleanup ()
Samm: Raspberry Pi ja kaamera kinnitus
3D printida ümbris ja kaamera kinnitada ja kokku panna.
4. samm: valgusfoori kokkupanek
Proovige valgusfoori leivaplaadiga. Kõigil vastandlikel LED -idel on ühine anood ja kõigil on ühine katood (maandus). Sisendjuhtmeid peaks olema kokku 7: 1 iga LED -i paari (6) kohta + 1 maandusjuhe. Jootke ja pange foorid kokku.
5. samm: juhtmestik (1. osa)
Jootke emase päise tihvtid umbes 5 jalga traadi külge. Need on küljed, mida need juhtmed hiljem läbi PVC torude madistavad. Kindlasti saate eristada erinevaid tulede komplekte (2 x 3 värvi ja 1 maapind). Sel juhul märkisin teise punase, kollase ja sinise juhtme komplekti otsad teravatega, nii et ma tean, mis on kumb.
6. samm: keskkonna loomine
Keskkonna loomine Tehke 2 -meetrine neljakandiline puidust kaubaalus. Vanapuit on hea, kuna see kaetakse kinni. Puurige auk, mis sobib teie adapteriga. Puurige kruvid läbi kaubaaluse külgede, et kinnitada PVC toru oma kohale. Lõika must vahtplaat nii, et see vastaks all olevale puidust kaubaalusele. Puurige auk, mis sobib PVC toru ümber. Korda vastasnurgas. Märkige teed mõne valge lindi abil.
Samm: PVC raami viimistlemine
Puurige ülemisele torule auk, kuhu mahub juhtmekimp. Kare auk on hea, kui pääsete juurde torude sisekülgedele. Katsetamiseks sobitage juhtmed läbi PVC -torude ja küünarliigeste. Kui kõik on lõpule viidud, värvige põhiraami välimuse puhastamiseks PVC mõne musta pihustusvärviga. Lõigake ühes PVC-torus väike vahe, et see sobiks T-liigendiga. Lisage sellele t-liigendile PVC toru, et valgusfoor saaks üles riputada. Läbimõõt võib olla sama kui põhiraamil (1/2 ), kuid kui kasutate õhemat toru, veenduge, et 7 juhtmest saaks läbi käia. Puurige selle toru kaudu foori riputamiseks auk.
8. samm: juhtmestik (2. osa)
Ühendage kõik uuesti, nagu eelnevalt testitud. Kontrollige veel kord valgusfoori ja juhtmeid leivaplaadiga, et kõik ühendused oleks tehtud. Jootke valgusfoor T-liigendvarre kaudu tulevate juhtmete külge. Mähi avatud juhtmed elektrilindiga, et vältida lühiseid ja puhtamat välimust.
9. samm: lõpetatud
Koodi käivitamiseks määrake oma lähtekohaks kindlasti ~/.profile ja cd.
10. toiming: lisad (fotod)
Soovitan:
Objektile orienteeritud programmeerimine: objektide loomine Õppimine/õpetamismeetod/tehnika Shape Puncheri abil: 5 sammu
Objektile orienteeritud programmeerimine: objektide loomine Õppimine/õpetamismeetod/tehnika Shape Puncheri abil: õppimis-/õpetamismeetod õpilastele, kes on objektorienteeritud programmeerimisel uued. See on viis, mis võimaldab neil visualiseerida ja näha klassidest objektide loomise protsessi. EkTools 2-tolline suur stants; kindlad kujud on parimad.2. Paberitükk või c
Reaalajas Covid19 jälgija, kasutades ESP8266 ja OLED - Reaalajas Covid19 armatuurlaud: 4 sammu
Reaalajas Covid19 jälgija, kasutades ESP8266 ja OLED | Reaalajas Covid19 armatuurlaud: külastage Techtronic Harshi veebisaiti: http: //techtronicharsh.com Kõikjal, kus esineb tohutu uudse koroonaviiruse (COVID19) puhang. Vajalik oli jälgida praegust COVID-19 stsenaariumi maailmas. Niisiis oli see kodus olles
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Läheduses olevate objektide skannimine 3D -mudeli tegemiseks ARDUINO abil: 5 sammu (piltidega)
Läheduses olevate objektide skaneerimine 3D-mudeli tegemiseks ARDUINO abil: see projekt on spetsiifiline, kasutades läheduses asuvate objektide skaneerimiseks ultraheli andurit HC-SR04. 3D -mudeli tegemiseks peate anduri pühkima risti. Saate programmeerida Arduino helisema, kui andur tuvastab objekti
Reaalajas toimuvad sündmuste märguanded NodeMCU (Arduino), Google Firebase'i ja Laraveli abil: 4 sammu (koos piltidega)
Reaalajas toimuvad sündmuste märguanded NodeMCU (Arduino), Google Firebase'i ja Laraveli abil: kas olete kunagi tahtnud saada märguannet, kui teie veebisaidil tehakse toiming, kuid e -post ei sobi? Kas soovite iga kord, kui müüte, kuulda heli või kella? Või on hädaolukorra tõttu vaja teie kohest tähelepanu