Mega2560+RAMPS 1.6 upcylcing
14. February 2019 15:45
Hallo Zusammen,

da ich ich mehrere Drucker zerlegt habe und nun ungenutzte Hardware herumliegt, habe ich ein neues Projekt begonnen es geht um das upcylcing des Mega2560+RAMPS 1.6 sowie eines raspi PI3+.
Dabei soll Mega2560+RAMPS 1.6 als Hardware-Controller für die Peripherie sprich Stepper Motoren, Temperartursensoren, LEDs und Magnetventile, Solenoids bzw. digitaler Servo's dienen.
Die Steureung und das Programm soll jedoch auf dem raspi Pi3 liegen, die Steuerung soll dann über das ausführen von Phyton Code erfolgen.
Auf dem raspi ist Raspian als OS installiert. über HDMI ist dort ein 7" touch LCD angehängt.
Der raspi hat auch einen Webserver, ssh , installiert damit man über LAN, WLAN erreichen kann.

Jetzt kommt jedoch die Krux wie verbindet man einen Mega2560 mit einem Raspi PI3+ am besten es gibt drei Möglichkeiten.

1.) via usb die einfachste Methode (Jedoch verbratet man einen der wenigen USB Anschlüsse) Datendurchsatz 115,2 Kbit/s
2.) via I2C einfach 4 Drähte und gut ist. Jedoch hat man hier max. 400Kbit/s Datendurchsatz
3.) via SPI mit Speed-Bus Anpassung, ermöglicht den größten Datendurchsatz

Punkt 1 und 2 habe ich schon ausprobiert.

Bei Punkt 3 habe ich ein Paar Probleme die maximale Geschwindigkeit errechnet sich aus einem Teiler des schwächsten CPU-Geschwindigkeit in diesem Fall dem Mega2560, dessen max. CPU Freq. bei 16 Mhz liegt, jedoch wird für die SPI Bus-Geschwindigkeit max. 12MHz empfohlen, stabil läuft es mit 8 MHz, wenn man dies auf dem Mega 2560 als auch auf dem raspi PI3+ konfiguriert, ergibt sich rechnerisch ein max. Datendurchsatz von 1 Mbit/s.

Ich würde gerne die Kopplung über SPI laufen lassen und das bei höchstmöglicher stabiler Performance. I2C würde ich im Moment zurückstellen, da am Ramps an dessen I2C ein PCA9685 16-Channel 12-bit PWM/Servo Driver hängt.

Wie würdet ihr sowas angehen, was haltet ihr generell von diesem Upcycling

Gruss

Josef

7-mal bearbeitet. Zuletzt am 14.02.19 16:03.
Re: Mega2560+RAMPS 1.6 upcylcing
15. February 2019 09:15
Hallo zusammen,

nachdem ich die fliegende Verkabelung auf einem Breadboard, durchgeführt hatte.



Sieht die Verkabelung wie oben auf dem Bild aus.

Ich habe mir mal auch die Unterlagen des RAMPS angeschaut.



sowie die des LCD-Display mit SD-Cardreader.



Die GPIO Leiste des Raspi sieht wie folgt aus:




Da ich in meinem Aufbau kein LCD-Display am RAMPS anschliessen werde, nutze ich die Möglichkeit am LCD-Adapter EXP2 um die benötigten Leitungen direkt dort mit Kabel abzugreifen. In den Unterlagen des RAMPS steht das pin 9 am EXP2 NC (nicht beschaltet) ist. Ich habe mir die Adapterplatine angeschaut und auch durchgemessen. der PIN 9 am EXP2 ist auf GND vebrbunden. Somit liegen alle benötigten Leitungen die ich für die SPI-Kopplug zum Raspi brauche an. EXP2 -> Pin1=Miso, Pin2=SCLK, Pin6=Mosi,Pin9=GND Diese werden dann wie folgt am Raspi verbunden: SPI0->(Pin19=Mosi, Pin21=Miso, Pin23=SCLK, Pin25= GND) oder SPI1 ->(Pin38=Mosi, Pin35=Miso, Pin39= GND,Pin40=SCLK )

Kann mir jemand sagen für was die Leitungen EXP2 -> Pin3=E1, Pin5=E2 dienen, müssen diese evtl. auch mit dem Raspi verbunden werden für SP0 -> Pin24=Cs0, Pin26=Cs1 oder für SPI1-> Pin26=Cs0 ?

Grüße

Josef

1-mal bearbeitet. Zuletzt am 15.02.19 09:17.
Re: Mega2560+RAMPS 1.6 upcylcing
18. February 2019 08:40
Hallo zusammen,

da ich auch noch V-Slot Profile herumliegen habe, wird aus dem Upcycling kein neuer Drucker, sondern ein Spassobjekt, ein Coktailautomat cool smiley.

Damit man sich den einen oder anderen Drink, stillvoll in Maker Manier gönen kann.















hier kommt dann auch das Arduino Mega2560 mit RAMPS und Raspi zum Einsatz.

Grüße

Josef

1-mal bearbeitet. Zuletzt am 18.02.19 08:41.
Re: Mega2560+RAMPS 1.6 upcylcing
19. February 2019 09:33
SPI:
MOSI, MISO, SCLK und GND reichen. Denke daran, daß der Mega2560 mit 5V sendet,
Das könnte der RASPI ggf. übelnehmen. [raspberrypi.stackexchange.com]

Herzl. Grüße
Re: Mega2560+RAMPS 1.6 upcylcing
20. February 2019 04:14
Danke AlterBastler,

ich habe mir nun einen 8-kanal Level-Shifter bestellt. Wenn alles dann vorhanden ist. Würde ich dann erst einmal die Hardware zusammenbauen, d.h. ein Gehäuse Drucken indem, dann alles untergebracht ist.

- Raspi Pi 3
- Arduino Mega2560
- Ramps 1.6
- Level-Shifter
- DC-DC Stepdown Converter 5V
- PCA9685

Viele werden sich Fragen wie soll das ganze funktonieren. Ich werde es mal beschreiben wie ich es mir Vorstelle, jedoch weiß ich nicht ob ich alles selber umsetzen kann insbesondere wenn es um die Firmware und Applikationsprogrammierung geht. Auf dem Arduino soll eine angepasste repetier oder merlin Firmware laufen, der Barbot benutzt hierfür die x und z Achsen des Ramps1.6 sowie die dazugehörigen Endschalter, evtl. werden
die Lüfter Ausgänge zu Ansteuerung der LEDs sowie ein Notaus-schalter genutzt, das war es schon was auf dem Arduino benötigt wird. Dann kommt der Raspi ins Spiel, an im sind über sein GPIO ein Schlüsselschalter und ein Münzautomat angeschlossen. Auf dem Raspi soll ein Webserver laufen, auf dem man die einzelnen Coktail auswählen kann. die Cocktail sollen dann via gcode an den Arduino geschickt werden (für jede Zutat gibt es einen x0 Befehl sowie einen darauf folgenden z0 Befehl sowie einen Pause Befehl dieser wird zur Megensteuerung genutzt, bevor z0 wieder auf z=min fährt). Für jeden Coktail gibt es so einen GCODE indem die einzelnen benötigten Zutaten (12 Flaschen) abgearbeitet werden. Das versenden den gcodes vom Raspi an den Ardunio erfolgt nur A. wenn der Schlüsselschalter auf manuell steht oder wenn vom Münzautomat ein Signal ansteht das der definierte Münze eingeworfen ist. Auf dem Raspi ist für die Steuerung und Abfrage der GPIO bzw. zur kommunikation Python 3 installiert, sowie das rpi.gpio.

Am Raspi hängt ein 7" touch Display damit man die Auswahl am Gerät treffen kann, zusätlich wäre es möglich vom Smartphone aus via WLAN die zu machen.

Ich hoffe dass es hier den einen oder anderen Guru gibt der einen dabei unterstützen kann. Ich habe auf github bereits ein Projekt hierfür angelegt

Grüße

Josef

2-mal bearbeitet. Zuletzt am 20.02.19 04:20.
Re: Mega2560+RAMPS 1.6 upcylcing
20. February 2019 05:30
Hallo Josef,

kennst du Klipper? Im Prinzip arbeitet die Klipper Firmware genau so wie du das beschreibst. Zumindest was die Achsen betrifft. Der Raspi steuert den Arduino. Allerdings über USB was du ja nicht wolltest. Aber vielleicht lässt sich dort was entwickeln um eine andere Schnittstelle zu bekommen?

Meine Idee wäre nun folgendes. Du installierst Octoprint und Klipper. Auf dem Pi baust du zusätzlich ein Webinterface auf dem du die Getränke anbietest. Wenn du nun ein Getränk auswählst, schickst du mittels Curl Befehl (wie auch bei S3D) direkt den gcode an Octoprint und lässt ihn gleich ausführen.

Ist mir gerade so eingefallen. Ich hoffe ich hab keinen Denkfehler und dein Vorhaben richtig verstanden.

Liebe Grüße
Patrick
Re: Mega2560+RAMPS 1.6 upcylcing
20. February 2019 10:19
Für die Firmware könntest Du dieses Projekt als Grundlage nehmen, das enthält schon fast alles was Du brauchst.
[github.com]

Herzl. Grüße
Re: Mega2560+RAMPS 1.6 upcylcing
20. February 2019 13:20
Hallo Alterbastler,

ich kenne das Projekt von sidlauskaslukas passt jedoch nicht zu meinem Vorhaben, es wird kein Ramps eingesetzt sondern nur 1 Stepper Motor, für das betätigen der Dispenser wird ein Digitalservo HS7955TG oder MG996R verwendet, das über ein Micro-Maestro angesteuert wird allein das Micro-Maestro kostet über 25€ die Kommunikation erfolgt über das HC05 Bluetooth Modul, die Smartphone APP ist ionic dev-app oder ionic-creator.
Ich habe bereits auf github ein eigenes Projekt angelegt und ge-forkt github Newbie71 barbot. Es liegt dort auch eine BOM in Excel mit allen Links für die Teile. Sowohl das Projekt von sidlauskaslukas und sexycyborg treffen nicht auf das zu was ich möchte, deswegen der eigene Fork, der Barbot von sexycyborg ist die Hardware Basis jedoch sind die Kosten Ihrer BOM und Quellen bei über 750€ ohne Zoll + Mwst.
Ich habe mir bein openbuild die Solidworks Parts library heruntergeladen damit man es in OpenScad & Co laden kann.
Ich bin auch noch an einem 2. Gerät dran github newbie71 hector9000 dieser läuft rein auf einem rpi mit pca, d.h. ohne Arduino

2-mal bearbeitet. Zuletzt am 20.02.19 13:25.
Re: Mega2560+RAMPS 1.6 upcylcing
20. February 2019 16:18
Sorry, ich hatte Dich so verstanden, daß Du 3D-Drucker Firmware dafür anpassen willst, das halte ich persönlich für Overkill.
Aber Du bist ja schon weiter als ich dachte.

Herzl. Grüße
Re: Mega2560+RAMPS 1.6 upcylcing
23. February 2019 06:39
Für eine direkte Ansteuerung des Druckers über gcode (z.B. shutdown) nutze ich auf dem Raspi pronterface => prconsole.
Das ginge dann auch ohne Octoprint.
D.h. eine Cocktailauswahl fürt dann zur Ausführung eines bash-scriptes, das die gcode Befehle via prconsole schickt. Alternativ über ein python-script, was die pronterface-API nutzt.

Zum Testen kann man die gcode-Befehle einzeln über die prconsole manuell eingeben.

Mal so als Anregung ;-)

Gruß

Knut
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen