Projekt: Fotobox

In diesem Beitrag möchte ich dir vom Projekt „Fotobox“ berichten. Dieses kleine Projekt ist aus einer Bitte von einem Freund entstanden.

Ziel des Projektes

Das Ziel ist, ein Bild aufzunehmen, wenn ein Fahrzeug eine Stelle passiert.

Wie es mit Projekten nun mal so ist, kommt ersten alles anders als gedacht. Die Kabelbrücke (Bild 1) stand für dieses Projekt auf dem Gelände zu weit nach hinten. So habe ich die Stromversorgung von Baum zu Baum gespannt (Bild 2).

Einweglichtschranke

Die Einweglichtschranke hat sich nach einigen Versuchen als die brauchbarste Lösung erwiesen, zum einen ist diese fertig und auch recht einfach implementieren. Jedoch war der Preis mit knapp 40 € doch recht hoch.

Die Einweglichtschranke hat einen Sender und einen Empfänger, beide werden mit 12 V betrieben, wobei der Empfänger noch einen zusätzlichen Ausgang hat, welcher bei Durchbrechen der Lichtschranke auf 12 V gezogen wird. D.h. es musste erkannt werden, ob 12 V an einem Kontakt anliegen, hier habe ich einen einfachen Spannungssensor verwendet (Arduino Lektion 54: Spannungssensor)

Schaltung - Arduino Nano mit Relaisshield & Spannungssensor
Schaltung – Arduino Nano mit Relaisshield & Spannungssensor

Die beiden 5 mm LEDs dienen lediglich dazu den Zustand der Schaltung optisch zu signalisieren (grüne LED = Power ON, rote LED = Relais aktiv).

Benötigte Ressourcen für den Aufbau

Für den Aufbau haben wir schlussendlich benötigt:

BauteilPreis
Arduino Nano V33 €
Spannungssensor2 €
einfach Relaisshield1,20 €
Lochrasterplatine0,20 €
zwei 5 mm LEDs0,10 €
zwei 220 Ohm Widerstände0,10 €
eine Brotdose*2 €
ein USB Ladegerät*3 €
ein Mini-USB Datenkabel*2 €
ein Labornetzteil30 €
eine Mehrfachsteckdose*5 €
ein Set Bananenstecker & Buchsen10 €
ein 10 m Cinch Kabel6 €
eine Einweglichtschranke40 €
20 m zweiadriges Kabel11 €

* Diese Bauteile bekommst du im lokalen Geschäft wie Mäc Geiz, Kik, Toom Baumarkt recht günstig.

Die Gesamtkosten für dieses Projektes belief sich auf 115,6 €.

Die meisten Komponenten für dieses Projekt hatte ich auf Lager und somit musste für dieses Set lediglich die Einweglichtschranke und das zweiadrige Kabel bestellt werden, somit sind es 51 €.

Aufbau der Schaltung

Die Schaltung ist recht schnell aufgebaut, denn es sind nur recht wenig Bauteile für diese Schaltung notwendig.

Ich habe zusätzlich noch zwei LEDs verbaut, welche den Status anzeigen, zum einen, ob das Relais aktiviert ist und die Schaltung (bzw. der Arduino Nano) Strom hat.

Schaltung - Arduino Nano mit Spannungsensor & Relais
Schaltung – Arduino Nano mit Spannungsensor & Relais

Quellcode

Hier nun der Quellcode für die obige Schaltung:

#define relais 12
#define dcSensor A0
#define powerLed 11
#define actionLed 10

const int PAUSE = 25;
const int BREAK_BETWEEN_CARS = 3000;

const float R1 = 30000.0f; // Der Widerstand R1 hat eine größe von 30 kOhm
const float R2 = 7500.0f; //  Der Widerstand R2 hat eine größe von 7,5 kOhm
const float MAX_VIN = 12.0f; //max. Spannung

boolean lastAction = false;

void setup() {
  Serial.begin(9600);
  pinMode(relais, OUTPUT);
  pinMode(powerLed, OUTPUT);
  pinMode(actionLed, OUTPUT);

  digitalWrite(powerLed, HIGH);
  digitalWrite(actionLed, LOW);
  digitalWrite(relais, LOW);
}

float calcVin(){
  float vout = (analogRead(dcSensor) * MAX_VIN) / 1024.0f;
  return vout / (R2/(R1+R2));   
}

void loop() {
  float vIn = calcVin();
  Serial.println(vIn);
  if (vIn >= 5) {
    if (lastAction == true) {
      // mache nix
    } else {
      digitalWrite(actionLed, HIGH);
      Serial.println("drin");
      digitalWrite(relais, HIGH);
      delay(PAUSE);
      digitalWrite(relais, LOW);
      Serial.println("Pause begin");
      delay(BREAK_BETWEEN_CARS);
      Serial.println("Pause ende");
      digitalWrite(actionLed, LOW);
      lastAction = true;
    }
  } else {
   lastAction = false;
  }
}
Icon
Arduino Nano mit Relais & Spannungssensor

Ein Drama in fünf Akten

Bis wir zur fertigen Schaltung mit der Einweglichtschranke gelangt sind, hatten wir einige kleinere bis mittlere Katastrophen zu bewältigen. Jedoch nehme ich sehr viele Informationen aus diesen Schaltungen mit und somit war es doch recht interessant wie dieses Projekt gewachsen ist.

Ultraschallabstandsensor mit Webcam am Raspberry Pi Zero 2 W

Der erste Aufbau war ein einfacher Ultraschallabstandssensor vom Typ HC-SR04 mit einer USB Webcam am Raspberry Pi Zero 2 W.

Während der Erstellung des Projektes ist parallel der Beitrag Raspberry Pi Zero 2 W mit Ultraschall-Abstandssensor HC-SR04 entstanden, wo ich erläutert habe, wie der Ultraschallabstandssensor angeschlossen und programmiert wurde.

Die Webcam wurde per Adapter an den Pi Zero angeschlossen und wie im Beitrag Raspberrry Pi Zero 2 W – Video per Tastendruck aufnehmen erläutert wird ein Bild aufgenommen.

Icon
Raspberry Pi Zero , Python

Problem

Das Problem war nur, dass die Reaktionszeit von erkennen, dass ein Objekt sich vor dem Sensor befindet und der Aufnahme und des Speicherns von dem Foto zu viel Zeit vergeht und somit das Objekt wieder aus dem Fokus der Kamera geriet.

Arduino UNO mit Ultraschallabstandssensor und Optokoppler

Die nächste Idee war dann einen einfachen Mikrocontroller wie den Arduino UNO zu verwenden. Dieser läuft zwar nur mit 16 MHz, aber hat dabei nicht den Overhead eines Betriebssystems im Hintergrund und läuft somit etwas schneller.

Der Optokoppler wurde verwendet, da zunächst mit einer höheren Frequenz zu rechnen war und somit die Kontakte eines Relais ggf. „verkleben“ könnte.

Als Kamera wurde eine Spiegelreflexkamera der Marke Pentax verwendet. Diese hat eine Schnittstelle, über welche man den Fokus aktivieren kann, sowie ein Foto aufnehmen kann (durch Kurzschließen eines Kontaktes).

Problem

Das Problem bei einem Optokoppler ist, dass dieser über einen internen Fotowiderstand verfügt, welcher durch eine Diode bestrahlt wird.

Aufbau eines Optokopplers
Aufbau eines Optokopplers

Dieser Widerstand war leider zu hoch und somit hat die Kamera nicht ausgelöst.

Arduino Nano mit Ultraschallabstandssensor & Relais

Die nächste Schaltung war dann ein Arduino Nano mit Ultraschallabstandssensor und einem Relais. Der Aufbau war der gleiche wie mit dem Optokoppler, jedoch hat das mit dem Relais deutlich besser funktioniert und die Kamera hat ausgelöst, wenn ein Objekt sich vor dem Sensor befand.

Problem

Beim Testen stellte sich dann heraus, dass der maximale Messbereich des Ultraschallabstandssensors bei nur knapp 2 m lag und somit musste auch hier ein anderer ggf. besserer Sensor her.

Arduino Nano mit Laserdistanzsensor, OLED Display & Relais

Der vermeintlich bessere Sensor war meiner Meinung nach der Laserdistanzsensor vom Typ VL53L01-V2 welchen ich bereits im Beitrag Arduino Lektion #103: Laser Distanz Sensor VL53LXX-V2 vorgestellt habe.

Damit der Abstand zum Auslösen einstellbar ist habe ich ein Drehpotentiometer in die Schaltung integriert und die Daten wurden auf einem kleinen 0,91″ OLED Display angezeigt.

Icon
Arduino Nano - Laserdistanzsensor, OLED Display, Drehpotentiometer, Relais

Problem

Das entstandene Problem mit dem Laserdistanzsensor war, dass dieser sehr stark auf helle Oberflächen reagiert hat und somit die Messergebnisse verfälscht waren (man kann ja nicht nur dunkle Fahrzeuge aufnehmen).

Arduino Nano mit Laserdiode & Lasersensor

Im Beitrag Arduino Lektion 41: KY – 008 Laser Pointer Sender & Empfänger habe ich bereits gezeigt, wie man mit einer Laserdiode und einem Lasersensor eine kleine Schaltung aufbaut und bei Durchbrechen dieser Lichtschranke eine Aktion ausführen kann.

Icon
Arduino Nano mit Lichtschranke

Problem

Das Problem an dem Aufbau mit einer solchen Lichtschranke war, dass der Laserpointer deutlich zu schwach ist und schon nach nur 3 m nicht mehr erkannt wurde.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.