Home › Foren-Übersicht › ElektorWheelie › Neues Sensorboard?

Foren-Übersicht

Sie müssen eingeloggt sein, um zu antworten.

vorherige    3   4   5   6   7   8     nächste

Thema: Neues Sensorboard?

Autor Beitrag

udo

50 Beiträge

Benutzer
Benutzer

Read post 19-01-2012 18:08

Hallo Günter,

vielen Dank für Deine Antwort. Ich finde das wirklich stark welche Erfahrung Du in dem Gebiet hast und wie offen Du diese Erfahrung teilst.

Der erste Teil: War schon klar dass man neben der Winkelgeschwindigkeit auch den Winkel braucht. Für mich ist die Frage eher ob man mit der neuen Controllergeneration noch komplexe (kalman-)Filterberechnungen benötigt.

Mit dem z-Gyro bin ich noch nicht ganz einverstanden. Im zweiten Szenario würde ich die Drehmomementunterschiede auch per Regler so lange erhöhen bis sich die Winkelgeschwindigkeit einstellt die der Lenkeinschlag haben möchte. Ich denke das versuche ich mal.

Was mich noch interessieren würde: Die geschwindigkeitsabhängige Lenkung -die wir ohne GT-Sensoren erst mal nicht realisieren könnten: Ist die wichtig? Bringt die einen großen Comfort- oder Sicherheitsvorteil?

Für die Geschwindigkeitsbegrenzung würde ich auch mal einen Ansatz ohne GT-Sensoren überlegen... vielleicht die Geschwindigkeit über die Motorspannung abschätzen oder vielleicht eher ab einem gewissen Drehmomentbedarf gegensteuern.

guenter

960 Beiträge

Elektor-Experte
Elektor-Experte

Read post 19-01-2012 21:52

Hallo Udo,

die neuen Sensoren sind zwar empfindlicher, jedoch prinzipbedingt mit den gleichen Fehlern behaftet. Ich gehe aber schwer davon aus, dass es in Zukunft Sensoren mit integrierten Filtern geben wird.

Mit dem z-Gyro bin ich noch nicht ganz einverstanden. Im zweiten Szenario würde ich die Drehmomementunterschiede auch per Regler so lange erhöhen bis sich die Winkelgeschwindigkeit einstellt die der Lenkeinschlag haben möchte. Ich denke das versuche ich mal.

Versuche es, gebraucht wird der Z-Gyro ja sowieso.

Was mich noch interessieren würde: Die geschwindigkeitsabhängige Lenkung -die wir ohne GT-Sensoren erst mal nicht realisieren könnten: Ist die wichtig? Bringt die einen großen Comfort- oder Sicherheitsvorteil?

Wenn du den Lenker so abstimmst, dass er im Stand gut reagiert, ist er ab ca. 5 km/h zu empfindlich. Anders herum musst du im Stand viel zu weit einschlagen. Ich möchte ihn nicht missen. Die Gearsensoren sind aber keine komplizierte Sache, ich würde sie auf jeden Fall im Layout vorsehen.
vielleicht die Geschwindigkeit über die Motorspannung abschätzen oder vielleicht eher ab einem gewissen Drehmomentbedarf gegensteuern.

Da kann ich sicher sagen, dass das nicht funktioniert

Thomas Scherer

835 Beiträge

Elektor-Experte
Elektor-Experte

Read post 19-01-2012 22:07

guenter
vielleicht die Geschwindigkeit über die Motorspannung abschätzen oder vielleicht eher ab einem gewissen Drehmomentbedarf gegensteuern.

Da kann ich sicher sagen, dass das nicht funktioniert


Vielleicht das Bürstenfeuer etc. als Geschwindigkeitsanalogon auswerten?
(War nicht ganz ernst gemeint, obwohl es rein theoretisch funktionieren könnte, solange man deutlich unter der PWM-Frequenz forscht)

guenter

960 Beiträge

Elektor-Experte
Elektor-Experte

Read post 19-01-2012 23:32

Da gibt es so kuriose Dinge wie:

Die PWM steht fast auf Vollgas, jedoch steht das Wheelie (im Gelände in einem Hang)
Die PWM dreht rückwärts, obwohl das Wheelie vorwärts fährt (Bremsung bei Bergabfahrt)

Das zweite Beispiel bringt auch einen Nachteil der ersten Generation der Geartoothsensoren ans Licht. Dort habe ich die Drehrichtung der Räder von der Motor-PWM abgeleitet:
Fährt man langsam ein Gefälle hinunter steht die PWM u.U. auf rückwärts obwohl man vorwärts fährt. Dadurch sind die Lenkerkorrektursignale verpolt und der Lenker reagiert überempfindlich.

udo

50 Beiträge

Benutzer
Benutzer

Read post 20-01-2012 09:04

guenterDa kann ich sicher sagen, dass das nicht funktioniert


Och, das würde ich so mal nicht gleich ausschließen. Da gibt es schon ein paar Varianten. Bürstenfeuer ist ein Thema, Strompeaks analysieren auch. Selbstkommutierende bürstenlose Gleichstommotorsteuerungen machen heute auch nichts anders. Und die Funktion Spannung gegen Strom ist auch eine feine Funktion die sich aus Widerstand/Induktivität des Motors und aus der Gegen-EMK bestimmen lässt. Ist aber auf jeden Fall aufwändig.

Ich tendiere eher dazu, EINEN Geartoothsensor einzusetzen. Die gibt es mit digitalem output inklusive Drehrichtungserkennung (Quad-4 Signale). Mal gucken... jetzt beschaffe ich mir erst mal meine Entwicklungsumgebung.

compu2004

19 Beiträge

Neuer Benutzer
Neuer Benutzer

Read post 30-01-2012 03:04

Hallo Günther,

Bekanntermaßen plane ich den Einstieg/Umstieg zu dem Wheelie Projekt.
ich habe mal eine Frage zu dem MinIMU-Board,
der Adapter ist mit den neusten Platinen kompatibel, richtig?
Zur Software, ist I²C für das Sensorboard bereits implementiert?

Dankeschön schonmal,

Dominic

guenter

960 Beiträge

Elektor-Experte
Elektor-Experte

Read post 30-01-2012 08:31

Hallo Dominic,

an der Software bin ich gerade dran, Uwe überarbeitet gerade das Layout. Seit der vorletzten Version (3.2) ist SDA und SCL bereits aufs Sensorboard gelegt.

compu2004

19 Beiträge

Neuer Benutzer
Neuer Benutzer

Read post 03-02-2012 20:50

Okay, also kann ich zunächst das analoge sensorboard benutzen?
Die Hauptsache wird vor allem sein, dass das CPU-board in nächster Zeit gleich sein wird.
Also das ist mir halt die Hauptsache

Ist dies gewährleistet?

guenter

960 Beiträge

Elektor-Experte
Elektor-Experte

Read post 22-03-2012 22:31

Hallo,

hier mal der Code um das IMU einzuschalten und auszulesen:

erstmal die notwendigen Parameter initialisieren:

uint8_t Gyro_array[6]={ 0,0,0,0,0,0} ;
int16_t* Gyro_array16 = (int16_t*)Gyro_array;
#define Gyro_X Gyro_array16[0]
#define Gyro_Y Gyro_array16[1]
#define Gyro_Z Gyro_array16[2]

uint8_t Acc_array[4]={ 0,0,0,0} ;
int16_t* Acc_array16 = (int16_t*)Acc_array;
#define Acc_X Acc_array16[0]
#define Acc_Y Acc_array16[1]
//I2C Gyro
#define Gyro_Read_Address 0xD3
#define Gyro_Write_Address 0xD2

//I2C Accelero
#define Acc_Read_Address 0x31
#define Acc_Write_Address 0x30

    i2c_start_wait(Gyro_Write_Address);
	i2c_write(0x20);
	i2c_write(0x0F); // Power on, X Y and Z enabled
	i2c_stop();
    i2c_start_wait(Gyro_Write_Address);
	i2c_write(0x23);
	i2c_write(0x90); // output registers not updated until MSB and LSB reading, 500 dps
	i2c_stop();	
	
	i2c_start_wait(Acc_Write_Address);
	i2c_write(0x20);
	i2c_write(0x2F); // Normal Mode, 100Hz, X Y and Z enabled
	i2c_stop();
    i2c_start_wait(Acc_Write_Address);
	i2c_write(0x23);
	i2c_write(0xb0); // output registers not updated until MSB and LSB reading, +-8g
	i2c_stop();


In der Schleife dann die Werte abholen:

	uint8_t i = 0;
    i2c_start_wait(Gyro_Write_Address);
	i2c_write(0xA8);
	i2c_rep_start(Gyro_Read_Address);       // set device address and read mode
	for (i=0;i<5;i++)						// get the 5 Bytes from the I2C-Slave
	{
		Gyro_array = i2c_readAck();                     
    }
	Gyro_array = i2c_readNak();  // get the 6th Byte
	i2c_stop();
	
    i2c_start_wait(Acc_Write_Address);
	i2c_write(0xA8);
	i2c_rep_start(Acc_Read_Address);       // set device address and read mode
	for (i=0;i<3;i++)						// get the 3 Bytes from the I2C-Slave
	{
		Acc_array = i2c_readAck();                      
    }
	Acc_array = i2c_readNak();  // get the 4th Byte
	i2c_stop();


Edit: hinter den Arrayvariablen fehlt immer das i in eckigen Klammern!!

Beitrag editiert von guenter am 22-03-2012 22:34

Beitrag editiert von guenter am 22-03-2012 22:37

udo

50 Beiträge

Benutzer
Benutzer

Read post 24-03-2012 09:04

Hallo Günter,

ich hätte dieselbe Funktion noch für XMega (bzw. in eine Funktion für Acc, Mag und eine für Gyro aufgeteilt), die noch zusätzlich
- per Interrupt abholt (der Zeitgewinn wird im Moment aber noch nicht genutzt)
- die Bausteine des MinIMU "testet" (das Whoami abfragt)
- die Skalierung des Accelerometer und des Magnetometers automatisch in den empfindlichsten Bereich schaltet der gerade noch so im Messbereich ist

Ist m.E. zuviel um es hierher zu posten... zumal die Plattform XMega noch nicht etabliert ist. Wenn das jemand zum abgucken angucken möchte: Kann ich gerne per mail senden oder irgendwohin posten.

Udo

Sie müssen eingeloggt sein, um zu antworten.

vorherige    3   4   5   6   7   8     nächste

Feedback zu Elektor

Folgen Sie Elektor auf...