PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen und Anmerkungen zu RN-Motor ST



Florian
06.08.2004, 11:13
Hi!
Das klingt ja recht interessant, aber ist das Board eher für Getriebemotoren oder eher für Schrittmotoren geeignet?
Wofür ist der riesige Kühlkörper? Nur für die Motortreiber?
Ist der nicht n bischen überdimensioniert?

Johannes
06.08.2004, 11:19
Kann man hier auch Fragen stellen? Also, wie viele Schrittmotoren wird man denn mit einem Modul ansteuern können?

Gruß
Johannes

Florian
06.08.2004, 11:22
Ich glaube 2 Schrittmotoren! :o)
Oder 4 Getriebemotoren! :o)
Sehe ich das richtig? :o)

Johannes
06.08.2004, 11:54
Oh ja, hatte mir die Software nicht genau angeschaut. Aber da steht ja linker und rechter Motor ;-)

Wäre es damit auch möglich, irgendwie unipolare Motoren anzusteuern? Von denen habe ich nämlich unzählige hier liegen und bekomme sie nur nicht angesteuert. Deshalb habe ich großes Interesse an so einem Board, wie gesagt aber an einem für unipolare.

Gruß
Johannes

Florian
06.08.2004, 11:58
Wo ist eigentlich der unterschied zwischen Bipolar und Unipolar oder so?

Johannes
06.08.2004, 12:13
Unipolare Motoren haben 5 bis 6 Anschlüsse, bipolare nur 4. Hängt wohl irgendwie mit der Ansteuerung/Anordnung der Spulen zusammen.

Gruß
Johannes

Florian
06.08.2004, 12:17
Aha!
Dann ist das Board glaube ich nur für Bipolare!
Denn die verwendeten L298 (wenn ich das richtig erkenne) haben nur 4 Ausgänge!

Frank
06.08.2004, 12:29
Hi,

ja sicher, Fragen und Anregungen sind hier auch willkommen.

Zu den Fragen:
Nein der Kühlkörper ist nicht überdimensioniert. Bedenke auch das es auf Bild eventuell etwas größer aussieht als es ist. Ganze Board ist ja nur 100x78mm. Zudem können 2 Schrittmotoren mit bis zu 2A je Wicklung (Phasenstrom) angesteuert werden. Das sind im Extremfall 8A !!! Dieser Kühlkörper ist durchaus üblich bei derartigen Boards. Zudem bin ich gerne auf der sicheren Seite. EIn guter Nebeneffekt ist, das er die Elektronik überdeckt und somit gut abschirmt.

Das bereits im Test befindliche Board ist erst mal nur für bipolare Schrittmotoren (nahezu beliebiger Nennspannung) ausgelegt.
Aber das Board ist so konzipiert, das durch den Austausch des Steuercontrollers (unter Kühlkörper) oder dessen Software auch optimal für Getriebemotoren geeignet ist.
Es können dann sogar bis zu 4 Getriebemotoren mit jeweils 2A per RS232 oder I2C angesteuert werden. Die Software für die Getriebemotoren und I2C-Steuerung kommt aber erst etwas später. Momentan ist erst mal das Schrittmotor Betriebsystem soweit fertig.

Der Unterschied zwischen bipolar und unipolar ist am besten auf folgender Seite beschrieben: https://www.roboternetz.de/schrittmotoren.html
Bipolar ist die etwas kraftvollere Ansteuerung wie sie beispielweise auch vom L297 genutzt wird. Fast alle Schrittmotoren lassen sich bipolar anschließen, dazu reichen 4 Anschlüsse. Für unipolare Ansteuerung sind min. 5 Anschlüsse notwendig.
Durch ein leicht geändertes Betriebsystem könnte das Board auch unipolare Motoren ansteuern! Aber in der Regel lassen sich unipolare Motoren auch bipolar ansteuern wenn die mittlere Anzapfung nicht miteinander verbunden ist.


Gruß Frank

Johannes
06.08.2004, 12:36
Hallo Frank,
habe gerade einen entsprechenden eintrag hier im Forum gefunden. Ja, meine Schirttmotoren haben noch die sechs Leitungen (und nicht nur fünf), deshalb sollte das klappen.

Wunderbar, dass es so ein Board gibt. Ehrlich gesagt wollte ich das letztens mal anregen, dass jemand hier mal sowas entwickelt. Ich werde einer der ersten Käufer sein!

Gruß
Johannes

Florian
06.08.2004, 12:45
Naja, ich bin ein Fan von Getriebemotoren wie den RB-35!
Für mich bringt das Board nichts!
Ich baue mir lieber selber eins! ;o)

Frank
06.08.2004, 12:59
Hi Johannes,

ja ich fand auch das ein einfach zu steuerndes Board noch gefehlt hat. Sehr schön ist halt auch das es günstig und ser universell ist. Dies ist eben dadurch möglich weil es über eigen Controller verfügt. Werde später nochmal ein paar Features posten.

@Florian: Wie gesagt, Board ist auch für Getriebemotoren geeignet. Es muss dann später nur der Controller mit neuer Software umgesteckt werden. Aber man kann es natürlich auch selber bauen, als Hilfe veröffentliche ich ja auch bald Schaltplan falls man was ähnliches braucht.

Die Steuerung per RS232 oder I2C hat schon Vorteile. Mit kleiner Funkkarte könnte man so sogar ferngesteuert Motoren steuern. Denke Anwendungen finden sich da schon. Aber ideal ist es halt für Controller. Damit können dann auch Controller die etwas langsam sind wie die C-Control Schrittmotoren ansteuern. Die Schritte werden ja von dem Board selbst generiert, der Controller braucht sich also da nicht drum kümmern und kann in Ruhe seine Sensoren etc. abfragen. Kommt Hinderniss dann sendet er einfach Stop Befehl. Er kann dann sogar die gefahrene Schritte einfach über einen Befehl abfragen. Daraus kann recht einfach sehr genau die gefahrene Wegstrecke berechnet werden.

Gruß Frank

Florian
06.08.2004, 13:16
Hi Frank!
Darf man fragen, welcher Controller verwendet wird?

Frank
06.08.2004, 13:39
Aber gerne!
Der Controller hat den Namen RNST01 bekommen und wird für Selbstbauschaltungen in wenigen tagen auch bei robotikhardware.de abgegeben. Dahinter verbirgt sich ein Atmel M8, der speziell für diese Aufgabe programmiert wurde.

Hier noch ein Foto bei dem der Kühlkörper abgenommen wurde


http://www.robotikhardware.de/bilder/rnmotor2

Gruß Frank

Florian
06.08.2004, 14:39
Hi Frank!
Ist schon interessant, wie die Platine ohne Kühlkörper aussieht, aber irgendwie sehe ich keine Leistungsdioden, die beim L298 ja gebraucht werden, oder sind das garkeine L298?

Johannes
06.08.2004, 14:51
Moin,
ich brauche die Platine vor allem, da ich demnächst einen neuen Roboter (Synchrodrive) bauen möchte. Allerdings habe ich wenig Lust, mich besonders mit der Entwicklung einer eigenen Ansteuerung für die Schrittmotoren zu beschäftigen. Wahrscheinlich werde ich dann gleich zwei Bausätze nehmen.

Die 50€ gelten für was, Bausatz oder nur Platine?

Gruß
Johannes

stupsi
06.08.2004, 20:48
Hallo Frank

faszinierend, das Board. sieht sehr gut aus. Der Kühlkörper passt ja auch wunderbar. Ich freu mich schon auf den Schaltplan.
Wofür ist denn der Taster?

Frank
06.08.2004, 22:17
Hi,

danke Stupsi, ja der Kühlkörper paßt recht gut. Vorne und hinten steht noch ca. 1cm über, so das man auch noch an die Buchsen und Taster an kommt. Und die Bauhöhe ist mit ca. 3 cm immer noch relativ niedrig.


Schaltpan und Anleitung werde ich im Laufe der nächten Woche fertig machen (zumindest für die Schrittmotorversion mit RS232 Steuerung) und uploaden.

Der Taster ist nur ein normaler RESET-Taster. Wird selten benötigt, abe rist ab und zu doch ganz nützlich. Ansonsten sind alle Ports sowie gesamte Controllerspeicher ausgenutzt. Durch diese Ausnutzung konnte auf Logikbausteine und Schick Schnack verzichtet werden, so das Board recht günstig wurde.

@johannes:
Die Platinen sind zwar beste Industriequalität, aber aus Gold sind Leiterbahnen nicht :-) Also ca. 50 Euro soll nicht die Platine sondern der ganze Bausatz mit Kühlkörper und Platine kosten. Die Platine allein wird wieder wie üblich 9,90 Euro kosten.

@Florian:
Doch doch, es sind die bewährten L298. Du hast aber richtig bemerkt, es sind keine Dioden zu sehen. Aber keine sorge, diese stecken in den beiden unteren Schaltkreisen L6210. Das hat etwas Platz eingespart und reduziert etwas die Aufbauzeit. 2 IC´s lassen sich doch schneller löten als 16 Dioden.

Gruß Frank

Frank
06.08.2004, 22:26
Hier eine kurze Erläuterung zu den verschiedenen Varianten des Boards:

RN-Motor ST RS232
Diese Variante steuert bis zu zwei Schrittmotoren völlig unabhängig per RS232 an. Es sind TTL-Anschlüsse sowie Standard RS232 Anschlüsse vorhanden. Ein Controller als auch ein PC kann somit direkt angeschlossen werden. Ein Port würde somit für die komplette Steuerung ausreichen (2 Ports sind ideal). Die Übertragung erfolgt mit 9600 Baud.
Die Schritte werden natürlich vom Board automatisch generiert, dennoch kann die Anzahl genau überwacht werden. Die Stromregelung erfolgt automatisch. Der erlaubte Strangstrom kann per Befehl bis zu 2 A eingestellt werden. Das reicht gewöhnlich selbst für sehr starke Schrittmotoren aus.

RN-Motor ST I2C
Wie zuvor, jedoch erfolgt hier die Ansteuerung über den beliebten I2C-Bus. Nahezu alle modernen Controller/Boards verfügen über einen I2C-Bus (z.B. RN-Control, RNBFRA und viele mehr)

RN-Motor GT RS232
Diese Variante steuert bis zu vier Getriebemotoren. völlig unabhängig per RS232 an. Es sind TTL-Anschlüsse sowie Standard RS232 Anschlüsse vorhanden. Ein Controller als auch ein PC kann somit direkt angeschlossen werden. Ein Port würde somit für die komplette Steuerung ausreichen (2 Ports sind ideal). Die Übertragung erfolgt mit 9600 Baud. Zwei Motoren der vier werden per PWM in der Geschwindigkeit geregelt.
Alle 4 Motoren können bis zu 2A aufnehmen

RN-Motor GT I2C
Wie zuvor, jedoch erfolgt hier die Ansteuerung über den beliebten I2C-Bus. Nahezu alle modernen Controller/Boards verfügen über einen I2C-Bus (z.B. RN-Control, RNBFRA und viele mehr)


Und das Beste:
Man kann das Board entweder gleich in der gewünschten Variante kaufen oder es später durch Wechsel der Firmware(Betriebsystem) von einer Variante in eine andere umbauen. Die Firmware wird für einen geringen Unkostenbetrag auch einzeln über robotikhardware.de angeboten.

Aktuell ist momentan die Variante RN-Motor ST RS232, die ist praktisch fertig. Die Software für die anderen Varianten kann noch ein paar Wochen dauern weil ich derzeit etwas viel um die Ohren habe.

Gruß Frank

Johannes
07.08.2004, 10:05
Danke für die Infos, jaja, die 50€ für die Platine wären schon viel gewesen, aber ich habe keine Ahnung, wie günstig du die erstellen kannst. Aber das beruhigt mich dann ja ;-)

Gruß
Johannes

Florian
07.08.2004, 10:11
Hi Frank!
Das hört sich ja alles immer interessanter an! :o)
Und der L6210 hält wirklich bis zu 2 A aus? *boa* *staun*

Ich muss mich bald wohl oder übel mit der RS232 und I2C beschäftigen! ;o)
Scheint ja doch langsam so zu sein, dass ohne die beiden kaum noch was geht! :o)

Florian
07.08.2004, 10:15
Hi Frank!
Nochmal ne kleine Frage!
Was sind diese weißen dicken Dinger links und rechts von den L6210?
Widerstände?

sonic
07.08.2004, 12:25
Hi Frank!
Nochmal ne kleine Frage!
Was sind diese weißen dicken Dinger links und rechts von den L6210?
Widerstände?

Sieht aus wie dicke Shunts (Zementwiderstände) zum Motorstrom messen...

Gruß, Sonic

Florian
07.08.2004, 12:37
Motorstrom messen?
Wie funzen die?

sonic
07.08.2004, 18:15
Motorstrom messen?
Wie funzen die?

Das sind einfach nur Hochlastwiderstände in den Zuleitungen zum jeweiligen Motor. Wenn Strom durchfliesst fällt ja Spannung über dem Widerstand ab, die wird gemessen und weil man ja weisß wie groß der Widerstand ist, weißt du dann wieviel Strom der Motor gerade braucht.

Aber wie gesagt, gebaut hat Frank das Board, der weiß ob das Shunts sind oder nicht...

Gruß, Sonic

Florian
07.08.2004, 19:00
Achso!

Frank
07.08.2004, 20:20
Hi,

@Florian:
Ja es ist genau so wie es Sonic beschrieben hat, es sind 5W Zementwiderstände für Strommessung.

Richtig, der L6210 verträgt 2A. Bei maximaler Dauerbelastung sollten diese IC´s etwas gekühlt werden. Da die direkt unter einem großen Kühlkörper sitzen ist das recht einfach mit ein kleinem Metallvierkant oder so möglich. Klebt oder klemmt man einfach zwischen iC´s und Kühlkörper. Bei meinen Test´s hab ich das aber noch nicht gebraucht.
Das sind eigentlich sehr schöne IC´s, keine Ahnung warum die so wenig bekannt sind.

Und i2C sollte man sich wirklich man anschaun. Im Grunde hat man das ganz schnell raus. Ich hab die damals schon bei der C-COntrol ganz gerne genommen. Da musste man allerdings immer ein kleines Assemblerprogramm einbinden damit es Sinn macht. Bei Bascom, also z.B. RN-Control, ist das bequemer, da gibt es sogar Basic Befehle für.

@Johannes:
Ja das stimmt, einzeln sind doppelseitige Platinen mit Bestückungsdruck, Lötstopplack in der Tat unheimlich teuer. Ich lass daher immer gleich größere Serien machen, dadurch rechend sich das am Ende - zumindest meißtens ;-)

Gruß Frank

Albanac
08.08.2004, 11:00
kann man die Boards dann mit I2C über Flachbandkabel nach RNB Definition verbinden?

Frank
08.08.2004, 12:30
Hallo Albanac
Ja genau. Es ist der übliche 10polige I2C Stecker der von Board zu Board durchgeschleift werden kann. Die I2C-Buchse sitzt, trotz Kühlkörper, auch bei dem Board gut erreichbar an der üblichen Stelle.

Für RS232 Anschluss wird der übliche 3 polige Stecker genommen (RX/GND/TX). Für RS232-TTL steht eine vierpolige Stiftleiste bereit. Dazu aber später mehr in der Anleitung.

@Florian: Wegen I2C-Bus schau auch mal unter den Links oder bei Google. Es gibt schon recht viele Seiten darüber.

Gruß Frank

Johannes
08.08.2004, 15:01
Frank, ich hoffe, du sagt hier nochmal Bescheid, wenn man das Board endlich bestellen kann?!?

Dann reicht es, wenn ich diesen Thread besuche.

Gruß
Johannes

P.S. Mach mal hinne, ich will jetzt so ein Board haben! *gg

Frank
09.08.2004, 10:46
Hi Johannes,

Fertigstellung läuft auf Hochdruck. Es sind nur noch kleine Optimierungen und halt die Anleitung die auch noch etwas Zeit kostet.
Auf der Robotikhardware.de-Bestellseite (http://www.robotikhardware.de/bestellen.html) ist die erste Variante aber jetzt schon zu finden. Kann also bei Intresse bestellt werden.
Da für den Test die ersten Boards schon aufgebaut wurden, wird eine kleine Anzahl auch als Fertigboard abgegeben sobald die Doku und Software fertig ist. Platine einige Tage später und danach kommt auch Bausatz.

Gruß Frank

Johannes
09.08.2004, 12:39
Moin,
und wie werden die Fertig-Boards verteilt? Also, wie kann man die bekommen? Obwohl ich auch kein Problem habe, zu löten.

Gruß
Johannes

Johannes
09.08.2004, 12:44
Achja, ich sehe schon, kann man extra bestellen.

Frank
11.08.2004, 21:12
Der aktuelle Stand:Anleitung / Schaltplan etc. kommt eventuell doch erst nächste Woche.
Der Grund ist, das jetzt doch viele gleich nach der I2C-Bus Version gefragt haben. Ursprünglich sollte erst die RS232 Version kommen, daher mache ich die Tage das I2C-Betriebsystem auch fertig und nehme gleich beides in die Anleitung auf. Beide Betriebsysteme laufen schon, sind nur noch kleine Tests und Feinheiten notwendig.
Übernächste Woche sind dann also beide Varianten inkl. Platinen fertig und vorrätig.

Gruß Frank

Johannes
11.08.2004, 21:54
Wunderbar, ich freue mich schon ;-)

Gruß
Johannes

Frank
16.08.2004, 23:47
http://www.robotikhardware.de/bilder/rnmotormini.gif

Schrittmotorboard mit I2C oder RS232 Ansteuerung ist nun fertig

Anleitung, Schaltplan etc. ist im Download-Bereich zu finden.

Hier die wesentlichen Features im Überblick:


Deutlich höheres Drehmoment (Motorkraft) durch automatische PWM-Stromregelung
Maximal zulässiger Strangstrom kann durch einfachen Befehl von einem Controller oder PC zwischen 0 und 2A festgelegt werden. Kein rumschrauben mehr an Potis!
Es können nahezu alle bipolaren Schrittmotoren beliebiger Nennspannung 1V bis zur Versorgungsspannung (7 bis 22V) angesteuert werden. Beispiel: Sie können auch einfach einen 1.9V Motor an ein Board mit 9V oder 12V anschließen, der Motor wird nicht überlastet da der max. Strom eingestellt wird. RN-Motor arbeitet etwas ähnlich wie die L297/L298 Schaltung, bietet jedoch mehr High Level-Funktionen
Durch die Verwendung eines programmierten Controllers und mehrer integrierter Schaltkreise benötigt das ganze Board nur wenig Bauteile. Dies reduziert Kosten und erleichtert den Aufbau.
Ein mitgelieferter Steuerprogramm erlaubt die Ansteuerung der Schrittmotoren bequem per Mausklick. Durch die Möglichkeit unterschiedliche Ströme und Geschwindigkeiten einzustellen, lassen sich Schrittmotoren auch optimal austesten.
Übermittelt wird nur der Befehl der beschreibt wieviel Schritte ein bestimmter Motor in welcher Geschwindigkeit und Drehrichtung erfolgen soll. Um die Generierung und das zählen der Schritte kümmert sich das Board völlig automatisch. Dadurch wird der steuernde Controller oder PC erheblich entlastet
255 exakte Geschwindigkeitstufen möglich
Drehrichtung und max Strombedarf jederzeit änderbar
Endlosfunktion, welche Schrittmotoren solange dreht bis ein Stopp Befehl kommt
Schrittezähler, die ausgeführten Schritte der Motoren können jederzeit abgerufen werden, somit läßt sich exakt die Länge der gefahrenen Strecke berechnen
Bei ausgeschalteten Motoren benötigt das Board weniger als 40mA, das ist deutlich weniger als bei üblichen L297/L298 Schaltungen.
Board läßt sich auch per RS232 Befehl in Sleep-Mode versetzen um Stromaufnahme weiter zu verringern (auf ca. 20mA).
LED signalisiert wenn die Betriebsspannung nicht ausreicht um den Schrittmotor-Nennstrom (also maximale mögliche Leistung) bei der gewählten Geschwindigkeit zu erreichen. Eine recht nützliche Analysefunktion.
ISP-Programmieranschluß –Atmel Programmierer können das Board mit einem eigenen Betriebsystem versehen. Dies ist aber nicht notwendig!
Zur Steuerung des Board´s würde im Notfall ein RS232 TX PORT reichen. Bei der RN-Control könnte fast jeder Port dafür verwendet werden wenn in Basic programmiert wird. Ideal sind jedoch zwei Ports um auch die Rückmeldungen des Motorboards auswerten zu können.
Ansteuerung über beliebige Controller z.B. RN-Control, RNBFRA, C-Control oder PC
Erlaubte Versorgungsspannung 7V bis 22 V
Sehr kompakt, nur halbes Europaformat nach Roboternetz-Norm (ca. 100x75mm). Dadurch mit anderen Boards nach Roboternetz-Standard huckepack verschraubbar.
Deutsche Doku mit Programmbeispielen für RN-Control und C-Control und PC-Steuerprogramm

Hier ein Ansteuerbeispiel für die RN-Control:




'################################################# ##
'Schrittmotoransteuerung mit RN-Control und
'Ansteuerungsboard RN-MOTOR über I2C
'
'
'Aufgabe:
' Dieses Testprogramm beschreibt die Motorboard I2C-Funktionen
' und legt einige der Befehle auf die 5 Tasten

' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Stellt für den linken Motor den Motorstrom auf 200mA ein und schaltet Motor danach ein
' Taste 2: Lässt den linken Motor endlos drehen
' Taste 3: Fragt der bereits ausgeführten Motorschritte des linken Motors vom Board ab und
' berechnet daraus Umdrehungen und Fahrtstrecke
' Daten werden über RS232 angezeigt
' Taste 4: Ändert die Geschwindigkeit des linken Motors mit jedem Tastendruck
''Taste 5: Schaltet den linken Motor wieder aus

' Achtung:
' In der Bascom Version 1.11.7.4 ist noch ein kleienr Bug in der I2C
' Libary. Dadurch funktioniert eventuell der I2CSEND Befehl nicht korrekt
' Zum korrekten Ablauf des Demos sollte daher die aktuelle Libary
' in Bascom installiert werden. Kann man hier Downloaden
' Infos dazu im Roboternetz-Thread
' https://www.roboternetz.de/phpBB2/viewtopic.php?t=694&start=22
'


'Autor: Frank Brall
'Weitere Beispiele und Beschreibung der Hardware
'in der Anleitung zu RN-Motor
'Anleitung findet man unter http://www.Roboternetz.de im Download Bereich
'oder www.robotikhardware.de
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'################################################# #############



Declare Function Tastenabfrage() As Byte


$regfile = "m16def.dat"

'Befehle im Schrittmotorbetrieb
'K ist eine Kennungsnummer die bei RN-Motor immer 10 ist, danach folgt Befehlscode und notwendige Parameter
'Es müssen immer 5 Bytes übertragen werden, auch wenn weniger Parameter ausreichen

'k 1 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
'k 2 y Referenzspannung des Controllers (normal 2.5 und muss nicht geändert werden)
' Beispiel: y=241 bedeutet 2,41 V
'k 3 x Motor stopp (Haltespannung bleibt ein) x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren Stopp
'k 4 x y Motor Drehrichtung x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren y=0=Links rum y=1 rechts rum
'k 5 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
'k 6 x Motor endlose Schritte bewegen bis Stop Befehl kommt x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren

'k 7 x Motor einen einzigen Schritt bewegen x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren
'k 8 x y Motor Schrittgeschwindigkeit x=0 Linker Motor x=1 Rechte Motor x2= Beide Motoren Y = 1 bis 255
'k 9 x Motor ganz ausschalten x=0 Linker Motor x=1 Rechte Motor x2= Alle Motoren Stopp

'k 10 x Motor ein und init x=0 Linker Motor x=1 Rechte Motor

'k 11 Konfiguration und Testwerte werden über RS232 ausgegeben

'k 12 Sleep Mode

'k 13 x Motor selektieren

'k 14 x x=0 Vollschrittmodus x=1 Halbschrittmodus


Const Befehl_maxstrom = 1
Const Befehl_referenzspannung = 2
Const Befehl_stop = 3
Const Befehl_drehrichtung = 4
Const Befehl_schrittanzahl_drehen = 5
Const Befehl_endlos_drehen = 6
Const Befehl_einzigen_schritt = 7
Const Befehl_geschwindigkeit = 8
Const Befehl_ausschalten = 9
Const Befehl_einschalten = 10
Const Befehl_konfiguration_zeigen = 11
Const Befehl_sleep_modus = 12
Const Befehl_motor_selektieren = 13
Const Befehl_schrittmotormodus = 14

Const Motor_links = 0
Const Motor_rechts = 1

Const I2crnmotorslaveadr = &H56 'I2C SlaveAdresse von RN-Motor Erweiterung
Const I2crnmotorsreadlaveadr = &H57 'I2C SlaveAdresse von RN-Motor Erweiterung

Dim I2cdaten(6) As Byte 'Array um Befehlsfolge auszunehmen
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word

Dim Geschwindigkeit As Byte

Dim I As Integer
Dim N As Integer
Dim Ton As Integer

$crystal = 16000000 'Quarzfrequenz
$baud = 9600

Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1

Geschwindigkeit = 250
I2cinit




Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte





I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL V1.4 *****"
Print "Demoprogramm um Zusatzkarte RN-Motor im Schrittmotormodus zu testen"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then

Select Case Taste
Case 1
'Motorstrom auf 200mA begrenzen
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_maxstrom 'Befehlscode
I2cdaten(3) = Motor_links '1 Parameter
I2cdaten(4) = 200 / 10 '2 Parameter (hier Milliampere /10 in diesem Fall wird 200mA eingestellt)
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)


'Halbschrittmodus
' I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
' I2cdaten(2) = Befehl_schrittmotormodus 'Befehlscode
' I2cdaten(3) = 1 'Beide Motoren Halbschrittmodus
' I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)


'Motor einschalten
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_einschalten 'Befehlscode
I2cdaten(3) = Motor_links '1 Parameter
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)



Case 2
'Motor endlos drehen
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_endlos_drehen 'Befehlscode
I2cdaten(3) = Motor_links '1 Parameter
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)


Case 3
'Motor für Datenabruf anwählen
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_motor_selektieren 'Befehlscode
I2cdaten(3) = 0 '1 Parameter
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
I2cstop

'Schritte abrufen und Umdrehungen und Fahrtstrecke berechnen und über RS232 anzeigen
I2cstart
I2cwbyte I2crnmotorsreadlaveadr
I2crbyte Temp , Ack
Schritte = Temp
I2crbyte Temp , Ack
Ltemp = Temp * 256
Schritte = Schritte + Ltemp
I2crbyte Temp , Ack
Ltemp = Temp * 65536
Schritte = Schritte + Ltemp
I2crbyte Temp , Nack
Ltemp = Temp * 16777216
Schritte = Schritte + Ltemp
I2cstop
Print "Schrittanzahl:" ; Schritte
Umdrehungen = Schritte / 200 'Wenn Schrittwinkel 1,8 Grad beträgt dann durch 200 teilen
Print "Umdrehungen: " ; Umdrehungen
'Umfang des rades mal Umdrehungen ergibt Fahrtstrecke
'Umfang berechnet sich auch U=3.14 * Druchmesser
'In dem Beispiel nehmen wir ein 10 cm Rad am Roboter an
Fahrstrecke = Umdrehungen * 31.4
Print "Der Roboter ist " ; Fahrstrecke ; " cm gefahren "

Case 4
'Geschwindigkeit ändern
If Geschwindigkeit > 40 Then
Geschwindigkeit = Geschwindigkeit - 20
Else
Geschwindigkeit = Geschwindigkeit - 1
End If
Print "Geschwindigkeitsstufe: " ; Geschwindigkeit
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_geschwindigkeit 'Befehlscode
I2cdaten(3) = Motor_links '1 Parameter
I2cdaten(4) = Geschwindigkeit '2 Parameter (hier Milliampere /10 in diesem Fall wird 200mA eingestellt)
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
I2cstop

Case 5
'Motor ausschalten
I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein
I2cdaten(2) = Befehl_ausschalten 'Befehlscode
I2cdaten(3) = Motor_links '1 Parameter
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5 'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
I2cstop


End Select
Sound Portd.7 , 400 , 500 'BEEP
End If

Waitms 100
Loop

End




'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word


Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 410 To 455
Tastenabfrage = 1
Ton = 550
Case 340 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If

End Function


Und hier ein Beispiel für Ansteuerung mit PC (Visual Basic):



Option Explicit

Dim mybuffer As Variant
Dim low As Byte
Dim high As Byte


Private Sub buttlDrehLinks_Click()
SendBefehl "#rmd" & Chr(0) & Chr(0), "OK"
End Sub

Private Sub buttlDrehRechts_Click()
SendBefehl "#rmd" & Chr(0) & Chr(1), "OK"
End Sub

Private Sub buttlEndlosdrehen_Click()
SendBefehl "#rme" & Chr(0), "OK"
End Sub

Private Sub buttlGeschwindigkeituebermitteln_Click()
SendBefehl "#rmg" & Chr(0) & Chr(HScrolllgeschwindigkeit.Value), "OK"
End Sub

Private Sub buttLMotorAus_Click()
SendBefehl "#rma" & Chr(0), "OK"
End Sub

Private Sub buttLMotorEin_Click()
SendBefehl "#rmo" & Chr(0), "OK"

End Sub

Private Sub buttlmotorstop_Click()
SendBefehl "#rms" & Chr(0), "OK"
End Sub

Private Sub buttLSchritt_Click()
SendBefehl "#rmm" & Chr(0), "OK"
End Sub

Private Sub buttlSchritteuebermitteln_Click()
high = Int(HScrolllschritte.Value / 256)
low = HScrolllschritte.Value - (high * 256)
SendBefehl "#rmz" & Chr(0) & Chr(low) & Chr(high), "OK"
End Sub

Private Sub buttLschritteZeigen_Click()
SendBefehl "#rmp" & Chr(0), "OK"
End Sub

Private Sub buttLStatus_Click()
SendBefehl "#rmt", "OK"
End Sub

Private Sub buttLStrom_Click()
SendBefehl "#rmi" & Chr(0) & Chr(lmaxstrom.Value / 10), "OK"
End Sub

Private Sub buttrDrehLinks_Click()
SendBefehl "#rmd" & Chr(1) & Chr(0), "OK"
End Sub

Private Sub buttrDrehRechts_Click()
SendBefehl "#rmd" & Chr(1) & Chr(1), "OK"
End Sub

Private Sub buttrEndlosdrehen_Click()
SendBefehl "#rme" & Chr(1), "OK"
End Sub

Private Sub buttrGeschwindigkeituebermitteln_Click()
SendBefehl "#rmg" & Chr(1) & Chr(rHScrolllgeschwindigkeit.Value), "OK"
End Sub

Private Sub buttRMotorAus_Click()
SendBefehl "#rma" & Chr(1), "OK"
End Sub

Private Sub buttRMotorEin_Click()
SendBefehl "#rmo" & Chr(1), "OK"
End Sub

Private Sub buttrmotorstop_Click()
SendBefehl "#rms" & Chr(1), "OK"
End Sub

Private Sub buttrSchritt_Click()
SendBefehl "#rmm" & Chr(1), "OK"
End Sub

Private Sub buttRSchritteuebermitteln_Click()
high = Int(RHScrolllschritte.Value / 256)
low = RHScrolllschritte.Value - (high * 256)
SendBefehl "#rmz" & Chr(1) & Chr(low) & Chr(high), "OK"
End Sub

Private Sub buttrschritteZeigen_Click()
SendBefehl "#rmp" & Chr(1), "OK"
End Sub

Private Sub buttrStatus_Click()
SendBefehl "#rmt", "OK"
End Sub

Private Sub buttRStrom_Click()
SendBefehl "#rmi" & Chr(1) & Chr(rmaxstrom.Value / 10), "OK"
End Sub

Private Sub buttVref_Click()
frmVref.Show 1
End Sub

Private Sub Form_Load()
txtStrom = ""
txtLSchritte = ""
txtlGeschwindigkeit = ""

txtStromR = ""
txtRSchritte = ""
txtrGeschwindigkeit = ""

'txtStrom = lmaxstrom.Value
'txtLSchritte = HScrolllschritte.Value
'txtlGeschwindigkeit = HScrolllgeschwindigkeit.Value
txtlog = ""

ComboComPort.ListIndex = 0
MSComm1.CommPort = ComboComPort.ListIndex + 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub

Private Sub HScrolllgeschwindigkeit_Change()
txtlGeschwindigkeit = HScrolllgeschwindigkeit.Value
End Sub

Private Sub HScrolllschritte_Change()
txtLSchritte = HScrolllschritte.Value
End Sub

Private Sub lmaxstrom_Change()
txtStrom = lmaxstrom.Value
End Sub



Function SendBefehl(befehl As Variant, warteauf As String) As Boolean
Dim buffer As String
Dim rueckgabe As String
Dim n As Long
Dim bytefeld() As Byte
Dim anz As Integer
Dim i As Integer

anz = Len(befehl)
ReDim bytefeld(anz)
For i = 1 To anz
bytefeld(i - 1) = Asc(Mid(befehl, i, 1))
Next i

SendBefehl = False
buffer = ""
MSComm1.Output = befehl

n = 0
Do
If n > 100000 Then
Beep
Exit Function
End If
rueckgabe = MSComm1.Input
txtlog = txtlog & rueckgabe
DoEvents
buffer = buffer & rueckgabe
n = n + 1
Loop Until InStr(buffer, warteauf)

txtlog.SelStart = Len(txtlog.Text)
'txtlog.SelLength = 1
DoEvents
SendBefehl = True
End Function


Private Sub rHScrolllgeschwindigkeit_Change()
txtrGeschwindigkeit = rHScrolllgeschwindigkeit.Value
End Sub

Private Sub RHScrolllschritte_Change()
txtRSchritte = RHScrolllschritte.Value
End Sub

Private Sub rmaxstrom_Change()
txtStromR = rmaxstrom.Value
End Sub



Genaue Befehlsübersicht ist in der Anleitung! Hier (https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=16)

Gruß Frank

Johannes
17.08.2004, 13:17
Moin!
Meine Bestellung hast du ja schon bekommen ;-)

Noch eine Frage. Es klingt ein wenig missverständlich, denn ich denke, dass man die I2C-Version nicht mit dem VB-Programm ansteuern kann, oder?

Gruß
Johannes

Frank
17.08.2004, 14:06
Hallo
Sorry wenn das mißverständlich war.
Das Visual Basic PC-Programm demonstriert nur die Ansteuerung der RS232 Version von RN-Motor.
Die I2C-Version von RN-Motor ist mit diesem Programm nicht ansteuerbar. Dafür hab ich das Beispiel für die RN-Control gepostet.

Wäre schön wenn einer der ersten C-Control Anwender von RN-Motor noch ein Beispiel für die C-Control posten könnte (i2C oder Rs232). Ansonsten muss ich die C-Control wohl auch nochmal aus dem Schrank holen.

Gruß Frank

Frank
18.08.2004, 20:23
Nur zur Info:
Die Anleitung zu RN-Motor im Downloadbereich ist nochmal aktualisiert worden.
Es hatte sich bei der Beschreibung des I2C-Befehl 13 noch ein Fehler eingeschlichen.
Zudem kam jetzt der Befehl 14 hinzu. Hiermit wird zwischen Voll- und Halbschritt umgeschaltet.

Frank
27.09.2004, 23:54
[highlight=red:85066c6986]Wichtig:[/highlight:85066c6986]

Durch den Hinweis eines aufmerksamen Users bin ich noch auf einen Fehler in dem zuletzt geposteten Beispielprogramm für die i2C-Ansteuerung von RN-Motor mit RN-Control, aufmerksam gemacht worden.
Offenbar ist beim kopieren irgendwie eine Zeile raus gerutscht. Nämlich diese:

Config Adc = Single , Prescaler = Auto

Dadurch hat bei dem Beispielprogramm die Tastenabfrage nicht funktioniert. Ich hab das Beispielprogramm oben im Beitrag korrigiert. Auch im Download-Bereich und in der Anleitung ist es bereits korrigiert.

Zudem ist zu beachten das in der Bascom Version 1.11.7.4
und älter, noch ein klenier Bug in der I2C Libary steckt.
Dies führt dazu das der I2CSEND Befehl nicht ganz korrekt arbeitet und es bei der Ansteuerung von RN-Motor Probleme geben kann.

Die Problematik wurde schon vor längerem in diesem Thread angesprochen:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=694&start=22

Es gibt aber schon eine korrigierte Libary die einfach nur in das entsprechende Bascom Verzeichnis kopiert werden muss. Diese findet man hier:
http://www.mcselec.com/download/avr/beta/i2clib.zip

Damit klappt´s dann bestens.

Gruß Frank

Hellmut
28.09.2004, 13:40
Hallo Frank

In meinem Segelboot habe ich einen Akku-Pack mit 20 Mono-D-NiMH-Zellen, also 24V nominal, wenn frisch vollgeladen Bruchteile eines Volts über 28V. Ich möchte mir jetzt die RN-Motor für I2C zulegen.
Ich hatte bei ebay Erfolg und habe 2 Schrittmotoren Oriental Vextra PH266M-E1.2B erworben. Ich werde also den Strangstrom hier immer auf 2A beim Starten der RN-Motor begrenzen.
1. Kann ich das RN-Motor mit welchen Änderungen an den max 28,2V betreiben? Was muß ich ändern? Daraus folgt natürlich das ich das Board selber erstellen muß?
2. Kann ich die RN-Motor von der RN-Control mit 5V über das I2C-IF versorgen? Aber vermutlich ist das nicht nötig da der Regler für die 5V auf der RN-Motor das abkönnen sollte? Allerdings wie beschrieben mit dem Kühlkörper verbunden werden muß!

Frank
28.09.2004, 19:13
Hi Helmut,
zufällig hab ich deine Frage glaub schon in einem anderen Tread beantwortet, hatte die hier erst jetzt gesehen.
Also 28V ist zuviel des guten, 22V war maximal angedacht. Du könntest auch 28 nutzen wenn du die Kondensatoren C20 und C4 durch einen anderen ersetzt. Du kannst z.B. diese Kondensatoren abklemmen und ca. 1000 bis 2000 uF 35V außen an die Spannungsklemmen anklemmen, falls er nicht unter den Kühlkörper paßt.
Allerdings den 5V Regler mußt du dann schon etwas kühlen (Kühlkörper dran), der wird vermutlich dann recht warm.
Über I2C kannst du das Board nicht versorgen, das ist nur beim Bausatz denkbar. Man läßt dann einfach den Spannungsregler weg, dann gehts. Aber beim Fertigboard ist der ja nu schon eingelötet. Auslöten ginge zwar, aber würde ich nicht unbedingt machen. Die 5V am I2C kann man noch für viele andere Dinge gebrauchen.

Hellmut
28.09.2004, 20:36
Hallo Frank

Habe gerade 2 Elkos mit 470uF und 35V bei Conrad geholt. Sind die falsch?

Frank
28.09.2004, 21:14
Hi,
nein die kannst du auch nehmen. Die sind auf der Platine parallel geschaltet, dadurch ergibt sich rund 1000 uF. Ich hab nur deshalb zwei genommen, damit das ganze schön flach wird (sollte ja unter Kühlkörper passen). Da du Board ja ganz schön belasten willst, wäre 2200 uF auch nicht übel gewesen, aber keine Sorge es geht auch so.

KüSä
18.10.2004, 17:29
Lässt sich dieser Board auch mit anderer Software steuern??? zB ne CNC-software???

Frank
18.10.2004, 17:56
Man kann leicht eigene Software dafür schreiben.
Ob es mit CNC-Software läuft weiß ich garnicht. Ich nehme an, nein, weil es dafür zu intelligent ist ;-) Ist wirklich so, ich nehme an das die CNC-Software direkt Schrittimpule liefert, also eigentlich nur ein strohdummen Treiber braucht. RN-Motor ist ja mehr dazu gedacht den Hauptrechner zu entlasten, daher werden normalerweise Schritte intern generiert.

Vielleicht kann mal jemand die Schnittstellen-Beschreibung von den Standard CNC-Programmen posten. Sobald ich etwas Zeit habe, könnte ich dann eventuell ein RN-Motor Firmware-Update bereitstellen, so daß auch die Steuerung über solche Software machbar ist.

horstw
18.10.2004, 18:47
Hallo,

alle im Hobbybereich angesiedelte CNC Software gibt am ParallelPort Takt- und Richtungssignale an die Steuerung. (Bei PCNC zB.bis ca. 30kHz)

Hellmut
18.10.2004, 20:49
Hallo Frank

Als Neuling im Aufbau von elektronischen Schaltungen hier eine Frage zum Bausatz der RN-Motor I2C: Dem Bausatz liegt ein Taster bei, in der Beschreibung weist du darauf hin zu achten diesen richtig herum zu plazieren. In der Bestückungsansicht und auf der Platine sind 5 Bohrungen zu sehen durch welche die Beinchen vom Taster zu führen sind, und damit dein Hinweis auf die richtige Plazierung Ok. Ärgerlich ist nur das der Taster im Lieferumfang nur 4 Beinchen hat, das 5-te Mittlere zur Innenseite der Karte nicht vorhanden ist. Der Taster sieht eigentlich symetrisch aus, bis auf eine kleine 1 und 2 an der unteren Seite. Wie gehts also?

Frank
19.10.2004, 00:32
Hi Helmut,

generell verwende ich eigentlich nur die 4 beinigen Taster. Im Layout der Platine hab ich eine Variante mit 5 Beinen berücksichtigt (1 Bein Gehäuse) um einfach etwas flexibler zu sein. Wer zufällig fünfbeinige rum liegen hat, kann diese auch einsetzen.
Die 4 beinigen Taster sind nicht ganz symetrisch. Wenn du genau schaust, dann siehst du das die Beinchen ja auf zwei gegenüberliegenden Seiten herauskommen, ansonsten müssten die ja schräg herauskommen.
Du mußt beim Einsetzen eigentlich nur darauf achten das auf der Seite wo das Wort "RESET" steht, kein Bein raus kommt. Dann stimmts in jedem Fall.
Eigentlich ist es sogar recht schwer die Taster falsch einzusetzen, wirst du merken wenn du es versuchst.

Gruß Frank

Hellmut
19.10.2004, 21:19
Hallo Frank

Jetzt verstehe ich dich. Das müssen Erfahrungen aus deiner Praxis sein! Mit falsch einsetzen meinst du das man den Taster so einzusetzen versucht, das man die Beinchen-Pärchen nicht jeweils in die Loch-Pärchen setzt! Darauf wäre ich garnicht gekommen! Wieder was gelernt. Danke.

Hellmut
19.10.2004, 21:20
Hallo Frank

Jetzt verstehe ich dich. Das müssen Erfahrungen aus deiner Praxis sein! Mit falsch einsetzen meinst du das man den Taster so einzusetzen versucht, das man die Beinchen-Pärchen nicht jeweils in die Loch-Pärchen setzt! Darauf wäre ich garnicht gekommen! Wieder was gelernt. Danke.

Hellmut
19.10.2004, 21:21
Übrigens, verträgt der 7805 der mit dem Kit kommt die 28V?

Frank
20.10.2004, 11:54
Hi Helmut,
ja sicher, ich nehme doch nur beste Qualität :-) - das ist ein 78S05, der verträgt 2A und laut Datenblatt 35V Eingangsspannung.
Er wird dennoch recht warm werden, bei so einer hohen Spannung, aber macht ihm nix, du hast ja zudem Kühlung vorgesehen. Er ist eigentlich fast unzerstörbar, er hat einen Temperatur- und Kurzschlußschutz.

Mir erscheint dennoch eine so hohe Spannung für die üblichen Anwendungen nicht notwendig zu sein, aber du hast sicher Gründe dafür.

Gruß Frank

uzlender
21.10.2004, 14:22
Hallo Frank,

da ich neu hier im Forum bin, möchte ich zunächst einmal sagen, dass es ausgesprochen interessant ist was hier so besprochen und entwickelt wird.
Ich habe selber seit einiger Zeit eine kleine Schrittmotorsteuerung im Kopf. Sie besteht fast ausschließlich aus umfangreicher, bereits entwickelter Software und soll als Treiber den L298 nutzen. Die Software beherrscht auch Microschrittbetrieb und steuert den Motor über der Druckerport an. Bei genauer Inspektion der RN-Motorsteuerung bin ich auf den Gedanken gekommen, eventuell den L297 aus dem Sockel zu ziehen und an der Stelle der Signale A,B,C,D die vier Steuersignale vom Parallelport zu nehmen und in den Sockel des L297 einzuspeisen? Könnte das gehen? Reichen die wenigen Milliampere vom Printerport, den L298 anzusteuern? Wozu dienen die Pins ENABLE_A, ENABLE_B, SEN_A, SEN_B?

Viele Grüße,
Udo

Frank
21.10.2004, 22:17
Hi Udo,
etwas hast DU dich doch bei deiner "genauen Inspektion" verguckt ;-)
Es gibt garkein L297 auf dem Board :-)
Gesteuert wird dieses duch einen Mega8-Controller.
Dennoch bestünde die Möglichkeit auch den Mega8 zu entfernen um gezielt einige Pins mit dem Druckerport zu verbinden. Das würde schon gehen wenn die richtigen PIN´s nimmst und eine geeignete Software für PC schreibst.
Allerdings müsstest du dann auf die PWM-Stromregelung verzichten, dafür wäre dier Druckerport zu langsam.

Die Enable Anschlüsse dienen zum EIn- und Ausschalten. Durch schnelles ein und Ausschalten (PWM) wird der Strom geregelt. Die Sense Anschlüsse dienen der Strommessung.

Gruß Frank

UweMD
29.10.2004, 15:01
Hallo Frank...

ich habe mal zu diesem Board einige fragen.

1. Kann mit diesem Board auch diese Motoren "Gleichstrom-Getriebemotor Trico" von Polin benutzen? 2 Stück der Bot wird so 25 KG wiegen

2. Kann man dieses Board auch an die CControl 2 anschliessen? (Da I²C denke ich schon oder)

3 Ne Dumme frage: Scheibenwischer gehen doch hin und her... sind die Motoren denn für den Antrieb geeignet...?


Dank vorab Uwe

Hellmut
29.10.2004, 18:30
Hallo UweMD

Der scheibenwischer geht hin und her, der Antriebsmotor jedoch nicht. Über eine exentrische Umsetzung wird der Efekt erreicht. Stell dir das wie in einem Motor vor, wo die Kolben sich auch hin und her bewegen. Statt einer rauf runter Bewegung mußt du dir vorstellen wird die "Antriebsstange" um eine Achse bewegt welche die exentrische Bewegung in eine "Wipp-bewegung umsetzt.

Frank
29.10.2004, 18:42
So ist es!
Und ergänzent ist noch zu sagen das RN-Motor ST nicht dafür geeignet ist, das Betriebsystem in RN-Motor ist nur für Schrittmotoren.
Die Variante RN-MOTOR GT muß noch programmiert werden, ich konnte mich bislang nicht aufraffen weil ich etwas im Stress bin und ehlich gesagt die Variante im augenblick selbst nicht brauche ;-) Aber kommt noch.
Für den Scheibenwischermotor ist allerdings RN-Motor etwas zu klein, der kann im bis zu 9A ziehen hab ich mal irgendwo gelesen. Mit Strombegrenzung könnte es vielleicht einigermaßen gehen, aber ganz optimal wäre das nicht.

Da suche ich momentan selbst noch nach einer günstigen Lösung weil ich bald was brauche. Bin gerade einer Lösung auf der Spur, ist aber noch nicht Spruchreif

UweMD
29.10.2004, 19:26
Hallo....


vielen dank... hellmut und frank...

dann werde ich dieses projekt mal zurück stellen...und ein paar nummern kleiner bauen...


mfg uwe

Hellmut
30.10.2004, 01:45
Hallo Frank

Dort wo man die L298N in der RN-Motor mit dem Kühlkörper verbindet liegt ja GND an. Darf die Verbindung leitend sein? Oder lieber isoliert aber wärmeleitend?

Bei den Linearreglern setze ich immer ein Kit ein das den Regler elektrisch isoliert aber wärmeleitend mit dem Kühlkörper verbindet.

Frank
30.10.2004, 10:33
Hi Helmut

Ja, sollte sogar leitend sein damit der Kühlkörper noch zusätzlich als Abschirmung dient und somit das Board auch recht nahe an einem Controllerboard montiert werden kann (z.B. Huckepack).

Nur unten beim Anschrauben des Kühlkörpers Plastikunterlegscheiben verwenden, aber das stand ja in Doku.

Dreamer001
03.11.2004, 09:34
Hallo!

Ich habe 2 Unipolare Schrittmotore (6 Anschlüsse)
Spannung:2,6V
Strom:1,7A
1,8° Schrittwinkel

Betrieben soll das ganze mit LAB VIEW von National Instruments werden.

Ist diese Schaltung für meine Anwendung verwendbar??

Danke für eure Hilfe

MfG
Dreamer001

Frank
03.11.2004, 10:05
Einfache Antwort: Ja, passen würde der Motor!
Dieser Motor kann auch bipolar angesteuert werden, also kein Problem!

"LAB VIEW von National Instruments" sagt mir nix, dahe rkann ich dazu nix sagen. Wenn das ne spezielle Ansteuersoftware ist, dann sieht es schlecht aus, weil RN-Motor eigene Befehle besitzt die mehr für Roboter-Bastler gedacht sind und sich nicht für gängige Fräsmotoren-Steuersoftware etc. eignet. Wenn man die Steuersoftwar eselbst schreibt, dann kann man natürlich vieles machen.

bhm
03.11.2004, 10:43
LabView ist eine auf das Ansteueren von Messhardware spezialisierte graphische Programmier"sprache". Da man damit auch an die serielle Schnittstelle beliebige Befehle schicken kann, sollte man damit auch ohne Probleme RN-Motor steuern können.
Eine ähnliche Idee habe ich auch um von einem Messprogramm mit RN-Motor oder RN-Control und einem Schrittmotor eine Filterscheibe zu steuern.
ciao ... bernd

Frank
03.11.2004, 10:59
Aha, das geht natürlich. Danke für Erläuterung.

uzlender
03.11.2004, 15:05
Hallo Frank,

kann man schon die Firmware zur Umrüstung von RS232 nach I2C kaufen?
Was bedeutet das ? Austasch des Mega8 ? Was kostet es?

Gruß,
Udo

Frank
03.11.2004, 16:55
Ja richtig, Mega8 muss ausgetauscht werden.
Infos/Preis siehe hier: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=68&products_id=26

uzlender
03.11.2004, 20:51
Hallo,

habe nun mittlerweile ein RN-Motor RS232 Fertig-Board. Die Steuersoftware empfiehlt die Spanung Vref zu kontrollieren. Sollwert=2.5V. Nur wo wird die gemessen ?

Gruß,
Udo

Dino Dieter
03.11.2004, 21:26
Hallo

Die Spannung sollte am PIN 21 AREF des Mega 8 zu messen sein.

MFG
Dieter

Frank
04.11.2004, 00:44
Stimmt man kommt etwas schlecht ran. Wenn du die Pinbelegung des Mega8 anschaust, dann könntest du es von der Unterseite der Platine messen.
Der Hinweis ist erfolgt, da ursprünglich Widerstände mit etwas höherer Toleranz angedacht waren. Es sind aber dann doch genauere Widerstände (nur noch 1% Toleranz) eingebaut worden, von daher ist es nicht absolut notwendig wenn du mit einer kleinen Ungenauigkeit bei der Strommessung leben kannst.

Wenn du es perfekt machen willst, dann musst du diese Spannung messen und dann per Befehl die Spannung übertragen. Die bleibt dann gespeichert und das Board arbeitet noch etwas genauer.

uzlender
05.11.2004, 19:34
Hallo,

danke für eure Antworten. Mit der beiliegenden Steuersoftware funktioniert nun alles. Von drei Problemen in diesem Zusammenhang möchte ich berichten:
1) Die RS232-Pins sind nicht beschriftet (auch nicht in der Anleitung)
so hab ich den Stecker natürlich zuerst falsch aufgesteckt.
2) den Motor hatte ich auch falsch angeschlossen, mußte zwei Drähte vertauschen
3) Bei all den Versuchen hatte ich das Programm gelegentlich beendet und später neu gestartet. Das kann zu Problemen führen.
Fehlermeldung "Laufzeitfehler '8018'nur gültig wenn Anschluß geöffnet ist"
Ursache ist ein Leiche des Programms im Hintergrund, die den COM-Port nicht losläßt. Killen im Taskmanager.

Dann komme ich aber nicht weiter.
Habe den Bascom installiert und ein paar Printbefehle nach Anleitung compiliert. Das ging zunächst nicht, bis ich einfache Anführungszeichen für z.B. print '#rmi' &chr(0) &chr(100) benutzte.
das wird dan mit F7 compiliert, aber der Versuch es an das Board mit F4 zu übertragen gibt dann die sinnige Fehlermeldung:
Could not identify chip with ID:FFFFFF
Der Programmierer sucht nach einem 90S2313 den er natürlich nicht findet. Habe eine M8 in den Konfiguration eingestellt. Frage ist F4 überhaupt die richtige Taste zur Übertragung via RS232 oder wird hier versucht die ISP-Schnittstelle zu benutzen? In der Bascombeschreibung schweigen die Autoren sich über solche Kleinigkeiten aus. Gibt es noch eine ander Stelle in der Konfiguration, wo ich eine Targetprozessor einstellen kann (muß)?

Gruß,
Udo

Frank
05.11.2004, 20:32
Hi uzlender,
zum Teil bringst du etwas durcheinander, also mal zu den Punkten:

1. Die RS232 Pin´s sind dort ausnahmsweise nicht beschriftet, werde es in Doku nachholen. Aber dies ist nicht tragisch, es passiert überhaupt nix wenn der Stecker falsch aufgesteckt wird. Am besten aufstecken und RESET-Taste am Board klicken, dann kommt Copyright Meldung am Bildschirm. Kommt sie nicht, Stecker umdrehen!

2. Das du beim Asnchluss des Motor´s mal eine Wicklung vertauscht hast, hat wohl nix mit Board zu tun. Sowas kann bei Schrittmotoren immer passieren, ist auch nicht schlimm. Wenn sich nix dreht, polt man eine Wicklung um.

3. Du meinst das basic Demo Programm auf dem PC. Vermutlich hast du es einmal beendet obwohl der RS232 Befehl nicht abgeschlossen war. Das kann passiert sein als du RS232 Stecker noch falschrum hattest. Da kann es schon mal passieren das ein Task noch ne Weile weiterläuft.
Das Demo soll ja auch nur kurz demonstrieren wie die einzelnen Funktionen funktionierne und wie man das Motorboard unter Visual Basic mit dem PC ansteuert. Es ist also keine technisches Meisterwerk, jeder kann dort Code aus dem Quelltext nehmen und sein eigenes Ansteuerprogramm basteln. Das ist wirklich sehr einfach.

4. Diesen Punkt verstehe ich nicht so ganz. Es klingt so als hast du ein Visual Basic Programm in Bascom geladen. Das kann nicht funktionieren. Der Visual Basic Source Code der beiliegt ist wirklich nur für Visual Basic (PC) gedacht. In Bascom könnte man allerdings ähnlich Befehle nutzten, aber natürlich nicht diesen Quellcode compilieren.
Für Bascom liegt eigentlich nur ein I2C-Beispiel bei, dieses Beispiel ist aber nur für die I2C-Variante von RN-Motor, also nicht sinnvoll für dich.

Wenn du das RN-Motor mit einem anderen Controllerboard über RS232 ansteuern willst, dann schau dir die Befehle in der Doku ode rin dem PC-Steuerprogramm genau an. Du könntest es in ähnlicher Form dann auch in Bascom Basic machen. Im Grunde wird alles mit dem Print Befehl gemacht. Natürlich mußt Du die Baudrate etc. richtig einstellen.
Am Motorbaord selbst solltest du nichts umprogrammieren, außer wenn du schon sehr gute Mega8 Kentnisse hast und das Betriebsystem von RN-Motor ersetzen willst. Beachte aber, das es nicht mehr funktioniert sobald du es per ISP-Dongel gelöscht hast.

Per RS232 wird nichts programmiert, das hast du sicher falsch verstanden.
Vielleicht erläuterst du nochmal was du für Hardware hast und was du machen willst!

Gruß Frank

uzlender
05.11.2004, 21:05
Hallo Frank,

im Grunde möchte ich das Board RN-Motor RS232 programmieren mit ähnliche Funktionalitäten wie
sie das mitgelieferte Testprogramm hat. Der Beschreibung entnehme ich, das ich dazu "einfache Printbefehle"
nutzen soll? Als Compiler ist immer vom Bascom die Rede. So habe ich folgendes eingetippt und compiliert.
Das tut der Compiler auch.


Dim I As Integer
Dim K As Integer

Print 'Strom an'
Print '#rmi'&Chr(0)&Chr(200);

Print 'Motoren ein'
Print '#rmo' & Chr(2)
Print '125 Schritte/sec'
Print '#rmg' & Chr(7)
Print 'endlos drehen'
Print '#rme' & Chr(0)
For I = 1 To 20000
Next
Print 'Motor aus'
Print '#rma' & Chr(0)
End 'end program

Nur dann weiß ich nicht weiter.
Das mitgelieferte Programm spricht mit dem Board über RS232. Nutzt es da die Firmware oder wird
Code in den Mega8 übertragen der dann dort ausgeführt wird?
In welcher Sprache, mit welchem Compiler (Version???) wurde das Testprogramm erstellt?
Wozu gibt es die ISP-Schnittstelle aud dem Board?

Grüße,
Udo

Frank
05.11.2004, 21:16
Der ISP Stecker an RN-Motor ist nur für Programmierprofis, da solltest du nicht ran gehen. Da kann man sich sein eigenes Betriebsystem programmieren, aber soweit bist du sicher noch nicht.

Du mußt RN-COntrol mit ISP an Druckerport vom PC anschließen und am besten erst mal ein wenig mit den RN-COntrol Demos experimentieren. Entwickel erst mal ein kleines Testprogramm mit de rdu z.B. LED´s ein und ausschalten kannst. Erst wenn du da einigermaßen klar kommst und dich an die Entwicklungsumgebung gewöhnt hast, dann würde ich dazu über gehen RN-Motor anztusteuern. Bis dahin wirst du dann auch genau die Syntax von dem Print Befehl kennen. So isz zum Beispiel das Zeichen & das du oben siehst, so in Bascom nicht zugelassen.

Ich werde in den nächsten Tagen mal versuchen schnell ein kleines Beispiel zu posten. Die meisten die RN-Control besitzen haben eigentlich die I2C-Version von RN-Motor. Diese wird ja übe rein anderes Kabel angeschlossen, da wäre ein Demo dabei gewesen.
Aber es geht auch so, du mußt dich nur noch etwa smit Bascom vertraut machen. Schau die auch das STandard-Demo zu RN-Control an. Auch die Bascom Hilfe ist sehr ausführlich. Ein Buch ist natürlich auch nicht ganz schlecht.

Gruß Frank

Frank
06.11.2004, 00:10
So, hab mal schnell ein kleines Beispiel für die RS232-Version von RN-Motor geschrieben.
Hie rsieht man wie einfach RN-Control Schrittmotoren übe rdie RS232-Schnittstelle steuert

Ich hab das Beispiel noch nicht testen können, weil ich in meiner Testumgebung gerade kein RN-Motor habe. Es läßt sich aber compilieren und sollte auch funktionieren

Gruß Frank

RN-Control -> RN-Motor ST RS232 Beispiel:



'################################################# ##
'Schrittmotoransteuerung mit RN-Control und
'Ansteuerungsboard RN-MOTOR über RS232
'
' DIESES BEISPIEL IST NUR FÜR DIE RS232 VERSION von RN-MOTOR
'
'
'Aufgabe:
' Dieses Testprogramm beschreibt die Motorboard I2C-Funktionen
' und legt einige der Befehle auf die 5 Tasten

' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Stellt für den linken Motor den Motorstrom auf 200mA ein und schaltet Motor danach ein
' Taste 2: Lässt den linken Motor endlos drehen
' Taste 3: nicht belegt
' Taste 4: Ändert die Geschwindigkeit des linken Motors mit jedem Tastendruck
''Taste 5: Schaltet den linken Motor wieder aus

' Beispiel wurde noch nicht getestet - sollte jedoch klappen

'Autor: Frank Brall
'Weitere Beispiele und Beschreibung der Hardware
'in der Anleitung zu RN-Motor
'Anleitung findet man unter http://www.Roboternetz.de im Download Bereich
'oder www.robotikhardware.de
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'################################################# #############



Declare Function Tastenabfrage() As Byte


'$regfile = "m16def.dat"
$regfile = "m32def.dat"



Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word

Dim Geschwindigkeit As Byte

Dim I As Integer
Dim N As Integer
Dim Ton As Integer

$crystal = 16000000 'Quarzfrequenz
$baud = 9600

Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1

Geschwindigkeit = 250



Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte





I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL V1.4 *****"
Print "Demoprogramm um Zusatzkarte RN-Motor ST RS232 Version im Schrittmotormodus zu testen"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then

Select Case Taste
Case 1
'Motorstrom auf 200mA begrenzen
Print "#rmi" ; Chr(0) ; Chr(20)

'Motor einschalten
Print "#rmo" ; Chr(0)

Case 2
'Motor endlos drehen
Print "#rme" ; Chr(0)

Case 4
'Geschwindigkeit ändern
If Geschwindigkeit > 40 Then
Geschwindigkeit = Geschwindigkeit - 20
Else
Geschwindigkeit = Geschwindigkeit - 1
End If

Print "#rmg" ; Chr(0) ; Chr(geschwindigkeit)


Case 5
'Motor ausschalten
Print "#rma" ; Chr(0)

End Select
Sound Portd.7 , 400 , 500 'BEEP
End If

Waitms 100
Loop

End




' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen

Function Tastenabfrage() As Byte
Local Ws As Word


Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If

End Function

uzlender
07.11.2004, 11:22
Hallo Frank,

mich verunsichert die Einstellung der Fusebits beim Mega32 etwas,
da sie anders heißen (H statt J), nicht numerisch sind
(Fusebit A987 1111:1111 heißt hier A987 1111: ceramic resonator/crystal BOD/enabled)
Wenn ich das richtig verstehe?

Habe mal ein Bild eingestellt unter:



http://www.gmd.de/People/Udo.Zlender/astro/rncontrol/fusebits.gif


Ist das so richtig, oder müssen andere Einstellungen gewählt werden?

Gruß,
Udo[/img]

Frank
07.11.2004, 12:59
Hallo Udo,
bitte nur Dinge die RN-Motor betreffen hier posten! Andere Dinge bitte immer in das Forum oder den Thread den es betrifft posten, sonst kommt man durcheinander.
Den letzten Beitrag von dir hab ich schon hier hin verschoben
https://www.roboternetz.de/phpBB2/viewtopic.php?t=4463

Der obere gehört eigentlich auch nicht hier rein!

Um auf Quarz umzuschalten mußt A987 auf die letzte untere Einstellung in Bascom umstellen. Das stimmt schon. Gewöhnlich wird das aber schon vor der Auslieferung gemacht, so das du da nix mehr machen mußt.

Nachfragen bitte im richtigen Forum oder anderem Thread, weils ja hier nur um RN-Motor geht! Wenn du mal ein Beitrag nicht mehr findest, dann wurde er verschoben, also nicht nochmal posten.

Gruß frank

metalllack
10.11.2004, 16:20
Hallo,

ich habe mir RN-Motor selbst aufgebaut und nun das Problem, daß meine Schrittmotoren sich nicht rühren.

Zum RN-Motor:
Das Board ist fertig aufgebaut und die LED blinkt, wenn Strom angelegt oder der Resetschalter getätigt wird.
Ein Strom von ca. 41mA bei Ruhe fließt.
JP1 + JP2 schalten PWM
RSMode schaltet PC.

Die Lötpunkte habe ich alle nocheinmal kontrolliert!

Die Vebindung vom PC (COM1) zum RN-Motor habe ich selbst hergestellt.
Die Belegung der Pins:
2 + 3 + 5 führen zur RS232 Stiftleiste (Rx,GND,Tx)
die Pins habe ich auch schon gedreht...geht nicht.
1 + 4 + 6 und 7 + 8 Verbunden.

Via Hyperterminal (9600 8 N 1) bekomme ich auch keine Signale und auch kein startendes Betriebssystem von RN-Motor zu sehen.
Verschalte ich mein Kabel zum Loopback, bekomme ich antwort vom PC.

Via RN_Motor Testprogramm kann ich die Befehle sehen, die ich an RN-Motor schicke. Das sieht dann so aus: #rmi|&#rmo|#rmm|
Die Befehle - Strom übermittelt; Motor ein; Motor Einzelschritt.
Verdrehe ich nun mein Pin 2 + 3 (Rx + Tx), bekomme ich nichts mehr zu sehen.

Und nun hoffe ich auf Hilfe! "Bitte!"


Gruß
Karl Heinz

Frank
10.11.2004, 18:53
Also da Reset geht (blinken) und sich Board nicht meldet, scheint irgendwas bei deinem Kabel noch nicht ganz richtig.
Eigentlich brauchst du nur RX, TX und GND verbinden, brücken mußt du nix und solltest du auch nix. Das Protokoll muss im terminalprogramm ausgeschaltet werden. Aber mit Terminalprogramm kann man eh nur wenig befehle direkt eingeben da binäre Werte schlecht einzugeben sind.

Du solltest dann zum testen lieber erst mal die mitgelieferte Basic Steuersoftware nehmen, solange bis es richtig geht.

Ich vermute Lötfehler beim Kabel!

metalllack
10.11.2004, 20:28
Also da Reset geht (blinken) und sich Board nicht meldet, scheint irgendwas bei deinem Kabel noch nicht ganz richtig.
Eigentlich brauchst du nur RX, TX und GND verbinden, brücken mußt du nix und solltest du auch nix. Das Protokoll muss im terminalprogramm ausgeschaltet werden. Aber mit Terminalprogramm kann man eh nur wenig befehle direkt eingeben da binäre Werte schlecht einzugeben sind.

Du solltest dann zum testen lieber erst mal die mitgelieferte Basic Steuersoftware nehmen, solange bis es richtig geht.

Ich vermute Lötfehler beim Kabel! :frown: Ich werde das entsprechende Kabel bestellen - hätte ich es nur vorher gesehen!
Ich wollte vorher wissen ob es funktioniert und dann das Programieren hierfür lernen. Das ist alles noch sehr neu für mich.

Gruß
Karl Heinz

metalllack
14.11.2004, 17:19
...snipp---

Du solltest dann zum testen lieber erst mal die mitgelieferte Basic Steuersoftware nehmen, solange bis es richtig geht.

Ich vermute Lötfehler beim Kabel!

Ich kann davon ausgehen, daß das Serielle Kabel 100%ig korrekt belegt u. verlöltet ist. "X-mal kontrolliert." (Die Schleifen habe ich Ihrer Empfehlung nach herausgenommen). Keine Änderung!

Die COM-Schnittstelle ist auch noch in Ordnung(Modem-Test), an einem andern Rechner mit Win98SE (extra hierfür neu aufgesetzt ) habe ich auch kein Erfolg!

Kann das sein:
Beim Bestücken der Platine war mir aufgefallen das R2 u. R9 mit 5% Toleranz geliefert wurden - es sollten jedoch nur welche mit 1% Toleranz verwendet werden...bei Conrad habe ich nachgeordert....
"Ich ginge davon aus, daß RNMOTOR trotzdem funktioniern muß - anderweitig hätte man mich informiert!?"

Wieso bekomme ich in RNMotor-Steuerprogramm nicht die aufgeschlüsselten Befehle wie im PDF-Handbuch auf Seite 22 zu sehen?

Ist das RN_Motor Board 100%ig in Ordnung wenn die LED blinkt nach dem Reset. Was kann ich noch überprüfen?

Gruß

Karl Heinz

Frank
14.11.2004, 17:45
Hi,
nein die Toleranz der Widerstände hat damit nix zu tun. Am Board brauchst du nix machen, ein Fehler ist da so gut wie ausgeschlossen da die serienmäßig produziert und dann auch noch programmiert werden.

Da bei dir die LED blinkt, ist das ein Zeichen dafür das das Programm in RN-Motor ausgeführt wird. Da nach dem blinken immer eine Copyright Meldung über die serielle Schnittstelle ausgegeben wird, muß diese bei dir erscheinen.
Da kann eigentlich nur fehlerhaftes RS232 kabel oder falsche Einstellung des Terminalprogrammes schuld sein. Blinkt es schnell oder langsam?

Beim anlöten einer RS232 Buchse mussman Pin´s 2, 3 und 5 benutzen, aber weißt du sicher.
Was tut sich denn genau wenn du das Steuerprogramm benutzt? Bitte beschreib es mal so genau wie möglich.
Verwende möglichst COM 1 beim Steuerprogramm.Tut sich garnix, dann dreh mal RS232 Stecker am Board um und starte Steuerprogramm neu.

Die Copyright Meldung kommt allerdings nicht im Steuerprogramm. Dazu könntest du Hyperterminal oder das Terminalprogramm von bascom benutzen. Imme rauf 9600 Baud und ohne Handshake einstellen. Nach Board-Reset sollte dann dort Meldung erscheinen.

Gruß Frank

metalllack
14.11.2004, 20:48
Hallo,

das mit den Widerständen habe ich mir gedacht - ändern werde ich am Board nichts!
Die LED blinkt ca. 10mal in der Sek. dann geht sie aus. "So schnell kann ich nicht zählen!" ;-)
Ich nutze Pin 2 + 3 + 5 - richtig!
Baud und Bits pro Sek. ist glaube ich nicht das gleiche...ich gehe mal davon aus, es ist Bits pro Sek. gemeint.
Bei Verwendung des Steuerprogramms gehe ich so vor:
Betriebssystem W2K, mit diesen Einstellungen.
- COM1
- Bits pro Sek. 9600
- Datenbits 8
- Parität Keine
- Stoppbits 1
- Flusssteuerung - Keine
Verbindung von Board zu PC seriell ist hergestellt.
Mein RNST01 versorge ich mit 12V aus einem Bleiakku.
Dann starte ich RN_Motor, COM1 ist OK, sende als erstet die maximale Stomlast, dann sende ich Befehle wie Motor an, rechts drehen, dauerdrehen u.s.w aber er dreht sich nicht.
Die Jumper auf dem Board stehen unverändert wie in meinem ersten Beitrag.
Im RS232-Protokoll sehe ich die Befehle die an RNST01 gesendet werden sollen.
1. Variante - Das sind die original Zeichen aus dem Fenster! (Der Text wie "Motor ein - " steht nicht im Protokoll, das sind die Tasten, die ich drücke."
Strom übermitteln - n£Ré¥
Motor ein - n£RÒ
Motor endlos drehen - n£RÓ
Motor stopp - n£Rô

2. Variante - Original Zeichen aus dem Protkollfenster aber RS232 gedreht!
Strom übermitteln - #rmi
Motor ein - #rmo
Motor endlos drehen - #rme
Motor stopp - #rms

In Hyperterminal sehe ich eigentlich garnichts!

Gruß
Karl Heinz

Frank
14.11.2004, 22:44
Hi,
also irgendwas stimmt mit deiner RS232 Verbindung nicht. Es scheint so das Variante 1 bei dir richtig angesteckt war. Immerhin kommen ein paar wirre Zeichen. Eigentlich muss nur das Wort "OK" vom Modul zurückkommen. Hast du das Steuerprogramm auch so genommen wie es mitgeliefert wurde. Normalerweise musst du da keine Parameter verändern - nur installieren und starten. Sonst nix!
Solange kein OK im Protokollfenster zurück kommt, hat das Board dich nicht verstanden.
Auch muss normalerweise Hyperterminal funktionieren. Wenn man es richtig einstellt kommen nach einem Rest eine ganze Menge von Meldungen.

Das einzige was du noch prüfen könntest wäre der RSMODE-Jumper links am Motorboard (je nachdem wie du es drehst). Die müssen rechts stehen, also nicht auf der Seite wo TTL steht. Schau dazu am besten nochmal in die Doku.
Wenn das auch stimmt dann muss am Kabel oder Board was nicht stimmen. Hast du die Kabel vielleicht spiegelverkeht gelötet - sowas wird auch oft gemacht. Im Zweifel solltest du vielleicht doch das fertige Kabel besorgen.

Gruß Frank

metalllack
14.11.2004, 23:50
Hallo,

die Jumper sind richtig gesetzt (PC).
Ich habe das Steuerprogramm von der CD als auch das aus dem Downloadbereich genommen(geändert habe ich darin nichts). Das Kabel kann ich ausschließen - mein Modem könnte garnicht senden und empfangen. Auch die Belegung, es ist alles beschrifte, Stecker wie Buchse - zwar sehr klein aber es ist noch zu erkennen. Das sicherste ist das Terminal, es ist wie ein Fenster im Datenstrang - hier müßte ich etwas sehen. "Leider ist dem nicht so."
Ich habe mir das Kabel schon bestellt....
Ich war in der Hoffnung man könnte aus dem Board noch ein Information bekommen.

Gruß

Karl Heinz

Frank
15.11.2004, 00:09
Ja, du mußt in jedem Fall die "OK " Meldung sehen. Viel mehr wird da nicht angezeigt, die Abbildungen in der Doku waren noch von einer älteren Firmware, da wurde zum teil noch etwas mehr ausgegeben.
Nur wenn man Hyperterminal oder Bascom-Terminal anschließt und RESET drückt, dann werden noch weitere Daten vom Motorboard angezeigt. Aber seltsamerweise geht da sja bei dir nicht - daher muss es in jedem fall mit der seriellen Verbindung zu tun haben.

Leider weiß ich nu auch keinen Rat mehr. Wenn das neue Kabel bei dir auch nicht klappt, dann mußt du doch bei Aufbau noch irgendwo ein Fehler gemacht haben. Entweder Lötfehler oder Fehler beim einstecken des MAX IC´s. Prüf mal ob du Max auch richtig rum drin hast und kein Beinchen daneben gegangen ist. Du hast es doch selbst gebaut oder?
Wenn ja, geh Schaltplan Stück für Stück durch, insbesondere die RS232 Leitungen.

metalllack
15.11.2004, 00:32
Das Board kenn ich mittlerweile sehr gut... ;-)
Das mit den Beinchen der ICs ist in eine heikle Sache - aber sie sind alle noch dran. Löten habe ich durch Conradbausätze gelernt - selbst hier ging ich alle Lötpunkte nochmal durch...und 41mA ist doch ein gutes Ergebnis denke ich.
Auch ein Fertigbausatz habe ich mitbestellt - dann werde ich den Fehler finden. Schade um das Geld und um die Zeit.

Gruß
Karl Heinz

Frank
15.11.2004, 00:54
Hi,
es kann auf jeden Fall nur ne winzige Sache sein die zwischen RS232 und den TX/RX Pins am Controller liegt. Da sProgramm läuft ja jedenfalls.
Tja etwas kann immer mal beim Aufbau schief laufen. Aber Fehlersuche bringt tollen Lerneffekt mit sich - vielleicht tröstet dich das ;-)

metalllack
16.11.2004, 16:32
[-o< Endlich geschafft - es geht!
Ich kann auch sagen was es war.. ](*,) ...die Jumper bei RSMODE, die waren zwar auf PC geschaltet - aber ebend um 90Grad verdreht.
Ich dachte die mussten entsprechend des Aufdruckes in diese Richtung eingesetzt werden.
Erst als ich mir die Schaltung von MAX232 u. RS232 mit RSMODE auf dem Schaltplan anschaute ist mir es aufgefallen. 8-[
Aber nun drehen sie sich! =D>

Gruß
Karl Heinz

Frank
16.11.2004, 21:14
Na fein, das ist schön zu hören. War ich doch recht nah dran bei der Diagnose ;-)
Bei den Jumpern immer genau in die Doku schaun - ich weiß - wer liest die schon gern. In der Regel ist die genaue Position und Steckrichtung rot im Bestückungsplan eingezeichnet.
Aber nu hast du es ja! Also viel Spaß noch.

Gruß Frank

razek
20.11.2004, 17:29
Hallo,

ich habe die RN Schrittmotorsteuerung gerade von Euch bekommen (als Fertigbausatz) und ausprobiert. Allerdings bin ich dabei auf folgendes Problem gestoßen:

Wenn ich einen Motor anschließe lässt er sich auch ansteuern (per PC Steuerprogramm von der CD). Aber sobald nur etwas Belastung auf der Achse ist, setzt die Steuerung aus (die LED leuchtet) - laut Doko bedeutet dass, das die Betriebsspannung nicht ausreichend ist, um den Nennstrom zu erreichen.
Die Stromversorgung des Board ist ein Labornetzgerät, das ich auf 20 Volt eingestellt habe. Es bringt max. 3 A, aber die Anzeige für den Strom zuckt nur etwas.
Der Motor ist ein "Microstep SHS 56/200-K722-4312V“ (bipolar) mit 2 A Phasenstrom, 2,9 Ohm Phasenwiderstand, 11 mH Phaseninduktivität und 1,6 Nm Haltemoment.
Wenn ich den Motorstrom versuche hochzustellen, passiert das gleiche. Eigentlich kann ich nur bis 200 mA fahren, ohne dass mir die Steuerung sich ausklinkt. Wenn ich zwei Motoren anschließe ist es noch schlimmer.

Wo liegt der Fehler?

P.S.: zwei kleine Anmerkungen: Erstens war die Sendung per Nachnahme bei uns an der Universität nur sehr schlecht möglich, da im Empfang eigentlich nie Geld ist (Sendung auf Rechnung ist eigentlich normal - Vorkasse unmöglich). Und zweitens waren die beiden Schraubklemmen für die Motoren falsch rum angelötet :(

Frank
20.11.2004, 18:08
Hi razek,

das mit den Schraubklemmen ist ja kaum zu glauben! Schick es einfach zurück, das würde ich gerne der Bestückungsfirma zeigen! Wird umgehend ausgetauscht. Aber in der Regel arbeiten die schon sehr sorgfältig!

Was dein geschildertes Strom Problem betrifft, da fällt mir momentan auch nichts zu ein. Es klingt einfach alles danach das der Strom nicht ausreicht. Überprüf mal Zuleitungen und verwende mal anderen Motor und Stromquelle.

Was Zahlungsarten etc. betrifft, da ist es immer besser wenn du dich direkt an Shop wendest - hier im Forum gehts ja mehr um die Technik. Aber generell ist es so das Schulen von robotikhardware.de per Rechnung beliefert werden - die müssen dies nur vorher angeben. Aber diesbezüglich verwende am besten das Kontaktformular.

Gruß Frank

razek
21.11.2004, 14:14
Hi Frank,


andere Motoren hatte ich schon mit der Steuerung verwendet: einen kleineren (2 A Phasenstrom, 1,8 Ohm Phasenwiderstand, 0,8 Nm Haltemoment) und einen größeren (2,7 A Phasenstrom, 0,66 Ohm phasenwiderstand, 0,53 Nm Haltemoment).
Als Stromquelle hatte ich zuerst ein 220 W Netzteil vom Computer mit ca. 10,8 V Spannung benutzt. Hier trat auch das erwähnte Problem auf. Mehr als 200 mA lassen sich irgendwie nicht von der Steuerung in die Motoren reinbringen.
Könnte es sein, dass etwas an dem Board falsch ist? Steuern lassen sich alle Motoren ja, aber vielleicht ist ein Leistungsteil fehlerhaft?

Übrigens, die Schraubklemmen habe ich schon umgelötet, war ja kein Problem.

Gruss Ralf (razek)

Dino Dieter
21.11.2004, 16:13
Hallo

Mess doch mal die Spanniung, die über R5 oder R6 abfällt. Nicht das da Werte mit Faktor 10 eingebaut worden sind. Die beiden Widerstände sind ja zur Stromerfassung notwendig.

Zudem kannst du die Spannug an PIN 23 + 24 mal messen, am Controller.
Und die Spannung AREF an PIN 21.

Meld dich dann nochmal.

MFG
Dieter

Frank
21.11.2004, 17:11
@razek: Ein Fehler bei der Produktion ist bislang noch nie vorgekommen.
2A sollte eigentlich kein problem machen, hab selbst schon 1,8V Motoren angesteuert.

Ist sehr merkwürdig. Kann es sein das du bei der Software was falsch machst. Falsche Befehle oder Befehlsreihenfolge. Zum Beispiel muß man das einstellen des Stromes auch immer per Klick abschicken. Da kann man also auch Bedienungsfehler machen.
Vielleicht beschreibst du noch mal stichpunktartig was du genau geklickt hast.

razek
21.11.2004, 18:09
@Dino Dieter:

Der Wert der Widerstände R5 und R6 ist jeweils 1,5 Ohm (also das dreifache des verlangten, gemessen bei ausgeschaltetem Board an der Unterseite der Platine). Wie soll ich denn die Spannung zwischen Pin 23 und 24 messen? ich muss dafür den Kühlkörper abbauen, ist das OK???

Wenn ich die Steuerung anschalte und mit 20 Volt versorge liegt an R6 0,05 V und an R5 0 V an (linker Motor dreht sich, rechter nicht angeschlossen)

@Frank:
ich habe schon so viele Varianten beim anklicken in der Steuerung ausprobiert, eigentlich habe ich alles schon mal gemacht. Aber normalerweise gehe ich so vor:
- Ich öffne das Programm, ohne etwas einzustellen
- Zuerst klicke ich "Motor Ein" in der Grundeinstellung (max. erl. Motorstrom, Drehrichtung, Geschw. usw. nicht verändert) und "endlos drehen" Der Motor läuft so gut, aber ist halt zu schwach.
- Dann "motor stopp" und "Motor Aus" und max. erl. Motorspannung auf 200 mA und "Strom übermitteln"
- "motor Ein", der Motor wird unter Strom gesetzt (man hört es)
- "motor endlos drehen" er fängt kurz an zu drehen (1/4 Sec. oder so), bremst dann aber abrupt und ist nicht mehr ansteuerbar, erst nach reset der Schaltung wieder.
In diesem Moment taucht im Protokoll oftmals folgendes auf:
InitMotor Ruhe PWM =354
(mit verschiedenen Zahlenwerten)

Wenn ich bei laufendem Motor den max. erl. Motorstrom hochsetzte (z.B. 200 mA) und "Stom übermitteln" klicke, hört er sofort auf zu drehen und die LED an der Steuerung leuchtet auf.

Manchmal funktioniert es mit 200 mA (der Motor ist dann auch deutlich stärker), aber dann nicht mehr mit 300 mA. Mal so, mal so.... Die Angaben sind alle für den kleinen Motor gemacht.

Ich bin dankbar für jeden weiteren Ratschlag, denn nächsten Montag (29.11.) muss die ganze Geschichte laufen!

Ralf

Frank
21.11.2004, 18:24
Hi razek,
also das mit den gemessenen 1,5 Ohm kann nu wirklich nicht stimmen, entweder hast du dich vermessen (Übergangswiderstand zum Messgerät) oder dein Messgerät spinnt ein wenig. So ein Patzer passiert der Bestückungsfirma garantiert nicht.

Bei deiner Befehlsreihenfolge ist schon mal falsch das Du Motor erst einschaltest und dann Strom einstellst!
Also erst Strom einstellen, dann Strom per Button übermitteln und dann erst die anderen Befehle.

Das Motor 1/4 Sekunde dreht und dann bremst klingt aber sehr sehr merkwürdig. Prüf doch mal ob du nicht doch eine Wicklung falsch gepolt hast oder ob Dein Labornetzteil kurz den Strom unterbrochen hat. Pole nur mal eine Wicklung (2 Drähte) um

Das bei Strom übermitteln der Motor stehen bleibt ist auch ganz normal. Dieser Befehl muss vor dem Start erfolgen,

Also ich vermute das Du da doch mit dem Anschluß und der Befehlsfolge was falsch machst. Es dürfen auch keine Wackler in den Anschlußkabeln sein. Eine kurze Unterbrechung der Motorzuleitung würde automatisch den Motorstop auslösen.

Wenn du Board austauschen willst, dann bitte nicht vorher dran rum schrauben. Dann lieber gleich austauschen.

churchi
28.11.2004, 13:35
Hi

Ich habe ein Problem beim Verstehen des Schaltplans für RN-Motor beim Messen des Motorstromes:

Der R5 mit 0,5 Ohm und 5Watt ist dazu da, um den Strom messen zu können. Die Spannung die da abfällt währen dann also im maximal Fall bei 2A Motorstrom: 1V (U=R*I ==> 1=0,5*2)
Stimmt das?

Denn wozu ist dann der R2 mit 1K da? - der würde dann ja die Spannung noch kleiner machen?

ARef ist auf 2,5V gestellt - eigentlich unlogisch, wenn 1V das maximum ist, dass gemessen werden muss.

C3 ist glaub ich nur dazu da, um die Spannung zu glätten, und D2 um sicherzustellen, dass nicht mehr als 5,1V in den ATMega geraten.

Wo ist mein Denk/Rechenfehler?

Hoffentlich könnt ihr mir helfen, denn ich hätte eigentlich den µC ohne R2, D2 und C3 angeschlossen, und anstatt des 0,5Ohm 5Watt Widerstandes einen 2,5Ohm 10Watt Widerstand genommen (--> 0-5V in den AVR)

churchi

Frank
28.11.2004, 19:19
Hi Churchi,

du liegst schon ziemlich richtig mit deiner Berechnung.
Also zur Erklärung:
RN-Motor nutzt einen 0,51 Ohm Shunt. Bei erlaubter Maximalbelastung fallen etwas mehr als 1V ab.
AREF ist absichtlich auf 2,5V abgestimmt um zu gewährleisten das auch kurze Überlastungen (die nur Bruchteile einer Sekunde auftreten könnten) auch wirklich keinen Schaden anrichten. Wenn du so willst ist es ein Sicherheitspuffer.
Der Genauigkeit tut das keinen Abbruch, denn die RN-Motor Firmware nutzt den 10 Bit AD-Wandler zum messen, dadurch kann also der Strom bei der Standard-Bestückung immer noch auf ca. 5 mA genau geregelt werden. Das ist viel genauer als notwendig!

R2 und C3 stellen ein RC-Glied dar das die Spannung genau entsprechent der PWM-Frequenz glättet. Muss beides entspechend berechnet werden (gab es im Forum schon irgendwo Thread zu). Weglassen darfst du das nicht.

D2 ist noch eine Sicherheitszehnerdiode, die sorgt dafür das keinesfalls die 2,5V Referenzspannung überschritten und der AD-Port beschädigt wird.
Diese Bauteile kosten nur ein paar Cent aber sorgen dafür das man RN-Motor so schnell nicht kaputt bekommt. Sowas sollte man nicht unbedingt einsparen

Höheren Shunt Widerstand würde ich dir nicht empfehlen, bringt nur mehr Verluste ohne Vorteile!

Gruß frank

churchi
29.11.2004, 18:18
aaaaah - ok - alles klar! DANKE!

Das mit dem glätten der PWM Frequenz werd ich mal durchrechnen...

Aber: Es ist doch eine 5,1 Zenerdiode (kleiner gibt es keine bei Reichelt) - die schützt also nur ab 5,1V Überspannung??

Dino Dieter
29.11.2004, 23:33
Hallo

Die Zehnerdiode ist ein 2,7 Volt Zehnerdiode. Hat Reichelt aber auch.

Schau mal bei den 1,3 Watt Typen . Sind etwas blöd sortiert in der Ansicht.

MFG
Dieter

Roboter n00b
05.12.2004, 12:43
Hi
Ich habe ein Problem mit dem RN-Motor.
Kann mir jemand sagen, wie ich den RN-Motor ST RS232 and den C-Control anschliessen muss, oder eine Link geben, wo das drin steht? Ich habe die Suchfunktion im Forum schon benutz aber nichts gefunden. :-k

Danke

Frank
05.12.2004, 12:52
Wenn du die RS232 Version hast, dann kann man da sBoard da anschließen wo auch das Programmierkabel angeschlossen wird.
Zu diesen fragen am besten diesen Thread nutzen:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=4618

Roboter n00b
05.12.2004, 13:15
HI
Also den RN-Motor muss ich ja über die 3 Polige Leiste an den PC anschliessen. Wo muss ich aber diese 3 Kabel an den C-Control tun?

Serge

Frank
05.12.2004, 15:38
Am besten solche fragen immer gezielt in eigenem Thread oder passenderem Thread stellen. Dann wirds schneller gesehn und findet man schneller einen Experten der einen helfen kann.
Ich hab von C-Control nur begrenzt Ahnung, hab die ewig nicht mehr genutzt da ich ja bekanntlich auf rn-control gewechselt bin
Aber du musst dich natürlich entscheiden ob du rn-motor am PC oder an der C-Control anschließen willst. Beides gleichzeitig geht nicht.
Sowohl die C-COntrol als auch der PC werden an der gleichen dreipoligen Stiftleiste angeschlossen.
Aber nur in der RS232 Version von RN-Motor. Bei der I2C-Version muss man die I2C Pins irgendwo bei der C-Control stiftleiste abgreifen. Ich glaube bei der C-Control geht das nur mit löten.

Gruß Frank

Roboter n00b
05.12.2004, 18:28
Aber du musst dich natürlich entscheiden ob du rn-motor am PC oder an der C-Control anschließen willst. Beides gleichzeitig geht nicht.
Gruß Frank

Hi
Also ich muss ihn ja zuerst am PC anschliessen um zu Programmieren und dann an der C-Control.

ok, ich mach mal ein seperater thread auf

thx

Devastator
13.12.2004, 08:48
Das Visual Basic PC-Programm demonstriert nur die Ansteuerung der RS232 Version von RN-Motor.
Die I2C-Version von RN-Motor ist mit diesem Programm nicht ansteuerbar. Dafür hab ich das Beispiel für die RN-Control gepostet.

Wäre schön wenn einer der ersten C-Control Anwender von RN-Motor noch ein Beispiel für die C-Control posten könnte (i2C oder Rs232). Ansonsten muss ich die C-Control wohl auch nochmal aus dem Schrank holen.

Gruß Frank

Hi Frank,
1. ich kann doch die RS232 Version zuerst mal ohne alles direkt mit dem PC verbinden???

2. Wenn ich später mal RN-Control kaufe, muss ich dann die beiden per RS232 verbinden, oder hat die RS232 Version auch einen I2C Anschluss??

3. Ich habe mir bei MIR-elektronic zwei Schrittmotoren in die nähere Auswahl gezogen. (beide mit 60Ncm Haltemoment)
Der erste Motor (TECO M0108) hat 12V Nennspg. und 0,6A Strom/Phase,
der zweite Motor (TECO M0518) hat 1,8V Nennspg. und 2,6A Strom/Phase.
Welcher ist zu empfehlen bzw. würden die beide an RN-Motor funktionieren? (Ich möchte 2 Motoren verbauen)
Anmerkung:
Mein Fahrzeug soll 10kg wiegen und ich habe die Motorberechnungsseite benutzt (Eingabe: Ø5cm, 10kg, 60U/min, 2:1; Ausgabe 75Ncm)
Sind diese 75Ncm doch so gemeint, als würde das Fahrzeug nur EINEN Motor besitzen???

Gruß Devastator

Frank
13.12.2004, 09:31
Hallo Devastator,

zu den RN-Motor Fragen: http://www.robotikhardware.de/bilder/rnmotormini.gif

1. Ja, kannst du direkt verbinden

2. Die Frage ist nicht ganz klar. Daher hier mal die Möglichkeiten näher aufgelistet:

a) Du kannst die RS232 von RN-Control mit der RS232 von RN-Motor verbinden wenn du keine RS232 Verbindung zum PC brauchst.

b) Möchtest du sowohl RN-Control mit RN-Motor per RS232 verbinden und dennoch auch mit RS232 Daten über zwischen RN-Control und PC austauschen, dann kann man bei RN-Control ganz einfach auch zwei oder sogar mehrere RS232 Schnittstellen programmieren. Das ist ganz einfach, in der Programmiersprache basom reicht quasi eine Anweisung aus um aus einem normalen Port noch eine RS232 Schnittstelle zu machen. Diese Software RS232 Schnittstelle könnte man dann mit der TTL-Schnittstelle (das wäre die 4 polige Stiftleiste bei RN-Motor) verbinden.

c) Die dritte Möglichkeit wäre den I2C-Bus zwischen RN-Control und RN-Motor zu verwenden. Allerdings müsste man dazu ein ein aderes Betriebsystem in RN-Motor einspielen. Dazu bräuchtest du einen ISP-Adapter (abe rden brauchst du sowieso wenn du rn-control programmieren willst) und das I2C-Betriebsystem (ca. 7 Euro). Wenn du dieses I2C Betriebsystem einspielst, kannst du allerdings RN-Motor nicht mehr per RS232 anschließen.

d) Du kannst natürlich auch gleich die I2C-Version bestellen. VOn der Hardware ist die mit der RS232 Version völlig identisch, es ist nur halt schon das I2C Betriebsystem drin. Aber dann könntest du das Board nicht direkt vom PC steuern, außer wenn du den Adapter RN-I2C-PC besorgst. Die Steuerung per PC würde dann aber etwas mehr Programmierkentnisse voraussetzen.
http://www.robotikhardware.de/bilder/rnpci2c/rnipc2c_foto300.gif

Es gibt also viele Möglichkeiten

3. Der Motor TECO M0518 (1,8V Nennspg. und 2,6A Strom/Phase) wäre nicht geeignet weil er eine zu hohen Strombedarf hat. Der Motor sollte unter 2A benötigen. Der andere Motor ginge zwar, wäre aber auch nicht ideal weil er so eine hohe Nennspannung besitzt. Mehr Kraft hätte der Motor wenn die Batteriespannung ca. doppelt so hoch ist wie die Motorspannung (nur so ganz grob gesagt/ Pie mal Daumen).

4. Es ist richtig, die Berechnungsseite berücksichtigt nicht direkt das zwei Motoren einen Bot antreiben, von daher kann der errechnete Wert nur ein Richtwert mit etwas Reserve sein. Da aber bei bestimmten Drehmanövern oder bei Hindernissen die Motoren schonmal recht einseitig belastet werden könnten, sollte man nicht von ausgehen das die Hälfte des errechneten Wertes ausreicht. Man sollte schon versuchen möglichst nahe an das errechnete Ergebnis heranzukommen um einfach auf der sicheren Seite zu sein. Im Einzelfall kann es aber durchaus sein das etwas schwächere Motoren auch ausreichen - aber sowas zeigt dann die Praxis.

Gruß Frank

Devastator
13.12.2004, 13:16
...
3. Der Motor TECO M0518 (1,8V Nennspg. und 2,6A Strom/Phase) wäre nicht geeignet weil er eine zu hohen Strombedarf hat. Der Motor sollte unter 2A benötigen. Der andere Motor ginge zwar, wäre aber auch nicht ideal weil er so eine hohe Nennspannung besitzt. Mehr Kraft hätte der Motor wenn die Batteriespannung ca. doppelt so hoch ist wie die Motorspannung (nur so ganz grob gesagt/ Pie mal Daumen).
...


Danke für die Anworten. Jetzt kann ich doch noch vor Weihnachten bestellen.

Nur mit der doppelten Batteriespannung:
das Board verkraftet doch nur 22V, oder???

Sollte aber kein Problem sein, eine Batterie in der Spannungsgegend zu finden. Oder ist viel Spannung = viel Gewicht? :)

Gruß Devastator

Frank
13.12.2004, 15:13
Ich meinte die Batteriespannung sollte dopplet so Hoch sein als die Nennspannung vom Motor. Ich würde schon bei 12 V bleiben, du solltest halt nur versuchen einen Schrittmotor mit niedrigerer Spannung zu bekommen. Ca. 3 bis 8V wären schon ganz gut !

Devastator
13.12.2004, 20:33
hi Frank,
sorry wenn ich hier deinen Thread zumülle.
Aber ich habe nach langem Suchen einen Schrittmotor gefunden, welcher auch deine Beschreibung passt.
http://www.rsonline.de/cgi-bin/bv/browse/Module.jsp?BV_SessionID=@@@@0210251509.1102965048@ @@@&BV_EngineID=ccceadddfkhfmlfcfngcfkmdgkldfhn.0&cacheID=deie&stockNo=440-442&prmstocknum=440-442

und zwar der 440-442.
Der ist zwar teuer (50,30 EUR+MwSt) -besonders weil ich zwei brauche- ,aber nicht schlecht.

Einen Bleiakku mit 12V 3,2Ah (23,10EUR+MwSt; 1,17kg) dürfte das wohl hinbekommen.


Gruß Devastator

Frank
13.12.2004, 23:52
Der wäre schon gut, aber ist wirklich sehr teuer. Und 3,2 AH ist bei so einem starken Motor nicht unbedingt sehr viel. Die durchschnittliche Laufzeit düfte praktisch (Pie mal Daumen) nicht viel mehr als 30 Minuten betragen. Andererseits ist 10 KG auch schon ganz schön viel.
Ich würde mal bei Ebay schaun, da bekommt man manchmal ganz günstige Schrittmotoren. Die Betonung liegt auf "manchmal", ich hab da auch schon Motoren von mir gesehn die dort das dreifache gekostet haben ;-)
Aber momentan fällt mir keine bessere Quelle für günstige und gute Motoren ein.
Bei 10 KG sollte man auch gut überlegen ob nicht Getriebemotoren die bessere Lösung sind - ca. 10 Kg ist da so ne Grenze wo es mit Schrittmotoen echt schwieriger und teurer wird. Siehe meine Erfahrungen: https://www.roboternetz.de/phpBB2/viewtopic.php?t=520

uli88
02.03.2005, 09:52
Hallo Frank,

ich habe mir RN-Motor in der I2C-Version bestell sowie den PC nach I2C-Adapter.
Ich möchte nun mit Visual Basic die RS232, an welcher der Adapter hängt, RN-Motor ansprechen.

Meine Fragen:
Welches Befehlsformat muss ich an die RS232 senden, die Befehle der RS232-Version sicher nicht, eher die Befehle zur Steuerung der I2C Version (also die 5Byte-Pakete).
Kannst Du mir Infos geben um eine Visual Basic Funktion zu realisieren, mit welcher die RS232 angesprochen wird um über den I2C-Adapter die I2C-Version von RN-Motor zu betreiben?

Ich denke diese Möglichkeit würde noch den Ein oder Anderen hier im Forum interessieren, einen Beispielhaften Visual Basic-Code würde ich dann gerne allen zur Verfügung stellen.

Mit freundlichen Grüßen
Uli88

Frank
02.03.2005, 10:03
Beim PC ist es eigentlich wesentlich einfacher ihn am PC RS232 zu steuern. Aber wenn man sich die Doku und das rn-control Beispiel ansieht, dann kann man es realtiv einfach auf i2c umsetzen.
Wer Lust hat kann gerne dazu ein Beispiel machen, denke aber das es nicht so sehr Sinn macht zumal ja für den Adapter auch der RS232 Port benutzt wird. Warum dann nicht gleich RS232, das geht viel einfacher beim PC.

uli88
02.03.2005, 10:31
Die i2C-Version und den Adapter habe ich mir bestellt um eben beide Möglichkeiten zu haben (bei Bedarf I2C und mit dem Adapter RS232). Ich war mir der Tatsache nicht bewußt, dass für die I2C-Version keine Visual Basic Sotware existiert.

Aber da es ja auch den RS232-Adapter nach I2C gibt, könnte ja schon ein Bedarf an einer VB-Softwareunterstützung für RN-Motor bestehen.

Wenn ich solch eine Konvertier-Funktion (RS232 nach i2C) in Visual Basic nicht hinbekomme, müsste ich mir doch noch die RS232-Version von RN-Motor kaufen bzw. die Bestellte umtauschen.

Uli

Frank
02.03.2005, 19:20
Notfalls kann man auch die Firmware umprogrammieren, ein anderes Board brauchst du dann nicht.

uli88
02.03.2005, 19:54
Danke Frank,

die Lösung meines VB-Problems findet sich ja hier:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=2741&highlight=i2c+rs232

Das umprogrammieren per Firmware habe ich schon mal gelesen, dachte nur das dies auch Hardware-Umbauten mit sich bringt!

Danke!
Uli

Flo1982mx
16.08.2005, 17:12
Hallo, ich bin auch ein ziemlicher neuling und hab mal wieder mist gebaut...
kann mir jemand sagen, welches Bauteil ich beim RNMotor ST I2C geschossen hab, wenn ich einen Jumper nicht auf PWM gesteckt habe?Meine Vermutung liegt beim L298N

Frank
17.08.2005, 13:49
Hi Flo,
also durch den falsch gesteckten Jumper kann eigentlich garnix kaputt gehen. Der Motor läuft dann nur nicht richtig.

Hellmut
29.09.2005, 13:19
Hallo

Nach langer Pause habe ich meine RN-Motor und RN-Control wieder vorgeholt. Meine ersten Gehversuche im November 2004 mußte ich abschliessen, da die Spannung zusammenbrach wenn ich die Schrittmotoren in Betrieb nahm Jetzt verwende ich ein Enermax PC-Netzteil mit 33A Leistung an den 12V.

Mein Problem ist es, ich bekomme meinen Vexta PH266ME-1.2B nicht zum Laufen, obwohl alles so angeschlossen ist wie die Applikationsunterstützung von oriental Motor empfahl.
Als0: Bipolar Parallel geschaltet und entsprechend an die Anschlüsse 1 bis 4 angeschlossen. Strombegrenzung auf 1,5A

Jetzt habe ich bei Studium der aktuellsten Dokumentation gesehen das 2 Elkos hinzuzufügen sind bei größeren Strömen. Kann das Fehlen dieser Elkos, ich habe Version 1.2 mit I2C.

Das Symptom: Der Motor zittert, man jedoch keine Schritte. Ich habe eine 2. Motor am Anschluß rechts Bipolar seriell angeschlossen, Strombegrenzung 1A. Der Motor tat mal kurzfristig ein paar Schritte und ab da nur noch vibrieren, sonst tote Hose!

Was soll ich tun?

Frank
29.09.2005, 14:40
Hi Hellmut,

den Motor kenn ich nicht näher, vielleicht kannst du ja mal Datenblatt oder Daten posten. Bei sehr starken Motoren ist es eigentlich nicht so empfehlenswert die Spulen parallel zu schalten (lieber in Reihe schalten), das kann den Spulenwiderstand also Stromaufnahme erheblich über die Grenzen heben. Einen Motor der mehr als 2A pro Phase benötigt sollte man an RN-Motor eigentlich nicht betreiben, auch wenn Strom niedriger eingestellt wird. Die beiden Elkos die in der letzten Doku beschrieben wurden sollte man bei starken Motoren in jedemfall einbauen. Wenn die Fehlen kann es zu RESET kommen, merkt man an blinkender LED.
Gut wäre es wenn Boardaufbau erstmal mit kleineren Motor checken könntest. Wenn der geht kann man sich dann in Ruhe auf die Wicklungen des Motors konzentrieren. Beim Parallel- oder in Reihe schalten kann man auch mal eine Spule umkehren, ansonsten kann es auch zu zittern kommen.

Gruß Frank

SMR
29.12.2005, 14:43
Hallo lieber Freunde,

Ich beschäftige mich seit einiger Zeit mit dieser Schaltung

https://www.roboternetz.de/wissen/index.php/Bild:Icrnst01schaltplan.gif

Ich will es aber mit einem PIC 16F876 realisieren.Das ganze soll über RS232 eine Antenne mit einem Spiegel von 4m steuern.Dafür habe ich zwei Schrittmotoren Azimut/Elevation jeweils 8V/1,5A pro Wicklung

Ich habe dabei einige Fragen zu dieser Schaltung Hier der erste Teil =D> :

1- zu L298 : Und zwar wie werden die Schritte generiert? Vom Db

-ENABLE=0 Motor aus
-IN1=1 et IN2=0 Motor dreht sich in einer Richtung
-IN1=0 et IN2=1 Motor dreht sich in der andre Richtung
-IN1=IN2 Motor bremst
Jedes Motor hat 4 Anschlüsse wie soll ich jetzt die IN1 bis IN4 und ENABLE A;B programmier für das Vollschrittmodus? und warum ist ein Halbschrittmodus nicht möglich?

Vielen Dank im Voraus für eure Hilfe

MFG
SMR