Tabla de contenido:

Prevención de colisiones: con tecnología Pi: 6 pasos
Prevención de colisiones: con tecnología Pi: 6 pasos

Video: Prevención de colisiones: con tecnología Pi: 6 pasos

Video: Prevención de colisiones: con tecnología Pi: 6 pasos
Video: Sistema de Prevención de Colisiones, Sistemas Avanzados de Asistencia al Conductor 2024, Mes de julio
Anonim
Prevención de colisiones: con tecnología Pi
Prevención de colisiones: con tecnología Pi

Este Instructable le dará una guía paso a paso para la construcción del Sistema de Prevención de Colisiones. Para comenzar se debe obtener la siguiente lista de materiales:

Raspberry PI 3 (con cables de alimentación y Ethernet), 1 placa de extensión GPIO y cable plano (GPIO), 1 placa de pruebas grande con diagrama, 2 placas de prueba pequeñas con diagrama, 14 cables de puente, 3 resistencia de 220 ohmios, 1 LED RGB, interruptores de 3 botones, Sensor ultrasónico 1HB-SR04

Paso 1: Extensión GPIO

Extensión GPIO
Extensión GPIO
Extensión GPIO
Extensión GPIO

Conecte la placa de extensión GPIO a la placa de pruebas grande. El GPIO debe estar orientado verticalmente al igual que la placa de pruebas. Asigne el lado izquierdo del GPIO a los puertos D1-D20 de la placa de pruebas usando el diagrama provisto. El lado derecho luego se conectaría a H1-H20. Conecte el cable plano tanto a la Raspberry Pi 3 como a la placa de extensión GPIO. Todo este componente ahora se denominará placa GPIO (GPIO)

Paso 2: Sensor ultrasónico

Sensor ultrasónico
Sensor ultrasónico
Sensor ultrasónico
Sensor ultrasónico

Usando otra placa de prueba más pequeña, conecte el sensor ultrasónico HR-SR04 a los puertos A2-5 de la placa de prueba más pequeños usando el diagrama proporcionado. Conecte un cable de puente a la placa de pruebas más pequeña (BB) E2, inserte el otro extremo en el puerto J1 de la placa de extensión GPIO. De la misma manera, conecte tres puentes más de la siguiente manera. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Paso 3: LED y resistencias

LED y resistencias
LED y resistencias
LED y resistencias
LED y resistencias
LED y resistencias
LED y resistencias

En la misma placa de pruebas pequeña utilizada en la instrucción anterior, conecte tres resistencias de 220 ohmios de la siguiente manera. (E10, H10) (E12, H12) (E14, H14) Luego, conecte un puente de la misma placa E13 al riel de alimentación de tierra en la placa GPIO. Conecte las cuatro clavijas del LED a los puertos más pequeños de la placa de pruebas (B13) (D14) (D12) (D10). Luego, conecte tres puentes de la placa de pruebas más pequeña a la placa GPIO de la manera asignada. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Esta placa de pruebas ahora está completa.

Paso 4: Tierra

Suelo
Suelo

Utilice otro puente para conectar la placa GPIO J7 al riel de alimentación de tierra.

Paso 5: botones

Botones
Botones

Usando la segunda placa, coloque la parte superior de un interruptor de botón en el puerto E1 y D1, coloque otro en E5 y D5, y un tercero en E9 y D9. Conecte tres puentes del riel de alimentación positivo en la placa GPIO a los siguientes puertos de la placa de pruebas (D3) (D7) (D11). Con tres cables de puente más, conecte la placa de pruebas a la placa de extensión GPIO en la siguiente mansión: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Finalmente, usando el último cable de puente, conecte GPIO A1 a la línea de alimentación positiva. La configuración física ahora está completa.

Paso 6: Código

Código
Código
Código
Código

Conecte el cable Ethernet y el cable de alimentación al Pi y en sus respectivas posiciones. Abra MATLAB y ejecute el siguiente script para inicializar el microcontrolador:

rpi = raspi ('169.254.0.2', 'pi', 'frambuesa');

Luego copie y pegue lo siguiente en un nuevo script, llamado Ping, para ejecutar el sistema de prevención de colisiones:

función dist = ping () trig = 19; echo = 13; prueba = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, prueba, 'DigitalInput');

disp ("Medición de distancia en curso");

while true writeDigitalPin (rpi, trig, 0); disp ("Dejar que el sensor se asiente"); pausa (2);

writeDigitalPin (rpi, trig, 1); pausa (0.002); writeDigitalPin (rpi, trig, 0);

while readDigitalPin (rpi, echo) == 0 tic end

while readDigitalPin (rpi, echo) == 1 T = toc; fin

pulse_duration = T; distancia = pulso_duration * 17150;

open = "Distancia ="; cerrar = "cm"; cadena = [abrir, distancia, cerrar]; disp (cadena); dist = distancia; fin fin

En una nueva secuencia de comandos, ejecute el siguiente código denominado estado:

configurePin (rpi, 21, 'DigitalInput'); configurePin (rpi, 16, 'DigitalInput'); configurePin (rpi, 12, 'Entrada digital');

estado = 2; d = 10; % Estado: 0-Rojo / Parada 1-Azul / Lento 2-Verde / Continuar funcionando = verdadero; mientras se ejecuta% d = ping (); si readDigitalPin (rpi, 21) == 1 estado = 0; elseif readDigitalPin (rpi, 16) == 1 estado = 1; elseif readDigitalPin (rpi, 12) == 1 estado = 2; elseif d

Recomendado: