Upgrade Laserlinienscanner

Upgrade Laserlinienscanner

Seit Anbeginn haben wir in unserem MGF-Lab einen FabScan Cube Laserlinienscanner. Und obwohl der Scanner prinzipiell immer schon gute Scanergebnisse hervorbrachte fristete er doch ein Schattendasein in unserem Gerätepark. Das mag daran gelegen haben, dass uns die die Umrechnung der generierten Punktewolke in ein Netz nie so richtig gelungen ist. Abhilfe versprach das Upgrade auf den FabScanPi, das am Ende dieses Schuljahres in Angriff genommen wurde.

Der große Vorteil beim FabScanPi liegt darin, dass kein externer Rechner mehr zur Ansteuerung des Scanners verwendet werden muss. Hatten wir bisher die Qual der Wahl, ob wir unter Ubuntu die Ansteuersoftware des Entwicklers oder unter Windows eine alternative Software von Wolfgang Schmidt verwenden wollten, so setzt das Upgrade beim FabScanPi auf die Verwendung eines Raspberry Pi mit einheitlicher Softwareausstattung.

Hierzu hat der Entwickler Mario Lukas ein Image für den Raspberry Pi veröffentlicht, das sowohl das Backend zur Ansteuerung des Schrittmotors, zur Steuerung des Linienlasers und zur Datenverarbeitung der von der Kamera aufgenommenen Bilder umfasst als auch im Frontend eine html-Seite anbietet, mit der sich der Scanner vom Benutzer bedienen lässt.

Apropos Kamera: arbeitete im Fabscan Cube noch eine umgebaute einfache Logitech CS270 Webcam, so erfasst im FabScanPi die 8 Megapixel PiCam die Reflexionen des Laserstrahls.

Da aus Latenzgründen immer noch ein Arduino zur Ansteuerung des Schrttmotors und des Lasers verwendet werden musste, gleichzeitig das Kabelgewirr aber reduziert werden sollte hat der Entwickler den sogenannten HAT (Hardware Attached Top) für den Raspberry Pi entworfen, eine Aufsteckplatine mit integriertem Arduino und allen benötigten Verbindungssteckern zur Ansteuerung der externen Komponenten. Obendrein wird als Zugabe der integrierte Arduino von der Raspberry Pi Software gleich mit der neuesten Software geflasht, so dass der Benutzer dies nicht mehr zu tun braucht.

Bei unserem Umbau ergaben sich zunächst mehrere Probleme, die aber allesamt mit Hilfe des Live-Support Channels des Entwicklers unter slack.com gelöst werden konnten. So ließ sich bei der ersten Inbetriebnahme der Schrittmotor für den Drehteller nicht dazu überreden sich zu drehen. Um die Frage zu beantworten ob der Schrittmotortreiber A4988 oder der HAT defekt ist, wurde der Raspberry Pi übergangsweise wie beim FabScan Cube ohne HAT mit einem Arduino und FabScan-Shield verbunden. Nach einigen Versuchen und Änderungen in der Konfigurationsdatei gelang es zunächst den Arduino anzusprechen und schließlich auch den Drehteller zu bewegen. Mit der Gewissheit, dass der Schrittmotortreiber noch funktionsfähig war konnte es weiter gehen.

Um für die Kameramontage keine neuen Löcher ins vorhandene Gehäuse bohren zu müssen, wurde bei thingiverse.com eine passende Halterung für die neue RaspiCam gesucht und  im Lab 3D-gedruckt. Leider musste auf Grund des Designs der Halterung die Kamera zunächst um 90° gedreht eingebaut werden, was die ordnungsgemäße Kalibrierung verhinderte. Auch ein softwareseitiges Drehen des Kamerabildes konnte auf Grund eines Softwarebugs nicht umgesetzt werden (der Entwickler war über die Rückmeldung sehr erfreut und nimmt sich einer Lösung in einem der nächsten Updates an). Durch einen glücklichen Zufall konnte aber auf der Slack-Support Seite der Designer der Halterung angesprochen werden, der uns innerhalb eines Tages ein um 90° gedrehtes Design der Kamerahalterung zur Verfügung stellte.

Und weil wir eh schon am 3D-Drucken waren haben wir auch gleich die inzwischen etwas wackelig gewordene Halterung für den Drehteller am Schrittmotor durch einen 3D-Druck ersetzt, der sich zudem mit einer kleinen Schraube an der Achse des Schrittmotors fixieren lässt.

Nachdem im Internet und im Slack-Channel überall zu lesen war, dass als Schrittmotortreiber der SilentStepStick gegenüber dem vom FabScanCube noch vorhandenen A4988 zu bevorzugen sei, wurde der SSS bestellt und kam zwei Tage später an. Der Treiber wurde sofort eingebaut, nach Anweisung des Entwicklers in der Software des Arduino die Variable für die Schrittweite geändert, das automatische Flashen ausgeschaltet und die Firmware manuell auf den Arduino geflasht. Als der SSS dann das erste Mal seiner Arbeit nachgehen durfte, war schnell klar welche Vorzüge er gegenüber dem A4988 er brachte: nach Einstellen der Strombegrenzung wurde der SSS während der Arbeit kaum warm und lief dank der softwareinterpolierten Schrittweiten außerordentlich ruhig und gleichmäßig, wohingegen beim A4988 jeder Einzelschritt deutlich zu hören und zu sehen war!Versuch1

Nach diesem erfreulichen Versuchsergebnis wurde ein neuer Versuch mit dem HAT unternommen. Die Konfigurationsdatei wurde zurück geändert, das automatische Flashen wieder eingeschaltet und der SSS auf den HAT gesteckt. Und siehe da, nun funktionierte alles wie es sollte!

Im nächsten Schritt musste der Scanner kalibriert werden, was er seit einer neueren Softwareversion auch selbstständig macht. Dazu wurde die Kalibrierungsschablone herunter geladen, ausgeschnitten und in die 3D-gedruckte Halterung gesteckt, die mittig auf dem Drehteller platziert wird. Der Rest verläuft nach einem Klick im Browserfenster von selbst. Im Anschluss wurden dann erste Scanversuche unternommen, um ein Gefühl zu bekommen, wie sich unterschiedliche Einstellungen der Werte für Threshold, Brightness, Resolution auf das Scanergebnis auswirken.

Versuch2Nach einem erfolgreichen Scan kann man die generierte Punktwolke dann entweder direkt auf einen externen Rechner zur Weiterverarbeitung herunter laden, oder die FabScanPi Software ruft intern das auf dem Raspberry Pi installierte Programm Meshlab auf, um aus der Punktwolke ein Netz zu berechnen, das dann bequem zur Weiterverarbeitung heruntergeladen werden kann.

Wolfgang Lormes
Letzte Artikel von Wolfgang Lormes (Alle anzeigen)
Kommentare sind geschlossen.