Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Motorsteuerung und C-Control 1
Tach zusammen,
hat hier schon jemand die Ansteuerung von RN-Motor(RS232) mit dem C-Control 1 realisiert ? Wäre für einen kurzen 3-Zeiler ;-) dankbar
Mein aktuelles Problem leigt darin, dass bei den Steuercodes zB #rmo1 für Motor rechts ein, die 1 immer dezimal ausgegeben wird. Ich brauch aber Hex 01 wenn ich alles richtig verstanden hab. Zumidest sieht es so aus wenn ich den Ausdruck von Serwatch richtig interpretiert hab.
C-Controlbasic versteht den Befehl chr(1) nicht. Auch wenn ich print "#rme"; &B00000001; oder &H00 schicke, kommt nur dec. heraus. Komisch eigentlich...
Grüsse,
Reiner
Nachtrag zu Serwatch.
Das ist ein Programm, mitdem man eine ser. Schnittstellen-Kommunikation mitschneiden kann (2-Kananlig) damit hab ich die Kommunikation zwischen Demoprogramm und RN-Motor mitgeschnitten und mir dort die Befehle angesehen, welche von dem DemoProg und meinem eigenen Prog geschickt werden.
Grüsse,
Reiner
Mit der C-Control kenn ich mich garnicht mehr so gut aus, hab schon alles verlernt.
Probier es mal mit:
Print "#rme"
put 1
So könnte es gehen. Aber bedenke das sich durch einschalten noch nicht`s bewegt. Allerdings läßt sich dann Achse schwer drehen, daran kannst du feststellen ob Motor unter Spannung steht.
Im übrigen braucht man eigentlich nix mitscheiden, die Befehle stehen in der Anleitung :-)
Hallo Frank,
danke für Deine Antwort.
Das mit dem put 1 ist es aber leider auch nicht. Beim compilieren kommt dann die Meldung "undefiniertes Label Put". Kennt er also nicht.
Unn nu ? Watt machen mer jez ? Ich muss gestehen, ich hab die Anleitung zum Basic nicht mehr. Ist die irgendwo Online ? Ich hab versucht, etspr. Befehle aus anderen Programmlistings zu "extrahieren". Klappt offensichtlich nicht so ganz...
Grüsse
Reiner
P.S.:
Das mit dem Mitschneiden. Ich hatte ja gedacht, ich würde das Passende über die Schnittstelle schicken, hab mich aber gewundert weil nix passiert am Motor-Modul. Dann kommt man ja auf Ideen. Und Hyperterminal konnte mir die Hex-Zeichen nicht darstellen. Da fiel mir das gute alte Dos-Programm (jaa, da war mal was ;-)) Serwatch ein. Das Programm analysiert dann auch gleich das Timing. Und arbeitet 2-kanalig. Da sieht man dann gut, was oder was man nicht schickt.
R.
Hi
Das C-Control Basic ist aber wirklich schrecklich veraltet! Sorry, aber ist so! CHR ist eigentlich ein Standard-Befehl aus der Steinzeit und selbst der fehlt!
Dann nimm bei Put mal eine Bytevariable statt der 1 . Dann sollte es eigentlich gehen.
Gruß Frank
Hi Frank,
danke für Deiner Hilfe,
das PUT muss in eine separate Zeile, hatte ich nicht gemacht.
print "#rmo"
PUT 1
So wars richtig,
Danke nochmal, wenn ich was fertig hab, werd ich ´s posten.
Grüsse,
Reiner
Fein. Ich glaub Doppelpunkt ist bei C-Control auch erlaubt.
Dann ginge es notfalls auch so :
print "#rmo": PUT 1
Kannst es ja mal austesten, wäre etwas übersichtlicher.
Wäre fein wenn du später kleines Demo für C-Control posten könntest.
Gruß Frank
Hallo Frank,
werd ich machen.
Noch eins, muss zwischen den Steuerbefehlen eine Pause eingelegt werden, oder kann ich mehrere ohne Pause hintereinander schicken ?
zB Motor Strom, Motor ein, Motor Links, Motor endlos .....
und..... fällt mir grad ein, reicht eine Variable im Format Word um die Schritte auszulesen ? ...
so, gut jetzt für heute,
Gruß
Reiner
Hi Reiner,
einige Befehle brauchen ein paar Millisekunden. Insbensondere wenn der Motor eingeschaltet wird, werden intern erst einige Messungen durchgeführt. Da die C-Control abe reh die Befehle nicht so sehr schnell abarbeitet, ist dies vielleicht zum Teil nicht notwendig. Du kannst es einfach ausprpbieren, wenn er einen Befehl verschlcukt dann merkt man es ja. Wenn du sicher gehten willst man ein kurzes Wait oder zwei Print Befehle dazwischen
Roboter n00b
22.03.2005, 19:08
Da meine Frage gerade in dieses Topic reinpasst, poste ich sie gleich hier.
Es geht auch um den RNMotor RS232 an den C-Control.
1. Frage:
Kann ich das Programm so beginnen?
Print "#rme"
Put 2
also beide Motoren Endlos drehen
Was ich ich nicht ganz verstehe, wie man die Befehle für C-Control genau abändern muss
also: print "#rmo" & chr(0)
wird ja zu:
print "#rmo"
put 0
richtig?
wie muss ich es machen, wenn ich 2 Parameter habe?
wird dann: print "#rmd" & chr(0) & chr(1)
zu
print "#rmd"
put0
put1
??
schaut euch bitte noch schnell den anhang an.
In diesem Beispiel hat es 2 Parameter, aber aber im Beispiel nur 1 "chr" befehl... Liegt da ein Fehler vor?
mfg und vielen Dank
Serge
Roboter n00b
23.03.2005, 23:43
die C-Control experten scheinen wirklich ausgestorben :cry:
Ich kenn mich leider wirklich nicht mehr so mit dem C-COntrol Basic aus, daher kann ich dir deine Frage nicht beantworten.
Was das Beispiel in der Doku betrifft, da hast du recht. Es wurde natürlich der CHR(x) Befehl für die Wahl des Motors vergessen. Tippfehler!
Roboter n00b
24.03.2005, 00:29
Hmm jetzt hab ich n problem. Bot fast fertig, und jetzt komm ich nicht weiter. Wo ist eigentlich unser C-Control Experte Matthias???
@Frank
Kannst du mir auch nicht sagen, ob "print "#rmd" & chr(0) & chr(1)"
rein theoretisch zu
print "#rmd"
put0
put1
werden könnte??
wenn ja, müsste ich halt ein bisschen auprobieren, wenn nein schauts schlecht aus.
naja
Serge
Rein theoretisch müsste es so sein. Vorausgesetzt die Put Befehle geben die 0 und 1 auch binär aus und wandeln das nicht intern in ein Ascii-Zeichen um. Bin halt nicht mehr ganz sicher wie da sbei der C-Control war. Abe rdu kannst es ja mal austesten indem du Terminalprogramm anschließt. Die 0 und 1 darf nicht als ASCII Zeichen, also als "0" oder "1" angezeigt werden.
Gruß frank
So, ich hab nun mal ne Kopie in das C-Control Forum geschoben. Vielleicht gibts hier ja noch jemanden der sich mit dem C-Control Basic aus kennt.
Roboter n00b
24.03.2005, 00:52
Rein theoretisch müsste es so sein. Vorausgesetzt die Put Befehle geben die 0 und 1 auch binär aus und wandeln das nicht intern in ein Ascii-Zeichen um. Bin halt nicht mehr ganz sicher wie da sbei der C-Control war. Abe rdu kannst es ja mal austesten indem du Terminalprogramm anschließt. Die 0 und 1 darf nicht als ASCII Zeichen, also als "0" oder "1" angezeigt werden.
Gruß frank
Hi Frank, danke für deine Mühe O:) . Aber wieso sollten sie Binär ausgegeben werden? Binär ist doch 1 oder 0. aber ich könnte ja auch "PUT 2" schreiben, dann wärs ja nicht mehr binär.
Ach ja, wo wir schon beim aussterben der C-Control spezialisten sind.
Könntest du mir gerade einen anderen, Preisgünstigen Controller aus empfehlen? Also einer wo nicht noch gerade Motorenboard inklusive ist, das hab ich nämlich schon^^
Mit diesem C-Control scheint man auf die dauer wirklich keine chance mehr zu haben
mfg
Mit binär meinte ich das die 1 nicht als Ascii-Zeichen Dezimal 49 und die 0 Ascii 48 ausgegeben werden darf. Es muss also wirklich die Zahl übertragen werden die im Quelltext angegeben wird. Wie gesagt, ich hab die den Tip mit dem Terminalprogramm ja gesagt, probiers einfach aus.
Was die Controlleboardempfehlung betrifft, so ist wohl bekannt das ich ein echter rn-control Fan bin :-) Der Motortreiber ist ja gerade ein Vorteil bei dem Board. Man kann doch statt Motoren zum Beispiel auch vier Relais, Lampen oder ganz was anderes anschließen, im Prinzip sind es ja nur 4 starke Ausgangsports die zusätzlich drauf sind. Braucht man die nicht, zieht man IC L293D aus Sockel und diese Ports sind auch frei!
Nichts destotrotz solltest du versuchen das ganze erst mal mit der C-Control zu Ende zu bringen. Denn aus Schwierigkeiten lernt man am meisten.
Gruß Frank
Roboter n00b
24.03.2005, 11:09
Hi Frank O:)
Mit binär meinte ich das die 1 nicht als Ascii-Zeichen Dezimal 49 und die 0 Ascii 48 ausgegeben werden darf. Es muss also wirklich die Zahl übertragen werden die im Quelltext angegeben wird. Wie gesagt, ich hab die den Tip mit dem Terminalprogramm ja gesagt, probiers einfach aus.
Ok, das hab ich nun verstanden, aber was meinst du genau mit Terminalprogramm? ](*,)
Was die Controlleboardempfehlung betrifft, so ist wohl bekannt das ich ein echter rn-control Fan bin :-) Der Motortreiber ist ja gerade ein Vorteil bei dem Board. Man kann doch statt Motoren zum Beispiel auch vier Relais, Lampen oder ganz was anderes anschließen, im Prinzip sind es ja nur 4 starke Ausgangsports die zusätzlich drauf sind. Braucht man die nicht, zieht man IC L293D aus Sockel und diese Ports sind auch frei!
Aha, ok.
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=50
Wäre das hier nicht etwas Änliches wie der C-Conrol?
Nichts destotrotz solltest du versuchen das ganze erst mal mit der C-Control zu Ende zu bringen. Denn aus Schwierigkeiten lernt man am meisten.
das werde ich auf jeden Fall versuchen :)
Gruß Frank[/quote]
Terminalprogramm: Hyperterminal von Windows. Glaube in der C-Control Software ist auch eines eingebaut. Halt Programm um die RS232 Ausgaben zu checken. Dazu sollte man auf jeder C-Control Seite Infos finden - schau mal im Link-Verzeichnis.
Ohne Terminalprogramm kann man eigentlich überhaupt nicht vernünftig programmieren und debuggen.
Roboter n00b
24.03.2005, 14:29
Terminalprogramm: Hyperterminal von Windows. Glaube in der C-Control Software ist auch eines eingebaut. Halt Programm um die RS232 Ausgaben zu checken. Dazu sollte man auf jeder C-Control Seite Infos finden - schau mal im Link-Verzeichnis.
Ohne Terminalprogramm kann man eigentlich überhaupt nicht vernünftig programmieren und debuggen.
Hi Frank
Also, ich hab jetzt auf den C-Control seiten nicht wirklich was gefunden, aber ich hab jetzt folgendes gemacht:
Programm:
mitglied.lycos.de/sergewaechter/rob1.jpg
Compillieren:
mitglied.lycos.de/sergewaechter/rob2.jpg
Und dann: Simulator -> Ausführen
mitglied.lycos.de/sergewaechter/rob3.jpg
(sorry, das verlinken geht irgendwi nicht)
meinst du das mit terminalprogramm?
mfg
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.