Laserpistole

Bei diesem privatem Projekt handelt es sich um die Idee, eine Pistole zu bauen, die einen kurzen Laserpuls auf eine Zielscheibe feuert. Die Zielscheibe soll mit einer Webcam gefilmt werden, und ein Treffer auf der Zielscheibe angezeigt und ausgewertet werden.

Die Pistole

Die Pistole wurde mit einem 3D-Drucker erstellt und beinhaltet einen ESP32-Microcontroller (ESP32 Firebeetle), an dem ein Klasse2-Lasermodul, sowie ein Taster angeschlossen ist. Per Bluetooth-Verbindung ist die Pistole als virtuelle Tastatur an den Computer der Webcam gekoppelt. Als Stromversorgung dient ein integrierter Akku, der über einen USB-Port geladen werden kann. Das Lasermodul kann mit zwei feinen Gewindeschrauben justiert werden.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist IMG_4210-1024x683.jpg
Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist IMG_4211-1024x683.jpg

Die Zielscheibe

Die Zielscheibe ist auf weißen Papier aufgedruckt und wird kontinuierlich von einer Webcam erfasst. Die Webcam wird von einem Python-Script gesteuert.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist IMG_4212-1024x683.jpg

Funktionsweise

Sobald der Taster auf der Pistole gedrückt wird, wird das Lasermodul für ca. 70 ms eingeschaltet, sodass ein Laserpuls entsteht. Gleichzeitig sendet der Microcontroller an den Computer, dass Steuersignal des Tastendrucks „f“ Dieses Signal dient dem Python-Script, das auf dem Computer die Kamera ansteuert, als Triggerzeichen. Mit diesem Zeitpunkt werden die drei letzten und drei zukünftigen Einzelbilder des Kamerasignals zur weiteren Auswertung gespeichert. Diese Bilder werden der Reihe nach ausgewertet, bis auf einem Bild ein Laserpunkt detektiert werden kann.

Auswertung der Kamerabilder

Um den Laserpunkt zu detektieren, wird das Bild der Webcam zunächst als Graustufenbild umgewandelt (Bild 1) und anschließend mit einem Schwellwert derart in ein Binärbild (Bild 2) gefiltert, dass nur der Laserpunkt sichtbar ist. Auf diesem Binärbild wird ein Algorithmus zur Strukturerkennung angewendet, um die Position des Laserpunkunktes zu ermitteln. Kann dabei der Algorithmus eine Kontur erkennen, gilt das Bild als auswertbar. Mit dieser Position und der zuvor manuell eingetragenen Position der Zielscheibenmitte kann der Abstand den Laserpunkte von der Mitte der Zielscheibe bestimmt werden und es wird eine Verbindungslinie eingezeichnet (Bild 3).

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist Foto_gray140423.jpg
Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist Foto_thresh140423.jpg
Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist Foto_einzel140423-1.jpg