Asistente de Aparcamiento Inteligente para Garaje con Retroalimentación LED RGB
Componentes y materiales
| Componente | Cantidad |
|---|---|
| Arduino Nano R3 | 1 |
| Sensor ultrasónico HC-SR04 (genérico) | 1 |
| Condensador 1000 µF | 1 |
| 1N4148 – Diodo de conmutación rápida de propósito general | 1 |
| Resistencia pasante, 470 ohm | 1 |
| Tira LED WS2812B 1M IP30 5VDC | 1 |
Herramientas y máquinas necesarias
- Impresora 3D (genérica)
- Soldador (genérico)
Sobre el proyecto
Este es un sensor de aparcamiento para garaje que usa LEDs RGB direccionables para proporcionar retroalimentación visual al conductor del vehículo a medida que se acerca y finalmente alcanza la posición de parada (aparcamiento).
Diseñé esto alrededor de material acrílico de 1/2" de diámetro semiredondo que tenía a mano (cortado a 20-7/16" de largo) para usar como lente que también sirve para mantener unidas las secciones de cola de milano. Esto se puede comprar fácilmente en internet por unos $0.66 por pie, sin embargo, también he incluido un modelo de lente que se puede imprimir en segmentos usando filamento transparente.
PASO 1
Preparar la tira LED (WS2812B LED strip individualmente direccionable RGB Smart Pixel 30 LEDs tira de 1 metro). Cortar la tira en dos (2) segmentos de 15 LEDs y soldar cables al inicio de cada segmento. Las flechas en la tira apuntan 'HACIA AFUERA' de donde se necesitan los cables.
PASO 2
Montar todas las secciones de riel (un riel exterior y dos segmentos de riel interior por lado) con la carcasa en el medio.
PASO 3
Introducir los cables de las tiras LED en la carcasa por cada lado, y adherir con cinta de doble cara. Nota: las tiras LED se detendrán aproximadamente 1/2" de cada extremo del riel exterior.
PASO 4
Deslizar la lente en cada extremo hasta el fondo de la carcasa para bloquear todas las colas de milano en su lugar. Si usas lente impresa, se requerirán 4 por cada lado. Están diseñadas para puentear las áreas de cola de milano.
PASO 5
Montar el conjunto con tapas finales sobre una tabla de soporte (usé MDF de 1/2" cortado a 2" de ancho por 45-1/8" de largo). Fijar el conjunto usando tornillos de cabeza plana o pan head pequeños (nota: no uses cabeza redonda, de lo contrario el cable USB no entrará en la ranura más tarde si se necesita para reprogramar parámetros).
PASO 6
Cablear la electrónica. Nota la ubicación del condensador. El condensador es necesario para prevenir picos de voltaje de la alimentación. Una resistencia se usa en el cable de señal (pin 7) para los LEDs, y un diodo se usa en el Arduino (V+) para prevenir retroalimentación de voltaje en caso de que se inserte el USB sin la fuente de alimentación encendida. Sin el diodo, el Arduino intentará suministrar voltaje a los LEDs, causando corriente excesiva a través del regulador de voltaje integrado. El diodo y la resistencia se sueldan en línea con el cableado, y se cubren con tubo termorretráctil. La carcasa necesitará taladrarse desde fuera cerca de la parte inferior bajo el Arduino para pasar los cables de la fuente de alimentación. Recomiendo cable 18/2. Usé cable de timbre y puse un conector justo fuera de la carcasa.
PASO 7
Usar tornillo de 2.5mm para sujetar el Arduino, y completar conexiones de cableado al Arduino. Los extremos de sujeción sobresalen en agujeros cuadrados en la carcasa. Eliminé los pines más externos del Arduino (sin usar) para facilitar la instalación.
PASO 8
Usar tornillos de 2.5mm para fijar el detector ultrasónico (HC-SR04) a la tapa con sujeción. Completar conexiones de soldadura al sensor. NOTA: asegúrate de que los cables miren hacia el centro del sensor para no interferir con la pared lateral al montar.
PASO 9
Instalar la tapa a la carcasa con tornillos de 3mm.
PASO 10
Programar Arduino usando el código abajo. Actualiza las librerías de tu IDE con 'FastLED' y 'QuickStats' antes de compilar. Nota: Ajusta parámetros para 'startdistance' (punto donde el sensor detectará por primera vez la aproximación del vehículo) y 'stopdistance' (posición final de aparcamiento del vehículo). El rango del sensor es 3 cm a 400 centímetros, así que los parámetros de inicio y parada deben estar dentro de estos límites.
PASO 11
En el abridor de puerta de garaje, instala un adaptador de portalámparas con enchufe incorporado. Conecta tu fuente de alimentación 5VDC a esta línea, y llévala a la unidad de barra de luz. La barra de luz solo estará encendida desde que la puerta se abre hasta que se apague la luz de la puerta. Esto evita que la barra de luz esté siempre encendida.
Código
Código ArduinoArduino
/* Garage Parking Sensor - Publicado por Bob Torrence */
#include <FastLED.h>
#include <QuickStats.h>
QuickStats stats;
#define LED_PIN 7
#define NUM_LEDS 15
const int trigPin = 9;
const int echoPin = 10;
CRGB leds[NUM_LEDS];
float duration;
float durationarray[15];
int distance;
int stopdistance = 115; // posición de aparcaje desde sensor (CM)
int startdistance = 400; // distancia desde sensor para comenzar escaneo (CM)
int increment = ((startdistance - stopdistance) / 15);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i <= 14; i++) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
durationarray[i] = pulseIn(echoPin, HIGH);
distance = durationarray[i] * 0.034 / 2;
Serial.print(distance);
Serial.print(" ");
}
duration = (stats.median(durationarray, 15));
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
// Lógica de visualización LED basada en distancia
if (distance < stopdistance) {
// Rojo - posición de parada alcanzada
for (int i = 0; i <= 14; i++) { leds[i] = CRGB(255, 0, 0); }
FastLED.show();
} else if (distance < stopdistance + increment) {
// Amarillo - muy cerca
for (int i = 1; i <= 14; i++) { leds[i] = CRGB(0, 0, 0); }
leds[0] = CRGB(255, 255, 0);
FastLED.show(); delay(50);
} else if (distance < stopdistance + increment * 2) {
for (int i = 2; i <= 14; i++) { leds[i] = CRGB(0, 0, 0); }
for (int i = 0; i <= 1; i++) { leds[i] = CRGB(255, 255, 0); }
FastLED.show(); delay(50);
}
// ... (continúa patrón similar para incrementos 3-13)
else if (distance < stopdistance + increment * 14) {
// Verde - distancia segura
for (int i = 0; i <= 13; i++) { leds[i] = CRGB(0, 255, 0); }
leds[14] = CRGB(0, 0, 0);
FastLED.show(); delay(50);
} else {
// Todo verde - lejos
for (int i = 0; i <= 14; i++) { leds[i] = CRGB(0, 255, 0); }
FastLED.show(); delay(50);
}
}
Piezas personalizadas y envolventes
Modelos 3D para carcasa, lentes y tapas disponibles en la sección de descargas.
Esquemáticos
Actualizado 21-4-19 para corregir dirección del diodo.
Proceso de manufactura
- Detector de idiomas TinyML con Edge Impulse en Arduino Nano 33 BLE Sense
- Construye un Juego Giroscópico en Tiempo Real con Arduino Nano y Sensor MPU-6050
- Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
- Construye tu Propio Juego de Ruleta de 37 LEDs con Arduino Nano
- ATtiny85 Mini Arcade: Snake – Construye una Consola Portátil OLED
- Detector de Rango Portátil – Kit DIY Arduino Nano con HC-SR04, Batería 18650 y Carcasa Impresa en 3D
- Construir una lámpara de escritorio reactiva al audio con Arduino Nano
- Asistente Personal de Salud (PHA) – Solución IoT Inteligente para Salud Comunitaria
- Proyecto de electroplacado de cobre: Construye un sistema inteligente con Arduino UNO
- Pong Neón en Matriz NeoPixel con Arduino Nano
- Crea Secuencias de Luz Impactantes con Arduino y Registro de Desplazamiento