PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mini Servoboard



uschzmet
11.04.2006, 15:59
ich als Newbie wollt mal fragen ob ich das hier richtig verstanden hab:

mit hilfe von dem kleinen Micro servoboard (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=118url) könnte ich per pc zb bis zu 8 servos ansteuern? mir gehts nicht um automatisierte sachen oder ähnliches , ich möchjte einfach nur mal schauen welche möglichkeiten ich habe bei soner kleinen programmieranwendung.
quasi zum reinschnuppern O:)

bad-joker
25.04.2006, 20:07
ja das hast du richtig verstanden, acht servos über rs232.
grüsse
thomas

uschzmet
01.05.2006, 11:24
mh , 8 servos ist mir schon klaro... nur leider das wesentliche scheint hier keinen zu interessieren ... das micro-servo-board ohne jeglichen controller, pur über einen rs232-anschluß per pc ...am besten noch mit einer eher unkonventionellen sprache ...zb php aus der linuxconsole heraus ...

werd ich wohl weiter erfolglos googlen müssen ....

uwegw
01.05.2006, 11:49
Werf doch mal nen Blick in dei Anleitung! Du musst einfach nur nen paar Zeichen über dei RS232-Schnittstelle senden, was eigentlich mit jedem beliebigen Terminalprogramm oder nem RS232-Plugin für ne selbstgestrickte Software möglich ist...

uschzmet
01.05.2006, 13:02
jub und genau das ist der punkt ... die anleitung hilft da leider nicht wirklich weiter .... das ich 3 werte per rs232 rüberschicke ist mir schon klar , nur klappt das leider bisher so nicht ...

nach den ganzen anleitungen zu urteilen müsste man also quasi entweder ASCII-code oder hexadezimalwerte schicken , preisfrage ist nun: wie würde zb in php eine syntax dafür aussehn ? in basic wird offensichtlich auch nur ASCII geschickt .

bisher habe ich zb mit fwrite und einem vorherigen fopen in php leider nicht viel erreichen können ... hier ein kleines beispiel von php in der linux-konsole:



#!/usr/bin/php

<?php


$f = fopen("/dev/ttyS0","w"); // comport öffnen


fwrite($f,chr(255)); // immer 255
fwrite($f,chr(7)); // servo 8
fwrite($f,chr(1)); // position 1 , kann jede position von 1 bis 254 benannt werden




fclose($f); // comport schliessen


?>



ps:

wenn es rs232-plugins gibt dann würd ich gern mal wissen wo, mit google findet man leider NULL ...

eric1000
20.05.2006, 14:02
Hallo uschzmet,

hast Du inzwischen die Servos bewegen können?

Ich habe das gleiche Problem.
Beim senden blinkt kurz die grüne LED und dann nur noch die Rote und die Gelbe leuchtet.

Egal was ich sende, es passiert immer das gleiche.

Nur ein Reset des Servoboardes bringt es dann wieder in einen Zustand wo man es erneut ansprechen kann.

Bin im Moment leicht ratlos.

uschzmet
22.05.2006, 08:21
hi eric, nein bin auch noch nicht weiter...

vielleicht helfen dir ja die links hier weiter :

http://www.pololu.com/forum/viewtopic.php?t=273&highlight=micro+servoboard

http://www.pololu.com/forum/viewtopic.php?t=310&highlight=micro+servoboard


ich würde sagen wir bleiben hier mal gemeinsam am ball und schauen ob wir ne lösung finden ;o)

wie steuerst du das board genau an ? mit welcher sprache?

eric1000
22.05.2006, 09:55
Moin...

im Moment mach ichs primitiv mit cygwin unter windoof. ;-)

Erst mal den einfachen 3er code bevor ich den großen code angehe.

z.b.
echo -e "\377""\001""\001" > COM1

sollte eigentlich gehen.

--> manpage
-e enable interpretation of the backslash-escaped characters listed
below
\NNN the character whose ASCII code is NNN (octal)

377 ist der octal code fur 255.. usw.

ein 101 oktal gibt ein A aus. Also kanns so falsch nicht sein.
# echo -e "\101"
A

ich werd mal einen seriellen leitungsanalysator dazwischen schalten.
Wird nur ne kleinigkeit sein die wir falsch machen.
Evtl das newline.

will ja auch nur ein wenig damit rum spielen, da ich noch net so genau weis was ich damit machen will.. LOL

Evtl so etwas um die Kids zu schocken.
http://www.makezine.com/blog/archive/2006/04/creepy_doll_robot.html

oder eine kleine Pan-Tilt einheit für einen LED-Scheinwerfer der an der Decke hängt den die Kids dann über 2 Potis selbst steuern können.
Oder oder oder... :-)

...eric

Frank
22.05.2006, 12:05
Habt ihr denn mal die ganzen Beispiele auf der Robotikhardware CD bzw. Doku durchgeschaut und umgesetzt. Eigentlich funktioniert Ansteuerung völlig problemlos.

Hier das einfachste Beispiel:



'###############################################
'microservoboard.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
'###############################################


$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 90 Grad Drehbereich
Do
Servonummer = 7 '0 bis 15 (bei mehreren Boards bis 254)
Servoposition = 254
Print Chr(255); Chr(Servonummer); Chr(Servoposition); 'Servo ganz rechts

Wait 2

Servonummer = 7 '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

eric1000
22.05.2006, 12:21
ok.. bin schon ein stück weiter.

ein "echo -e "\377""\001""\001" > COM1"
gibt mir folgendes aus: FF 01 01 0A

Das "0A" ist das "newline" am Ende der Zeile.

Eventuell bringt das den Controler durcheinander?

Lösung "echo -e -n "\377""\001""\001" > COM1"
gibt: FF 01 01

Was genau dem Befehl der Anleitung entspricht.

Ich werde das gleich heute Abend zu Hause am Board testen.

...erich

eric1000
22.05.2006, 12:28
Hi Frank,

ja, nur haben wir (oder ich zumindest) keine RN-Control.
Und bei direkter Ansteuerung vom PC aus scheinen die "Macken" oder "Problemchen" doch einige Käufer zu haben, denn auch im Hersteller-Forum gibt es einige Beiträge zu dem Thema. (die leider auch keine große Hilfe sind)

Dort habe ich aber eine kleine EXE gefunden.

Werde ich auch heute Abend probieren. So etwas ist genial zum testen. Da man dann die eigenen Programmierfehler ausschliessen kann. ;-)
Beitrag: http://www.pololu.com/forum/viewtopic.php?t=310&highlight=flipper
Exe: http://www.engin.umich.edu/~aborrell/prog/flipper.exe

Grüße...
...eric

Frank
22.05.2006, 14:55
Nun die Demos sollten sich recht leicht in jede Sprache übersetzen lassen, auch in Visual Basic. Mit PC hab ichs noch nie probiert, die Problemchen sind mir allerdings unverständlich, denn PC und Controller RS232 unterscheiden sich ja nicht.
Auch die richtige Baudrate genutzt? Wenn ich mich richtig erinnere akzeptieren beide Modis unterschiedliche Baudraten. Datenflusskontrolle deaktivieren.

eric1000
22.05.2006, 15:15
Hi Frank,

tja, da sind wir dann schon zu zweit (dritt) die das "unverständlich" finden, daß es bei so was einfachem dennoch zu solchen problemen kommt.. ;-)

Ich bin mir sicher daß das nur ne kleinigkeit ist die wir da "falsch" machen.

Heute Abend weis ich mehr.
Der Serial-Analysator liegt schon neben mir.

...Erich

uschzmet
23.05.2006, 08:03
die exe hab ich auch mit als erstes versucht, aber bei mir zuckte mal ein servo immer so n millimeter rum ... das zucken hab ich aber auch schon mit php in der linuxkonsole hinbekommen

und das ansteuerungsbeispiel von der CD beim servoboard hab ich auch probiert, da müsste man ja eigentlich nur das terminal-programm starten und dann den code schicken ...zumindest hab ichs so verstanden ... aber das selbe .... wenn überhaupt n klitzekleines zucken des servos

ps: baudrate ist bei mir auf 9600

eric1000
23.05.2006, 08:55
Hallo uschzmet,

das mit dem terminal progeamm ist so ne sache.
Was tippst du, wenn Du die Bitfolge "255 7 100" haben willst?

Da ist das Board schon ein wenig primitiver aufgebaut. Das interpretiert scheinbat echt nur bits und keine "schönen" ascii-Zeichen.
Wäre ja auch kein Problem... Wenns gehen würde.. LOL
Irgentwo haben wir noch nen denkfehler... Nur wo?

Gibt es noch ein anderes Board hier in DE zu bestellen das einfacher an zu steuern ist?

Es muss auch nicht auf eine Briefmarke passen, es darf ruhig größer sein.

...eric

eric1000
23.05.2006, 09:12
Die ultimative Anwendung wäre für mich ein kleines Kästchen (1-2 zigarettenschachteln größe) mit ethernet und 8 (oder mehr) servo ausgängen.

dann die servos übers ethernet mit http aufrufen steuern.
z.b. so in der art
http://192.168.0.100/bewege.cgi?servo=2&position=143

das wäre mein traummodul.
da würde ich auch spontan mindestens 3 davon haben wollen!
wo gibts sowas?

eric1000
23.05.2006, 17:12
ich denke ich werde mir dieses Teil mal besorgen als rs232/ethernet adapter für das servo board.
http://www.wilke.de/ethernetwebwlan.php?we_objectID=21

das könnte wahrscheinlich dann genau das sein was ich will.

für autonome roboter wären bestimmt deren wlan modul interessant. ;-)
http://www.wilke.de/ethernetwebwlan.php?we_objectID=643

...eric

dlinus1959
15.06.2006, 13:12
Hallöchen, ich hab mir gerade mal durchgelesen was ihr zu diesem Controller geschrieben habt. Ich hatte die gleiche Probleme. Die Beispielprogramme laufen nicht (permanent ging die rote LED an). Dann- nach zwei Nachtschichten am PC hab ich mir mal ein Programm gestrickt, mit dem es funzt. Nun bin ich in der Lage jeden der 8 Servos einzeln anzusteuern.Was ich noch nicht geschafft habe, alle 8 gleichzeitig "fahren" zu lasem". Was extrem wichtig ist bei dem Board- es ist wohl ein Sensibelchen, was den Datenstrom angeht. Die Befehlsfolgen dürfen nicht zu schnell aufeinander folgen. Hier ein Beispiel:
FOR a = 0 TO 7
PRINT " Motor "; a + 1; " Richtung Ende "
Ende$ = CHR$(128) + CHR$(1) + CHR$(4) + CHR$(a) + CHR$(31) + CHR$(32)
OPEN "COM1:19200,N,8,1,RS,CS,DS,CD" FOR RANDOM AS #1
PRINT #1, Ende$
CLOSE #1
FOR I = 1 TO 1800000: NEXT I: NEXT a

Ich hoffe es hilft euch weiter

uschzmet
15.06.2006, 13:45
hi dlinus, öm mal grad damit ichs auch richtig versteh, du hast das mit der bascom-ide gemacht?

dlinus1959
15.06.2006, 16:00
hi uschzmet,
nö, hab ich nicht mit bascon gemacht, dass hab ich nicht geschafft damit eine vernünftige kommunikation via terminalprogramm hinzubekommen- wie gesagt immer die rote led.
das gute alte quick basic ( vb, oder delphi etc. finde ich einfach zu aufgeblasen) leistet mir immer noch sehr gute dienste :-)

uschzmet
30.07.2006, 19:36
also solange hier keiner das gegenteil beweisen kann geb ich mich hier geschlagen und sag einfach mal in den raum hinein: per pc ansteuern von einem servomotor kannste absolut knicken ... ne vernünftige steuerung is damit NICHT möglich ... *grummel*

vielleicht fühlt sich ja jetzt vielleicht jemand herausgefordert *mal eben zum admin schielen tut* selbst mit der exe-datei der ponolu-seite hab ich nix brauchbares erzielt ...

dlinus1959
20.11.2006, 22:08
magst du mal ´ne *.exe haben, womit dies geht ?!

eric1000
21.11.2006, 16:08
magst du mal ´ne *.exe haben, womit dies geht ?!

ja bitte.. :-)
(auch wenn ich nicht "uschzmet" bin...)

bla0815
21.11.2006, 17:44
ich habe das gleiche problem mit dem zucken und der roten LED in beiden möglichen Betriebsmoden (SSC und Pololu) werd das heute noch mal testen mit dem langsameren senden


edit
hab das ganze jetzt mal langsamer getest der servo fährt ruckartig ein wenig dahin dann kommt wieder die rote led

eric1000
10.01.2007, 16:39
nachdem das teil ja nicht so sinnvoll funktioniert wie gedacht bin ich weiterhin auf der suche nach einer lösung für meine bastelwünsche.

ich suche ein kleines stückchen hardware was folgendes kann:

input = ethernet TCP/IP
output = modellbau servos

ich will einfach nur die servos über das internet ansteuern können.

also http://[IP]/move.cgi?SERVO=01&POS=25

wäre am coolsten...

soll klein und kompakt sein und keinen monster rechner beötigen.
(nur ein steckernetzteil und eben das ethernet)
oder noch besser power over ethernet ;-)

soll nur für eine "analoganzeige" dienen die irgentwo im internet hängt.

gesteuert wird die anzeige dann von einem server der die stellwerte als request an die ip liefert...

kennt einer so was? ich hab leider bisher nichts in der art gefunden.

...eric

bla0815
11.01.2007, 10:39
wäre auch schon gut
ich hab mir zwei von den servoboards gekauft und dachte müßten ja funktioneren mit der COM aber dem scheint nicht so.
habe aber bis jetzt noch keines anständig zum Laufen gebracht.
Mir ist es egal ob Ethernet oder Com

uschzmet
05.02.2007, 23:29
es funzt .... nee nee nee

sowas aber auch ... also:

ich habe mir mal irgendwann die ersten 3 servos für n projekt namens "die wilde 13" geholt, zu finden HIER (www.sandbox.at)

da werden so klitzekleine aber saustarke servos verwendet, nun hab ich aus mir grad unerklärlichen gründen heute abend mal einen servo ans microboard gehangen .... plötzlich geht der mist ....

also diese probe-exe namens flipper gestartet ...es geht auch .... der servo schnurrt wies sein soll

also linux hochgefahren und endlich mit php herumgespielt

was soll ich sagen .... es funzt auf der ganzen linie !!!!

hier mal n ganz einfaches kleines test-script für 2 Servos am Microboard im "MINI SSC II MODE"



#!/usr/bin/php

<?php

$i=1;

while($i){
go(0,0);
sleep(1);

go(7,254);
sleep(1);

go(0,254);
zeit(40000); // mal n kleineren zeitabschnitt als 1sek , nur spielerei

go(7,0);
sleep(1);

}



function zeit($j){
for($i=0;$i<=$j;$i++){}
}


function go($number,$position){
$f = fopen("/dev/ttyS0","w"); // comport öffnen
fwrite($f,chr(255)); // immer 255
fwrite($f,chr($number)); // servo 1-8
fwrite($f,chr($position)); // position 1 , kann jede position von 1 bis 254 benannt werden
fclose($f); // comport schliessen
}
?>