历史上的今天
返回首页

历史上的今天

今天是:2024年09月14日(星期六)

正在发生

2020年09月14日 | 能探测险情巡视的智能移动机器人方案

2020-09-14 来源:elecfans

近年来随着人工智能技术、计算机技术等相关技术的发展,对移动机器人的研究越来越广泛。本设计是采用OpenWrt操作系统的移动机器人,它可实现多种不同功能,如探测险情、巡视、图像采集、定位、无线通信等。它还可以作为各种智能控制方法(包括动态避障、路径规划、群体协作策略)的良好载体,开展研究。

1 系统方案

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


机器人主要由硬件系统和软件系统构成。硬件系统主要包括: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 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机终端就可以接收通过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 编译完成的OpenWrt效果图


结语

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

推荐阅读

史海拾趣

Collins Electronics Corp公司的发展小趣事

在电子行业竞争日益激烈的情况下,Collins Electronics Corp面临着巨大的挑战。为了保持竞争优势,公司加大了研发投入,不断优化产品性能。同时,他们还加强了对市场趋势的研究,以便及时调整产品策略。在一次行业技术革新中,公司凭借敏锐的市场洞察力和强大的研发能力,成功推出了一款符合市场需求的新产品,赢得了市场份额。

GTE Microcircuits公司的发展小趣事
选择合适的复合放大器需要根据具体应用需求来考虑,包括所需的增益、带宽、噪声系数、电源电压等参数。同时,还需要考虑放大器的封装形式、功耗、以及成本等因素。建议在选择时参考数据手册和应用笔记等资料,并结合实际测试来确定最合适的型号。
DUCATI公司的发展小趣事
减少噪声的方法包括选用低噪声系数的放大器、优化电路布局以减少电磁干扰(EMI)、以及在关键信号路径上使用屏蔽和滤波技术。同时,合理设计电源去耦网络,避免电源噪声对电路的影响也是关键。
Aptiv公司的发展小趣事

随着数字化时代的到来,Aptiv积极拥抱数字化转型,通过引入先进的信息技术和管理系统,提升了企业的运营效率和市场竞争力。例如,公司向汽车行业某公司发出EDI对接邀请,计划通过EDI系统实现双方的数据共享和业务协同,从而提高了工作效率和下单准确性。这种数字化转型不仅有助于Aptiv在激烈的市场竞争中保持领先地位,还为整个电子行业的数字化转型提供了有益的借鉴和参考。

这五个故事展示了Aptiv公司在电子行业中的发展历程和成就,从技术创新到全球布局、创新合作、社会责任以及数字化转型等方面,都体现了公司的实力和担当。Aptiv以其卓越的技术实力和市场表现,成为了电子行业中一颗璀璨的明星。

Belden Wire & Cable公司的发展小趣事

在1902年,Joseph C. Belden在美国芝加哥创立了Belden公司,标志着这家电线电缆公司的诞生。创立初期,公司便专注于电线电缆的研发和生产,凭借其卓越的产品质量和可靠的性能,逐渐在市场上崭露头角。随着业务的发展,Belden逐渐扩大了生产规模,并增设了多个生产基地,以满足不断增长的市场需求。

Handok Co Ltd公司的发展小趣事

随着市场的不断变化和客户需求的多样化,Belden公司开始实施产品多元化战略。除了传统的电线电缆产品外,公司还开发了一系列新型电缆产品,如光纤电缆、数据电缆等。这些新产品不仅拓宽了公司的产品线,还为公司带来了新的增长点。同时,Belden还加大了市场拓展力度,积极参与各类行业展会和论坛,提升品牌影响力。

问答坊 | AI 解惑

09西电的电子大赛材料清单列表(现已免费)

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 得到的09年电子大赛西电的材料清单,看清单可以猜到部分题目,希望对大家猜题有帮助。 既然大家都普遍觉得贵 我就免费发送吧。希望对统一战线的同志们有帮助! [ 本帖最后由 五月一 于 2009-8-23 ...…

查看全部问答>

一个女生用C语言写的爱情函数(搞笑下)

一个女生用C语言写的爱情函数result love(boy, girl)      {        if ( boy.有房() and boy.有车() )        {          boy.set(nothing);      ...…

查看全部问答>

超出FIFO空间的串口数据收发

大家好,正在做一个项目,通信芯片接收区FIFO大小为8word,数据收发通过调用一个函数完成,每次接收一个字节,通过调试发现,当一包数据大小在13、14个字节以内时,收发正常。现在需要通过串口做大数据量的收发,每包数据都在1000字节以上,因为我 ...…

查看全部问答>

UseEnterEsc的问题?请大家帮忙看看。

在WINCE下的触摸屏的校正程序中,我是直接调用的这个系统函数TouchCalibrate,呵呵……自己还没有想到写的方法。但是没有这个的源码,在TouchCalibrateUI_DrawMainScreen打印校准操作说明信息中,UseEnterEsc这个函数是怎么操作的?在屏幕我要显示 ...…

查看全部问答>

电脑控制车的运动

我有个这样的要求 : 在一个小车(轮式的或履带的都可以),小车上面加一个竖杆,我要用电脑来控制(最好是无线的)这个小车前后左右的水平面上360度自由运动和竖杆上下自由运动,请问大家谁做过这个东西.MSN : sunny20048@hotmail.com…

查看全部问答>

ARM高手请进。。

我在ARM中移植一段代码,因为程序比较复杂,调用层次较深,在进入某些函数语句后,函数参数丢失。 用的是瑞星微的多任务系统,谁知道这是什么问题,怎么解决。我用J-TAG调试。…

查看全部问答>

想淘一个或者置换一个STM32F4XX的板子

想好好学学STM32F4,想淘一个或者置换一个F4的板子我有的板子:LM3s811和8962的板子(原装的未开封),这两个板子是我用无线wifi路由器和一位兄弟换来的。avr和MSP430的板子也各有一个,…

查看全部问答>

2013 TI电源管理指南

本帖最后由 paulhyde 于 2014-9-15 03:19 编辑 南华大学黄智伟 分享一个资料:“2013 TI 电源管理指南”    …

查看全部问答>

6050

为什么我的6050一会可以产生角度一会就不可以了????????????? …

查看全部问答>