Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller via RS232 / USB ansteuern


von Enni (Gast)


Lesenswert?

Guten Abend!

Ich hab eine Frage, die ich mir leider trotz stundenlangem Googlen nicht 
beantworten konnte.

Es geht um Folgendes:
Wir werden einen einfach Roboterarm kaufen, dessen Servos von einem 
Atmega64 angesteuert werden.
Diesen möchten wir mit Steuersignalen direkt steuern, die von einem PC 
gesendet werden. Am PC stehen zur Verfügung: RS232 und USB.

Es wird ein "USB Programmier Adapter" mitgeliefert, über den dann die 
HEX-Dateien auf den Atmega übertragen werden können.

Meine Frage: Wenn ich mit diesem Adapter ein Programm auf den Controller 
übertragen kann, kann ich dann auch später Steuersignale über diesen 
Adapter an den Controller senden (nachdem ein Programm auf den 
Controller übertragen wurde, das dem Controller sagt, was er bei 
entsprechenden Signalen tun soll)?

Oder, wenn das nicht geht, kann ich per RS232 direkt Signale schicken? 
(Habe schon gelesen, dass man dort dann noch eine Signalumwandlung per 
MAX232 benötigt.)

Wenn ich die mitgelieferte USB Lösung (welche eigentlich nur zum 
Programmieren gedacht ist) verwenden könnte, wäre mir dies natürlich um 
einiges lieber.

Wir möchten halt zum Beispiel, dass der Arm sich nach rechts dreht, wenn 
ich die rechte Pfeiltaste meiner Tastatur drücke.

Über eine Antwort, eventuell auch noch helfende Links, würde ich mich 
sehr freuen!

Danke und eine gute Nacht!

von abc.def (Gast)


Lesenswert?

Kannst Du mal etwas näheres zum Adapter posten?
Der AVR hat eine hardwaremäßige Shnittstelle, über die Programme 
reingeladen werden können. (10poliger Pfostenverbinder, manchmal auch 
6polig)
Mit dem geht es nicht.
Wenn der AVR einen Bootloader hat, könnte Dein Adapter eine USB/ser. 
Schnittstelle sein. Beispiel ist der Arduino. Da ist zwar ein spezieller 
Schaltkreis mit dabei, der aber im Normalbetrieb als serieller Wandler 
genutzt werden kann.
Übrigens brauchst Du nicht unbedingt das Gefummel mit den RS232 
Wandlern. Es gibt die USB-Seriell Wandler auch mit TTL Pegel. Da ist der 
Spannungswandler weggelassen und schon passen sie direkt an das TXD/RXD 
des Prozessors.

von Hans-Georg L. (h-g-l)


Lesenswert?

Da fehlt aber einiges an Information um diese Frage zu beantworten ...

A.) Die liefern dir einen fertig programmierten AVR und ein PC Programm.

B:) Die liefern einen fertig programmierten AVR und die Dokumentation 
der Kommunikationschnittstelle mit dem PC. Dann Schreibst du dir die PC 
Software selbst.

C:) Die liefern dir nur eine Lib oder Source Code zur Ansteurung des 
Roboterarms. Dann musst du die gesammte Kommunikation auf dem AVR auch 
noch implementieren

D: Die liefern gar nichts ... Dann freu dich auf einen schönen langen 
Winter ;)

von Enni (Gast)


Lesenswert?

Zu dem Adapter weiß ich leider nichts genaueres.
Ist aber wohl 6polig.
Datenblätter gibt es hier:
http://arexx.com/robot_arm/html/en/documentation.htm#datasheets
Ganz unten beim Manual sind die Schaltpläne.

Auf einen Arduino zu wechseln wird glaube ich schwierig, da der Atmega64 
wohl fest auf der Plantine verbaut ist.

von Conny G. (conny_g)


Lesenswert?

Mit dem Programmer wird es nix werden da auch seriell mit dem uC darüber 
zu kommunizieren, denn der programmiert den uC per SPI.

Um PC und uC miteinander sprechen zu lassen nimmst am besten so ein 
Kabel von USB nach TTL/RS232:
http://www.adafruit.com/products/954

Das müsste es in Deutschland auch geben, evtl. bei Exp-tech.

Ah, ja, hier:
http://www.exp-tech.de/Shields/USB-TTL-Serial-Kabel-Raspberry-Pi.html

Exp-Tech ist Reseller für Adafruit in Deutschland.

Verwendung: Siehe Adafruit Tutorial, ist sehr schön beschrieben.

: Bearbeitet durch User
von Enni (Gast)


Lesenswert?

Hallo Hans-Georg!
Habe deine Antwort erst gelesen, nachdem ich den zweiten Post abgesendet 
habe, sorry.

Dann versuche ich mal mehr Informationen zu geben, bzw. schreibe etwas 
zu deinen Anmerkungen:

Und zwar liefern die tatsächlich viele Dinge mit. Allerdings ermöglichen 
sie mir noch nicht direkt das, was ich machen möchte (nämlich 
Steuersignale vom PC direkt zu geben).

Zum einen liefern sie eine Software für den PC, bei dem ich eine Abfolge 
von Bewegungen einstellen kann, die der Arm dann (nachdem diese Abfolge 
/ das Programm auf den Controller programmiert wurde) ausführt (immer 
und immer wieder).

Dann gibt es eine Datei, welche ich auf den Controller spielen kann, die 
es mir dann ermöglicht, mit einer gesonderten Tastaturplatine, auf der 
sich 6 (oder 12? Einer für beide Richtungen, bin mir gerade nicht 
sicher) Schalter befinden, die Servos direkt zu steuern.

Außerdem gibt es Treiber, die überhaupt die Verbindung mit dem 
USB-Programmier_adapter ermöglichen. Und es gibt wohl auch noch die 
c-Libarys zur Programmierung.



Vielen Dank!

von abc.def (Gast)


Lesenswert?

Ich täte mal sagen, da ist ein Bootloader drauf, und die Schnittstelle 
ist eine normale serielle. Der Adapter scheint ein normaler 
USB-serieller mit TTL Pegel zu sein. Da bildet sich im PC ein virtuelles 
COM Port, das ist genauso wie das mit dem ovalen Stecker. Nur daß Du bei 
dem ovalen Stecker einen Pegelwandler bräuchtest.
Ich denke, das geht so, wie es ist; sofern die Firmware das zuläßt. Gibt 
aber keinen Grund, warum nicht.
Baue das einmal naach Anleitung auf, und mache zuerst die mitgelieferten 
Beispiele durch. Wahrscheinlich geht dann ein Licht auf.

Das mit dem Pfostenstecker, den ich vorhin meinte, ist hier mit ISP 
gekennzeichnet und wird vom Anwender nicht verwendet. Daß die serielle 
Schnittstelle hier den 10p hat, ist Zufall, ich wußte das vorhin noch 
nicht.

von Karl H. (kbuchegg)


Lesenswert?

Enni schrieb:

> Und zwar liefern die tatsächlich viele Dinge mit. Allerdings ermöglichen
> sie mir noch nicht direkt das, was ich machen möchte (nämlich
> Steuersignale vom PC direkt zu geben).

Nomenklatur!

Du gibst keine 'Steuersignale'!

Sondern der PC sendet Kommandos über eine der verfügbaren 
Kommunikationsschnittstelle zum ATMega. Der ATMega führt die dann aus, 
indem er die Mechanik des Arms ansteuert.

Dem Mega ist es nämlich prinzipiell egal, wer da am anderen Ende die 
Kommandos schickt.

Dein 'Problem' lässt sich also auf das einfachere Problem 'Wie 
kommunizieren PC und ATMega' miteinander zurückführen. Dazu braucht es 
keinen Roboterarm.
Und das wirst du dann wohl lernen müssen.

von Enni (Gast)


Lesenswert?

Okay, vielen Dank für die Hilfen!
Das Projekt muss leider noch ein wenig warten, erst dann kann ich das 
aufbauen und ausprobieren.
Wollte nur euch einmal fragen, ob ihr meint, dass mein Vorhaben mit 
diesem Arm so möglich ist. Nicht, dass ich die Euros umsonst ausgebe!

Nochmal vielen Dank, ende März gibt es hier dann vielleicht Updates, 
wenn ich es nicht vergesse! :)

Gute Nacht

von Enni (Gast)


Lesenswert?

Hallo Karl-Heinz!
Sorry, habe deine Antwort leider übersehen.
Das was du schreibst, weiß ich ja.
Und ich hatte ja gehofft, dass eben die Frage "'Wie kommunizieren PC und 
ATMega'" hier beantwortet werden könnte.
Bzw. ersteinmal, ob es überhaupt über diesen USB-Adapter, der eigentlich 
nur zum Programmieren des Atmegas gedacht ist, möglich ist.
Schöne Grüße

von Karl H. (kbuchegg)


Lesenswert?

Enni schrieb:

> Und ich hatte ja gehofft, dass eben die Frage "'Wie kommunizieren PC und
> ATMega'" hier beantwortet werden könnte.

Das 'wie genau' kann man so nicht beantworten. Da gibt es unzählige 
Möglichkeiten.

Das ist wie bei einer Telefonleitung.
Die Serielle bzw. der USB Adapter sind erst mal nicht viel mehr als eine 
Telefonleitung.
Was du dann mit der Telefonleitung machst, ob du da reinpfeifst, ob du 
singst, ob du englisch sprichst oder doch lieber Japanisch, ob du 
Kommandos bellst oder .... das ist deiner Phantasie bzw. deinen 
Programmierkünsten überlassen.

> Bzw. ersteinmal, ob es überhaupt über diesen USB-Adapter, der eigentlich
> nur zum Programmieren des Atmegas gedacht ist, möglich ist.
> Schöne Grüße

Der Anschluss ist als "Programm/UART" beschriftet und in der Doku ist 
erwähnt, dass ein Terminalprogramm integriert ist. Also wird es da wohl 
auch eine Kommunikationsmöglichkeit über die Serielle Schnittstelle 
geben.

von Enni (Gast)


Lesenswert?

Das klingt vielversprechend!
Vielen Dank!

von Martin V. (oldmax)


Lesenswert?

Hi
KHB hat es schon ziemlich treffend formuliert. Um nun ein wenig auf die 
Kommunikation mit einem Controller einzugehen, will ich mal etwas 
anderes versuchen.
Zuerst, und das ist Voraussetzung, musst du dir die Grundlagen 
erarbeiten. Wie steuert man einen Ausgang an, wie setzt man 
Eingangssignale zu gewünschten Funktionen um. Sicherlich liegen die 
Beispielprogramme bei, aber wenn du diese verstehen willst, dann nimm 
den ersten Satz in diesem Abschnitt ernst. Du kaufst dann etwas umsonst, 
wennn du keinen Spass damit hast, denn die Bemerkung von HGL mit den 
langen Wintertagen ist ernst gemeint.
Ok, zurück zum Thema. Wenn du verstanden hast, wie so ein Controller 
programmiert wird und wie er arbeitet, dann kannst du dich an eine 
Kommunikation heran wagen. Wenn du vorher mit einem Taster eine LED 
eingeschaltet hast, dann ist vielleicht jetzt der Zeitpunkt gekommen, wo 
du dem Controller ein "L" für LED ein und ein "l" für LED aus schickst. 
Dazu gibt es hier im Tutorial genügend Hilfen. Wenn du auch noch einen 
PC programmieren kannst, dann liegt es ja nahe, das du dir eine 
Bedienoberfläche schaffst, die dann auf ein Button reagiert oder eine 
Checkbox. Bis du wirklich soweit bist, das du den Arm mit deinen 
Vorstellungen steuerst, wird es möglicherweise 2020, aber das liegt an 
dir, ob du diese Lernstrecke schaffst oder wieviel Zeit du investierst. 
So von jetzt auf gleich kannst du nix erwarten.
Gruß oldmax

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.