Hallo an alle, für meine Abschlussarbeit muss ich einen digitalen Zwilling für eine Fräsmaschine entwickeln. Die Bewegung der Maschine wird über vier Schrittmotoren realisiert. ein Schrittmotor für z-Achse ein Schrittmotor für x-Achse zwei Schrittmotore für y-Achse Ziel ist, die Drehwinkel jedes Motors zu erfassen und die Daten in einem digitalen Zwischenspeicher (Cloud) zu speichern. Die Winkelposition wird über einen Magnetic Encoder iC, welcher auf Hall-Effekt beruht, überwacht. Der Sensor erstellt ein Sinus Signal, welche mit der untenstehenden Frequenz abgetastet. Der Sensor ist so konfiguriert, dass ein Signal mit 256 Flanken (steigend und fallend) für eine Umdrehung von 360° am Ausgang zurückgibt (Winkelauflösung 1,4°). Nach dem Datenblatt hat der Sensor eine Oszillator-Frequenz von 256 KHz. Wenn ich richtig gerechnet habe, ist die Periode für eine Flanke ca. 4 µs. Es gibt 4 Sensoren, die sehr oft gleichzeitig ausgelesen werden müssen. Keine Flanke darf verloren werden. Der Mikrocontroller, den ich verwende, ist Arduino Mega 2560. Meine Idee ist die Steigende Flanken über GPIO mit dem Interrupt auszulesen. Wir wissen schon, dass die Interrupts in Arduino Prioritäten haben. Ich fürchte mich, wenn die Flanke gleichzeitig kommen, dann wird z.B. ein Interrupt ausgelöst, danach verliere ich andere Flanken. Ich weiß, dass mit dieser Idee etwas nicht stimmt ist. Kann einer von euch eine Lösung vorschlagen? Ich möchte lieber mit dem Arduino weitermachen, aber eine Mikrokontroller STM32 bzw. ein Entwicklungsboard NUCLEO-F303RE ist auch vorhanden. Ich werde auf eure Rückmeldungen freuen. Bei jeder Frage bitte nicht verzögern. Mit freundlichen Grüßen
Die AVRs haben Counter, der STM sehr sicher auch. Die Beschreibung von deinem Encoder verstehe ich grammatikalisch nicht. Typenbezeichnung? Warum kein digitaler Encoder? Aber eigentlich ist es deine Abschlussarbeit, und dazu gehört auch Theorie, Recherche und Konzeption. Die Umsetzung ist idR das dünnste Brett.
Klingt eher nach einer Aufgabe für Capture and Compare. Allgemein solltest du ein Polling mit entsprechender hoher Taktung in Erwägung ziehen. Interrupts von multiplen Quellen, die sich im schlimmsten Fall gegenseitig überbieten sind i.d.R. keine gute Idee. Ausser dein Controller hat verschiedene Kerne mit verschiedenen Interruptvektoren, aber wäre dann das klassische mit Kanonen auf Spatzen schießen :)
:
Bearbeitet durch User
Milad E. schrieb: > Ziel ist, die Drehwinkel jedes Motors zu erfassen und die Daten in einem > digitalen Zwischenspeicher (Cloud) zu speichern. Und was will man an diesem Speicherort damit tun ? Verrate doch einfach mal, welcher Sensor dafür angedacht ist.
... schrieb: > Die AVRs haben Counter, der STM sehr sicher auch. > Die Beschreibung von deinem Encoder verstehe ich grammatikalisch nicht. > Typenbezeichnung? Warum kein digitaler Encoder? Es tut mir leid, falls die Beschreibung nicht korrekt ist. Ich habe versucht, es verständlich zu schreiben, aber das war mir schwierig, ganzes Datenblatt des Sensors in einige Zeile zusammenzufassen. Die Sensoren sind schon am Gerät eingesetzt. Hier ist ein Link zum Sensor, falls du Interesse hast. https://www.ichaus.de/product/iC-MA
Schorsch X. schrieb: > Milad E. schrieb: >> Ziel ist, die Drehwinkel jedes Motors zu erfassen und die Daten in einem >> digitalen Zwischenspeicher (Cloud) zu speichern. > > Und was will man an diesem Speicherort damit tun ? > > Verrate doch einfach mal, welcher Sensor dafür angedacht ist. Die Daten werden aus der Cloud über eine Schnittstelle aufgerufen und dann in eine CAD-Software weitergeleitet, um die Bewegungen des Gerätes virtuell in Echtzeit zu überwachen. Hier ist ein Link zum Sensor: https://www.ichaus.de/product/iC-MA
... schrieb: > Die AVRs haben Counter, der STM sehr sicher auch. > Die Beschreibung von deinem Encoder verstehe ich grammatikalisch nicht. > Typenbezeichnung? Warum kein digitaler Encoder? > > Aber eigentlich ist es deine Abschlussarbeit, und dazu gehört auch > Theorie, Recherche und Konzeption. Die Umsetzung ist idR das dünnste > Brett. https://www.ichaus.de/product/iC-MA Ich habe vergessen etwas zu erwähnen. Falls du den Link besuchst, kannst du das Datenblatt des Sensors finden. Nach dem Datenblatt hat der Sensor 28 Betriebsmodi. Was hier konfiguriert wurde, ist Incr. CLK-DIR 8.
Schorsch X. schrieb: > Milad E. schrieb: >> Ziel ist, die Drehwinkel jedes Motors zu erfassen und die Daten in einem >> digitalen Zwischenspeicher (Cloud) zu speichern. > > Und was will man an diesem Speicherort damit tun ? > > Verrate doch einfach mal, welcher Sensor dafür angedacht ist. https://www.ichaus.de/product/iC-MA Ich habe vergessen etwas zu erwähnen. Falls du den Link besuchst, kannst du das Datenblatt des Sensors finden. Nach dem Datenblatt hat der Sensor 28 Betriebsmodi. Was hier konfiguriert wurde, ist Incr. CLK-DIR 8.
Milad E. schrieb: > Der Mikrocontroller, den ich verwende, ist Arduino Mega 2560. Meinst Du nicht, dass Dein Wissen für ein Projekt dieses Maßstabs ein wenig zu wenig ist? Es gibt keinen Arduino Mega 2560 Mikrocontroller, es gibt einen Microchip ATMega2560 und es gibt Arduino Controllerboards mit diesem Baustein und auf C++ basierendem Softwareaufsatz, der es Bastlern leichter macht zu einem Ergebnis zu kommen. Die möglichst "gleichzeitige" Abfrage von Aufnehmern auf 3 Achsen, zusammen mit einer Internetanbindung ist anspruchsvoll. Wenn man Deine Fragestellung so hört, dann könnte man zur Meinung kommen, dass Deine "Auftraggeber" voraussetzen, dass Du scheitern wirst, sie jedoch den Umfang des Scheiterns, bzw. den Teilerfolg daraus sehen wollen. Ähnlich Startreks Kobayashi-Maru-Test. Der bezeichnete 8-Bit Angular Hall Encoder kann auch Quadratur-Enkodierung, wenn Du 'nen Controller nimmst, der bereits Quadratur-Dekoder besitzt, dann geht das ganze deutlich entspannter. Einige der XMega AVRs bringen 3 Quadratur-Dekoder mit, die über ein Event-System einen guten Teil der Arbeit im Hintergrund ausführen können. Außer Du brauchst tatsächlich 4 Dekoder, weil: Milad E. schrieb: > zwei Schrittmotore für y-Achse
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.