hallo alle zusammen, ich habe endlich die hardware meiner humanoiden roboterhand fertig (s. bild) und bin jetzt dabei ein paar erste programme zu implementieren.
Ich benutze einen AtMega16 und bin nun auf der Suche nach einer (code-)effektiven art und weise, die Servos der hand "kontinuierlich" anzusteuern, ohne zu viel speicher des µCs zu verbraten.
Die funktionierende aber unglaublich ineffektive version ist ja zB eine for-schleife, in der ich vom ist zum sollzustand die pulslänge in vielen schritten um wenige µs erhöhe. Das habe ich bisher aber nur durch addition/subtraktion hinbekommen - und das füllt meinen speicher schon um 20% mehr als der code vorher benötigt hat.
Also: ich wäre sehr dankbar für hilfen, wie man das code-effektiv lösen kann!
Die Servoansteuerung sollte normal fast komplett in den Interrupt kommen. So kriegt man ein exactes Timing und hat vor allem noch viel Rechenzeit über. Ich hab es noch nicht Porgrammiert / compiliert, aber ich würde den Code von der Länge auf vielleicht 1 kByte im Flash schätzen. Den Code für die Ansteuerung mehrerer Servos sollte man irgendwo finden - dsa muß man nicht komplett selber schreiben.
Ein Ansatz wäre z.B. der Code im Wiki Bereich unter Servoansteuerung. Da sollte sich aber irgendwo auch noch was bessere Finden. Wichtig für einen kurzen Code ist es z.B. Fleißkommazahlen zu vermeiden und bei nicht zu viele Variablentypen unnötig zu mischen.
Danke!
Das ist Plaast, ein "kunststoff", der ab 60° (man tut ihn in heißes wasser) verformbar und transparent wird. Super sache für prototypen, war auch mein erster versuch.
Halt nicht fürs feld gemacht, ich weiß nicht was passiert wenn man die hand im sommer in der prallen sonne liegen lässt, vll geht auch das noch. sonst wärs schade drum
Lesezeichen