WiFi是一种无线局域网运用技术,其出现以来,凭借组网方便、易于扩展等特点,有着广泛的应用前景。而无线接入和高速传输是WiFi的主要技术优点,WiFi技术与机器人技术的结合便产生了WiFiRobot。WiFi Robot是集远程无线通讯、音视频传输、数据采集、多向机械云台、灯光控制、环境检测、超声波测距、红外壁障、超声波领航、动力四驱、摄像头云台等功能为一体的多功能智能遥感机器人,以WiFi网络作为数据传输平台,以高速MCU为数据处理中心,可通过电脑、智能手机、平板电脑等设备进行远程控制,并可拓展更多功能。
1 基本原理
设计的机器人所要实现的功能为:操作员在操作终端通过WiFi无线网络连接到小车内置的WiFi模块上,并向其发出相关操作指令,WiFi模块接收指令并传递给内置的单片机,单片机通过控制电路让机器人执行相应的指令;同时,安装在机器人上的各种传感器和摄像头可以通过WiFi网络将数据反向传递给操作终端,从而实现上下行控制及双向通信,以便操作员实时了解机器人周围的环境,并根据环境情况发出指令控制机器人执行特定的任务,实现交互式操作,图1为系统整体实现框图。
2 硬件设计
硬件系统由车体部分、路由器、摄像头及云台、驱动板、红外壁障、车灯部分等构成。
(1)车体部分。车体部分主要由4个12 V/120转直流电机和电池组构成,电机两两并联,相当于驱动两个电机。为方便电池充放电,设计了充放电电路,只需拨动开关即可实现充放电操作。电池组电源12 V,可多个并联使用,为机器人提高持久动力。
(2)摄像头及云台。摄像头选择高质量高清摄像头进行监控,摄像头满足0°~180°水平,0°~180°上下旋转,可以远程打开或关闭。摄像头型号为索尼PS2,通讯接口为USB协议。云台由2个MG995数字舵机及其他辅助材料构成。
(3)路由器(WiFi模块)。WiFi模块采用TP—LINK全新推出的150 Mbit·s-1迷你型3G无线路由器。该路由器具有尺寸小,供电电压低的特点。其供电电压只有5 V,且支持OpenWrt。OpenWrt是一个基于Linux的开源路由固件,提供了一个完全可写的文件系统及软件包管理,对支持OpenWrt的路由器刷机后,其相当于一个Linux小系统。路由器选择OpenWrt作为操作系统,将USB摄像头采集的现场图片发给远端的PC控制终端,并将上位机发出的命令通过串口转发给单片机控制系统。
(4)驱动模块。控制板主要包括电源模块、电机驱动、舵机驱动、下载串口、单片机电路、红外壁障、车灯控制以及数据通信接口等。在此主要介绍电机驱动和舵机驱动两个驱动模块。电机驱动采用英飞凌公司的BTS7960直流电刷电机驱动芯片,其具有大电流MOSFET半桥结构。芯片具有较高的集成度和足够的输出能力,并在能耗方面具有优势。在集成化和小型化的电机控制系统中,适合作为理想的电机驱动芯片。
图2为BTS7960与单片机组成的H电机驱动单元。由于所采用驱动芯片是半桥,因此需要采用两片以构成全桥实现电机的正反转。
单片机产生2路PWM输出作为两片BTS7960的控制信号,同时要求PWM0、PWM1不能同时为高电平。采用定时器输出硬件PWM脉冲,使得单片机CPU只在改变PWM占空比时参与运算,这样可大幅减轻系统运算负担和PWM软件编程成本。 线性稳压器具有输出电压恒定或可调、稳压精度高的优点,但是由于其线性调整工作方式在工作中会造成较大的“热损失”,导致其电源利用率不高、工作效率低下,不易达到便携式设备对低功耗的要求。因此为保证较高的电源利用率,舵机驱动采用LM2596开关型稳压芯片实现,它可以提供3 A以上电流,驱动强劲。图3给出了舵机驱动方案。
由于舵机型号为MG995,其工作电压为5.0 V~7.0 V。因此舵机驱动芯片选择了可调LM2596-ADJ芯片,其输出电压Vout=Vref(1.0+R2/R1),其中,Vref=1.23 V为芯片内部参考电压。
3 软件设计
软件部分是机器人智能化的体现,它控制WiFiRobot所有的运行状态。整个软件系统体系结构如图4所示。
操作系统采用OpenWrt,此部分在路由器刷机部分完成,主要完成视频采集、数据传输、转发等功能。上位机软件控制灯光控制、拍照、实时控制机器人运动等行为。下位机软件通过接收来自上位机的命令,从而执行相应操作。而连接上位机和下位机之间的纽带就是通信协议,软件部分包括通信协议,客户端控制软件和下位机软件。在此主要介绍通信协议和上位机的开发。
3.1 通信协议
上位机采用数据包格式传送指令,也可以采用单字符的形式发送,由于单字符通信方式干扰较大,因此采用数据包格式传送指令,包头用OXFF,包尾用OXFF,无校验位。上位机利用无线网卡通过Socket发送数据包到路由器,路由器通过解包机制把数据包解开,通过串口发送到单片机并通过控制模块执行相关操作。其协议规定如表1所示。
3.2 上位机软件
对于控制平台,文献给出了一种基于Windows CE.net技术的方法,文中使用Visual Studio2010编写C#上位机客户端。采用TCP/IP协议,利用Socket发送数据包到路由器。客户端包括两个窗口:主窗口和配置窗口。主窗口包括视频显示区及控制按钮区,主要用于显示回传视频和实现机器人运动控制。配置窗口主要完成WiFi无线网络及机器人控制指令自定义键值的配置。配置窗口和主窗口分别如图5和图6所示。
根据表1的通信协议,上位机通过Socket以Byte打包的方式向机器人发送控制命令,同时接收摄像头回传视频流并在视频显示区实时显示。视频部分也可将摄像头拍摄的视频分解成一张张独立的jpg图片发送到客户端,客户端再将图片组合成视频。对于Socket数据发送,首先创建Socket对象的实例,创建Socket实例后上位机即可通过Connect方法连接到路由器,并通过Send方法路由器发送数据。数据发送完成后用Close方法关闭Socket以释放资源。
除此之外,采用配置文件的方式来存取上一次配置的数据,以免重复配置,并通过定义8个键盘值,便于观察事件的执行,以此可方便地通过键盘的触发事件实现电机和舵机的全方位移动,且增加了拍照和车灯控制命令,经测试上位机软件运行良好。
3.3 下位机软件
驱动板微处理器采用STC公司的STC89C516芯片。STC89C516单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统的8051系列单片机,这为很多嵌入式控制系统提供了一种灵活性高且成本低的方案。下位机程序主要包括:外部中断、舵机PWM中断、定时器、串口中断、初始化等。下位机程序接收来自路由器转发的上位机命令,实现数据接收、摄像头云台全方位控制、电机转向、车灯控制、电池电量指示、红外壁障等功能。
4 结束语
经过实际调试运行,WiFi Robot的实际控制距离可以达到100 m。WiFi Robot具有实时视频传输、人工自主控制、红外壁障等功能。实物如图7和图8所示。
在目前所设计机器人的基础上,也可以对系统的功能进行拓展,如加载多自由度机械臂、GPS定位、超声波测距、外网控制等,则可实现全方位、超远距离控制,并广泛应用于险情探测、图像采集、目标定位、无线通信等领域。 |