Робот следующий за объектом — Arduino

Интересный и не сложный робот, который движется за объектом определенного цвета.

Для определения положения объекта используется камера смартфона, закрепленного на шасси робота. Можно использовать готовый конструктор, про который я уже писал здесь. Вот список того, что понадобилось автору. За исключением смартфона, стоимость этого робота составила 60$
— Arduino UNO
— Смартфон с Android OS
— Шасси робота
— кабели для подключения
— H мост для двигателей постоянного тока( автор использовал pololu TB6612FNG )
На картинке показано как соединяется TB6612FNG и Arduino Uno

Выводы драйвера и за что они отвечают :
1) GND — ​​Подключите его к GND выводам на Arduino
2) VCC — Напряжение питания логики драйвера. Подключите его к 5V выводе на Arduino.
3) А01 — выходной контакт, который подключен к положительному выводу мотора А.
4) А02 — выходной контакт, который подключен к отрицательному полюсу мотора А
5) B02- выходной контакт, который подключен к отрицательному полюсу мотора В.
6) B01- выходной контакт, который подключен к положительному выводу мотора B
7) VMOT- Вывод напряжения питания двигателей. Подключите его к положительному полюсу батареи. (Для питания двигателей)
8) GND- Подключите его к отрицательной клемме аккумулятора.
9) GND- Подключите его к GND штифтом на Arduino.
10) PWMB- ШИМ контакт драйвера мотора для регулировки скорости мотора B. Подключите его к любому из контактов ШИМ на Arduino и укажите значение скорости для двигателя от 0-255.
11 и 12) и BIN2 BIN1 — Входные контакты драйвера мотора для двигателя B, которые определяют направление вращение мотора В. подключить его к любым двум цифровым выводам Arduino.
13) STBY- Подключите его к любому цифровому выводу. При установке на нем высокого уровня включает драйвер
14 и 15) AIN1 и AIN2- Входные контакты драйвера двигателя для двигателя, которые указывают направление вращение мотора А. Подключите его к любым двум цифровым выводам Arduino.
16) PWMA- ШИМ вывод драйвера двигателя для регулировки скорости мотора А. Подключите его к любому из контактов ШИМ на Arduino и укажите значение скорости для двигателя от 0-255.

Bluetooth модуль HC- 06

На Aliexpress стоит примерно 6$

Как это все работает?

В данном проекте используется Android смартфон со специальными приложением, которое обрабатывает информацию с камеры, чтобы определить, где находится красный объект, вычисляет его координаты и посылает данные по Bluetooth к Arduino. Приложение использует openCV библиотеку для обработки изображения. Это библиотека алгоритмов компьютерного зрения, обработки изображений с открытым исходным кодом. Прочитать о ней вы можете здесь или здесь. Ниже представлен фрагмент кода этого приложения, который проводит эти вычисления. Ниже представлен кусок кода андроид приложения, который проводит эти вычисления

bitmap = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(mRgba, bitmap);
int x = 0;
int y = 0;
int all_x = 0;
int all_y = 0;
while(x < 176) {
while(y < 144){
int pixel = bitmap.getPixel(x, y);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
if(redValue > 200 && blueValue < 70 && greenValue < 70){
points++;
all_x = all_x + x;
all_y = all_y + y;
}
y++;
}
x++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / points;
y_center = all_y / points;
В архиве схема соединения и печатная плата для робота, для тех , кто не хочет покупать Arduino UNO

followbot.zip

[79.22 Kb] (скачиваний: 421)

Что понадобится для сборки:
— Все что упомянуто выше, atmega 8, 128 или 328
— Светодиод,неважно какого цвета
— Линейный стабилизатор на 5в (для варианта без Arduino)
— Разъемы штырьковые M и F

— Вытравленная и просверленная печатная плата (для варианта без Arduino)

— Дрель, паяльник.
— Arduino Uno. Для тех, кто не знает, какие выводы Arduino Uno нужны, в прикрепленном файле описание.

naznachenie-vyvodov-ardunio.zip

[1.91 Kb] (скачиваний: 161)

Программа для Arduino

Программа для Arduino очень простая. В архиве код этой программы.

followbot.zip

[79.22 Kb] (скачиваний: 421)

Программа для телефона

В этом архиве программа для телефона, устанавливается, как обычное приложение, и исходный код этой программы.Импортируйте ее в Android studio, соберите apk файл и установите на смартфон.

Эта программа использует Bluetooth просто для отправки данных. Описание библиотеки (openCV) можете найти в интернете. Автор изготовил печатную плату для atmega 328. Помните об этом если не будете использовать макетную плату, а будете разводить свою печатку:

dlya-smartfona.rar

[5.91 Mb] (скачиваний: 276)

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

Источник: usamodelkina.ru

Оцените статью