基于H桥控制的移动机器人系统方案
送视频等行为。通信方面通过在主机端用vsftp软件架设FTP服务器,并通过IEEE 802.11g(RTL8187)无线网卡建立无线局域网。这样,移动终端就可以接收上位机的控制命令到达指定地点拍照并发送图片,而PC机终端就可以接收通过WiFi传送过来的图片。
系统软件结构如图4所示。
图4 系统软件结构
系统驱动程序利用MINI2440开发板提供的例程进行改写,并编译进内核。
摄像头控制软件mjpgstreamer由Openwrt以软件包形式提供,通过端口8080输出为MJPEG格式的图像。无线通信部分内容为Linux下socket编程,为客户端提供远程控制支持。无线通信的部分代码如下:
int sendstring(char *addr,int port,char *sendchar){
struct sockaddr_in s_addr;//定义sockaddr_in结构体类型保存socket信息
int sock;
int addr_len;
int len,i;
if ((sock=socket(AF_INET, SOCK_DGRAM, 0))==-1) {//创建socket
perror(“no socket”);
exit(errno);
}
else
printf(“create socket.\n\r”);
s_addr.sin_family=AF_INET;//TCP/IP地址族
if (port)
s_addr.sin_port=htons(port);//设置端口号
else
s_addr.sin_port=htons(10001);
if (*addr)
s_addr.sin_addr.s_addr=inet_addr(addr);//设置IP
else {
printf(“Send a message must have a receiver!\n”);
exit(0);
}
addr_len=sizeof(s_addr);//IP地址长度
len=-1;//判是否发送成功标志
for (i=0;i4;i++) {//发送
if(len0)len=sendto(sock,sendchar, strlen(sendchar), 0,(struct sockaddr *) s_addr, addr_len);
else {printf(“send success!”);return 0;}
}
printf(“send error!”);
return 0;
}
系统通过MINI2440驱动并控制摄像头,通过串口控制底层的单片机,驱动无线网卡并连接,运行服务端,提供UI界面。编译完成后的Openwrt效果图如图5所示。
图5 编译完成的OpenWrt效果图
结语
本系统选用的OpenWrt操作系统,该系统适合移动机器人的设计要求,系统提供的软件包简化了系统开发流程,提高了开发效率。经过实际调试运行,系统完全可以达到设计要求,可以用于探测险情、图像采集、目标定位、无线通信等领域。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)