羡慕许仙曰过蛇 发表于 2016-10-13 15:48:58

开源DIY,Arduino+旧手机变成视频监控机器人,可异地远程遥控

本帖最后由 羡慕许仙曰过蛇 于 2016-10-19 09:33 编辑

本人花费大半年时间,用Arduino+旧手机 做了一个视频监控机器人,DIY成果分享一下。
说明,项目程序和源代码都开放,3D打印部件的 3DSTL文件和设计源文件也开放,欢迎大家使用!


演示视频:
http://v.youku.com/v_show/id_XMTM3NjQ3MTc5Mg==.html?firsttime=0

http://image.geek-workshop.com/forum/201511/09/161735shq21bwtrwz00bir.jpg

这个机器人的原材料很简单:卡通外形的纸巾盒,车用手机夹,轮子电机,1寸万向轮,然后3D打印件

http://image.geek-workshop.com/forum/201511/09/170740vei7pyhllluuuee7.jpghttp://image.geek-workshop.com/forum/201511/09/170741xsbjdtdjbg4nbo82.jpg

http://image.geek-workshop.com/forum/201511/09/170739m55mlsufingog2ii.jpghttp://image.geek-workshop.com/forum/201511/09/170738egh9rz98hh9epghs.jpg


网灵机器人是特殊的,Ta跟常见的wifi-robot不同。常见的wifi-robot大多采用OpenWRT路由器板子和USB摄像头,而网灵机器人采用闲置的安卓旧手机作为机器人的大脑。
这不仅是废物利用的环保理念,而且通过充分利用安卓手机的强大计算能力和硬件资源,让网灵机器人的功能更加有亮点:
1)无需外接USB摄像头,直接利用安卓手机的高清摄像头,并通过手机强劲的GPU进行视频H.264压缩编码,以便网络传输。
2)利用安卓手机的联网能力,wifi、3G、4G都可以联网。并且集成了网灵的P2P云连接功能,从世界任何地方都可以连接机器人。
3)利用手机计算能力,实现语音识别,用自然语音控制机器人动作。
4)利用手机计算能力,基于OpenCV软件库,实现手势分析和人脸追踪。

除了作为大脑的安卓手机外,网灵机器人还采用了Arduino单片机,用于控制电机舵机和连接传感器模块。
http://image.geek-workshop.com/forum/201511/09/162721n47vnnrq7ylw6dgn.jpg

作为大脑的安卓手机 与 Arduino单片机是通过蓝牙串口(例如市面上常见的HC-06)进行通信的,其通信协议很简单,是基于字符串格式的,Arduino向安卓手机周期性发送传感器读数,安卓手机向Arduino发送控制命令。
http://image.geek-workshop.com/forum/201511/09/162726zdink8hnzllnhznv.jpg


网灵机器人的显著特点是:可以用手机控制端和电脑控制端从异地远程遥控机器人,并实时观看摄像头图像。这个功能的实现是基于网灵的P2P云连接平台,这是网灵多年来积累的底层核心技术。只要机器人接入网络,就可以从世界上的任何角落连接到机器人,无需设置路由器端口,无需做动态域名映射,完全自动穿透NAT内网。
网灵机器人的控制端软件就是 网灵云控制, 它相当于一个“带视频回传的远程遥控手柄”,有一些手柄按键和2个虚拟摇杆,其UI界面是这样的:
http://image.geek-workshop.com/forum/201511/09/162513upmf4zvandnz9256.png

http://image.geek-workshop.com/forum/201511/09/162520cwe9aesushmqazhu.png


终上所述,网灵机器人的总体框架原理图是这样的:
http://image.geek-workshop.com/forum/201511/09/161651bznnviflfclc2ijj.jpg


Arduino源代码:


安卓大脑源代码比较大,超过附件大小限制,可以从网灵极客论坛下载。



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


机器人Arduino周边电路连接就很容易。准备一些3Pin杜邦线和导电线,按照下面的电路图连接相应的电路模块:

http://image.geek-workshop.com/forum/201511/09/162840nkisac34xx5acach.jpg


可以看出,Arduino控制板的供电是由L298N电机控制板的5V输出的。
电压检测模块连接到Arduino的模拟口A5;头部舵机连接到Arduino的数字口D9;
你后续也可以扩展连接更多的传感器,比如:
气体传感器MQ2连接到模拟口A4,温湿度传感器连接到数字口D8,
这些都是在Arduino的程序代码中预定义好的,需要跟代码对应:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include <Servo.h>
#include <dht.h>

//模拟IO口和数字IO口的定义

#define PIN_UNDEFINED255

#define PIN_A_VOLTAGE5//电池电压传感器
#define PIN_A_MQX      4//气体传感器,MQ2,MQ135

#define PIN_D_SERVO_V9
#define PIN_D_SERVO_HPIN_UNDEFINED
#define PIN_D_SERVO_L5//PIN_UNDEFINED
#define PIN_D_SERVO_R6//PIN_UNDEFINED
#define PIN_D_DHT      8//PIN_UNDEFINED//DHT11温湿度传感器
#define PIN_D_RELAY    PIN_UNDEFINED//一路继电器
#define PIN_D_RED      PIN_UNDEFINED//红外人体感应传感器
#define PIN_D_LEDA   PIN_UNDEFINED//LED指示灯A
#define PIN_D_LEDB   PIN_UNDEFINED//LED指示灯B

//PT2272 Recv,D0->D3用模拟IO口实现,因为Arduino UNO的数字IO口不够用
#define PIN_D_2272VT   4
#define PIN_A_2272D0   0
#define PIN_A_2272D1   1
#define PIN_A_2272D2   2
#define PIN_A_2272D3   3

//315M、433M RF Send,控制智能开关、智能插座、电动窗帘。。。
#define PIN_D_315SEND   7//PIN_UNDEFINED
#define PIN_D_433SEND   PIN_UNDEFINED

//左中右三个方向的壁障传感器pin定义
#define PIN_D_BIZ_C   PIN_UNDEFINED
#define PIN_D_BIZ_L   PIN_UNDEFINED
#define PIN_D_BIZ_R   PIN_UNDEFINED

//L298N电机驱动板的控制pin
//舵机用了9号PWM,L298N用10,11号PWM的话,会导致10号PWM失效!!!
// motor A
#define dir1PinA    2
#define dir2PinA    10
#define speedPinA   3
// motor B
#define dir1PinB    12
#define dir2PinB    13
#define speedPinB   11


++++++++++++++++++++++++++++++++++++++++++++++++++++++++
安卓大脑的apk安装包:http://ykz.e2eye.com/rob3dfiles/MobileCamera.apk
安卓大脑程序员:http://ykz.e2eye.com/rob3dfiles/wl_rob_android_src.zip
如果有不会刷的同学,后期我会直接把程序刷进去,让没有电子基础的同学也能DIY,


东拉西扯 发表于 2016-10-13 17:55:20


好贴顶起来……

yxs88q 发表于 2019-3-18 06:26:14

NB必须顶一个

南行者 发表于 2019-3-15 06:59:29

不管三七二十一还是九九八十一,收藏先!

东拉西扯 发表于 2019-3-14 10:35:23


好教程,收藏了,{:1_12:}{:1_12:}

godsiva 发表于 2019-3-10 09:05:04

买来小车底盘,正不知道要怎么玩呢

jinnyzhou 发表于 2019-2-21 20:36:55

支持,学习,谢谢

xxoo01 发表于 2019-2-17 10:56:54

牛逼留个位以后学习

哈哈嘿 发表于 2019-1-2 22:02:22

东西准备全了,准备照着做一个玩玩

jxmodel 发表于 2018-12-24 09:31:07

一定要顶一下,收藏了

zsx4mp 发表于 2018-12-20 09:30:57

支持原创,点赞{:1_1:}

sjzzhsx 发表于 2016-10-13 15:58:15

好创意,技术

羡慕许仙曰过蛇 发表于 2016-10-13 16:01:31

sjzzhsx 发表于 2016-10-13 15:58 static/image/common/back.gif
好创意,技术

自己做的话,估计100元以内。手机功能强大,无线网络,3g4g网络,高清摄像头,都用旧手机的,价格就便宜了,支持语音控制,手势控制。

蓝天航模科技 发表于 2016-10-13 16:12:05

厉害,学习了。。

我是大白 发表于 2016-10-13 16:16:26

好东西

羡慕许仙曰过蛇 发表于 2016-10-13 16:21:11

智能手机要求安卓2.2以上系统带蓝牙,

竹蜻蜓 发表于 2016-10-13 17:07:54

好贴顶起来……

羡慕许仙曰过蛇 发表于 2016-10-13 17:13:09

别顶太高,我受不了了,再顶就……

大爱猩猩 发表于 2016-10-13 17:36:38

666666666

江南小丸子 发表于 2016-10-13 18:06:13

壳子可爱来

meyas 发表于 2016-10-13 18:13:48

这个好玩,可以做一个试试

依然爱你生活 发表于 2016-10-13 18:34:44

这个厉害。好玩

meyas 发表于 2016-10-13 18:48:54

貌似这软件要按年付费?看不懂这软件优先级、至尊级啥区别

yaozicao 发表于 2016-10-13 19:28:54

真的很牛逼啊,我付钱可以给我做一个不?

老晋 发表于 2016-10-13 20:45:13

好手艺!

特别佩服会写程序的。

woshinlb 发表于 2016-10-13 22:02:19

留个记号,这个正是自己想要的

wurenji 发表于 2016-10-13 22:23:27

淡定,淡定,淡定……

大雨 发表于 2016-10-13 23:15:44

怎么能不顶呢?

tjcdq 发表于 2016-10-13 23:37:54

好教程,收藏了,
页: [1] 2 3 4 5 6
查看完整版本: 开源DIY,Arduino+旧手机变成视频监控机器人,可异地远程遥控