СамоДельник

Бот-автопилот с управлением и программированием с ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульта

Nextrp [CPP] RU + Many GEOs

Поломанную детскую машинку я возжелал перевоплотить в управляемого бота, с разными режимами работы. А конкретно, как контролируемого вручную при помощи пульта от телевизионной приставки, так и способного передвигаться по квартире без помощи других, что именуется “на автопилоте”. Плюс, в процессе игры, хотелось бы предоставить ребенку возможность задавать этому боту произвольные последовательности действий либо методы реакции на препятствия, другими словами «программировать» его, так же при помощи пульта, без подключения к среде разработки.
За базу я брал вот таковой, в один прекрасный момент поломанный, игрушечный квадроцикл.
Робот-автопилот с управлением и программированием с ИК пультаОт него я оставляю лишь корпус, а всю внутренность и механику ему придется поменять. Соответственно, разбираем на сто процентов.
Робот-автопилот с управлением и программированием с ИК пультаэлектрической платформой для самоделки будет всем популярная Arduino nano, поточнее, её дешевый китайский аналог. Так же мне пригодились:
1. Arduino Nano
2. Мотор-редуктор с колесами для Ардуино 2шт. (ссылка на Алиэкспресс)
3. драйвер мотора MX1508 1шт. (ссылка на Алиэкспресс)
4. Ультразвуковой датчик для измерения расстояния HC-SR04 1шт. (ссылка на Алиэкспресс)
5. Зарядный модуль для литий-ионных аккумов TP4056 1шт. (ссылка на Алиэкспресс)
6. Повышающий преобразователь напряжения MT3608 1шт. (ссылка на Алиэкспресс)
7. Модуль инфракрасного приемника 1шт. (ссылка на Алиэкспресс)
8. Фоторезистор GL5528 (20кOм) 1шт. (ссылка на Алиэкспресс)
9. Светодиоды 2шт.
10. Пьезоизлучатель, зуммер 1шт. (ссылка на Алиэкспресс)
11. Выключатель 1шт.
12. Аккумулятор литий-ионный 18650 1шт. (ссылка на Алиэкспресс)
13. Провода.
14. Очередное малюсенькое колесо.
15. ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульт дистанционного управления.
Инструментарий составили:
1. Паяльничек.
2. Отвертка.
3. Ножик.
4. Кусачки.
5. Пилка.
6. Клеевой пистолет.
Сперва избавляемся от старенькых колес и примеряем, как на их месте будут размещаться моторы с редукторами и новенькими колесами.
Робот-автопилот с управлением и программированием с ИК пультаПотом нужно подобрать и приготовить места под всю электрическую начинку снутри корпуса игрушки. Для этого кое-какие элементы пришлось подпилить, также, выломать некие перегородки меж внутренними отделениями. Опосля доработки примеряем любой модуль на его будущее пространство расположения в корпусе.
к примеру, сам контроллер я решил установить под сиденьем
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультадрайвер моторов – в задней части машины, ближе к движкам. Для этого пришлось укоротить выхлопную трубу.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаПьезоизлучатель будет находиться на том же месте, где стоял родной динамик машины
Робот-автопилот с управлением и программированием с ИК пультаПреобразователь напряжения и контроллер аккума установятся снутри корпуса
Робот-автопилот с управлением и программированием с ИК пультаСветодиоды, имитирующие фары – в фронтальной части
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаТам же будет установлен фоторезистор
Робот-автопилот с управлением и программированием с ИК пультаИ сверху расположатся датчик расстояния и инфракрасный приемник
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаСобирать будем по последующей схеме:
Робот-автопилот с управлением и программированием с ИК пультатут АКБ Li-ion 18650 – это аккумуляторная батарея питающая устройство. Для заряда батареи и защиты от переразряда, она подключается к схеме, через контроллер TP4056 на выводы B+ и B-. Дальше с выходов контроллера TP4056 напряжение подается на повышающий преобразователь MT3608, где поднимется с 4.2 до 5 В, также на драйвер моторов MX1508. И уже с выходов MT3608, питание подается на контроллер Ардуино nano и на присоединенные к его пинам датчики.
Фактически, из датчиков мы имеем на борту лишь три: это ультразвуковой датчик расстояния, датчик освещенности в виде фоторезистора и инфракрасный приемник для управления роботом с ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульта. Фоторезистор подключен к аналоговому пину А6 на Ардуино, с подтягивающим резистором 10 кОм на массу. А датчик расстояния к цифровым пинам D10 и D12, на контакты trig и echo, соответственно. Инфракрасный датчик подсоединен к цифровому пину D8.
Кроме датчиков к Ардуино подключены также входящие контакты драйвера моторов IN1, IN2, IN3, IN4, на пины: D5, D4, D6, D7, соответственно. Пьезо пищалка для звукового сопровождения – пин D11. И два бардовых индикационных светодиода, для подсветки бота в мгле. Светодиоды подключаются анодами к цифровым пинам D2 и D3, и катодом к GND c ограничивающим резистором на 160 Ом.
Робот-автопилот с управлением и программированием с ИК пультаДля способности физического отключения питания, в цепь батареи будет вставлен выключатель.
Чтоб паять контакты прямо к Ардуино, и тем сберечь место и обеспечить компактность расположения частей снутри бота, мне пришлось удалить все ножки с контроллера.
Робот-автопилот с управлением и программированием с ИК пультаОпосля чего же я приступил к распайке .
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаИ настройке повышающего преобразователя MT3608 при помощи подстроечного резистора так, чтоб на out контактах было 5V.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пульта Соединив все модули согласны схеме,
Робот-автопилот с управлением и программированием с ИК пультаЯ занялся сборкой бота в его окончательном виде, стараясь очень скрыть снутри все составляющие и соединительные провода. Так же, при помощи термоклея, я установил моторы с колесами и выключатель.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаАккумулятор будет размещаться сзаду, над моторами. Я подпаял провода прямо к батарее, хоть это созодать и не нужно, но так всё будет незначительно компактнее.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаВ задней части сиденья я сделал отверстие для подключения mini USB кабеля к разъему на Ардуино, чтоб иметь возможность программировать контроллер ничего не раскручивая.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультаЗарядный модуль я расположил снутри с таковым расчетом, чтоб разъем для подключения кабеля выходил снизу, в днище корпуса.
Робот-автопилот с управлением и программированием с ИК пультаПока аккумулятор заряжается, индикатор на модуле сияет красноватым. Как зарядится, зажгется голубий.
Робот-автопилот с управлением и программированием с ИК пультаЕще я решил прикрыть тыльную часть ультразвукового датчика расстояния маленьким пластмассовым прямоугольником. Так и симпатичнее и безопасней для электроники.
Робот-автопилот с управлением и программированием с ИК пультаРобот-автопилот с управлением и программированием с ИК пультавышел вот таковой бот, и он уже практически готов к работе.
Робот-автопилот с управлением и программированием с ИК пультаОсталось составить скетч в Arduino IDE и залить его в контроллер.
В процессе написания программки, я, хоть и не употреблял никаких экзотичных библиотек, лишь обычные и испытанные временем, столкнулся с необыкновенной неувязкой: опосля обновления до крайней версии, библиотека IRremote, ответственная за обработку сигналов получаемых с инфракрасного приемника, закончила работать. Но опосля отката на версию 2.8.0, все опять заработало, как следует. Так что, если кто будет употреблять аналогичный моему код, имейте ввиду, что версия обозначенной библиотеки обязана быть не выше 2.8.0. Так же, может быть, для вас придется поменять в данной библиотеке таймер по дефлоту в файле:

Users###DocumentsArduinolibrariesIRremotesrcprivateIRremoteBoardDefs.h

(Наиболее тщательно о этом сказано в самом скетче)
И еще по поводу ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) управления. Так как ваш пульт ДУ практически наверное будет различаться от моего,
Робот-автопилот с управлением и программированием с ИК пультато и коды кнопок у вас будут иными. Найти их можно раскомментировав строку:

//Serial.println(irrecv.results.value);

Находящуюся снутри функции

void changeMode()

и открыв “монитор порта”.
При нажатии клавиш на ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульте в мониторе покажутся надлежащие числа. Их необходимо будет вставить опосля установок:

 switch (irrecv.results.value) {
    case ******** :
      …

на пространство “********”, которые несут ответственность за обработку сигналов от подходящих клавиш. Будьте внимательны, операторы

switch (irrecv.results.value)

в программке встречаются аж целых 4 раза.
Скачать скетч можно тут.
1-ые тесты проявили, что сдвоенные фронтальные колеса очень понижают манёвренность.
Робот-автопилот с управлением и программированием с ИК пультаПотому я поменял их на одинарное.
Робот-автопилот с управлением и программированием с ИК пультаИ опосля этого способность бота созодать повороты сходу возросла.
К слову поворачивать он может за счет различного направления и скорости вращения задних колес с моторами. к примеру, если вынудить левое колесо вертеться вперед, а правое вспять, то бот будет совершать разворот на Право, стоя при всем этом на месте. Этот же принцип, но с оборотным направлением вращения колес, развернет бота на лево. Это достигается подачей различных сигналов на цифровые выходы присоединенные к контроллеру моторов. Подробнее о композициях сигналов определяющих различные направления движения бота можно ознакомиться в функции

void drive(byte d)

.

Кратко программка работает последующим образом:
сходу опосля включения, бот попадает в режим ожидания, опосля чего же игрок должен избрать режим предстоящей работы. Всего же предвидено 6 режимов. 4 из их предусмотрены для разных методов управления и 2 для программирования:
1.Ручное управление. Полный контроль передвижений бота пультом. Куда нажимаем, туда и движется.
2.Обычной автопилот. В этом режиме бот сам описывает направление собственного движения, избегая при всем этом столкновений с близкими препятствиями при помощи способа “отъезд вспять, разворот” и т.д..
3.Программируемый пультом автопилот. Войдя в этот режим бот будет передвигаться реагируя на различные расстояния до препятствий таковыми действиями, которые пропишет в его память игрок при помощи ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульта.
4.В этом режиме бот просто выполнит те деяния, которые запрограммирует в него игрок, не обращая никакого внимания на препятствия.
И еще 2 режима для программирования действий в режимах 3 и 4.
И функция ожидания.
Чтоб выйти из “сна” и начать управлять роботом, на моем пульте нужно надавить одну из цветных клавиш:
к примеру, нажатие на красноватую клавишу дозволяет манипулировать роботом, просто, как радиоуправляемой игрушкой.
Из доступных действий в него заложены:
1.движение вперед.
2.Вспять.
3.Вперед и вправо, влево.
4.Развороты на месте.
5.Движение вспять с поворотом вправо либо влево.
6.Остановка.
Выполнение роботом установок задаваемых с ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульта:

Управление роботом с пульта:
Зеленоватая клавиша включает обычный автопилот, опосля чего же бот действует на сто процентов без помощи других, повсевременно двигаясь вперед и всячески избегая всех препятствий. Делая маленький отъезд вспять и потом делая поворот на месте в поисках вольного места. Программку этого автопилота недозволено поменять в процессе игры.
Бот на автопилоте:
Желтоватая клавиша – включает автопилот в каком вначале отсутствуют данные деяния, не считая движения веред. Их необходимо прописывать вручную при помощи пульта. Делается это в особом режиме, войдя в который необходимо установить бота на определенном расстоянии до препятствия и поочередно нажимая на нужные клавиши, прописать в память те деяния, которые бот должен выполнить наткнувшись на стенки впереди. При этом, если прописать несколько вариантов действий (до 20 вариантов от 1 до 20 действий в любом), то избран будет тот, в каком записана более пригодная дистанция до преграды.
Программирование с пульта:
Бот катается сам, реагируя на препятствия серией из 20 установок, введенных с ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) пульта:
Голубая клавиша запускает серию действий (до 100 шагов) записанных в память, при всем этом препятствия игнорируются. Сначало это будут 100 случайных установок длительностью выполнения по 500 мсек любая.

Но есть возможность поменять эту последовательность, запрограммировав пультом любые остальные команды в количестве от 1 до 100, и бот их так же выполнит, не обращая внимания на препятствия.
Крайние два режима разрешают ребенку не только лишь веселиться при помощи бота, как с смешной игрушкой, да и в игровой форме приобщаться к понятиям алгоритмизации и принципов робототехники.
Наиболее тщательно о том, как управлять и программировать бота описано в комментах к скетчу.
Также, сделанные вручную серии установок можно сохранять в энергонезависимой памяти бота, которая продолжает хранить данные даже опосля выключения.
Считывая данные с датчика света, бот автоматом включает фары, если попадает в затененную область, по этому, его постоянно будет видно в мгле либо «под диванчиком», при всем этом издавая серию рандомных звуков.
Робот-автопилот с управлением и программированием с ИК пультаРадиус деяния пульта ограничен несколькими метрами, но для квартиры этого довольно.
Если гласить о издержек, то на покупку всех нужных модулей у меня ушло меньше 1Круб. Аккумулятор, пульт, светодиоды и ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения) приемник были добыты из различного хлама.
В заключение желаю прояснить, что не являюсь спецом в области электроники, программирования и роботостроения, так что, вероятны ошибки, недостатки и недоделки, видимые наиболее опытнейшему глазу.
Тем не наименее, считаю, что схожий руками, порадовав себя и собственных детей смешным изобретением.
Робот-автопилот с управлением и программированием с ИК пульта

FIFA Online 4 [CPP] RU+CIS

SamoDelnik

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.