Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekte:projektideen:selbstbalancierender_roboter [2014-02-16 06:09] root [Temporäre Pinbelegung (mit L298N)] |
projekte:projektideen:selbstbalancierender_roboter [2014-02-16 00:00] (aktuell) |
||
---|---|---|---|
Zeile 43: | Zeile 43: | ||
Mit einem der Analogpins könnten wir noch einen Akkusensor bauen, damit sich der Roboter bei zu niedriger Spannung abschaltet. | Mit einem der Analogpins könnten wir noch einen Akkusensor bauen, damit sich der Roboter bei zu niedriger Spannung abschaltet. | ||
- | |||
- | ==== Mögliche Probleme ==== | ||
- | |||
- | Wenn die CPR Encoder über Interrupts ausgelesen werden, kann es passieren, dass sich die Interrupts | ||
- | gegenseitig in's Gehege kommen. Kurze Berechnung: | ||
- | |||
- | - Pro Umdrehung eines Rades gibt es 1856 Takte | ||
- | - 3712 Änderungen pro Umdrehung | ||
- | - Bei einer Umdrehung pro Sekunde: 4310 Takte zwischen Interrupts (pro Rad) | ||
- | - Bei einer ISR Länge von etwa 50 Takten gibt es dann eine Warscheinlichkeit von $(50/4310)^2 = 0.013\%$, dass sich die Interrupts in die Quere kommen. | ||
- | - Bei 100 Takten (oder zwei Radumdrehungen pro Sekunde) dementsprechend 0.054% | ||
- | |||
- | Folgerung: Falls die Interrupt Routinen schnell genug sind, sollte es funktionieren... falls nicht, | ||
- | können wir einen separaten µC dafür hernehmen, der dann die Positionen per I2C liefert ;) | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ |