Двухколесный балансирующий робот на Arduino

Двухколесный балансирующий робот на Arduino

Шон Крэмтон (Shaun Crampton) продемострировал свой прототип двухколлесного балансирующего робота  ArduRoller.

  • Шасси - 2.7мм бамбуковая фанера
  • Arduino Uno
  • Драйвер мотора Sparkfun Ardumoto
  • Два моторчика с редукторм 24:1
  • Колеса 70mm
  • Модуль гироскопа ADXRS613 Sparkfun, закреплен на оси вращения колес
  • Акселерометр ADXL203CE, также закреплен на оси вращения колес
  • Две батареи 3.7V Li-poly 850MAh

Видео можно посмотреть здесь, код и чертеж шасси на GitHub.

Автор писал код для Arduino не в Arduino среде, а в Eclipse, но код может быть скоприрован в обычный скетч Arduino. Сам код находится в файле main.cpp.

Код состоит из трех частей:

* setup()
* loop() the standard Arduino loop function, does nothing by default.
* ISR(TIMER1_OVF_vect) основная рабочая функция, вызываемая по прерыванию несколько сот раз в секунду.

Шон указал в пояснениях к исходника, что весь код потребовал долгой подборки "магических" значений переменных и констант. Некоторые из которых даже зависят от температуры окружающей, так как значения отдаваемые гироскопом могут "плавать".