Projekt 3D-Drucker – Die Steuerelektronik

Dieser Artikel ist Teil 4 von 14 aus der Projekt-Serie DIY 3D-Drucker

Projekt 3D-Drucker Unboxing / Bauteile

Kommen wir zum Thema Steuerelektronik des Anet A6 3D-Druckers.

Als Controller ist ein Atmel Atmega 128 verbaut, welcher mit einem 16MHz Quarz getaktet wird.

Unter den Kühlkörpern befinden sich die Treiberstufen für die Schrittmotoren. Diese sind für bis zu 2 Ampere pro Phase ausgestattet und sollten damit genügend Power für die Stepper haben.

Die Steuerplatine ist mit einem USB-Anschluss (blau) und einem Micro-SD-Karten Einschub (gelb) ausgestattet. Der 3D-Drucker kann damit entweder einen Druckauftrag über den Computer erhalten oder direkt mit Druckdaten auf einer SD-Karte versorgt werden.

Das Layout der Platine macht einen wertigen Eindruck.

Kommen wir zur Display- und Bedieneinheit.

Der 3D-Drucker ist mit einem LCD12864 Vollgrafikdisplay mit 128×64 Pixel ausgestattet. Für den Anschluss an die Controller-Platine sind 2x 10Pol-Pfostenstecker vorgesehen. Als Chipsatz ist ein ST7920 verbaut.

Im Schema sieht das Ganze dann so aus:

Klick zum vergrößern.

LCD Daten:

75mm x 52.7mm x 8.9mm
Interface: 8-bit Parallel
Auflösung: 128×64 Pixel
Farbe: weiß auf blau

Hintergrundbeleuchtung: LED, weiß
Polarisierung: Transmissiv

In der transmissiven Betriebsart befindet sich anstelle des Reflektors eine Beleuchtungseinheit hinter dem Anzeigeelement.

Im nächsten Beitrag werden die Schrittmotoren genauer untersucht und vorgestellt.

Projekt 3D-Drucker – Die Motoren

Projekt 3D-Drucker Unboxing / Bauteile

Dieser Artikel ist Teil 3 von 14 aus der Projekt-Serie DIY 3D-Drucker

Projekt 3D-Drucker Intro 1/2

Projekt 3D-Drucker Intro 2/2

Wie im Intro zum Projekt 3D-Drucker angekündigt, folgt nun der Projektstart.

Wir fangen mit ein paar Hintergrundinformationen zum DIY 3D-Drucker Model an. Gebaut wird ein ‚Anet A6‘ Drucker, welcher als DIY Bausatz erhältlich ist. Geliefert wird der Drucker mit allen benötigten Teilen in einer Mischung aus Kunststoffformteilen, Schrittmotoren, Führungs- und Gewindestangen, Steuerelektronik, Leitungen und Schrauben und weiterem Zubehör.

Ausgepackt, scheint der Aufbau nicht aufwändiger zu sein, als ein Überraschungsei-Spielzeug zusammen zu pappen.

Übersicht der Bauteile für den Anet A6 3D-Drucker.
Kunststoffformteile (noch mit Schutzfolie).
Kunststoffformteil „Mainboard“ für den Anet A6.
Führungsschienen (418mm, 380mm, 340mm) und Gewindestangen (M8x400mm, M8x318mm, M8x150mm).
Schrittmotoren (2x Z-Achse, 1x X-Achse und 1x Y-Achse) Typ: 42SHDC3025-24B. Interessanter Weise haben die Schrittmotoren den Aufdruck „Anet 3D“, wurden also für Anet hergestellt.
Heizbett (Heat bed): Die beheizte Druckplatte ermöglicht es, zu drucken ohne die Haftung des Druckbetts zu beeinträchtigen und verhindert das Warping.
Steuerelektronik (In einem späteren Beitrag wird auf die Steuerelektronik detaillierter eingegangen).
Display und Bedieneinheit mit LCD-Display, Piezzo-Piepser, Drehencoder und Bestätigungstaste.

Die Bauteile machen qualitativ einen guten Eindruck. Die Kunststoffformteile müssen jedoch noch aufwändig von den Schutzfolien getrennt und auch entgratet werden. Aktuell sind diese Teile noch zu scharfkantig, was bei der späteren Nutzung des Druckers störend sein kann.

Im nächsten Beitrag werden die einzelnen Komponenten genauer betrachtet und vorgestellt.

Weiter mit Projekt 3D-Drucker – Die Steuerelektronik

Projekt 3D-Drucker Intro 2/2

Dieser Artikel ist Teil 2 von 14 aus der Projekt-Serie DIY 3D-Drucker

Der Bau eines 3D-Druckes ist nun also wie im Artikel Projekt 3D-Drucker Intro 1/2 angekündigt eine beschlossene Sache. Aus welchem Grund ich mich dafür entschieden habe, soll in diesem Artikel erläutert werden.

Ein 3D-Drucker eignet sich besonders gut um individuelle Produkte in den eigenen 4 Wände herstellen.

Wer kennt diese Situationen nicht: ein Griff vom Küchenschrank, Schlafzimmerschrank oder auch der Lautstärkeregler des Lieblingsradios ist verloren gegangen oder wurde unsanft noch auf den letzten Stufen vor der Wohnungstür, abgebrochen. Wenn es sich dabei um Sonderanfertigungen handelte, kann ein Ersatzteil ziemlich teuer werden. Die Suche nach einem Ersatz im Baumarkt gestaltet sich dabei ziemlich schwierig. Meist bleibt es bei einer Notlösung, wobei eher die Funktionalität statt der Optik im Mittelpunkt steht. Ein 3D-Drucker kann hier Abhilfe schaffen.

Das ist einer der Gründe, weshalb ein 3D-Drucker Sinn machen kann. In meinem Fall geht es hauptsächlich um den Gehäusebau für kleinere Elektronikprojekte.

Vor Allem aber, geht es um die Freude, mal wieder ein größeres Technik-Projekt zu starten. Mit solchen Projekten kann man viel über die eingesetzte Elektronik, Mechanik sowie der Programmierung entsprechender Software lernen.

Ein paar Beispiele von 3D-gedruckten Objekten aus den Weiten des Internets sind hier zu entdecken:

Weiter geht es mit: Projekt 3D-Drucker Unboxing / Bauteile

 

Projekt 3D-Drucker Intro 1/2

Dieser Artikel ist Teil 1 von 14 aus der Projekt-Serie DIY 3D-Drucker

Vor kurzem konnte ich noch nicht erahnen, dass mich das 3D-Drucker-Fieber erwischen würde.

Das war vermutlich etwas zu kurz gedacht, denn inzwischen gibt es spannende Möglichkeiten, gute und äußerst preisgünstige Selbstbau-3D-Drucker Projekte zu starten.

Im Grunde ist ein 3D-Drucker nichts anderes als eine kleine CNC-Fräsmaschine mit einer Kunststoff-schmelz-und-quetsch-einheit anstelle einer Frässpindel. Auch ist ein solcher 3D-Drucker meist etwas leichter aufgebaut, da wesentlich geringere Queerbelastungen auf die Achsen auftreten als beim erbarmungslosen Fräsen.

Kurzum, ein 3D-Drucker hat im Normalfall 3-Achsen, welche sich mit Schrittmotoren in X-,Y- und Z- Richtung bewegen lassen. Angesteuert werden die Achsen meist mit einem Arduino als Mikrocontroller oder alternativ einem speziellen Controller, welcher für den 3D-Druck optimiert wurde.

Kleine 3-Achsen DIY Fräsmaschine
Kleiner 3-Achsen DIY 3D-Drucker

An dieser Stelle einmal die Beschreibung zum Thema 3D-Drucker aus der Wikipedia:

Beim 3D-Druck (auch 3-D-Druck[1]) werden dreidimensionale Werkstücke schichtweise aufgebaut. Der Aufbau erfolgt computergesteuert aus einem oder mehreren flüssigen oder festen Werkstoffen nach vorgegebenen Maßen und Formen (CAD). Beim Aufbau finden physikalische oder chemische Härtungs- oder Schmelzprozesse statt. Typische Werkstoffe für das 3D-Drucken sind Kunststoffe, Kunstharze, Keramiken und Metalle. 3D-Drucker werden in der Industrie und der Forschung eingesetzt. Daneben gibt es Anwendungen im Heim- und Unterhaltungsbereich sowie in der Kunst.

Der 3D-Druck ist ein generatives Fertigungsverfahren, nach dem Aufbauprinzip als additive Fertigung bezeichnet.

Demnächst wird also dieser Blog mit einer Reihe von Artikeln über den Aufbau eines DIY-3D-Druckers fortgesetzt.

Der Bauraum wird 220 x 220 x 250 mm groß. Die minimale Druckhöhe beträgt 0,1 mm. Die Druckdüse besitzt einen Durchmesser von 0,4 mm. Die Druckgenauigkeit beträgt 0,012 mm auf der X- und Y-Achse sowie 0,004 mm auf der Z-Achse. Der Drucker verfügt über ein beheiztes Druckbett. Die Bedienung erfolgt über ein Display mit Dreh-Druck-Schalter oder per USB. Damit erfüllt der Drucker grundsätzlich aktuelle Mindestanforderungen an semiprofessionelle Geräte – zumindest in der Theorie.

Wir können gesapnnt sein, wie das Ergebnis aussehen wird!

Fortsetzung des Intro in Teil 2: Projekt 3D-Drucker Intro 2/2

 

Mach’s schnell – mach’s zweimal!

Neulich, bei einem guten Gespräch mit einem Meister der Philosophie und Lebenskunst fiel der Satz „Mach’s schnell – mach’s zweimal“.

Jeder Bastler kennt das und doch fallen wir gelegentlich darauf rein.

Voller Ideengeist und Tatendrang, kann es schon mal vorkommen, dass der Lötkolben noch kaum Betriebstemperatur hat, dass ein präzise benötigter Widerstandswert mal wieder so unnötig zu sein scheint, dass eine Vorbereitung mit Schaltplan doch lieber einem vorübergehenden, geistigen Bild der Schaltung weichen muss oder dass Isolierband einem Schrumpfschlauch vorgezogen wird.

Spätestens bei der Betrachtung des Endprodukts (sollte der Pfusch tatsächlich in einem funktionierenden Produkt enden), erreicht uns meist der Gedanke „Hätte ich mal ein bisschen mehr Zeit investiert, hätte ich die doppelte Zeit gewonnen – nun muss das Ganze noch einmal sauber gemacht werden“.

Selbstverständlich kann man auch mal schnell prototypen, aber auch dabei ist ein Quäntchen Ruhe und Langsamkeit von Vorteil.

Mach’s schnell – mach’s zweimal > Vermutlich werden wir darauf immer mal wieder reinfallen, gefolgt von dem Gedanken „Nicht zur Strafe, nur zur Übung“.

Fazit: Wenn es mal schnell gehen muss, lass es langsam angehen!

Schrittmotor (Stepper) mit Arduino und Pololu Treiber

Seit dem Bau einer kleinen CNC-Fräsmaschine ist die Faszination der Möglichkeiten im Umgang mit Schrittmotoren stets gewachsen.

„Damit kann man jede Menge Ideen verwirklichen!“

Hier mal eine paar Ideen, mit welchen sich ein paar meiner Synapsen gerade beschäftigen.

  • Automatisierung von Schiebe-Fensterläden

Fensterläden, welche nicht geklappt sondern von der linken und rechten Seite des Fensters auf und zugeschoben werden können, sollten bekannt sein. In dieser Projektidee geht es darum, die Fensterläden zu automatisieren.

  • Kaffeevollautomat-Tassen-Rondell

Besitzer von Kaffee-Vollautomaten kennen das! Die sogenannten Espressomaschinen machen nur eine Tasse nach dem Anderen. Das Problem: Man muss warten bis eine Tasse gefüllt ist um die nächste unter den Auslass zu stellen. Wie wäre es, wenn eine Tasse nach der Anderen automatisch unter den Auslass gestellt und gefüllt wird? Dieses Projekt wird eines Tages angegangen!

  • Automatischer Cocktail Bartender

Der in bekannten DIY Projekten gebastelte automatisch Bartender, welcher Cocktails selbstständig mixen kann sollte eines Tages ebenfalls in das Projekt-Portfolie gehören!

  • und viele mehr.

Damit solche Projekte mit Schrittmotoren umgesetzt werden können, ist erst mal ein wenig Grundlagenwissen erforderlich.

In folgendem werden ein paar technische Ansätze zur Ansteuerung von Schrittmotoren mit Hilfe eines Arduinos und Pololu-Treibern erläutert. Wie ein Schrittmotor funktioniert möchte ich auf dieser Seite nicht vorstellen, dazu gibt es bereits hervorragende Seiten im Netz. Wikipedia erklärt uns das fürs erste schon mal ganz gut: https://de.wikipedia.org/wiki/Schrittmotor

Kurzinfo zum Pololu Schrittmotor Treiber

So sieht eine kleine, feine Treiberstufe zur Ansteuerung der Motoren aus:

Pololu Schrittmotor Treiber (Allegro A4988/A4983 IC)

Pololu ModulePololu Module

Immer wieder faszinierend, welche Leistung mit solch kleinen Käfern erreicht werden kann. Immerhin schafft der Treiber bis zu 2 Ampere pro Phase

Hier ein paar technische Daten:

  • A4988/A4983 IC Treiber
  • Logik-Spannung: 3.0V-5.5V
  • Motor Versorgungsspannung: 8V-35V
  • Motor Ausgangsstrom: bis 2A (pro Phase)
  • Für 2-Phasen-Schrittmotor geeignet
  • 5 Mikroschrittauflösungen einstellbar
  • Strombegrenzung/-Einstellung
  • IC Überhitzungs-Schutzelektronik (A4988)

Auch wenn so eine winzige Treiberplatine auf dem Elektroinklabortisch chick aussieht, muss sie doch früher oder später angeschlossen werden. Hier die Pinbelegung:

EasyDriver Pins

Im Schematic diagram sieht das Ganze dann schon etwas komplizierter aus, was jedoch für den schnellen Aufbau von Projekten nicht unbedingt erforderlich ist.

Natürlich stellt sich nun die Frage, wie der kleine Treiber seine Bestimmung zusammen mit einem Arduino Mikrocontroller findet. Das folgende Bild veranschaulicht uns das sehr gut.

 

MS1 MS2 MS3 Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low Quarter step
High High Low Eighth step
High High High Sixteenth step

 

 

Ohne Software läuft hier nichts!

 

// Initialisierung mit 2 Pins, Vollschritt
  // RESET muss an SLEEP angeschlossen werden
AH_Pololu(int RES,int DIR,int STEP)

  // Initialisierung mit 6 Pins, Änderung der Mikroschrittauflösung
  // und Sleep-Modus sind verfügbar.
  // RESET muss an SLEEP angeschlossen werden
AH_Pololu(int RES,int DIR,int STEP,int MS1,int MS2,int MS3,int SLEEP)

  // Initialisierung mit 9 Pins, alle Funktionen vorhanden.
AH_Pololu(int RES,int DIR,int STEP,int MS1,int MS2,int MS3,
              int SLEEP,int ENABLE,int RESET)


  // Modul zurücksetzen
void resetDriver()

  // Modul ein- oder ausschalten
void enableDriver()
void disableDriver()

  // Schlaf-Modus ein- und ausschalten
void sleepON()
void sleepOFF()

  // Geschwindigkeit ändern
void setSpeedRPM(int RPM)
void setSpeedHz(int FREQ)
void setSpeedMax()

  // Mikroschritt-Modus wählen
  //  MODE 0 -> Vollschritt
  //  MODE 1 -> 1/2  Mikroschritt
  //  MODE 2 -> 1/4  Mikroschritt
  //  MODE 3 -> 1/8  Mikroschritt
  //  MODE 4 -> 1/16 Mikroschritt
void setMicrostepping(int MODE)

  // Motorsteuerung
void move(int NUMBER_OF_STEPS)
void move(int NUMBER_OF_STEPS, boolean DIRECTION)
void rotate(float DEGREES)
void revolve(float TIMES)

  // Bibliothekversion
String getVersion()

 

/* Simple Stepper Motor Control Exaple Code

 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */
// defines pins numbers
const int stepPin = 3; 
const int dirPin = 4; 
 
void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
}
void loop() {
  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 200; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(500); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(500); 
  }
  delay(1000); // One second delay
  
  digitalWrite(dirPin,LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}