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

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
Что понадобится для сборки:
- Все что упомянуто выше, atmega 8, 128 или 328
- Светодиод,неважно какого цвета
- Линейный стабилизатор на 5в (для варианта без Arduino)
- Разъемы штырьковые M и F
- Вытравленная и просверленная печатная плата (для варианта без Arduino)
- Дрель, паяльник.
- Arduino Uno. Для тех, кто не знает, какие выводы Arduino Uno нужны, в прикрепленном файле описание.
Программа для Arduino
Программа для Arduino очень простая. В архиве код этой программы.
Программа для телефона
В этом архиве программа для телефона, устанавливается, как обычное приложение, и исходный код этой программы.Импортируйте ее в Android studio, соберите apk файл и установите на смартфон.
Эта программа использует Bluetooth просто для отправки данных. Описание библиотеки (openCV) можете найти в интернете. Автор изготовил печатную плату для atmega 328. Помните об этом если не будете использовать макетную плату, а будете разводить свою печатку:
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.