Airsoft Pellet Bitmaps (build blog)
Inhaltsverzeichnis
Das Projekt
Ziel des Projekts ist die Erzeugung von physischen Bitmap-Bildern mit Airsoft pellets.
Die Pellets kommen in verschiedenen Farben und sollen entsprechend der Bildvorlage in einen vertikalen Bilderrahmen einsortiert werden.
Artefakte
Das Projekt entsteht aus einer Reihe von Hard- und Software-Artefakten, die später zu den individuellen Maschinen zusammengeführt werden:
- Hardware
- Aufbewahrung der Pellets
- Transport der Pellets
- Farberkennung, Sortierung und Verteilung der Pellets
- Positionierung der Pellets und Aufbau als vertikales Bild
- Software
- Erzeugung des Motivs
- Farberkennung
- Steuerung der Maschine
Farberkennung
Die Farbe eines Pellets soll schnell und eindeutig erkannt werden.
Farbsensor Eigenbau
Der Sensor besteht aus einer 5 mm RGB LED und einem Fototransistor mit Verstärkerschaltung. LED und Transistor sind in einem Winkel von 45° angeordnet, der sich bei Tests als günstig erwiesen hat und wenig störende Reflektionen und Umgebungslicht einfängt.
Farbsensor von Watterott
Farbsensor Module - ColorSense Module - Tests stehen aus
Farberkennung per Software
Die eigentliche Erkennung der Farbe erfolgt analog zur Farberkennung in der Wikipedia per Quantifizierung. Die drei Messwerte für rot, grün und blau werden dabei als dreidimensionale Koordinaten X, Y und Z im RGB-Raum interpretiert. Es wird eine Reihe von Messwerten aufgenommen und nach dem Muster "wenn dominante Farbe rot dann klassifiziere Pellet rot" verarbeitet.
Der Mittelwert aller Messwerte zu einer erkannten Farbe ergibt einen Markerpunkt. Spätere Messwerte ermitteln mit Hilfe der Euklidischen Distanz den nächstgelegenen Markerpunkt und ordnen damit das Pellet einer Farbe zu.
Zur Visualisierung der Messwerte in RGB-Raum wird aus Processing eine Datei im OpenSCAD Format erzeugt: Datei:3D diagram example colors.scad (für Wiedergabe der Farbe nur Preview Rendering / 'F5')
Software Repository
unter anderem mit Processing Code zur Umwandlung von Bitmap-Bildern in den Farbraum der Pellets: