Hallo, da mir das forum besser gefällt als jenes von Arduino habe ich mich dazu enteschlossen mein Anliegen hier zu posten. Wie bereits oben erwähnt möchte ich für meinen kleinen Putzroboter ein Kompass einbauen, der zunächst so genau wie möglich seine 90grad fahren soll. Der Kompass ist bereits initiaisiert und funktioniert soweit eig gut. Ich verwende den lsm303 für mein Arduino. Das Programm ist bereits geschrieben und läuft sowei aber läuft nicht so nach meinen Wünschen. Hätte jemand vorschläge wie ich dies ändern könnte?. Hatte eig mir überlegt das mit einer konstanten variablen zu machen, die die Richtung die der Roboter fahren soll angibt. Leider klappt das nicht so. Die Gradzahlen schwannken auch zu dem immmer unterschiedlich. Dies dienst zunächst nur als Testzwecke. Im Nachhinein soll der Kompass mit den Ultraschallsensoren arbeiten. Ich habs mir so vorgestellt wenn mein Roboter sich kurz der Wand nähert soll er dann um 90 grad entlang fahren bis zur nächsten wand. Über Kommentare würde ich mich sehr freuen. PS: ich hoffe ihr könnt das ino-file von Arduino öffen bzw hier im Forum den Code lesn.
Michael W. schrieb: > Erkläre "eig" !!! (man, man, man...) eigentlich?? Zum eig Problem. Ist der Kompass nahe an Stromführenden Leitungen verbaut?? Wenn ja, mehr Abstand oder nur messen, wenn die Motoren stehen. Das gibt dann leider keine flüssige Fahrt mehr.
Wenn das Programm nicht nach deinen Wünschen läuft, warum änderst du es nicht? Gerade in diesem Bereich ist auch viel Trial&Error mit dabei. Man versucht etwas. Schaut, warum es nicht geht. Ändert eine Kleinigkeit und versucht es erneut. Dazu muss man das Handwerkszeug beherrschen: Man sollte fit bei Programmieren sein. Und auch verstehen, wie die Hardware-Plattform und die angeschlossenen Sensoren arbeiten. Bei dem, was ich da sehe, zweifel ich doch etwas daran. Auch wird wohl keiner exakt deine HW und Problemstellung haben, so dass jemand deine Programmwünsche umsetzt. Oder wie war deine Frage zu verstehen? Dass Sensoren schwanken, ist doch eigentlich normal. Ich habe kaum etwas stabiles bisher erlebt. Also solltest du als erstes dafür eine Lösung entwickeln.
> Dazu muss man das Handwerkszeug beherrschen: Man sollte fit bei > Programmieren sein. Und auch verstehen, wie die Hardware-Plattform und > die angeschlossenen Sensoren arbeiten. Richtig. Das alles fällt aber bei der Arduino-Fraktion raus. Dann kommen solche Dinge zutage: > konstanten variablen > Das Programm ist bereits geschrieben Nur wohl nicht vom TE > PS: ich hoffe ihr könnt das ino-file von Arduino öffen bzw hier im Forum > den Code lesn. Da müsste viel passieren bevor ich das auch nur versuchen würde. Gerade bei Spezialisten wie dir, ist doch alles vergebene liebesmüh. Lern Programmieren (wenigstens mit Arduino), statt dir von anderen nach deinen Vorgaben dein Programm überarbeiten zu lassen. gruß cyblord
Das Programm mit der Endung 'C' statt 'INO' anhängen, dann kann es jeder formatiert lesen.
vielen dank für die kommentare aber werde mich selbst darum kümmern und programmierung lernen. Übrigens beides funz jetzt jedoch finde ich die programmierung katastrophal auch wenn alles soweit läuft. Ich würde es lieber in klassen bevorzugen umd einfach weniger Programmierungsaufwand zuhaben. Mal schauen...
Adrian schrieb: > vielen dank für die kommentare aber werde mich selbst darum kümmern und > programmierung lernen. Das wird auch gut sein. Sonst wird das nämlich nichts, von dem du da noch träumst. > Übrigens beides funz jetzt jedoch finde ich die programmierung > katastrophal auch wenn alles soweit läuft. Übertreib mal nicht. Das 'Programm' ist schon recht trivial geschrieben, auch wenn man auf Anhieb ein paar Dinge sieht, die zugegebenermassen nicht wirklich prickelnd bzw. redundant gelöst sind. Da steht, vereinfacht gesagt, nicht mehr als
1 | void loop() |
2 | { |
3 | stelle Richtung fest |
4 | |
5 | if( Abweichung von der Sollrichtung ist nach rechts ) |
6 | dann dreh dich abhängig von der Abweichung nach links |
7 | |
8 | if( Abweichung von der Sollrichtung ist nach links ) |
9 | dann dreh dich abhängig von der Abweichung nach rechts |
10 | } |
das ist die ganze Logik in dem Programm. Mehr passiert da nicht. Der Rest ist Beiwerk um 'Details' zu beschreiben. Aber der eigentliche Algorithmus nach dem vorgegangen wird, ist im Kern nicht mehr als dieser 5 Zeiler da oben. > Ich würde es lieber in > klassen bevorzugen umd einfach weniger Programmierungsaufwand zuhaben. Dann mach das. Niemand hindert dich daran.
:
Bearbeitet durch User
danke :) ja mehr als diese 5 Zeilen waren es auch nicht. Hab das noch mit dem Ultraschallsensor eingebunden und jetzt funktioniert beides wunderbar. Er erkennt die ecken rechtzeitig und dreht sich auch nach dem gewünschten Winkel den ich mir erwatet habe:)
cyblord ---- schrieb: >> konstanten variablen Naja, auch nach Murphy sind alle Konstanten variabel und das auch schon vor der Erfindung des Computers. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.