{"id":734,"date":"2017-07-15T15:28:51","date_gmt":"2017-07-15T14:28:51","guid":{"rendered":"http:\/\/mgf-lab.mgf-kulmbach.de\/?p=734"},"modified":"2018-09-01T13:14:22","modified_gmt":"2018-09-01T11:14:22","slug":"upgrade-laserlinienscanner","status":"publish","type":"post","link":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/2017\/07\/15\/upgrade-laserlinienscanner\/","title":{"rendered":"Upgrade Laserlinienscanner"},"content":{"rendered":"<p style=\"text-align: justify;\">Seit Anbeginn haben wir in unserem MGF-Lab einen <a href=\"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/ausstattung\/3d-scanner\/\" target=\"_blank\">FabScan Cube<\/a> Laserlinienscanner. Und obwohl der Scanner prinzipiell immer schon gute Scanergebnisse hervorbrachte fristete er doch ein Schattendasein in unserem Ger\u00e4tepark. 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 <a href=\"http:\/\/mariolukas.github.io\/FabScanPi-Server\" target=\"_blank\">FabScanPi<\/a>, das am Ende dieses Schuljahres in Angriff genommen wurde.<!--more--><\/p>\n<p style=\"text-align: justify;\">Der gro\u00dfe 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.<\/p>\n<p style=\"text-align: justify;\">Hierzu hat der Entwickler Mario Lukas ein Image f\u00fcr den Raspberry Pi ver\u00f6ffentlicht, 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\u00e4sst.<\/p>\n<p style=\"text-align: justify;\">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.<\/p>\n<p style=\"text-align: justify;\">Da aus Latenzgr\u00fcnden 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\u00fcr den Raspberry Pi entworfen, eine Aufsteckplatine mit integriertem Arduino und allen ben\u00f6tigten 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.<\/p>\n<p style=\"text-align: justify;\">Bei unserem Umbau ergaben sich zun\u00e4chst mehrere Probleme, die aber allesamt mit Hilfe des Live-Support Channels des Entwicklers unter slack.com gel\u00f6st werden konnten. So lie\u00df sich bei der ersten Inbetriebnahme der Schrittmotor f\u00fcr den Drehteller nicht dazu \u00fcberreden sich zu drehen. Um die Frage zu beantworten ob der Schrittmotortreiber A4988 oder der HAT defekt ist, wurde der Raspberry Pi \u00fcbergangsweise wie beim FabScan Cube ohne HAT mit einem Arduino und FabScan-Shield verbunden. Nach einigen Versuchen und \u00c4nderungen in der Konfigurationsdatei gelang es zun\u00e4chst den Arduino anzusprechen und schlie\u00dflich auch den Drehteller zu bewegen. Mit der Gewissheit, dass der Schrittmotortreiber noch funktionsf\u00e4hig war konnte es weiter gehen.<\/p>\n<p style=\"text-align: justify;\">Um f\u00fcr die Kameramontage keine neuen L\u00f6cher ins vorhandene Geh\u00e4use bohren zu m\u00fcssen, wurde bei thingiverse.com eine <a href=\"https:\/\/www.thingiverse.com\/thing:1544588\" target=\"_blank\">passende Halterung<\/a> f\u00fcr die neue RaspiCam gesucht und\u00a0 im Lab 3D-gedruckt. Leider musste auf Grund des Designs der Halterung die Kamera zun\u00e4chst um 90\u00b0 gedreht eingebaut werden, was die ordnungsgem\u00e4\u00dfe Kalibrierung verhinderte. Auch ein softwareseitiges Drehen des Kamerabildes konnte auf Grund eines Softwarebugs nicht umgesetzt werden (der Entwickler war \u00fcber die R\u00fcckmeldung sehr erfreut und nimmt sich einer L\u00f6sung in einem der n\u00e4chsten Updates an). Durch einen gl\u00fccklichen Zufall konnte aber auf der Slack-Support Seite der Designer der Halterung angesprochen werden, der uns innerhalb eines Tages ein um 90\u00b0 gedrehtes Design der Kamerahalterung zur Verf\u00fcgung stellte.<\/p>\n<p style=\"text-align: justify;\">Und weil wir eh schon am 3D-Drucken waren haben wir auch gleich die inzwischen etwas wackelig gewordene <a href=\"https:\/\/www.thingiverse.com\/thing:20043\" target=\"_blank\">Halterung f\u00fcr den Drehteller<\/a> am Schrittmotor durch einen 3D-Druck ersetzt, der sich zudem mit einer kleinen Schraube an der Achse des Schrittmotors fixieren l\u00e4sst.<\/p>\n<p style=\"text-align: justify;\">Nachdem im Internet und im Slack-Channel \u00fcberall zu lesen war, dass als Schrittmotortreiber der SilentStepStick gegen\u00fcber dem vom FabScanCube noch vorhandenen A4988 zu bevorzugen sei, wurde der SSS bestellt und kam zwei Tage sp\u00e4ter an. Der Treiber wurde sofort eingebaut, nach Anweisung des Entwicklers in der Software des Arduino die Variable f\u00fcr die Schrittweite ge\u00e4ndert, 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\u00fcge er gegen\u00fcber dem A4988 er brachte: nach Einstellen der Strombegrenzung wurde der SSS w\u00e4hrend der Arbeit kaum warm und lief dank der softwareinterpolierten Schrittweiten au\u00dferordentlich ruhig und gleichm\u00e4\u00dfig, wohingegen beim A4988 jeder Einzelschritt deutlich zu h\u00f6ren und zu sehen war!<img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-745 alignright\" src=\"https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch1-300x225.jpg\" alt=\"Versuch1\" width=\"300\" height=\"225\" srcset=\"https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch1-300x225.jpg 300w, https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch1-400x300.jpg 400w, https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch1.jpg 480w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: justify;\">Nach diesem erfreulichen Versuchsergebnis wurde ein neuer Versuch mit dem HAT unternommen. Die Konfigurationsdatei wurde zur\u00fcck ge\u00e4ndert, das automatische Flashen wieder eingeschaltet und der SSS auf den HAT gesteckt. Und siehe da, nun funktionierte alles wie es sollte!<\/p>\n<p style=\"text-align: justify;\">Im n\u00e4chsten Schritt musste der Scanner kalibriert werden, was er seit einer neueren Softwareversion auch selbstst\u00e4ndig macht. Dazu wurde die <a href=\"https:\/\/github.com\/mariolukas\/FabScan-Case\/blob\/master\/calibration\/chessboard-pattern_8x6.pdf\" target=\"_blank\">Kalibrierungsschablone<\/a> herunter geladen, ausgeschnitten und in die <a href=\"https:\/\/www.thingiverse.com\/thing:2412289\" target=\"_blank\">3D-gedruckte Halterung<\/a> gesteckt, die mittig auf dem Drehteller platziert wird. Der Rest verl\u00e4uft nach einem Klick im Browserfenster von selbst. Im Anschluss wurden dann erste Scanversuche unternommen, um ein Gef\u00fchl zu bekommen, wie sich unterschiedliche Einstellungen der Werte f\u00fcr Threshold, Brightness, Resolution auf das Scanergebnis auswirken.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-744 alignleft\" src=\"https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch2-300x225.jpg\" alt=\"Versuch2\" width=\"300\" height=\"225\" srcset=\"https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch2-300x225.jpg 300w, https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch2-400x300.jpg 400w, https:\/\/mgf-lab.mgf-kulmbach.de\/wp-content\/uploads\/2017\/07\/Versuch2.jpg 480w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Nach 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e4tepark. 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.<\/p>\n","protected":false},"author":1,"featured_media":745,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[18],"tags":[],"_links":{"self":[{"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/posts\/734"}],"collection":[{"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/comments?post=734"}],"version-history":[{"count":18,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/posts\/734\/revisions"}],"predecessor-version":[{"id":1219,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/posts\/734\/revisions\/1219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/media\/745"}],"wp:attachment":[{"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/media?parent=734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/categories?post=734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mgf-lab.mgf-kulmbach.de\/index.php\/wp-json\/wp\/v2\/tags?post=734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}