一种基于OpenWrt操作系统的移动机器人设计方案

发布时间:2013-03-18 阅读量:1235 来源: 我爱方案网 作者:

【导读】本系统选用的OpenWrt操作系统,该系统适合移动机器人的设计要求,系统提供的软件包简化了系统开发流程,提高了开发效率。经过实际调试运行,系统完全可以达到设计要求,可以用于探测险情、图像采集、目标定位、无线通信等领域。

1 、系统方案

采用2层架构。上层以ARM处理器S3C2440为核心,选用MINI2440开发板作为上层的主板,负责图像采集,并将图像通过Wi-Fi方式发送给远端的PC机。Wi-Fi无线通信是利用PC机与无线路由器搭建环境平台共同实现的。

下层是以51单片机为核心的单片机控制板,由51单片机及外围电路组成。下层主要负责机器人移动控制,传感器数据处理。51单片机通过I/O口输出PWM信号控制直流电机的转速和转向,实现机器人的前进、停止、左转和右转。单片机接口电路上挂接了1个超声波测距模 块、1个人体红外感应模块、1个步进电机模块。超声波测距模块用来实现机器人避障。在嵌入式智能的前端安装了一个步进电机,而超声波测距模块安置在步进电 机的转轴上,步进电机不停地来回转动,超声波测距模块也随之转动。这样用1个超声波测距模块就可实现多方位测距,从而减少了超声波测距模块的数量。

机器人主要由硬件系统和软件系统构成。硬件系统主要包括:ARM处理器、单片机、外围接口电路、机 器人底盘以及电源等。其中ARM处理器是上层的核心,51单片机是下层的核心。软件包括:嵌入式Linux操作系统、外设驱动程序、Linux应用程序以 及单片机应用程序等。系统没有选用通常的嵌入式Linux版本,而是另辟蹊径,选用一种独特的嵌入式Linux发行版之一OpenWrt作为操作系统。 OpenWrt提供了一个完全可写的文件系统及软件包管理,它通过简单易用的方式,降低了嵌入式Linux开发的门槛,提高了系统软件开发的效率。

嵌入式智能移动机器人的工作流程为:传感器模块实时采集周围环境信息,将此数据信息传输到机器人控 制系统中,单片机通过数据分析获取有效数据,从而获知机器人与障碍物的相对位置,然后根据此位置信息产生控制信号;单片机产生PWM信号控制直流电机来控 制机器人转向,从而达到机器人自主“行走”的目的。下层的单片机与上层的ARM处理器通过串口来通信,ARM主板可将下层单片机控制板的工作数据通过无线 WiFi的方式传输到远端的PC机。ARM主板可以不间断地将USB摄像头采集的清晰现场图片发给远端的PC控制终端。

2、 系统硬件设计

硬件系统主要包括:ARM处理器、单片机、外围接口电路、机器人底盘以及电源等,其中ARM处理器是上层的核心,51单片机是下层的核心。硬件结构框图如图1所示。

1

由图1可以看出,系统主要由以下模块构成:图像采集模块、无线通信模块、超声波测距模块、红外感应模块、MINI2440、单片机STC89C52以及直流电机驱动模块等。下面重点介绍直流电机驱动模块。

直流电机驱动模块以L298N芯片为核心,该芯片具有带载能力强的特点。直流电机驱动电路如图2所示。驱动电路芯片的外围电路主要是由二极管构成的电桥电路与2组电机并联连接,以达到控制电机按照设定运转的目的。
 

2

移动机器人采用H桥控制方案,整体控制方案如图3所示。

3

电机共有4路PWM输出分别作为左右轮的驱动,而通过2路PWM输出可控制一个电机,两个电机以并联方式连接。

当L298N芯片使能信号ENABLE为高时,输出才随输入变化,否则为高阻态,所以焊接时,ENABLE引脚及电源引脚VS均接电源VCC.

具体驱动过程为:通过编程由控制芯片经PWM发出驱动信号,PWM输出作为L298N的输入,经L298N转换输出控制信号使电机转动,从而实现电动机的驱动。

PWM输出信号的高低则可以控制直流电机转速。当占空比加大时,转速升高;占空比减小时,转速降低;当PWM信号输出占空比为0时可控制电机的停止。

当左轮停止,右轮转时,小车左转;当右轮停止,左轮转动时,小车右转。而2路PWM输出的正负顺序转换则可控制电机的正反转,进而控制小车的前进和后退。

 

3、 系统软件设计

软件部分是移动机器人的智能化的体现,它控制移动机器人所有的运行状态。

操作系统采用了OpenWrt操作系统,该系统简化了Linux内核的定制过程,而且允许开发者使用软件包的概念来定制嵌入式设备,从而简化了嵌入软件开发的流程。

程序在Kubuntu CodeBlock IDE集成开发环境中进行编写,用Openwrt编译出来的ARM eabi交叉编译工具编译,再经过终端SercurtCRT通过串行口向移动终端烧入交叉编译后的程序以及系统。

应用软件控制小车的避障、摄像、发送视频等行为。通信方面通过在主机端用vsftp软件架设FTP 服务器,并通过IEEE 802.11g(RTL8187)无线网卡建立无线局域网。这样,移动终端就可以接收上位机的控制命令到达指定地点拍照并发送图片,而PC机终端就可以接 收通过Wi-Fi传送过来的图片。

系统软件结构如图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;i<4;i++) {//发送

  if(len<0)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

 

相关资讯
红外传感器的选型要素与应用场景解析

红外传感器是一种利用红外线进行检测的电子设备,广泛应用于工业自动化,安防监控,智能家居,医疗设备等领域

DigiKey发布《机器人技术探秘》系列:联合Eaton与SICK深入探索机器人自动化新纪元

随着全球制造业迈向集成化与数字化,独立机器人单元正逐渐融入更广泛的自动化系统。DigiKey 本季发布的《机器人技术探秘》的第 5 季《未来工厂》视频系列,联合行业领先企业 Eaton 和 SICK,系统解析了从电气控制、传感技术到数据互联等多个层面的前沿解决方案。新一季邀请了多名专家,一起探讨支撑现代机器人制造与自动化的基础设施与创新技术。

SEMI-e 2025深圳半导体展9月启幕!全产业链覆盖,超千家龙头集结

SEMI-e深圳国际半导体展暨2025集成电路产业创新展将于2025年9月10日至12日在深圳国际会展中心(宝安新馆)隆重开幕。本届展会由CIOE中国光博会与集成电路创新联盟联合主办,中新材会展与爱集微共同承办,以“IC设计与应用”、“IC制造与供应链”及“化合物半导体”为核心主题,系统覆盖集成电路全产业链环节。

超11万人次观展,5723名海外买家到场!IOTE 2025深圳物联网展圆满落幕​

​在AIoT技术加速赋能全球数字化转型、中国持续引领物联网产业创新的大背景下,IOTE 2025第24届国际物联网展·深圳站于8月29日在深圳会展中心(宝安新馆)圆满落幕。本届展会以“生态智能·物联全球”为主题,联合AGIC人工智能展与ISVE智慧商显展,汇聚1001家产业链企业,覆盖8万平方米展区,三日内吸引观众超11万人次,其中海外专业买家达5723人,来自30多个国家和地区,充分彰显了展会的国际影响力与行业凝聚力。