Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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
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
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
Use outro jumper para conectar a placa GPIO J7 ao barramento de alimentação de aterramento.
Etapa 5: 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
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