0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Arduino和安卓旧手机,DIY远程遥控机器人

454398 来源:互联网 作者:佚名 2015-11-16 11:19 次阅读

网灵机器人采用闲置的安卓旧手机作为机器人的大脑。

这不仅是废物利用的环保理念,而且通过充分利用安卓手机的强大计算能力和硬件资源,让网灵机器人的功能更加有亮点:

1)无需外接USB摄像头,直接利用安卓手机的高清摄像头,并通过手机强劲的GPU进行视频H.264压缩编码,以便网络传输。

2)利用安卓手机的联网能力,wifi、3G、4G都可以联网。并且集成了网灵的P2P云连接功能,从世界任何地方都可以连接机器人。

3)利用手机计算能力,实现语音识别,用自然语音控制机器人动作。

4)利用手机计算能力,基于OpenCV软件库,实现手势分析和人脸追踪。

原理介绍:

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

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

网灵机器人的显著特点是:可以用手机控制端和电脑控制端从异地远程遥控机器人,并实时观看摄像头图像。这个功能的实现是基于网灵的P2P云连接平台,这是 网灵多年来积累的底层核心技术。只要机器人接入网络,就可以从世界上的任何角落连接到机器人,无需设置路由器端口,无需做动态域名映射,完全自动穿透 NAT内网。

网灵机器人的控制端软件就是 网灵云控制, 它相当于一个“带视频回传的远程遥控手柄”,有一些手柄按键和2个虚拟摇杆,其UI界面是这样的:


机器人手势识别和人脸追踪是基于OpenCV开发的,源程序在Android代码的jni目录,只是搭了一个框架,抛砖引玉,欢迎创客们改进和扩展。。。

原材料和组件

1)方形卡通宠物外观的纸巾盒 1个(淘宝上有售)

2)万能手机夹 1个(淘宝上有售)

3)网灵机器人3D打印件 1套

4)Arduino控制板 + 蓝牙小板 1块

5)L298N电机驱动模块 1块

6)标准舵机 1个

7)电池电压传感器模块 1个

8)可充电锂电池 1块

9)65mm轮子 + 电机(转速不要太快,大概为50转每分钟) 2套

10)一寸万向轮 1个

11)开关 1个

12)M3x30mm 长螺丝 4根,M3x25mm螺丝若干,M3x8mm螺丝若干,自攻螺丝若干,铜柱长螺丝 2根,M3螺母若干

13)杜邦线若干,导电线若干

工具

电烙铁,电钻,502胶,电胶布,钳子,改锥,小刀

组装步骤

首先,将纸巾盒的上下两部分揭开,分为上面的盒子和下面的底盖,先用盒子。

将3D打印件--手机夹左支架 和 手机夹右支架 用自攻螺丝固定到盒子上,如下图,注意左右支架都要固定到盒子的最边缘,否则后面步骤将没有足够的宽度放置手机夹。

准备好标准舵机,尺寸 40.7*19.7*42.9mm

用2个自攻螺丝把舵机固定到‘手机夹左支架’上面,如下图:

从正面看看,

下面开始弄万能手机夹,先把里面的一层透明塑料板拆下来,透明塑料板后面要用到,别扔了。

把一侧的2片可活动塑料片调整一下位置,下方的一片将会固定到‘手机夹右支架’上。

将3D打印件--‘手机夹联轴器’ 插到手机夹的凹槽处,如下图所示:

注意,舵机配带的一字摆臂是事先用自攻螺丝 固定到‘手机夹联轴器’上,这个一字摆臂是将要插到舵机的转轴上的。

准备将手机夹安放到 左右2个支架上去。一边是:一字摆臂插到舵机的转轴上。

另一边是:用2个自攻螺丝将‘手机夹右支架’和手机夹的下方可活动塑料片 紧紧固定。

到此,盒子部分就准备好了。下面开始弄底盖部分。

用M3x25mm的长螺丝 将2个3D打印件‘底盘车轮支架’固定到底盖。

然后把3D打印件‘底盘万向轮支架’也固定到底盖。

反面看是这样的:

用电钻在底盖上钻2个孔:

一个直径20mm, 用于装开关;

另一个直径9mm,用于装充电接口;

然后用M3x30mm的长螺丝把2个车轮(带电机)安装到‘底盘车轮支架’上,两对电机线4根从底盖穿孔引到里面去;

用M3x8mm的螺丝把万向轮安装到‘底盘万向轮支架’上。

在里面用螺丝固定3D打印件‘电池固定盒’,

然后安装L298N电机驱动板,如下图所示:

把2个长的M3铜柱螺丝装上去,然后把之前拆下来的手机夹透明塑料板安装到铜柱螺丝上,用2个螺母固定。

透明塑料板上的螺丝孔可以用电路铁或电钻弄出来。

把“Arduino+蓝牙”控制板用螺丝固定到透明塑料板上,

锂电池安装到‘电池固定盒’中:

换个角度看看:

把电池电压检测模块小板 也安装上去:

把锂电池的DC母头线安装到 底盖的充电孔中,用502胶固定;

把20mm直径的开关安装到 底盖的开关孔中。

到此,底盖部分要装的也装好了。(当然,后续如果你要往Arduino控制板上连接传感器模块的话,随时可以揭开盒子连接线路!)

准备把纸巾盒上下两部分盖上:

OK,物理结构就组装完毕了,大功告成!!!

最后还可以在左右两边再装上2个舵机,固定2个小手臂,机器人看起来会更萌。

电子电路模块连接

当你把网灵机器人的物理结构组装好后,那电路连接就很容易了。准备一些3Pin杜邦线和导电线,按照下面的电路图连接相应的电路模块:

可以看出,Arduino控制板的供电是由L298N电机控制板的5V输出的。

电压检测模块连接到Arduino的模拟口A5;头部舵机连接到Arduino的数字口D9;

你后续也可以扩展连接更多的传感器,比如:

气体传感器MQ2连接到模拟口A4,温湿度传感器连接到数字口D8,

这些都是在Arduino的程序代码中预定义好的,需要跟代码对应:

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

#include 《Servo.h》

#include 《dht.h》

//模拟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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28191

    浏览量

    206504
  • L298N
    +关注

    关注

    21

    文章

    224

    浏览量

    78627
  • 安卓
    +关注

    关注

    5

    文章

    2120

    浏览量

    57016
  • Arduino
    +关注

    关注

    187

    文章

    6464

    浏览量

    186639
收藏 人收藏

    评论

    相关推荐

    DIY机器人

    DIY机器人
    发表于 08-15 22:32

    手机尚未机软件

    急求小车上位机软件,正在DIY一个手机控制的遥控
    发表于 03-24 20:55

    远程遥控的类人机器人系统

    远程遥控的类人机器人系统
    发表于 04-14 00:57

    如何远程控制机器人

    最近构思想做一个简单的机器人,这个机器人安装有摄像头、机械手且通过无线控制行走和动作,采用nrf24l01+无线模块来实现通讯,可以远程结合摄像头来操作
    发表于 10-25 13:31

    简易DIY——巧用手机做智能机器人

    Spider以前已经被改装过好几次,而这一次,玩家们为其装备以智能手机为载体的openCV(图形滤镜)app应用。当手机app发现玩家所选择的物体以后,会向
    发表于 03-03 17:26

    【分享】DIY android版手机机器人

    ``DIY手机机器人在TED上看到iphone版手机机器人romo,如图1.图1 romoiphone
    发表于 08-14 10:12

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

    ` 本帖最后由 atemphot 于 2015-11-23 11:49 编辑 本人花费大量时间,Arduino+手机 做了一个视频监控机器人
    发表于 11-09 17:18

    如何做个萌萌哒的机器人!!

    自然语音控制机器人动作。利用手机计算能力,基于OpenCV软件库,实现手势分析和人脸追踪。除了作为大脑的
    发表于 11-13 15:38

    机器人arduino,DIY

    4自由度小机器人,容易DIY视频1视频2http://v.youku.com/v_show/id_XMTcwMzE3Mzg0NA==.html
    发表于 09-06 22:53

    手机 Arduino的巅峰之作—视频监控机器人 ,异地远程遥控

    )进行通信的,其通信协议很简单,是基于字符串格式的,Arduino手机周期性发送传感器读数,
    发表于 09-27 14:01

    Arduino调试Rapiro机器人

    要注意,舵机上电后是不能强行外力扭动的,不然舵机必坏! 附件中有英文版的组装图。 机器人组装完后,开始调试打开电脑的Arduino IDE软件(我不专门介绍安装了,自己度娘),mi
    发表于 08-10 20:19

    手机远程控制

    电子发烧友网站提供《手机远程控制.zip》资料免费下载
    发表于 07-26 09:22 3次下载
    <b class='flag-5'>用</b><b class='flag-5'>安</b><b class='flag-5'>卓</b><b class='flag-5'>手机</b><b class='flag-5'>远程</b>控制

    智能手机控制的DIY Arduino机器人

    电子发烧友网站提供《由智能手机控制的DIY Arduino机器人.zip》资料免费下载
    发表于 11-24 11:41 1次下载
    由<b class='flag-5'>安</b><b class='flag-5'>卓</b>智能<b class='flag-5'>手机</b>控制的<b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b><b class='flag-5'>机器人</b>

    DIY Arduino蓝牙控制机器人

    电子发烧友网站提供《DIY Arduino蓝牙控制机器人.zip》资料免费下载
    发表于 06-27 14:59 1次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b>蓝牙控制<b class='flag-5'>机器人</b>

    DIY+Arduino控制迷宫游戏

    电子发烧友网站提供《DIY+Arduino控制迷宫游戏.zip》资料免费下载
    发表于 06-29 14:53 0次下载
    <b class='flag-5'>DIY</b><b class='flag-5'>安</b><b class='flag-5'>卓</b>+<b class='flag-5'>Arduino</b>控制迷宫游戏