基于WiFi网络的可视化遥控搬运机器人设计
引言
随着科学技术的快速发展,机器人已经渐渐步入人们的实际生活之中,本设计所研究的遥控搬运机器人是众多机器人中的一种。搬运机器人主要代替人完成物体的夹取、运输、摆放工作,可工作于人类无法进入或对人体有害的工作环境。传统搬运机器人多采用无线电或者红外的方式来进行遥控,这种机器人操控范围较小,并且需要特定的控制器。本设计主要研究基于WFi网络的无线遥控搬运机器人,利用WiFi网络可以实现实时视频图像采集,以及机器人上的传感器数据采集。采用WiFi网络通信使得控制端多样化,可用手机、电脑等具备WiFi功能的设备进行控制。此外,还可将机器人接入Internet来实现更远距离的控制。
1 总体设计
本设计服务器端采用移植了Linux操作系统的S3C6410,通过完成底层驱动的移植和编写,实现对硬件的控制,其次移植了MJPGstreamer服务器和BOA服务器等实现图像数据、控制信息的传输。客户端方面分别编写了WEB版和Android版应用程序。系统功能框图如图1所示。
2 硬件设计
(1)MCU
本设计的主控器采用友善之臂公司的一款核心板,其主芯片S3C6410是三星公司基于ARM1176JZF—S核设计的嵌入式处理器。该核心板配置了256 MB DDR RAM,并且主频为533 MHz,最高主频可以达到667 MHz。通过将Linux操作系统移植到该核心板上来完成对硬件的管理与客户端提供数据交换,响应客户端的命令控制。
(2)伺服电机
采用的伺服电机为微型伺服马达(又称作舵机),主要应用于模型的动作控制,通过脉宽调制可以对其进行比较精确的控制。本设计采用TOROBOT公司生产的TR213舵机,其动态扭矩可以达到13 kg·cm,转角范围为180°,控制精度达到0.5°,工作电压为4.8~7.2 V,其性能能够满足本设计的基本要求,所以选用两个TR213配合夹持器完成物体的夹持工作。
(3)直流电机
直流电机用于控制机器人移动,本设计采用带齿轮箱的直流电机,其减速比为1:120,工作电压为3~12 V左右,7.2 V电压下转速达120 r/min,4个直流电机配合车体,最大负载可达到2 kg。
(4)WiFi网卡
无线网卡采用USB接口的必联(B—LINK)BL—LW05-AR5无线网卡,其主芯片为RTL8188,并且外置了5 DBI的高增益天线,传输速度最高可达150 Mbps,实际传输距离较远,并且支持AP模式。本设计通过移植该网卡的驱动、Hostapd以及DHCP让机器人作为AP热点供无线设备进行连接控制。
(5)摄像头
摄像头采用中星微ZC301P,USB接口,像素高达130万,拥有6 mm的五玻镜头,62°视角,并且具有自动亮度、自动白平衡、伽马校正功能。本设计中使用这款摄像头来完成机器人前方视频数据采集。
(6)压力传感器
为了采集机器人夹持器的压力数据,本设计采用了FSR402薄膜压力传感器。该传感器受力后会导致电阻变小,根据电阻值的变化可以得到压力的变化,其允许的压力范围为100 g~10 kg,并且传感器受力区域的直径达1.27 cm。
(7)直流电源
为了完成物体的夹持、搬运、摆放工作,机器人带有4路直流电机、2路伺服电机,耗电量较大,且负载时电流较大。为了使其能稳定正常工作,本设计选用了一款15C的航模电池,其容量为1300 mAh,标称电压为7.4 V,充满电压为8.4 V,最大电流可达16 A,配以LM338稳压器可以稳定地提供5 A/5 V直流电源。
3 服务器搭建
3.1 服务器端
服务器端功能框图如图2所示。
3.2 Linux系统移植
核心板采用友善之臂公司提供的TINY6410,此核心板已提供Bootloader、Linux操作系统和文件系统。使用时只需要根据实际的需要裁减Linux系统即可,本设计采用的Lin ux内核版本为Linux2.6.38,编译平台为Ubuntu12.04,交叉编译器为arm-linux-gcc-4.5.1。
3.3 驱动编写与移植
(1)直流电机驱动
由于S3C6410只带有两路PWM输出,而夹持器部分需要两路PWM脉宽调制控制伺服舵机,因此直流电机部分采用定时器2来模拟PWM调制。设置定时器2每100ms进一次中断,在定时器中进行1~100计数,因此PWM周期为10 s,并有100个脉宽比可调,满足直流电机调速控制。
(2)伺服电机驱动
伺服电机需要采用脉宽调制,通过调节20 ms周期内的占空比可以指定伺服电机的旋转角度,其对应关系表略——编者注。
由于舵机的控制要求较高,本设计采用S3C6410自带的PWM进行控制。设置PWM0和PWM1的周期为20 ms,通过调节PWM0和PWM1的占空比来控制伺服电机的工作。
(3)摄像头驱动
ZC301为免驱的UVC视频设备,为了实现视频的采集,需要在编译内核时选择V4L2支持。
(4)USB WiFi驱动
本设计中的USB无线网卡采用RTL8188芯片,为使该设备能够正常工作需要进行驱动程序移植。
(5)ADO驱动
电源电量以及FSR压力传感器数据测量需要ADC驱动的支持,由于系统中已含有该驱动,故只需要在编译内核时选择上即可。
3.4 AP热点搭建
Hostapd是Linux系统中无线访问接入点的守护进程。它可以将无线网卡设置为AP模式,并且支持多种加密方式,提供了设备接入的身份验证。在实际的使用期间,需要对其配置文件进行相应的修改。本设计中采用Hostapd结合RTL8188网卡完成AP热点的搭建。另外,通过配置DHCP的配置文件并启用该服务为接入机器人的WiFi设备分配IP地址,有效地避免了多个设备接入时的地址冲突问题。
3.5 视频服务器搭建
本设计选用input_uvc作为输入组件来使用V4L2从摄像头获取图像数据,经JPEG库对数据进行编码之后,通过选用output_http作为输出组件来输出图像数据。output http组件实现了一个符合HTTP1.0标准的WEB服务器,用户可以使用HTTP协议获取视频信息。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码