-
Gesamte Inhalte
2.675 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
32
Alle erstellten Inhalte von ruessel
-
Jupp, jetzt steht die ganze "AccelStepper" Bibliothek am CNC Shield zur Verfügung, habe gerade noch andere Befehle getestet (setMaxSpeed, setSpeed) - läuft einwandfrei!
-
Nun laufen nach zig Stunden des fummeln + denken 3 Motoren sauber parallel hin und her, oder nur 2, ganz wie ich möchte.... in Echtzeit, ohne Kompromisse ? #include <AccelStepper.h> // Define some steppers and the pins the will use #define ENABLE 8 //Direction pin #define X_DIR 5 #define Y_DIR 6 #define Z_DIR 7 //Step pin #define X_STEP 2 #define Y_STEP 3 #define Z_STEP 4 AccelStepper stepper1(AccelStepper::DRIVER,X_STEP,X_DIR,true); //(X-Axys)(type,step,dir) AccelStepper stepper2(AccelStepper::DRIVER,Y_STEP,Y_DIR,true); //(Y-Axys)(type,step,dir) AccelStepper stepper3(AccelStepper::DRIVER,Z_STEP,Z_DIR,true); //(Z-Axys)(type,step,dir) void setup() { pinMode(ENABLE,OUTPUT); digitalWrite(ENABLE,LOW); Serial.begin(9600); stepper1.setMaxSpeed(200.0); stepper1.setAcceleration(100.0); stepper1.moveTo(200); stepper2.setMaxSpeed(200.0); stepper2.setAcceleration(100.0); stepper2.moveTo(200); stepper3.setMaxSpeed(200.0); stepper3.setAcceleration(100.0); stepper3.moveTo(200); } void loop() { // Change direction at the limits if (stepper1.distanceToGo() == 0){ stepper1.moveTo(-stepper1.currentPosition()); if (stepper2.distanceToGo() == 0){ stepper2.moveTo(-stepper2.currentPosition()); if (stepper3.distanceToGo() == 0){ stepper3.moveTo(-stepper3.currentPosition()); }}} stepper1.run(); stepper2.run(); stepper3.run(); }
-
Schlimm ist ja, meine 3D Drucker bewegen 3 Motoren gleichzeitig und ganz präzise mit Arduino....es geht also, ich bin nur zu doof.
-
Ich besorge mir heute eine Sperrholzplatte und baue alle drei Motoren auf, ich benötige nun ein realistisches Testgerät. Dazu muss ich nun Motorhalterungen drucken, melde mich wieder, wenn was dreht und wickelt ? Oder ich unbedingt Hilfe beim Code brauche, ich fummel aber erst mal alleine - sonst lerne ich nix.
-
Ihr macht mir das nicht leicht. Ich bin so ein Typ, wenn es läuft, läuft es.... ich probiere mal den einfachen weg. Ich habe zu wenig Ahnung, wenn ich Bibliotheken selber schreiben kann, dann schreiben wir das Jahr 2030. Klingt auch nicht gut. Zur Not doch selber drucken.... Inzwischen habe ich akzeptable Werte gefunden, der Filmmotor muss nur immer Strecken fahren, die durch 15 Teilbar sind (1:15 der Wickelmotor). Kommen Brüche raus, dreht der Wickelmotor gar nicht, ist auch irgendwie klar, 5.35 Stepps gibt es nicht.
-
Ich werde darüber nachdenken, im Moment muß ich die Spulenarme bauen. Zum testen mit echten Film sollte das Aufspulen schon funktionieren, wäre ja auch ein Teil der Schleife. Zur Vorsicht, habe ich den Strom recht früh an den Stepper begrenzt, viel Kraft wird zum Glück nicht benötigt.
-
gestern abend, habe ich noch die Wickelmotoren angeschlossen und mit dem oberen Skript getestet. void loop(){ step(false, X_DIR, X_STP, schrittweite_s8); // filmmotor rotates S8 Frame step(false, Y_DIR, Y_STP, 50); // Aufwickelmotor rotates CCW for 1 circle, as in 200 steps step(false, Z_DIR, Z_STP, 50); // Abwickelmotor rotates CCW for 1 circle, as in 200 steps Der obere "void loop" Teil, läßt die drei Stepper laufen, soweit so gut. Was ich nicht bedacht habe, der Arduino arbeitet Zeile für Zeile ab, sprich: erst dreht der erste Motor bis er seine Umdrehungen abgearbeitet hat, dann der zweite und so weiter. Niemals drehen 2 oder 3 Motoren gleichzeitig, was natürlich beim Einfädeln vom Film unbedingte Pflicht ist! Ansonsten gibt es Filmsalat. Auch wäre eine Stopptaste sinnlos, lautet der Befehl bei einem Motor endlos drehen, dreht er endlos und nimmt keine Befehle mehr an, bis die Bedingung endlos erfüllt ist - also nie. Ja, über eine Stepper Bibliothek wäre es möglich mehrere Stepper GLEICHZEITIG laufen zu lassen, nur dumm, funktioniert nicht mit dem CNC Shield und seinen Treibern. Zumindest habe ich kein Skript dazu gefunden was auch nur im Ansatz funzt. Nach drei Stunden habe ich eine unelegante Lösung gefunden. Das Skript oben bleibt wie es ist, die Motoren aber machen abwechselt nur wenige Stepps, das in schneller Wiederholung fühlt sich bei nur 2 Motoren gleichzeitig an, obwohl sie auch nur hintereinander laufen - nur mit wenigen Millisekunden Verzögerung. Für den Film bedeutet das, das ca. 1/10 Frame abgespult wird und erst dann 1/10 Frame aufgerollt wird. Das dürfte zu keinen Stau in der Filmbahn führen. Je nach Schalter der gedrückt wird, muss eine jeweils unterschiedlich große Schleife diese Mikroschritte ausführen. Ich hoffe eine Schleife kann irgendwie unterbrochen werden, wenn der Stopp Button gedrückt wird.
-
Ich bin am lesen......... ?
-
Gut gemeint, aber mit dem Display muss ich nun durch, ich benötige die Variablennamen der Schalter, erst dann kann ich die ganzen "if" Schleifen aufbauen. Jeder Schalter eine eigene Abfrage.... Verschätzt habe ich mich noch mit der Displaygröße von 3.5 zoll...... das ist kleiner als ich Gedacht habe, habe schon die Schalter auf das nötigste gekürzt, komme immer noch auf 11 Schalter einen Slider und zwei Textfelder. Bei 3,5 Zoll sind 6 Schalter wohl das optimale - bei Fingerbetrieb. jetzt wird es echt eng auf dem Bildschirm und mein Kodachrome Design ist fast für die Katz. Das nächste mal lieber 5 Zoll oder gleich 7 Zoll. Soeben sind auch die Tellermotoren gekommen. Da kann ich gleich die Aufwicklung mit im Code unterbringen. Ich laß die Motoren immer nur ein Stück laufen, im Verhältnis zum Filmtransportmotor. Den Rest müssen Rutschkupplungen übernehmen. Ich hatte vor, die Kupplungen selber zu printen, habe nun fertige Kupplungen gefunden und bestellt: Mentor Sicherheitskupplung 516, feinfühlig einstellbar (über Federspannung) bis 30Ncm. Ich denke, sollten für 240 Meter Spulen ausreichen.
-
Ich sehe nur eine 404 Fehlermeldung!
-
Auf was habe ich mich da eingelassen? Im Moment steht das Display im Vordergrund. Die mitgelieferten Button/Schalter sehen natürlich nicht besonders hübsch aus, also müssen sie selber gemalt werden - das ist nun abgeschlossen. Schalterzustände an den Arduino zu senden scheint nicht das Problem zu sein, ein Problem ist der andere Weg. Um vom Arduino z.B. den Framezählstand an das Display zu senden, ist bei einer Displayseite noch irgendwie machbar. Besitzt das Display aber 2 Menüseiten wird es kniffelig. Der Arduino sendet den Zählstand, das Display aber steht auf einer anderen Seite wo gar kein Zählstand angezeigt wird - es kommt zum crash! Ich habe eine Lösung im Netz dazu gefunden, ich verstehe sie nicht und es ist ein ellenlanger Auffangcode der den Zählerstand dann in das Nirvana verschwinden lässt - vorher wird kompliziert abgefragt auf welcher Seite das Display eigentlich steht. Meine Lösung mit meiner Unkenntnis: Nur eine Menüseite!
-
Auf der CNC Platine habe ich gerade die Endschalter getestet. Prima, damit läßt sich sehr einfach ein Not-Aus für alle Motoren realisieren (bei evtl. Filmsalat). Der Notaus greift direkt auf die Steppertreiber ein und nicht auf den Arduino, der bemerkt gar nicht den Schalter. Den Arduino habe ich nun gegen den leistungsfähigen Mega getauscht, damit mehr Ein/Ausgänge und völlig Pin kompatibel.... Programm läuft ohne Änderungen, auch hier dreht der Stepper perfekt. Heute geht es an die Bildschirmprogrammierung und die Variablenübergabe an den Arduino.
-
In den nächsten Tagen (man muss ja auch noch andere Sachen erledigen) geht es dann an das Programmieren. Da noch weitere Schaltungen und Sensoren dazu kommen, wechsel ich vom Arduino Uno zum Mega, hier sollten trotz aufsitzenden CNC Shield dann noch Ein- u. Ausgänge frei sein. Hoffentlich ist das zu 100% kompatibel? Angedachte Funktionen des ultimativen DIY Cinegraphen (Schalter/Taster ist 3,5 ZollTouchscreen): 1. Schalter Licht: An/Einrichten/Aus //2 Relais müssen verzögert einschalten damit Dimmer nicht beschädigt wird 2. Ein/Ausspultaster // wenn gedrückt, laufen Zahnräder volle Geschwindigkeit (zum Film Einspulen) und auch Rückläufig zum Ausspulen. Auch Wickelteller bewegen. 3. Taster für Bildstrich // Zahnräder + Wickelteller drehen nur einen Zentel Millimeter Film. Richtung auf Wunsch. 4. Umspulschalter // Beide Richtungen um Filmrollen max. Geschwindigkeit umzuspulen. Geht nur wenn Film nicht im Gate einliegt (Filmsensor). 5. Aufnahmeschalter // Licht zwangsweise 100% an, Schrittweite Framehöhe, Kameraauslöser Relais. Stoppschalter, Auto-Stopp bei Filmende via Filmsensor. 6. Filmformatschalter // Super 8, Normal 8 - Stepperschrittweite 7. Framezähler // zeigt aktuellen Stand an, zeigt totale Nutzung der Maschine an (EEPROM ??) 8. Lampenbrenndauer Total in Stunden (EEPROM??) 9. Anzeigen aller Variablen im Servicemodus um schnell Fehler bei Störungen zu finden. 10. Gehäuse möglichst einen Kamerakoffer benutzen. Staub und Wasserdicht, leicht auch zu verschicken/verleihen. Etwas vergessen?
-
Code bis jetzt: #define EN 8 // stepper motor enable, low level effective #define X_DIR 5 //X axis, stepper motor direction control #define Y_DIR 6 //y axis, stepper motor direction control #define Z_DIR 7 //z axis, stepper motor direction control #define X_STP 2 //Filmantrieb, stepper motor control #define Y_STP 3 //Aufwickelteller, stepper motor control #define Z_STP 4 //Abwickelteller, stepper motor control #define schrittweite_s8 500 /* // Function: step -control the direction and number of steps of the stepper motor // Parameter: dir -direction control, dirPin corresponds to DIR pin, stepperPin corresponds to step pin, steps is the number of steps. // no return value */ void step(boolean dir, byte dirPin, byte stepperPin, int steps) { digitalWrite(dirPin, dir); delay(5); for (int i = 0; i < steps; i++) { digitalWrite(stepperPin, HIGH); delayMicroseconds(600); digitalWrite(stepperPin, LOW); delayMicroseconds(600); } } void setup(){// set the IO pins for the stepper motors as output pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT); pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT); pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT); pinMode(EN, OUTPUT); digitalWrite(EN, LOW); } void loop(){ step(false, X_DIR, X_STP, schrittweite_s8); // filmmotor rotates S8 Frame step(false, Y_DIR, Y_STP, 50); // Aufwickelmotor rotates CCW for 1 circle, as in 200 steps step(false, Z_DIR, Z_STP, 50); // Abwickelmotor rotates CCW for 1 circle, as in 200 steps delay(1); } delayMicroseconds(600); ist ein Kompromiß. Unter 500 stockt der Stepper und pfeift nur noch, höhere Werte machen die max. Drehzahl langsamer.
-
Musste eben nochmal mit dem Stepper spielen. Wenn ich an den Steppermotorparametern noch etwas bastel, komme ich auf gefühlte 24B/sec. Jedenfalls wurde ein Probe-Super-8- Film sauber eingezogen und kam auch entspannt auf dem anderen Zahnrad heraus...... ich hatte vermutet, dass durch den fehlenden Greifer evtl. der Film stockt. Man muss ja auch mal etwas Glück haben. Ich denke das Projekt hat schon einen großen Sprung gemacht. Mir fehlen nun die Wickelarme, die 360 Grad Servos kann ich nun vergessen, die Servo Platine benutze ich nicht mehr. Auf dem CNC Shield sind nun noch 2 Ausgänge frei, genau richtig. Ich habe noch weitere Nema 17 Stepper geordert. Auf diesen Stepper kommt eine noch zu konstruierende Rutschkupplung, so dass wenn der Filmstepper 10 Schritte macht, der Wickelteller 1 Schritt macht (Projektorgetriebe 1:10 ist da ja noch eingebaut). Alles wird gut!
-
Habe natürlich vorher geschaut, ja, diese Vollspektrum LED ist dimmbar. Wahrscheinlich stimmt der Farbwert nicht mehr, aber als Einstelllicht - man muss nur den Bildstrich justieren können - brauchbar. Ich habe hier so einen Tischdimmer liegen, LED gerade angeschlossen und ja, funktioniert. Geht so dunkel das ich in das Licht blicken kann ohne nachher eine halbe Stunde bunte Punkte sehen zu müssen. ?
-
Gu10 ist richtig. Da gibt es keine Wärmeprobleme..... Die Relais sind gekommen, damit wird auch der Lampendimmer gebaut: Einstelllicht 10% (zum reingucken) & Fotolicht 100%
-
Und es dreht sich wie ich möchte, auch der Code für das CNC Shield ist Kinderleicht..... warum habe ich es nicht gleich genommen? Weil ich keine Ahnung habe....
-
Habe gerade Zeit gefunden, nun dreht sich alles, ohne Rauch ? Vor, zurück, diverse Geschwindigkeiten funzt. Aber nur über Grbl Controller und neuen Nema 17 Motor. Auch die Geräuschkulisse ist nun deutlich leiser..... Fazit: Das erste drehen des Steppers hat mich etwas über 30 Euronen gekostet, Stepperplatine + Nema 17 Stepper - ja, der ist auch hin, ist jetzt ein Lautsprecher, macht nur noch laute Fiepgeräusche - dreht nicht mehr. nun überprüfe ich sicherheitshalber den Strom am neuen Motor, sonst wird es einfach auf die Dauer zu teuer.
-
Diese Strombegrenzer fehlen auf der Motorplatine, die bis 3A aushalten soll...... nun egal, CNC ist nun angesagt ? Muss nun leider mit dem spielen aufhören, evtl morgen geht es weiter.
-
Eigentlich ist die Stepperspannung egal, muss nur hoch genug sein, justiert wird am Treiber der Strom. So kenne ich es von den 3D Drucker her. Jetzt läuft es auch mit dem CNC Shield.....ein Demo. Das Shield macht auch einen besseren Eindruck.
-
https://www.ebay.de/itm/1-5PCS-Schrittmotor-Nema-17-Stepper-Motor-40Ncm-3-96V-0-9A-f-3D-Drucker-CNC/183358488732?ssPageName=STRK%3AMEBIDX%3AIT&var=690670096999&_trksid=p2060353.m2749.l2649
-
Im Moment gibt es andere Probleme, nach 3 Minuten Stepper drehen, ist mir die Motorplatine abgeraucht...... anscheinend ist sie nicht für Nema 17 geeignet, ich sehe auch keine Potis um den Motorstrom zu begrenzen. Gedreht hat sich es...immerhin. Nun werde ich auf das CNC Shield umwechseln, damit sind auch bekannte A4988 Treiber drin...mit Strompotis!
-
Beim Einrichten des Frames genau auf das Bildfenster wäre dies leicht möglich. Zur Zeit ist es tatsächlich so hell, das ich gar nix erkenne, gut für eine stark abgeblendete Optik (schärfe) und Balgengerät - schlecht für die Netzhaut. Es wäre ein Einrichtungslicht nicht schlecht, die LED soll ja auch dimmbar sein. Allerdings finde ich keine fertige Platine die 230V per Arduino regelt. Heute morgen wird der Motor verkabelt, externe 12V wird den Stepper in Schwung bringen. Das Ganze kommt erst einmal in einer durchsichtigen Plastikwanne um mit dem Code zu experimentieren, so kann ich leicht sehen ob und wie etwas dreht....falls etwas dreht ;-).
-
Kostenloser Lichttonumwandler in 96 kHz