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

Dankeschild für höfliche Autofahrer – LED-Matrix im Heckfenster

Komponenten & Zubehör

BauteilMenge
Arduino MKR1000 (oder MKR WiFi 1010)1
Bluetooth-Modul (BlueSMiRF Silver)1
Logic Level Converter 4-Kanal (BSS138)1
Adafruit DotStar Matrix 8×32 (256 RGB LEDs)1
JST SM 4-pol Kabelset1
DC 2,1 mm Hohlstecker1
Netzteil 5 V / 4 A1
Pinheader 4-pol1
Steckbrett1
Projektgehäuse1
Baltic Birch Sperrholz 6 mm × 114 mm × 380 mm1
Doppelseitiges Klebeband 25 mm × 15 m1

Werkzeuge

Software & Dienste

Projektidee

Seit ich Auto fahre, wollte ich mich verständlicher mit anderen Verkehrsteilnehmern austauschen können – über Lichthupe, Handzeichen oder Hupen hinaus. Inspiriert von einem James-Bond-Film (Text im Heckfenster) entstand dieses Projekt: Eine LED-Matrix im Heckfenster zeigt per Smartphone-App wählbare Botschaften wie „Danke“, „Bitte“, „Links“, „Rechts“, „Abstand“, „Notruf“.

Hardware-Aufbau

  1. MKR1000 zum Laufen bringen: Da es sich um ein Pre-Release-Board handelte, war die Einrichtung aufwendig (Hourly-Build der IDE, Board-Manager, diverse Libraries). Heute ist der Prozess standardisiert.
  2. Spannungspegel: Der MKR1000 arbeitet mit 3,3 V. Die DotStar-Matrix und das Bluetooth-Modul benötigen 5 V Logik – daher der 4-Kanal-Level-Shifter.
  3. Komponenten testen: Zuerst Matrix (SPI: SDA/SCL → Pin 11/12), dann Bluetooth (TX/RX an Pin 14/13) mit Virtual Shield.
  4. Gehäuse bauen: Sperrholzplatte als Front, Box für Elektronik, Forstner-Bohrungen für Kabeldurchführungen, 24 h unter Druck kleben.
  5. Stromversorgung: 5 V / 4 A Netzteil für Matrix (Spitzen bis 7,5 A bei Vollausleuchtung, im Betrieb weit weniger), separates USB-Netzteil für MKR1000.
  6. Befestigung: Saugnäpfe & Spanngurte für Heckscheibe (Optimierungspotenzial).

Software-Architektur

Die Firmware nutzt:

Wichtige Code-Abschnitte:

// Matrix initialisieren
Adafruit_DotStarMatrix matrix(32, 8, DATAPIN, CLOCKPIN,
  DS_MATRIX_TOP + DS_MATRIX_LEFT + DS_MATRIX_COLUMNS + DS_MATRIX_ZIGZAG,
  DOTSTAR_GBR);

// Farben
uint16_t colors[] = { matrix.Color(255,0,0), matrix.Color(0,255,0), matrix.Color(0,0,255),
  matrix.Color(255,0,255), matrix.Color(255,0,106), matrix.Color(255,255,255) };

// Virtual Shield
VirtualShield shield;
Graphics screen = Graphics(shield);
Recognition speech = Recognition(shield);

// Buttons im refresh()-Callback anlegen
void refresh(ShieldEvent* e) {
  screen.clear(ARGB(123,86,204));
  thanksId    = screen.addButton(10, 50,  ". Thank you .");
  welcomeId   = screen.addButton(10, 100, ". Welcome .");
  turnLeftId  = screen.addButton(10, 150, ". Left .");
  stoppingId  = screen.addButton(175, 50, ". Stopping .");
  startingId  = screen.addButton(175, 100,". Starting .");
  turnRightId = screen.addButton(175, 150,". Right .");
  backoffId   = screen.addButton(10, 225, ". Back Off .");
  calling911Id= screen.addButton(10, 290, ". Calling 911 .");
}

// Button-Events verarbeiten
void screenEvent(ShieldEvent* e) {
  if(screen.isPressed(thanksId))    DisplayText("Thank You", 5, 100);
  if(screen.isPressed(welcomeId))   DisplayText("You're welcome", 2, 100);
  if(screen.isPressed(backoffId))   DisplayText("Please back off", 4, 100);
  if(screen.isPressed(stoppingId))  DisplayText("...stopping...", 0, 100);
  if(screen.isPressed(startingId))  DisplayText("...starting...", 1, 100);
  if(screen.isPressed(turnLeftId))  DisplayText("Turning LEFT", 3, 100);
  if(screen.isPressed(turnRightId)) DisplayText("Turning RIGHT", 3, 100);
  if(screen.isPressed(calling911Id))DisplayText("Calling 911", 0, 100);
}

// Scrolltext auf Matrix
void DisplayText(String msg, int colorIdx, int delayMs) {
  int x = matrix.width();
  int maxX = -(msg.length() * 6);
  matrix.setTextColor(colors[colorIdx]);
  while(x > maxX) {
    matrix.fillScreen(0);
    matrix.setCursor(x, 0);
    matrix.print(msg);
    x--;
    matrix.show();
    delay(delayMs);
  }
}

Quellcode

Gesamtes Projekt auf GitHub: mkr1000_challenge

Schaltplan

Verkabelung: MKR1000 → Level-Shifter → Bluetooth (TX/RX) & DotStar (SPI). Netzteil 5 V an Matrix & Level-Shifter, MKR1000 per USB.

Herstellungsprozess

  1. UnifiedWater v1 – Komplettes Arduino Wasserqualitäts-Sensorkit
  2. Portables Abstimmungssystem mit GSM-Anbindung (Mobile Vote Box)
  3. Smart Matchmaking-Sonnenbrillen mit Arduino 101 und tinyTILE BLE
  4. DIY Whac-A-Mole Arcade-Spiel (Tasten-Edition) – Arduino Mega Projekt
  5. Modern Jukebox: Raspberry Pi & Arduino LED-Musikplayer im Retro-Look
  6. DIY Arduino Smartwatch: Eigene Apple-Watch-Alternative bauen
  7. DIY Allband-Arduino-Radio mit Si4730 (LW, MW, KW, FM) – Günstiger Nachbau
  8. Umfassender Leitfaden zu PCB-Oberflächenveredelungen: Typen, Anwendungen, Best Practices
  9. EDM-Funkenerosion erklärt: Technologie, Methoden und Anwendungen
  10. Umfassender Leitfaden zu Flanschlagern: Typen, Eigenschaften & Anwendungen