1、 基于 ARM 的智能机器人图像采集系统 软件设计 Softwore Design of Intelligent Robot Image Acquisition System Based on ARM 总 计: 37 页 表 格: 0 个 插 图: 17 幅 理 工 学 院 本 科 毕 业 设 计(论文) 基于 ARM 的智能机器人图像采集系统软件设计 Software Design of Intelligent Robot Image Acquisition System Based on ARM * Institute of Technology 基于 ARM的智能机器人图像采集系统软件设
2、计 1 基于 ARM 的智能机器人图像采集系统软件设计 自动化专业 * 摘 要 本设计 以 S3C2440 微处理器 和 Linux 操作系统 为控制 平台 ,以 飞思卡尔比赛车模 为控制对象 , 采用 USB摄像头作为图像采集设备, 控制 智能 小车沿赛道 中心 黑线行驶。 根据项目需求裁剪内核文件下载到 S3C2440 控制器 中 ,利用 Linux 下视频设备应用编程接口实现图像采集,通过 libjpeg 库解压采集到的 jpeg 图片 , 同时将解压 后的图像进行二值化提取赛道中心线的位置, 通过液晶屏实时显示,并编写控制程序成功控制小车沿赛道行驶。 关键词 嵌入式; S3C2440;
3、 Linux;图像采集 ;智能小车 Software Design of Intelligent Robot Image Acquisition Based on ARM Automation Specialty LIN Biao-wen Abstract: This design ,which chooses Freescale game cars as controlled member, uses microprocessor S3C2440 and linux Operating System as the control platform, and the USB camera as
4、 the image acquisition equipment to control the smart car driving along the black line in the middle of the track. Download Kernel file to microprocessor S30C2440 according to the project needs.Use Linux video equipment application programming interface , image acquisition is realized.Jpeg image is
5、collected by decoding from libjpeg.At the same time, the image is binarized to extract the position in the middle of the track and is real-time revealed through LCD .Write control program to control the smart car run along the black line successfully. Key words: Embedded system; s3c2440;linux; image
6、 acquisition; smart car. 基于 ARM的智能机器人图像采集系统软件设计 2 目 录 1 引言 . 1 2 智能机器人图像采集系统硬件平台 . 1 2.1 Micro2440 开发板 . 3 2.2 电源模块 . 4 2.3 电机驱动模块 . 4 2.4 摄像头 . 4 3 嵌入式 Linux 开发环境建立 . 4 3.1 linux 操作系统 . 4 3.2 宿主机和主控板连接环境搭建 . 5 3.3 建立交叉编译环境 . 6 3.4 系统移植 . 7 3.4.1 BootLoader . 7 3.4.2 内核定制 . 7 3.4.3 根文件系统制作 . 8 3.4.4
7、 系统移植 . 10 3.5 驱动程序设计 . 10 3.5.1 Linux 设备驱动程序 . 10 3.5.2 PWM 驱动程序设计 . 11 3.5.3 驱动程序安装 . 12 4 应用程序设计 . 13 4.1 按键应用程序开发 . 15 4.2 LCD 液晶显示程序开发 . 15 4.2.1 Linux 的帧缓冲设备 Framebuffer . 15 4.2.2 液晶显示流程 . 16 4.3 图像采集 . 17 4.3.1 Video4Linux2 . 17 4.3.2 V4L2 视频采集流程 . 18 4.4 图像处理 . 20 4.4.1 Libjpeg 库解压图像 . 20 4
8、.4.2 二值化方法 . 22 4.4.3 中心线确定方法 . 23 基于 ARM的智能机器人图像采集系统软件设计 3 4.5 控制策略 . 27 4.5.1 舵机控制 . 27 4.5.2 电机控制 . 27 结束语 . 29 参考文献 . 30 致谢 . 31 基于 ARM的智能机器人图像采集系统软件设计 1 1 引言 嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、 微控制器、存储器、传感器等一系列微电子芯片与器件 ,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理、等各种自动化处理任务。嵌入式系统以应用为中
9、心,以 微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性和整合性,软件与硬件可裁剪,以满足系统对功能、成本、体积和功耗等要求 ,至今为止无论是消费电子领域还是工业领域、航空领域、军事国防领域到处到能见到嵌入式的身影,它的发展已经深入到人们的生活中了 1 。 设计一个专用系统,传统的开发过程如下:首先是用户需求分析,看看用户需要解决哪些问题;然后是选择处理器和相应的硬件平 台 ;随后是硬件的设计(包括原理图和PCB)调试,先看硬件 是否 可以正常工作;接着是软件调试,包括处理器的初始化、中断、外设等,都需要自己编程控制,基本上每一次开发都需要经历这个流程。而对于一个嵌入式系
10、统,基本的处理器和核心电路是固定的,操作系统是已经移植好的。做产品所需要做的工作就是看看是否要添加外设,然后编写所添加外设的驱动程序,最后就是编写应用程序。传统开发 过程和嵌入式开发过程对比可以 看出,一个成熟的嵌入式系统,可以 避免重复劳动,缩短开发周期 1, 嵌入式 系统具有通过系统调度实现 多任务同时进行的功能,这是 其他处理器所无法比拟的。 本课题通过开发基于 ARM 的智能机器人图像采集系统,控制 智能 小车沿着赛道黑线行驶 ,旨在 深入 了解基于 ARM和 Linux 的嵌入式系统的开发流程, 为进一步学习嵌入式打开大门。 2 智能机器人图像采集系统硬件 平台 智能机器人 图像采集
11、 系统硬件结构主要由七部分组成: ( 1) 以 S3C2440、 Mega1280 为核心的两块 开发板; ( 2)电源管理模块。 ( 3) USB 摄像头。 ( 4)按键。 ( 5)串口。 ( 6) LCD 液晶显示器。 ( 7) 智能 小车 。 系统硬件结构图 如图 1 所示 : 基于 ARM的智能机器人图像采集系统软件设计 2 图 1 系统硬件结构图 整体设计实物如图 2所示 : 图 2 整体设计实物图 USB 摄像头 S3c2440 控制板 Mega1280 控制板 赛 道 基于 ARM的智能机器人图像采集系统软件设计 3 2.1 Micro2440 开发板 Micro2440 开发板
12、由核心板 Micro2440 和底板 Micro2440SDK 组成。 Micro2440 核心板是一个最小系统板, 它具有最基本的系统配置: (1) CPU 三星 S3C2440,运行于 400Mhz。 (2) NOR FLASH 2M,内部已烧录 bootloader,主要用于裸机开发和引导系统移植 (3) NAND FLASH 64M 可升级到 128M-1G。 (4) SDRAM-64M, 片外同步动态随机存储器,由 2片 16-bit 宽度的 32M SDRAM 组成 。 Micro2440 核心板 如图 3所示 。 图 3 Micro2440 核心板 图 4 Micro2440SD
13、K 底板 基于 ARM的智能机器人图像采集系统软件设计 4 Micro2440SDK 底板是基于 Micro2440 核心板的功能测试底板,上面有各种常用的接口,如标准 RJ-45 网络、音频输入输出、 USB、 SD 卡座、串口、 CMOS 摄像头、 LCD、按键等等。丰富的接口为学习嵌入式提供了很大的便利。 Micro2440SDK 底板如图 4所示 。 2.2 电源模块 智能机器人使用 7.2V 镍镉电池供电, 系统中 控制板和舵机 使 用的电源电压为 5V,电机驱动 直接使用电池作为输入电压 ,为了 使舵机工作时不对开发板供电产生干扰,使用两片 5V稳压芯片 L7805 和 LM257
14、6分别给舵机和开发板供电。 L7805 具有纹波小电压稳定的特点 , 允许输出最大电流为 1.5A, LM2576 输出电压纹波比较大但是允许输出电流可以达到 3A,舵机需要稳定的电源, L7805完全 能够满足需求 。两块控制板耗电量大,采用 L7805 会导致过度发热, 选用 LM2576 作为其电源转换芯片 。 2.3 电机驱动 模块 智能 机器人采用 BTS7960 芯片作为电机驱动模块, BTS7960 是 半 桥驱动芯片,电流最高 43A,内阻小,发热量少,是一款理想的电机驱动芯片,由于智能车在行驶过程中不需要倒车,所以只用一片 BTS7960。 2.4 摄像头 智能机器人的感知模
15、块采用中星微 ZC301芯片的 USB摄像头,这种摄像头 价格 便宜,使用方便,采用 硬件压缩 ,直接获取 的 是 jpeg 图片 。 3 嵌入式 Linux 开发环境建立 3.1 linux 操作系统 Linux 操作系统核心最早是由芬兰的 Linus Torvalds 1991 年 8月在芬兰赫尔辛基大学上学时发布的,后来经过众多世界顶尖的软件工程师的不断修改和完善, Linux得以在全球普及开来,在服务器领域及个人桌面版得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势 2,具体如下: (1) Linux 开放源代码,不存在黑箱技术,遍布全球的众多 Linux爱好者又
16、是 Linux开发者的强大技术支持 。 (2) Linux 的内核小、效率高,内核的更新速度很快 而且可以根据项目需求定制内核以减小内核 。 (3) Linux 是免费的 OS,在价格上极具竞争力 。 (4) Linux 适应于多种 CPU 和多种硬件平台,是一个跨平台的系统 。 基于 ARM的智能机器人图像采集系统软件设计 5 (5) Linux 性能稳定,裁剪性好 。 (6) Linux 支持多用户、多任务、多 线程。 3.2 宿主机和主控板连接环境搭建 要使用宿主机(即 PC 机)和主控板进行通讯等操作,必须要使用串口连接线等工具把 PC 机和主控板的外部接口连接起来,利用 PC机上的相
17、应软件,建立宿主机和主控板的连接环境。分别使用连接线将主控板的串口 0、网络接口、 USB Slave 接口和 PC机的串口、网口、 USB口连接起来,建立起宿主机和主控板的硬件连接环境 。 为了通过串口连接主控板,必须使用一个模拟终端程序,本次设计使用 WindowsXP系统自带的超级终端程序。超级终端程序通常位于 “开始 -程序 -附件 -通讯 “中,选 择运行该程序,构建主控板和 PC 机的串口连接环境。超级终端设置步骤如下: (1) 打开超级终端程序 。 (2) 按超级终端向导提示,分别在“默认 Telnet 程序”和“位置信息”对话框选“否”选项,并确认操作 。 (3) 在“新建连接
18、”对话框输入新建连接的名称并选择图标,确认操作 。 (4) 在接下来弹出的对话框中根据自己的串口使用情况选择连接的串口,确认操作 。 (5) 设置串口参数,注意若此处串口参数设置错误,串口通讯将不正常。串口参数设置如图 5 所示。 图 5 串口参数设置 为了方便移植和开发,还要安装 USB 下载驱动,配合 USB 下载软件 dnw,实现宿主机向主控板的 USB下载。从网上下载 dnw 软件和 USB下载驱动,在 PC 机上双击驱动安装程序安装驱动,然后将控制板上电,这时 PC 会提示发现新的 USB设备,按向导提示操作即可。 开发板上电后如果驱动程序已经安装好这时可以看到 DNW 的标题栏显示USB: OK, 点击 DNW 菜单 Configuration,设置 Baud Rate 为 115200, COM Port 为COM1, Download Address 为 0x30000000。 DNW 设置参数 如图 6所示 。