PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RNS1 Läuft einfach nicht



Mike K
01.04.2005, 00:47
Hallo,
hab die schaltung mit dem RNS1 schon komplett aufgebaut, den Max232 hingehängt, und schicke über die Serielle Schnitstelle die entsprechenden Daten, aber es tut sich nichts. Schaltung ist komplett richtig aufgebaut, und beim anstecken fährt auch das Servo in die Mitellstellung. Signal kommt auch beim RNS1 von der Schnitstelle an.

Ich glaube das der Fehler in meinem Programm liegt.

Ich schreibe das genze unter VB.

Hab mit dem MSCOMM mal nen Port geöffnet, und Optionen wie Baudrate usw. festgelegt, und einfach mal folgendes rübergeschickt

mscomm1.output = "#s"
mscomm1.output = chr(1)
mscomm1.output = chr(200)

Aber das Servo 1 geht nicht in die Position 200, sondern bleibt in der mitellstellung (also 127)

Was mach ich da falsch?

Mike

PicNick
01.04.2005, 10:46
Verwende selbst die RNS1, geht wie ein Glöckchen, kann aber über VB nix sagen.
Aber ganz allgemein: Irgendwelche automatischen <CR><LF> etc. dürfen auf keinen Fall sein.

Frank
01.04.2005, 11:34
Ich hab nun die VB-Syntax auch nicht mehr im Kopf da ich die mscomm1 nur selten benutze.

Probier´s mal mit :


dim befehl as string
befehl="#s" & chr(1) & chr(200)
mscomm1.output =befehl

Ansonsten natürlich drauf achten das nirgends RX und TX Leitung am PC verwechselt wurde (Vor oder nach Max)

Mike K
01.04.2005, 13:36
Ne das funzt auch nicht.
hab das gleiche schon gestern probiert, da tut sich nix. Aber es kommt was am chip an. Wenn ich Daten ausgebe, sehe ich am Oszi eben diese.

mike

PicNick
01.04.2005, 14:26
Na dann verzichte mal auf VB und versuch's mit dem Terminal.
chr(1) u. chr (200) geht normalerweise mit ALT numkybpad
oder editiere eine File mit dem Servocommand und schicke das

c:\MODE COM1: etc
c:\COPY servo.txt COM1:

Frank
01.04.2005, 18:35
Terminalprogramm AVRTERM ist recht praktisch für solche Dinge. Und checke auch mal ob du wirklich Parameter 9600 Baud 8 Bit 1/ StopBit bei VB eingestellt hast.

Mike K
01.04.2005, 19:28
So sieht mein testcode aus:

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True

End Sub

___________________________________________

Private Sub Command1_Click()

MSComm1.Output = "#s"
MSComm1.Output = Chr(1)
MSComm1.Output = Chr(80)

End Sub

Frank
01.04.2005, 20:23
Wie schon gesagt wurde wird es so vermutlich nicht gehen da eventuell ein LineFeet zwischendrin gesendet wird.
Ändere das mal so ab:


Private Sub Command1_Click()
dim befehl as string

befehl="#s" & chr(1) & chr(80)
mscomm1.output =befehl
End Sub

Wenn´s dann immer noch nicht klappt müsste es eigentlich an der Verkabelung mit dem Max liegen. Bist du sicher das da nix vertauscht ist? Vielleicht postest du mal Schaltskizze.

Mike K
01.04.2005, 20:55
Mit dem befehl hab ich es auch schonv ersucht.

Die verkabelung/verschaltung ist auch korekt.

Hab wenn ich am Ausgang vom Max messe ein TTL Signal, wo sich was tut, wenn ich was sende. Die Microcontrollerschaltung stimmt auch.

Die schaltung für den Max ist vom Datenblatt, und die Schaltung für den µC ist von der PDF Datei die man auf der Homepage von robotikhardware runterladen kann.

Mike

PicNick
02.04.2005, 16:09
Check' mal, ob dein VB überhaupt seine eigenen Meldungen lesen kann.
Bau dir eine Input-Routine, die RNS1 spielt.
Und am rs232 verbindest du 2 u. 3 (RX/TX)
Noch was: In solchen Fällen dringen den Test mit einem Terminal zu empfehlen, ist kein Anzeichen von Senilität, sondern stammt aus Erfahrung.

stekolos
26.06.2005, 16:31
Hallo Leute,

ich habe das gleiche Problem:
Ich hab den MAX232 an die RS232 angeschlossen. Meine Daten werden gesendet und auch wieder empfangen. Doch leider geht es nicht.
Ich habe einen 8MHz Quarz in meiner Schaltung als Taktgeber drin.
Könnte es sein, dass ich den mal durch einen 4MHz Quarz tauschen?
Könnte das der Fehler sein?

MfG
Stefan

Frank
26.06.2005, 16:34
Bei RNS1 muss auf jeden Fall ein 4 Mhz Quarz dran, sonst geht nix! Das Board das ihn ansteuert kann natürlich anderen Quarz besitzen.

stekolos
26.06.2005, 16:41
Hallo Frank,

ich muss also einen 4MHZ Quarz verwenden, wenn ich den RNS1 mit einem MAX232CPN an der RS232 betreiben will?

Ich werde es morgen jedenfalls gleich mal mit einem 4MHZ versuchen.
Werde hier berichten ob es geklappt hat.

Frank
26.06.2005, 16:47
Ja, RNS1 ist nur für 4 Mhz vorgesehen!

stekolos
27.06.2005, 19:03
Ich habe jetzt den 4 MHZ drin, doch leider geht es immer noch nicht.
Das ist doch nicht mehr normal?
Die 22µF Kondensatoren sind doch hoffentlich richtig oder?
Ich verwende übrigens die Conrad Servos ES-05 Topline.
Das Programm sendet und und wenn ich mir das ausgelesene wieder einlese, dann passt das soweit schon.
Ich habe im Forum vorhin noch folgendes gefunden
||#S||2||123
gefunden. Muss ich das etwa ausgeben?

PicNick
27.06.2005, 19:19
Ich habe im Forum vorhin noch folgendes gefunden
||#S||2||123
gefunden. Muss ich das etwa ausgeben?

Nur zur Sicherheit: um das Servo 2 (von 1-10) auf die Position 123 (von 1-255) zu stellen, muß du schicken:

PRINT "#s";chr(2);chr(123)

also "2" und "123" sind binär und eigentlich nicht am Schirm lesbar

stekolos
27.06.2005, 19:46
Mein QuellCode aus Visual Basic

'Öffnen des ComPorts
Private Sub Form_Load()
Open "COM1:9600,8,N,1" For Output As #1
i = 0
End Sub

'In einem Interval alle Positionen an Servo 1 übertragen
Private Sub Timer1_Timer()
i = i + 1
If i = 256 Then i = 0
Print #1, "#s"; Chr(1); Chr(i)
Form1.Caption = i
End Sub

--> Nichts passiert!?
Was kann da noch falsch sein?
Hatt jemand ein Programm mit dem ich das mal testen kann??
Sind den die 22µF richtig?

Zur Hardware:

Ich verwende MAX232CPN an RNS1 mit Topline ES-05 Servo, siehe auch die Schaltung von Roboterhardware.de

Frank
27.06.2005, 20:01
Sind den die 22µF richtig?



Ich hoffe du meinst 22pF und nicht 22uF !

Dein Timer in dem VB-Programm sollte nicht zu schnell hintereinander aufgerufen werden. Für Testzwecke wäre ein test mit Button sicher besser

stekolos
27.06.2005, 20:08
Hab ich auch schon versucht.
Leider geht das mit dem Buttons dann immer noch nicht.

Ja ich meine die 22pF sorry.

Charly_cs
13.08.2005, 14:05
Hallo!

Bei mir funktioniert die rns1 auch nicht. Alle Bauteile sind richtig zusammengeschlossen, wenn ich nun Saft auf den µc gebe, ruckelt der Servo kurz. Nehm mal an, dass er in seine Normalposition fährt. Hab schon den rns1-Democode mit der rn-control probiert und die rns1 an Pind7 angeschlossen. --> keine Reaktion. Betreibe jeden µc und Servo an einer eigenen Spannungsquelle. (Wieviel Strom braucht eigentlich ein Servo?)
Hab jetzt folgenden Code geschrieben und die Tx-leitung der rn-control an Pin2 des rns1, sowie den Servo an pin12. Da tut sich wieder nichts. Benutze den Servo aus dem Robotikhardwareshop. Nutze außerdem keine Elektrolytkondensatoren, sondern die mks 0,022µf.

$regfile = "m32def.dat"



$crystal = 16000000
$baud = 9600


Do
Print "#s" ; Chr(1) ; Chr(254)
Waitms 5000
Print "#s" ; Chr(1) ; Chr(15)
Waitms 5000
Loop

Hab ich irgendwo einen Fehler drin?

Xtreme
13.08.2005, 14:53
Wieviel Strom braucht eigentlich ein Servo?

Ohne große Last:
Zu halten ca. 500mA, zum Stellen kurzzeitig ca. 1-1,5A

Nur deinen Code versteh ich nicht :-k

MfG Xtreme

Charly_cs
13.08.2005, 15:04
Hi!

Danke für die Angaben. Glaube den Fehler gefunden zu haben. Nutze für den Servo den Strom meiner USB-Schnittstelle. Die gibt max. 500mA her.
In dem Code soll der Servo1 für 5s auf Pos. 254 gefahren und gehalten werden. Danach auf Pos15 und wieder 5s warten. Das ganze mit einer Endlosschleife garniert und so sollts eigentlich funzn... denk ich zumindest. Werd mal 3 bis 4 Batterien in Serie schalten unds nochmal probieren.

Gruß

stekolos
13.08.2005, 15:53
Hallo Leute,

bin gerade vom Urlaub zurück und prüfe meine Mails...
...da habe ich gesehen, dass es weitere Antworten gibt.

Wäre schön von charly_cs zu erfahren, ob das mit den Batterien funtzt.

Besten Dank,
SteKoLos

Charly_cs
13.08.2005, 18:13
Es hat leider auch nicht funktioniert. Für mich war die rns1 ein voller Reinfall. Hab das Servo jetzt nur an der Rn-Control hängen und alles funktioniert einwandfrei. Hab aber noch tolle Sachen mit der rns1 erlebt. Als ich ausversehen vergessen hab Masse der rns1 zu verbinden, konnte ich im Servo die einzelnen Schritte des Demoprogramms hören. Klingt wie ein leises Ticken. Hängt die rns1 nur an +5V ohne Masse, hatte ich das Gefühl, als ob das Servo wollte, aber nicht konnte. (Ticken war noch lauter gefolgt von minimaler Bewegung) War Masse wieder angeklemmt, gab es eine Totenstille... Naja eine nette Erfahrung.

Gruß
Charly

PicNick
14.08.2005, 08:50
...tolle Sachen mit der rns1 erlebt. ...nur an +5V ohne Masse, ....als ob das Servo wollte, .... Naja eine nette Erfahrung.
So kann ich das nicht unwidersprochen lassen, Kollege.
Ein schlechter Arbeiter schimpft auf das Werkzeug.
Wenn du eine fehlende Masse-Verbindung als Versuchsanordnung verwendet, möcht ich nicht wissen, was du vorher alles versucht hast.

RNS1 hab ich selber, eine Menge andere Leute auch.

Wenn das Gerät elektrisch fachgerecht behandelt und beschaltet ist, mit 4 MHZ Quartz, und mit 9600 Baud die Kommandos laut Doku bekommt, geht es auch.

Ist deine Schaltung selbst gestrickt oder wo ist der Chip eingebaut ?

Charly_cs
14.08.2005, 10:41
Hab alles auf einem Experementierboard aufgesteckt und auch schon auf einer Platine zusammengelötet. In beiden Fällen hats nicht funktioniert. Sind auch alle Bauteile mehrfach da und durchprobiert. Meine Vermutung wäre, dass ich den µc am ersten Tag geschossen hab. Vielleicht sollte man es bleiben lassen, um 2h in der Früh eine Schaltung zusammen zu bauen. ](*,) Genau so hat auch ein Sharpsensor das Zeitliche gesegnet... Lehrgeld. Bitte nicht schlagen, bin noch ein Anfänger :Haue

Gruß

PicNick
14.08.2005, 13:47
..Bitte nicht schlagen ..
Alles ok, dicke Freunde.

Du kannst checken, ob der RNS1 korrekt funktioniert (ohne Kommando's)

Dreh mit der Hand die angeschlossenen Servos voll rechts oder links.
Wenn das RNS1 gestartet wird, versucht er, alle Servos in die Mittelstellung zu bringen.
Da merkst du gleich, ob das Servo nur herumzuckt oder vernünftig in die Mitte fährt.
Tut es das, stimmt Quartz und elektrik mal grundsätzlich.
Wenn nicht, brauchst du mit den Kommandos gleich garnicht rumwursteln

Nu ?