Alle Beiträge von Ronnie Soak

Hat viel zu wenig Zeit für 3D Druck, Python- und C++ Programmierung, Openstreetmap und amateurhaftes Elektronikgefrickel. Ist dafür jetzt nach erfolgreichem fork ein Elternprozess.

Kinder MP3-Player

EinzelteileEin weiteres Projekt momentan in Bearbeitung ist ein Kinder MP3-Player für meinen Sohn.

Inspiration ist der „hörbert„,  ein Holz-Kofferradio, das im inneren von SD-Karte MP3s abspielt und von außen mit bunten Knöpfen gesteuert werden kann. Der „hörbert“ kann auch als Bausatz gekauft werden, ist aber auch da noch ordentlich teuer.

„Wie kompliziert kann es schon sein?“ war schon der Anfang von vielen vorfristigen Enden. Kinder MP3-Player weiterlesen

Roomba Projekt

Es gilt die Webseite  und andere Kanäle mit mehr Leben zu füllen. Deshalb hier ein kleiner Einblick in die laufenden Projekte.

Zu meinen Füßen fährt und saugt seit einiger Zeit ein Roomba Saugroboter, dessen offene Schnittstelle zum Basteln einlädt. Entferntes Ziel soll sein, irgend wann einmal aus der Ferne (vie VPN natürlich) auf den Roomba zuzugreifen und ihn als eine Art Telepräsenzroboter zu nutzen.

Momentan finden folgende Komponenten Verwendung:

  • RaspberryPi (Steuerung + Webserver)
  • Ein 3.3V – 5.0V bidirektionaler Spannungswandler
  • eine standard RasPi Kamera (ohne IR Filter. Es ist dunkel unterm Sofa.)
  • ein USB-WLAN Stick

Die Einrichtung des Webservers und einer Web-Steuerung der Kamera war problemlos, da alles als vorgefertigte Pakete verfügbar. Die Elektronik ist noch fliegend auf einem Breadboard verkabelt, funktioniert jedoch bereits. Die explizit für serielle Kommunikation vorgesehenen RX/TX Pins des Raspberries wurden über den Spannungswandler mit der SCI-Schnittstelle des Roomba verbunden. Die Spannungsversorgung sowohl der 3.3V als auch der 5V Schiene des Spannungswandlers kommt dabei vom RasPi.

Der RasPi legt die Rx/Tx Pins dankenswerter Weise auf /dev/ttyAMA0, was das Einrichten der seriellen Verbindung einfach macht. Ich nutze Python (Dank an mkzero und seinen Python-for-RasPi-Kurs) und das ’serial‘ package. Die Schnittstelle ist vom Hersteller dokumentiert (Link auf pdf) und erlaubt den Zugriff auf alle Aktoren und Sensoren, nicht jedoch auf die originale Firmware inkl. dem Reinigungsalgorithmus.

Eine vollständige Python-Bibliothek zur Ansteuerung habe ich nicht gefunden. Diese auf GitHub deckt jedoch die Basisfunktionen ab. Vielleicht kann ich dort etwas beitragen.

Hier die erste Kontaktaufnahme mit dem Roomba. (Audio an!)

Kalibrieren geht vor Probieren

temp_calibNachdem der letzte Druckversuch eher als gescheitert betrachtet werden kann, ging es am Mittwoch wieder einen Schritt zurück vom Produktionsdruck zur Kalibrierung.

Zwei Faktoren missfallen noch am Druck: Flächen schließen nicht sauber und Konturen reißen manchmal ab. Beides setzt sich dann in weiteren Schichten fort und zerstört dann das Objekt.

Um der Sache Herr zu werden soll erst einmal die perfekte Drucktemperatur für unser Material bestimmt werden. Dazu habe ich ein einfaches, 12cm hohes, nur-kontur Objekt mit geraden, geschwungenen, spitzen und runden Kanten entworfen.

Der Slicer wurde auf mittlerer Qualität (150um) eingestellt und das erzeugte .gcode File mit einem Python-Skript derart nachbearbeitet, dass von unten nach oben die Drucktemperatur kontinuierlich von 190 – 210degC zunimmt. Damit sollte am Ergebnis eine Beurteilung der Oberfläche und Druckqualität möglich sein.

Leider brach der Druck nach ca. 4cm ab, da sich das Objekt vom Tisch lösten (Nächstes mal mit ‚Brim‘ drucken!). Aber schon hier sah meine eine ausreichende Qualität bei ca. 192degC. Kältere Temperaturen führten zu ausgebrochenen Spitzen, wärmere zu leichten Wellen auf sonst IMG_6904geraden Flächen.

Die Tests werden beim nächsten mal für 194degC+ fortgeführt und auch die Druckgeschwindigkeit wird noch kalibriert werden.

Heimdruck in 3D

Letztens durfte ich eines der tollen Mitglieds-Features des Bytespeichers nutzen: die Entleihung von Werkzeug zum heimischen Gebrauch. (Ja, ich hab vorher mal beim Vorstand nachgefragt. Das gilt auch für komplexe Werkzeuge wie den 3D-Drucker.)

Damit war es auch mit meiner momentan begrenzten Zeit möglich, wieder etwas mehr Wissen um den 3D-Druck aufzubauen ud nebenbei auch noch einige Auftragswerke zu drucken.

Hauptsächlich sollte es um eine nötige (?) Kalibrierung der Druckparameter gehen.  Dazu wurde erst einmal die Firmware im Drucker durch eine neuer Version ersetzt (jetzt Marlin 1.0) und sich dabei gleich mal mit den dazu nötigen Konfigurationen beschäftigt. Die Ergebnisse finden sich jetzt auf der Projektseite im Wiki.

Heimdruck in 3D weiterlesen

Druckfehler und neue Methoden

Erneut hat sich beim Druck meines GoPro-GorillaPod-Adapters das Filament im Extruder verklemmt und der Druck brach damit bei ca. 85% ab. Sch@%&#!

Aber diesmal hatte es auch etwas Gutes: Ich konnte das Vorgehen das geplanten repetierHost-Plugins zum Fortsetzen von abgebrochenen Drucken testen. Arbeitstitel ist „ResumePrint“.

Hier das (noch manuelle) HowTo, auch für mich als Gedächtnisstütze.

  1. Objekt platzieren, mit Magneten fixieren (entfällt, wenn noch fest)
  2. Objekt mit Feile sauber und vorsichtig von Druckresten befreien und Oberfäche planieren (seeehr vorsichtig, sonst goto 1.)
  3. Druckkopf manuell über dem Objekt platzieren
  4. Manuell Düse absenken, bis der Papiertest greift. Z-Koordinate notieren.
  5. Im GCode den Beginn der Layer suchen, die im ersten Befehl auf die Z-Koordinate fährt, die am knappesten über dem notierten Z-Wert liegt. Layernummer notieren. Position im GCode merken. Letzten Extruderwert der vorherigen Layer notieren. X/Y/Z-Koordinate des ersten Go-Befehls notieren.
  6. Im GCode alles zwischen Layer 1 (inkl. Brim/Skirt/Raft) und gefundener Stelle Löschen.
  7. Vor der neuen Layer einen Goto-Befehl nach X.00 Y0.00 Z<Z-Wert + 10> einfügen. Fährt im Ursprung hoch genug, um freien Fahrweg zu haben.
  8. Vor der neuen Layer Extruderwert rücksetzen (G92 E<Extruderwert>). Nur nötig bei der standardmäßig verwendeten absoluten Extruderangaben.
  9. Layerpreview auf die neue, erste Layer setzen. Ersten Fahrpunkt suchen (dazu Fahrwege einblenden, Ende der Linie, die vom Ursprung zum Objekt kommt.) Manuell auf die notierten X/Y-Koordinaten fahren.
  10. Objekt feinausrichten anhand Düsenposition und Preview (entfällt, wenn noch fest)
  11. Bei Bedarf 9. & 10. mit z.B. erstem Punkt der nächsten Layer wiederholen, um an weiterem Punkt auszurichten.
  12. Druck starten.

So, jetzt muss dieser Arbeitsablauf nur noch in das Plugin gegossen werden.