PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Uni-Projekt: 15 Servos, LCD-Display, Schalter und Controller



iNGY!
18.10.2007, 09:32
Hallo! Für ein
Projekt an der Uni wollen wir eine Reihe von Servos (15-20) per PC
steuern. Das ganze soll über USB passieren. Über eine Software sollen
verschiedene Presets gespeichert werden können, welche per Klick
ausgewält werden sollen. Die Servos sollen anschließend automatisch
in die voreingestellte Position fahren. Optional wäre eine
Direktauswahl mit 5 Schaltern sowie eine LCD-Anzeige welche das
gewählte Preset anzeigt.

Da wir (noch) nicht wirklich Erfahrung mit der benötigten Hardware
haben, wollte ich anfragen welche auf dem Markt erhältlichen
Komponenten hierfür optimal füreinander passen würden (möglichst wenig selbstlöten)bzw welche
Zusammenstellung dies möglichst kostengünstig realisieren könnte. Es müssen keine zusätzlichen Funktionen integriert sein, welche wir nicht unbedingt benötigen.

Eine weitere Frage beträfe das Netzteil. Da die Servos bekanntlich zwischen 6V und 7V, ein Board allerdings meist 5V benötigt, wäre die Frage ob man hierfür wirklich zwei separate Netzteile benötigt oder ob es Einbaunetzteile gibt welche beides liefern?

Ich danke schon im Vorraus für eure Hilfe!

Viele Grüße, iNGY!

Reeper
18.10.2007, 17:54
Hallo iNGY!,
Willkommen im Forum.

Fragen:
1. Kann ein USB->RS232 Adapter eingesetz werden? Würde die Kommunikation leichter machen (UART)?
2. Soll ein Controller dazwischen eingesetzt werden (soll der Controller alles steuern oder komplett über PC)?
3. Man kann Servo's direkt per Controller betreiben, bei sehr vielen gibt es Bausteine dafür, zB.:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=79_68&products_id=23
http://www.krause-robotik.de/Shop/index.htm
http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=24&source=2
http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=23&source=2
4. Wie sieht es mit dem Programm auf der PC Seite aus?
Wenn man einen Adapter verwendet (RS232), müsste es gut funkrionieren (benutze C++ auf PC Seite und C für die Controller).

Mit einem Controller dazwischen kann man die Servo-Controller oder die Servo's direkt comfortable betreiben (I2C oder RS232) und die Werte speichern. Je nach Befehl von der PC Seite kann man dann alles abrufen. Oder man lässt den Controller per Timer immer mal alles senden und auf der PC Seite per Event (dass etwas im Buffer ist) dann auslesen. Der Controller kann leicht auch das Display steuern.
Mit einem Atmega162 (2 UART's) kann man eine für die Kommunikation mit dem PC einrichten und die Andere hier zB. für RS232-Servo-Controller :-)
(Schnittstellen können voneinander unabhängig eingestellt werden).

Gruß
Stefan

iNGY!
18.10.2007, 18:16
Vielen Dank für die rasche Antwort.

zu Frage 1: die Anwendung soll einfach über einen USB-Port mit dem PC verbunden werden. Wie auch immer das passiert ist nicht vorgegeben. Ich habe irgendwo gelesen, dass es mit einem schlichten Apater in manchen Fällen zu Problemen kommen könnte (wie gesagt, ich habe nicht viel Ahnung davon. Wenn du sagst, dass ein Adapter im Regelfall funktioniert, so soll es mir recht sein O:) )

zu Frage 2: nun unsere Wunschvorstellung besteht darin, dass man einmal die Presets erstellt und diese 5 Presets eben direkt über die Tasten (also ohne PC dazwischen bzw mit PC kann ausgesteckt werden) ansteuern kann. Inwieweit dies nun schon wieder möglich ist weiß ich auch nicht.
Aber zurück zur Frage: ja, es darf ein Controller eingesetzt werden

zu Frage 3: kann ich daraus schließen, dass 15 Servos zuviel sind und ich hierfür einen extra Baustein brauche? Krause-Robotik bietet einen Servocontroller an. Wäre dies die schon fertig aufgebaute Variante, sodass ich lediglich meine Servos in das Board einstecken muss (Servocontroller dann natürlich noch in das "Hauptcontrollerboard") und ich kann mit dem programmieren loslegen? Ist aber relativ teuer. Gibt es hierfür auch eine günstigere Alternative?

zu Frage 4: Es gibt keinerlei Einschränkungen was die Programmiersprache betrifft.

Ich hoffe ich konnte meine Fragen ein wenig präzisieren.
Vielen Dank schon mal im vorraus.

Grüße, iNGY!

jo_robot
18.10.2007, 19:28
klingt ja interessant...

darf man erfahren was das gibt wenn es fertig ist?

weil ich möchte auch ein projekt machen wo ich aber nur 8 servos ansteuern muss und wo ich auch über taster presets abrufe....

Die aller einfachste lößung wo ihr so gut wie gar nix löten müsst wäre ein RN-Control http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=10 und 2 mini servo controlls http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=67&products_id=118

Reeper
18.10.2007, 19:49
Also ihr könnt Taster benutzen (an Controller anschließen) mit best. Presets. Ihr könnt natürlich auch 2 Taster dazu verwenden, einen gewählten Servo durch inkrementieren der entsprechenden Variable im Programm in eine beliebige Pos. zu bringen (die Möglichkeiten sind sehr vielfältig).

Bei meinen Bot gibt es eine Controller-Hierarchie mit einem Master und mehreren Slaves (alles per UART -> Master hat 2 UART Schnittstellen).
Die ganze Kommunikation erfolgt über Strings und am Ende ein '#' Zeichen (bedeutet das Ende des Strings für die Controller). Wenn ich zB. ein Button auf dem PC drücke oder eine ScrollBar verändere, so lasse ich einen entsprechenden Code zum Controller senden. Dieser wertet den Code per If-Bedingung aus.

Du kannst somit ein Button für Ausgangsposition erstellen und beim Klicken den String "SA#" senden (S bedeutet zB. Servo, A Ausgangsposition). Der Controller erkennt dann 'A' und arbeitet dafür den geschriebenen Code ab (Register setzen, Parameter einstellen,...).
Ob das über einen Button vom PC oder einen Taster am Controller geschieht kannst du entscheiden (oder beides).

Bei 15 Servos würde ich mir einen entsprechenden Controller genauer anschauen (den von Robotikhardware hatte ich glatt vergessen).
Ich persönlich mag die UART Schnittstelle und somit die RS232 Variante (einfacher/comfortabler zu programmieren).

Zur Programmiersprache:
Einfach mal hier und im Wiki umschauen. Bascom ist sehr comfortable und gut für den Einstieg. Kommt halt darauf an, welche Vorkenntnisse und Zeit ihr habt (sich eine Sprache anzueignen dauert generell seine Zeit...).

Rabenauge
18.10.2007, 21:56
Nur als Zwischenbemerkung (zum Rest fällt mir nix ein):
(Modellbau)Servos haben 4.8V Nennspannung.
Bei 7V werden _einige_ schon gegrillt!
6V haben bisher alle vertragen, also werdet ihr mit fünfen kein Problem haben, aber mehr auch nicht brauchen.

Reeper
18.10.2007, 22:43
Jo,
5V für Servo's sind gut, doch achte auch auf den Stromverbrauch :-)
Also soll es schon ein gutes Netzteil werden...

Ein sehr gutes LCD (und sehr günstig) ist das zB.:
http://www.pollin.de/shop/shop.php
Code in C:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=17639&highlight=lcd+pollin (glaube das war der korrekte Link)

iNGY!
19.10.2007, 10:53
Erst mal vielen Dank für die vielen Ratschläge.
Die 5V für die Servos sind einleuchtend. Wir planen einige HSR1422 einzusetzten, und die dürften mit 5v zufrieden sein. Gibt es denn so etwas wie ein "Standard-Einbaunetzteil"? Ich hätte jetzt an folgendes gedacht:
http://www1.conrad.de/scripts/wgate/zcop_b2c/~flN0YXRlPTI3MzIyODM2NTU=?~template=PCAT_AREA_S_BR OWSE&glb_user_js=Y&shop=B2C&zhmmh_lfo=&zhmmh_area_kz=&product_show_id=190008&p_init_ipc=X&p_page_to_display=fromoutside&~cookies=1&cookie_n[1]=b2c_insert&cookie_v[1]=F0&cookie_d[1]=&cookie_p[1]=%2f&cookie_e[1]=Tue%2c+20-Nov-2007+09%3a52%3a21+GMT&cookie_n[2]=b2c_hk_cookie&cookie_v[2]=WW2&cookie_d[2]=&cookie_p[2]=%2f&cookie_e[2]=Tue%2c+20-Nov-2007+09%3a52%3a21+GMT&scrwidth=1280
Würde dies funktionieren?

Der Link zum LCD-Display von pollin führt leider nur zum Shop. Wie würde die genaue Bezeichnung des Displays lauten?

Um bei den Controllern ein wenig konkreter zu werden. Bei folgendem Board könnte man die benötige Anzahl Servos direkt anschließen: http://www.nodna.com/xtc/product_info.php?info=p307_Lynxmotion-Mini-Atom-Bot-Board.html
Könnte man daran auch das Display und die Taster anschließen?
Ein weiteres Board (Reeper erwähnte das ATmega168) welches mir aufgefallen ist ist folgendes: http://www.chip45.com/index.pl?page=Crumb168-USB&lang=de
Es verfügt sogar über einen USB-Port. Wäre ich mit ihm in der Lage besagtes Display, die Taster und die Servos direkt anzuschließen?

Sorry, wenn ich noch ein wenig in der Luft hänge. Das meiste ist mir leider noch neu
8-[

Grüße, iNGY!

Reeper
19.10.2007, 11:34
Zu diesem Board kann ich dir leider nichts sagen, verwende selbst nur Controller von Atmel (und davon nur die Atmega Modelle).

LCD von Pollin: Best.Nr. 120 232
Dafür funktioniert der Link von Conrad nicht =P~

Den Atmega den ich erwähnte, war ein Atmega 162. Der Atmega 168 ist ein anderer.

Hier eine weitere Möglichkeit (aber nur bis 8 Servo's)
http://www.kreatives-chaos.com/artikel/rs232-servocontroller-s8io

Ihr (oder du) müsst euch ja nicht gleich auf ein komplett ausgestattetes Board stürzen. Je nach dem was ihr habt und könnt (Lötkolben, Lochrasterplatine, Bauteile) bastelt ihr euch ein kleines Board zusammen. Das kostet nicht viel und die Schaltpläne sind hier und im Wiki.

johns
19.10.2007, 14:58
hallo,

bei einem uC board (zB Crumb168) ist der chip idR. unprogrammiert, dh. man muss sich selbst um den progammcode für die datenübertragung und die PWM kümmern.

einfacher ist es, einen speziell als servocontroller vorprogrammierten uC, bzw ein solches board zu verwenden.

eine preiswerte lösung wäre die kombination von SD21 Servocontroller und USB-I2C adapter.

ersetzt man den SD21 durch einen SD20, hat man noch günstigere variante, wobei hierzu aber eine einfache platine selbst erstellt werden muss.

eine all-in-one lösung stellt das SD84 dar, welches ohne adapter per USB mit dem pc verbunden wird und IO ports zum anschluss von zB display und tastern bietet.

zu finden sind die produkte auf http://www.robot-electronics.co.uk/shop/Servo_Controllers2070.htm und http://www.robot-electronics.co.uk/shop/Serial_Interface2110.htm, es existieren distibutoren in deutschland und es gibt vmtl. auch ähnliche produkte anderer hersteller.

ausserdem könnte man die taster mittels USB HID (joypad, tastatur,...) implementieren, sowie ein USB display verwenden.


lg

edit: das mini-atom-bot-board ist nur ein breakout board, es is kein controller chip inkludiert.

iNGY!
20.10.2007, 08:08
Hallo,

dieser SD84 schaut zumindest mal recht interessant aus. Klar, man könnte sich auch selbst etwas zusammenlöten. Doch ich denke, dass es wohl leichter sein wird auf bestehende Komponenten zurückzugreifen um mögliche Hardwarefehler von Anfang an auszuschließen.

Um nochmals auf besagtes SD84 zurückzukommen:
Ich könnte folglich meine ca. 15 Servos sowie das Display und die Schalter direkt einstöpseln und ich brächte mich lediglich noch um die Programmierung kümmern? Klingt super =P~

Nur zum Verständnis: Der Anschluss mittels USB HID=> Damit ist das einstöpseln z.B. einer Tastatur über USB in den Laptop gemeint, oder?

VG, iNGY!

johns
20.10.2007, 13:11
hallo,



Um nochmals auf besagtes SD84 zurückzukommen:
Ich könnte folglich meine ca. 15 Servos sowie das Display und die Schalter direkt einstöpseln und ich brächte mich lediglich noch um die Programmierung kümmern? Klingt super =P~

ja, wobei aber die display anbindung einfacher dierekt per rs232/USB an PC
wäre, da das SD84 kein rs232 (oder auch i2c) interface besitzt, welches gebräuchliche serielle displays aber benötigen.



Nur zum Verständnis: Der Anschluss mittels USB HID=> Damit ist das einstöpseln z.B. einer Tastatur über USB in den Laptop gemeint, oder?


genau, bei den eingangs genannten '5 schalter[n]' dachte ich an zb gamepad recyling, bringt aber bei der wahl des sd84 wenig da dieses ja auch Inputs zur verfügung stellt

ich würde ein sd84 für die servos und schalter/taster verwenden und ein serielles display seperat per usb (oder rs232-USB adapter) mit dem pc verbinden. optional über einen USB HUB, damit nur ein kabel zum pc geht.

das steuerprogramm würde sich dann also um 2 serielle verbindungen kümmern, was die implementierung aber nicht erschwert.


wahrscheinlich kommt es beim herstellen der anschlusskabel der schalter dann auch noch zum gewünschten 'möglichst wenig selbst löten' ;)

lg

iNGY!
21.10.2007, 08:48
Das klingt irgendwie einleichtend. Um konktret zu werden: ich bräuchte ja nur einen einzigen rs232. Was wäre hier der das preisgünsigste USB-rs232 modul?

Anschließend an diese Frage: wenn ich das Board für das Display und das SD84 über HUB verbinde, könnte ich dann weiter presets über tasten abrufen ohne dass der PC angeschlossen ist (Controller bekommt gesagt: "Taste 1 gedrückt" und stellt die Servos auf die vorher definierte Position)?

johns
22.10.2007, 01:02
Das klingt irgendwie einleichtend. Um konktret zu werden: ich bräuchte ja nur einen einzigen rs232. Was wäre hier der das preisgünsigste USB-rs232 modul?

schau mal auf einer preis-vergleichs website wie zb http://www.geizhals.at
die von dir angesprochenen möglichen komplikationen mit usb-rs232 adaptern können nur bei geräten welche ausser RX und TX noch weitere signalleitungen benötigen auftreten, was bei uC (boards) idR nicht der fall ist. es sollte also jeder adapter funktionieren.


Anschließend an diese Frage: wenn ich das Board für das Display und das SD84 über HUB verbinde, könnte ich dann weiter presets über tasten abrufen ohne dass der PC angeschlossen ist (Controller bekommt gesagt: "Taste 1 gedrückt" und stellt die Servos auf die vorher definierte Position)?
nein (sehr nein sogar;)). das SD84 kann nicht selbst programmiert werden, die tasten, der hub sowie die kabel vmtl auch nicht... irgendwo muss das programm aber hin, in dem fall auf den PC.
Soll das ganze auch bei abgeschaltenem PC funktionieren, wird das ganze ein wenig komplizierter und programmiertechnisch aufwendiger. da es sich ja um ein uni projekt handelt, würde ich persönlich solche fleissaufgaben welche die umsetzung der mindestanforderungen gefährden können unterlassen. aufjeden fall kann das sd84 ohne PC (bzw usb host) nicht verwendet werden.

lg

HannoHupmann
22.10.2007, 20:24
Achja hier gerade entdeckt

http://www.nodna.com/xtc/product_info.php?info=p720_Pololu-USB-16-Servo-Controller.html&XTCsid=4h25t5kumnl53akipc01kdkqj7

vielleicht ist das für euch interessant 16 Servos über USB ansteuern. Dann müsstet ihr nur noch nen an den USB mit dran nen popeligen µC hängen oder ein USB zu I²C und daran einen Port Expander für die ganzen I/0 Taster und ein I²C Display
http://www.nodna.com/xtc/product_info.php?info=p774_USB-zu-I2C-Interface-Modul.html

fertisch ist das ganze, ohne viel Löten, allerdings eben eine teure Lösung

HannoHupmann
22.10.2007, 20:32
Achja, noch ne andere Lösung ist das SSC-32 Board, fällt mir gerade ein. Das hat Anschlüsse für 32 Servos und 4 I/O Anschlüsse. Außerdem einen I²C Bus bzw. Anschluss. Bestückt mit einem Atmega8 kann man da schon ein bischen was machen.

Die Servos lassen sich sehr komfortabel über RS232 ansteuern mit der mitgelieferten Software.

Gibts auch bei noDNA zu kaufen oder im Forum Kaufen/Verkaufen.

PS: Ich hab mir jetzt nicht alles oben drüber durchgelesen sondern wollte einfach nur ein paar fertige Lösungen posten.

iNGY!
23.10.2007, 16:19
Hi back
Danke für die vielen Ratschläge. Bin jetzt wohl schon ein wenig weiter, doch ein paar Kleinigkeiten sind mir noch unklar #-o

Ich habe einmal beim noDNA-Shop nachgefragt und da wurde mir das SSC-32 in Verbindung mit dem Atom Bot Board empfohlen. Liege ich richtig in der Annahme, dass ich eben jenes garnicht brauche!? Solange ich die Servos, das LCD und die Tasten direkt anschließen und ansteuern kann benötige ich doch nichts weiter?
Oder handelt es sich hierbei um das selbe Phänomen wie beim SD84-Board, dass es ohne PC nicht lauffähig ist?

Des weiteren fiel mir auf, dass in der SSC-32-Beschreibung von 180° gesprochen wird. Ist es folglich nicht möglich CR Servos mit 360° anzusteuern? Auch nicht bei einer Aufweichung der "20ms-Regel"?

Die letzte Frage beträfe das Netzteil. Wenn ich ohne Akkus oder teures Labornetzteil auskommen möchte, könnte ich dann folgendes Netzteil verwenden: Pollin, Best Nr 350 509

Oder benötige ich zwei davon, denn ich gehe einmal davon aus, dass wenn ich 5V bei 3A (bei der Anzahl von Servos realistisch!?) an das Controller-Board anlege, dass es diesem nicht sehr gut tun würde!?

Grüße, iNGY!

Reeper
23.10.2007, 19:11
Hallo INGY,

ein Servo kann man nur bis 180 Grad bewegen (nach dem Hacken geht es zwar so weit du willst ;-), jedoch ist es dann ein "normaler" DC Motor).
http://www.electronicsplanet.ch/indservo.htm

Netzteil:
Das PC Netzteil soll mein nächstes Projekt (habe zurzeit davon jedoch wenig Ahnung) werden (brauche unbedingt ein günstiges und starkes...). 3A reicht vollkommen. Zurzeit benutze ich ein abgewandeltes Netzteil eines Receivers. Da will ich kein Servo zusätzlich dranhängen (deshalb meine o.g. Bedenken).

EDIT: Weil ich gerade einen anderen Thread gelesen habe: wieviele Servo's willst du gleichzeitig betreiben? (in Hinblick auf den Stromverbrauch)

Gruß Stefan

HannoHupmann
24.10.2007, 00:04
Bei 15 Servos wäre ich mit Netzteil vorsichtig. Mein 3A Labornetzgerät ging unter Vollast von 18 Servos (davon 6 ohne Last) schon mal ganz gerne ein wenig in die Knie. Die Servos ziehen höllisch viel Strom beim Einschalten. Frage ist wieviel Gewicht die einzelnen Servos stemmen müssen.

Es gibt ein paar 360° Servos aber die Standart Servos schaffen 180° die Mini und Tiny gerade mal 90°, liegt an der Mechanik (mechanischer Endanschlag und Drehwinkel des Potis)

@inGY Richtig wenn du direkt ansteuern willst, brauchst du nicht zwingend ein SSC-32. Der Vorteil von dem Board ist es aber, dass man direkt über PC und ohne viel machen zu müssen, 32 Servos ansteuern kann. Denn die Software und Hardware bekommt man fix und fertig geliefert.
Das SSC-32 wird aber nicht ohne PC funktionieren.
(Taster und LCD könnte man natürlich auch noch anschliessen abgesehen von den Servos).