QQ4U goes Thingiverse

Im Rahmen meiner 3D Druck Experimente mit einem Ender 5 habe ich nun meine erste Kreation im MakerBot Thingiverse hochgeladen – vielleicht hat jemand anderes einen ähnlichen Bedarf seinen Fahrradrückspiegel verlängern zu müssen, weil er sich aufgrund der Gangschaltung nicht ausreichend weit außen montieren lässt, um gut nach hinten blicken zu können…

Designt wurde die Spiegelverlängerung für einen Hafny Fahrradrückspiegel mit FreeCAD. Zwar stellte ich immer mal wieder fest, dass meine Vorstellungen, wie das Programm sich verhalten sollte in der Realität an Fehlern oder auch Abstürzen scheiterten, aber letztlich ergab sich ein funktionierendes Modell. Es ist verbesserungsfähig, aber erfüllt vollkommen seinen Zweck im derzeitigen Praxistest.

https://www.thingiverse.com/qq4u/about

Und hier auch noch die zugehörige Mesh Datei fürs Slicen und Drucken…:

https://www.qq4u.de/3D/Hafnyextension3.stl

Erster Eindruck vom Ausdrucken

Ein Creality Ender 5 – Favorit der all3dp.com Redaktion zum 11.11. für knapp 40% günstiger, mit Lieferung aus Deutschland – warum dann nicht den günstigen Einstieg in den 3D-Druck wagen? Der gößte mediale Hype ums Drucken in 3D ist zwar vorüber, aber die Technologie hat sich etabliert, ist „da“ und wird genutzt. Mich genauer mit den einzelnen Verarbeitungsschritten zu beschäftigen, kann nicht schaden – vor allem praktisch.

Im Nu bin ich von einem ganzen Zoo voller neuer Begrifflichkeiten umgeben, die es einzusortieren gilt: 3D-Modellierung, Slicing, Filament, PLA, ABS, PETG und die jeweiligen Extruder- und Heizbetttemperaturen, Druckgeschwindigkeiten, Schichtdicke, Füllgrad, und und und..

Natürlich frage ich mich, welche Dinge ich sinnvoll ausdrucken könnte?! Ersatzteile für manches gebrochene kleine Plastikteil, welches ein Gerät ansonsten im Alltag unbenutzbar macht? Hält das denn? Welches Material? Kann der Drucker dies verarbeiten? Wo bekommt man ein Modell dafür her? (Es gibt u.a. ein Thingiversum der Dinge :-)) Und wenn es noch keine Druckanleitung gibt, wie erstelle ich mir selbst eine?

Vom eigenen Verkaufserfolg überrascht, wird der Drucker zwar schnell geliefert, aber das Druckzubehör (Filament) ist im Europalager ausgegangen, so muss ich noch warten. Der Zusammenbau gestaltet sich nicht so schwierig, da ich Jahrelange Erfahrung im Zusammenbau von Schwedenmöbeln gesammelt habe. Die Aluminiumprofile, Laufschienen und Schrittmotoren machen einen vernünftigen Eindruck, und die korrekte Interpration der Pictogramme der Anleitung bekomme ich erfolgreich hin. Bei der Kabelführung bzw. Befestigung mit Kabelbindern kommen mir Zweifel, ob da am richtigen Ende gespart wurde, aber nachdem alles verschraubt und verstöpselt ist und sich die Achsen reibungslos bewegen lassen, schalte ich für einen ersten Funktionstest ein. Läuft! Die Lüfter des Gerätes machen sich allerdings für ihre Größe sehr lautstark bemerkbar. Das schreit nach: Pimp your Printer.

Nun gilt es das Druckbett zu justieren: Extruder in Homeposition fahren lassen, Schrittmotoren X/Y entkoppeln und dann alle vier Ecken der Platte mit Stellschrauben so justieren, dass gerade eben ein Blatt Papier zwischen Extruderausgang und Druckplatte passt. Aufheizen und Filament in den Extruder fummeln, bis es ihm aus der Nase kommt.. Check. Und dann auf die Schnelle ein kleines Hundemodell von der Speicherkarte für den Ausdruck ausgewählt und: Go!

Der Drucker saust, surrt, jault und rauscht. Er steht auf dem Eßtisch ohne Unterlage und ist somit extralaut. Drei Stunden braucht es, bis der kleine Plastikhund Schicht um Schicht entstanden ist. Sieht gut aus, lässt sich gut von der Platte entfernen und auch das Bodenstück kann ich problemlos von der Figur ablösen und darunter kommt sogar ein kleines eingeprägtes Emblem zum Vorschein.

Ich bin zufrieden. Jetzt muss ich „nur“ noch meine Kreativität anschmeißen und versuchen meine Kunstobjekte aus der Gedankenwelt in digitale Modelle und passende Ausdrucke umzuwandeln. To be continued…

Wolkiges K-ubernete-s K8s

Devops. Back to the roots. Endlich wieder entwickeln und nicht nur verwalten. Doch nein, die Technologie ist so vorangeschritten, dass die Welt nun Kopf steht und die Wurzeln nun in der Wolke hängen. Cloud-Technologie nennt sich das Ganze nun, eine Abstraktion dafür, dass Computersysteme nun ganz easy, locker leicht sind und sogar ganze Container in der Wolke schweben. Da werden per Drag and Drop mal eben komplette Systemlandschaften verschoben, vollautomatisch und immer mit der ausreichenden Kapazität, die die Anwender für das performante Arbeiten benötigen. Das Management bekommt angesichts der makellosen Präsentation der Consultants feuchte Augen und will es auch. Es soll eine TEAM-Arbeit werden: Toll Ein Anderer Machts. Will man ein Anderer werden?

Natürlich sieht es in der Realität deutlich komplizierter aus und wahrscheinlich ist es besser, zu wissen, was man tut; zu verstehen, warum man etwas tut und was hinter den Kulissen geschieht, wenn man macht was man macht. Dazu braucht es allerdings ein gewisses technisches Verständnis, kein wissensbefreites Agieren.

Schnell gibt es ein Erfolgserlebnis in einem DevOps Seminar, man klickt und tippt und kombiniert und ja: es funktioniert. Doch bleibt aufgrund der begrenzten Zeit und der Vorarbeit des Seminaranbieters zwangsweise das meiste nebulös und es wird nur an der Oberfläche gekratzt. Der innere Skeptiker weiß: Es ist noch kein Meister vom Himmel gefallen, oder neuerdings in die Wolke aufgestiegen. Wie bringe ich mir ein Stück Wolke mit nach Hause? Wie bringe ich Kubernetes und Pods und Services und LoadBalancer (und natürlich eine schöne Applikation :-)) auf meinen Rechner und betreibe Terraforming und CI/CD in dessen CPUs?

Die Auswahl ist riesengroß, das Internetz ist voll von Blogs/Anleitungen und Beispielen. Doch schnell zeigt sich, dass die Indizierungsgeschwindigkeit der großen Suchmaschinen nicht mithält mit der technologischen Entwicklung. Wenn man sich nicht in der Komfortzone eines der großen kommerziellen Anbieter der Technik anketten will, sondern möglichst anhand frei verfügbarer Quellen und Technologien plattformübergreifend arbeiten möchte, dann funktioniert vieles…mostly…oder nicht mehr…oder bedarf des guggelns, lesens, schnippelns, versuchen, fluchen, erneut versuchen, anders versuchen, aufgeben, wechseln, jenes versuchen und dann manchmal auch feststellen, dass dieses oder jenes Projekt „deprecated“ ist, wie es so schön heißt. Oder verwaist, gleich einer verlassenen Hütte im Wald: man kann darin einziehen, aber mit Kosmopolitismus hat dies nichts zu tun, sondern man wird bald zum einsamen Gollum mit seinem „Schatz“. Proprietäre Legacy Technologie.

Erste Gehversuche mit Minikube. GIT. Zack Container läuft. Ein Webserver, NodeJS, PHP, eine Datenbank. Und TLS bekomme ich auch hin, obwohl hier wird es schon trickiger, denn aus Sicherheitsgründen haben auch die Webbrowser nicht mehr ausreichendends Vertrauen in die Verschlüsselung, die man selbst zertifiziert… Aber Webhosting, das ist ja noch nicht Wolke, das kennt man. Skalierung, automatisch: da wird es interessant.

Immerhin, viele Entwickler scheinen ebenfalls einen Mac zu haben, so dass sich mit der Suchmaschine schnell feststellen lässt, dass ich nicht der einzige Dumme auf der Welt bin, bei dem das einfache Beispiel einfach nicht mehr laufen will. Deprecated, legacy, neue Version, neues API – nicht komplett, aber eben anders. Und nicht mehr funktionial. Es stottert, es rappelt, stacktraced oder tut: nichts. Da finden sich dann die Kommentare, das Deployment zu modifizieren, um lokal (aber bitte nicht in Produktion!) unsicheres TLS zuzulassen. Check. Ins YAML eingefügt, und drauf geachtet, keine Tabs im Editor einzufügen und korrekt eingerückt zu haben, und dann auf der Shell in der Historie der Kommandos zurückblättern „Habe ich das passende Kommando nicht eben schon mal eingegeben?“ Und und und… Nach langem Hin und Her spuckt der Metrics-Server dann auch Metriken aus, das Dashboard zeigt bunte Grafiken an und der Horizontal Pod Autoscaler instantiiert entsprechend der zunehmend erzeugten unsinningen Last neue kleine virtuelle Arbeitsdrohnen und entlässt sie auch wieder nach Wegfall ihrer Daseinsberechtigung.

Hört sich das nach Buzzwordbingo an? Zu nerdig? Geradezu nebulös? Genau, Virtuelle Welt halt. Aber interessant. Und nicht nur für junge Leute, sondern auch fürJunggebliebene.

Wenn es läuft, werde ich demnächst hier weitere Erlebnisse und (momentan) funktionierende Beispiele veröffentlichen.

IoT: ESP8266

Das Problem: mehrere Pflanzen auf einem Balkon mit sehr unterschiedlichem Wasserbedarf und zu wenig Zeit angemessen zu gießen…

Als Lösung diente ursprünglich eine einfache Gardenia MicroDrip Variante, die täglich eine Minute die Pumpe anschaltete. Auch eine Verbesserung durch vorgeschaltete Schaltsteckdose sorgte zwar für mehrfache einminütige Bewässerung, aber eine Reaktion auf das Wetter war natürlich nicht möglich. Entweder zu trocken, oder zu feucht – die Pflanzen waren in Gefahr!

Die Lösung eine dynamische Bewässerungs-Steuerung. Ein hochinteressantes Bastelprojekt, um das Entwickeln und Programmieren nicht zu verlernen undsich mit IoT zu beschäftigen. Es gibt unglaubliche viele, mittlerweile für ganz kleines Geld (~1-2€ vor allem direkt aus China) verfügbare Komponenten!
Architektur:

  • ESP8266 Mikrokontroller mit Async WebServer
  • Wassertonne, 12V Wasserpumpen über Relais
  • Bodenfeuchtesensoren (resistiv – über A/D-Wandler)
  • I2C Sensoren
    • (Temperatur/Luftdruck)
    • A/D-Wandler (Bodenfeuchte/Helligkeit)
    • ToF Lasersensor für Wasserstand
  • LCD Display via I2C
  • 4×5 Keypad via I2C
  • Arduino IDE und Eclipse (Sloeber)

Hardware:
Selbstgeabute Relaissteuerung und Sensoren mit ESP8266 Mikrokontroller verkabelt und verlötet.

Software (Backend): Basierend auf einem OpenSource asynchronen Webserver wurden Abfrage- Anzeige- und Steuerungsroutinen in der Arduino-IDE (in C) implementiert. Diese legen die Messdaten als Dateien im JSON-Format auf dem Mikrokontroller ab. Aus dem Internet erreichbar war der Mikrokontroller nur indirekt via VPN Verbindung ins heimische WLAN.

Software (Frontend): Dynamische HTML-Seiten mit CSS und Javascript. Vom Browser werden über via XML-HTTPRequest die JSON Dateien abgeholt und angezeigt. Sowohl aktuelle Daten, als auch ein historischer Zeitverlauf werden angezeigt. Über Adminseiten kann die Konfiguration des Systems angepasst werden (z.B. Pumpen deaktivieren)

Hier ist die fast originale Frontend-Variante eingebettet, mit dynamischer Werte Anzeige, aber natürlich ohne System-Steuerung, denn die gibt es auf diesem Webhosting nicht. Für die nächste Saison plane ich das Projekt wieder aufzunehmen und zu verbessern und evtl. auf ESP32 Mikrokontroller umzustellen.