Temperaturmessung im Druckraum

Es ist mir immer wieder aufgefallen das ein geschlossener Druckraum nicht immer von Vorteil ist. Vor allem bei Druckaufträgen > 4 Stunden. In dieser Zeit wird der Druckraum bei mir doch an die 40 Grad warm, was berücksichtigt werden möchte.

Da kam mir die Meldung eines neuen Octoprint-Plugins sehr gelegen und daher habe ich die benötigten Bauteile bestellt bzw. aus meinem Bestand zusammengetragen. Frederic Moutin hat sich die Zeit genommen und ein neues Plugin geschrieben. Mit Room Temperature ist es jetzt möglich die aktuell vorherrschende Temperatur anzeigen zu lassen.

Stückliste

BaugruppeAnzahlBeschreibungLinkEinzelpreis (Euro)Summe (Euro)
Halter13D gedruckter Halter3D-Druck--
1ds18b20 SensorAmazon-3,00
14,7K Ohm Widerstand Bestand--
1Div. Kabel, GewebeschlauchBestand--
1SharpieBestand--

Aufbau

Details wie der Sensor und Widerstand zusammengelötet werden muss sind auf der Seite des Plugins zu finden. Ist aber nichts weiter kompliziert und sieht wie folgt aus. Achtet beim Anschluss nur darauf, dass die richtigen PINs des Raspberrys verwendet werden.

Anpassungen an config.txt

  1. Aufbau der Verbindung zum Raspberry mittels SSH
  2. Öffnen der config.txt sudo nano /boot/config.txt
  3. Am Ende der Datei folgende Zeile einfügen (definiert den zu verwendenden GPIO PIN) dtoverlay=w1-gpio
  4. Speichern und Schließen mit crtl x und dann y.
  5. Abschließend noch einen Neustart durchführen reboot

Ergebnis

 

Powerbox für WS2812B LEDs

Aufgrund des fortwährenden Dranges ein Projekt mit WS2812B LEDs umzusetzen, kam mir die Idee, dass Bobby-Car meiner Tochter ein bisschen „aufzuhübschen“ 🙂
Ob Sinn oder Unsinn darf jeder selber entscheiden, aber es war ein tolles Projekt und ich konnte meine gesteckten Ziele erreichen.

Aufgabenstellung

Welche Aufgaben galt es also zu bewältigen?

  • Portable muss es sein
  • Auf Basis von Arduino
  • Einfache Steuerung
  • Versorgt durch vier AA Eneloop Batterien

Stückliste

BaugruppeAnzahlBeschreibungLinkEinzelpreis (Euro)Summe (Euro)
Powerbox13D gedrucktes Gehäuse3D-Druck--
1Arduino NanoGearbest-4,00
110V 330uf KondensatorBestand--
1300 Ohm Widerstand Bestand--
1Div. KabelBestand--
1LochrasterplatineGearbest-1,50
1Vierach AA BatteriehalterGearbest-1,00
1Ein-/AusschalterBestand--
1DrucktasterBestand--
2M3 x 5mm SchraubenBestand--

Gehäuse

So entstand das Gehäuse mittels Inventor und dem geliebten Messschieber.

Die STL-Dateien könnt ihr auf Thingiverse herunterladen.

Code

Innerhalb von Arduino 1.8.2 entstand folgender Code. Nichts weltbewegendes, aber es kann über einen Knopf über eine Case-Abfrage der Modus geändert werden. Aktuell habe ich mal 6 verschiedene Abfolgen umgesetzt.

/*
  Powerbox for WS2812B
  Schwabenpilot.de - Buddinski88
  Version 1.0
*/

#include <Adafruit_NeoPixel.h>

// Digital IO pin connected to the Push-Button
#define BUTTON_PIN   6

// Digital IO pin connected to the NeoPixels
#define PIXEL_PIN    2    

// Count of the connected NeoPixels
#define PIXEL_COUNT 66

// Informations from the Library
// Parameter 1 = number of pixels in strip,  neopixel stick has 8
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_RGB     Pixels are wired for RGB bitstream
//   NEO_GRB     Pixels are wired for GRB bitstream, correct for neopixel stick
//   NEO_KHZ400  400 KHz bitstream (e.g. FLORA pixels)
//   NEO_KHZ800  800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

bool oldState = HIGH;
int showType = 0;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin();
  strip.show(); // Initialize all NeoPixels to 'off'
}

void loop() {
  // Read current button state
  bool newState = digitalRead(BUTTON_PIN);

  // Check if state changed from high to low (button press)
  if (newState == LOW && oldState == HIGH) {
    // Short delay to debounce button
    delay(20);
    // Check if button is still low after debounce
    newState = digitalRead(BUTTON_PIN);
    if (newState == LOW) {
      showType++;
      if (showType > 9)
        showType=0;
      startShow(showType);
    }
  }

  // Set the last button state to the old state
  oldState = newState;
}

void startShow(int i) {
  switch(i){
    case 0: colorWipe(strip.Color(0, 0, 0), 50);    // Black/off
            break;
    case 1: colorWipe(strip.Color(241, 38, 205), 50);  // Pink
            break;
    case 2: theaterChase(strip.Color(127, 127, 127), 50); // White
            break;
    case 3: (50);
            break;        
    case 4: rainbow(20);
            break;
    case 5: rainbowCycle(20);
            break;

  }
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*10; j++) { // 10 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  // do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        // turn every third pixel off
      }
    }
  }
}

// Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 5 /*3*/; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    // turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        // turn every third pixel off
      }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

Endprodukt

Ein Schaltplan habe ich momentan keinen, aber wenn Bedarf besteht (Kommentare oder Kontaktforumular), dann werde ich diesen nachreichen. Mit Google findet man dazu aber genügend Anregungen.

Ausblick

Um die ganze Einheit wirklich unabhängig des Ortes verwenden zu können, habe ich bereits einige ESP8266 bestellt. Damit kann ich dann die Farben mittels App / Webinterface (da bin ich noch nicht sicher) steuern.
Außerdem werde ich das ganze noch etwas kompakter konstruieren um weniger Platz zu benötigen.

 

Aktuelle 3D Drucker für den Einstieg

Das Thema 3D Druck wird immer freundlicher für die Endverbraucher, und da mich in den letzten Wochen mehrere E-Mails dazu erreicht haben, möchte ich in dem folgenden Beitrag auf drei aktuelle Drucker eingehen.
Die folgenden Drucker erfordern etwas handwerkliches Geschick und man muss auch gewillt sein sich in die Materie einzuarbeiten. Wenn diese Voraussetzungen nicht erfüllt sind, dann kann man auf ein teueres „Ready-to-Print“-Modell gehen oder man lässt lieber die Finger davon, denn der Frust wäre sonst nur unnötig 🙂

Anet A8

Dieser Drucker ist aktuell sehr populär, da er auf eine weit verbreitete Mechanik (Prusa) setzt und z.B. in Facebook div. Gruppen zu dem Drucker vorhanden sind.
Dem Drucker liegt auch ein Handbuch bei und es gibt Videoanleitungen dazu.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS
  • Aufbauverfahren: FDM
  • Max. Druckraum: 220 x 220 x 240 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 150,- Euro

Creality3D CR – 10

Dieser Drucker ist ähnlich dem Anet A8, nur ist der Druckraum deutlich größer und das Frame basiert auf Aluminumprofilen. Wenn man sich für das Thema 3D Druck interessiert und aktuell in Youtube schaut, dann findet man dort unzähbar viele Reviews, die einen guten Eindruck zu dem Drucker hinterlassen.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS, TPU, PETG, …
  • Aufbauverfahren: FDM
  • Max. Druckraum: 300 x 300 x 400 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 350,- Euro

Tronxy X5

Im Vergleich zu den beiden vorher genannten Drucker wird hier eine andere Mechanik verwendet. Core xy bedeutet ist ein Funktionsprinzip bei welchem das Druckbett nur vertikal verfahren wird. Die X- und Y-Achsen sind somit deutlich leichter zu gestalten und somit können auch höhere Geschwindigkeiten gefahren werden.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS, HIPS, PC, PVC, Wood
  • Aufbauverfahren: FDM
  • Max. Druckraum: 210 x 210 x 280 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 250,- Euro

Valentinstag Geschenk aus dem 3D Drucker

Ich habe zu Weihnachten ein DIY Kit für den Bau eines LED Herzes von meinem Kumpel Ossilampe bekommen. An dieser Stelle möchte ich mich noch mal dafür bedanken 🙂
Es hat viel Spaß gemacht das Kit zu löten und ein bisschen zu dokumentieren.

Damit war es dann aber nicht getan, denn ich hatte mir vorgenommen ein Gehäuse dafür zu konsturieren und dann auch entsprechen anzufertigen. Welcher Anlass bietet sich für ein LED Herz denn mehr an als der Valentinstag? Genau, keiner!

Ich begann also mit der Planung und der Konstruktion in CAD, damit ich die entsprechenden Teile drucken und auch fräsen konnte. Heraus kam folgendes Objekt und darauf bin ich sehr stolz, denn durch das Filament in Bronze Gold sowie die gefrästen Herzen aus Plexiglas, sieht das Endprodukt schon sehr edel aus.

Die Dateien und Informationen zum nachbauen findet ihr auf Thingiverse.

Ein Druckergehäuse für meinem Prusa i3 (Samelladrucker)

Ich möchte euch hier einen kleinen Baubericht meines neuen Druckergehäuses für den Samelladrucker zur Verfügung stellen

Anfangs habe ich mich auf dieses Gehäuse eingeschossen, aber mangels Werkzeug (keine Oberfräse im Zugriff) habe ich mich weiter umgeschaut und bin auf einen Ikeahack in Facebook gestoßen. Diese Hacks finde ich immer sehr interessant und ich steh wirklich darauf! Fragt meine Frau… Ikea lässt sich super hacken (z.B. bekam unsere Katze so ein Katzenklo, welches schön versteckt in einem Schrank untergebracht ist… aber zurück zum eigentlichen Thema!

Für den Hack benötigt ihr folgende Teile von Ikea:

Den Zusammenbau der einzelnen Schränke ist ganz Ikea like und daher gibts dazu nur ein paar Fotos.

Die erste kleine „Hürde“ war die Verbindung beider Schränke. Nach ein paar Gedanken kam ich auf die Idee zwei Multiplex-Platten zu besorgen und diese von oben bzw. unten an die Schränke zu schrauben.
Der Schritt ist auch wenig spektakulär, aber macht optisch einiges her und ich steh auf Multiplex Birke!

Um die ganze Sache dann auch noch halbwegs luftdicht zu verschließen musste ich mit etwas Silikon die einzelnen Fugen abdichten und das ganze trocknet dann bis zum nächsten Abend. Der erste „Bautag“ war somit abgeschlossen.

Am nächsten Abend durfte der Samelladrucker dann das erste Mal sein neues Heim betreten. Leider waren seine Füße etwas zu lange und so musste die Freundin Stichsäge ran.
Künftige Wartungsarbeiten sollten nicht stressig werden und daher wurden die notwendigen Kabel verlängert.

Filamentzufuhr ist das nächste Stichwort und dabei habe ich auch gleich die Türe angebracht.

Da ich die LED-Beleuchtung nicht einfach einbauen wollte wurde das erst mal getestet.

Die ganzen groben Arbeiten waren somit abgeschlossen und es ging weiter mit der Verkabelung des LCD Displays. Ich wollte dieses unbedingt aus dem Gehäuse haben! Nur so kann ich den Druckraum bei eventuell notwendigen Eingriffen geschlossen halten.
Ich bin schon etwas stolz darauf, dass gleich auf Anhieb alle Lötstellen gepasst haben, aber machen werde ich das nie wieder
Achso… gedruckt habe ich davor noch dieses schicke Gehäuse.

Es war mir wichtig eine gute Ausleuchtung im Druckraum zu haben und daher habe ich mir noch 8 Winkel ausgedruckt. Diese ermöglichen es die einzelnen LED Elemente in einem 45-Grad-Winkel in Mitte des Gehäuses abstrahlen zu können.

DAS WARS! Ich habe fertig! Hier steht jetzt mein neuer Schatz und arbeitet glücklich vor sich hin…