Laserpointer als Stift für Beamer

Wir hatten die Idee, dass man mit einem Laserpointer und einer Kamera einen Laserstift für einen Beamer bauen könnte. Mit diesem könnte man dann z.B. ein Whiteboard auf dem Beamer öffnen auf dem man dann mit einem Laserpointer der mit einer Kamera getrackt wird, (vielleicht sogar mit unterschiedlichen Farben) malen kann.

2 Likes

Wir würden am offenen LEOPARD-Treff anfangen die Idee umzusetzten @nik würde dafür Hardware mitbringen.

Das mit der Hardware hat sich als gar nicht so einfach herausgestellt.

Ich denke, wir arbeiten erstmal mit dem, was da ist, zum Ausprobieren.

Denn eigentlich brauchen wir einen Infrarot-Laserpointer. Die kosten fertig gut 600 €. Und wir mússen da ja auch noch ein paar Tricks einbauen. Daher werden wir den dann wohl spáter selber bauen müssen.

Ok machen wir so.

Wir haben am 2021-10-15T22:00:00Z mit dem Projekt angefangen. Die erste Herausforderung war es die Webcam mit Hilfe von OpenCV zu starten. Dabei haben wir uns am Projekt QRGO orientiert. Der zweite Schritt war es die Farbe einzelner Pixel zu bestimmen. Wir haben herausgefunden, dass die BGR-Farbwerte mit Hilfe eines numpy-Arrays ausgelesen werden können. Um zu bestimmen was Rot bedeutet haben wir festgelegt, dass eine roter Pixel einen Rotwert haben muss, der um min. 100 höher ist als der Blau- und der Grünwert. Danach haben wir überprüft in welchen Pixeln die Kategorie Rot zutrifft. Dabei mussten wir festellen, dass das überprüfen jedes einzelnen Pixels sehr viel Leistung zieht. Nachdem wir das festellen mussten haben wir uns entschieden jeden vierten Pixel zu überprüfen. Da diese Methode immer noch nicht effizient ist werden wir in weiteren Sessions weiter daran arbeiten. Das Repository findet man hier.

1 Like

Ich hätte da noch eine Idee: Soweit ich weiß, kann OpenCV QR Codes lokalisieren und auch die Rotation des QR Codes erkennen. Könnte man eventuell von OpenCV den 3D-Tilt eines QR Codes bekommen (oder zur Not anhand zweier QR Codes berechnen)? Dann könnte man einen (oder eben 2) QR Code(s) als Pointer benutzen, um auf Dinge im projizierten Bild zu zielen und dann eben die Maus dorthin zeigen lassen…

detectAndDecodeCurved()
cv::String cv::QRCodeDetector::detectAndDecodeCurved ( InputArray img,
OutputArray points = noArray(),
OutputArray straight_qrcode = noArray()
)
Python:
cv.QRCodeDetector.detectAndDecodeCurved( img[, points[, straight_qrcode]] ) → retval, points, straight_qrcode

Both detects and decodes QR code on a curved surface.

Parameters
img grayscale or color (BGR) image containing QR code.
points optional output array of vertices of the found QR code quadrangle. Will be empty if not found.
straight_qrcode The optional output image containing rectified and binarized QR code

Keine Ahnung, was da als Rückgabewert “points” kommt, aber vielleicht kann man aus dem “Array of Vertices” ja die Lage des QR Codes im Raum berechnen. Wenn nicht mit einem, dann doch spätestens, wenn man 2 QR Codes benutzt…?
Insgesamt wäre eine erfolgreiche Umsetzung dieses Projekts “intuitive physische Steuerung des Mauszeigers auf beliebigen digitalen Anzeigegeräten mit Hilfe optischer Sensoren” (so meine Interpretation) ein echter Hammer!
P.S.: Für Echtzeit-Anwendung ist Python vielleicht nicht die passende Grundlage, wenn ich die vorherigen Posts richtig interpretiere…

Es lohnt sich auf jeden Fall, sich mal mit den bestehenden Lösungen, die auf der Wiimote basieren, zu beschäftigen.

Wiimote als Zeigegerät:

Wiimote als Kamera, IR-Led als Zeigegerät (und Mausklick)

Hier gibt es einerseits Lösungen, die die Wiimote als Zeigegerät nutzen (was sehr geil ist und auch recht gut funktioniert, habe ich intensiv getestet). Man braucht eine Infrarot-Lichtquelle, im Notfall geht eine Kerze, es gibt aber auch fertige batteriebetriebene IR Leisten als Wii Zubehör. Natürlich kann man sich das auch für ein paar Cent selbst basteln.

Es gibt aber auch Lösungen, bei denen Wiimote fest installiert wird und man mit einer IR Lichtquelle auf dem Bildschirm einen Mausklick simulieren kann. Auch das funktioniert recht gut, wenn man eine IR-Diode mit passender Abstrahlung verwendet.

Insgesamt kann man sagen, dass die Wiimote, die prinzipiell eine IR Kamera mit Bluetooth Schnittstelle ist, eine ganz gute Basis für solche Projekte bieten kann. Sie ist auch bei einschlägigen Anbietern vermutlich recht günstig erhältlich.

Danke für den Vorschlag. Bei der letzten Session haben wir auch ein bisschen mit der OpenCV-QR-Funktion rumprobiert.
Das mit dem Wii Controler klingt auch spannend. Weisst du eventuell wo wir einen zum ausprobieren herbekommen könnten?
Dann könnte man sich das alles in einer neuen Session mal angucken.

Ich kann zumindest eine zum Ausprobieren zur Verfügung stellen. Wenn das gut klappt, kann man ja mal darüber reden, ob das eine permanente Lösung wird.

Hallo Mats,

ich hätte 2 hier, die ich gerne verleihe. Wenn jemand aus Duisdorf kommt
kann er mich anmailen, wir vereinbaren, wann er die einsammeln kann.

Vielleicht ist ja auch einer von euch auf dem Helmholtz, dann bringe ich
die Wiimote mit in die Schule.

LG

Johannes

Cool, danke.
Du kannst ja wenn du das nächste mal (vielleicht) zur Session kommst ja auch mitbringen.

LG Mats