Archiv verlassen und diese Seite im Standarddesign anzeigen : Micro:Bit: Robbi wirklich geradeaus fahren lassen und exat drehen / lenken
Moinsen,
wir haben einen GiggleBot (https://gigglebot.io), der von einem micro:bit (https://microbit.org) gesteuert wird.
Programmieren tun wir mit makecode von Microsoft (https://makecode.microbit.org/v1). 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.
Rabenauge
27.06.2023, 08:44
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....
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
oberallgeier
27.06.2023, 13:43
.. 850 ms drehen sind .. Parkettboden etwa 90° .. Beschleunigungssensor wäre wahrscheinlich die bessere Lösung ..Eher nicht. Da sollte aber ne Odometrie helfen können (na ja, ab Florboden wird dann auch etwas diffus).
So kanns mit Odometrie (https://www.youtube.com/watch?v=MjLqexH6fDQ) laufen, "fertig" sieht das dann so aus (https://www.youtube.com/watch?v=jgm9DhS7vS4).
Viel Erfolg.
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.
oberallgeier
27.06.2023, 16:31
Ja, das könnte gut funktionieren, Analogeingänge hätte ich noch frei für den Tacho ..Dieser Tacho funktioniert nicht als Analogeingang (https://dl.dropbox.com/s/d7w1qftxbedgnv6/enc_x02_1677.jpg?dl=0). Es ist eine Gabellichtschranke die eine Schlitzscheibe (auf der Welle des ANTRIEBSmotors) abfragt. Die Gabllichtschranke bringt mir den Takt (https://dl.dropbox.com/s/vver9k1r38liqvl/GMot_enc4_1710a.jpg?dl=0). In diesem einfachen Fall (klick hier, (https://dl.dropbox.com/s/byh4da8v4kdft88/GMot_enc4_1710mini.jpg?dl=0) nur eine Lichtschranke) keine Drehrichtungserkennung.
.. finde ich keinen dieser "Standard-Modellbau-Getriebemotoren" mit Tachoabgang .. Oder hast Du die Umdrehungen der Räder ..Ich (neee, natürlich die Gabellichtschranke) hatte den Schlitz an der Scheibe "beobachtet" (https://dl.dropboxusercontent.com/s/0epuponzhdqh14v/Osz_1456-20%25.JPG?dl=0). Natürlich geht auch eine "Strichlösung" mit einer Markierung der Räder und einer Reflexlichtschranke . . .
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!
Rabenauge
28.06.2023, 08:29
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).
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 ;-)
oberallgeier
28.06.2023, 23:35
.. weiß auch nicht, ob der Kompass horizontal oder vertikal gehalten werden muss, damit das richtig funktioniert ..Wenn Du innerhalb dieser Breitengrade (https://www.skaphe.de/wp-content/uploads/2019/10/deutschland_laengengrade_1024.jpg) lebst, sollte für einen MAGNETkompass eine halbwegs waagrechte Lage (Handgenauigkeit) ausreichen. Wichtiger ist natürlich Stahlbeton (kann in Zimmer- od. Strassenboden sein), der kann das Magnetfeld verwirren. Vermutlich stören aber insbes. Deine Antriebsmotoren - wenn Du einen Kompass am Fahrzeug hast. Macht nix, der Magnetkompass zeigt sowieso (so ziemlich überall *gg*) nicht nach Norden; das heißt dann Missweisung (https://www.timeanddate.de/geographie/deklination-kompass-nord) (Deklination). Es gibt auch ne Inklination - weil die Magnet"strahlen" schräg in den Boden gehen. Blöd wirds beim Messen allenfalls, wenn Du die Bussole stark neigst, dann kann die Magnetnadel am Gehäuse (unten oder oben) streifen/klemmen.
Ach, leider wie immer, tldr :-/
Moinsen,
da es mir ja um eine "saubere" 90° Kurve geht, sollte die Deklination keine Rolle spielen. Die Inklination sollte bei einem el. Kompass keine Rolle spielen, oder? (Bei meinen "echten" Kompassen auch nicht, die haben einen Inklinationsausgleich ;-))
Aber ist das denn alles 1:1 (Deklination ist klar.) auf einen elektronischen Kompass zu übertragen? Das mit den laufenden Motoren habe ich bereis rausprogrammiert.
Ich weiß halt nicht, wie ich die Platine halten muss, damit der Kompass ideal funktioniert. Mache fertige Robbis haben den waagerecht eingebaut, andere vertikal.
Ocho
oberallgeier
29.06.2023, 09:20
.. sollte die Deklination keine Rolle .. ist das denn alles 1:1 .. auf einen elektronischen Kompass zu übertragen ..Hmmm. Keine Ahnung.
Mein Marschkompass (Breithaupt, wie dieser aber ohne Luft (https://i.ebayimg.com/images/g/b6YAAOSwF4Nkegng/s-l1600.jpg) in der Bussole ;-)v) wird waagrecht gehalten, ne Zeitlang hatte ich beim Drachenfliegen so n Spielzeug (https://static.mueller.de/6832149774-PV-0/pdzoom/munkees-kugelkompass-2-8cm.jpg) mit. Und auf meinen Segelbooten (so um die fünfzig Fuß) war der Kompass auch waagrecht/kardanisch eingehaust.
Möglicherweise hast Du nen guten elektronischen Kompass daheim - im Smartphone. (Keine Ahnung ob der magnetisch funktioniert oder per GPS - zeigt jedenfalls im Innenraum fast 45°ost Deviation). Aber VIELLLEICHT könntest Du ja damit den Einfluss von Schieflage, Gebäuden, Motoren etc testen. Mein Handy reagiert jedenfalls (bei kurzem Abstand) stark auf einen Magneten.
Moinsen,
mal die Mittagspause für Privatkram genutzt...
Der Kompass sitzt so auf der Platine, dass diese waagerecht gehalten werden sollte, schade, eigentlich.
Herstellerseite (https://support.microbit.org/support/solutions/articles/19000008874-calibrating-the-micro-bit-compass)
Rabenauge
29.06.2023, 15:36
Warum ist das ein Problem?
Dann baut man das Ding eben waagerecht ein...
Ums kalibrieren (und zwar bei so ziemlich jedem Szenariowechsel) wirst du wahrscheinlich trotzdem nicht herum kommen.
Die Krux bei elektronischen Kompassen ist, die sind furchtbar genau- und enstprechend auch sensibel auf Störungen bzw. Änderungen im Magnetfeld.
Meiner braucht in jedem Raum ne andere Kalibrierung, um dann auf ungefähr 2-3° Genauigkeit zu kommen.
Besser hab ich es nie hingekriegt..
Der im Handy ist nicht ganz so pingelig, aber auch der muss ab und zu neu kalibriert werden.
Und nö, die Handy-Kompasse machen das nicht via GPS- können sie auch nicht. GPS-Daten enthalten nämlich keinerlei Richtungsinformationen.
Ein GPS kann erst dann ne Richtung angeben, wenn man sich bewegt. Dort wird dann aus mehreren Messungen ein Kurs berechnet. Im Stand geht es nicht.
Was man machen kann, ist mehrere Datenquellen nutzen: Odometrie hat Fehler, ein Kompass hat auch welche. Wenn man aber die Daten aus beidem zusammen nutzt, kann man schon ne ganze Menge Ungenauigkeit raus rechnen.
Ja, mal sehen, ob ich da was umgebastelt bekommen.
"Früher™" war es tatsächlich so, dass div. Geräte, wo behaupteten, einen digitalen Kompass inne zu haben, nur GPS hatten und der Kompass nur in Bewegung funktioniert hat.
Ich denke aber nicht, dass das heute noch der Fall ist.
Der ganze Sensorikkram ist für mich auf jeden Fall Neuland, ich bin aber zuversichtlich, das irgendwie hin zu bekommen...
Besten Dank an Euch.
Ocho
Rabenauge
29.06.2023, 18:14
GPS hat den Nachteil, dass es drinnen (meistens..) gar nicht funktioniert.
Und bei unseren Robotern kommt dazu, dass damit ne Richtungs- bzw. Kursbestimmung umso besser funktioniert, je länger die Wege werden. Aufm Küchentisch wird das nie was...
Mein Handykompass funktioniert prächtig..wenn er gut kalibriert ist (dieses Gedrehe in allen Achsen). Das muss man einfach ab und zu mal machen, besonders an Standorten mit verschiedenen Bedingungen.
Die Drohne braucht das auch hin und wieder.
Genauso kann man es auch mit nem Roboter machen, wobei man hier auf eine Kalibrierung aller drei Achsen durchaus verzichten kann, wenn man davon ausgeht, dass er sich immer auf ebenem Grund bewegt.
Für den Freddie hatte ich mal ein Programm geschrieben, was erkennt, wann eine Kalibrierung nötig sein dürfte..das lief ungefähr so ab: wenn die Kompass-Werte im Stand zu stark schwanken, kalibrieren wir. Das musste man bestätigen, woraufhin der einige Male im Kreis fuhr, und Korrekturwerte ermittelt hat.
Das klappte dann ganz gut...wie gesagt: 2-3 Grad genau immerhin.
Moinsen,
ich habe jetzt letzte Tage einige Gabellichtschranken bekommen.
Der Ausgang der Lichtschranke ist dann doch ehr "schwach", und an den Robbi basteln muss ich das die Tage auch noch, momentan habe Abends leider anderes zu tun.
Ich melde mich dann, wenn sich was tut.
Sorry, das sich das gerade so hinzieht.
Ocho
oberallgeier
06.07.2023, 14:22
Hi Ocho.
.. einige Gabellichtschranken .. Der Ausgang der Lichtschranke ist dann doch ehr "schwach" ..Welche Gabellichtschranke (Hersteller, Bezeichnung ..)? (Ver-) Schaltung bzw. Testaufbau? Welche Vorwiderstände, welche Spannungsversorgung?
Also meine Mini-Gabellichtschranke (hier (https://dl.dropboxusercontent.com/s/gl10osi54ck3jij/GLS-einbau_1445_klein.jpg?dl=0)) schaltet bei bis zu über 100 Hz (!) mit etwa 0,5V/4,8V (siehe hier (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm?p=316494&viewfull=1#post316494) bei 0,1 ms/DIV und 2V/DIV). Dieser Typ (https://csd-electronics.de/advanced_search_result.php?MODsid=3nqdcme8f4k2kvm7 6s07oadcb4&keywords=GP1S096HCZ).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.