two wheels control - el-pths/w GitHub Wiki

Управление двухколесным роботом

пример шасси двухколесного робота

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

Управление таким роботом, в упрощенном виде, сводится к следующим возможностям:

  • при включении обоих моторов платформа движется вперед
  • если включен только правый мотор, она поворачивает влево
  • если включен только левый, наоборот совершает правый поворот

В расширенном варианте, конечно, возможно также вращать моторы назад или заставлять их вращаться с разной скоростью, что позволяет иметь дополнительные возможности маневрирования.

Подобная система управления годится и для других типов платформ:

  • на гусеничном ходу (две гусеницы, каждая со своим мотором, как у трактора или танка)
  • на вибродвигателях (которые должны быть расположены определенным образом по бокам)
  • для перемещения по воде (с двумя независимо вращающимися гребными винтами)
  • или с воздушными пропеллерами (также двумя и расположенными по сторонам от центральной линии)

использование Miskatino для дистанционного управления

Мы умеем программировать и управлять контроллером Miskatino через беспроводное соединение bluetooth, например, с мобильного телефона. Эту возможность удобно использовать для дистанционного управления.

Программа на Miskatino может по ходу работы проверять, не нажата ли какая-нибудь кнопка (в интерфейсе терминального приложения на телефоне) - и благодаря этому мы можем заставлять ее выполнять различные действия для разных кнопок, например:

  • кнопка "T" - включить оба мотора, двигаться вперед
  • кнопка "A" - включить только левый мотор, поворачивать вправо
  • кнопка "J" - включить только правый мотор, поворачивать влево
  • кнопка "V" - выключить моторы, остановиться.

Для управления моторами достаточно использовать две любых выходных ноги (например, PIN 10 и PIN 11). Если вместо светодиодов (или лучше вместе с ними) подсоединить к ногам (через резисторы) базы транзисторов, которые могут пропускать ток через моторы, то эти транзисторы при появлении на ногах контроллера управляющего напряжения, будут запускать моторы, а при пропадании сигнала - выключать.

Подключить моторы непосредственно к ногам контроллера нельзя так как контроллер не расчитан на пропускание больших токов (больше 20мА) в то время как мотором может быть актуален ток от 200 мА до 2А.

Проверка нажатия кнопки в программе осуществляется функцией KEY(...) - о ней можно прочесть в краткой инструкции к Miskatino, или в полном руководстве (англ).