Projekt: Open Source Library / Firmware für RN- Motor Boards
Hallo,
in einem anderen Thread ist die Idee aufgekommen eine Open Source Treibersoftware Library für RN-Control Boards aufzubauen.
Frank hatte geschrieben
Zitat:
ja, gegen so eine zusätzliche OpenSourceLösung für RN-Motor und vielleicht auch für andere zukünftige intelligente Motorboards, hätte ich auch nix.
Finde ich ne gut Idee.
Ich würde mir gerne die RN-Motor Software ansehen und anfangen sie in C zu portieren.
Und für die anderen RN-Board's Funktionen sollten wir auch ne Library zustammenstellen - find ich.
Gruss
Frank
Liste der Anhänge anzeigen (Anzahl: 1)
Der Schaltplan ist hier in Doku drin. Die findest du auf diese Seite (siehe Disketten-Symbol):
http://www.shop.robotikhardware.de/s...products_id=16
Das ist ein Universalboard, das kann man per Software auch in Getriebevariante wandeln!
Hier noch etwas Größer als Anhang
Liste der Anhänge anzeigen (Anzahl: 1)
So hier die gewünschte WORD Datei mit den RS232 befehlen für die Schrittmotorsteuerung RN-MOTOR ST RS232
Bild hier
Allerdings für die Getriebemotor Ansteuerung wird dir das wenig helfen, da sind die Befehle doch etwas anders.
Du mußt dich auch nicht an die Befehle halten, du kannst durchaus ein neues Konzept entwickeln wenn du es für sinnvoller hälst.
Hier nochmal eine schnelle Übersicht der Schrittmotorbefehle:
Zitat:
'#rm i x y Motor maximaler Strom x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren Y = (Milliampere / 10)
' Beispiel : Y = 150 Bedeutet 1,5A Oder Y = 20 Bedeutet 200ma
'#rm v y Referenzspannung des Controllers (normal 2.5 und muss nicht geändert werden)
' Beispiel: y=241 bedeutet 2,41 V
'#rm s x Motor stopp (Haltespannung bleibt ein) x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren Stopp
'#rm d x y Motor Drehrichtung x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren y=0=Links rum y=1 rechts rum
'#rm z x yl yh Motor genau y Schritte bewegen x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren
'y wird in High und Low Byte übertragen
'#rm e x Motor endlose Schritte bewegen bis Stop Befehl kommt x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren
'#rm p x Übermittelt wieviel Schritte der Motor seit letzten Stop/Aus oder Drehrichtungwechel gefahren ist x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren
'#rm m x Motor einen einzigen Schritt bewegen x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren
'#rm g x y Motor Schrittgeschwindigkeit x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren Y = 1 bis 255
'#rm a x Motor ganz ausschalten x=0 Linker Motor x=1 Rechte Motor x2= Alle Motoren Stopp
'#rm o x Motor ein und init x=0 Linker Motor x=1 Rechte Motor
'#rm t Konfiguration und Testwerte werden über RS232 ausgegeben
Vor längerem hatte ich mir schon mal ein paar erste Getriebemotorbefehle ausgedacht, kam aber dann noch nicht dazu mehr zu machen. Vielleicht hilft es dir als Anregung:
Zitat:
'Befehle im Getriebemodusbetrieb
'#rm v y Referenzspannung des Controllers (normal 2.5 und muss nicht geändert werden)
' Beispiel: y=241 bedeutet 2,41 V
'#rm o x Motor ein und init X=Binärzahl, die unteren 4 Bits bestimmen die Motoren
' X = &B0001 Linker Motor einschalten
' X = &B0010 Rechten Motor einschalten
' X = &B0100 Dritten Motor (Links B) einschalten
' X = &B1000 Vierten Motor (Rechts B) einschalten
' auch Kombinationen sind möglich, Beispiel:
' X = &B1111 Alle Motoren einschalten
' X = &B1100 Motor 3 und 4 einschalten
' ... usw.
'#rm a x Motor ausschalten X=Binärzahl, die unteren 4 Bits bestimmen die Motoren
' X = &B0001 Linker Motor ausschalten
' X = &B0010 Rechten Motor ausschalten
' X = &B0100 Dritten Motor (Links B) ausschalten
' X = &B1000 Vierten Motor (Rechts B) ausschalten
' auch Kombinationen sind möglich, Beispiel:
' X = &B1111 Alle Motoren ausschalten
' X = &B1100 Motor 3 und 4 ausschalten
' ... usw.
'#rm g x y Motor Geschwindigkeit X=Binärzahl, die unteren 4 Bits bestimmen die Motoren
' X = &B0001 Linker Motor
' X = &B0010 Rechten Motor
' X = &B0100 Dritten Motor (Links B)
' X = &B1000 Vierten Motor (Rechts B)
' auch Kombinationen sind möglich, Beispiel:
' X = &B1111 Alle Motoren
' X = &B1100 Motor 3 und 4
' ... usw.
' Y = Geschwindigkeit 1 bis 255
'#rm d x y Motor Drehrichtung X=Binärzahl, die unteren 4 Bits bestimmen die Motoren
' X = &B0001 Linker Motor
' X = &B0010 Rechten Motor
' X = &B0100 Dritten Motor (Links B)
' X = &B1000 Vierten Motor (Rechts B)
' auch Kombinationen sind möglich, Beispiel:
' X = &B1111 Alle Motoren
' X = &B1100 Motor 3 und 4
' ... usw.
' Y =Drehrichtung 0 = Links herum Y=1 Rechts herum
'#rm r d Roboter auf der Stelle drehen Y =Drehrichtung 0 = Links herum Y=1 Rechts herum
' Dieser Befehl erleichtert das drehen von Robotern. Die Richtung des
' linken und rechten Motors wird automatisch gegensätzlich gewählt um die gewünschte
' Drehung zu erreichen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Frank
Danke für die Datei, macht die Sache doch viel einfacher. =P~
Mir wäre es lieb, wenn wir beim Parameter 1 bei 2 Bits bleiben könnten, da ich
im Programm den Befehlscode mit dem 1. Parameter verknüpfe und in einem Byte speichere. Ich erreiche damit eine leichtere und schnellere Auswertung über select case.
Wir hätten dann für den Befehlscode die Zeichen "A bis Z " und "a bis z" zur Verfügung, plus halt die 4 Möglichkeiten von Parameter 1.
Hier mal mein erster Vorschlag zur Ansteuerung.
MFG
Dieter
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
Habe das Protokoll mal überarbeitet.
Bin für jede Anregung dankbar. =P~
MFG
Dieter
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte mir die Struktur ca. so vorgestellt...
Kernmodule für die jeweiligen Motorentypen (Getriebe, Schritt)
Module zur Befehlserkennung (RN-Motor-Befehle oder andere)
Welche I2C oder RS232 Funktionen benutzen die auch als Module zusammengefaßt werden.
Wenn das läuft kann sich jeden (wenn er mag) einen Befehls-Dialekt nach Wahl schaffen.
I2C oder RS232 plus Befehlssatz werden per Makefile ausgewählt.
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo
Hier mal eine erste lauffähige Getriebemotor Version für das RN-MOTOR BOARD.
Achtung: Die Version ist noch eine Beta Version und noch nicht vollständig getestet.
Für auftretende Schäden übernehme ich keine Haftung.
Gesteuert wird die Version wie die Schrittmotoren Version, ebenfalls über
Rs232 Kommandos, die man der Tabelle entnehmen kann.
Hier die ersten Features:
Es können 4 Motoren völlig unabhängig gesteuert werden.
Motor 1 + 2 haben eine Strombegrenzung und eine Stromregelung.
Speed in 255 Schritten einstellbar
3 Baudraten werden angeboten. (9600 Standard), 19200 Baud und 38400 Baud
Debugmodus zum Fehler finden (noch nicht vollständig implementiert )
Kleines Testprogramm (noch nicht vollständig implementiert )
Sleep Modus, Stromaufnahme des Board sinkt auf ca 20 mA. Wecken mit kurzem LOW Impuls an JP "wecken" oder mit Reset.
Offen:
Überprüfen der Stromregelung bis 2 A.
Kurzschlußverhalten
Einbau des WDT
Optimierung der Stromregelung ( höhere Abtastrate des AD Wandlers bis 1 Mhz)
Fertig stellen der Dokumentation
Beschreibung des Programmablaufes
Funktion der LED festlegen
Anpassen der Stromwerte
Über Kritik oder Anregung würde ich mich freuen.
MFG
Dieter