Source file: /~heha/mb-iwp/Bergwerk/fba-fw-230825.zip/Muldenkipper.cxx

#include "fba.h"
#include <avr/eeprom.h>	// EEMEM, Kalibrierwerte für Potenziometer sind dort

// Vorgabewerte für EEPROM ab Adresse 0
Eedata eemem EEMEM={
 0,		// lamps
 0xBC,		// Adresse für Pampelmuse, mglw. I²C-Slaveadresse
 {11,{	// Lenkwinkel in °, aufgenommen 230905, ausgehend vom Geradeauslauf
  { 9730, 38},	// 230905: Tatsächlich unterschiedliche Lenkanschläge
  {12010, 30},
  {14100, 20},
  {16020, 10},
  {17030,  5},
  {17980,  0},	// Bei Geradeauslauf ist Führerhaus 1° nach links(!)
  {18810, -5},
  {19650,-10},
  {21250,-20},
  {22910,-30},
  {24410,-39},
 }},
 {3,{	// Ladefläche in °
  {0x1DB0,  0},
  {0x3BF0, 30},
  {0x5D00, 67},
 }},
 {3,{	// Verwindung in °
  {0x19F0,-30},
  {0x3CF0,  0},
  {0x69B0, 30},
 }},
 3440,	// 288 mV @ 0 °C entspricht 288 mV ÷ 3,3 V × 32768 = 2860
 {0},	// Keine Steilheit wegen der Ungenauigkeit des Thermometers.
// Es zeigt sich eine erhebliche Abhängigkeit von der Spannung an ADC3!!
// Damit ist die Temperaturmessung auf diese Art eher für'n Arsch,
// Firmware-Änderung erforderlich.
// Bevorzugt: ADC0..2, dann Regler [0,2,3] starten.
// Während Reglerberechnung ADC3, dann ADC8, dann fertig.
// Dann sind die neuen PWM-Werte früh genug für den nächsten Zyklus fertig: Minimale Latenz!
 {	// PID-Reglerkoeffizienten, bezogen auf 0,01° und 20 ms
//	Kp	Ki	Kd	Z		L		T   M
  {{ 16, 16},{ 8, 8},{ 4, 4},{-35,55,-25,45},{ -32, 32, -32, 32}, 30,50},	// Lenkregler (max. 3 s)
  {{  0,  0},{80,80},{ 0, 0},{-10, 2,-10, 2},{-126,126,-126,126},  0, 5},	// Fahrtregler
  {{ 24, 24},{ 2, 2},{ 0, 0},{-24,39,-21,36},{  -2, 16,  -2, 16},150,50},	// Mulde (max. 15 s für geringere Batteriespannung)
  {{  0,  0},{ 0, 0},{ 0, 0},{-10,10,-10,10},{  -8,  8,  -8,  8}, 10,50},	// funktionslos
 },
 {// Odometrie (Die Getriebeübersetzung ist nur schwer zu ermitteln.)
  {-28,28},	// Maximale Fahrgeschwindigkeiten in cm/s (zurück, vorwärts)
  5106,		// onestep: 0,1 µm pro Tachotick (gemessen 230320: 0,5106 mm/Tick)
  {580,1166,1692,2102}	// q = Winkeländerung pro Schritt für 10°, 20°, 30° und 39°
 }
};

/* Messdaten Kreisfahrt 230321: Wendekreis-Umfänge in m (vom Meterzähler)
╔═══════╤═══════════════╦═══════╤═══════════════╤═══════════════╦═══════╤═══════╤═══════╤═══════╗
║Knick	│ vorwärts	║Knick	│ vorwärts	│ rückwärts	║ Mitte	│Ticks	│ q	│ q°/λ	║
╟───────┼───────┬───────╫───────┼───────┬───────┼───────┬───────╫───────┼───────┼───────┼───────╢
║-39°	│4,29 m	│-	║+39°	│4,17 m	│4,16 m	│3,90 m	│3,90 m	║4,08 m	│ 7980	│ 2102	│  54	║
║-30°	│5,64 m	│-	║+30°	│5,02 m	│5,02 m	│4,84 m	│4,85 m	║5,07 m	│ 9916	│ 1692	│  56	║
║-20°	│8,73 m	│8,74 m	║+20°	│6,72 m	│6,77 m	│6,58 m	│6,60 m	║7,36 m	│14395	│ 1166	│  58	║
║-10°	│-	│-	║+10°	│-	│-	│-	│-	║-	│-	│  580?	│  58	║
╚═══════╧═══════╧═══════╩═══════╧═══════╧═══════╧═══════╧═══════╩═══════╧═══════╧═══════╧═══════╝
q = Winkeländerung Δα pro festgestelltem Schritt vom Motor,
    ist erwartungsgemäß gut lenkwinkel-proportional,
    dürfte aber sehr von der Beladung abhängen.
*230623	Änderung Lenkregler-Slip-Stick-Parameter („Z“) nach Servo-Tausch
*230825	Änderung Lenkregler-Slip-Stick-Parameter („Z“) nach Servo-Tausch
*230906	Änderung Lenkregler-Slip-Stick-Parameter („Z“) nach Servo-Tausch
*/
Detected encoding: UTF-80