PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Robo-Steuerung über PC (USB)



nicron
09.01.2007, 21:40
Hallo,

ich würde gerne sowas wie einen Robo-Arm über den PC steuern (USB), d.h.
es läuft ein PC mit Linux und einer Steuerungssoftware mit welcher einige Motoren in bewegung gestezt werden müssten.
Bin übrigens totaler anfänger in Elektroniksachen. Die Software zu schreiben wäre nicht das Problem.

Ich bräuchte sowas wie einen USB-Controller?
Der halt auf das XXX-Kommando die XXX-Bewegung ausführt.
Es soll jedoch alles AUF dem PC geschehen, nur das Programm steuert den Arm! Wie wäre sowas am einfachsten zu bewerkstelligen?

PS: Mechanik wäre auch nicht das Problem. Nur, halt die Elektronik macht mir Probleme!

Lenox
09.01.2007, 21:55
Mit anderen Worten du brauchst nur eine Schnittstelle vom PC zu den Motoren?

Um was für motoren handelt es sich? Einfache getriebemotoren oder gar Schrittmotoren?

Welche Programmiersprachen kannst du? C? Bascom? Assambler (hierfür wohl am besten, aber auch schwer)

nicron
09.01.2007, 22:09
Mit anderen Worten du brauchst nur eine Schnittstelle vom PC zu den Motoren?

Genau!


Um was für motoren handelt es sich? Einfache getriebemotoren oder gar Schrittmotoren?

Es sollten schon Schrittmotoren sein! Denn der R-Arm muss um einen bestimmten Winkel gedreht bzw. geschwenkt werden!
Ich denke mit Getriebemotoren wäre es auch realisierbar, aber dann wäre die Mechanik komplizierter!?


Welche Programmiersprachen kannst du? C? Bascom? Assambler (hierfür wohl am besten, aber auch schwer)

Ich bevorzuge C, aber Assembler würde auch gehen, müsste mich nur einbisschen einarbeiten.

Lenox
09.01.2007, 22:25
Ja Schrittmotoren sind da eig. besser.
Nun ja du brauchst schon einiges.
Ein Microcontroller und eine Schrittmotoransteuerung.

Um wieviel Motoren handelt es sich?

Du musst dir ein ISP Programmierkabel anschaffen um dein C Programm auf den µC zu bekommen. Der PC kann dann per RS232 (COM) die Signale für die Motoransteuerung direkt an den µC senden.

Dieser wiederum gibt diese Signal an die Motoransteuerung weiter.

Da ich das alles vor ein paar Tagen gebaut habe kann ich schnell die Schaltpläne Posten.

Aber da stellt sich die Frage ob du Löterfahrung hast oder lieber die Platinen fertig kaufst.

Dieser µC mit Platine (z.B. RN-Control) kostet fertig ca. 50 €
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=10
(hat aber auch noch viele Zusatzfunktionen)

und eine Ansteuerung für 2 Motoren müsstest du dann nochmal je 60€ hinblättern.
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=13

Alternative baust du alles selber, denke da kommst du mit 40% der Kosten hin, da du vieles garnicht benötigst.

Achja, wenn du ein µC verwendest kannst du natürlich auch ganz simpel ein LCD Display oder so ansteuern.

Musst dir halt überlegen, jenachdem wie gut du löten kannst,
und bis sowas fertig ist vergehen schon mal 2-3 Monate, jenachdem wieviel Zeit und Grundkenntnisse man hat.
Achja das programmierkabel (s.o.) kostet nur 7-8 Euro bei ebay.

Mfg
Stefan

Lenox
09.01.2007, 22:30
Ach sorry ich rede mist, seh grad das es per USB anstadt RS232 sein soll.
Dann nimm am besten was Fertiges als Board.

Sowas:
http://www.myavr.de/shop/artikel.php?artID=40
49€

Das ist eig. sogar besser für deinen Zweck anstadt das RN-Control.

nicron
09.01.2007, 22:46
Ok- Hab grad gesehn dass du dich korrigiert hast ;)

FirePhoenix
09.01.2007, 23:03
Bei www.pollin.de gibts einige Module zum Schrittmotoransteuern über die serielle und parallele Schnittstelle

Lenox
10.01.2007, 13:39
Ja ist mir auch heut morgen in der Schule eingefallen.
War gestern Abend etwas in Eile und hatte einfach drauflosgeschrieben, sry.
Diese Module die FirePhoenix meint wären natürlich auch gut geeignet, aber meistens immer für den LPT Anschluss (parallele Schnittstelle).
Muss es unbedingt USB sein?

Also am besten wäre es wohl so ein Modul zu verwenden,
oder halt wie oben das Board + Motoransteuerung, und die Daten dan per RS232 senden.

FirePhoenix
10.01.2007, 14:17
Am einfachsten würde es sicher gehn wenn man die RS232 Schnittstelle verwendet und einen atmega8 oder atmega16 Controller. Dazu dann noch ein paar Motortreiber, je nach Motorleistung L293 oder den größeren L298 (für den L298 empfiehlt sich dann auch die Kombination mit einem L297 für Konstantstromregelung, ist aber ein großer Aufwand).
Die Atmegas kann man ohne großen Aufwand über eine parallele Schnittstelle programmieren, dazu braucht man nur ein paar Widerstände. Die Programme werden vollständig in C geschrieben.
Natürlich wirst du einige Zeit benötigen um dich einzuarbeiten, aber es lohnt sich.

Lenox
10.01.2007, 14:32
Jo, für einen Schrittmotor brauchst du dann folgendes:
http://www.robotikhardware.de/bilder/schaltungstep298.gif

Bauteil set gibt es hier:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=17

Funktioniert prima aber ist halt schon n Aufwand. Zudem manche Leitungen höhere Ströme aushalten müssen können.

Ich bekomm 2 von diesen Steuerungen auf eine normale Lochrasterplatine (nur so zur Vorstellung).

Gib und doch mal genauere Informationen

Mfg
Stefan

BlinkyBill
10.01.2007, 15:11
Hmm, direkt an USB ist nicht ganz so einfach...

Was ich vll in erwägung ziehen würde an deiner Stelle, wäre ein Schnittstellenwandler (FTDI).. Damit kannst du dann sowohl auf PC, als auch auf Roboterseite mit einfachen RS232 Befehlen arbeiten...

Ansonsten, wenn du tatsächlich ein USB-device entwickelst, und dazu eine Software schreibst, dann halt uns auf dem laufenden... Möchte das auch bald mal angehen...

Gruß

nicron
10.01.2007, 15:57
hab da was gefunden:
http://sprut.de/electronic/interfaces/usb/usb.htm

vielleicht probier ichs wircklich erstmal über RS232.

FirePhoenix
10.01.2007, 16:12
Es gibt auch einen netten USB- RS232 Konverter um ein paar Euro, falls es nur an der Schnittstelle liegt. Das ganze läuft dann über einen Virtuellen COM Port

Lenox
10.01.2007, 17:34
Den Adapter müsste man jedesmal installieren oder?

Also ich würd dir emfehlen, einfach ein Modul für die parallele Schnittstelle zu kaufen.

Wäre wohl die einfachste und auch deutlich günstigste Methode.
Die Dinger werden oft bei selbstbau CNC Maschinen eingesetzt.
Guck einfach mal bei ebay oder googel was.

Wenn du allerdings den Umgang mit Microcontrollern lernen willst (also nicht nur dieses eine Projekt) dann fang erstmal mit nem kleinen Controllerboard an, und lass 2 LEDs blinken.

Mfg
Stefan

nicron
11.01.2007, 13:50
Wenn du allerdings den Umgang mit Microcontrollern lernen willst
(also nicht nur dieses eine Projekt) dann fang erstmal mit nem kleinen
Controllerboard an, und lass 2 LEDs blinken.
Jo, ich hab mir auch überlegt erstmal klein anzufangen, und das mach ich auch! :)
Welche Teile/Zubehör würdet ihr mir als "Startequitment" empfehlen?
Ich meine halt den standart-kram, wie Wiederstände, Transistoren usw...
Was sind die am meisten gebräuchlichsten Teile?

(Ich möchte nicht alle 5 min zum Elektronikladen fahren um mir Teile zu besorgen! Oder gar im Inet zu bestellen, da wirds dann noch ne Ecke teurer - versand kostet fast mehr als die Teile!)

Lenox
11.01.2007, 14:07
Such mal nach AVR Grundschaltung, dazu gibt es einen guten Artikel
https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht

nicron
11.01.2007, 22:22
Danke, der Artikel ist gut!

potter_66
29.01.2007, 15:55
Falls du dich für die RS232 entschieden hast, dann schau mal bei http://support.oyla14.de/ rein. Ich bin auch gerade dabei einen Mikrocontroller über die serielle Schnittstelle anzusprechen und habe dazu ein PC-Interface programmiert.
Die Anwendung läuft mit 3 verschiedenen Threads: Einer für die GUI, je einer zum Lesen und Schreiben auf die serielle Schnittstelle. Zum Beschreiben der RS232 wird einfach eine Zeichenkette übergeben. Du kannst dir somit dein Protokoll selber zusammenstellen. Das Lesen erfolgt automatisch. Sobald ein Zeichen an der seriellen Schnittstelle anliegt. wird es in einen Buffer geschrieben, welcher dann zur weiteren Verarbeitung verwendet werden kann.
Programmiert habe ich das ganze mit Visual C++ 6.

budarobonetz
25.02.2007, 19:33
Hast du ein DAQ schon mal ausprobiert? Dazu braucht man keinen mikrocontroller zu programmieren aber die steuerung trotzdem in C machen.
Ich mache gerade ein kleines Projekt in der Schule mit einen Roboterarm, Schrittmotoren und einem DAQ von HYTEK (http://www.iusbdaq.eu). Funktioniert ganz gut soweit, wird nächsten Monat fertig sein.