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

网灵机器人采用闲置的安卓旧手机作为机器人的大脑。
这不仅是废物利用的环保理念,而且通过充分利用安卓手机的强大计算能力和硬件资源,让网灵机器人的功能更加有亮点:
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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

芯产品 | 澎湃于芯 海尔博越G42笔记本升级登场
智安邦携手TI实现中国视频智能监控产业创新
倾角传感器N大应用场景详解
秸秆也能制作无人机了?
关于绝缘油介质损耗测试仪的简单介绍
用Arduino和安卓旧手机,DIY远程遥控机器人
格力要约收购长园集团告吹 长园股价崩盘
倒闸操作方式及分类
区块链应用领域中金融和溯源被公认为是最佳的应用场景
圆柱锂电池定制的流程通常分为以下几个步骤
CYB1800差压变送器应用优势介绍
OpenHarmony知识赋能No.29-DAYU200分布式应用开发
VC3远程视频监控车辆定损理赔系统的特点功能及应用分析
将从目标和问题的角度去讨论每种误差度量的有效性
稳压二极管的工作原理及关键参数
究竟是什么原因导致出现了端子线不通电的问题
Lisk数字货币LSK上线ShapeShift,多家中国交易所接受LSK
全功能、低噪声、升压型转换器提供无与伦比的性能和解决方案尺寸
手机市场需求饱和趋向白热化,三星难拿下中国市场
SelectIO该怎么来实现LVDS的详细步骤