Polarsandtisch

Guten Abend

Hab am Projekt Scara Sandtisch weiter gemacht.

Die Arme der Sandplatten Halter sind jetzt nun aus Aluminium hergestellt,
da die ersten aus Plexiglass hergestellt wurden und
dieses Material zu spröde für diese Anwendung und deswegen gebrochen ist.

Der Riemen vom Äuseren Arm hat jetzt einen Spanner bekommen damit er straffer anliegt


Mechanisch ist der Scara sehr gelungen.

Mich quält aber immer noch meine Inkompetenz bezüglich der Programmierung.

Ich habe sehr viel Elektronik von anderen zu Teil aufgegebenen Projekten rummliegen.

  • Arduino Uno mit CNC Shield
  • Arduino Mega mit Ramps 1.4
  • RPI 3 +4 mit HAT Stepper driver
  • Nema 17 Bipolar Motoren

Könnt ihr mir bitte zur besten Auswahl der Hardware helfen und bei Programmieren auch.
Habe es mit Arduino Mega und Ramps 1.4 mit Marlin versucht
aber komme aber nicht wirklich weiter.

Habe versucht die neueste Version von Marlin zu konfigurieren, ich war erfolglos.
Habe Marlin Vitaminrad erfolglos versucht.

Ich zweifle so lansam das Marlin überhaupt das richtige für einen SCARA ist.

Also hab ich michh in Linux CNC versucht, auch da hab ich keinen Druchblick.
So langsam komme ich an meine persönlichen Grenzen.

Könnt ihr mir bitte helfen den richtigen Weg zu finden.

Danke Klaus

1 Like

Glad to see you again. I hope you are doing well. The machine came back much stronger, by the looks of it.

The way I see it, there are two main options:

  1. Flash with a very simple Marlin. Marlin will not know it is a scara machine, it will just be moving two motors. I worked through this with another scara bot and the conclusion is that you would be able to take any .thr pattern and convert it into gcode that looks like rectangular code, but is actually the two angles. Marlin won’t know the difference. This is my preference, because it is using very common tools, except for the very simple script to do the conversion. The script and the equations I used are in a post I linked earlier.

  2. Use the python script on a raspberry pi to control the arm directly. I linked to that post earlier. It doesn’t use linuxcnc, but setting up a raspberry pi takes a bit of reading and there are not many users. The first user finds half the problems. The second users finds about half of what is remaining, etc. So being the second user without the knowledge to fix issues can be frustrating. But it is basically exactly what you’re looking for.

If you want to start down option 1. Then start with the mega/ramps and this firmware:

https://github.com/V1EngineeringInc/MarlinBuilder/releases/download/508/V1CNC_Ramps_Dual-2.0.7.2-src.zip

It isn’t a perfect fit, but it should be able to spin the motors and let us test some gcode.

Do you have any endstop sensors?

Ja ich habe 2 Reedkontakte als Endstops montiert um eine Start/Home position zu haben.

Neat!

Don’t try to home with this firmware. It is expecting too many endstops.

https://github.com/V1EngineeringInc/MarlinBuilder/suites/1728007278/artifacts/32713996

This version should home X and Y. You may need a github account to see it (it is from our nightly builds).

This is the post where I worked out how to convert a thetarho (thr) file into the X, Y gcode for a scara table:

In that post, there is a link to a website, repl.it where I posted some code that will run in the web browser. You can take a thr file from sandify.org and upload it to that site, run the code, and download a gcode file that should work for your machine. It assumes 0,0 is fully extended, and up.

repl.it

The other arbitrary part is how many motor rotations is one “Unit” in Marlin. Marlin thinks everything is in mm, but we are moving a motor in an angle. In the script, I set MOTOR_X_UNITS_PER_ROTATION for each motor to 6. What this means is that in the gcode output, if I send the motor from 0 to 6, it will do one full rotation. For the elbow, I should stay between 0 and 3, since it only goes one half of a rotation.

Marlin will convert that arbitrary unit into a count of steps to send to the motor driver. This is accomplished with the configuration variable DEFAULT_STEPS_PER_MM. You can change this on a running system by sending M92 X<xsteps/unit> Y<ysteps/unit>.

I’m going to make some guesses here:

  • I’m assuming a 1:1 ratio from the motor shaft to the arm angle.
  • I’m assuming you have drv8825s in the RAMPS
  • I’m assuming you have all the jumpers installed underneath them (1/32nd microstepping)
  • I’m assuming you have 1.8deg steppers, or 200 whole steps/rotation.

200 steps/rotation * 32 microsteps/step * 1rotation/6units = 1066microsteps/unit

So the command to set that would be: M92 X1066.7 Y1066.7. To save that, you would send M500.

Once that is set, a command like: G1 X3.00 F60 should move from 0 to 180 degrees in 3 seconds.

If we get that far, we are doing really good. At that point, you should be able to run this file.

Danke
Als erstes muss ich mich bei [Jeffeb3] bedanken der sich um mein Problem kümmert.

Ich lese den Beitrag immer und immer wieder durch um alles richtig zu verstehen.
Leider brauche ich noch ein paar Tage um alles umzusetzen da mir momentan die GT2 Riemen fehlen und diese erst im neuen Jahr geliefert werden.

Ich gebe nicht auf.
Nun zu den Einstellungen:

  • das Verhältnis Motor / Antriebszahnrad = 3:1 (20:60 Zähne)
  • im Ramps habe ich 8825 Motortreiber
  • alle Jumper sind gesetzt (32 Microschritte)
  • 1.8°Stepper mit 200 ganze Schritte pro Umbrehung

Die Armlänge von Mitte auf Mitte beträgt 155 am äuseren und 155 mm am Inneren Arm.
Als Sand wird Schnee-weiser Laaser Marmor -Staub verwendet, welcher aus einem Absetzbecken eines Steinmetzes stammt.

In der Zwischenzeit habe ich auch noch eine Vorrichtung gebaut um die LED Alu-Schiene welche den Sand begrenzt rund zu biegen.

Bis die Riemen da sind werde ich mich um den Holztisch kümmern in welchen die Mechanik danach eingebaut wird.

servus
Klaus

Ok, so the steps/mm should be 3x larger.

The 155/155mm is good, and it makes no difference to the result. The thr files are normalized between 0,1 and Marlin is really controlling angles. It would be more complicated if they weren’t equal lengths, but nothing major.

You really are making a beautiful machine. I look forward to seeing it assembled.

Hallo Jeffeb3

ich hab mal eine Frage.
ist es möglich in Sandify noch eine weitere Sandtisch Form wie “Scara” einzufügen um die Berechnung direkt dort zu machen?

servus
Klaus

It is possible, but I am it sure who it would be for. This is the second machine (to my knowledge) and I have a lot more users of sandify for the other two types (thr and cartesian).

Is there something that is giving you trouble with the repl script?

Guten Tag

Jeffeb3 danke nochmal für die Hilfe und dem Skript.

Es funktioniert Super soweit ich das bis jetzt beurteilen kann.
Leider fehlen mir noch die Riemen um die Kugel im Sand zu rollen.

Momentan hab ich den Arduino geflasht so wie sie es oben beschrieben haben.

Ich bin sicher dass es momentan nur wenige Scara Sandplotter gibt,
genau wegen den Problemen mit der Software,
welche sie mit dem Skript ausgezeichnet gelöst haben.
Jeder technisch versierte Freund der meinen SCARA gesehen hat
wollte ihn gleich nachbauen.

Ich soll auch die Kinematischen bewegungen der Arme nicht verstecken
damit man sie arbeiten sieht wie bei einer Skelett Uhr.

Das werde ich in meinen Gedanken natürlich zum Tisch bau mit einfliesen lassen.

Alle Zeichnugen /Bilder werde ich nach bendigung des Projektes natürlich Öffentlich zur verfügung stellen. Hab noch nie ein Git-Projekt gemacht desegen denke ich wird es Zeit dafür.

Eine Kit kann natürlich auch von V1 verkauft werden falls Interesse besteht.

Ich hatte die Idee den Scara in die Sotfware mit einzubinden damit
wäre Sandify eine komplette Sammlung aller möglich Tischarten die es gibt einen Sandplotter zu bauen.
Ich kenne den Aufwand der Arbeit nicht,
deswegen kann ich es gut verstehen wenn sie es nicht machen da sie darin keine Zukunft sehen.

Servus
Klaus

I would love to do it. I just have a long list of other things I also love to do. I will post a github issue and I will see where it goes.

One of the tricky parts about developing sandify is trying to avoid tripping up existing users with new features.

Guten Tag

meinen Prototyp aus Plexiglas hat jetzt ein Freund.
Er hat momentan mehr Zeit als ich und
hat deinen Code genau so wie von dir beschrieben
sofort zum laufen bekommen.

Sein Scara zeichnet in der Schleife ein Viereck von innen nach aussen
vom umgewandelten Code.

Vielen Dank Jeffeb3 für deine Geduld.

servus
klaus

1 Like

Hab einige Fragen an euch.

was verwendet ihr für ein Material in welcher Stärke als “Sandträger / Zeichnungsunterlage”.
Wie gross sind eure Kugeln und wie stark eure Magneten?
Sand oder Backpulver?

servus Klaus

That is awesome!

Baking soda has more details, but the sand is smoother.

The tray under my zenxy prototype is 1/8" hardboard. On the sisyphus table, it is about 1/8" and it is aluminum composite with sand colored fabric on the top.

The magnet in my prototype is 1/2"x1/2" cylinder magnet. It is very strong. The ball is 1/2", but 3/8" would be good too.

Now there’s an idea. That probably helps a lot with noise.

I think it does. It is hard to tell. This one isn’t very fast and completely silent.

2 Likes

well, looks like I gotta vacuum the baking soda out, again…

Hallo Klaus,

ich bin auch gerade dabei einen Polaren Sandtisch zu bauen und habe im Moment noch Probleme mit dem Code bzw. dem Programmieren der Bewegungen. Dein Projekt sieht sehr gut aus und hat vom Grundaufbau den gleichen wie mein Roboter.
Ist es möglich das du alle deine Dateien an Code die auf deinem Arduino laufen bei github oder so hochlädst? Dann könnte ich den Code besser verstehen und auch Stücke des Codes für meinen Tisch übernehmen.
Ich würde mich sehr über deine Hilfe freuen.

Gruss aus Berlin
Arthur

1 Like