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!
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.
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 ;)
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.
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
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!
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.
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.
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.