很久之前我就想做個(gè)機(jī)器人當(dāng)我的跟班,它能用Android手機(jī)控制,實(shí)現(xiàn)追蹤目標(biāo)功能。在網(wǎng)上找到一個(gè)大神的作品參考,經(jīng)過(guò)幾周的掙扎,我終于完成了我夢(mèng)想中的這個(gè)項(xiàng)目,現(xiàn)在把大神的作品分享出來(lái):
Step 1: 組件
所以組件(除智能手機(jī)外)總費(fèi)用是60美元:
如果你想打PCB板,可參考附件制作步驟。
Step 2: 工作原理
要讓跟隨機(jī)器人工作,最佳方案是:使用Android APP通過(guò)手機(jī)攝像頭識(shí)別紅顏色的位置,把該信息通過(guò)藍(lán)牙傳給Arduino,APP用openCV庫(kù)處理圖片,通過(guò)計(jì)算傳來(lái)的顏色均值,確定紅顏色的位置。下面,我給出一段Android代碼,展示其工作原理(完整代碼詳見(jiàn)附件)。
view plaincopy to clipboardprint?
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;
具體的連接制作過(guò)程以及打樣等詳見(jiàn)附件吧,都寫(xiě)出來(lái)太啰嗦了!
最后,跟隨機(jī)器人效果非常好,達(dá)到了預(yù)期中跟屁蟲(chóng)的效果!