4. Achse-Welche Steuerung?

#62
Hallo,

verfolge die Fortschritte auch sehr gerne und mit Interesse. :)
Leider kann ich programmtechnisch wenig beitragen.

Achja: Diese häßlichen "Türme" habe ich auch schon teilweise gebaut, geht recht flott und mit wenig Geld. Eine bessere Version mit Alu-Profilen, Linearführungen usw. habe ich auch schon in 3D konstruiert. Das dürfte dann aber ca. 500.- kosten (nur die Mechanik, keine Schrittmotoren, keine Steuerung].

Grüße Erwin
 

tjwan

Neuer Benutzer
#63
Hallo,

die "Türme" sind nicht schön aber erstmal für mich ausreichend. Das teuerste waren die Schrittmotoren, die MDF Platten habe ich mir im Baumarkt für <10 EUR sogar perfekt schneiden lassen, musste nur ein paar Schrägen selber schneiden.
Gesamtmaterial für die Mechanik inkl Nema17 Motoren und Gitarrenseite zum schneiden deutlich unter 100 EUR.
ArduinoUno + CNC-Shield bei Ebay für zusammen 27 EUR.
reicht auf jeden Fall zum spielen. Ich heize aktuell mit einem Labornetzgerät und die Mechanik wird, weil das jetzt belegt ist, per Akku angetrieben. Alles sehr hemdsärmlig.

@Der Frickler:
Aktuell sind leider alle PWM-Pins verbraucht. Die Pins 12 und 13, die normalerweise für die Spindle verwendet werden, sind auf dem CNC-Shield auf die 4te Achse verdrahtet. Spindle-Control in GRBL musste ich daher totlegen, das gäbe es da schon.
Allerdings könnte ich einen der PINS 9,10,11, die für die Endschalter verwendet werden, umwidmen. Endschalter habe ich bei mir sowieso noch nicht.

1. Ich bin noch neu in Sachen Arduino. Spricht was dagegen, die analogen Input Pins als digitalen Input für die Endschalter zu verwenden ?
Dann könnte ich den einen der Endschalter dahin legen und einen der PWM-Pins für die Heizung frei machen.

2. Ich glaube ich bin im Code soweit drin, dass ich auch irgendein GCode-Kommando auf die Heizung umbiegen könnte.
Anbieten würde sich ja S${num} für Spindle-Speed. ist im Code auch bereits vorgesehen.

3. Was würde man mit dem PWM-Pin ansteuern ?
Meine Heizung mit dem läuft mit ~7,5 V auf 70 cm Draht und mit ~2.8 A. orientiert habe ich mich an
[link]http://www.suessbrich.info/elek/Styrosaege/Styrosaege1.html[/link]
Ich könnte auch einen Brushed-ESC ansteuern, PPM müsste man dann wieder selber machen, aber das Timing sollte hinzukriegen sein.
Allerdings ist das vielleicht overkill.

PS.: Anbei ein paar Fotos. Bisher nur billiges EPS. Am WE muss ich mir mal XPS aus dem Baumarkt besorgen.

Gruß Tjwan
 

Anhänge

Zuletzt bearbeitet:
#64
Schaut gut aus!

Hallo,
die "Türme" sind nicht schön aber erstmal für mich ausreichend. Das teuerste waren die Schrittmotoren
@Der Frickler:
1. Ich bin noch neu in Sachen Arduino. Spricht was dagegen, die analogen Input Pins als digitalen Input für die Endschalter zu verwenden ? Dann könnte ich den einen der Endschalter dahin legen und einen der PWM-Pins für die Heizung frei machen.
2. Ich glaube ich bin im Code soweit drin, dass ich auch irgendein GCode-Kommando auf die Heizung umbiegen könnte.
Anbieten würde sich ja S${num} für Spindle-Speed. ist im Code auch bereits vorgesehen.
3. Was würde man mit dem PWM-Pin ansteuern ?
Meine Heizung mit dem läuft mit ~7,5 V auf 70 cm Draht und mit ~2.8 A. orientiert habe ich mich an
[link]http://www.suessbrich.info/elek/Styrosaege/Styrosaege1.html[/link]
Schrittmotoren sind auch billig geworden, wir haben letzte Woche 10 NEMA17 für 79€ = unter 8€ das Stück! bei Ebay bestellt, China Händler aber wurde aus DE verschickt und war in 3 Tagen da: http://www.ebay.de/usr/actmotor2012
Sehe gerade, deine scheinen genau die selben zu sein ;_)
Für nen neuen Lasergravierer arbeite ich gerade an ner billigen Mechanik mit Alu-Systemprofilen. sollte evtl auch für nen Styroschneider gehen später. Mehr dazu wenns soweit is.

Außer A6 und A7 kannt du alle auch als Digital Pins nutzen, 6 und 7 nicht da diese reine Analog Pins sind. PWM geht auch nur auf bestimmten Pins: http://arduino.cc/en/pmwiki.php?n=Main/arduinoBoardUno
Mit dem PWM kannst du z.B. einen BUZ11 FET Transistor ansteuern, der schaltet dann direkt den Strom zum Draht. Per PWM regelst dann einfach 0-100% der am Netzteil eingestellten Leistung.
 

tjwan

Neuer Benutzer
#65
Hallo,

bin jetzt erstmal am rumforschen, wie ich meine Profile ordentlich in GCode umgewandelt bekomme inkl. Berücksichtigung von Abbrand, Pfeilung, Verzerrung wg Trapez, Anstellwinkel, Holmen usw.
Der Screenshot zeigt eine erste SVG-Visualisierung der modifizierten Profildaten als Vorstufe für den GCode.
Mit einer Konvertierung DXF nach GCode ist es ja leider nicht getan, da die beiden Ebenen ja synchron angesteuert werden müssen.
Am Ende wollen wir aus Trapezen zusammengesetzte Tragflächen für einen DLG SuperGee II bauen.

Da gibt es wohl einige kommerzielle Programme wie Profili oder GMFC, die das alles schon machen, aber ich habe mir jetzt ein paar Ideen zusammengesucht insbesondere wieder von Surasto (Ralf Stoffels) und von hier
http://swarfer.co.za/rc/wire/.
Als Beispiel habe ich mal einen GCode aus diesem Programm angehängt.

Die GRBL-Anpassungen sind erstmal hier zu finden:
https://github.com/skwee/grbl-xyuv

Zum Senden des GCode an den Arduino nutzte ich:
https://github.com/winder/Universal-G-Code-Sender
Das unterstützt zwar eigentlich nur 3 Achsen, aber zum GCode senden reicht es scheinbar völlig aus.

Zum Umwandeln von Profildaten nach DXF habe ich noch das hier gefunden
http://www.laboratoridenvol.com/info/air2dxf/air2dxf.en.html
Ist zwar Fortran, kann man aber unter Linux ohne Probleme compilieren.

Gruß Tjwan.
 

Anhänge

Zuletzt bearbeitet:
#66
Hallo,

endlich sind alle Teile der Steuerung mit der Schneckenpost angekommen.
Habe grbl0.9 raufgeladen und habe mich richtig gefreut das sich auch dann etwas gedreht und bewegt hat, war mir da nicht so sicher ob auch alles fehlerfrei gelötet wurde. :)

Jedoch habe ich da ein Problem mit der Version von tjwan, beim kompilieren kommt immer eine Fehlermeldung.

Ich verwende Win7 und Arduino1.0.6 und habe es mit Sketch-->Library importieren --> add library gemacht. Nur mit dem make Befehl passiert auch nicht´s, wird einfach kein hex-file erzeugt.

Kann mir wer weiterhelfen?

Grüße Erwin

PS: Das wir im Kompilier-Fenster geschrieben


core.a(HardwareSerial.cpp.o): In function `__vector_18':
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.cpp:115: multiple definition of `__vector_18'
grbl-xyuv-master\serial.c.o:C:\Users\kurtl\Documents\Arduino\libraries\grbl-xyuv-master/serial.c:154: first defined here
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: Warning: size of symbol `rx_buffer' changed from 128 in grbl-xyuv-master\serial.c.o to 68 in core.a(HardwareSerial.cpp.o)
core.a(HardwareSerial.cpp.o): In function `__vector_19':
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.cpp:218: multiple definition of `__vector_19'
grbl-xyuv-master\serial.c.o:C:\Users\kurtl\Documents\Arduino\libraries\grbl-xyuv-master/serial.c:103: first defined here
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: Warning: size of symbol `tx_buffer' changed from 64 in grbl-xyuv-master\serial.c.o to 68 in core.a(HardwareSerial.cpp.o)
 
#67
Soo,

habe nun die Datei HardwareSerial.ccp aus dem Arduino Verzeichniss gelöscht und nun hat auch der upload geklappt - ob da sinnvoll ist weis ich nicht.

Nächstes Problem: Es drehen sich immer 3 Motoren gleichzeitig wenn man nur einen anspricht, der 4. garnicht. Außerdem sehe im Konsolenfenster des Universal GCode Sender permanent Fehlermeldung, selbst wenn kein Kommando abgesetzt wurde.


Grüße Erwin
 
#68
Juhuu!

Es funktioniert.

Folgende Änderungen die wohl unter Anfängerfehler eingestuft werden: :)

1) Bei den Umgebungsvariablen für Arduino den Pfad C:\Programme (X86)\... gegen C:\PROGRA~2\... tauschen, dann klappt auch der make-Befehl.

2)Die grbl-Parameter sind von Haus aus total daneben. Ich habe diese erst mal verwendet:

$0=250. (x, step/mm)
$1=250. (y, step/mm)
$2=250. (z, step/mm)
$3=250. (t, step/mm.)
$4=10 (step pulse, usec)
$5=500. (default feed, mm/min)
$6=100. (default seek, mm/min)
$8=25 (step idle delay, msec)
$9=10. (acceleration, mm/sec^2)


Mit dem GRBL-Controller 3.6.1 wird das angehängte file von Tjwan im Trockentraining perfekt abgefahren.

Danke nochmals an Twjan für die Umsetzung!

Grüße Erwin
 

tjwan

Neuer Benutzer
#69
Hallo,

hatte hier eine Weile nicht reingesehen... Freut mich, dass das jetzt auch noch woanders läuft.
Ich hatte alles unter Ubuntu compiliert. Schön wenn es jetzt auch unter Windows klappt.
Und dass man grbl auf die eigene Maschine kalibrieren muss, hatte ich schon wieder ganz vergessen, weil der Arduino diese Daten freunlicherweise im EEProm speichert.
Meine Maschine hat 200 Steps / mm und ich fahre normalerweise mit einer Feedrate von 200mm / min.
IMHO ist die Seek-Rate normalerweise höher als die Feed-Rate.
Bei den GCodes werden die mit G00 bzw G01 genutzt, wobei man bei G01 auch eine explizite Feed-Rate angeben kann.
Bei mir ist das auch fasst das Limit der Maschine, bei zu kurzen Pulsen verlieren die Schrittmotoren Schritte.

@Erwin: was hast Du denn für eine Elektronik ?
Auch einen einfachen Arduino UNO mit dem Protoneer-Shield ?

Inzwischen haben wir jede Menge Bauschaumplatten kleingemacht und optimieren weiter Draht, Vorschub und Heizleistung.
Der erste Flügel in Vakuumtechnik ist auch schon fertig, auch mit einer kleine Arduino-Steuerung, damit die Vakuumpumpe nicht dauerhaft laufen muss.
Zuerst hatte ich die schon genannte Gitarrensaite, dann einen etwas zu dicken Heizdraht und jetzt einen 0.2mm NiChrome-Draht von Ebay (6 EUR für 25m), der die bisher besten Ergebnisse produziert.

Tips und was man alles so falsch machen kann:
Wenn man Flächensegmente schneiden will, bei denen auf den beiden Seiten unterschiedliche Profiltiefen verwendet werden, fährt der Draht auf der schmaleren Seite langsamer durch das Material. Der Abbrand ist auf der Seite entsprechend etwas größer. Das kann man bis zu einem gewissen Grad kompensieren, indem man auf dieser Seite mehr Abbrand einkalkuliert.
Das kann im Extremfall dazu führen, dass die Fläche an der schmaleren Seite verbrennt, bzw. sich verformt.
Bei einem dünneren Draht, bei dem ingesamt weniger Material verbrannt wird, scheint der Effekt kleiner zu sein.
Bei mir ist die tiefere Seite immer rechts, d.h. auf XY und die kürzere auf UV.
Auf der tieferen Seite fährt der Draht mit der angegebenen Feed-Rate (z.Bsp. F200). Auf der anderen Seite wird die Feed-Rate entsprechend verringert, da der Draht ja auf beiden Seiten gleichzeitig an der Nasenleiste und wieder am Ende ankommen muss. Ich hatte den Eindruck, dass das nicht richtig funktioniert, wenn die tiefere Seite auf der UV-Seite liegt.
Für unsere linken Flügel haben wir daher die Profile auf den Kopf gestellt, so dass die tiefere Seite immer links auf der XY-Seite liegt. Ich denke, da steckt noch eine Abhängigkeit der Achsen in der grbl-Software.

Bisher haben ich bei allen Drähten eine gewisse Dehnung beim Heizen beobachtet. Der Schneidebogen muss also ein Federsystem oder ausreichend Vorspannung haben um das auszugleichen. Ist diese Spannung zu hoch, wird der Draht mit jedem Schneiden schnell dünner und reisst relativ schnell. Der Draht muss in der Maschine so aufgehängt sein, dass der Schneidebogen den Draht auch geradeziehen kann. Anfangs hatte ich den Schneidedraht direkt an der Maschine befestigt,
das hatte aber den Nachteil, dass ich den Abstand zwischen den "Türmen" nicht mehr so gut an die Segmentlänge anpassen konnte.

Der Draht sollte möglichst so heiss sein, dass er kontaktlos schneidet, d.h. durch die Wärmestrahlung. Hier kann man Feedrate und Heizleistung variieren. Wir kontrollieren immer die Nasenleiste des geschnittenen Flügels an einem geraden Gegenstand. Die sollte absolute gerade sein. Leichte Fäden auf der Oberfläche lassen sich nicht immer vermeiden, deuten aber eher auf eine zu geringe Heizleistung oder zu schnellen Vorschub hin. Eine leichte "Orangenhaut" entsteht bei zu grosser Wärmezufuhr. Die Kunst besteht darin, den Punkte genau dazwischen zu finden. Wir haben bisher einfach ein Labornetzteil verwendet und damit eine feste Spannung eingestellt. Cooler wäre natürlich eine Spannungsquelle mit leichter Überspannung, die man dann per Phasenanschnitt runtersteuert. Wurde vom Frickler hier schonmal erläutert.

Gruß Tjwan
 
#70
Hallo,

ja, ist der UNO mit Protoneer-Shield.

Bis jetzt ist erst der linke Turm fertig, brauchbare Ergebnisse zu bekommen scheint aber nicht so einfach zu sein.

Habe bis jetzt Lösungen gesehen mit eingehängtem Schneidbogen, fix befestigt mit einer Feder und sogar eine wo der Draht mit einem Getriebeantrieb in der Länge verändert wurde wegen der Pfeilung.
Bei Profili z.b. kann man auswählen das die Flügelhinterkante bündg mit der Tischvorderkante ist (also rechtwinkelig zur x-Achse). Bei der Nuri-Tragfläche die ich schneiden möchte und der Tragflächenhälfte von 62cm muß der Schneidedraht nur 4mm länger werden (sprich um soviel dehnt sich die Feder die ich bei einem Turm befestige). Das denke ich ist akzeptabel.
Außerdem habe ich in Foren gelesen das manche den größeren Abbrand auf der schmalen Seite kompensieren indem sie eine dickere Beplankung in Profili einstellen. Jedoch soll Profili insgesamt eine ungünstige Schnittführung haben.
Jedenfalls konnte ich überhaupt keine andere erschwingliche Soft finden die mir einen gcode liefert (außer eben genannte Adresse
http://swarfer.co.za/rc/wire/)

Edit: Oja, habe mal Videos über ProWire 1.0 gefunden, aber das dürfte eingestellt worden sein.


Grüße Erwin
 

tjwan

Neuer Benutzer
#71
Moin
Wieder lange nicht hier gewesen...
Ich verwende einen Scheidebogen mit 60cm. Da ich mehrere Segmente mit unterschiedlichen Längen schneide, kann ich so den Abstand zwischen den Türmen problemlos variieren. Muss hier dringend mal Fotos einstellen, versuche ich in den nächsten Tagen. Die Aufhängung habe ich recht primitiv mit zwei eingekerbten Vierkanthölzern gebaut (Sylvesterrakete).

Für die GCode Erzeugung habe ich meine eigene Software mit JavaScript und HTML geschrieben, in der ich alles was ich so aus ct Artikeln und anderem aus dem Netz gefundene zusammengetragen habe. Damit kann ich auch den Abbrand an beiden Enden beliebig einstellen und die Stützpunkte auf den Profilen neu verteilen. Wollte ich ähnlich wie die GRBL-Anpassung bei Github einstellen. Ich habe noch ein Problem bei Tragflächen, die aus mehreren Segmenten zusammengesetzt werden, aber für Tragflächen mit nur einem Segment sollte das schon gut klappen.

Profili scheint mir der am meisten zitierte Anbieter für kommerzielle Software zu sein und mit 60 Eur auch noch gut im Hobby Budget darstellbar. Hatte selber schon überlegt, das anzuschaffen. Ale anderen scheinen mir nicht mehr gepflegt, deutlich teurer oder weniger Features zu haben.
Wo hast Du das mit der ungünstigen Schnittfühung gelesen ?

Und dann interessiert mich auch noch Dein Nuri-Projekt. Ich war nämlich auch schon auf der Suche nach einem Plan für eine Nurflügler FPV-Platform...

Gruß Tjwan
 
FPV1

Banggood

Oben Unten