Интересный и не сложный робот, который движется за объектом определенного цвета.
Для определения положения объекта используется камера смартфона, закрепленного на шасси робота. Можно использовать готовый конструктор, про который я уже писал здесь. Вот список того, что понадобилось автору. За исключением смартфона, стоимость этого робота составила 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)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
Источник: