
----------------------------------------
XSensor von Thomas Lehmann (c) Feb. 2018
    Multi Telemetrie Sensor für Jeti
----------------------------------------

Besonderheit:
Alle Sensoren sind im Code enthalten und werden über die JetiBox aktiviert/konfiguriert, kein bedingtes Compilat.
Zusätzlicher 1,5K Codeplatz wird durch Tausch des Bootloaders auf OptiBoot geschaffen. Mit OptiBoot ist auch die Watchdog nutzbar.

Hardware:
Motherboard: Arudino Mini Pro 5V, CPU 328P
Drehzahl   : Hallsensor zB TLE4905L, Conrad Bestellnr: 153751-62
Durchfluss : Turbine: BioTech FCH-m-POM-LC / Durchflussmenge 50mL - 3000mL
             Benzin : BioTech FCH-m-PP-LC  / Durchflussmenge 15mL - 800mL
Temperatur : NTC MF58 3950 5K 5% / Tempbereich -45° bis 300°
             MLX90614 per I2C, Infrarot / Berührungslos
Drucksensor: MS5611
Pitot Rohr : siehe RC-Thought
GPS        : NEO 6M
Strom      : diverse ACSxx, siehe Code oder JetiBox
G-Force    : ADXL345


=====================================================================================================================================

Sensoren:
---------
- Drehzahl
- Durchfluss, Benzin/Kerosin ...
- Temperatur 4x NTC / 7x IR
- Höhe
- Vario
- Pitot Rohr, Geschwindigkeit
- GPS NEMA Format
- 4x Spannung
- 3x Strom, Leistung, Kapazität
- G-Force, vorbereitet


Eigenschaften:
--------------
=> Drehzahl (Port D2):
   Anzahl Magnete / Auslösungen je Umdrehung 1 oder 2
   Genauigkeit / Abrunden der Drehtzahlanzeige 
   Anzeige der Auslösungen auf JB zum Sensor Test
-> Sensoren:
   Akt. Drehzahl
   Anzahl Umdrehungen gesamt
   Betriebszeit

=> Durchfluss (Port D3):
   Tankvolumen
   Rücksetzen 
   - automatisch nach jedem Sensor Neustart
   - manuell per Jetibox oder frei wählbaren Digiport (Taster)
   Anzahl der Impulse je Liter 
   - manuell änderbar
   - Kalibrierbar
   Anzeige der Auslösungen auf JB zum Sensor Test
-> Sensoren:
   verbleibende Tankmenge
   verbrauchte Menge
   akt. Durchfluss
   gesamt verbrauchte Menge

=> Temperatur (NTC 1-4 auf Port A0-3):
   Typ NTC/IR wählbar
-> Sensoren:
   Temperatur 1-7
   
=> Höhe:
   Vario, Sensibilität (Filter) und Totzone
-> Sensoren:
   relative Höhe gemessen zur Starthöhe
   gesamt Höhe, Summe aller gemachten Höhenmeter
   Vario

=> GPS (TX auf Port D8):
-> Sensoren:
   Anzahl aktiver Satelliten
   Längen und Breitengrad
   Höhe
   Geschwindigkeit
   max. Geschwindigkeit
   akt. Kurs/Richtung in Grad 0-360
   Richtung in Grad zum Modell, gemessen vom Startpunkt
   Entfernung vom Startpunkt zum Modell
   zurückgelegte Strecke Trip und gesamt

=> Pitot Rohr:
   analog Port
-> Sensoren:
   Geschwindigkeit

=> Spannung 1-4:
   analog Port
   Widerstand gegen GND
   Widerstand gegen Vcc
-> Sensoren:
   Spannung

=> Strom 1-3:
   ACSxx Typ
   analog Port
   Reset der Kapazität
   - automatisch nach jedem Sensor Neustart
   - automatisch bei n% höherer Akkuspg. nach Neustart
   - manuell per Jetibox oder frei wählbaren Digiport (Taster)
   analog Port für Akkuspg.
   Widerstand gegen GND
   Widerstand gegen Vcc
-> Sensoren:
   Strom
   Spannung
   Leistung
   entnommene Kapazität

=====================================================================================================================================

Summenwerte sind per Jetibox rücksetzbar:
- Tankvolumen
- entnommene Akku Kapazität
- max. Geschwindigkeit
- Motor Betriebszeit
- Anzahl Umdrehungen
- gesamt Durchfluss
- gesamt zurückgelegte Strecke


Spezielle Konfigurationseigenschaften:
- Sensor Nr., sollten mehrere XSensor in einem Modell eingesetzt werden
- Watchdog, Überwachung der ordnungsgemäßen Funktion des Sensors (!! prüfen ob Bootloader das ordnungsgemäß unterstützt)
- Referenzspannung für ADC Mesuungen (Spg/Strom), wichtig um genaue Messergebnisse zu erhalten. Mit Multimeter die Vcc Spg. messen
- Kalibrierung des Stromsensors, im Ruhebetrieb sollte kein Strom fliessen
- Rücksetzen aller Werte auf Auslieferzustand !!! vorher überlegen ob sinnvoll !!!
- Debug, Anzeige des verbleibenden Speichers, dieser sollte größer 100 Byte sein, ansonsten droht Fehlfunktion

=====================================================================================================================================

Konfigurationskonzept:
Änderungen werden NICHT direkt gespeichert, erst nachdem wieder ganz nach oben (Pfeil hoch) gegangen ist erfolgt eine Abfrage ob
die Änderungen gespeichert oder verworfen werden sollen.
Mit Taste rechts links wird zwischen den Hauptmenues gewechselt, mit Taste runter in das entsprechend ausgewählte.
Der Aufbau ist in JetiBox.h ab Zeile 200 zu sehen.

Um etwas zu aktivieren ist Taste links und rechts gleichzeitig zu betätigen. Leider werd Tastendrücke vom Sender nicht immer
korrekt übermittelt, dies ist zu beachten. Mit etwas Gewöhnung sieht man aber schnell ob das Gewünschte ausgeführt wurde.

=====================================================================================================================================

LED Anzeige:
Der Sensor Status wird mit vier unterschiedlichen Blinkrhytmen angezeigt.
LED  ein /    aus
-  100mS / 1500mS  Ruhebetrieb
- 1400mS /  200mS  kein Sensor aktiv
-  100mS /  100mS  Sensor Initialisierungs Fehler
-  800mS /  800mS  Sensor Fehler während Betrieb
Eine Anzeige beim entspr. Sensor erfolgt in der Jetibox um zu ermitteln welcher Sensor betroffen ist.
- I = Init
- F = Laufzeit

=====================================================================================================================================

Compilieren:
Sollte der Codespeicher nicht reichen, weil zB ein anderer Bootloader als Optiboot eingesetzt wird, können nicht gewünschte
Eigenschaften ausgeblendet werden. In der def.h sind entsprechende defines zu finden (_SENS_XX_).
Ebenso finden sich dort die fest zugeordneten Ports ab Zeile 100.

=====================================================================================================================================

Ein Hardware Adapter wurde ebenfalls entwickelt damit die große Vielfalt an Sensor Anschlüssen vernünftig abgegriffen werden kann.
Schaltung und Bild vom fertigen Board befinden sich im Verzeichnis "Sonstiges".
Der Hardware Adapter unterstützt drei verschiedene Pro Mini Boards
- unten mit 5 Pinnen
- unten mit 3 Pinnen, rechts 2 Pinne
- unten keine Pinne, rechts 2x2 Pinne







