近年来随着人工智能技术、计算机技术等相关技术的发展,对移动机器人的研究越来越广泛。本设计是采用OpenWrt操作系统的移动机器人,它可实现多种不同功能,如探测险情、巡视、图像采集、定位、无线通信等。它还可以作为各种智能控制方法(包括动态避障、路径规划、群体协作策略)的良好载体,开展研究。
1 系统方案
采用2层架构。上层以ARM处理器S3C2440为核心,选用MINI2440开发板作为上层的主板,负责图像采集,并将图像通过WiFi方式发送给远端的PC机。WiFi无线通信是利用PC机与无线路由器搭建环境平台共同实现的。
机器人主要由硬件系统和软件系统构成。硬件系统主要包括:ARM处理器、单片机、外围接口电路、机器人底盘以及电源等。其中ARM处理器是上层的核心,51单片机是下层的核心。软件包括:嵌入式Linux操作系统、外设驱动程序、Linux应用程序以及单片机应用程序等。系统没有选用通常的嵌入式Linux版本,而是另辟蹊径,选用一种独特的嵌入式Linux发行版之一OpenWrt作为操作系统。OpenWrt提供了一个完全可写的文件系统及软件包管理,它通过简单易用的方式,降低了嵌入式Linux开发的门槛,提高了系统软件开发的效率。
嵌入式智能移动机器人的工作流程为:传感器模块实时采集周围环境信息,将此数据信息传输到机器人控制系统中,单片机通过数据分析获取有效数据,从而获知机器人与障碍物的相对位置,然后根据此位置信息产生控制信号;单片机产生PWM信号控制直流电机来控制机器人转向,从而达到机器人自主“行走”的目的。下层的单片机与上层的ARM处理器通过串口来通信,ARM主板可将下层单片机控制板的工作数据通过无线WiFi的方式传输到远端的PC机。ARM主板可以不间断地将USB摄像头采集的清晰现场图片发给远端的PC控制终端。
2 系统硬件设计
硬件系统主要包括:ARM处理器、单片机、外围接口电路、机器人底盘以及电源等,其中ARM处理器是上层的核心,51单片机是下层的核心。硬件结构框图如图1所示。
图1 硬件结构框图
由图1可以看出,系统主要由以下模块构成:图像采集模块、无线通信模块、超声波测距模块、红外感应模块、MINI2440、单片机STC89C52以及直流电机驱动模块等。下面重点介绍直流电机驱动模块。
直流电机驱动模块以L298N芯片为核心,该芯片具有带载能力强的特点。直流电机驱动电路如图2所示。驱动电路芯片的外围电路主要是由二极管构成的电桥电路与2组电机并联连接,以达到控制电机按照设定运转的目的。
图2 直流电机驱动电路
移动机器人采用H桥控制方案,整体控制方案如图3所示。
图3 H桥控制方案
电机共有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机终端就可以接收通过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;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 编译完成的OpenWrt效果图
结语
本系统选用的OpenWrt操作系统,该系统适合移动机器人的设计要求,系统提供的软件包简化了系统开发流程,提高了开发效率。经过实际调试运行,系统完全可以达到设计要求,可以用于探测险情、图像采集、目标定位、无线通信等领域。
上一篇:剖析S3C2410路由器整体结构及原理
下一篇:一种基于ARM+FPGA的高精度数据采集系统设计
推荐阅读
史海拾趣
阿尔特拉(Altera Corporation)是一家以可编程逻辑器件(FPGA)和相关技术为主的半导体公司,成立于1983年,总部位于美国加利福尼亚州的圣塔克拉拉。以下是关于阿尔特拉公司发展的五个相关故事:
创立与早期发展:阿尔特拉公司由Robert Hartmann和Michael Magranet等人于1983年创立,最初致力于设计和制造电可擦除可编程只读存储器(EEPROM)。1984年,公司推出了业界第一个商用FPGA产品,即EP300系列,标志着阿尔特拉在FPGA领域的开创性突破。随后,公司不断扩大产品线,加大研发投入,逐步成为FPGA领域的领军企业之一。
FPGA技术创新:阿尔特拉公司在FPGA技术方面持续进行创新。1992年,公司推出了基于静态随机存储器(SRAM)的FPGA器件,使得FPGA在速度和灵活性方面有了显著提升。此后,阿尔特拉不断推出新的器件系列和工具软件,以满足客户对于性能和可编程性的不断提升的需求。
与竞争对手的竞争:在FPGA市场,阿尔特拉与Xilinx是两大主要竞争对手。两家公司之间展开了激烈的竞争,包括技术研发、产品性能、市场份额等方面。为了在市场上取得优势,阿尔特拉不断加大研发投入,推出了一系列领先的产品和解决方案,并通过全球销售网络拓展市场。
收购与合并:阿尔特拉公司在发展过程中进行了多次收购与合并,以扩大市场份额和提升技术实力。2015年,英特尔公司以约160亿美元的价格收购了阿尔特拉,将其并入英特尔旗下成为其子公司。这一收购使得英特尔得以整合阿尔特拉的FPGA技术和产品,进一步巩固了其在半导体行业的地位。
公司发展与创新:作为英特尔的子公司,阿尔特拉继续致力于技术创新和业务拓展。公司不仅持续改进现有产品的性能和功能,还积极投入到新兴领域的研发与应用,如数据中心、人工智能、物联网等。阿尔特拉通过不断推出创新产品和解决方案,保持了在半导体行业的领先地位。
以上是关于阿尔特拉公司发展的五个相关故事,这些故事展示了阿尔特拉从创立初期到被英特尔收购的发展历程,以及其在FPGA技术领域的技术创新、市场竞争和业务拓展等方面的重要进展。
Eby Electro Inc在发展壮大的同时,始终关注社会责任的履行。公司积极参与环保和公益活动,推广绿色电子产品,减少生产过程中的环境污染。此外,公司还设立了奖学金和助学金,支持教育事业的发展。这些举措不仅提升了公司的社会形象,也为公司赢得了更多的社会支持和认可。
在2017年,诚芯微被认定为国家高新技术企业,这是对公司技术实力和创新能力的高度肯定。获得这一荣誉后,诚芯微进一步加大了研发投入,加强了与高校和科研机构的合作,推动了公司技术的持续创新。同时,公司还扩大了产能,优化了供应链管理,提升了市场竞争力。
在2020年,诚芯微与BYD、小米、公牛等知名企业建立了战略合作伙伴关系,共同推动电源芯片在汽车电子、智能家居等领域的应用。通过与这些行业巨头的合作,诚芯微不仅拓展了市场渠道,还提升了品牌影响力。同时,公司还加大了对新能源汽车电源管理芯片的研发力度,为新能源汽车产业的发展提供了有力支持。
Desoutter公司成立于1914年,由Desoutter兄弟创立。起初,公司专注于气动工具的研发和生产,很快就以其高质量和可靠性在市场中获得了认可。随着工业革命的深入,气动工具的需求日益增长,Desoutter公司凭借技术优势和市场洞察,逐步扩大了生产规模,奠定了在气动工具领域的领先地位。
埃派克森微电子的创立可追溯到2002年,由高勇回国并带领一支团队创立。作为一家初创公司,埃派克森在创立初期就明确了以模拟系统级芯片为突破口的发展战略。通过不断的研发和创新,埃派克森成功开发了多款具有竞争力的芯片产品,逐渐在亚太与国际市场崭露头角。这一阶段,公司的创新精神和坚持不懈的努力为后来的发展奠定了坚实基础。
[I][I]无铅PCB的出现对在电路测试(ICT)提出了新的问题,本文描述了现有的PCB表面处理工艺,并分析了这些工艺对ICT的影响,指出影响ICT的关键是探针与测试点间的接触可靠性,并介绍了为满足ICT的要求在PCB构建过程中需要做出的特定改变。… 查看全部问答∨ |
|
有一个参数 Tsrc,手册里面说是SDRAM Semi Row Cycle Time。 但是还是想不明白是做什么用的,请各位帮忙解释下,谢谢。 … 查看全部问答∨ |
|
从网上 down 了一个 CBottonST 类测试的时候发现 ,按钮失去焦点的时候会闪一下?谁用过这个按钮?这个问题是怎么解决的呢?急!!!!!!!!!!!… 查看全部问答∨ |
本开发板命名为Landbcm 2008 下面开始介绍介绍Landbcm 2008 1.Landbcm 2008系统框图 1.Landbcm 2008学习板提供了 硬件: 1个WAN口, 1个100M以太网口, 4M Flash,16M SDRAM , 主控芯片为BCM47XX , 交换芯片为BCM5XXX 软件: 全套开发 ...… 查看全部问答∨ |
小弟准备测试下网络,下了Iperf源代码。用在ARMV4I wince 6.0上。 但是不知道怎么在VS2005下面编译 目前SDK已经导出 哪位老大有成功的经验,分享下,多谢了!… 查看全部问答∨ |
我在键盘驱动里注册了6个外部中断,用作6个按键。 启动了6个线程利用WaitForSingleObject分别监测外部中断。 现在我想实现‘锁键盘’功能:一秒内先后按下设定的两个按键(比如A键然后B键)则锁键盘。 同样再操作一次则开键盘。 我这样编程,结 ...… 查看全部问答∨ |