-
-
Erfahrener Benutzer
Roboter-Spezialist
Hi,
Also jenachdem wie fit du imProgrammieren bist, kannst du des selber machen, jedoch würde ich dir Assembler empfehlen, da bekommst du so Zeitkritische aufgaben am besten hin.
Ich hab selber mal ein programm in Assembler geschrieben, bei dem ich immer 8 Servos (1 Port) auf einmal angesteuert habe. Mit deinem µC wären also 32 Servos abzüglich der zu übertragung notwendigen pins in 8ms möglich, die restlichen 12 ms kannst du dann zum Datenaustausch benutzen. Wobei die genauigkeit der Servos am Takt deines Controller liegt. hier gilt, je schneller, desto öfters kannst du eine Abfrage machen, aber das wiest du sicherlich.
Das ganze ist natürlich auch in weniger als 8 ms zu realisieren, wenn du mehrere Ports auf einmal ansteuerst, aber da ist wieder ein schnellerer Quarz verlangt.
Der aufbau der Abfrage sieht in etwa so aus:
- Als erstes den Port auf high
- Warte Ca. 1 ms, jenachdem was deine Servos wollen
- vergleiche alle 8 werte mit einem Counter Register, bei gleichheit, den entsprechenden Portpin auf low.
- erhöhe das register und solange noch nicht 2 ms erreicht sind und springe zum vorherigen schritt.
- wenn der erste port durch ist, wiederholst du das ganze mit dem nächsten, bis alle durch sind.
Also Theoretisch könntest du dir ein Servoboard selber bauen, vorrausgesetzt, du kannst entweder Assembler oder eine andere Programmiersprache so gut, dass du die Zeitkritischen Sachen hinbekommst.
Zu dem Board kann ich dir nichts sagen, da ich es nicht habe, aber mir gefallen so board sowieso nicht, da man sich an forgefertigte Maße halten muss, aber dass ist dir überlassen.
mfg robin
ps.: ich könnt dir noch ein Beispielcode in Assembler schicken, hab des aber noch nicht mit interrupts gelöst, sondern mit wait schleifen.
Allerdings wäre das ganze nicht dokumentiert und für einen Mega168 mit 8 Mhz, also vlt. nicht brauchbar....
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen