目标追踪机器人

标签:arduino Android 机器人

阿三 发布于 2015-07-07 16:00

1.jpg

几周前,我想做个机器人,它能用Android手机控制,实现追踪目标功能。开始时,我在Google中搜索有关资料,发现了一些文章,但没有一篇文章有Android APP的源代码。我觉得这对我来说太难了,所以就放弃了。可我不能忍受想做的东西不能做,于是我重新开始,经过几周艰难的工作,我完成了Android代码和这个项目。

Step 1: 组件

所以组件(除智能手机外)总费用是60美元:

Arduino

安卓智能手机

机器人底盘

连接线

直流电机及支架

蓝牙模块HC-06

如果你想打PCB板,可参考第4步。

Step 2: 工作原理

2.jpg

要让跟随机器人工作,最佳方案是:使用Android APP通过手机摄像头识别红颜色的位置,把该信息通过蓝牙传给ArduinoAPPopenCV库处理图片,通过计算传来的颜色均值,确定红颜色的位置。下面,我给出一段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;


Step 3: 连接

3.jpg

连接图纸如上图所示,我在支架上加了跳线,支持连接PCB板。

Step 4: PCB板(可选)

4副本.jpg

PCB板所需的组件如下:

第一步提及的所有物品

Atmega 8(或128,或328

电阻(1千欧或2千欧)

发光二极管

5v输出的线性稳定器

几个母头

工具:钻床、电烙铁等

Step 5: Arduino编程

Arduino代码很基础,就是从串口获取数据并转化为编号。

请参考附件,注意:下载后需修改后缀名为ino。

附件:

Step 6: Android APP及其源代码

61副本.jpg

下载FollowBot.apk至手机并安装,点击生成的图标即可启动。

我的APP源代码请见附件。APP用蓝牙通信给Arduino发送数据。一开始,我用OpenCV库有点问题,于是我在Internet上阅读了一些资料,很轻松就理解了。如果你理解代码有困难,可以留言或邮件咨询。

.apk文件和APP源代码因为格式不支持不能上传,需要的盆友请加创酷网QQ群423627219,在群文件中下载,文件名为FollowBot。

Step 7: 走起

81副本.jpg
最后,我的跟随机器人运转非常好,我意识到“这对我而言太难了“非常非常糟糕,你呢?
 
阿三2015-07-07 16:31:21
看到这个入门级东西就果断扒了,希望对学习Arduino和APP编程的小盆友有帮助
黎落2016-06-13 11:24:50
这个教程好像不完整,请问有剩下的部分教程吗?

作者

阿三

北京,朝阳

19粉丝 5作品 8随笔
  关注 私信

作者的最新作品


阅读数: 2208