Автономная смарт машина на Arduino
Содержание
- Необходимое оборудование и материалы
- Разбираем машинку
- Подготавливаем сенсоры
- Устанавливаем Arduino и датчик
- Питание
- Подключение к Arduino
- Программа Arduino
- Результат, тестирование и дальнейшие варианты модификаций
Основная идея проекта — создать недорогую автономную четырехколесную подвижную платформу.
В проекте используется логика на базе Arduino, недорогая радиоуправляемая машина, источник питания 9 вольт. В качестве датчиков обратной связи используется инфракрасный передатчик.
Так как оборудование недорогое, можно расценивать эту статью исключительно как общую инструкцию и первый шаг для дальнейших модификаций вашей автономной четырехколесной платформы.
Необходимое оборудование и материалы
- Arduino
- Arduino Мотор шилд
- Радиоуправляемая машина
- Паяльник
- Припой
- Инфракрасный передатчик
- Инфракрасный приемник
- Батарейка 9 В с коннекторами
- Переключатель
*Обратите внимание: если в вашей машине установлена большая плата контроллера, то это, скорее всего, чип TX2 или RX2. Если это так, то вы можете сэкономить немного денег и использовать для двигателей встроенные контроллеры. Хороший пример (на английском языке!) есть здесь.
Разбираем машинку
Ваш первый шаг — разобрать машинку. Снимите корпус и извлеките все платы из машинки. Моторы не трогаем. В проекте нам понадобятся родные шасси, колеса и моторы.
Подготавливаем сенсоры
Подготавливаем электронику. Для начала припаяйте резистор на 100 Ом к одному из контактов на вашем ИК передатчике. Припаиваем провода к другой ноге резистора и ноге датчика. После этого припаиваем два провода к ногам вашего ИК приемника.
Устанавливаем Arduino и датчик
В корпусной части машинки надо сделать отверстия под крепеж вашего контроллера Arduino. Отверстия под крепеж зависят от габаритов подвижной платформы машинки. В данном конкретном случае плата была расположена "перпендикулярно" несущей системе. Подобное расположение удобно еще и тем, что расстояния от двигателей передней и задней подвески до пинов платы примерно одинаковое.
Над передней подвеской устанавливаем наши эмиттер и детектор. Их желательно установить повыше относительно земли. В дальнейшем можно предусмотреть сзади светодиоды, которые будут включаться во время заднего хода машинки.
Переходим к следующему шагу.
Питание
В проекте используется одна батарейка на 9 В (крона). В данном случае ее получилось установить под несущей системой платформы на колесах. Крепим пластиковыми стяжками. В принципе, для увеличения времени автономной работы нашего автомобиля, можно установить две кроны параллельно.
Подключение к Arduino
С подключением можно разобраться и на основании фото. Но на всякий случай, ниже приведена схема подключения в текстовой форме.
Не забывайте, что позитивная нога светодиода — более длинная. Если вы все равно не уверены, можете посмотреть эту инструкцию по подключению светодиодов к Arduino.
Позитивный контакт — 5v
Отрицательный контакт — Ground
Позитивный контакт — Analog pin 5
Негативный контакт — Ground
Позитивный контакт — Мотор шилд Channel A +
Негативный контакт — Мотор шилд Channel A —
Двигатель для поворота
Позитивный контакт — Мотор шилд Channel B +
Негативный контакт — Мотор шилд Channel B —
Позитивный контакт — Мотор шилд Vin
Негативный контакт — Мотор шилд Gnd
Программа Arduino
Учитывая специфику проекта, вам надо внести в приведенный ниже базовый скетч достаточно много изменений, которые зависят от размера машинки и колес, скорости вращения колес, веса авто, освещения окружающей среды.
int irsensor = A5;
int ambientir = 0;
//настройка канала A (Channel A)
pinMode(12, OUTPUT); //инициализация контакта Motor Channel A
pinMode(9, OUTPUT); //Инициализация контакта тормоза — Brake Channel A
ambientir = ambientir + analogRead(irsensor);
measure = measure + 1;
while(measure ambientir — 50)<
Приведенный выше костяк программы для Arduino можно (и даже нужно!) дорабатывать под вашу конкретную конструкцию, но общий концепт вы должны были уловить.
Результат, тестирование и дальнейшие варианты модификаций
Как видите на фото, оригинальный корпус машинки был окрашен в бежевый цвет и установлен на стойках на подвижную четырехколесную платформу.
После тестирования разработанной конструкции можно выделить следующие проблемы:
- Ограниченный диапазон чувствительности сенсора;
- Проблемы, связанные со скоростью машины, а именно — невозможность быстрой остановки;
- Необходимость подстраивать датчик под разные условия освещения;
- Ну и конечно же, дешевый китайский пластик никоим образом не придает автономной машинке на Arduino хорошей жесткости и надежности конструкции.
В принципе, внести компенсацию в зависимости от уровня освещения можно, но это отдельная история и модификация, которые не входили в задачи базового проекта.
Машинка не врезается в стены, но с 90% вероятностью соберет бампером все ножки стульев и столов в комнате. То есть, с обнаружением более мелких препятствий есть явные проблемы. Соответственно, надо либо увеличивать количество эмиттеров, либо использовать более дорогостоящие модели с большей чувствительностью.
Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!
Источник: