目标追踪机器人
标签:arduino Android 机器人
阿三 发布于 2015-07-07 16:00
几周前,我想做个机器人,它能用Android手机控制,实现追踪目标功能。开始时,我在Google中搜索有关资料,发现了一些文章,但没有一篇文章有Android APP的源代码。我觉得这对我来说太难了,所以就放弃了。可我不能忍受想做的东西不能做,于是我重新开始,经过几周艰难的工作,我完成了Android代码和这个项目。
Step 1: 组件
所以组件(除智能手机外)总费用是60美元:
Arduino
安卓智能手机
机器人底盘
连接线
直流电机及支架
蓝牙模块HC-06
如果你想打PCB板,可参考第4步。
Step 2: 工作原理
要让跟随机器人工作,最佳方案是:使用Android APP通过手机摄像头识别红颜色的位置,把该信息通过蓝牙传给Arduino,APP用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; 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: 连接
连接图纸如上图所示,我在支架上加了跳线,支持连接PCB板。
Step 4: PCB板(可选)
打PCB板所需的组件如下:
第一步提及的所有物品
Atmega 8(或128,或328)
电阻(1千欧或2千欧)
发光二极管
带5v输出的线性稳定器
几个母头
工具:钻床、电烙铁等
Step 5: Arduino编程
Step 6: Android APP及其源代码
下载FollowBot.apk至手机并安装,点击生成的图标即可启动。
我的APP源代码请见附件。APP用蓝牙通信给Arduino发送数据。一开始,我用OpenCV库有点问题,于是我在Internet上阅读了一些资料,很轻松就理解了。如果你理解代码有困难,可以留言或邮件咨询。
.apk文件和APP源代码因为格式不支持不能上传,需要的盆友请加创酷网QQ群423627219,在群文件中下载,文件名为FollowBot。