Автономная "смарт" машина на Arduino

Автономная "смарт" машина на Arduino

Основная идея проекта - создать недорогую автономную четырехколесную подвижную платформу. В проекте используется логика на базе Arduino, недорогая радиоуправляемая машина, источник питания 9 вольт. В качестве датчиков обратной связи используется инфракрасный передатчик.

Так как оборудование недорогое, можно расценивать эту статью исключительно как общую инструкцию и первый шаг для дальнейших модификаций вашей автономной четырехколесной платформы.

Необходимое оборудование и материалы которые можно купить дешево на Алиэкспресс (ссылки кликабельны)

Компоненты для модификации радиоуправляемой машинки Радиоуправляемая машинка

*Обратите внимание: если в вашей машине установлена большая плата контроллера, то это, скорее всего, чип TX2 или RX2. Если это так, то вы можете сэкономить немного денег и использовать для двигателей встроенные контроллеры. Хороший пример (на английском языке!) есть здесь.

Разбираем машинку

Ваш первый шаг - разобрать машинку. Снимите корпус и извлеките все платы из машинки. Моторы не трогаем. В проекте нам понадобятся родные шасси, колеса и моторы.

Разобранная машинка

Подготавливаем сенсоры

Подготавливаем электронику. Для начала припаяйте резистор на 100 Ом к одному из контактов на вашем ИК передатчике. Припаиваем провода к другой ноге резистора и ноге датчика. После этого припаиваем два провода к ногам вашего ИК приемника.

ИК-передатчик

Устанавливаем Arduino и датчик

В корпусной части машинки надо сделать отверстия под крепеж вашего контроллера Arduino. Отверстия под крепеж зависят от габаритов подвижной платформы машинки. В данном конкретном случае плата была расположена "перпендикулярно" несущей системе. Подобное расположение удобно еще и тем, что расстояния от двигателей передней и задней подвески до пинов платы примерно одинаковое.

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

Разобранная четырехколесная платформа Машинка с Arduino

Переходим к следующему шагу.

Питание

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

Крона для питания машинки Установка батарейки на машинку

Подключение к Arduino

С подключением можно разобраться и на основании фото. Но на всякий случай, ниже приведена схема подключения в текстовой форме.

Не забывайте, что позитивная нога светодиода - более длинная. 

Arduino и мотор шилд на машинке Подключение Arduino и мотор шилда к машинке

ИК светодиод

Позитивный контакт - 5v

Отрицательный контакт - Ground

Сенсор

Позитивный контакт - Analog pin 5

Негативный контакт - Ground

Двигатель

Позитивный контакт - Channel A +

Негативный контакт - Мотор шилд Channel A -

Двигатель для поворота

Позитивный контакт - Мотор шилд Channel B +

Негативный контакт - Мотор шилд Channel B -

9v

Позитивный контакт - Мотор шилд Vin

Негативный контакт - Мотор шилд Gnd

Программа Arduino

Учитывая специфику проекта, вам надо внести в приведенный ниже базовый скетч достаточно много изменений, которые зависят от размера машинки и колес, скорости вращения колес, веса авто, освещения окружающей среды.

int irsensor = A5;

int motorspeed;

int run = 0;

int measure = 1;

int ambientir = 0;

int distance;

void setup() {

//настройка канала A (Channel A)

pinMode(12, OUTPUT); //инициализация контакта Motor Channel A

pinMode(9, OUTPUT); //Инициализация контакта тормоза - Brake Channel A

pinMode(irsensor, INPUT);

digitalWrite(irsensor, HIGH);

Serial.begin(9600);

}

void loop(){

if(run == 0)

{

delay(1000);

do{

ambientir = ambientir + analogRead(irsensor);

delay(1000);

measure = measure + 1;

}

while(measure < 10);

ambientir = ambientir / 10;

run = run +1;

}

distance = analogRead(irsensor);

if(distance < ambientir - 50){

digitalWrite(12, HIGH); //Обеспечиваем обратное направление вращения ротора на Channel A

digitalWrite(9, LOW); //Отключаем тормоз на Channel A

analogWrite(3, 100); //Вращаем ротор мотора на Channel A на половине максимальных оборотов

}

if(distance > ambientir - 50){

digitalWrite(12, LOW);

digitalWrite(9, LOW);

analogWrite(3, 100);

}

Serial.println(distance);

}

Приведенный выше костяк программы для Arduino можно (и даже нужно!) дорабатывать под вашу конкретную конструкцию, но общий концепт вы должны были уловить.

Результат, тестирование и дальнейшие варианты модификаций

Как видите на фото, оригинальный корпус машинки был окрашен в бежевый цвет и установлен на стойках на подвижную четырехколесную платформу.

Корпус машинки готовая смарт машинка

После тестирования разработанной конструкции можно выделить следующие проблемы:

  • Ограниченный диапазон чувствительности сенсора;
  • Проблемы, связанные со скоростью машины, а именно - невозможность быстрой остановки;
  • Необходимость подстраивать датчик под разные условия освещения;
  • Ну и конечно же, дешевый китайский пластик никоим образом не придает автономной машинке на Arduino хорошей жесткости и надежности конструкции.

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

Машинка не врезается в стены, но с 90% вероятностью соберет бампером все ножки стульев и столов в комнате. То есть, с обнаружением более мелких препятствий есть явные проблемы. Соответственно, надо либо увеличивать количество эмиттеров, либо использовать более дорогостоящие модели с большей чувствительностью.


Так же не забываем о экономии при покупке товаров на Алиєкспресс с помощью кэшбэка 

Для веб администраторов и владельцев пабликов  главная страница ePN

Для пользователей покупающих на Алиэкспресс с быстрым выводом % главная страница ePN Cashback

Удобный плагин кэшбеэка браузерный плагин ePN Cashback

  • Автономная "смарт" машина на Arduino

Похожие статьи

Arduino - что это такое? Популярно для начинающих

Arduino - что это такое? Популярно для начинающих

Arduino это недорогая, доступная в смысле покупки электронная плата с микроконтроллером и выводами входов-выходов. Arduino выпускаются в различных версиях, но поддерживают один и тот же, простой язык программирования. Огромный успех Ардуино, с уважением к другим микроконтроллерам, связан с тем, что аппаратное и программное обеспечение были опубликованы в открытом бесплатном для общего пользования виде: вы можете читать, изучать и даже расширять его возможности как в плане программного обеспечения, так и с точки зрения аппаратных средств. Вся информация об Ардуино доступна под лицензией "Creative Commons Attribution-ShareAlike 3.0 License".

Arduino и шаговый двигатель

Arduino и шаговый двигатель

Перед началом очередного проекта на Arduino, было решено использовать шаговый двигатель Nema 17 из-за отличного соотношения цена/качество. Перед подключением Nema 17, за плечами был определенный опыт работы с шаговиком 24byj48 (даташит). Управлялся он и с помощью Arduino, и с помощью Raspberry pi, проблем не возникало. Основная прелесть этого двигателя - цена (около 3 долларов в Китае). Причем, за эту сумму вы приобретаете двигатель с драйвером в комплекте. Согласитесь, такое можно даже и спалить, не особо сожалея о содеянном.

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

1. Управляем маленькими моторчиками

Управление маленьким двигателем может быть может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень - заняться управлением двигателями при помощи транзисторов.

Подключим миниатюрный вибромоторчик к нашему Arduino.

Подключаем к Arduino купюроприёмник  ,вендинговый автомат своими руками  ?

Подключаем к Arduino купюроприёмник ,вендинговый автомат своими руками ?

Полезная статья с некими наработками из "интырнетов" для согласования и подключения купюрников к Ардуино .

В данном материале мы рассмотрим примеры подключения, код , а так же вариации купюроприёмников и протоколы подключения 




Подключаем к ардуино датчик сердечного ритма и Oled дисплей \ Arduino Heart Rate Monitor

Подключаем к ардуино датчик сердечного ритма и Oled дисплей \ Arduino Heart Rate Monitor

Этот простой и недорогой проект основан на плате анализатора MAX30100 , для визуализации использован  0,91-дюймовый OLED-дисплей, чтобы сообщать о частоте сердечных сокращений и уровне оксигенации.

Оба используемых устройства имеют двухпроводной интерфейс I2C что сокращает количество проводов для подключения и так же упрощает схему .

Теги: Автономная "смарт" машина на Arduino