Taula de continguts:
- Pas 1: llista de peces
- Pas 2: Configuració del Raspberry Pi
- Pas 3: Raspberry Pi i muntatge de la càmera
- Pas 4: muntatge del semàfor
- Pas 5: cablejat (primera part)
- Pas 6: Construir el medi ambient
- Pas 7: Finalització del marc de PVC
- Pas 8: cablejat (part 2)
- Pas 9: acabat
- Pas 10: Extres (fotos)
Vídeo: Analitzador de patrons de trànsit mitjançant la detecció d'objectes en viu: 11 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Al món actual, els semàfors són essencials per a una carretera segura. Tanmateix, moltes vegades, els semàfors poden ser molestos en situacions en què algú s’acosta al llum tal com es posa vermell. Això perd el temps, sobretot si la llum impedeix que un sol vehicle passi per la intersecció quan no hi ha ningú més a la carretera. La meva innovació és un semàfor intel·ligent que utilitza la detecció d’objectes en directe des d’una càmera per comptar el nombre de cotxes de cada carretera. El maquinari que faré servir per aquest projecte és un Raspberry Pi 3, un mòdul de càmera i diversos maquinaris electrònics per a la pròpia llum. Utilitzant OpenCV al Raspberry Pi, la informació recollida s’executarà mitjançant un codi que controla els LED mitjançant el GPIO. Depenent d’aquestes xifres, el semàfor canviarà i deixarà passar els cotxes en l’ordre més òptim. En aquest cas, es deixaria passar el carril amb més cotxes de manera que el carril amb menys cotxes estaria al ralentí, reduint la contaminació atmosfèrica. D’aquesta manera s’eliminarien les situacions en què s’aturen molts cotxes mentre no hi ha cotxes a la carretera que es creua. Això no només estalvia temps per a tothom, sinó que també estalvia el medi ambient. La quantitat de temps que es deté la gent en un senyal d’aturada amb el motor al ralentí augmenta la quantitat de contaminació atmosfèrica, de manera que, creant un semàfor intel·ligent, puc optimitzar els patrons de llum perquè els cotxes passin el mínim temps possible amb el vehicle aturat. En última instància, aquest sistema de semàfors es podria implementar a ciutats, suburbis o fins i tot àrees rurals per ser més eficient per a la gent, reduiria la contaminació atmosfèrica.
Pas 1: llista de peces
Materials:
Raspberry Pi 3 Model B v1.2
Càmera Raspberry Pi v2.1
Alimentació micro USB de 5V / 1A
Monitor HDMI, teclat, targeta SD del ratolí amb Raspbian Jessie
Cable de ruptura GPIO Raspberry Pi
LEDs vermells, grocs i verds (2 de cada color)
Connectors femenins per a Raspberry Pi (7 colors únics)
Assortiment de filferro de calibre 24 (diferents colors) + tub retràctil
Tauler o plataforma de fusta de 2’x2’
Cargols de fusta
Superfície negra (cartró, tauler d'escuma, cartell, etc.)
Cinta blanca (o de qualsevol color que no sigui el negre) per a marques de carretera
Pintura en aerosol negre (per a PVC)
Tub de PVC de ½ amb juntes de colze de 90 graus (2), endoll en T (1), adaptador femella (2)
Eines
Soldador
Impressora 3D
Trepant amb diverses broques
Taula de pa
Pistola de calor
Pas 2: Configuració del Raspberry Pi
Carregueu la targeta SD al Raspberry Pi i arrenceu.
Seguiu aquesta guia per instal·lar les biblioteques OpenCV necessàries. Assegureu-vos de tenir temps per fer aquest pas, ja que la instal·lació de la biblioteca OpenCV pot trigar un parell d’hores. Assegureu-vos d’instal·lar i configurar la càmera també aquí.
També heu d’instal·lar pip:
picamera
gpiozero
RPi. GPIO
Aquí teniu el codi finalitzat:
des de picamera.array importar PiRGBArray
d'importació de càmeres d'imatges PiCamera
importació picamera.array
importa numpy com a np
temps d'importació
importar cv2
importar RPi. GPIO com a GPIO
temps d'importació
GPIO.setmode (GPIO. BCM)
per a i a (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (càmera, mida = (480, 480))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
comptador = 0
per al marc a cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (marc, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
màscara = cv2.blur (màscara, (3, 3))
mask = cv2.dilate (màscara, cap, iteracions = 5)
mask = cv2.erode (màscara, Cap, iteracions = 1)
mask = cv2.dilate (màscara, cap, iteracions = 3)
jo, batre = llindar cv2. (màscara, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (batre, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
centre = Cap
vert = 0
horitzó = 0
si len (cnts)> 0:
per a c en cnts:
(x, y), radi = cv2.min Cercle de tancament (c)
centre = (int (x), int (y))
radi = int (radi)
cv2.circle (marc, centre, radi, (0, 255, 0), 2)
x = int (x)
y = int (y)
si 180 <x <300:
si y> 300:
vert = vert +1
elif y <180:
vert = vert +1
en cas contrari:
vert = vert
si 180 <y <300:
si x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
en cas contrari:
horiz = horiz
si vert! = initvert:
imprimir "Cotxes en carril vertical:" + str (vert)
initvert = vert
imprimir "Cotxes en carril horitzontal:" + str (horiz)
inithoriz = horiz
imprimir '----------------------------'
si horiz! = inithoriz:
imprimir "Cotxes en carril vertical:" + str (vert)
initvert = vert
imprimir "Cotxes en carril horitzontal:" + str (horiz)
inithoriz = horiz
imprimir '----------------------------'
si vert <horiz:
Sortida GPIO (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
si horiz <vert:
Sortida GPIO (16, GPIO. HIGH)
Sortida GPIO (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Marc", marc)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", batre)
raw.truncate (0)
si cv2.waitKey (1) & 0xFF == ord ('q'):
trencar
cv2.destroyAllWindows ()
GPIO.cleanup ()
Pas 3: Raspberry Pi i muntatge de la càmera
Imprimeix en 3D la caixa i el muntatge i el muntatge de la càmera.
Pas 4: muntatge del semàfor
Proveu el semàfor amb una taula de tall. Cada conjunt de LEDs oposats comparteixen un ànode i tots comparteixen un càtode comú (terra). Hi hauria d’haver un total de 7 cables d’entrada: 1 per cada parell de LEDS (6) + 1 cable de terra. Soldeu i munteu els semàfors.
Pas 5: cablejat (primera part)
Soldeu els passadors de capçal femení a uns 5 peus de filferro. Aquests són els costats que aquests cables serpentegaran a través de les canonades de PVC més endavant. Assegureu-vos de distingir els diferents jocs de llums (2 x 3 colors i 1 terra). En aquest cas, he marcat els extrems d’un altre conjunt de cables vermells, grocs i blaus amb punxades, de manera que sé quin és quin.
Pas 6: Construir el medi ambient
Construir el medi ambient Feu un palet de fusta quadrat de 2 peus així. La fusta de ferralla està molt bé, ja que quedarà tapada. Practicar un forat que s’adapti perfectament al vostre adaptador. Traieu els cargols pels costats del palet per fixar la canonada de PVC al seu lloc. Talleu el tauler d'escuma negra perquè coincideixi amb el palet de fusta que hi ha a sota. Practicar un forat que s’adapti al voltant de la canonada de PVC. Repetiu a la cantonada oposada. Marqueu les carreteres amb una mica de cinta blanca.
Pas 7: Finalització del marc de PVC
A la canonada superior, foradeu un forat que pugui encabir un paquet de cables. Un forat rugós està bé sempre que es pugui accedir a l’interior de les canonades. Col·loqueu els cables a través de les canonades de PVC i les articulacions del colze per obtenir un ajust adequat. Un cop acabat tot, pinteu el PVC amb una mica de pintura en aerosol negra per netejar l’aspecte del marc principal. Talleu una petita bretxa en una de les canonades de PVC per adaptar-la a una junta en T. Afegiu una canonada de PVC a aquesta junta t perquè el semàfor pengi. El diàmetre podria ser el mateix que el marc principal (1/2 ), tot i que si utilitzeu una canonada més fina, assegureu-vos que els 7 cables puguin serpentejar-los. Feu un forat a través d'aquesta canonada perquè pengi el semàfor.
Pas 8: cablejat (part 2)
Torneu a connectar-ho tot tal com s’ha provat anteriorment. Comproveu de nou el semàfor i el cablejat amb una placa de verificació per confirmar que s'han fet totes les connexions. Soldeu el semàfor als cables que passen pel braç de l’articulació en T. Emboliqueu els cables exposats amb cinta elèctrica per evitar curtmetratges i per obtenir un aspecte més net.
Pas 9: acabat
Per executar el codi, assegureu-vos de configurar la font com a ~ /.profile i cd a la ubicació del projecte.
Pas 10: Extres (fotos)
Recomanat:
Programació orientada a objectes: Creació d’objectes Mètode / tècnica d’aprenentatge / ensenyament mitjançant l’aplicació de formes: 5 passos
Programació orientada a objectes: Creació d’objectes Mètode / tècnica d’aprenentatge / ensenyament mitjançant Shape Puncher: mètode d’aprenentatge / ensenyament per a estudiants que s’inicien en la programació orientada a objectes. Aquesta és una manera de permetre'ls visualitzar i veure el procés de creació d'objectes a partir de classes. Puny gran EkTools de 2 polzades; les formes sòlides són les millors. Tros de paper o c
Patrons de LED (diferents patrons de llum): 3 passos
Patrons LED (diferents patrons de llum): la idea: el meu projecte és un patró de colors LED. El projecte conté 6 LED que s’alimenten i es comuniquen amb l’Arduino. Hi ha 4 patrons diferents que recorreran i es reproduiran en bucle. Quan s’acaba un patró, un altre s’aconsegueix
Detecció d'objectes W / Dragonboard 410c o 820c mitjançant OpenCV i Tensorflow .: 4 passos
Object Detection W / Dragonboard 410c o 820c mitjançant OpenCV i Tensorflow. Aquest document descriu com instal·lar OpenCV, Tensorflow i frameworks d’aprenentatge automàtic per Python 3.5 per executar l’aplicació Detecció d’objectes
Detecció d'objectes visuals amb càmera (TfCD): 15 passos (amb imatges)
Detecció d'objectes visuals amb una càmera (TfCD): els serveis cognitius que poden reconèixer emocions, rostres de persones o objectes simples es troben encara en una fase inicial de desenvolupament, però amb l'aprenentatge automàtic, aquesta tecnologia es desenvolupa cada vegada més. Podem esperar a veure més d’aquesta màgia a
Viu el trànsit aeri al vostre ordinador !!!!!: 3 passos
Viu el trànsit aeri al vostre ordinador !!!!!: aquest instructiu us ensenyarà a mirar el trànsit aeri de diversos aeroports (només inclou els aeroports internacionals més importants). ** EXENCIÓ DE RESPONSABILITAT ** No sóc responsable de l'ús de la informació continguda en aquest document instructiu. Si esteu planejant algun terrorista