Em quarentena… resolvi montar alguma coisa. Sr Quarentino. Um robô do tipo “self balancing” que funciona como um pêndulo invertido.
Encontrei esse vídeo abaixo e gostei muito. A partir daí busquei a viabilidade de montar um com o material que tenho em mãos.
Os desenvolvedores forneceram os arquivos .STL para impressão 3D e software.
Meu 1° problema: Utilizam uma placa customizada com Arduino Leonardo ( ATmega32u4) e no código foi usado acesso direto a vários registradores dele. Como não tenho esse tipo de microcontrolador e demoraria para fazer portabilidade do código procurei alternativas…
Foi então que achei esse outro vídeo:
Ele usou um arduino nano V3 ( esse sim tenho=D )… e outros módulos:
- Arduino Nano V3(ATmega328P)
- MPU6050 (GY-)
- stepstick A4988 (polulu)
- Motores nema17
- Bluetooth
- software é o BalancingWii rev 1.0 (versão modificada do MultiWii 2.3 firmware, que é um firmware para “drones”)
Meu 2° problema… lembrei que meu módulo bluetooth já não funciona mais =( maaass no código existe a opção de usar controle de aeromodelo com porta CPPM. Com isso imprimi os arquivos do “BRobot Evo2” (o do primeiro vídeo) e usei o software do segundo vídeo…
Impressão:
Os arquivos para impressão podem ser encontrados no thingiverse.com. Imprimi a versão 2.
OBS: As rodas no final são cobertas por um pedaço de correia GT2 que é colado na roda (usei cola de isopor pois a super cola não funcionou bem).
OBS 2: o STL para o braço não encaixou o braço do servo. Foi necessário alargar o furo para caber o braço do servo. Usei um sevo MG90.
Eletrônica:
O esquema eletrônico não foi fornecido… porém no github e dentro do código do BalancingWii rev 1.0 contém as informações básicas escritas.
OBS: Um detalhe importante não mencionado é a orientação do sensor MPU6050. O eixo Y aponta para a frente do robô. O eixo X aponta para a direita do robô e o Z para cima.
Abaixo está um trecho do “readme” da página github do BalancingWii rev 1.0.
Pinout for Arduino nano (atmega328p):
- A0 – V_BATPIN: after the resistor divisor we should get [0V;5V]->[0;1023] on analogue V_BATPIN with R1=33k and R2=51k, i.e. (+12v)
51k(A0 pin)33k(GND) - A2 – BUZZERPIN
I2C:
- A4 – SDA
- A5 – SCL
RC control:
- D2 – CPPM (PPM_SUM)
Motor driver pins:
- D5 – STEP1 (PORTD 5)
- D6 – STEP2 (PORTD 6)
- D7 – DIR1 (PORTD 7)
- D8 – DIR2 (PORTB 0)
- D4 – ENABLE (for both)
If you look to the tail of the robot:
- right motor = STEP1 & DIR1
- left motor = STEP2 & DIR2
Software:
O firmware é só baixar, compilar na IDE Arduino e enviar para o Arduino Nano v3. Após isso pode-se usar o software MultiWiiConf.exe que está dentro da pasta application.windows32. Esse software ajuda a configurar os parâmetros como o PID e outros detalhes. Também existe a opção via Bluetooth de controle e configuração através do aplicativo EZ-GUI ground station.
OBS: na interface gráfica não apareceu a o valor de tensão… não verifiquei ainda o motivo.
OBS 2: Como esse firmware não foi configurado para usar o braço do robô ainda não funciona, mas pela versatilidade do código será possível acrescentar o controle do braço futuramente.