微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 基于嵌入式技术的智能机器人系统研究

基于嵌入式技术的智能机器人系统研究

时间:06-29 来源:电子技术应用 点击:

动和电源模块

  驱动部分是机器人的重要组成部分,它和电机组成机器人的执行机构,完成机器人行走运动。直流电机具有良好的线性调速特性、简单的控制功能、较高的效率、优异的动态特性,被广泛应用在控制系统中。本系统将采用4片L298N电机驱动芯片驱动8个直流电机,采用PWM调速原理控制直流电机达到控制机器人的速度。

  为了消除电机运转对系统核心开发板SBC2410的干扰,从核心开发板的控制引脚输出的信号,经过16路光电耦合器(需4片TLP521-4)进行信号隔离,脉宽调制PWM控制光电耦合器的开关,以达到控制L298N驱动芯片的目的,并驱动电机按照所需的速度运转。

  在电源方面,设计的系统电源主要供给核心控制板模块、电机驱动模块、人机交互模块所用的640?鄢480TFT/LCD显示器、视频采集模块、无线收发模块(预留扩展)和语音采集模块。系统最终选用12 V的电瓶供电,可直接给电机驱动芯片和LCD显示器供电。但由于系统模块多,所需电流大,所以在提供12 V转5 V电压时,选择开关电源芯片LM2576作为电压变换核心器件,它能承受最大3 A的电流输出。

3 智能机器人控制系统软件结构设计

  机器人控制系统的实时性好坏对于整个机器人系统的性能极其重要,控制系统的实时性越强,机器人处理异常情况的能力越强。由于μC/OS-Ⅱ是一种源代码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,所以本设计就采用μC/OS-Ⅱ提供多任务支持,再整合人机界面μC/GUI和底层驱动程序及应用程序等构建机器人软件控制系统,实现对整个机器人的实时控制,完成智能控制任务。

3.1 控制系统总体软件结构

  软件系统主要由应用软件、内核、系统服务、驱动程序等组成。其构成示意图如图2。

  图2中硬件平台是指核心控制模块及其外围扩展模块,如视频采集模块、语音采集模块等;驱动程序是指系统对LCD、直流电机、摄像头模块、语音采集模块等程序;内核是指嵌入式操作系统,本系统采用的是μC/OS-Ⅱ操作系统;系统服务是指图形界面μC/GUI和文件系统等;应用程序是指为完成控制系统所规划的任务等程序。

3.2 基于μC/GUI的界面设计

  本设计中,在嵌入式GUI方面选择了Micrium公司开发的通用的嵌入式图形用户界面软件μC/GUI,它是μC/OS-Ⅱ的专用GUI,可以实现与μC/OS-Ⅱ实时操作系统的完美结合。使用它可以方便地定制自己的图形用户界面,完成各种应用程序的开发。

  中间件μC/GUI界面应用程序向用户提供了丰富的API接口函数,为窗口设计提供了方便。在设计中,为了绘制一幅背景图片,首先使用位图转换工具把bmp格式的位图转换成μC/GUI支持的C文件,供μC/GUI函数调用。然后根据μC/GUI提供的API函数设计系统界面。用到的API函数主要有位图显示函数、窗口创建函数、窗口客户区句柄获取函数、按钮创建函数、文本框创建函数和滑动进度条创建函数等。设计的界面最终在8英寸LCD液晶屏上显示。本系统设计的窗口主要由两个子窗口组成:上方窗口主要用于视频显示,可以通过触摸屏点击开始或结束,视频数据将自动存入规划好的内存图像存储区,以便进一步处理利用,并可选择机器人所处环境的特定算法程序,且运行相应的程序;下方的窗口工具条主要完成机器人现场音频数据的收集、播放及停止采集,录制的音频信息将自动存入规划好的内存音频数据存储区Sound_Buffer中,而播放的音频数据放在内存Play_Buffer中,它们采用的都是内存映射技术。

3.3 用户任务设计

  基于μC/OS-Ⅱ的任务管理机制,根据系统的功能要求,划分为6个系统任务,并设置每个任务的优先级,如表1所示。

  (1)Motor_Drive_Task--定时中断节拍进行计时,在任务循环块中,接收图像处理控制算法中形成的电机驱动参数,即Image_Analyze_Task任务中产生的电机驱动参数,更新PWM输出,完成机器人所需运动轨迹姿态的调整,随后挂起自身。

  (2)Image_Analyze_Task--获取在内存循环队列中的图像数据,在任务循环块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;若有则对获取内存循坏队列中的图像数据进行分析处理,得出电机驱动参数并发送该信息至消息队列中,然后释放图像信号量,再挂起自身。

  (3)Sound_Record_Task--用于采集、存储机器人周围环境声音信息数据到声音队列中。

  (4)Sound_Play_Task--定时从内存声音播放存储处,即Play_Buffer中提取数据放到队列中进行播放。

(5)Image_Collect_Task--建立窗口界面,在任务循坏块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;如果检测到图像信号量,则采集

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top