查看: 72532|回复: 237
打印 上一主题 下一主题

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

? [复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-11-9 16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 atemphot 于 2015-11-19 09:45 编辑

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


演示视频:












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

除了作为大脑的安卓手机外,网灵机器人还采用了Arduino单片机,用于控制电机舵机和连接传感器模块。




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






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












终上所述,网灵机器人的总体框架原理图是这样的:








Arduino源代码:
wl_rob_arduino_src.zip (6.57 KB, 下载次数: 652)


安卓大脑源代码比较大,超过附件大小限制,可以从网灵极客论坛下载。
支持我的朋友,可以回复留电子邮箱,直接发给你~~~~~~~~

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


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








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

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

#define PIN_UNDEFINED??255

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

#define PIN_D_SERVO_V??9
#define PIN_D_SERVO_H??PIN_UNDEFINED
#define PIN_D_SERVO_L??5??//PIN_UNDEFINED
#define PIN_D_SERVO_R??6??//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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • TA的每日心情
    开心
    2016-10-27 20:32
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    沙发
    发表于 2015-11-9 21:40 | 只看该作者
    沙发~~~
    好赞 ,楼主这么棒,关键是集成了这么多功能。
    刚好这学期有门智能机器人的选修课,就参考这个做些基础的好了。
    楼主快把机器人大脑资料放到我碗里来。邮箱:veraposeidon@gmail.com
    谢谢谢谢

    该用户从未签到

    板凳
    发表于 2015-11-10 00:03 | 只看该作者
    太牛叉了,新人报道。

    该用户从未签到

    地板
    ?楼主| 发表于 2015-11-10 09:13 | 只看该作者
    veraposeidon 发表于 2015-11-9 21:40
    沙发~~~
    好赞 ,楼主这么棒,关键是集成了这么多功能。
    刚好这学期有门智能机器人的选修课,就参考这个做些 ...

    已发到你邮箱,赶紧查收

    该用户从未签到

    5#
    发表于 2015-11-10 17:15 | 只看该作者
    这个机器人好眼熟 好像在某宝上见过 。因萌哒哒的 所以有印象。{:soso_e179:}给赞
  • TA的每日心情
    开心
    2016-10-27 20:32
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    8#
    发表于 2015-11-10 21:11 | 只看该作者
    atemphot 发表于 2015-11-10 09:13
    已发到你邮箱,赶紧查收

    不好意思 楼主我没收到。要不你发我QQ邮箱?
    1107470633@qq.com
  • TA的每日心情
    开心
    2016-6-10 21:07
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9#
    发表于 2015-11-10 22:17 | 只看该作者
    准备带学生弄Arduino ,请楼主发一个源码过来好吗?hdhdzx@126.com
  • TA的每日心情
    奋斗
    2016-12-30 20:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
    发表于 2015-11-11 04:58 来自手机 | 只看该作者
    大牛啊!这个资料一定要弄一整套…请楼主顺便再留个手机给我,有事相商:9@msde.cn
    您需要登录后才可以回帖 登录 | 立即注册 ?

    本版积分规则

    热门推荐

    关于温湿度传感器在LCD显示上的问题
    关于温湿度传感器在LCD显
    我建立了一个程序,想要将dht11传感器得到的数据显示在LCD1602上,但是LCD显的都是乱
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    【Arduino】108种传感器模块系列实验(74)--- 4位LED数码管模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    (开源)ESP8266改装小风扇,app远程控制+天猫精灵控制
    (开源)ESP8266改装小风
    材料准备 [*]USB风扇一个 [*]ESP8266一块 [*]3.3继电器一块 拆解风扇 第一次,没有
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    Copyright ???2015-2016??Arduino中文社区??Powered by?Discuz! ??( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表