ich versuche gerade einen kleinen fahrbaren Roboter zu bauen, der wie ein Staubsaugroboter Hindernissen selbstständig ausweichen kann. Fahren tut er bereits und durch den HC-SR04 auf der Vorderseite weicht er bereits Gegenständen aus, die sich direkt vor ihm befinden.
Dies macht er bisher so, dass er sich um ca 110 Grad dreht, wenn er einen Zentimeter vor einem Hindernis ist.
Wenn der Robi dann aber mit einer Seite an einem Objekt hängen bleibt, bleibt er einfach stehen.
Ich würde gerne die Drehzahl der Motoren messen. Wenn diese null ist, obwohl der Robi fahren sollte, dann soll nochmal eine Drehung durchgeführt werden.
Hatte anfangs schon versucht zwei Sensoren zu verbauen, diese haben in einem Winkel nach vorne gesehen, haben so aber keine Objekte erkannt. Jetzt ist es nur noch einer in der Mitte.
a) Fahne an die Motorwelle montieren und mit Gabellichtschranke zählen
b) Magnet an die Motorwelle kleben und mit Hallsensor zählen
c) Lochscheibe an beide Räder und zählen
d) Encoderscheibe an beide Räder und auswerten
bei eingehender Beschäftigung wirst du um d) nicht drumrum kommen
Wenn der Motor angesteuert wird, so hoffe ich doch, daß sich auch das Rad drehen wird.
Somit werdet Ihr immer noch eine 'Vorwärtsfahrt' sehen, wo der Robi mit all Seiner Kraft am Hindernis hängen geblieben ist.
Wenn's den Motor wirklich abwürgt, solltet Ihr vorsorglich einen Rausmelder auf dem Robi setzen - die Motoren werden eine solche Behandlung nicht lange überleben (Anlaufstrom bis zu 10fachen Nennstrom).
also den Motor abfragen ob er sich dreht halte ich auch nicht für eine gute Lösung. Um das wirklich in den Griff zu bekommen kann man ein zusätzliches Rad z.B. am Boden mitlaufen lassen, das sich dann dreht wenn der Robi tatsächlich auch fährt. Eventuell müssen es auch zwei sein, denke aber ehr nicht. Diese zus. Rad benötigt auch keine hohe Auflösung , es soll ja nur messen ob es sich dreht. Also 1-2 Signale je Umdr. sollten da reichen. Ändert sich der Zustand des Sensors dan fährt das Ding, ansonsten steht es vor der Wand.
Gruß Heinz
Nachtrag
das zus.Rad wird nicht vom Motor mit angetrieben, es läuft frei mit.