Archiv verlassen und diese Seite im Standarddesign anzeigen : (USB-Modul +) RN-MotorControl + 2x RN-Stepp297 + Schrittmotore -> Funktioniert das ?
Moin zusammen !
Ein NewBie hat da mal ein paar Fragen an die Experten betreff "roboternetz"-Hardware.
Worum es (mir) hier geht:
Ich könnte preiswert einen "automatischen, selbst einstellenden SAT-Spiegel" für Fahrzeuge (Bus, LKW, Boot, etc.) bekommen.
Würde sich prima auf unserem WoWa machen, da wir öfter fahren und diese ewige Einstellerei mir auf den Senkel geht ....
Problem dabei ist: Relativ alt, mehr oder weniger nur die (komplette) Mechanik inkl. 2 Schritt-Motoren samt Elektronik dazu.
Kein Steuergerät mehr vorhanden, keine Schaltbilder, geschweige denn Steuerprotokolle o.ä.
Die Wahrscheinlichkeit, entsprechendes überhaupt zu bekommen, ist zum einen gering, zum anderem im Erfolgsfall sicherlich sehr kosteninstensiv.
Auch im fortgeschrittenen Alter (Ü50 !) lässt der Basteltrieb nicht nach !
Als ehemals gelernter RF-/TV-Techniker und Elektroniker und heute noch ambitionierter Programmierer (Delphi/Pascal) im Hobbybereich, traue ich mir das durchaus zu, dieser (sehr vertrauenserweckenden) 2-Motoren-Mechanik neues Leben einzuhauchen.
Idealerweise steht mir ein selbstgebastelter Mini-HTPC zur Verfügung, wofür ich die DVB-Software selbst geschrieben habe und somit dem Sat-Empänger notwendige Informationen wie Signal-Qualität und -Stärke (auch SNR u. a.) für optimale Spiegelposition entnehmen kann.
Ein GPS-Empfänger für die Positionsbestimmung und daraus resultierend zu berechnenden, erforderlichen Azimuth- und Elevationswinkeln ist ebenfalls vorhanden.
... fehlt noch ein digitaler Kompass und Elevationsmesser für die Mechanik - aber das ist hier (noch) nicht relevant.
Nun zum eigentlichen Prob, bzw. Frage(n):
Zur Steuerung der beiden Motore würde ich RN-Stepp297 oder ggf. auch den Mikroschrittmotortreiber verwenden wollen.
Seitens PC würde ich per RS232 oder besser noch via USB - z. B. mit dem USB-Modul Universal - kommunizieren.
Stellt sich dann die Frage, was "dazwischen passt" !?
Mein klarer Favorit, weil preiswert und von der Funktionaltität her (völlig) ausreichend - wäre der/das RN-MotorControl.
Allerdings lese ich zum RN-MotorControl immer nur etwas in Verbindung mit DC-/Linear-Motoren - nicht aber zu Schrittmotoren, was mich etwas verunsichert.
Prinzipiell sollte doch aber das verfügbare Pin-Out an beiden Karten passen, sofern sich Schrittmotoren doch auch mit PWM steuern lassen.... (müssten)
.... daher die Frage an die Community: Geht oder geht nicht ?
Geistesblitz
05.06.2013, 17:16
Ich kenne zwar die Karten nicht direkt, aber Schrittmotore werden nicht über PWM angesteuert. PWM bedeutet ja gleiche Frequenz bei variierbarem Tastverhältnis. Das Tastverhältnis ist einem Schrittmotor aber total schnurz, ihn interessiert nur die Frequenz, bei jedem Puls (entweder steigende oder fallende Flanke, je nach Treiber) macht er einen Schritt. Die Drehzahl des Schrittmotors hängt also direkt von der Frequenz des Steuersignals ab.
Ja, die Definition von PWM ist mir bekannt. Da liegt ja auch das vermeintliche Problem.
Die RN-Stepp297-Karte möchte gerne eine ansteigende Flanke als Impuls für einen Schritt sehen. Bei einem Motor mit 1,8°/Step sind das 200 Impulse für einen kompletten Turn - bei z. B. ca. 1500 U/Min wäre die Steuerfrequenz dann 5 kHz, egal welches Tastverhältnis.
... und der L297 auf dieser Karte macht ja prinzipiell auch nichts anderes, als aus dem Taktsignal ein PWM für die Motorendstufe L298 zu bilden.
Was mich irritiert ist auch gleich der erste Satz in der Beschreibung des RN-MotoControl: "Ideal zur Ansteuerung üblicher Endstufen wie RN-Dualmotor oder Eigenbau mit L298 oder ähnliche." Frage ich mich dann, wie das wohl am/mit dem L298 zu beschalten wäre ?
Aus der Befehlsübersicht entnehme ich, das man mit "2" die Motorgeschwindigkeit und mit "3" die Drehzal des Motors einstellen kann.
Auf Seite 17 wird Befehlscode "2" beschrieben mit: Geschwindigkeit 0 bis 255 (PWM-Wert)
Auf Seite 18 wird zu "3" beschrieben, das hier die Drehzahl eingestellt werden kann - allerdings nur unter Zuhilfenahme eines Drehimpulsgebers.
Bleibt die eigentliche Steuerung dann auch PWM ?
Auf Seite 13 wirde der Motoranschluss beschrieben:
Es gibt u.a. für beide Motoren ein IN 1, IN 2" und Enable Motor 1 (evtl. PWM) Was bedeutet letzteres ?
So wie es für mich zunächst aussieht, müsste man also noch so etwas wie einen PWM -> Analog -> Frequenzwandler basteln.
Oder - was wesentlich einfacher wäre:
Kann man den ATMEGA so umprogrammieren, das eine Frequenz statt PWN herauskommt ?
Ich denke, letzteres ist sicher und auch relativ einfach möglich - allerdings ist das absolut nicht meine Baustelle, da müsste mir jemand helfen.
Kann jemand helfen ?
Geistesblitz
07.06.2013, 11:10
Du schmeist hier die Ansteuerung von Schrittmotoren und DC-Motoren wild durcheinander...
Der L297 macht wesentlich mehr, als nur eine PWM zu generieren. Er wandelt das Taktsignal so um, dass an seinen Ausgängen die richtigen Spannungen für die einzelnen Motorspulen anliegen. Außerdem hat dieser gleich noch eine eingebaute Stromregelung (um die PWM braucht man sich also nicht kümmern, die macht der L297 schon von alleine. Alles, was er will, ist eine Referenzspannung, die man mit einem Poti einstellen kann). Alles, was vom Mikrocontroller geschickt werden muss, sind das Taktsignal mit der gewünschten Frequenz, ein Signal für die Drehrichtung, ein Signal für Voll-/Halbschrittbetrieb und ein Enable, um den Motor bei Bedarf stromlos schalten zu können. Der L298 ist dann nurnoch die Leistungsstufe, je nachdem, wie man ihn beschalter lässt er sich für einen Schrittmotor oder 2 DC-Motoren verwenden, wird dann aber völlig anders an den Controller angeschlossen. Ein Signal mit einer gewünschten Frequenz kannst du auf einem Controller ganz einfach mittels Timer erzeugen. Lies dir dazu einfach mal durch, wie das mit den Timern funktioniert und dann kommst du hoffentlich selber drauf, wie das zu lösen ist.
Zum Anschluss von L297 und L298 solltest du dir mal die Datenblätter dazu angucken, besonders das angehängte Bild
Ich denke nicht, dass ich hier "wild" etwas durcheinanderwürfle ....
Wie ich bereits angemerkt habe, ist es mir durchaus bekannt, dass DC-Motoren via PWM und Stepper eben mit Impulsen/Schritt gesteuert werden.
Logo kann man PWM nicht auf Stepper anwenden - zumindetsens nicht ohne Signalwandler PWM nach F.
Deshalb war ja auch meine Frage in #4 unten: Kann man den ATMEGA so umprogrammieren, das eine Frequenz statt PWN herauskommt ?
Desweiteren:
Ich denke, letzteres ist sicher und auch relativ einfach möglich - allerdings ist das absolut nicht meine Baustelle, da müsste mir jemand helfen.
Kann jemand helfen ?
Mir geht es ja hauptsächlich darum, einfach(st) von einem PC via COM oder USB (dazu käme dieses wirklich niedliche Modul zum Einsatz) per "Print-Befehl" zu steuern, ohne dazu das "Innenleben" des Controllers zu kennen.
Grundsätzlich ist das ja gegeben - bis auf den Motortakt halt.
Aber dazu hätte ich - sofern mir zunächst niemand beim Umproggen des Controllers helfen kann - eine Idee !
Etwas "brutal", aber sicherlich funktionell:
Neben den benötigten Pins RX & TX stellt ein COM-Port sendeseitig (DTE) noch 2 zusätzliche Steuerleitungen namens RTS und DTR zur Verfügung, welche mangels HandShake nicht benötigt und daher zweckentfremdet werden können.
Diese werden auch von dem USB-Universalmodul zur Verfügung gestellt !
.... man ersetze die beiden PWM-Steuerleitungen für die Motoren mit diesen beiden Anschlüssen und "fettich iss das!"
Lediglich seitens des Steuerprogramms im PC müssten die jeweiligen COM-Register entsprechend getaktet werden.
Bei den zu erwartenden Frequenzen bis zu ca. max. 5 KHz ist das auch absolut kein Problem - setzt allerdings einen High-Precision-Timer für die Steuerschleifen im Programm voraus.
Mit entsprechender Programmierung und Anwendung von Threads wird auch da das Steuerprogramm selbst keinerlei Timing-Probleme bekommen.
Nichtsdestotrotz wäre es logo wesentlich eleganter, wenn der Motorcontroller die Aufgabe übernehmen könnte ....
Niemand hier im Forum, der mir beim umprogrammieren des RN-Mini- oder RN-Motorcontrol von PWM auf Puls für Stepper helfen könnte ?
Geistesblitz
18.06.2013, 18:43
Womit programmierst du denn? Bei Bascom könnte ich helfen.
... seit über 25 Jahren in Pascal/Delphi. C geht auch so eben, VisualBasic hab ich vor Jahren noch gemacht, bei Assembler sitzen auch noch ein paar Befehle im Kopf.
ABER:
Alles auf PC/WinDoof-Basis ! Mit µC ala ATMEGA &Co. hatte ich noch nie was am Hut.
Mir fehlt neben der Progger-Hard- und Software auch jegliches Wissen, wie & wo ich überhaupt anfangen soll.
Meine Gedankengänge sind folgende:
Es muss/sollte doch irgendwo den Sourcecode für RN-Mini- oder RN-MotorControl geben !?
Darin muss sich doch so etwas wie nachfolgendes wiederfinden lassen:
- Man nehme einen Timer und setze diesen auf Frequenz X (256 x Wiederholfreq. PWM)
- Man teile diese Freq. durch 256 für minimalen PWM-Impuls (1µs oder 1 ms ?!)
- Je nach "Ansage" seitens PC via COM setze man die Pulsbreite auf 1-256.
... der (DC-) Motor fährt dann nach Start-Kommando halt so lange so schnell, bis Stop (oder Wegebegrenzung) angesagt ist.
Das funktioniert bei Robotik-Sachen oder z.B. Fahrzeugen sicher sehr gut.
In meinem Fall kommt allerdings eine Linearführung zum tragen.
Hier sitzt ein Stepper (mit oder ohne Übersetzung) auf einer Spindel mit bekanntem Hub/Fahrweg pro Umdrehung.
Die Anzahl Impulse für den gesamten Fahrweg ergeben sich also aus Steps/U vom Stepper, der Übersetzung des Getriebes und dem Hub der Antriebsspindel.
Das berechnet bereits mein Steuerprogramm im PC !
Dort wird sich die aktuelle Lage des Schlittens in Pulsen gemerkt. Sollte es mal durch zu hohe Takfrequenz oder Überlast zu "Aussetztern" kommen, machen Endlagenschalter einen entsprechenden Reset und Neukalibirierung.
Dazu bräuchte ich z.B. 2 adäquate Befehle:
- "Starte Motor und gib x Impulse mit Frequenz Y"
- "Starte und lass mit Frequenz y laufen"
... bis jeweils erledigt oder ein Endlagenschalter meldet "es reicht mechanisch !"
Richtig genial wäre noch sowas:
- Hier hast du eine Liste mit Steuerbefehlen (vielleicht max. 100 ? oder weniger)
-> Jeder Befehl sollte z.B. enthalten: Richtung, Anzahl Schritte, Frequenz
.... und wenn du damit fertig bist, fang von vorne wieder an, bis jemand HALT ruft.
Der kundige / pfiffige Mitleser wird nun vielleicht einwerfen:
"Stop - Gipp's schon ! Siehe RN-Schrittmotor."
Korrekt erkannt !
Natürlich könnte ich der Einfachheit mir so ein Teil kaufen - ist aber aber (leider) zu teuer.
Ausserdem geht es mir hier auch ein wenig um's Prinzip....
Gib es nicht auch für diesen Controller, bzw. Steuerung einen Source ?
Falls ja - wo ist das elementare Problem, entsprechende Routinen in den RN-Mini zu verpflanzen ?
Geistesblitz
18.06.2013, 23:09
Ich lese gerade, dass du das RN-Motorcontrol hast (hatte erst immer nur RN-Control gelesen) und es scheint mir so, als wäre dieser für Schrittmotoren ungeeignet. Muss es wirklich dieses Board sein? Ein richtiger Schrittmotortreiber erscheint mir da viel sinnvoller.
Edit: das RN-Stepp297 sollte auf jeden Fall für Schrittmotoren gehen, allerdings brauchst du eben etwas, um dein serielles Signal zu einem Takt-Richtungs-Signal zu bekommen. Das RN-Motorcontrol wird dir da nicht weiterhelfen, besser wäre ein Mikrocontroller oder ein Treiberboard mit integrierten Schnittstellen.
Hubert.G
19.06.2013, 09:06
Es wäre erst mal klar zu stellen welche Hardware du jetzt hast (RN-Control, RN-Minicontrol, RN-Motorcontrol, RN-Step97 ?)
Dann musst du auch noch die Stepper ansehen ob sie auch Bipolar sind.
Hatte da erst das Problem das ich mit einem RN-Stepp97 einen Stepper verwenden wollte der sich dann als rein Unipolar herausstellte.
Software sollte das geringste Problem sein solange genügend Flash und I/O vorhanden.
Ich weiß nicht wo der Geistesblitz was gelesen oder wie interpretiert hat, aber:
Ich habe hier noch gar nichts, weil ich erst wissen will/muss, ob das Kernprob denn auch (zeitnah) lösbar ist.
Betreff Stepper:
Ich suche schon eine ganze Weile nach geeigeneten Teilen. Sie sollten auch noch 2000 rpm ohne nennenswerten Drehmomentverlust schaffen.
Das scheint schwieriger als gedacht. Diesen Ramsch bei IhBäh kann man ja meistens in die Tonne hauen, weil untauglich, keine Datenblätter, 4- oder 5-Pol Motoren usw.
Zum Testen werde ich mir vielleicht erst mal so was wie einen Nanotec ST5818 gönnen.
... und dann müsste ich auch erst noch mal genauer testen, ob das mit dem Dreh- und Haltemoment überhaupt passt.
Betreff Motorsteuerung:
Es gibt ja nicht nur den RN-Step97 und Verwandte ... Mit Toshiba 6560 (3A) oder 6064 (4A) bestückte Komplettbausteine inkl. Kühlkörper (auch recht klein) bekommt man schon für 25-30 € frei Haus. Zwar aus dem Land der aufgehenden Sonne - aber für meinen Modellbau habe ich da schon oft was bestellt, was hier mehr als das doppelte kostet. Man muss nur etwas Geduld haben.
Was die Schnittstelle(n) betrifft: Alle haben einen Clock, Dir und EN Eingang. meist sogar noch mehr (Sleep) - d.h. alles kompatibel.
Betreff Controller:
Nun könnte ja auch die Frage aufkommen: "Warum nimmst du nicht gleich RN-Schrittmotor ? Ist komplett für 2 Motoren und kostet dich dann prinzipiell das gleiche wie RB-Mini oder RN-Motor mit 2x Enstufen für die Motoren. Und du brauchst nichts an der Software basteln".
Prinzipiell richtig. Aber zum einen möchte ich erst mal mit einem Motor anfangen. Und was ist, wenn sich herausstellt, das ich mit max. 2A Motorstrom nicht hinkomme ?
Also verbleiben die 2 nahezu preisgleichen Kandidaten RN-Mini- und RN-MotorControl.
Wobei meine Tendenz (nicht nur wegen 7€ preiswerter) zum Mini wegen der mir anscheinend etwas besseren Flexibilität der 1. Kandidat zu sein scheint.
... es muss aber auch nicht unbedingt genau dieses Board sein. Arduino ist doch prinzipiell das gleiche - oder ?
Langsam aber sicher reift in mir die Entscheidung, das ich mir das proggen solcher Teile doch wohl selbst antun muss.
Wie gesagt, finde ich nicht so wirklich was ala "ATMEGA für Dummies - die ersten Schritte", wo man sich mal einlesen kann.
Aber bitte keine 5cm dicken Bücher, sondern komprimiertes KnowHow (für Anfänger).
Wenn da jemand einige hilfreiche Links für mich hätte ....
... aber bitte nicht den Spruch: "Lies mal (fleissig), gibt reichlich dazu".
Hubert.G
19.06.2013, 12:53
Was du schon hast ist ja damit geklärt.
Ist bei der Mechanik für den Spiegel nicht schon ein Getriebe dabei. Warum 2000rpm?
Das Dreh- und Haltemoment der Stepper wird meist unterschätzt.
Gegen eine neueren Baustein als den L293 spricht nichts.
Rn-Minicontrol und RN-Motorcontrol sind HW-mäßig ident, auf dem Motorcontrol ist eine spezielle SW.
Arduino ist nicht schlechter, ich verwende die HW sehr gerne. Mit der Arduino IDE kann ich mich allerdings nicht anfreunden.
Nachdem am Arduino ein AVR drauf ist, lässt es sich genau so gut mit C, Assembler oder BASCOM programmieren.
Für C und BASCOM gibt es im Netz einen Menge Tutorials. Das gelesene am besten gleich praktisch ausprobieren, so merke ich es mir am leichtesten.
Wenn du dann spezielle Fragen hast, hier im Forum gibt es fast immer jemanden der Helfen kann und will.
Danke Hubert für die "Mutmachung" :cool:
Die Sache mit der Spiegelsteuerung ist leider zunächst wieder 'ad akta', weil Hardware ging dann doch an einen wesentlich betuchteren Kandidaten. Schade eigentlich.
Vom Tisch allerdings noch lange nicht - ich bin da weiter am Ball.
Eine andere "Aktion" (die wovon ich eigentlich in den letzen Tagen sprach) ist so was wie ne gesteuerte, bewegliche Zielscheibe (nur rechts/links) für einen Sportschützenverein. Von dem 'plus 'rauf/runter' als Option träumen die noch gar nicht ....
(Live-Schiessbude mit beweglichem Ziel für die Hobby-Rambo's wie auf der Kirmes - for internal use only \\:D/)
Da gibt es zwar auch noch keine Hardware, aber so was wie ne 'lange Linearführung' gibt es immer mal wieder zu vetretbarer Preisen in der Bucht.
Das Projekt ist zu 90% amtlich - vorausgesetzt die Hardware kostet nicht die Welt und es ist nicht allzuviel Hardwarebastelei dabei.
Nun sind 2 Stunden seit dem letzten Posting um und ich habe (bin allein und ungestört) mal intensivst zu recherchieren versucht.
Arduino.cc ist ein guter Anlaufpunkt - gab ne Menge Input.
Also gleich noch mal die Bucht gecheckt und zu erstaulichen Ergebnissen gekommen:
Einen Arduino UNO R3 mit USB-Strippe aus D oder NL gibt es schon zum Sofortkaufpreis von 11,50€ frei Haus ! Lächerlich ....
Einen Arduino Mega2560 dito für anspruchsvollere Aufgaben schon für 12,50 € ! Noch lächerlicher.
.... ich war so frech dem VK Preisvorschläge (wurden angeboten) für ges. 20 Euronen zu machen. Auch wenn ich beide Boards für 22 Taler bekomme, ist das gelinde gesagt ein Scherz - dafür setz ich mich dann doch gerne mal hin und versuche mein Glück und zaubere altes C- oder auch Basic-Wissen aus den eingeschlafenen Synapsen wieder hervor. :mrgreen:
Nun gibt es ja diesen Compile bei Arduino.cc. Ich hab mir das erst mal nur grob angesehen. Wirkt ja extremst spartanisch ggü Delphi. Braucht man mehr ?
Kann dieser BASCOM mehr, ist er besser ? Wie ist das mit der Free- und kostenpflichtigen Version ?
Funktioniert der überhaupt mit Arduino-Boards ? Stecker rein, UpLoad, fettich ?!
Hast du da mal ein paar dezidierte Links ?
PS:
Eben einen Stepper-Treiber mit Toshi 6560 (max. 3,5A) kplt. aufgebaut mit KK für 15 Mücken geschossen. From China shipped in Germany in 5 days. Doppelgrinser.
Hubert.G
19.06.2013, 15:06
Arduino als Hardware ist, wie ich schon geschrieben habe, eine gute Sache.
Ich kann nicht sagen ob BASCOM besser als die Arduino IDE ist.
Bei Arduino ist alles gratis. Bei BASCOM ist die Free-Version bis 2k Code, dann muss man zahlen.
Ich programmiere in C mit dem AVR-Studio. Das ist frei.
In den Arduino schiebe ich das dann über den Bootloader mit dem Programm XLoader hinein, oder mit einem AVR-Programmer, wie es halt gerade passt.
Aktuelle Links habe ich gerade kein, schau selbst im Net nach wenn ich was brauche.
Wenn du so ein Board hast, fang einfach mal an, schau welche Sprache dir liegt. Hilfe findest du hier für fast alles.
Danke dir, Hubert !
Ich harre hier erst mal der Dinge, was alles alles an preiswerter Hardware zeitnah auf mich einprasselt.
Dann schau'n mer mal, wie sich was laden lässt und wie ich damit zurecht komme ....
.... die magischen Finger über das Keboard gleiten lassen und vor dem ultimativem 'ENTER' in Deckung gehen - oder: :pray:
Ich gebe wieder laut, wenn es so weit ist. Oder auch zwischendurch. :MistPC
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.