Подключаем Arduino к RC модели

Допустим, вы хотите создать на Arduino нечто, перемещающееся на колёсах. Можно самостоятельно собрать шасси из различных деталей, озаботиться дополнительным питанием моторов и т.п. И оно у вас, конечно, поедет. Вариант неплохой, если в этом и состоит проект. Однако, если шасси является лишь одним из компонентов проекта, то целесообразно рассмотреть и другой вариант. Возможно, вы уже выбрали именно его и поэтому читаете данный текст. Я говорю про шасси от RC модели.

Это очень удобно: продуманное шасси, на борту которого уже присутствует мощная батарея с большим запасом напряжения и тока, регулятор скорости, система поворота колёс и ещё куча других классных штук типа подвески, редуктора, дифференциалов.

Но как же подключить Arduino к модели и управлять последней? На самом деле очень просто, и сейчас я вам это расскажу.

Электроника RC модели (здесь рассматривается модель без ДВС) работает следующим образом: питание от батареи сперва идёт на регулятор скорости, посылающий на приёмник стабильное напряжение 5 вольт через три контакта: земля (чёрный/коричневый), питание +5В (красный) и сигнальный (белый/оранжевый). Приёмник, получив команду от пульта, подаёт сигнал по сигнальному контакту в регулятор скорости, который в свою очередь подаёт напряжение питания на мотор с нужной полярностью для задания скорости вращения вала и его направления (в случае коллекторных моторов). Приёмник также перенаправляет полученное напряжение на следующие каналы (как минимум, на сервопривод рулевой системы).

Когда приёмник возвращает сигнал на регулятор скорости, на самом деле он возвращает такие же импульсы постоянной частоты и переменной ширины, как и на сервопривод. Можно было бы подумать, что регулятор скорости на вход будет получать ШИМ, но нет. Он управляется так же, как если бы вместо него был бы сервопривод – импульсами.

servo-signal-pdm

На что следует обратить внимание, так это на то, что состояния «мотор остановлен» и «колёса стоят ровно» соответствует углу 90 градусов.

Теперь, зная это, соберём следующую схему:

2015-09-25_163831

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

Если вы решите питать Arduino от +5В регулятора скорости, настоятельно рекомендую добавить в цепь стабилизатор!

IMG_5081-2

Загрузим в микроконтроллер простейшую программу (скетч):

Теперь, отклоняя рукоятки переменных резисторов от центрального положения, можно изменять скорость и направление вращения вала мотора, а также угол поворота колёс:

В дальнейшем вы можете создать искусственный интеллект и наделить им модель.

Комментарии

  1. Буранчик пишет:

    А плату Arduino ты сможешь внутри RC модели уместить?

    • Includen пишет:

      Существуют Arduino Micro, Mini, Nano. Но вообще зачем её внутрь, можно сверху прикрепить вместо кузова, всё равно будут какие-нибудь датчики же ещё.

  2. Денис пишет:

    Проблема такого рода, от 0 до 180 движка разгоняется вперёд, но вот как её запустить назад?

    • Vasya пишет:

      Некоторые контроллеры (для самолётов, например) прошиты так что не имеют заднего хода. Посмотрите какой к вас. Их можно перепрошить в случае необходимости.

  3. Юрий пишет:

    Доброго времени суток. Будьте добры поскажите пульт можно абсалютно любой использовать? И как их снюхать мед собой?

  4. Денис пишет:

    Почему, никто и нигде не показывает пример подключение обычной RC апаратуры (например turnigy) к ардуино. Потенциометры это хорошо, но дико не удобно за моделью бегать и провода держать) с уважением.

  5. Danil25 пишет:

    Кто сталкивался с датчиками температуры Ds18b20 к Arduino? Я сделал все как указанно инструкции и но температуру датчик показывает по разному спустя 5-10 минут температура подает или опускается на 2-3градуса…С чем это может быть связано и что здесь может быть не так? http://http://proumnyjdom.ru/kontrollery/ds18b20-podklyuchenie-k-arduino.html

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *