PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Microservoboard



Tretroller
12.08.2010, 18:56
Hallo,

ich bin neu im Forum und will mich kurz vorstellen.
Ich heiße Markus komme aus Bayern und bin (noch) Schüler.

Ich habe mich schon seit längeren mit dem Gedanken beschäftigt nen Roboter zu bauen, allerdings fehte meist der Mut.

Vor kurzen hab ich mich dann doch dazu durchgerungen ein Board zu kaufen, es sollte hald möglichst anfängerfreundlich sein, wie mans sich hald vorstellt: anschließen Pc anmachen und fertig.

Jetzt habe ich mir das MicroServoboard von Robotikhardware gekauft .
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=118

Leider ist die beiligende Anleitung so kryptisch das sie praktisch sinnlos ist.

Würde mich freuen wenn jemand sich kurz Zeit nähme mich einzuweihen wie man damit arbeiten kann.

Gruß

Markus

Kampi
12.08.2010, 20:58
Jetzt ist die Frage wie du das Board ansteuern willst. Über PC oder über Controller. Für PC brauchste halt eine Software die diese 3 Bytes über Tx sendet:
1. Byte: Startbyte ist immer 255
2. Byte: Servonummer 0 bis 7 (oder 8 bis 15)
3. Byte: Servoposition 0 bis 254
Wenn du das über Controller machst brauchst du ledeglich
Print Chr(255) ; Chr(7) ; Chr(0);
ins Programm zu schreiben und der Servo dreht sich nach ganz links.
Ich weiß jetzt nicht ob die schon eine PC-Steuersoftware mitliefern aber wenn nicht musst du entweder selbst eine schreiben oder du machst das über µC.....das ist denk ich mal nicht so schwer wie das direkt über PC steuern.
Alternativ kannst du auch den Schritt machen das du das Board mit einem Controller verbindest und den Controller mit dem PC (wenn der Controller 2x RS232 hat). Dann kannst du z.B. über TeraTerm einen Wert eingeben wie weit der Servo sich drehen soll und der Controller sendet es weiter an das Board. So brauchst du keine PC Software.

DeVlinder
12.08.2010, 21:00
Hallo :-)

Hm, also ob du das Teil wirklich gebrauchen kannst oder nicht hängt (wie logischerweise immer) sehr stark davon ab, was du genau bauen willst.

Das Gerät das du gekauft hast macht erstmal nichts weiter als Daten auf einer seriellen Leitung entgegenzunehmen und dann bis zu 8 Servos anzusteuern!

Um es zu verwenden brauchst du, wenn du kein Microcontrollerboard verwenden willst, folgende Zusatzhardware:
1. mindestens ein Servo (à ca 5€ die billigsten)
2. Einen seriellen Anschluss zu einem PC, zum Beispiel über ein FTDI-Kabel 5V (ca 20€) oder ein FTDI Breakoutboard 5V (ca 11€) oder ähnliches

Dann kannst du zum Beispiel über das Programm Hterm die Steuerbefehle an das Board schicken, wobei das erste zu sendenden Byte immer 255 sein muss, das zweite einen "Servoport" auswählt und das dritte die Position bestimmt. Schickst du zum Beispiel die Hex-Folge: FF 03 00 an das Gerät, fährt das an Port 3 gehängte Servo auf die Position 0.

Dir sollte auf jeden Fall klar sein, dass das kein übliches Mikrocontrollerboard ist, sondern nur eine Art Erweiterung um Servos anzusteuern. Einzeln macht das Teil höchstens Sinn wenn du zB vom Computer aus einen Roboterarm steuern willst.

Erklär vielleicht kurz was du genau vorhast, dann kann man das Schritt für Schritt durchgehen.

Tretroller
13.08.2010, 08:35
Hallo,

danke erstmal an alle die sich die Mühe machen mir da zu helfen.

Erstmal zum Board.

Das Board wir ausgeliefert mit der Aktuellen Robtikhardware CD mit Texten und Beispielen.
Zusätzlich liegt im Paket ein RS232 Anschluss (3-Polig)
Servo hab ich da, soweit zur Hardware.

Meine Probleme liegen jetzt hier:

- Man soll das RS232 Kabel(3-Polig) an Board Anstecken (Nur Zwei Pins). Logischerweiße bleibt dann einer leer. Welchen muss ich da nehmen bzw nicht nehmen?

- Es sind zwar umfangreiche Beispielprogrammtexte dabei, leider steht da nicht in welches Programm die Geschrieben werden müssen. Gibts da vllt ein Standartprogramm oder irgendwas was mir entgangen ist?

Hier ein Beispiel:
Der Profi weiß warscheinlich was damit gesagt wird, für mich klingts wie Aramäisch.

'################################################# ##
'microservoboard2.bas
'für
'RoboterNetz Board RN-CONTROL ab Version 1.1
'und das Micro Servo Board
'Aufgabe:
' Dieses Testprogramm bewegt ein Servo das am Anschluss SERVO7
' des Micro Servo Board steckt, hin und her.
' Der Jumper am Servoboard muss gesteckt sein, da der MINI SSC MODE
' zur Ansteuerung von Servos genutzt wird
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de

'################################################# ######
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'wahlweise auch 2400 Baud
Dim Servonummer As Byte
Dim Servoposition As Byte
'Der Zahlenbereich 0 bis 254 umfasst einen 180 Grad Drehbereich
'Servo Nummer 15 spricht ebenfalls Servo 7 an, jedoch mit 180 Grad Drehbereich
'Achtung, nicht alle Servos erlauben so große Drehbereiche, daher nicht gleich
'höchsten Wert verwenden
Do
Servonummer = 7 + 8 '0 bis 15 (bei mehreren Boards bis 254)
Servoposition = 210
Print Chr(255) ; Chr(servonummer) ; Chr(servoposition); 'Servo ganz rechts
Wait 2
Servonummer = 7 + 8 '0 bis 15 (bei mehreren Boards bis 254)
Servoposition = 0
Print Chr(255) ; Chr(servonummer) ; Chr(servoposition); 'Servo ganz rechts
Print Chr(255) ; Chr(7) ; Chr(0); 'Servo ganz links
Wait 2
Loop
End

Hoffe Ihr wisst jetzt wo das Problem liegt
Gruß
Markus

Kampi
13.08.2010, 09:17
Also das was du bekommen hast ist ein Standart RS232 Kabel. Die drei Anschlüsse sind Rx,Tx und GND. Dein Board hat nur einen Rx (Recieve) Anschluss, was soviel heißt als das das Board nur Daten empfangen kann. Dementsprechend brauchst du von deinem RS232 Kabel nur den Pin Tx (Transmit), welcher von dem 9-pol Stecker der Pin 2 ist.
Den anderen Anschluss, also Rx, kannst du erstmal ignorieren, weil der nur dafür da ist falls die Gegenseite, also dein Servoboard, was senden will. Aber das tut es ja nicht.
Am besten du ließt dir mal auf Wikipedia den Artikel zur "EIA-232" durch.
->http://de.wikipedia.org/wiki/EIA-232

Die Beispielprogramme die auf der CD mitgeliefert sind, sind Basis-Programme für z.B. Atmel Controller. Um diese übertragen usw. zu können brauchst du Bascom-AVR.
->http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54
Den untersten Link nehmen. Damit downloadest du eine Demo von Bascom.
Das Programm was du gepostet hast macht eigentlich nichts großes. Der komplette obere Teil ist der Teil um den Takt und die Baudrate mit der der Controller arbeitet festzulegen. Danach kommt der Teil wo steht "Dim blablabla". Da werden die Variablen deklariert und das eigentliche Programm beginnt hinter dem Do und sagt aus das Die Variable Servonummer mit 15 beschrieben wird und die Variable Servoposition mit 210. Danach werden die Werte mit Hilfe des "Print"-Befehls über Tx vom Controller gesendet. Und zwar mit Chr(255) ist das Startbyte welches als erstes gesendet werden muss, mit Chr(Servonummer) wird gesagt welcher Servo sich drehen soll (also in diesem Fall Servo 15, weil wir die Variable mit 15 beschrieben haben) und mit Chr(Servoposition) wird gesagt bis wohin sich der Servo drehen soll. Danach kommt mit Wait 2 eine 2 Sekunden Pause im Programm und dann wird das ganze wiederholt nur das die Variable "Servoposition" nun mit 0 beschrieben wird. Das "Loop" am Ende bedeutet nur das das Programm in einer Schleife läuft und die Teile hinter dem " ' " sind Kommentare.
So ich hoffe das hilft dir etwas weiter :)

Tretroller
13.08.2010, 11:27
Ok, ich hoff ich habs jetzt so einigermaßen verstanden.
Nochmal zum mitschreiben:

Servo anschließen auf position 7
Pc an RS232 anschließen
Und jetzt hab ich wieder ein Problem.
Der RS232 Stecker ist so ein Komischer Adapterstecker und endet in einem 3 Poligen anschluss (wie gesagt, hab gemeint des is klar was gemeint ist)
mit folgenden muster
Pluspol, Braunes-"Übertragungskabel" (Tx???) , Minuspol

Das Board hat aber nur 2 pins
Dh entweder schließe ich den Pluspol nicht an oder den Minuspol.
Kann ja nicht im sinn der sache sein keinen Minuspol zu haben

hoffe euch wirds jetzt klar wos bei mir hängt

Kampi
13.08.2010, 11:47
Schau mal in das PDF von der Doku auf der CD. Auf Seite 2 siehst du dann ein Foto von der Platine. Auf der linken Seite ist eine Stiftleiste wo du Vcc und GND anschließt. Das ist die Spannungsversorgung für das Board. Und an logic-level serial Input (der mittlere Pin von der 5-poligen Leiste) wird an Tx angeschlossen. Der Pin logic-level serial Input ist aber nur für RS232 auf TTL Pegel da(!!!!!!!!). Wenn du das Board an den PC anschließt musst du den Pin RS-232 Serial Input nehmen und den an Tx von dem 9-pol Sub-D anschließen. Außerdem musst du an den GND da neben den Pin 5 von dem Sub-D anschließen. Den Pluspol von dem Kabel brauchst du nicht da das Board ja durch eine externe Spannung versorgt wird. Außerdem musst du noch eine Servo Spannung anlegen (servo power).

DeVlinder
14.08.2010, 12:46
Noch was zur Softwareseite:

Wenn du das Board wie von Kampi beschrieben an einen Computer anschließt, einfach hterm runterladen und starten, den entsprechenden seriellen Port anwählen und dann mal im Hex-Eingabe-Modus "FF 01 FF" und "FF 01 00" eintippen (Für den Fall dass dein Servo am Port1 hängt)