Ótimo!
Já temos o motor funcionando e controlado pelo arduino (e depois apenas pelo atmega328). Mas para o skate funcionar do jeito que eu quero, preciso aferir o ângulo de inclinação dele. Para isso, após umas pesquisas na internet, cheguei ao famoso filtro complementar.
Um elemento essencial em robôs autobalanceáveis é a aferição do ângulo de inclinação. De acordo com a inclinação aferida, transfere-se mais ou menos potência para o motor movimentar o robô na direção e com a força necessária para cancelar aquela inclinação.
Existem vários filtros para medir um ângulo de inclinação usando um acelerômetro e um giroscópio. Não é meu objetivo aqui testar um ou outro. Apenas usei o mais comum nesse tipo de projeto. O próximo passo seria testar o filtro Kalman para verificar se há alguma melhoria na sensação de resposta do skate.
Primeira implementação do filtro complementar