Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Kongressteilnehmer und natürlich auch alle anderen.
@oberallgeier
Du schriebst, dass du das Abstand wahren im Moment nicht als erste Prio siehst. Deshalb hatte ich mich mal daran gemacht dem IR-Licht zumindest Softwareseitig auf die Sprünge zu helfen.
Im Anhang habe ich das Ergebnis beigelegt.
Im übrigen habe ich das ganze CIR getauft. Soll Chirpende IR-messung heißen.
- Gemessen wird kontinuierlich im Hintergrund über den Timerinterrupt.
---> Keine zeitkritischen Funktionen im Hauptprogramm.
---> Kontinuierliche Entfernungsinformation vorhanden.
- Die Messung wird mit der oben angegebenen Iterationsmethode gemacht.
---> Über ein define einstellbare Bitanzahl für das Ergebnis.
---> Konstante Zeit zum Ermitteln der Entfernung.
---> Die Messzeit ist somit unabhängig von der Entfernung.
- CIR kann über Funktionen gestartet und gestoppt werden.
---> Während CIR läuft, funktioniert die IR-Datenübertragung nicht.
---> Nach dem Stoppen vom CIR können Daten wieder übertragen werden.
- CIR kann mit 4 Defines in cir.h konfiguriert werden.
---> Ausführliche Beschreibung in der Datei
-----> Anzahl Pulse am IR-Sender (Pflicht bei der Harware)
-----> Anzahl Iterationen pro Messung (Bitanzahl für das Nettoergebnis)
-----> Anzahl Messungen bei ungeänderter Lichtleistung (Messgenauigkeit)
-----> Anzahl Messwerte, die als 'Ausrutscher' betrachtet werden. (Messfehler)
---- Funktionen:
====> CirIsr()
Muss vom Timerinterrupt SIGNAL (SIG_OVERFLOW2) in asuro.c aufgerufen werden.
====> CirStart()
Start der Messungen. Datenübertragung ist tot
====> CirStop()
Na was wohl.
====> unsigned char variable = CirRead()
Hiermit holt das Hauptprogramm den Nettoentfernungswert.
Wichtiger Hinweis zum test.c main()-Teil. (Beschreibung im Source)
In der Asuro-LIB Version 2.80 kann eine Funktion in den Timerinterrupt 'eingehängt' werden. Dann ist es nicht mehr nötig die Lib zu editieren und neu zu übersetzten.
Wenn noch eine alte Lib bzw. der Source von der CD benutzt wird, wird in test.c beschrieben was zu tun ist.
Zu meinen mit dem Testprogramm erfolgten Messungen:
- Ohne mehrfache Messung bei gleicher Lichtleistung ist kein vernünftiges Ergebnis zu erwarten. Unterhalb von 5 Wiederholungen ist die Wiederholgenauigkeit einer Messung eher zufällig.
- Nur bis zu einer gewissen Anzahl an Wiederholungen mit gleicher Lichtleistung wird das Messergebnis besser. Ab ca. 30 Wiederholungen ist keine Verbesserung mehr zu finden.
- Sowohl im Nahbereich bis 10 cm, als auch ab ca. 100 cm ist der Messfehler relativ hoch.
Die Messgeschwindigkeit mit den aktuell in cir.h angegeben Werten beträgt 10 ms. ---> Das sind 100 Messungen pro Sekunde. Bei vollem Speed vom Asuro mit ca. 50 cm/Sekunde ist also ein Entfernungswert alle 5 mm vorhanden. Diese Genauigkeit liefert das CIR-System absolut nicht.
So, genug erzählt. Probiert es aus oder lasst es sein ;-)
Gruß Sternthaler
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sternthaler, hallo alle,
Zitat:
Zitat von Sternthaler
nicht als erste Prio siehst
Na ja, ich hinke mit meinem Projekt schon Monate hinterher . . . .
Zitat:
Zitat von Sternthaler
Deshalb hatte ich mich mal daran gemacht dem IR-Licht zumindest Softwareseitig auf die Sprünge zu helfen.
Ohhhh - sehr schöne Überraschung nach einem schönen, langen Wochenende an einem sonnigen Montag Morgen.
Zitat:
Zitat von Sternthaler
Lieber Asuro programieren als arbeiten gehen.
Dein umfangreiches Posting lässt mich Einiges fürchten, du wirst das aber hoffentlich nicht wahr gemacht haben? Was soll sonst mit meiner Rente geschehen . . . ?
Zurück zu topics. Sehr schön. Die *c und die *h sehen ja so aus, als könnte ich sie direkt (bis auf meine Verdreifachung) verwenden. Trotzdem werde ich noch bei "mir" weitermachen: die Mechanik steht bis auf den Kopf-mit-Sensoren-wackel-Servo, die Teile sind alle da - und danach kann ich sehen, wie das Ganze mit der bei mir gedämpften SFH415 (1k Vorschaltwiderstand) und der geänderten 5110-Installation funktioniert. Auf meiner Experimentierplatine ging´s so ja feinfühliger. Also doch noch etliche Tage - abzüglich dieses Montags (es ist einfach Flugwetter....).