Brushless Gimbal Controller

Status
Nicht offen für weitere Antworten.

RC FAN2

Erfahrener Benutzer
32khz ist zuviel , dann haben wir zuviel schaltverlust ...
4 khz werde ich mal testen , nicht ohne grund verwendet alexmos auch 4khz ;)
 

RC FAN2

Erfahrener Benutzer
macht ja nix wenn millis schneller leuft :)
am Anfang habe ich die millis Funktion noch angepasst , aber im Grunde ändert sich ja nur die Sampletime und vllt etwas die Empfindlichkeit der Parameter ....
Da die werte ja eber eh noch nich optimal sind , macht das ja nix aus .
Probleme sollte es ja da nur bei Phase Correct PWM geben , oder ?
 

madobor

Neuer Benutzer
Sorry for interrupting discussion with english, but just advice for Ludwig,

why dont you make GUI in Java (not in .NET) so you can cross-compile it for Win/Lin/OS X? Would be much much better combination in my own opinion :) If you need help with this, just let me know..

EDIT: Also, Alex has its own GUI also written in Java (actually Multi-Wiis GUI edited) and is cross-compiled..hmm? :)
 
Zuletzt bearbeitet:

RC FAN2

Erfahrener Benutzer
Hi Madobor ,

.NET is for me mutch easyer to create a GUI :)
But if you like , you can help us to write a GUI with Processing like Alexmos and Multiwii ?

rg
 
Olá a todos!
Eu sou do Brasil, e não falo o idioma de vocês(estou usando o google translate).
Tenho lutado aqui para conseguir uma gimbal assim.
Meu progresso está sendo usar um ESC(towerpro 40A, com dicipadores roxo) com a firmware modificada e um arduino nano+MPU6050 com código da multiwii para ser o sensor.
criei o PWM manualmente e está funcionando muito bem, mas não entendo sobre o PID(o que falta no meu projeto) pois a minha intenção é fazer o motor girar permanentemente para os dois lados. Porém, quanto menor for o erro vindo da placa multiwii(meu sensor), menor vai ser a velocidade de giro. Idéia baseada em um servo comum com o potenciômetro subistituido por 2 resistores de mesmo valor, sendo o ponto morto(motor parado) na metade do sinal(1500usec).
Aqui está um video do que consegui usando um "motor DT750" + "ESC TowerPro 40A(Atmega8)" + Arduino com 6050 rodando multiwii(sensor):
http://helimaniacos.blogspot.com.br/2012/12/desenvolvendo-uma-gimbal-usando-motor.html

Observação:
No video, o sensor não está na gimbal, e sim no suporte(já que não consegui implementar o PID no ESC)
 
Oooo sehr gut!
Vielen dank RC FAN2!

Now more people can take a look into it and try to contribute to its improvement :)

I will sure leave feedback of different motors that I test (different winding number, and different wire diameter)

http://youtu.be/T1svUkQwgIo

this is first run with 0.10 mm wire, 100 turns per tooth, 50 Ohm between 2 phases
motor is cool, mosfets do get a little hot after 5 minutes of work, but SMD board from RC FAN2 should work better, this is just for testing
Olá TomRi...
Fiz uma postagem recentemente comentando minha idéia, e ela é exatamente assim, como seu vídeo.
Já tentou aumentar os valores de PID para você não ter uma banda morta muito grande em relação a inclinação?
Você disponibilizou seu código em algum lugar?
 

Lonestar78

Erfahrener Benutzer
Das nenne ich mal Globalisierung :)

Welcome, thats true globalization :)
Could you please switch to english? My portugese is somewhat rusty ;-)
 

edge

Erfahrener Benutzer
Probier mal das hier, das sollte jetzt gleiche Pulsweiten sicherstellen.

// 4KHz (!!! -> Timer 1 und 2 laufen ehh auf 4KHz mit Prescaler 8)
TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);
TCCR0B = _BV(CS01);
TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM10);
TCCR1B = _BV(CS11);
TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20);
TCCR2B = _BV(CS21);

// 32KHz (!!! -> Timer 1 und 2 laufen ehh auf 32KHz mit Prescaler 1)
TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);
TCCR0B = _BV(CS00);
TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM10);
TCCR1B = _BV(CS10);
TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20);
TCCR2B = _BV(CS20);

Hey, wir hatten das glaube ich schon ausprobiert, nur das wird glaube ich mit 4khz nicht klappen. timer0 darf nicht mit Phasen pwm laufen, weil sonst der timer ja anders durchläuft. daher hatte ich damals keine moeglichkeit gesehen auf 4 kHz zu kommen. also entweder 8 oder 1. wir haben uns daher für 8khz entschieden.
LG Alex
 

Lonestar78

Erfahrener Benutzer
Hi Alex,

ja, das ist das Problem am 328.
Wir haben 3 Timer a zwei Compare Register -> genau die 6 HW PWMs die wir brauchen.
Doof ist ja nur, das die Prescaler anders arbeiten, es gibt also kein gemeinsamer Nenner vorhanden.

Durch Umstellung auf phasen-PWM auf Timer 0 wird die doppelt so hohe Frequenz halbiert auf die Frequenzen von Timer1 und 2. Haken ist halt, dass die dann um eine halbe PWM-Phase verschoben laufen bei gleichem Lastzyklus.


Aber ich kann ja ab heute wahrscheinlich auch spielen :)

Gruß
Christian
 
Zuletzt bearbeitet:

edge

Erfahrener Benutzer
Hey,
ich verstehe nicht wo das Problem liegt. wir lassen Timer1 auch als 8bit laufen (so wie es im code ja gemacht wird) und nehmen bei allen den Teiler 8. damit laufen alle bei 8khz ohne phasen pwm.
abgesehen davon darf man nur leider nicht timer0 auf Phasen pwm stellen, denn der Timer zählt dann ja immer hoch und runter und damit gehen dann Funktionen wie millis nicht.
LG Alex
 
Zuletzt bearbeitet:
posted here to get more people involved,
http://www.multiwii.com/forum/viewtopic.php?f=7&t=2897&p=28624#p28624

MWii community is big, so I believe they can help around tuning the code part :)


Olá TomRi...
Fiz uma postagem recentemente comentando minha idéia, e ela é exatamente assim, como seu vídeo.
Já tentou aumentar os valores de PID para você não ter uma banda morta muito grande em relação a inclinação?
Você disponibilizou seu código em algum lugar?

I am using original RC FAN2's code, uploaded it to multiwii board half an hour after he published it for the first time, and filmed it working.
so no any PID tuning done yet. I sure will play it with to try to see what works best :)
 
Zuletzt bearbeitet:

Lonestar78

Erfahrener Benutzer
Ich steh vieleicht einfach auf dem Schlauch, ist ja auch früh.
Die Prescaler wirken beim 328 unterschiedlich auf die Frequenz.

EDIT: Das liegt an der Arduino Implementierung!

Prescaler 8, Timer 0 --> 8kHz
Prescaler 8, Timer 1 --> 4kHz
Prescaler 8, Timer 2 --> 4kHz


Pins 5 and 6: controlled by Timer 0
Setting Divisor Frequency
0x01 1 62500
0x02 8 7812.5
0x03 64 976.5625
0x04 256 244.140625
0x05 1024 61.03515625

Pins 9 and 10: controlled by timer 1
Setting Divisor Frequency
0x01 1 31250
0x02 8 3906.25
0x03 64 488.28125
0x04 256 122.0703125
0x05 1024 30.517578125

Pins 11 and 3: controlled by timer 2
Setting Divisor Frequency
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
 
Zuletzt bearbeitet:

edge

Erfahrener Benutzer
Heey,
okay jetzt weiß ich wo dein Problem liegt;)
die Daten kommen von arduino. die lassen Timer 1 und 2 Standard Mäßig auf Phasen pwm laufen, daher 4lhz. wir machen das nixjt und daher laufen alle auf 8;) am besten immer das Datenblatt nehmen, arduino ist doof:p
also die prescaler wirken alle gleich, nur arduino schafft unterschiedliche Vorraussetzungen ;)
LG Alex
 
Zuletzt bearbeitet:

RC FAN2

Erfahrener Benutzer
So , der erste Betatester hat seine Platine bekommen ;)

Hab jetzt unsere Homepage soweit das schonmal ein Paar wichtige Informationen enthalten sind :

brushlessgimbal.de

Freu mich über Kommentare , und Verbesserungsvorschläge
 
So , der erste Betatester hat seine Platine bekommen ;)

Hab jetzt unsere Homepage soweit das schonmal ein Paar wichtige Informationen enthalten sind :

brushlessgimbal.de

Freu mich über Kommentare , und Verbesserungsvorschläge
RC FAN2:
Vi no seu site(no video da capa)quando você inclina o sensor para algum lado, o motor gira proporcional ao angulo, certo?
Não é ai que está o erro?
Ao meu ver, o motor tem que girar continuamente para o lado oposto ao do sensor, reduzindo a velocidade de giro proporcional ao erro do sensor, até parar de vez, como no video do TomRi
.
Tem algum esquema(como nos outros vídeos, para usar transistor, resistor e FET para funcionar o motor? pois aqui não temos esses Drivers para o motor...
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten