Mehto
23.08.2006, 19:15
Hallo,
ich bin zur Zeit dabei endlich mal einen Roboter zu bauen. Leider sind die Getriebemotoren recht ungenau, so das ich gerne Radencoder einbauen würde. Das hab ich auch getan, und zwar zwei Stück aus einer alten Maus.
Jetzt habe ich aber das Problem mit der Auswertung, bei lansgamer Drehzal habe ich etwa 30 Impulse pro sekunde. Wie wertet man die Daten vom Encoder am besten und schnelsten aus und übt eventuelle veränderunen auf dem motor aus?
Da ich das das erste mal amche habe ich ain paar Probleme damit. Bis jetzt habe ich die Encoder an die beiden interrupteingänge vom Atmega8 angeschlossen und zähle ein Register bei jeden impuls hoch. Allerdings würde ich das Regitster um eine schnelle reaktionszeit zu haben gerne jede 100ms auslesen und eventuelle Schwankungen per PWM am Motor ausgleichen.
Allerdings erhalte ich bei lansgamer (normaler) Geschwindigkeit dann eben nur 3-4 Impulse. Auf die zu reagieren ist dann aber sehr schwer, zumal es schwankungen von bis zu 2bit gibt.
Länger als 100ms würde ich aber gerne auch nicht warten, ich befürchte das ich dann einfach nicht mehr schnell genug veränderungen am motor ausüben kann. Ich habe auch schon die Zeit zwischen den einzelnen impulsen gemessen, allerdings sind da die Abweichungen extrem (20-40Bit)
was dann auch nicht mehr das ware ist.
Was habt ihr für Erfahrungen und wie macht ihr das mit den Radencodern?
Viele Grüße,
Mehto
ich bin zur Zeit dabei endlich mal einen Roboter zu bauen. Leider sind die Getriebemotoren recht ungenau, so das ich gerne Radencoder einbauen würde. Das hab ich auch getan, und zwar zwei Stück aus einer alten Maus.
Jetzt habe ich aber das Problem mit der Auswertung, bei lansgamer Drehzal habe ich etwa 30 Impulse pro sekunde. Wie wertet man die Daten vom Encoder am besten und schnelsten aus und übt eventuelle veränderunen auf dem motor aus?
Da ich das das erste mal amche habe ich ain paar Probleme damit. Bis jetzt habe ich die Encoder an die beiden interrupteingänge vom Atmega8 angeschlossen und zähle ein Register bei jeden impuls hoch. Allerdings würde ich das Regitster um eine schnelle reaktionszeit zu haben gerne jede 100ms auslesen und eventuelle Schwankungen per PWM am Motor ausgleichen.
Allerdings erhalte ich bei lansgamer (normaler) Geschwindigkeit dann eben nur 3-4 Impulse. Auf die zu reagieren ist dann aber sehr schwer, zumal es schwankungen von bis zu 2bit gibt.
Länger als 100ms würde ich aber gerne auch nicht warten, ich befürchte das ich dann einfach nicht mehr schnell genug veränderungen am motor ausüben kann. Ich habe auch schon die Zeit zwischen den einzelnen impulsen gemessen, allerdings sind da die Abweichungen extrem (20-40Bit)
was dann auch nicht mehr das ware ist.
Was habt ihr für Erfahrungen und wie macht ihr das mit den Radencodern?
Viele Grüße,
Mehto