[UPDATE] Thermostatsteuerung mit ESP8266-01

Ein kleines Update zur Heizkörperthermostatsteuerung

Ich habe die Schaltung vereinfacht und die Transistoren weggelassen und das ganze für den ESP8266-01, also die kleine „Classic“-Platine, die nur 2 GPIOs hat, angepasst.

Das Serverscript hat nun eine Abfragemöglichkeit über den Parameter …?a=gt, mit dem man die zuletzt eingestellte Temperatur  – also den Ist-Zustand – abfragen kann.

Die beiden aktuell verwendeten lua – Scripte sind auch noch einmal angefügt.

Es muss mit ESP8266Flasher.exe NodeMCU geflasht werden, um luaScript zu verwenden. Hier meine Settings beim Flashen:

NodeMCU Flasher Settings

Esp8266Flasher.exe settings für ESP8266-01

Das aktuelle Layout ohne Transistoren:

 

ESP8266_classic_Thermostatsteuerung_2018_Steckplatine

Hier die beiden Scripte, die auf dem ESP8266 werkeln:

init.lua

print('Hello! init.lua started.')
wifi.setmode(wifi.STATION)
wifi.sta.config("MY_AP_NAME", "MY_WIFI_PASSWORD")
wifi.sta.connect()

tmr.alarm(0, 1000, 1, function()
 if wifi.sta.getip()==nil then
   print("connecting to AP...")
 else
   print("AP successfully connected.")
   print ("ip: ", wifi.sta.getip())
   tmr.stop(0)

   dofile("server_v4.lua")
 end
end)

server_v4.lua

p1=3 -- 1
p2=4 -- 2
gpio.mode(p1, gpio.OUTPUT);
gpio.mode(p2, gpio.OUTPUT);

wt=21
gt=0

srv=net.createServer(net.TCP)
print ("WEBSERVER started.")
srv:listen(80,function(conn)
 conn:on("receive", function(client,request)
 local c = ""
 local buf = "";
 local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
 if(method == nil)then
   _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
 end
 local _GET = {}
 if (vars ~= nil)then
   for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
     _GET[k] = v
   end
   if(_GET.t ~= nil)then
   wt = _GET.t
   gt = wt
   if _GET.p == "on" then
       gt=wt + 0.5
       c = " checked"
   end
   if wt == "off" then
       wt = 0
       gt = 0
       c = ""
   end
     print("Argument 't' was "..gt);
     settemp(gt)
 end
end

if(_GET.a == nil)then if(_GET.a == nil)then
  buf = buf.."HTTP/1.1 200 OK\n\n"
  buf = buf.."<html><head><title>Schlafzimmer Thermostat</title>";
  buf = buf.."<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">"
  buf = buf.."<!--[if lt IE 9]>http://html5shim.googlecode.com/svn/trunk/html5.js<![endif]-->"
  buf = buf.."<link rel=\"shortcut icon\" href=\"http://SOME_URL/favicon.ico\"></head>"
  buf = buf.."<body bgcolor=\"#D0D0D0\"><font face=\"arial\"><center><h1>SCHLAFZIMMER</h1><p>Temperature is set to "
  buf = buf..gt       
  buf = buf.."&ordm;</p><form action=\"?\">"
  buf = buf.."<input type=\"button\" style=\"height:70px;width:120px;font-size:40px;\" value=\"+\" onClick=\"javascript:document.getElementsByName('t')[0].value++;\"><br>"
  buf = buf.."Temp:&nbsp;&nbsp;&nbsp;<input style=\"height:50px;width:60px;font-size:40px;margin-top:8px;margin-bottom:8px;\" type=\"text\" name=\"t\" value=\""
  buf = buf..wt
  buf = buf.."\">&nbsp;&nbsp;&nbsp;&nbsp;"
  buf = buf.."<input style=\"transform: scale(4); -webkit-transform: scale(4);\" type=\"checkbox\" name=\"p\" value=\"on\""
  buf = buf..c
  buf = buf..">&nbsp;&nbsp;&nbsp;&nbsp;+ 0.5&ordm;" buf = buf.."<br><input type=\"button\" style=\"height:70px;width:120px;font-size:40px;\" value=\"-\" onClick=\"javascript:document.getElementsByName('t')[0].value--;\">"
  buf = buf.."<br><input type=\"button\" style=\"height:40px;width:120px;font-size:28px;margin-top:8px;color:red;\" value=\"OFF\" onClick=\"javascript:location.href='?t=off'\"><br><br>"
  buf = buf.."<input style=\"height:60px;width:120px;font-size:32px;\" type=\"submit\" value=\"Set\"></form></p>"
  buf = buf.."</center></font></body></html>"

if(_GET.a ~= nil)then
  if(_GET.a ~= nil)then
    action = _GET.a;
    if action == "gt" then
      buf = buf.."HTTP/1.1 200 OK\n\n"
      buf = buf..gt
    end
end

function pulse(dir, anz)
  z=gpio.read(p1)
  for i=1, anz*2, 1 do
   if z == 0 then
     z=1
   else
     z=0
   end
   if dir == "+" then
     gpio.write(p1, z);
     tmr.delay(10000); -- 10ms
     gpio.write(p2, z);
     tmr.delay(10000);
   else
     gpio.write(p2, z);
     tmr.delay(10000);
     gpio.write(p1, z);
     tmr.delay(10000);
   end
  end
end

function settemp(temp)
 print("Setting Temp to "..temp..".")
 tt = (temp*2)-9; 
 pulse("-", 60) --init
 pulse("+", tt)
end
Advertisements

Mit MIDI-Befehlen Keyboard-Shortcuts auslösen

So könnt Ihr einfach mit einem beliebigen MIDI-Controller (Keyboard, MIDI-Pad, Fuß-Pedal, Drum-Computer, …) frei programmierbare Keyboard-Events auslösen oder sogar Programme/Befehle starten.

mainwindowIdee hierbei war es, zunächst Szenen in OBS mit einem kleinen MIDI-Pad anstelle mit umständlichen Keyboard-Aktionen umzuschalten. das Programm „MidiKEy2Key“ kann jedoch noch mehr.

Da ich selbst auch intensiv FSX (Microsoft Flight Simulator) mit halbem Home-Cockpit „spiele“, habe ich daran gedacht, Schaltfunktionen, die sich in FSX mit Tastaturbefehlen auslösen lassen, wie Fahrwerk ausfahren, Licht einschalten oder Landeklappen ausfahren mit einem MIDI-Controller zu steuern.

Ich benutze hierfür ein KORG nanoPad (erste Generation), welches ich für 15,-€ auf Ebay ersteigert habe.

korg-nanopad

Die Generation 2 kostet neu 55,- € und hat 4 Buttons mehr. Es sind natürlich alle möglichen MIDI-Pads geeignet, die es von allen möglichen Herstellern (AKAI, Roland, …) gibt. Das nanoPad (1) gibt es für wenig Geld, hat 12 Pads, die auf 4 Ebenen umschaltbar sind, und daher stellt es 48 schnell erreichbare Schaltfunktionen zur Verfügung.

Im Moment kann „MidiKey2Key“ zwei Arten von „Actions“ auslösen: Beliebige Tastatur-Befehle und beliebige Programme/Skripte starten.

Durch das Starten eines Skripts (z.B. ein Windows Shellskript .bat) können dadurch auch komplexe Funktionen ausgelöst werden.

Um bequem in OBS Szenen zu wechseln, genügen die Keyboard-Shortcuts. Um in FSX „analoge“ Einstellungen mit einem Drehregler zu machen, müsste ich „MidiKey2Key“ entsprechend erweitern. Dies käme auf Euer Feedback an. Benutzt die Feedback-Funktion auf der MidiKey2Key Homepage oder die Antwort-Funktion hier, um Vorschläge zu machen!

Hier ist ein Tutorial-Video (englisch):

 

MidiKey2Key – Homepage (englisch/deutsch) mit Download, Anleitung und Feedback-Möglichkeit:

http://75r.de/midikey2key

Twitch schnell gestreamtes Spiel und Kommentar ändern mit TwitchControl

Wenn Ihr einen Twitch-Kanal betreibt und öfter das Spiel ändert, welches Ihr streamt, ist es lästig , die ständig auf Eurer Twitch Seite manuell zu ändern.

Dafür habe ich schon vor einiger Zeit „TwitchControl“ geschrieben, welches ich hier kurz vortellen möchte.

Ihr könnt es hier downloaden: http://75x.de/dl/twitchcontrol.

Entpackt am besten alle Files, die in dem zip-File enthalten sind, in einen eigenen Ordner. Dann solltet Ihr eine Verknüpfung zu TwitchControl.exe auf den Desktop oder in das Startmenü legen (z.B. mit gehaltener rechter Maustaste das .exe File ziehen und nach dem Ablegen „Verknüpfung erstellen“ wählen).

Nun ist das Programm startbereit. Voraussetzung ist natürlich, dass Ihr einen Twitch-Account besitzt.

TwitchControl

Auf der linken Seite können beliebig viele Presets erzeugt und schnell abgerufen werden. Ein paar sind bereits als Beispiel angelegt.

Zu Neu-Erstellen auf „New“ klicken, einen Preset Name, sowie Titel und das Spiel eingeben. Durch Klicken auf „Save“ wird dieses Preset gespeichert und erscheint links in der Liste.

Damit Ihr das Programm benutzen könnt, muss es einmalig authorisiert werden, Ihr müsst ihm erlauben, Eure Twitch-Kanal-Einstellungen verändern zu dürfen. Der Dialog erscheint automatisch und muss nur einmalig bestätigt werden.

Nach Auswahl eines Presets, Eintragen Eures Twitch-Kanal-Namens und Klick auf „Activate“ wird auf Eurer Twitch-Seite Title und Game entsprechend eingetragen.

Vielleicht mache ich noch ein Video; die Benutzungvon „TwitchControl“ ist jedoch recht simpel, finde ich.

(Edit Juli 2018)

Version v1.08 wurde veröffentlicht.

Ein Bug wurde behoben, wo beim ersten Start von Twitchcontrol der Dialog zum Autorisieren von TwitchControl bei Twitch nicht gezeigt wurde. Er kam zwar beim nächsten Start, das hat jedoch nicht jeder ausprobiert (siehe Kommentare hierzu). Auch die Fehlermeldung mit „:500“ wurde untetdrückt.

Außerdem wurde die Möglichkeit eingebaut, TwitchControl mit einem Startparameter zu starten. Gibt man über eine Verknüpfung, über ein CMD Fenster, einer Batch oder mit MidiKey2Key als Parameter einen Presetnamen an, wird bei Twitch auf dieses Preset geschaltet, ohne, dass irgendwelche Ausgaben erscheinen – auch keine Feblermeldungen. Enthält der Presetname Leerzeichen, muss er in Anführungszeichen stehen. Also z.B. TwitchControl.exe „CS GO“

Was bleibt, ist noch eine Abmeldefunktion einzubauen. Denn nach einmaliger Autorisation ist TwitchControl mit dem Twitch-Account untrennbar verbunden. Das de-Autorisieren ist etwas kompliziert und bedarf noch der Recherche in der Twitch API, wie das überhaupt funktioniert…

Aufbau 3D-Drucker P3 Steel #03 – Hotend und Heizbett

Das Hotend ist fertig – bis auf die Kabelzusammenführungen, da das LED-Licht noch fehlt und dessen Kabel ja auch mitkommen soll. Der Thermistor und die Heizpatrone wurden mit dem unteren Teil des MPX-Steckers verbunden; die Heizpatrone bekommt 4 der 6 Anschlüsse, damit es keine Stromprobleme gibt.

Beim Heizbett habe ich mich anstelle des etwas günstigeren MK-II mit Glasplatte für eine prazisionsgefräste Aluplatte entschieden, die mit einer 200W Silikonheizmatte erwärmt wird. Dieses ist in der Lage z.B. auch ABS zu verarbeiten und heizt im Vergleich schneller auf. Oben auf die Aluplatte wird eine BuildTak-Matte geklebt. Sie hat optimale eigenschaften und macht Blue Tape, Malerkrepp oder Haarspray obsolet.  Unter der Aluplatte klebt die selbtklebende Heizmatte:

Heizbett1_IMG_9210

Darauf habe ich mit Selundenkleber eine 3mm Korkplatte geklebt.

Heizbett2_

Dann kommt ein selbstklebendes Thermovlies, welches an der Klebeschicht ein Kunstfasergewebe besitzt und abschließend eine Alufolie. Es ist ringsherum etwas größer, als das Heizbett und die Korplatte und klebt somit am Rand umschließend wieder am Alublech. Schön mollig eingepackt:

Heizbett3_IMG_9212Das Buildtak ist oben noch nicht aufgebracht, es ist zunächst noch die Schutzfolie drauf.Heizbett eingebaut_IMG_9215

Die Z-Achsen-Endstopstellschraube hat eine Feder bekommen und das Heizbett wurde auf den Schlitten gesetzt.

Hier noch eine Gesamtansicht des aktuellen Stadiums; ich warte nun darauf, dass endlich die Elektronikboards kommen…

Totale_IMG_9213

 

Aufbau 3D-Drucker P3 Steel #02 – Erste Anbauteile

Den Rahmen hatte ich aus Spaß komplett zusammengebaut. Ein paar Teile fallen jedoch weg, da sie durch Toolson’s Kunstoffteile ersetzt/ergänzt werden. Einige Schrauben müssen außerdem kurzfristig wieder entfernt werden, da sie Kunststoffteile mittragen.

So zum Beispiel die Umlenkrolle vorne:

Man hat Y-Umlenk_IMG_9173es etwas einfacher, den Riemen einzufädeln, wenn man das macht, bevor man die M6-Schraube und die Lager einbaut. Ich habe jedoch einen kleinen Trick gefunden, mit dem das auch im zusammengebauten Zustand gut geht.

 

 

Die mühsam angebrachten Lagerhalterungen am Schlitten kommen wieder herunter, da Toolson doch Teile für die LM8UU-Lager hat (und nicht nur für die IGUS-Lager), das hatte ich falsch verstanden. Sie besitzen 6-eckige Aussparungen für M3-Muttern, die bei mir jedoch nicht sofort hineinpassten. Sie lassen sich einfach mit einem Lötkolben erwärmen und eindrücken. Nur muss man das vorsichtig und zügig machen, damit das Kunststoffteil nicht kaputtschmilzt.Mutter mit Lötkolben einpressen_IMG_9171

Der Riemenspanner wird, falls es mehrere Bohrlöcher gibt, der Nase zugewandt angebracht, die letztlich nach hinten zeigt. Der fertige Schlitten sieht von unten so aus:SChlitten lose v. unten_IMG_9172

Wenn es, wie hier beim Riemenspanner, eingelassene Muttern gibt, habe ich zuerst eine längere Schraube ins Bauteil gedreht, die Mutter am anderen Ende aufgesteckt und sie mit der Schraube vorsichtig in’s Material gezogen.

Die weiteren Kunststoffteile wurden vorbereitet bzw. angebracht. Ebenso habe ich die 8mm Wellen für die Z-Achse angebracht. Dazu musste ich jeweils unten etwas auffeilen. Wenn diese Löcher zu groß werden, ist es nicht so schlimm, da die Wellen auf den Motoren aufliegen und nicht durchrutschen können.

Hier nun ein paar Bilder:

Das letzte Bild zeigt den Riemendpanner der Y-Achse. Durch die Schlaufe der Riemenenden ist jeweils ein halber Nagel geschoben, somit kann der Riemen nicht mehr herausrutschen.

Auf dem einen Bild oben ist der Z-Endstopschalter noch intakt. Plötzlich sehe ich, das die Blechfahne ganz nach hinten zeigt. Als ich sie zurückbiege, bricht sie ab 😦 Ich habe mir dann einen Streifen Blech aus einer ATX-Blende eines ausrangierten Mainboards geschnitten, ein Loch hineingebohrt und dieses Stück etwas gebogen. Es wird nun von einer der beiden Schrauben getragen, die auch das kleine Endstopboard halten. Funktioniert wie das Original. Guckst Du:

Im nächsten Beitrag gibt es Bilder vom fertigen Hotend und des Heizbettes.

Heizungsthermostatsteuerung mit ESP8266 für unter 5,- EUR

Um mir die Zeit zu vertreiben, bis die Teile für den 3D-Drucker eintreffen, habe ich mich ein bisschen mit chinesischen Chips beschäftigt.

Hierbei fiel mir der ESP8266 auf, den es in verschiedenen Versionen gibt.

Es ist ein Mikrocontrollermodul, welches WLAN eingebaut hat und sich ähnlich wie ein Arduino programmieren lässt. Er wird auch oft hergenommen, um dem Arduino WLAN beizubringen. Wenn es dann um simple Schaltvorgänge oder Auslesen von Sensoren geht, ist der Arduino oft überflüssig, denn das kann der 8266 auch, und das zum erstaunlichen Preis!

Out-of-the box besitzt er einen AT-Befehlssatz, ähnlich wie Modems. Bequemer geht es aber, wenn man die NodeMCU – Firmware flasht. Dann kann man das Modul mit lua-Scripten füttern, was bequemer ist und mehr Möglichkeiten bietet.

Das tolle: Der 8266 kann im 2,4 GHz WLAN wahlweise als LAN-Client, als WLAN-Accesspoint oder sogar beides gleichzeitig sein. Die Bedienung ist dabei kinderleicht. Er gibt z.B. eine Liste der Accesspoints in der Nähe aus und man verbindet ihn mit einem davon (wenn das Kennwort bekannt ist). Oder er wird als Accesspoint sichtbar und man verbindet z.B. sein Handy mit diesem und erhält von seinem integrierten DHCP-Server eine IP-Adresse. Mit ein paar Zeilen Code lässt sich ein simpler Webserver realisieren, über den man dann mit ihm interagiert. Sogar die WLAN-Reichweite ist beeindruckend. Sie entspricht zu hause etwa meinem Mobiltelefon.

Da es Varianten mit bis zu 9 GPIOs (Ein- und Ausgänge für Sensoren oder Schalter) gibt, ist z.B. denkbar, ihn im Hausflur zu installieren. Er überwacht per Taster oder Reedkontakt, zu welchen Zeiten die Tür geöffnet wird, besitzt einen Temperatur- und Lichtsensor und berichtet alle 15 Minuten die Messdaten zu einem SQL-Server im Netz. Daneben läuft ein Webserver, der auf Button-Action per Relais den Haustürsummer betätigt. All dies ist mit wenigen Codezeilen möglich und benötigt eben keinen zusätzlichen Arduino.

Die kleinste Variante ESP8266-01 hat 2 GPIOs und kostet in China ca. 1,70 EUR.

Nachteil des ganzen ist sein durch das ständig aktive WLAN sein Stromverbrauch, der immer um die 100 mA liegt. Damit würden 2 AA-Batterien nach zwei Tagen leer sein. Der 8266 benötigt also ein Netzteil. Außerdem läuft er mit 3,3V (auch an den Kommunikationspins!), was noch etwas an Bauteilen benötigt, aber nicht schlimm.

Inspiriert durch ein Youtube Video von Allan Turing habe ich an einen eq-3 Heizungsthermostat Model K 3 Leitungen an den Drehimpulsgeber, mit dem man den Thermostat manuell steuern kann, gelötet und nach außen geführt. Die nötigen Impulse auszugeben, um den Thermostat zu steuern, ist für den 8266 ein leichtes.

Mit einer einfachen Weboberfläche kann der Thermostat manipuliert werden. Also auch vom Smartphone aus, oder eben von der ganzen Welt aus.

In diesem Video ist der erste Versuchsaufbau zu sehen, noch ohne Webinterface, sondern nur selbstlaufend in einem Demo-Modus:

Hier die Schaltung dazu:

ESP8266-EX_02_Thermostatsteuerung_Steckplatine

Es wurde ein ESP8266-EX benutzt, was aber nicht nötig ist, da nur 2 Ausgänge benötigt werden. An diesen hängt übrigens ein NPN-Transistor, der den jeweiligen Drehgeberausgang im Rhytmus nach Masse schaltet.

Das rote Modul rechts ist bloß der USB-to-Serial-Converter zum Aufspielen des Scriptes. Zum Betrieb fällt es weg Zu sehen ist außerdem noch ein 5V to 3,3V Modul, was aus 5V 3,3V macht, wenn man kein Netzteil hat, was direkt 3,3V liefert.

Vielleicht mache ich noch ein Video mit dem laufenden Webinterface.

Wen das lua-Script interessiert, das auf dem 8266 werkelt, hier ist es:

p1=1 -- GPIO05 ganz aussen
p2=2 -- GPIO4
gpio.mode(p1, gpio.OUTPUT);
gpio.mode(p2, gpio.OUTPUT);
wt=21
srv=net.createServer(net.TCP)
print ("WEBSERVER started.")
srv:listen(80,function(conn)
 conn:on("receive", function(client,request)
 local c = ""
 local buf = "";
 local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
 if(method == nil)then
 _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
 end
 local _GET = {}
 if (vars ~= nil)then
 for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
 _GET[k] = v
 end
 if(_GET.t ~= nil)then
 wt = _GET.t
 gt = wt
 if _GET.p == "on" then
 gt=wt + 0.5
 c = " checked"
 end
 print("Argument 't' was "..gt);
 settemp(gt)
 end
 end
 buf = buf.."<html><center><h1> ESP8266 Thermostatsteuerung</h1>";
 buf = buf.."<p><form action=\"?\">Temp: <input style=\"height:50px;width:60px;font-size:40px;\" type=\"text\" name=\"t\" value=\""
 buf = buf..wt
 buf = buf.."\">&nbsp;&nbsp;&nbsp;&nbsp;<input style=\"transform: scale(3); -webkit-transform: scale(3);\" type=\"checkbox\" name=\"p\" value=\"on\""
 buf = buf..c
 buf = buf..">&nbsp;&nbsp;&nbsp;&nbsp;+ 0.5°<br><br><input style=\"height:60px;width:100px;\" type=\"submit\" value=\"Set\"></form></p></center></html>";

 client:send(buf);
 client:close();
 collectgarbage();

 end)
end)

function pulse(dir, anz)
 z=gpio.read(p1)
 for i=1, anz*2, 1 do
 if z == 0 then
 z=1
 else
 z=0
 end
 if dir == "+" then
 gpio.write(p1, z);
 tmr.delay(5000); -- 10ms
 gpio.write(p2, z);
 tmr.delay(5000);
 else
 gpio.write(p2, z);
 tmr.delay(5000);
 gpio.write(p1, z);
 tmr.delay(5000);
 end

 end
end

function settemp(temp)
 print("Setting Temp to "..temp..".")
 tt = (temp*2)-10;
 pulse("-", 60) --init
 pulse("+", tt)
end


Es fehlt nur das init.lua, was bei Inbetriebnahme der Schaltung zu meinem WLAN verbindet; das sind aber nur 5-6 langwelige Zeilen.

Aufbau 3D-Drucker P3 Steel #01 – Der Rahmen

Der Stahlrahmen – Zusammenbau

Heute kam endlich der Rahmen aus Spanien. Naja, was heißt „endlich“, es hat nach Bestellung nur 9 Tage gebraucht – ich hatte mit 2 Wochen gerechnet.

Das Zusammenbauen der im Prinzip sehr exakt gefertigten Teile ist kein besonderes Hexenwerk, birgt jedoch ein paar kleine Herausforderungen, die ich hiermit dokumentieren möchte.

Empfohlenes Werkzeug:

Werkzeuge

Ein Inbus-Schlüssel, der gut in der Hand liegt, ein längerer herkömmlicher Inbus-Schlüssel mit Kugelkopf, eine kleine Flachfeile und eine (nicht abgebildete) Rundfeile

Da sind nu ein paar große und kleine Teile, von denen man nicht bei allen auf Anhieb sagen kann, wo die hingehören. Ich habe deswegen Tante Google befragt, und sie spuckte mir http://reprap.org/wiki/P3Steel aus, wo es ein computeranimiertes Video gibt, das den Zusammenbau der Rahmenteile zeigt – dachte ich…

Leider ist die Reihenfolge – so wie im Video gezeigt – nicht machbar!
Ich musste den halben Rahmen wieder auseinanderbauen.

Die Teile werden alle mit der selben Technik verbunden:

Ein02e Schraube wird in eine schwergängige Stopmutter gedreht, die wiederum in einer entsprechenden Aussparung am Drehen gehindert wird. Ein Schraubenschlüssel ist daher nicht erforderlich.

 

Die Muttern sind aber zunächst lose und das Hineinfummeln in den Schlitz kann etwas Nerven kosten, da sie sich gerne umdrehen oder verkanten. Meistens fallen sie wieder heraus, oder liegen so, dass die Schraube nicht in’s Gewinde kann. Hat das Schraubengewinde gegriffen, hat man gewonnen. Das wäre mit feststehenden Gewinden schöner. OK, jetzt das selbe Prozedere nur noch 59 mal…

 

Zunächst werden die drei großen Teile ineinandergesteckt. Sie werden mit insgesamt Schrauben miteinander verbunden. Bevor es weitergeht, müssen nun – anders, als im Video(!) – die zwei  (5-8cm langen) trapezförmigen Teile eingebaut werden.

03Dazu müssen die langen unteren Rahmenteile etwas gebogen werden.

Danach können die Top-Platten angebracht werden; die Löcher für die Wellen zeigen natürlich nach vorne:

Top

Weiter geht es mit den unteren Rahmenteilen vorne und hinten. Sie tragen jeweils zwei kleine Teile, die den Motor und das Gegenlager für den Y-Achsen Zahnriemen aufnehmen.

Unten-hinten

Unten-vorne

Da ich die von toolson konstruierten Kunststoffteile verwenden werde, fallen die kleinen vorderen später Teile weg. Eines der beiden unteren Rahmenteile sollte man noch nicht montieren, da zuvor die 8mm Wellen eingeführt werden.

Ebenfalls abweichend vom o.g. Video müssen die beiden Z-Motoraufnhamen, die jeweils aus drei Teilen bestehen, vorher zusammengebaut werden:

Motoraufnahme

Immer mal wieder passen die Teile nicht sauber in die Aussparungen, da sie bis zu 1mm hohe einzelne Grate haben. Das kommt zum Glück nicht so oft vor, bei mir 3-4 mal. Da hilft nur Abfeilen:

Grat_02Grat_01abfeilen

Nun kann der Schlitten vorbereitet werden.

Verwendet man die standard LM8UU-Lager, kommen die Teile aus dem Rahmenbausatz zum Einsatz. Diese Lösung ist allerdings das Schlechteste am Steel-Rahmen. Toolson hat alternative Lagerhalterungen für Gleitlager von IGUS konstruiert, die , schön leise laufen, einen etwas größeren Außendurchmesser haben, aber eine hohe Montagepräzision verlangen (weswegen mir von Ihnen abgeraten wurde).

Hier die vom Rahmenkonstrukteur vorgesehene Kit-Lösung: Am besten bereitet man den Schlitten, in dem man sie acht Schrauben/Mutternpaare schon einmal so zusammenführt, dass das Schraubengewinde jeweils knapp einen Millimeter hinten aus der Mutter herausschaut. Die Muttern werden natürlich an der Unterseite platziert:

Schlitten_01

Jetzt wird es fummelig: Die Lager werden in die Ausschnitte gelegt und tauchen ca. 1mm tief ein. Hierbei muss darauf geachtet werden, dass es keine Grate der Pulverbeschichtung gibt, die eine saubere, plane Lage verhindern würden. Dann werden die Haltebleche aufgeschoben und beide Schrauben abwechselnd langsam angezogen, bis das Lager sich nicht mehr bewegen kann. Hierbei sollte ein nur sehr geringes Drehmoment angewendet werden (viel geringer, als zur Befestigung der anderen Rahmenteile)! Dreht man zu fest oder ungleichmäßig, wird das Lager etwas gequetscht, so dass die Welle nur schwer oder sogar gar nicht einführbar ist. Also wirklich nur so stark anziehen, dass das Lager sich nicht mehr von Hand bewegen lässt. Am Ende gibt es einen ca 1,5mm breiten Spalt zum Schlittenboden, der natürlich parallel verlaufen sollte. Alles in allem eine sehr diffuse Konstruktion…

SChlitten_02

Wenn alle vier Lager montiert sind, können die Y-Wellen in den Rahmen geschoben werden. Dies gelingt wahrscheinlich nicht sofort, da die Ausparungen der Rahmenteile etwas zu knapp ausgeschnitten sind. Sie müssen mit einer Rundfeile etwas erweitert werden, wobei man nur kleine Schritte vornimmt und immer wieder prüft, ob sich die 8mm – Welle einführen lässt, aber immer noch fixiert wird.

Feilen

Übertreibt man es hierbei, ist das nicht so tragisch (es sei denn, die Welle hat so viel Spiel, dass sie herumwackelt und zu ihrer Nachbarin nicht immer parallel läuft). Wenn es nur so ist, dass sie sich leicht herausschieben lässt, gibt es als Gegenmaßnahme z.B. herunterladbare Druckteile, die man als Abschluß anbringen kann.

Nun kann man die Wellen in die Schlittenlager schieben. Das sollte sehr leicht gehen, und so, dass sie danach bereits herausrutschen, wenn man den Schlitten nur leicht neigt, ansonsten sind sie nicht in Flucht montiert. Zuvor sollten die neuen Lager geschmiert werden [wird noch ergänzt, da ich hier noch nicht sicher bin, womit].

Da eine der beiden Rahmenteile ja noch demontiert sind, kann man die Wellen mit aufgestecktem Schlitten in die bereits fixierte Seite einführen, sie auf das abschließende Rahmenteil aufstecken und letzteres schließlich anmontieren.

montierter SchlittenDer Schlitten läuft schön leichtgängig, aber beeindruckend laut! Dabei resoniert meine Arbeitsplatte am eifrigsten. In der Luft gehalten, ist es deutlich leiser. Daher wurde der Beschluss gefasst, den Drucker am Ende auf Silikonfüße zu stellen.

Die Z-Achsen  – Lager könnten auch schon vorbereitet werden. Ist noch nicht erledigt.

Auch die Motoren können erst montiert werden, wenn ich die benötigten Kunststoffteile erhalten habe.

In ein paar Tagen wird es weiter gehen. Bis dahin Ciao!