Freitag, 2. Januar 2015

NASA - 3D Druck - Knarre - was steckt im Inneren?

Beim letzten Versorgungsflug zur Internationalen Raumstation war auch ein 3D Drucker mit in der Ladung. Inzwischen ist er eingebaut und absolviert die ersten Testdrucke. Leider hält sich die NASA nicht an die etablierten Standards der Reprap Community. Man druckt erst einmal einen 10mm x 10mm x 10mm Würfel, dann einen Yoda, vielleicht noch eine Vase. Dieses Döschen gehört keinesfalls zu den anerkannten Testobjekten! ;-))

Eines der Testobjekte ist eine funktionsfähige Knarre / Ratsche von der die NASA auch die 3D Datei veröffentlicht hat:

Und tatsächlich - die Ratsche wird an einem Stück gedruckt (Schichthöhe 0,2mm) und lässt sich nach ein wenig herumwackeln verwenden. Leider sperrt die Ratsche nur in einer Richtung - sie ist nicht umschaltbar. In der Community machte sich auch ein breites hämisches Grinsen breit, weil es die NASA offensichtlich noch immer nicht geschafft hat, auf das metrische System umzustellen. Es ist schwierig, sich 3 in-lb als Drehmoment in Nm vorzustellen. Es sind 0,34 Nm.

Nun, was steckt im Innern dieser Ratsche? Man zerlege die .STL-Datei und erhält 3 einzelne Objekte:

  • die Knarre bzw. das Knarrengehäuse


  • ein Sperrrad


  •  eine Sperrklinke

Das Ratschengehäuse habe dann auch noch in zwei Hälften geteilt, damit man auch reinsehen kann:


Und so wird's dann gedruckt:

Und wenn's fertig ist, sieht das dann so aus:










Donnerstag, 1. Januar 2015

Gehäuse für einen Transistortester

Als Elektronikbastler hat man nach ein paar Jahren eine beachtliche Anzahl an elektronischen Bauelementen in seinen Vorräten. Um schnell herauszubekommen welches Bauteil man vor sich hat und vor allem wie es mit den wichtigsten Werten dieses Bauteils aussieht, ist üblicherweise ein Multimeter das geeignete Messinstrument. Es hat aber so seine Grenzen. Da passte es gut, daß in der Folge 147 des "Computer Club 2" Wolfgang Rudolf zwei Komponententester vorstellte:


Der Funktionsumfang ist beachtlich. Die Entwicklung findet in Deutschland statt - Hardware als auch Software und ab und zu gibt es eine Sammelbestellung für die Bauteile und Platinen. Findige Chinesen jedoch, bieten diesen Komponententester als Fertiggerät an. Ebay listet jede Menge Treffer, wenn man nach "Transistortester" sucht. Es gibt sie in diversen Ausprägungen und Größen. Teils mit Gehäuse, die meisten kommen ohne. Ich habe mir für 20€ (incl. Verssand) einen mit graphischen Display bestellt und vor kurzem erhalten:

Er funktioniert wunderbar! Hat aber, wie das Pollin Display auch, alle Kontakte offen und ist so eigentlich nicht zu benutzen. Diesesmal wurde ich auch weder bei Heise, noch bei Thingiverse fündig nach einem fertigen Gehäuse zum Selberdrucken. Also wird halt eines konstruiert.

Der erste Prototyp hatte natürlich jede Menge Fehler:









Das Loch für den Batterieclip war zu klein, die Position zweier Löcher passte um 1mm nicht, hier zu niedrig, dort zu kurz ... aber nach 3 Iterationen ließ es sich tatsächlich zuschrauben.



Es besteht aus drei Teilen:
  • Eine Grundplatte, auf der die Platine festgeschraubt wird. Unter dem Display ist Platz für die 9V Blockbatterie. Das Kabel mit dem Batterieclip schiebt man einfach durch die Aussparung durch. Die Platine ruht auf 2mm hohen Ständern, so daß es auf der Lötseite genug Platz hat.Vorn hält eine M3x8 Schraube mit Mutter die Platine fest.
 
  • Ein Batteriefachdeckel war notwendig, weil ich einerseits bei einem Batteriewechsel nicht alles auseinandernehmen wollte, andererseits die 9V Blockbatterie zu dick war, als daß sie ganz unter die Displayerhöhung hätte Platz finden können. Ich wollte hier auch unbedingt etwas rundes haben. So hab ich mit diversen Zylindergrößen experimentiert, solange, bis es mir gefallen hat. Aktuell hat der verwendete Zylinderabschnitt einen Durchmaesser von 70mm. Schöner Nebeneffekt - das Display lässt sich so auch besser ablesen. Auch hier kommen M3 Schrauben zum Einsatz. Die 3mm Bohrungen ermöglichen es der Schraube, sich ein Gewinde selbst zu schneiden. Man darf die Schrauben nur nicht überdrehen, dann hält das sehr gut zusammen.
 


  • Der Deckel für das Display ist kürzer als die Grundplatte, weil der vordere Teil des Testers frei bleiben muß für das Testobjekt.





Und so sieht das fertige Gehäuse in Faberdashery's Electric Blue aus:


Alles Nötige zum Nachdrucken habe ich auf Youmagine veröffentlicht. Dort findet man auch die OpenSCAD-Quelldatei sowie ein PDF mit den Bemaßten Zeichnungen.

Have Fun!

Dienstag, 30. Dezember 2014

Gehäuse für ein 7" (1024x600 Pixel) Pollin Display

Vor kurzem habe ich während des Schnäppchenmarkts bei Pollin ein Display erworben. Für 43€ bekommt man ein 1024x600 Pixel Display mit VGA, HDMI, DVI und Video Eingang. Für 55€ bekommt man zusätzlich  noch eine Touchfunktion mit dazu:

Eine extra Platine hält die Bedientasten zur Auswahl der Videoquelle, zur Bedienung des Menüs etc.






Dieses Display ist im Lieferzustand nicht gut einsetzbar. Überall sind offene Kontakte und das Folienkabel hält sicher auch nicht alles an mechanischer Belastung aus. Es muss also ein Gehäuse her. Pollin liefert erfreulicherweise die nötigen Daten in Form eines Datenblatts mit Zeichnung.

Noch während ich am überlegen war, wie das Gehäuse aussehen soll, erinnerte ich mich an eine Artikelserie in c't Hacks 3/2014. Dort behandeln drei Artikel das allgemeine Bauen von Gehäusen.

Die Serie startet auf Seite 58 und behandelt Gehäuse aus Alu-Strangprofilen. Auf Seite 64 geht es weiter mit dem Umbau eines Fliesenschneiders zur Tischkreissäge. Der letzte Artikel startet auf Seite 68 behandelt den Gehäusebau mittels CAD-Software und einem 3D Drucker.

Überraschenderweise wird im letzten Artikel exakt das Pollin Display eingehaust! Auf 10 Seiten werden die Grundlagen von Tinkercad vermittelt und dabei schrittweise ein dreiteiliges Gehäuse konstruiert. Alle weiteren Informationen und die nötigen Dateien gibt es hier.

Nach dem Drucken und Einbauen sieht das so aus:





Es erfüllt seinen Zweck. Mir persönlich sind die Gehäusewände mit einem Millimeter zu dünn und die Buchsen für die Schrauben sind mit einer Wandstärke von 1,25mm ungeeignet. Beim Eindrehen der Schrauben sind sie mir im oberen Bereich gebrochen. Höchstwahrscheinlich deshalb, weil ich keine selbstschneidenden Schrauben von einem ausgeschlachteten PC benutzt habe, so wie es der Autor empfiehlt. Ich habe M3 Schrauben benutzt.

Es gibt noch eine weiteres Gehäuse - auf Thingiverse mit abgerundeten Kanten. Auch hier gibt es neben den .stl Dateien die Quelldatei für Sketchup um selbst Veränderungen vorzunehmen:











Montag, 22. Dezember 2014

Fake Drucker-Elektronik

Zugegeben, die Überschrift soll absichtlich verwirren. ;-)) Was ist eine "Fake Drucker-Elektronik"? Gleich mehr dazu ... 

Vor ein paar Wochen hatte ich das Bedürfnis, ein paar Experimente mit der Firmware meines 3D Druckers durchzuführen. Allerdings wollte ich weder auf das Drucken verzichten, noch am gut eingestellten Gerät Veränderungen vornehmen. Zum Drucken verwende ich eine von nophead angepasste Version von Marlin. Die ist inzwischen ziemlich veraltet, was ich während der Experimente mit dem Grafik-LCD spüren musste. Aber auch die im Reprap-Forum gepflegte aktuellere Version hat so ihre Tücken. 

Ein weiterer Bestandteil meines 3D-Drucker-Setups, der immer wieder aktualisiert werden sollte, ist OctoPi (ein für Raspberry Pi angepasstes Image von Octoprint). In letzter Zeit gab es auch beim Raspberry ein paar Ergänzungen, die ich gerne ausprobieren will, wie z.B. ein 7" HD-Display von Pollin, eine Bluetooth Tastatur, ein 4" Touch-Display und eine Verlängerung für das 4" Touch-Display.

Einen zweiten Drucker anzuschaffen wäre eine Lösung gewesen, aber ziemlich teuer. Weitere Überlegungen brachten mich zum Schluss, dass man auf Einiges an der Druckerhardware verzichten kann, wenn man nur ein paar Experimente macht. Die Elemente, die weggelassen werden, können durch viel einfachere Komponenten ersetzt werden:

  • Die 4 Schrittmotoren an den Achsen werden durch 6 grüne LEDs ersetzt. Je eine pro Drehrichtung. Für den Extruder verwende ich blaue LEDs.
  • Die beiden Heizungen (Hotend / Heizbett) werden durch rote LEDs symbolisiert.
  • Die beiden Thermistoren (Hotend / Heizbett) werden durch Potis ersetzt.
  • Die drei Endstopschalter werden durch öffnende Drucktaster ersetzt.
  • Anstelle des RAMPS' kommt eine selbst gelötete Protoshield-Platine zum Einsatz
Letztlich bleibt als Original-Elektronik nur der Arduiuno-Mega übrig.

Die Schrittmotortreiber bekommen an ihren Anschlüssen STEP und DIR die nötigen Signale vom µC; über Logikgatter werden 2 LEDs die jeweilige Richtung anzeigen. Wenn DIR auf HIGH gesetzt ist läuft der Motor in die eine, bei LOW in die andere Richtung: 
  • DIR ∧ STEP = Richtung_1 
  • DIR ∧ STEP = Richtung_2
Je nachdem wie weit ein Motor laufen soll, werden entsprechend viele Impulse an STEP gegeben. Leider sind die Impulse zu kurz, als dass man die LED leuchten sieht. Ein sehr schwaches glimmen ist sichtbar. Es gibt zwar auch einen elektronischen Weg (monostabile Kippstufe, Monoflop, mglw. auch mit einem RC-Glied), diese Impulse so zu verlängern, damit man sie sehen kann - ich habe mich wegen dem geringerem Aufwand entschieden, die Firmware des µC entsprechend zu ändern. Bei der Marlin-Firmware muss man in der Datei stepper.cpp die nötigen Änderungen vornehmen. Innerhalb der ISR() wird jeweils das Löschen des Bits verhindert (//WRITE(X_STEP_PIN, LOW);) und am Ende der Funktion nach einem delayMicroseconds(100); nachgeholt:

 // "The Stepper Driver Interrupt" - This timer 
 // interrupt is the workhorse.
 // It pops blocks from the block_buffer and executes

 // them by pulsing the stepper pins appropriately.
ISR(TIMER1_COMPA_vect)
...
     counter_x += current_block->steps_x;
     if (counter_x > 0) {
       WRITE(X_STEP_PIN, HIGH);
       counter_x -= current_block->step_event_count;
       //WRITE(X_STEP_PIN, LOW);
       count_position[X_AXIS]+=count_direction[X_AXIS]; 
     }

     counter_y += current_block->steps_y;
     if (counter_y > 0) {
       WRITE(Y_STEP_PIN, HIGH);
       counter_y -= current_block->step_event_count;
       //WRITE(Y_STEP_PIN, LOW);
       count_position[Y_AXIS]+=count_direction[Y_AXIS];
     }

     counter_z += current_block->steps_z;
     if (counter_z > 0) {
       WRITE(Z_STEP_PIN, HIGH);
       counter_z -= current_block->step_event_count;
       //WRITE(Z_STEP_PIN, LOW);
       count_position[Z_AXIS]+=count_direction[Z_AXIS];
     }

     #ifndef ADVANCE
       counter_e += current_block->steps_e;
       if (counter_e > 0) {
         WRITE_E_STEP(HIGH);
         counter_e -= current_block->step_event_count;
         //WRITE_E_STEP(LOW);
         count_position[E_AXIS]+=count_direction[E_AXIS];
       }
     #endif //!ADVANCE
     step_events_completed += 1;
     if(step_events_completed >= current_block->step_event_count) break;
   }

   delayMicroseconds(100);
   WRITE(X_STEP_PIN, LOW);
   WRITE(Y_STEP_PIN, LOW);
   WRITE(Z_STEP_PIN, LOW);
   WRITE_E_STEP(LOW);

   // Calculare new timer value


Jeweils eine rote LED mit passendem Vorwiderstand simulieren die Heizungen. Man sieht sehr schön am blinken der LEDs, wenn die Regelung einsetzt. Am Oszilloskop ist die Veränderung des Puls- / Pausenverhältnisses noch besser zu sehen. Hier wird keine weitere Elektronik benötigt.

Jeweils ein 10kΩ Poti sorgt für die Rückmeldung einer "Temperatur". Dabei ist das Poti mit VCC und GND verbunden, der Schleifkontakt geht zurück zum µC. Damit man einen Temperaturbereich von 0°C bis 300°C simulieren kann, ist es nötig, die verwendete Thermistorentabelle in thermistortables.h zu verändern. Ich habe mit diesen Werten gute Ergebnisse erzielt:

 #if (THERMISTORHEATER_0 == 4) || (THERMISTORHEATER_1 == 4) || (THERMISTORHEATER_2 == 4) || (THERMISTORBED == 4) //10k thermistor
const short temptable_4[][2] PROGMEM = {
  {1*OVERSAMPLENR, 300},
  {100*OVERSAMPLENR, 270},
  {200*OVERSAMPLENR, 240},
  {300*OVERSAMPLENR, 210},
  {400*OVERSAMPLENR, 180},
  {500*OVERSAMPLENR, 150},
  {600*OVERSAMPLENR, 120},
  {700*OVERSAMPLENR, 90},
  {800*OVERSAMPLENR, 60},
  {900*OVERSAMPLENR, 30},
  {1000*OVERSAMPLENR, 0}
};
#endif


Am Ende sieht das dann so aus:

Was jetzt noch fehlt, ist ein Gehäuse:

 Und so sieht es aus, wenn man etwas auf dem Fake-Drucker ausdruckt:








Zu Weihnachten muss ein Baum her!


Weihnachten ohne Baum ist kein Weihnachten. Leider gibt's im Wohnzimmer fast keinen Platz um einen Baum aufzustellen. Und so ein mickriger wie zuletzt kommt mir nicht mehr in die Bude. Die Wohnung ist auch ziemlich warm, dank unserer Nachbarn. Da halten die Nadeln eh nicht lange am Baum.

Deshalb habe ich mich schon letztes Jahr entschieden, mal was ganz anderes auszuprobieren: Einen gedruckten Baum. Der sah so aus:



Jede Ebene besteht aus einem Druckteil. Man kann auch weniger Ebenen drucken, dann wird der Baum kleiner. Die Druckdateien zu diesem Baum gibt's bei Thingiverse. Ich habe diesen Baum mit Faberdasherys Village Green gedruckt. Ich habe 3,25m Filament (3mm) benötigt. Leider passen die Teile nicht gut ineinander. Zwischen den Ebenen ist soviel Spiel, dass der Baum ziemlich wackelt. Ich habe die Teile schließlich zusammengeklebt. Das hat zumindest bis Dreikönig funktioniert.

Dieses Jahr musste natürlich ein anderer Baum her. Ich bin wieder auf Thingiverse fündig geworden. Auch dieser Baum besteht aus mehreren Einzelteilen:


Der Stamm ist wieder mit Village Green gedruckt, der Stern auf der Spitze mit Bling Bling Gold und die restlichen Teile mit Arctic White. Leider ist mir beim obersten Stück die Farbe ausgegangen. Deshalb musste Architect's Stone aushelfen.



Für dem Stamm benötigt man 2,6m, für den Stern 40cm und für die weißen Teile 14,2m Filament (3mm). Die weißen Teile habe ich auf dem Kopf stehend gedruckt. Mit den leichten Überhängen wurde mein Drucker spielkend fertig. Durch das ineinanderstecken ist der Baum von selbst stabil. Da wackelt nichts und es muss auch nichts geklebt werden. 

Fröhliche Weihnachten!






Samstag, 25. Oktober 2014

Ordnung auf dem Schreibtisch!

Im April habe ich für Peter einen etwas außergewöhnlichen Stiftehalter ausgedruckt. Die Form erinnert an etwas organisches:

Natürlich musste ich auch etwas für den Schreibtisch seiner Iris drucken. Da kam es sehr gelegen, dass Richard Horne auf Youmagine eine ganze Kollektion zum Aufräumen seiner Utensilien veröffentlichte. Herausgekommen ist das hier:

 Eigentlich hätte "Greenery Green" für die "Square Slope Section" ausreichen müssen ... mit den letzten Layern in "Classic Black" sieht das aber fast noch besser aus.


"Middle Section" in "Firetruck Red"


 "Ruler Section" in "Mellow Yellow"


 Noch eine "Middle Section" - diesmal in "Squeezed Orange"


 "Right Side Section" in "Desert Tan"


 "Curved Section" in "Bling Bling Gold", "Square Section" in "Bloomsbury Teal"


 "Front Section" mit USB / SD / CF Aufnahmen in "Space Marine" 

Wie man sieht, sind das Puzzleteile, die man nahezu beliebig aneinander positonieren kann. Ich habe die Zapfen von allen Teilen etwas abgeschliffen, so dass die Teile leichter ineinandergleiten. Insgesamt wurden für das Projekt fast 90m Filament verbraucht:

Bauteil Farbe Länge in m
Curved Section Bling Bling Gold 6,58
Front Section Space Marine 6,61
Middle Section Squeezed Orange 14,63
Right Side Section Desert Tan 19,56
Ruler Section Mellow Yellow 11,16
Square Section Bloomsbury Teal 5,68
Square Slope Section Greenery Green 10,44
Middle Section Firetruck Red 14,63

Leider konnte ich an Iris' Geburtstag nicht mit dabei sein, so dass im folgenden die Bilder der Anwesenden ausreichen müssen:





Ich hoffe, dass ich noch Bilder vom Schreibtisch und den befüllten Behältern bekomme.

Dienstag, 9. September 2014

Geschenke!


Ende August hatte ich Kontakt mit einem Reprapper aus dem Reprap-IRC. Er benötigte dringend eine Umwandlung von .dwg Dateien in .stl. Ich bot an, ihm zu helfen und er solle mir die Dateien zumailen. Ich dachte mir, ein OpenSCAD Zweizeiler erledigt das dann schon:

linear_extrude(height=hoehe, center=true, convexity=10)
    import (file="datei.dxf", layer="layername");

Tja, leider waren es .dwg-Dateien - damit klappt obiger Zweizeiler halt nicht. Nun musste ich nach einem passenden Konverter suchen. Schließlich wurde ich fündig: Es gibt von Cadsoftools eine Testversion vom ABViewer, der das kann. Ein paar Minuten später waren die umgewandelten Dateien wieder auf dem Rückweg.

Zum Dank bot er mir Filament an, was ich ablehnte, da ich ausschließlich Filament von Faberdashery drucke. Er blieb dabei und ich solle 150m Filament auswählen. Das tat ich dann auch:

  • 50m Classic Black
  • 25m Lapis Blue
  • 25m Electric Blue
  • 10m Aurora
  • 20m Squeezed Orange
  • 20m Jade Green
Heute kam die Lieferung: