-
-
Servosteuerung für 18 Servos, welches Datenprotokoll?
Hallo,
ich tüftel grade an einer Servosteuerung für einen Hexabot, mit der man mind. 18 Servos steuern kann.
Das Grundprogramm ist jetzt so weit fertig und soll auf einem Atmega8 oder Atmega16 zum Laufen kommen.
Die eigentliche Steuerung der Bewegung des Haxabots soll ein anderer AVR übernehmen, der dann die Daten für die Servos an o.g. Controller sendet.
Jetzt überlege ich, welches Protokoll für die Datenübertragung sinnvoll ist.
Ich wollte das fertige Programm nämlich der Allgemeinheit zur Verfügung stellen, und da bietet es sich u.U. an, ein Protokoll zu verwenden, dass in Roboterkreisen ohnehin geläufig ist. Was meint Ihr?
-
Erfahrener Benutzer
Roboter Genie
ich würd gleich atmega 16 nehmen und wenn ich daten übertrage gleich paralell.
-
Parallel ist sicher schneller, braucht aber auch mehr Leitungen. Ob der Benefit bei einer Servosteuerung so groß wäre?
Warum würdest Du den M16 nehmen?
-
Erfahrener Benutzer
Roboter Experte
Ein m16 hat einfach mehr Pins. Dann kannst du, falls du es dir nochmal überlegen willst, sowas wie einen Sensor ans Bein basteln, der dir bestätigt, dass das Bein fest auf dem Boden steht. Dann musst du später zwar das board neu machen, kannst die Programmierung aber beibehalten.
Ich bin auch gerade dabei einen Hexapoden zu bauen, mache das mit einem m16 als motorsteuerung und einem m8 als haupt-Prozessor. Verbinde beide über I²C.
Gruß, Yaro
-
Erfahrener Benutzer
Robotik Einstein
Hallo waran,
wenn du die Servos seriell ansteuerst, verwendest du am einfachsten 2 Ports für je 9 Servos. Das Übertragungsprotokoll heisst PPM, also Pulse Position Modulation und wird in der Modellbau Technik allgemein angewendet.
Bild hier
In dem Beispiel werden mit 3 Impulsen 2 Kanäle übertragen = grüne Linie. 9 Kanäle sind genau so möglich, dann werden eben 10 Impulse verwendet. Die Impulsdauer ist konstant, ein Zyklus für alle Kanäle dauert 20 ms. Die Servostellung ist durch die Impulsabstände codiert. Die Impulsabstände betragen also 1 bis 2 ms.
Eine ganz einfache Schaltung klaubt dann die Kanäle auseinander. Oben stellt die gelbe Linie das Ergebnis für den ersten Kanal dar.
Bild hier
Das ist die Schaltung, die das Signal für die 9 Servos entgegen nimmt und an die 9 Servos verteilt. Gezeichnet sind allerdings nur 2 Kanäle.
Bei Servos hast du ohnehin einen Übertragungszyklus von 20 ms, egal, ob du sie parallel über 18 Leitungen oder seriell über 2 Leitungen ansteuerst.
Ich persönlich würde die serielle Übertragung bevorzugen, und die eingesparten Leitungen für spätere Erweiterungen in Reserve belassen.
grüsse,
Hannes
-
Hallo Hannes,
Danke für die ausführliche Antwort!
Die Idee mit dem 4017 gefällt mir sehr gut!
Bei diesem Projekt geht es mir darum, eine Ein-Chip-Lösung zu finden.
Mittlerweile bin ich mit der Programmierung auch schon ein gutes Stück weiter gekommen.
Derweilen viele Grüsse Richtung AT!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen