Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Intelligenter Garagen-Parkassistent mit RGB-LED-Feedback

Komponenten und Zubehör

Komponente Menge
Arduino Nano R3 1
Ultraschallsensor HC-SR04 (generisch) 1
Kondensator 1000 µF 1
1N4148 – Schnellschaltende Diode 1
Durchgangswiderstand 470 Ω 1
WS2812B LED-Streifen 1 m IP30 5 V DC 1

Benötigte Werkzeuge und Maschinen

Über das Projekt

Dies ist ein Garagen-Parksensor, der adressierbare RGB-LEDs verwendet, um dem Fahrer visuelles Feedback zu geben, während er sich der Parkposition nähert und diese schließlich erreicht. Video in Aktion:

Ich habe das Design um halbrunde Acrylstäbe (1/2″ Durchmesser, Länge 20-7/16″) herum entworfen, die als Linse dienen und die Schwalbenschwanz-Segmente zusammenhalten. Dieses Material ist online für ca. 0,66 $ pro Fuß erhältlich. Alternativ habe ich auch ein 3D-druckbares Linsenmodell (in Segmente unterteilt, für klares Filament) beigefügt.

SCHRITT 1

LED-Streifen vorbereiten (WS2812B, einzeln ansteuerbar, 30 LEDs/m, 1 m lang). Streifen in zwei 15-LED-Segmente schneiden und an jedem Segment am Anfang Anschlusskabel anlöten. Pfeile auf dem Streifen zeigen *weg* von der Anschlussseite.

SCHRITT 2

Alle Schienen-Segmente montieren (eine Außenschiene, zwei Innenschienen-Segmente pro Seite) mit dem Gehäuse in der Mitte.

SCHRITT 3

Anschlusskabel der LED-Streifen in das Gehäuse auf jeder Seite führen und mit Klebeband fixieren. Die LED-Streifen enden ca. 1/2″ vor jedem Außenschienen-Ende.

SCHRITT 4

Linse von jedem Ende her einschieben, bis sie im Gehäuse einrastet und alle Schwalbenschwanz-Verbindungen verriegelt. Bei gedruckter Linse: 4 Segmente pro Seite erforderlich, sie überbrücken die Schwalbenschwanz-Bereiche.

SCHRITT 5

Montage mit Endkappen auf einer Trägerplatte (ich verwendete 1/2″ MDF, 2″ breit × 45-1/8″ lang). Mit kleinen Zylinder- oder Senkkopfschrauben befestigen (keine Rundkopfschrauben, sonst passt das USB-Kabel später nicht in den Schlitz für Reprogrammierung).

SCHRITT 6

Elektronik verdrahten. Beachten Sie die Position des Kondensators – er verhindert Spannungsspitzen von der Stromversorgung. Ein Widerstand wird am Signalkabel (Pin 7) für die LEDs verwendet, eine Diode am Arduino (V+), um Rückspeisung zu verhindern, falls USB ohne Netzteil eingesteckt wird. Ohne Diode würde der Arduino versuchen, die LEDs zu versorgen, was zu übermäßigem Strom durch den onboard-Regler führt. Diode und Widerstand sind in die Verkabelung eingelötet und mit Schrumpfschlauch isoliert. Das Gehäuse muss von außen nahe der Unterseite unter dem Arduino durchbohrt werden, um die Kabel der Stromversorgung hindurchzuführen (Größe hängt vom Kabeltyp ab – ich empfehle 18/2-Kabel, ich nutzte Türklingeldraht mit Stecker kurz außerhalb des Gehäuses).

Intelligenter Garagen-Parkassistent mit RGB-LED-Feedback

SCHRITT 7

Arduino mit 2,5 mm Schraube fixieren und Verkabelung vervollständigen. Die Haltelaschen ragen in quadratische Löcher im Gehäuse. Ich entfernte die äußeren, ungenutzten Pins am Arduino, um die Montage zu erleichtern.

Intelligenter Garagen-Parkassistent mit RGB-LED-Feedback

SCHRITT 8

Ultraschallsensor (HC-SR04) mit 2,5 mm Schrauben an der Abdeckung befestigen. Lötverbindungen zum Sensor herstellen. ACHTUNG: Kabel müssen zur Sensor-Mitte hin zeigen, um nicht mit der Seitenwand bei der Montage zu kollidieren.

Intelligenter Garagen-Parkassistent mit RGB-LED-Feedback

SCHRITT 9

Abdeckung mit 3 mm Schrauben am Gehäuse befestigen.

SCHRITT 10

Arduino programmieren (Code unten). Vor dem Kompilieren Bibliotheken FastLED und QuickStats in der IDE aktualisieren. Parameter anpassen: startdistance (Erkennungsbeginn bei Fahrzeugannäherung) und stopdistance (endgültige Parkposition). Sensorbereich: 3 cm bis 400 cm – Start- und Stopp-Parameter müssen innerhalb dieser Grenzen liegen.

SCHRITT 11

Am Garagentoröffner eine Lampenfassung mit integrierter Steckdose installieren. 5 V DC Netzteil dort einstecken und zum Lichtbalken führen. Der Lichtbalken ist nur aktiv, solange das Garagentorlicht nach dem Öffnen leuchtet – verhindert Dauerbetrieb.

Code

Arduino Code Arduino
/* Garage Parking Sensor - Published By 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;  // Parkposition vom Sensor (ZENTIMETER)
int startdistance = 400; // Erkennungsbeginn beim Einfahren (ZENTIMETER)
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);

  if (distance < stopdistance) {
    for (int i = 0; i <= 14; i++) leds[i] = CRGB(255, 0, 0); // Rot: Stopp
    FastLED.show();
  }
  else if (distance < stopdistance + increment) { showLEDs(0, 0, CRGB(255, 255, 0)); } // Gelb 1
  else if (distance < stopdistance + increment * 2) { showLEDs(1, 0, CRGB(255, 255, 0)); }
  else if (distance < stopdistance + increment * 3) { showLEDs(2, 0, CRGB(255, 255, 0)); }
  else if (distance < stopdistance + increment * 4) { showLEDs(3, 0, CRGB(0, 255, 0)); } // Grün
  else if (distance < stopdistance + increment * 5) { showLEDs(4, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 6) { showLEDs(5, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 7) { showLEDs(6, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 8) { showLEDs(7, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 9) { showLEDs(8, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 10) { showLEDs(9, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 11) { showLEDs(10, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 12) { showLEDs(11, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 13) { showLEDs(12, 0, CRGB(0, 255, 0)); }
  else if (distance < stopdistance + increment * 14) { showLEDs(13, 0, CRGB(0, 255, 0)); }
  else { for (int i = 0; i <= 14; i++) leds[i] = CRGB(0, 255, 0); FastLED.show(); delay(50); }
}

// Hilfsfunktion für übersichtlichen Code (nicht im Original, aber empfohlen)
void showLEDs(int lastYellow, int firstGreen, CRGB color) {
  for (int i = lastYellow + 1; i <= 14; i++) leds[i] = CRGB(0, 0, 0);
  for (int i = 0; i <= lastYellow; i++) leds[i] = CRGB(255, 255, 0);
  for (int i = 0; i <= firstGreen; i++) leds[i] = color;
  FastLED.show(); delay(50);
}

Benutzerdefinierte Teile und Gehäuse

STL-Dateien für 3D-Druck (Gehäuse, Linsen, Endkappen) sind im Projekt enthalten.

Schaltpläne

Aktualisiert am 21.04.2019 zur Korrektur der Diodenrichtung.

Intelligenter Garagen-Parkassistent mit RGB-LED-Feedback

Herstellungsprozess

  1. TinyML Spracherkennung mit Edge Impulse auf Arduino Nano 33 BLE Sense
  2. Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
  3. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  4. 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
  5. ATtiny85 Mini-Arcade: Snake – Handheld OLED-Spielekonsole selbst bauen
  6. Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
  7. Audio-reaktive Schreibtischlampe mit Arduino Nano bauen
  8. Personal Healthcare Assistant (PHA) – Smarte IoT-Lösung für Community Health
  9. Kupfer-Galvanik-Projekt: Intelligentes System mit Arduino UNO bauen
  10. NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen