Vielleicht hilft es, den Kompass in Anwesenheit der Elektromotoren noch einmal zu überprüfen. Die Kombination ist eine übliche Fehlerquelle.
Moinsen,
wir haben einen GiggleBot, der von einem micro:bit gesteuert wird.
Programmieren tun wir mit makecode von Microsoft. Das ist so ähnlich wie Scratch, mBlock etc.
Jetzt soll der Robbi ein "sauberes" Viereck fahren.
Angetrieben wird der Robbi von zwei einfachen Getriebemotoren, die zum Lenken oder Drehen auf der Stelle unterschiedlich schnell bzw. in entgegengesetzte Richtung drehen.
In den Blöcken können wir die Zeit eingeben, wie lange gefahren werden soll, bzw. wie lange gedreht oder gelenkt werden soll.
So weit, so einfach.
Der Code lässt sich aus makecode mit meinen Fähigkeiten nicht rauslesen, er sieht etwa so aus:
Bei Start
Wiederhole 4 x
Fahre 1000 ms
Drehe 850 ms
850 ms drehen sind bei der eingestellten Motordrehzahl und Parkettboden etwa 90°.
Natürlich läuft das Ding nicht sauber geradeaus.
Dafür gibt es aber einen Korrekturblock, wo per trial-and-error ein Wert ermittelt werden kann, damit der Geradeauslauf funktioniert.
Da dieser Block mit dem Wert aber immer Bestandteil des Programms sein muss, der Wert sich aber Ändern könnte, z.B. bei verschiedenen Untergründen, halte ich das für nicht praktikabel.
Jetzt hat der Micro:bit einen Kompass und einen Beschleunigungssensor drin. Von letzterem habe ich keine Ahnung und weiß auch nicht, wie ich auf die Werte von diesem Zugreifen kann.
Den Kompass kann ich auslesen, den Wert als Variable speichern und z.B. anzeigen lassen.
Jetzt bin ich mal hingegangen und habe versucht, den Robbi in eine bestimmte Richtung zeigen zu lassen. Ich habe rechts drehen wenn Sensorwert < 75° oder > 115° programmiert, sonst stop als Endlosschleife programmiert.
An sich müsste der Robbi sich dann so lange rechts rum drehen, bis er, ganz grob, nach Westen zeigt. Der Kompass scheint zu funktionieren, aber warum dreht der nicht sauber?
Ich will heute Abend mal weiter rumspielen ob, ich das irgendwie gelöst bekomme, vielleicht sollte ich erstmal durch Anzeigen von LED versuchen herauszufinden, ob hier überhaupt sinnvolle Steuersignale erzeugt werden und wir schnell / genau der Kompass ist.
Für sachdienliche Hinweise wäre ich dankbar, andere Robbis, die mit Calliope, micro:bit etc. gesteuert werden dürften ähnliche Probleme haben, oder?
Besten Gruß,
Ocho
Vielleicht hilft es, den Kompass in Anwesenheit der Elektromotoren noch einmal zu überprüfen. Die Kombination ist eine übliche Fehlerquelle.
Keine Ahnung, was das Ding wirklich kann, aber wie @Manf schon sagt: Kompass und Elektromotoren..das kann lustige Resultate geben.
Nimm mal das Endlos-Stop raus, und lass ihn ununterbrochen in eine vorgegebene Richtung schauen, also so: Kompass abfragen, Richtung X, Kompass wieder abfragen, RichtungX....
Vermutlich wird der dann ununterbrochen wackeln.
Das Ganze probierst du dann einfach mal in verschiedenen Räumen....
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Ja, Kompass und Elektromotor schließen sich schon irgendwie aus, das ist richtig, mal sehen, ob messen und drehen nacheinander besser funktioniert.
Der Beschleunigungssensor wäre wahrscheinlich die bessere Lösung für mein Problem...
Danke für der Hinweis,
Ocho
Eher nicht. Da sollte aber ne Odometrie helfen können (na ja, ab Florboden wird dann auch etwas diffus)... 850 ms drehen sind .. Parkettboden etwa 90° .. Beschleunigungssensor wäre wahrscheinlich die bessere Lösung ..
So kanns mit Odometrie laufen, "fertig" sieht das dann so aus.
Viel Erfolg.
Ciao sagt der JoeamBerg
Ja, das könnte gut funktionieren, Analogeingänge hätte ich noch frei für den Tacho.
Hast Du Motorumdrehungen dann per Tacho direkt am Motor abgegriffen?
So auf die schnelle finde ich keinen dieser "Standard-Modellbau-Getriebemotoren" mit Tachoabgang.
Oder hast Du die Umdrehungen der Räder oder sogar die Strecke je Seite direkt gemessen?
Das könnte ja an den Speichen geschehen, oder mit einem Magneten und Hallsensor oder einem weißen Strich mit einer Lichtschranke? an der Lauffläche.
Mal sehen, was da gehen könnte.
Dieser Tacho funktioniert nicht als Analogeingang. Es ist eine Gabellichtschranke die eine Schlitzscheibe (auf der Welle des ANTRIEBSmotors) abfragt. Die Gabllichtschranke bringt mir den Takt. In diesem einfachen Fall (klick hier, nur eine Lichtschranke) keine Drehrichtungserkennung.Ja, das könnte gut funktionieren, Analogeingänge hätte ich noch frei für den Tacho ..
Ich (neee, natürlich die Gabellichtschranke) hatte den Schlitz an der Scheibe "beobachtet". Natürlich geht auch eine "Strichlösung" mit einer Markierung der Räder und einer Reflexlichtschranke . . ... finde ich keinen dieser "Standard-Modellbau-Getriebemotoren" mit Tachoabgang .. Oder hast Du die Umdrehungen der Räder ..
Geändert von oberallgeier (27.06.2023 um 16:44 Uhr)
Ciao sagt der JoeamBerg
So, jetzt bin ich, hoffentlich, etwas informierter, zumindest was die Theorie angeht.
Ich meinte auch hier noch eine alte Kugel-Maus zumliegen zu haben, leider war dem nicht so, sonst hätte ich schon versucht was zu basteln.
Jetzt wird Reichelt die Tage einige Gabellichtschrenken ärmer und einige Euros reicher, dann sehen wir weiter...
Besten Dank soweit!
Zusammen mit dem Kompass (hast du das von mir vorgeschlagene Experiment mal gemacht? ) sollte das dann ziemlich gut klappen- wenn dir nicht Einschränkungen deiner Entwicklungsumgebung in die Quere kommen.
Da Odometrie früher oder später aus dem Ruder läuft, kann man den Kompass benutzen, um ab und zu alles wieder zu nach zu justieren.
Vorausgesetzt, der Kompass ist halbwegs gut kalibriert (sonst kann man ihn ziemlich vergessen).
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Hallo Rabenauge,
die Entwicklungsumgebung kann genug für Grundschüler
In der Theorie funktionert das gut, wenn man den Wertebereich für die gewünschte Richtung "grob genug" vorgibt. Ich weiß auch nicht, ob der Kompass horizontal oder vertikal gehalten werden muss, damit das richtig funktioniert.
20° findet er nicht. Ich habe mir die Anzeige programmiert, damit er mir anzeigt, ob er im gewünschten Bereich ist oder nicht. Die springt ganz gut hin und her.
Aber wenn man die Zielrichtung grob genug vorgibt, dann kommt das schon aus.
Besten Dank an alle, ich berichte weiter, wenn ich die Odometrie zuende gebastelt habe.
Ocho
PS:
Aus Bundeswehrzeiten kenne ich noch die Fahrzeugorientierungsanlage (FOA) und die Fahrzeugnavigationsanlage (FNA). Die hatten einen Kreisel(kompass?) und die Achsumdrehungen abgegriffen, da fuhr dann eine mechanische Anzeige wie ein Plotter über ein Klemmbrett, und auf dieses konnte man eine 2cm-Karte auflegen, und man wusste, wo man war. Alles ohne GPS, damals
Lesezeichen