Интересно и не сложно роботъткойто се движи зад обект с определен цвят.
За определяне позицията на обекта се използва смартфон камера, монтирана върху шасито на робота. Можете да използвате готов конструктор, за който вече писах тук, Ето списък на това, от което се е нуждаел авторът. С изключение на смартфона, цената на този робот беше 60 долара
- Arduino UNO
- Смартфон с Android OS
- Шаси на робот
- кабели за свързване
- H мост за двигатели с постоянен ток (автор използва pololu TB6612FNG)
На снимката се вижда как TB6612FNG и Arduino Uno се свързват
Заключенията на водача и за какво отговарят:
1) GND - Свържете го с GND щифтовете на Arduino
2) VCC - Захранващо напрежение на логиката на водача. Свържете го към 5V щифт на Arduino.
3) A01 - изходен контакт, който е свързан към положителния извод на двигател A.
4) A02 - изходен контакт, който е свързан към отрицателния полюс на двигателя A
5) B02 - изходен контакт, който е свързан към отрицателния полюс на двигател B.
6) B01 - изходен контакт, който е свързан към положителния извод на двигател B
7) VMOT - Изходно напрежение на двигателите. Свържете го към положителния полюс на батерията. (За захранване на двигателите)
8) GND - Свържете го към отрицателния извод на батерията.
9) GND - Свържете го с GND щифта на Arduino.
10) PWMB - PWM щифт на драйвера на двигателя, за да регулирате скоростта на двигателя B. Свържете го към някой от PWM щифтовете на Arduino и задайте стойност на скоростта на двигателя от 0-255.
11 и 12) и BIN2 BIN1 - входни контакти на драйвера на двигателя за двигател B, които определят посоката на въртене на двигател B. Свържете го с всички две цифрови щифтове на Arduino.
13) STBY - Свържете го към всеки цифров изход. Когато е инсталиран на високо ниво, той включва драйвер
14 и 15) AIN1 и AIN2 - Входни контакти на двигателя на двигателя, които показват посоката на въртене на двигателя А. Свържете го към всички два цифрови пина на Arduino.
16) Изход PWMA-PWM на драйвера на двигателя за регулиране на скоростта на двигателя А. Свържете го към някой от PWM щифтовете на Arduino и задайте стойността на скоростта на двигателя от 0-255.
Bluetooth модул HC-06
Aliexpress струва около 6 долара
Как работи всичко това?
Този проект използва смартфон Android със специално приложение, което обработва информация от камерата, за да определи къде е червеният обект, изчислява координатите му и изпраща данни чрез Bluetooth до Arduino.Приложението използва OpenCV библиотеката за обработка на изображения. Това е библиотека от алгоритми за компютърно зрение, обработка на изображения с отворен код. Можете да прочетете за него или. По-долу е фрагмент от код за това приложение, което извършва тези изчисления. По-долу е част от кода на приложението за 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;
докато (x <176) {
докато (y <144) {
int pixel = bitmap.getPixel (x, y);
int redValue = Color.red (пиксел);
int blueValue = Color.blue (пиксел);
int greenValue = Color.green (пиксел);
ако (redValue> 200 && blueValue <70 && greenValue <70) {
точки ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / точки;
y_center = all_y / точки;
В архива, схемата на свързване и печатната платка за робота, за тези, които не искат да купят Arduino UNO
Какво е необходимо за сглобяване:
- Всичко, което е споменато по-горе, atmega 8, 128 или 328
- LED, без значение какъв цвят
- 5V линеен стабилизатор (за версия без Arduino)
- щифтови конектори M и F
- Издълбани и пробити печатни платки (за версия без Arduino)
- Свредла, поялник.
- Ардуино Уно. За тези, които не знаят какви изводи са необходими Arduino Uno, в приложеното описание на файла.
Програма за Ардуино
Програмата за Arduino е много проста. Архивният код за тази програма.
Програма за телефон
В този архив е инсталирана програмата за телефона, като обикновено приложение и изходният код на тази програма. Импортирайте го в Android студио, съберете apk файла и го инсталирайте на вашия смартфон.
Тази програма използва Bluetooth само за изпращане на данни. Описанието на библиотеката (openCV) може да бъде намерено в Интернет. Авторът направи печатна платка за atmega 328. Запомнете това, ако няма да използвате табло, но ще разпространите вашия печат: