Índice:

Prevenção de colisão - Powered by Pi: 6 etapas
Prevenção de colisão - Powered by Pi: 6 etapas

Vídeo: Prevenção de colisão - Powered by Pi: 6 etapas

Vídeo: Prevenção de colisão - Powered by Pi: 6 etapas
Vídeo: Fiquei 2 anos sem cortar o cabelo! 2024, Julho
Anonim
Prevenção de colisão - Powered by Pi
Prevenção de colisão - Powered by Pi

Este Instructable lhe dará um guia passo a passo para a construção do Sistema de Prevenção de Colisão. Para começar, deve-se obter a seguinte lista de materiais:

Raspberry PI 3 (com cabos de alimentação e Ethernet), 1 placa de extensão GPIO e cabo de fita (GPIO), 1 placa de ensaio grande com diagrama, 2 placas de ensaio pequenas com diagrama, 14 cabos de jumper, 3 resistor de 220 Ohms, 1 LED RGB, 3 interruptores de botão, Sensor ultrassônico 1HB-SR04

Etapa 1: Extensão GPIO

Extensão GPIO
Extensão GPIO
Extensão GPIO
Extensão GPIO

Conecte a placa de extensão GPIO à placa de ensaio grande. O GPIO deve estar voltado para a vertical, assim como a placa de ensaio. Atribua o lado esquerdo do GPIO às portas da placa de ensaio D1-D20 usando o diagrama fornecido. O lado direito então se conectaria a H1-H20. Conecte o cabo de fita ao Raspberry Pi 3 e à placa de extensão GPIO. Todo este componente será agora referido como placa GPIO (GPIO)

Etapa 2: Sensor Ultrassônico

Sensor ultrasônico
Sensor ultrasônico
Sensor ultrasônico
Sensor ultrasônico

Usando outra placa de ensaio menor, conecte o sensor ultrassônico HR-SR04 às portas de placa de ensaio menores A2-5 usando o diagrama fornecido. Conecte um cabo jumper à placa de ensaio menor (BB) E2, insira a outra extremidade na porta J1 da placa de extensão GPIO. Da mesma maneira, conecte mais três jumpers da seguinte maneira. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Etapa 3: LED e resistores

LED e resistores
LED e resistores
LED e resistores
LED e resistores
LED e resistores
LED e resistores

Na mesma placa de ensaio pequena usada na instrução anterior, conecte três resistores de 220 ohms da seguinte maneira. (E10, H10) (E12, H12) (E14, H14) Em seguida, conecte um jumper da mesma placa de ensaio E13 ao barramento de alimentação de aterramento na placa GPIO. Conecte os quatro pinos do LED às portas menores da placa de ensaio (B13) (D14) (D12) (D10). Em seguida, conecte três jumpers da placa de ensaio menor à placa GPIO da maneira atribuída. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Este breadboard agora está completo.

Etapa 4: aterrar

Chão
Chão

Use outro jumper para conectar a placa GPIO J7 ao barramento de alimentação de aterramento.

Etapa 5: botões

Botões
Botões

Usando a segunda placa de ensaio, coloque a parte superior de uma chave de botão nas portas E1 e D1, coloque outra em E5 e D5 e uma terceira em E9 e D9. Conecte três jumpers do barramento de alimentação positivo na placa GPIO às seguintes portas da placa de ensaio (D3) (D7) (D11). Usando mais três cabos de jumper, conecte a placa de ensaio à placa de extensão GPIO na seguinte mansão: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Finalmente, usando o último cabo de jumper, conecte GPIO A1 ao barramento de alimentação positivo. A configuração física agora está concluída.

Etapa 6: Código

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

Conecte o cabo Ethernet e o cabo de alimentação ao Pi e em suas respectivas posições. Abra o MATLAB e execute o seguinte script para inicializar o microcontrolador:

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

Em seguida, copie e cole o seguinte em um novo script, chamado Ping, para executar o sistema de prevenção de colisão:

função dist = ping () trig = 19; echo = 13; teste = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, teste, 'DigitalInput');

disp ("Medição de distância em andamento");

enquanto true writeDigitalPin (rpi, trig, 0); disp ("Deixando o sensor resolver"); pausa (2);

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

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

enquanto readDigitalPin (rpi, echo) == 1 T = toc; fim

pulso_duração = T; distância = duração_do_pulso * 17150;

aberto = "Distância ="; fechar = "cm"; string = [abrir, distância, fechar]; disp (string); dist = distância; fim fim

Em um novo script, execute o seguinte código denominado status:

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

status = 2; d = 10; % Status: 0-Vermelho / Parar 1-Azul / Lento 2-Verde / Em execução = verdadeiro; enquanto executa% d = ping (); se readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; elseif d

Recomendado: