Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04

Componentes e Materiais

Arduino UNO 1
Sensor Ultrassônico HC-SR04 (genérico) 3
Mini Displays de Bateria (baseados no chip TM1651) 2

Sobre o Projeto

Este projeto é um Sensor de Estacionamento DIY (Radar de Estacionamento), muito fácil de fazer, baseado no sensor ultrassônico HC-SR04. Uso 3 sensores: um para cada lado e um para o meio, além de 2 mini displays de bateria (originalmente feitos para mostrar estado da bateria, mas aqui usados para mostrar distância entre sensores e obstáculos, dependendo do lado). Também depende da distância máxima configurada: acima dela considera-se espaço suficiente sempre; abaixo, os displays mudam conforme a distância e sua direção.

Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04

Peças

Estas são as peças usadas, pode adicionar alguns jumpers e protoboard se quiser. (O display de bateria usa chip TM1651)

Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04

Funcionamento

Há 3 módulos ultrassônicos: Direito, Central e Esquerdo, e dois displays: Direito e Esquerdo. O sensor central pode afetar ambos displays, mas os dois laterais afetam apenas seus respectivos lados.

Exemplo: há dois obstáculos, um no lado direito e um no central. O código pega o mais próximo para mostrar no display.

Há uma distância máxima configurável no código. Acima dela é considerado seguro e o display acende totalmente. Abaixo, os displays mudam proporcionalmente à distância máxima.

Exemplos

Casos para facilitar entendimento:

Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04

O último caso ocorre se houver obstáculos no central e direito (direito mais próximo) ou no esquerdo e direito (direito mais próximo), ou em todos lados mas direito mais próximo.

Melhorias

Código

Parking_sensor_v1.ino (Arduino)

/* Código para trabalhar com módulos ultrassom HC-SR04 x3 e display bateria TM1651 x2
 * Projeto: sensor de estacionamento que mostra quão perto estão obstáculos e de qual lado
 * dependendo da Maxdistance que acima dela display mostra como distância segura
 * abaixo começa a mudar
 * Referência: www.SurtrTech.com para mais detalhes */
#include <TM1651.h>
#define CLK 3 // Display direito
#define DIO 2
#define CLK2 5 // Display esquerdo
#define DIO2 4
#define trigPin 6 // Módulos ultrassom R=Direito L=Esquerdo o outro é central
#define echoPin 7
#define trigPinR 8
#define echoPinR 9
#define trigPinL 10
#define echoPinL 11
#define Maxdistance 20 // Distância máxima 20cm
long duration;
int distance;
TM1651 DisplayR(CLK, DIO);
TM1651 DisplayL(CLK2, DIO2);

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPinR, OUTPUT);
  pinMode(echoPinR, INPUT);
  pinMode(trigPinL, OUTPUT);
  pinMode(echoPinL, INPUT);
  DisplayR.init();
  DisplayR.set(BRIGHTEST);
  DisplayL.init();
  DisplayL.set(BRIGHTEST);
}

void loop() {
  int distanceM = CDistance(trigPin, echoPin);
  int distanceR = CDistance(trigPinR, echoPinR);
  int distanceL = CDistance(trigPinL, echoPinL);
  int R = min(distanceM, distanceR); // Mínimo entre central/direito
  int L = min(distanceM, distanceL); // Mínimo entre central/esquerdo
  if (R > 0 && R < Maxdistance) {
    short LevelR = map(R, 0, Maxdistance, 0, 7); // Escala 0-20 para 0-7
    DisplayR.displayLevel(LevelR);
  }
  if (R > Maxdistance) DisplayR.displayLevel(7); // Seguro
  if (L > 0 && L < Maxdistance) {
    short LevelL = map(L, 0, Maxdistance, 0, 7);
    DisplayL.displayLevel(LevelL);
  }
  if (L > Maxdistance) DisplayL.displayLevel(7);
  delay(50);
}

int CDistance(int a, int b) {
  digitalWrite(a, LOW);
  delayMicroseconds(2);
  digitalWrite(a, HIGH);
  delayMicroseconds(10);
  digitalWrite(a, LOW);
  duration = pulseIn(b, HIGH);
  distance = duration * (0.034 / 2);
  return distance;
}

Biblioteca Display Bateria TM1651

A biblioteca facilita muito o trabalho:
https://github.com/ne0x/fuel_display

Esquemáticos

Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04

Processo de manufatura

  1. Sensores de Radar Explicados: Como Funcionam e Suas Aplicações Modernas
  2. Como Funcionam Sensores de Estacionamento e Suas Principais Aplicações
  3. Entendendo o Sensor de Oxigênio (O2): Função, Localização e Sinais de Falha
  4. Mouser Apresenta Tecnologias Avançadas de Sensores na Sensors Expo 2019
  5. Ambarella adquire Oculii por US$ 307,5 milhões, expandindo radar e fusão de sensores para veículos autônomos
  6. Controle um LED com Sensor de Movimento PIR no Raspberry Pi
  7. Construa um Sensor de Umidade do Solo de Baixo Custo para Irrigação Inteligente com Raspberry Pi
  8. Construa Monitor de Temperatura Doméstico com Raspberry Pi, MCP9808, InfluxDB e Grafana
  9. Integrando Radar Pulsado Acconeer A111 com Raspberry Pi: Guia Prático
  10. Sensor de Emoção & EEG: Hardware de Baixo Custo para Detecção de Emoções em Tempo Real