Raspberry Pi Programmierung, Peripherie

OP #6363636
Lesenswert?

Einen guten Freitag Nachmittag allen!
Ich möchte die Peripherie des Raspberry PI mit maximaler Geschwindigkeit 
nutzen, die Programierung der Peripherie soll auf dem vorinstallierten 
Linux mit C/C++ erfolgen.
Das Datenblatt des Modells 4B habe ich mir runtergeladen und auch 
reingeschaut, die Infos erschlagen einen wenn man kein Profi ist. Ein 
Tutorial das mich durch das Datenblatt mit Schaltungs- und 
Programmierbeispielen leitet wäre da natürlich perfekt.

Projekt als Motivation:
Kleine Hobbyfräsmaschine mit 3 Achsen + eigene Bahnsteuerung.
Bedienung soll über eine GUI in Linux(Raspberry Pi bedingt) erfolgen, 
Programme werden als Textdatei eingelesen und verarbeitet.

P.S. Sollte es besser geeignete Plattformen als den RPI geben bin ich 
nicht abgeneigt. Den RPI habe ich gewählt wegen der großen Community, 
was nicht zu unterschätze ist denke ich.
Gast #6363991
Lesenswert?

It E. schrieb:

> Kleine Hobbyfräsmaschine mit 3 Achsen + eigene Bahnsteuerung.

Vergiss es. Nicht unter Linux. Auch nicht mit RT-Kernel. Zwar Echtzeit, 
aber zu langsame Echtzeit für eine praktisch brauchbare Achsensteuerung.

Bare metal geht, aber dann kann man das auf anderer Hardwarebasis für 
viel weniger Geld umsetzen. Man profitiert dann schlicht nicht mehr von 
den Vorteilen eines Linux "dahinter".

Sprich: Mach' die eigentliche Steuerung mit unabhängiger Hardware ohne 
OS. Koppel das dann an einen RasPi.

Tipp: Viele Maschinensteuerungen auf PC-Basis funktionieren im Prinzip 
ganz genauso, sie haben eine dedizierte Hardware (ein µC-System) für den 
harten Echtzeitkram als Karte eingebaut.
OP #6364273
Lesenswert?

Timmo H. schrieb:
> Atmega mit Grbl gesteuert von einem RasPi über UART
Das ist ein sehr gutes Vorlagenprojekt! Ich müsste "nur" den Schaltplan 
abändern um Schrittmotoren bis 5A dranhängen zu können. Gefällt mir gut, 
dass man das mit AVRs realisieren kann.


c-hater schrieb:
> Tipp: Viele Maschinensteuerungen auf PC-Basis funktionieren im Prinzip
> ganz genauso, sie haben eine dedizierte Hardware (ein µC-System) für den
> harten Echtzeitkram als Karte eingebaut.
> ...
> Sprich: Mach' die eigentliche Steuerung mit unabhängiger Hardware ohne
> OS. Koppel das dann an einen RasPi.
Ja das GRBL-Projekt ist die ideale Vorlage!


Was könnte das kosten so eine Leiterplatte herstellen und bestücken zu 
lassen (ganz nach unten scrollen)?
http://www.jtronics.de/elektronik/xmega-tinyg-cnc-controller/
Gast #6364397
Lesenswert?

Ersetze Mega durch STM32 oder LPC1768/9. Letzteren als SKR V1.4 fertig 
mit SM Treibern für ca. 60 €. Da läuft Smoothieware drauf, ein fertiges 
binary das zur Laufzeit aus einer Datei konfiguriert wird.
Für die STM32 gibt es grbl Adaptierungen die über 100 kHz 
Schrittfrequenz schaffen.
Gast #6364543
Lesenswert?

c-hater schrieb:
> It E. schrieb:
>
>> Kleine Hobbyfräsmaschine mit 3 Achsen + eigene Bahnsteuerung.
>
> Vergiss es. Nicht unter Linux.

Beim einem DMA funkt der Kernel wohl nicht dazwischen:

https://github.com/Nikolay-Kha/PyCNC

[code]
This module can copy bytes which represent GPIO states from RAM buffer 
directly to GPIO with some clock based on main chip internal oscillator 
without using CPU's cores.
[code]
Gast #6365353
Lesenswert?

Ich mache es immer zweigeteilt. Für Gui und Logik-Kontrolle nehme ich 
Linux. Aber wenn ich Echtzeit-Steuerung braucht, dann setze ich immer 
noch einen eigenen ARM-M0 oder FPGA daran. Da funkt dann nichts 
dazwischen oder stürzt ab.
Und so ein kleiner M0 kostet nicht viel.
Gast #6365627
Lesenswert?

It E. schrieb:
> Ein
> Tutorial das mich durch das Datenblatt mit Schaltungs- und
> Programmierbeispielen leitet wäre da natürlich perfekt.

Kauf die ein Buch wie z.b. "coole projekte mit raspberry pi". Was ich 
gemacht habe. Da wird alles wichtige erklärt.

Oder versuchs hiermit wenn du Englisch kannst. 
https://www.chip.de/downloads/Raspberry-Pi-Kostenloses-Tutorial-als-eBook_108843032.html
Gast #6368420
Lesenswert?

It E. schrieb:
> Ist halt nur die Frage ob M0 oder M3. Könntet ihr einen brauchbaren
> modernen Vertreter beider Typen benennen?

STM32L031
STM32L073
STM32F303

Der letzte ist ein M4F, aber billiger und in vermutlich jeder Hinsicht 
besser als sein Vorgänger STM32F103... Nein doch nicht, seine Ausgänge 
sind etwas in Summe weniger hoch belastbar.

http://stefanfrings.de/stm32/index.html
Gast #6368459
Lesenswert?

It E. schrieb:
> Ist halt nur die Frage ob M0 oder M3. Könntet ihr einen brauchbaren
> modernen Vertreter beider Typen benennen?

Brauchbar sind die glaube ich alle. Aber schon alleine bei ST hast du 
die unendliche Qual der Wahl. Und da eine FPU den µC gerade im 
Hobbybereich kaum nennenswert teurer macht, würde ich die M3 sowieso 
links liegen lassen.
https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
Die STM32F3 haben mehr Gimmicks für analoge Signalverarbeitung, die F4 
einiges mehr an digitalen Interfaces wie Ethernet, SDIO, FSMC. Da muss 
man sich mal durch die Perfomance Klassen hangeln.
OP #6371277
Lesenswert?

Ich habe einen relativ simplen Schaltplan für einen Steppermotor bis 30V 
und 2A Phasenstrom gefunden, man kann für knappe 4 Euro die 
vorgefertigte Platine kaufen, bestücken soll wohl auch flott gehen. 
Programmbeispiel ist auch dabei.

Website mit Artikel:
https://www.mikrocontroller-elektronik.de/schrittmotortreiber-rn-stepp297/

Ich denke damit mache ich mal meine ersten Gehversuche.

Wenn ich angenommen Holz und Aluminium damit fräsen können will, reicht 
dafür dieser Motor: Denki Schrittmotor Typ 103-770-1640?

Kann jemand eine ko konkrete Empfehlung aussprechen?
Gast #6371447
Lesenswert?

Ganz ehrlich: Ich würde diese Boards im 21. Jahrhundert nicht mehr 
verwenden. Die L29x Chips darauf scheinen uralte Restbestände zu sein.

Heute gibt es deutlich kompaktere Lösungen, weil sie weniger 
Wärmeverluste haben. Zum Beispiel:
https://www.amazon.de/Paradisetronic-com-DRV8825-Schrittmotor-Treiber-Modul-K%C3%BChlk%C3%B6rper-CNC-Shield/dp/B01JIW13RY

Damit bekommst du auch noch Microstepping ohne Aufpreis.
OP #6371576
Lesenswert?

Theor schrieb:
> Vielleicht ist diese Seite von allgemeinem Interesse.
> Magst Du mal den Link posten?

Das ist die Website:
https://www.precifast.de/spannkraft-schnittkraefte-berechnen/

Hier wird die Spankraft/Schnittkraft berechnet, aus welcher dann das 
erforderliche Motormoment berechnet wird:
https://www.precifast.de/schrittmotor-auslegung-und-auswahl/

Die Berechnung kommt fast ganz am Schluss der Website, daher hier die 
Formel: M_min = (F_min*p) / (2*pi)
F_min ist die Schnittkraft
p ist die Gewindesteigung der Spindel

Der aufwändige Teil ist aber die Berechnung der Schnittkraft.
OP #6371614
Lesenswert?

Stefan ⛄ F. schrieb:
> Ganz ehrlich: Ich würde diese Boards im 21. Jahrhundert nicht mehr
> verwenden. Die L29x Chips darauf scheinen uralte Restbestände zu sein.
> Heute gibt es deutlich kompaktere Lösungen, weil sie weniger
> Wärmeverluste haben. Zum Beispiel:
> 
https://www.amazon.de/Paradisetronic-com-DRV8825-Schrittmotor-Treiber-Modul-K%C3%BChlk%C3%B6rper-CNC-Shield/dp/B01JIW13RY
>
> Damit bekommst du auch noch Microstepping ohne

Komme nicht aus der E-Technik Ecke, danke für den Hinweis und Link! 5€ 
pro Modul ist super, da bastel ich natürlich nix mehr.
OP #6371994
Lesenswert?

Nachdem ich nun einige Datenblätter durchgeschaut habe (Phytron, Isel, 
Trinamic), glaube ich sind Schrittmotoren nicht ideal für eine CNC-Fräse 
aus diesen einfachen Gründen:

- Schnelle Verfahrgeschwindigkeiten bedeuten hohe Drezhalen des 
Schrittmotors, dann bricht aber das Haltemoment sehr stark ein.
- Eine hohe Verfahrgeschwindigkeit durch niedrige Drehzahl und hohe 
Gewindesteigung zu erzielen ist wie man sich vorstellen kann auch nicht 
möglich. Selbst wenn das möglich wäre, steigt das erforderliche 
Haltemoment mit zunehmender Steigung an (Haltemoment_min = Schnittkraft 
* Steigung / (2*pi)

Ich habe die Berechnungsdaten von dieser Beispielrechnung als Basis 
genommen:
https://www.precifast.de/spannkraft-schnittkraefte-berechnen/

Fazit:
Wenn man sich damit zufrieden gibt max. 1mm in Alu zuzustellen 
(Stirnfräsen) und langsame Verfahrgeschwindigkeiten in Kauf nimmt, dann 
fährt man mit Schrittmotoren vermutlich doch ganz gut (müsste man aber 
nachrechnen).
Klar könnte man durch Übersetzungen auch noch viel rausholen, aber dann 
wird das ganze System ungleich komplizierter, ich finde Direktantriebe 
am besten.
Da ich kein Vermögen ausgeben will werde ich die Idee mit Schritmotoren 
vorerst nicht ganz verwerfen.

Eigentlich müsste man Servomotoren mit Getriebe verwenden. Ist das viel 
komplexer in der Ansteuerung? Dass man die Position auswerten muss ist 
klar, da ich hier ja nciht schrittwreise fahre. Könnt ihr mir 
weiterhelfen? Ich begebe mich dann auch mal auf die Suche in guugel.
OP #6372125
Lesenswert?

It E. schrieb:
> Wenn man sich damit zufrieden gibt max. 1mm in Alu zuzustellen
> (Stirnfräsen) und langsame Verfahrgeschwindigkeiten in Kauf nimmt, dann
> fährt man mit Schrittmotoren vermutlich doch ganz gut (müsste man aber
> nachrechnen).

Jetzt muss ich mich doch nochmal korrigieren, habe da etwas falsch 
verstanden. Zuerst muss man zwischen Halte- und Betriebsdrehmoment 
unterscheiden. Das Haltemoment ist zweitrangig, das Betriebsdrehmoment 
ist wichtig und das bekommt aus dem Datenblatt aus dem 
Drehmoment/Drehzahl Diagramm. Das Haltemoment ist das Betriebsdrehmoment 
bei Drehzahl 0.

Stellt man viel zu, muss man halt langsam verfahren, dann hat man das 
hohe Betriebsdrehmoment, im Eilgang oder bei wenig Zustellung oder bei 
Holz, braucht man nicht so viel Drehmoment, demnach kann man auch 
schneller verfahren.

Fazit: Man kann auch mit Schrittmotoren gute CNC-Fräsen bauen, aus 
meiner Sicht sollten die aber ein Drehmoment 4-5Nm oder mehr haben wenn 
man Alu ordentlich bearbeiten will.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren