Ich weis nicht ob sich hier jemand mit dem ArduPilot Code auskennt...
Standardmässig scheint dieser für Analoge Sonar Sensoren geschrieben zu sein.
Da ich aber von einem alten Projekt noch ein "digitalen" hier hätte, Frage ich mich ob man den Code nicht entsprechend umschreiben könnte, damit dieser korrekt läuft.
Untenstehend ist auch ein Codebeispiel angefügt.
Mein Problem ist nun:
Ich habe zwar (wohl) die Klasse gefunden, welche den Sonarsensor ausliest, (AP_RangeFinder_MaxsonarXL.h), kann diesen aber nicht mit dem Code im Beispiel umbauen. Die Software wirft mir u.A. den Fehler " delayMicroseconds();" sei nicht definiert zurück.
Muss ich da noch irgend etwas includen?
Bin ich ev. am falschen Ort im Code?
Ja, der vorgeschlagene Sensor gibt als Antwort einen Impuls einer gewissen Länge Du mußt die Länge des Impulses messen. das wird normalerweise mit "duration = pulseIn(pingPin, HIGH);" gemacht. pulseIn blockiert aber wie delay die Abarbeitung des Sketches. Ich kann mir vorstellen, daß dies das Timing des Sketches durcheinanderbringt.
Bitte jemand bestätigen.
Ich habe nun mit viel mühe den Code angepasst, scheint aber irgend wie an mehreren Positionen ausgelesen zu werden..
Für das CLI über irgend eine Klasse, für den Rest im Code selber...
Nun, ich denke deine befürchtungen @Uwe treten hier ein.
Zwar wird der Ultraschall Sensor ausgelesen, scheinbar aber a) zu schnell = er liefert total falsche werte und b) bringt er den Rest durcheinander. Stecke ich ihn z.B. aus, so bleibt der restliche Code hängen und wird ziemlich langsam.
Ich denke es macht hier wirklich mehr sinn einfach einen der Empfohlenen zu kaufen, als am Code Änderungen zu machen und damit zu riskieren, dass der Copter ungewollt runter kommt...