Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

Neues Sensorboard?

Der selbst balancierende einachsige Elektro-Roller

Postby udo » Thu Jan 19, 2012 12:00 am

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.
udo
 
Posts: 50
Joined: Fri Jan 03, 2014 1:48 pm

Postby guenter » Thu Jan 19, 2012 12:00 am

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
User avatar
guenter
 
Posts: 1117
Joined: Thu Jan 02, 2014 10:38 am

Postby thomas scherer » Thu Jan 19, 2012 12:00 am

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)
thomas scherer
 
Posts: 1128
Joined: Thu Jan 02, 2014 10:38 am

Postby guenter » Thu Jan 19, 2012 12:00 am

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.
User avatar
guenter
 
Posts: 1117
Joined: Thu Jan 02, 2014 10:38 am

Postby udo » Fri Jan 20, 2012 12:00 am

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.
udo
 
Posts: 50
Joined: Fri Jan 03, 2014 1:48 pm

Postby compu2004 » Mon Jan 30, 2012 12:00 am

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
compu2004
 
Posts: 21
Joined: Fri Jan 03, 2014 1:48 pm

Postby guenter » Mon Jan 30, 2012 12:00 am

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.
User avatar
guenter
 
Posts: 1117
Joined: Thu Jan 02, 2014 10:38 am

Postby compu2004 » Fri Feb 03, 2012 12:00 am

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?
compu2004
 
Posts: 21
Joined: Fri Jan 03, 2014 1:48 pm

Postby guenter » Thu Mar 22, 2012 12:00 am

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 enabledi2c_stop();    i2c_start_wait(Gyro_Write_Address);i2c_write(0x23);i2c_write(0x90); // output registers not updated until MSB and LSB reading, 500 dpsi2c_stop();i2c_start_wait(Acc_Write_Address);i2c_write(0x20);i2c_write(0x2F); // Normal Mode, 100Hz, X Y and Z enabledi2c_stop();    i2c_start_wait(Acc_Write_Address);i2c_write(0x23);i2c_write(0xb0); // output registers not updated until MSB and LSB reading, +-8gi2c_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 modefor (i=0;i<5;i++)// get the 5 Bytes from the I2C-Slave{Gyro_array = i2c_readAck();                         }Gyro_array = i2c_readNak();  // get the 6th Bytei2c_stop();    i2c_start_wait(Acc_Write_Address);i2c_write(0xA8);i2c_rep_start(Acc_Read_Address);       // set device address and read modefor (i=0;i<3;i++)// get the 3 Bytes from the I2C-Slave{Acc_array = i2c_readAck();                          }Acc_array = i2c_readNak();  // get the 4th Bytei2c_stop();


Edit: hinter den Arrayvariablen fehlt immer das i in eckigen Klammern!!
User avatar
guenter
 
Posts: 1117
Joined: Thu Jan 02, 2014 10:38 am

Postby udo » Sat Mar 24, 2012 12:00 am

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
udo
 
Posts: 50
Joined: Fri Jan 03, 2014 1:48 pm

PreviousNext

Return to ElektorWheelie

Who is online

Users browsing this forum: No registered users and 2 guests