Head tracking auf Arduino Basis

20240214_195216.jpg

@Cynop
Denke es sieht gut aus, ich fummel schon eine halbe Stunde am Meßgerät aber ohne wieder Anleitung zu lesen wird das nichts, wollte wieder auf 1V anstatt 2V, keine Ahnung wo ich da drauf gekommen bin.
Früher konnte ich das genau auswerten, aber wenn man 30 Jahre nicht mehr benutzt. Inzwischen schaue ich nur noch ob Signal da ist oder nicht. Mache beruflich nur Softwareentwicklung, da ist man nicht mehr so fit in den Sachen die man mal gelernt hat.
Auf dem Ozilloskop ändert sich die Zeitbases bei Kanal 7 und 8 "richtig". Warum ich dieses merkwürdege Verhalten an der DX9 habe verstehe ich nicht.
Aber im Grunde ist das Sigal eines Kanals zwischen 1000 und 2000 und nicht wie die Vorgaben im Quellcode 500 bis 2500. Daher habe ich den Quellcode auf meine Werte angepasst (1100 bis 1900).

Und der Nano hat den 328P.

Gruß
Manfred
 
Zuletzt bearbeitet:
Es funktioniert alles prima. Hatte Brett vorm Kopf, man muss den Sensor auch in die "richtige" Bewegung versetzen.
Problem bleibt bei meiner DX9 das Prozentwerte nicht gehen, aber man kann ja die Zeit angeben, damit passt es wunderbar.
 

Cynob

User
Ich habe mir mal den Code der PPM Lib genauer angeschaut.

Dabei ist mir aufgefallen das dort andere min/max Werte stehen als in der Anleitung auf der ersten Seite beschrieben wurden.
In der PPMEncoder.h steht ab Zeile 32 :
C++:
    static const uint16_t MIN = 1000;
    static const uint16_t MAX = 3000;

damit wird in der PPMEncoder.cpp gemappt wenn man die Prozente angibt. Im direkten Aufruf für die Position wird nur geschaut das der Wert im Range beschränkt liegt. Das kann ja auch dann mit unseren Vorgabewerten von 500 - 2500 nicht hinhauen.
 
Damit ist klar das es bei Sprektrum dann zum "Vollausschlag" kommt. Ich hatte mir nur die cpp angesehen und nach einer Min/Max funktion geschaut.
Nun ist es klar. Normalerweise ist ein Servoimpuls zwischen 1 und 2 ms.
 
Ansicht hell / dunkel umschalten
Oben Unten