Hallo Leute, ich baue gerade einen Roboterarm mit sechs Schrittmotoren (sechs Gelenken). Für jeden Motor habe ich einen µC eingesetzt. Die Sollposition wird aber von einem Zentralen µC berechnet und angegeben. In den einzenen µC ist jeweils eine Tabelle gespeichert. Der zentrale µC gibt ledeglich an, welcher Tabellenwert genommen werden soll. Also nur ein natürliche Zahldie allerdings in einer Endlosschleife ständig aktualisiert werden soll. Die Bewegung des Roboterarms soll wie eine Schlangenbewegung sein. Die Kommunikation soll nur in eine Richtang verlaufen. Es währe Toll, wenn ihr mir einen Tip geben würdet, welche Schnittstelle ich am bestens nutzen sollte oder ob es einen trick gibt es ganz einfach zu realisieren. Für alle Fälle, gebe ich hier noch ein paar Angaben. Die AT90PWM316 habe ich schon fast fertig. Von daher würde ich die gerne behalten. An den µC sind schon jeweils - 3xHallsensoren (zur Kommutierung des Motors) - ein Winkelsensor (1xSignalleitung) - 6xAusgänge zur Treiberschaltung Die Datenblätter der angeschlossenen Komponenten habe ich angehängt. Die Programme in den 6 µC sind gleich. Viele Grüße, Andreas
Will man wenig Sorgen und wenig Programmieraufwand, ist CAN optimal. Leider ist die Auswahl an CAN-MCs bei Atmel nicht sehr üppig. Ich benutze AT90CAN128 und AT89C51CC03. Peter
Auch ich würde Can nehmen. Einfache Verkabelung. Ich habe mal TI 28xx Prozessoren dafür benutzt. Da wird der Wert einfach in eine Mailbox geschrieben, und die CPU kümmert sich automatisch um den ganzen Rest (Kollisionsdetektierung, Fehlererkennung etc).
Müssen alle Werte zeitgleich geschrieben werden oder ist eine Verzögerung im Berereich 100us noch akzeptabel?
Andreas schrieb: > Die Kommunikation soll nur in eine Richtang verlaufen. > Es währe Toll, wenn ihr mir einen Tip geben würdet, welche Schnittstelle > ich am bestens nutzen sollte oder ob es einen trick gibt es ganz einfach > zu realisieren. Dafür reicht ein einfaches serielles Protokoll. 1 Byte mit Adresse (3 Bit) und Tabelle (5 Bit) 1 Draht, ein Sender x Empfänger, beliebig erweiterbar, keine Protokolle und mit jedem PC zu testen.
Wenn ich den CAN nutzen will, müsste ich ja meine µC austauschen. Laut Datenblat haben die AT90PWM316 µC keine CAM Schnittstelle. Die µC auszutaschen würde mir sehr schwer fallen, da ich sehr lange gebraucht habe um die zu programieren. Eine Verzögerung von 100us währe nicht schlimm.
An iaoffline Danke für den Tip. Ich bin aber leider noch Anfänger und ich weiß noch nicht genau wie das gehen soll. Könntest du es vllt etwas genauer beschreiben oder schreiben worin ich mich genau belesen muss, damit ich es halbwegs realisieren kann.
Deine µC haben doch alle eine UART eingebaut, oder nicht? Dann würde ich es genau so machen wie iaoffline das skizziert hat, zumal du durch > Die Kommunikation soll nur in eine Richtang verlaufen. ja alle Trümpfe in der Hand hast. Der Haupt-µC gibt seine Weisheiten auf der UART raus und alle anderen hören zu. Einfach alle Slaves mit ihren RxD Leitungen an den einen Master seine TxD hängen. > Ich bin aber leider noch Anfänger Dann musst du eben lernen, wie man mit einer UART ein Byte von A nach B bringt. Ist ja keine Raketentechnik. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
Karl Heinz Buchegger schrieb: > Der Haupt-µC gibt seine Weisheiten auf der UART raus und alle anderen > hören zu. > Einfach alle Slaves mit ihren RxD Leitungen an den einen Master seine > TxD hängen. Es hat auch noch den Charme das die asynchrone Schnittstelle das gesamte System synchronisiert. Wenn man es richtig macht (Uart Rx Interrupt) wird sogar mit der Genauigkeit des verwendeten Taktes getriggert ;-). > >> Ich bin aber leider noch Anfänger Die Kommunikation mußt du so oder so lernen. Der Uart ist mit Abstand die einfachste und ein guter Einstieg. Es gibt im Netz ohne Ende info. Stichworte sind rs232 und serielle Schnittstelle.
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.