Tabla de contenido:
- Paso 1: Lista de piezas
- Paso 2: Configurar la Raspberry Pi
- Paso 3: Raspberry Pi y montaje de la cámara
- Paso 4: Montaje del semáforo
- Paso 5: Cableado (Parte 1)
- Paso 6: Construyendo el Medio Ambiente
- Paso 7: Finalización del marco de PVC
- Paso 8: Cableado (Parte 2)
- Paso 9: ¡Terminado
- Paso 10: Extras (Fotos)
Video: Analizador de patrones de tráfico con detección de objetos en vivo: 11 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
En el mundo actual, los semáforos son esenciales para una carretera segura. Sin embargo, muchas veces, los semáforos pueden ser molestos en situaciones en las que alguien se acerca al semáforo justo cuando se pone en rojo. Esto es una pérdida de tiempo, especialmente si la luz impide que un solo vehículo cruce la intersección cuando no hay nadie más en la carretera. Mi innovación es un semáforo inteligente que utiliza la detección de objetos en vivo de una cámara para contar la cantidad de automóviles en cada camino. El hardware que usaré para este proyecto es una Raspberry Pi 3, un módulo de cámara y varios dispositivos electrónicos para la propia luz. Usando OpenCV en la Raspberry Pi, la información recopilada se ejecutará a través del código que controla los LED a través del GPIO. Dependiendo de estos números, el semáforo cambiará, permitiendo que los autos pasen en el orden más óptimo. En este caso, se dejaría pasar el carril con más automóviles para que el carril con menos automóviles estuviera en ralentí, lo que reduciría la contaminación del aire. Esto eliminaría situaciones en las que muchos automóviles se detienen mientras no hay automóviles en la carretera que se cruza. Esto no solo ahorra tiempo a todos, sino que también protege el medio ambiente. La cantidad de tiempo que las personas están detenidas en una señal de alto con el motor en ralentí aumenta la cantidad de contaminación del aire, por lo que al crear un semáforo inteligente, puedo optimizar los patrones de luz para que los autos pasen el menor tiempo posible con el vehículo parado.. En última instancia, este sistema de semáforos podría implementarse en ciudades, suburbios o incluso áreas rurales para que sea más eficiente para las personas y reduciría la contaminación del aire.
Paso 1: Lista de piezas
Materiales:
Raspberry Pi 3 Modelo B v1.2
Cámara Raspberry Pi v2.1
Fuente de alimentación micro USB 5V / 1A
Monitor HDMI, teclado, mouse, tarjeta SD con Raspbian Jessie
Cable de conexión GPIO Raspberry Pi
LED rojos, amarillos y verdes (2 de cada color)
Conectores hembra para Raspberry Pi (7 colores únicos)
Alambre de calibre 24 surtido (diferentes colores) + tubo termorretráctil
Panel o plataforma de madera de 2'x2 '
Tornillos para madera
Superficie negra (cartón, cartulina, cartulina, etc.)
Cinta blanca (o de cualquier color que no sea negro) para marcas viales
Pintura en aerosol negra (para PVC)
Tubo de PVC de ½”con juntas de codo de 90 grados (2), enchufe en T (1), adaptador hembra (2)
Instrumentos
Soldador
impresora 3d
Taladrar con varias brocas
Tablero de circuitos
Pistola de calor
Paso 2: Configurar la Raspberry Pi
Cargue la tarjeta SD en la Raspberry Pi y arranque.
Siga esta guía para instalar las bibliotecas OpenCV necesarias. Asegúrese de tener tiempo para realizar este paso, ya que la instalación de la biblioteca OpenCV puede tardar un par de horas. Asegúrese de instalar y configurar también su cámara aquí.
También debe instalar pip:
picamera
gpiozero
RPi. GPIO
Aquí está el código finalizado:
desde picamera.array importar PiRGBArray
desde picamera importar PiCamera
importar picamera.array
importar numpy como np
tiempo de importación
importar cv2
importar RPi. GPIO como GPIO
tiempo de importación
GPIO.setmode (GPIO. BCM)
para i en (23, 25, 16, 21):
Configuración de GPIO (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (cam, tamaño = (480, 480))
tiempo. de sueño (0.1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
contador = 0
para el fotograma en cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (marco, cv2. COLOR_BGR2HSV)
máscara = cv2.inRange (hsv, colorLower, colorUpper)
máscara = cv2.blur (máscara, (3, 3))
máscara = cv2.dilate (máscara, Ninguna, iteraciones = 5)
máscara = cv2.erode (máscara, Ninguna, iteraciones = 1)
máscara = cv2.dilate (máscara, Ninguna, iteraciones = 3)
me, thresh = cv2.threshold (máscara, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (umbral, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
centro = Ninguno
vert = 0
horiz = 0
si len (cnts)> 0:
para c en cnts:
(x, y), radio = cv2.minEnclosingCircle (c)
centro = (int (x), int (y))
radio = int (radio)
cv2.circle (marco, centro, radio, (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
demás:
vert = vert
si 180 <y <300:
si x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
demás:
horiz = horiz
si vert! = initvert:
imprimir "Automóviles en carril vertical:" + str (vert)
initvert = vert
imprimir "Automóviles en carril horizontal:" + str (horiz)
inithoriz = horiz
impresión '----------------------------'
if horiz! = inithoriz:
imprimir "Automóviles en carril vertical:" + str (vert)
initvert = vert
imprimir "Automóviles en carril horizontal:" + str (horiz)
inithoriz = horiz
impresión '----------------------------'
si vert <horiz:
Salida GPIO (23, GPIO. ALTA)
Salida GPIO (21, GPIO. ALTA)
Salida GPIO (16, GPIO. LOW)
Salida GPIO (25, GPIO. LOW)
si horiz <vert:
Salida GPIO (16, GPIO. ALTA)
Salida GPIO (25, GPIO. ALTA)
Salida GPIO (23, GPIO. LOW)
Salida GPIO (21, GPIO. LOW)
cv2.imshow ("Marco", marco)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Trillar", trillar)
raw.truncate (0)
si cv2.waitKey (1) & 0xFF == ord ('q'):
rotura
cv2.destroyAllWindows ()
GPIO.cleanup ()
Paso 3: Raspberry Pi y montaje de la cámara
Imprima en 3D la carcasa y el soporte de la cámara y ensamble.
Paso 4: Montaje del semáforo
Pruebe el semáforo con una placa de pruebas. Cada conjunto opuesto de LED comparte un ánodo y todos comparten un cátodo común (tierra). Debe haber un total de 7 cables de entrada: 1 para cada par de LEDS (6) + 1 cable de tierra. Suelde y monte los semáforos.
Paso 5: Cableado (Parte 1)
Suelde las clavijas del cabezal hembra a aproximadamente 5 pies de cable. Estos son los lados que estos cables pasarán por las tuberías de PVC más adelante. Asegúrese de poder distinguir los diferentes juegos de luces (2 x 3 colores y 1 suelo). En este caso, marqué los extremos de otro conjunto de cables rojos, amarillos y azules con sharpie para saber cuál es cuál.
Paso 6: Construyendo el Medio Ambiente
Construyendo el medio ambiente Haga una paleta de madera de 2 pies cuadrados como esta. La madera de desecho está bien, ya que se cubrirá. Taladre un orificio que se ajuste a su adaptador. Taladre tornillos a través de los lados de la paleta para asegurar la tubería de PVC en su lugar. Corte la tabla de espuma negra para que coincida con la paleta de madera que se encuentra debajo. Taladre un agujero que encaje alrededor de la tubería de PVC. Repite en la esquina opuesta. Marca las carreteras con cinta blanca.
Paso 7: Finalización del marco de PVC
En la tubería superior, taladre un orificio en el que quepa un manojo de cables. Un agujero irregular está bien siempre que pueda acceder al interior de las tuberías. Pase los cables a través de los tubos de PVC y las articulaciones de los codos para un ajuste de prueba. Una vez que todo esté finalizado, pinte el PVC con un poco de pintura en aerosol negra para limpiar el aspecto del marco principal. Corte un pequeño espacio en uno de los tubos de PVC para que encaje en una junta en T. Agregue un tubo de PVC a esta junta en T para que cuelgue el semáforo. El diámetro podría ser el mismo que el del marco principal (1/2 ), aunque si usa un tubo más delgado, asegúrese de que los 7 cables puedan serpentear. Perfore un agujero en este tubo para que cuelgue el semáforo.
Paso 8: Cableado (Parte 2)
Vuelva a cablear todo como se probó anteriormente. Verifique dos veces el semáforo y el cableado con una placa de pruebas para confirmar que se han realizado todas las conexiones. Suelde el semáforo a los cables que pasan por el brazo de la junta en T. Envuelva los cables expuestos con cinta aislante para evitar cortocircuitos y una apariencia más limpia.
Paso 9: ¡Terminado
Para ejecutar el código, asegúrese de configurar su fuente como ~ /.profile y cd a la ubicación de su proyecto.
Paso 10: Extras (Fotos)
Recomendado:
Detección de objetos con placas Sipeed MaiX (Kendryte K210): 6 pasos
Detección de objetos con placas Sipeed MaiX (Kendryte K210): como continuación de mi artículo anterior sobre el reconocimiento de imágenes con placas Sipeed MaiX, decidí escribir otro tutorial, centrado en la detección de objetos. Recientemente apareció un hardware interesante con el chip Kendryte K210, incluido S
DETECCIÓN DE OBJETOS FRAMBUESA PI Pi CON MÚLTIPLES CÁMARAS: 3 Pasos
FRAMBUESA PI Pi DETECCIÓN DE OBJETOS CON MÚLTIPLES CÁMARAS: Mantendré la introducción breve, ya que el título en sí sugiere cuál es el propósito principal del instructable. En este instructivo paso a paso, le explicaré cómo conectar varias cámaras como la cámara 1-pi y al menos una cámara USB, o 2 cámaras USB
Patrones de LED (diferentes patrones de luz): 3 pasos
Patrones de LED (diferentes patrones de luz): La idea: Mi proyecto es un patrón de color de LED. El proyecto contiene 6 LED que están todos alimentados y se comunican con el Arduino. Hay 4 patrones diferentes que recorrerán cíclicamente y se reproducirán en un bucle. Cuando termina un patrón, otro tak
Detección visual de objetos con una cámara (TfCD): 15 pasos (con imágenes)
Detección visual de objetos con una cámara (TfCD): Los servicios cognitivos que pueden reconocer emociones, rostros de personas u objetos simples se encuentran actualmente en una etapa temprana de desarrollo, pero con el aprendizaje automático, esta tecnología se está desarrollando cada vez más. Podemos esperar ver más de esta magia en
Patrones termocrómicos: 7 pasos (con imágenes)
Patrones termocrómicos: si está buscando un nuevo material para diseñar, entonces la pintura termocrómica podría ser justo lo que busca. ¡Siga este tutorial para aprender a crear diseños termocrómicos interactivos