Arduino MWC fly test with GY-86 10DOF IMU
O GY-86 é um array de sensores que pode ser usando com o MWC.
Na falta de um receptor e transmissor/controle de RF, substitui em ambos por placas Stellaris com o Anaren RF Boost Pack. No lado do transmissor/controle/PC, um controle de Xbox envia os comandos para porta serial de uma das placas stellaris através de um programa simples em C# que usa o SlimDX para ler os eventos do controle. No lado Arduino (receptor) outra placa Stellaris recebe os pacotes RF e gera os sinais PWM para o Throttle, Roll, Pich e Yaw, ou seja, uma emulação completa e funcional de um sistema de controle RF tradicional.
Esquema de ligação do MWC http://www.multiwii.com/connecting-elements |
Para o MWC 2.3 no Arduino nano o esquema é um pouco diferente, boa parte disso está no def.h
D2 - RF PWM entrada THROTTLE
D4 - RF PWM entrada ROLL
D5 - RF PWM entrada PITCH
D6 - RF PWM entrada YAW
A4 - I2C SDA GY-86
A5 - I2C SCL GY-86
D3 - ESC PWM saida / MOTOR
D9 - ESC PWM saida / MOTOR
D10 - ESC PWM saida / MOTOR
D11 - ESC PWM saida / MOTOR
D8 - LIVRE (pode ser buzzer/AUX2)
D7 - LIVRE (pode ser RF PWM MODE)
D12 - LIVRE (pode ser AUX2)
A6 - LIVRE
A7 - LIVRE
A0 - LIVRE
A1 - LIVRE
A2 - LIVRE (pode ser PSENSOR)
A3 - LIVRE (pode ser V_BAT)
D13 - LED (MWC STATUS)
TX - USART (IDE/DEBUG/BLUETOOTH)
RX - USART (IDE/DEBUG/BLUETOOTH)
No config.h é preciso descomentar e alterar algumas coisas
#define QUADX
#define MINCOMMAND 900
#define GY_86
Meus ESCs são Hobbywing Flyfun 30A, não armaram com MINCOMMAND em 1000,
com MINCOMMAND em 900 os motores armaram perfeitamente.
ESC programming card: configuração recomendada para o MWC é ajustar o "Timming" para "Middle" |
Da para ativar o controle dos motores pela GUI, mas cuidado.
Quando ativei para testar os motores no máximo (2000 de throttle), depois de alguns segundos saiu fumaça dos motores. Até uns 1700 é seguro sem risco de sobre aquecimento.
#define DYNBALANCE
MultiWiiConf conectado ao Arduino Nano |
Para calibrar o GY-86 é preciso usar a MultiWiiConf, depois de aberta a conexão serial, é só colocar o drone em um local plano aperta o botão CALIB_ACC e esperar o LED D13 apagar, então use o botão WRITE para gravar a calibração na EEPROM interna do Arduino. Também é necessário calibrar o magnetômetro. Aperte o botão CALIB_MAG enquanto o LED D13 pisca, gire o drone em 360 graus nos eixos X,Y,Z. Quando apagar o LED D13 grave a calibração no botão WRITE.
Na esqueça de conferir na instrumentação do MultiWiiConf se quando você mexe no Drone os ângulos estão corretos. O altímetro do GY-86 não precisa calibrar.
Placa mãe do drone com Arduino e GY-86. O controle RF do Multiwii (MWC) é feito pela Stellaris com Anaren Boost Pack gravada com RF RX |
Stellaris com Anaren Boost Pack para fazer o enlace RF entre o Drone e o PC |
Enviador de controle de xbox para a porta serial da Stellaris com Anaren boost pack gravada com RF TX |
No PC o controle do Xbox é lido, os valores dos sticks analógicos são enviados para a porta serial da Stellaris com Anaren boost pack que vai empacotar e enviar para o drone.
No drone a Stellaris com Anaren boost recebe o pacote do PC e gera os PWMs esperados pelo Multiwii.
O alcance do link RF usando o Anaren boost é de cerca de 400 metros.
Para um primeiro teste no Arduino com MWC diria que o hardware está ok, mas precisa ajustar o firmware para resolver a instabilidade do quadx.