新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM-Linux多功能机器人的设计

基于ARM-Linux多功能机器人的设计

作者:时间:2016-09-12来源:网络收藏

摘要:针对目前机器人技术普遍存在的成本高、功耗大、实时性差的缺点,采用性能高、成本低、功耗低的S3C2440芯片作为核心处理器,移植实时性较高的操作系统,以增强系统的实时性和可靠性,实现机器人的精确实时控制。并通过设计模块、模块、模块等功能模块,使系统具有实时监控、语音控制、等功能。

本文引用地址:http://www.eepw.com.cn/article/201609/304473.htm

目前机器人技术已广泛应用在太空探测、救灾防爆、海洋开发等领域,但是其存在的成本高、功耗大、实时性差的问题一定程度上阻碍了机器人进入人们日常生活。处理器是一种高性能、低成本、低功耗的RISC芯片,并移植功能强大、运行稳定的操作系统能使系统的成本、实时性、功耗等性能指标得以改善。

基于以上考虑,文中选用基于处理器的嵌入式平台,通过设计模块、模块、模块,构建一个相对完善的多功能机器人。可应用于无人工厂、仓库、服务机器人、未知路线探测和人类不能存在或长期存在等环境中。

1 系统总体设计方案

整个系统的设计分为硬件设计和软件设计两部分。系统的总体结构如图1所示。硬件部分主要包括:控制器的选择以及控制器与外围设备的接口电路,采用模块化设计,主要包括电源模块、电机驱动模块、处理模块、语音通信模块等。系统软件以操作系统作为开发平台,设计各功能模块具体程序以及设备的驱动程序等。

基于ARM-Linux多功能机器人的设计

1.1 系统硬件设计

1.1.1 主控制板

嵌入式处理器是一种高性能、低功耗的RISC芯片,具有性能高、成本低和功耗低的特点,不仅能完成控制功能,对运算速度要求较高的场合也能适用,还能运行如Linux、WinCE等复杂的操作系统。ARM微处理器正迅速成为多媒体数字消费、手持设备、便携式通信设备以及嵌入式解决方案市场中RISC批量生产的标准。

主控制板采用TQ2440开发板作为系统控制和数据处理的硬件平台,开发板的主控制芯片S3C2440主频400MHz,性能好、功耗低、体积小、接口丰富,是三星公司生产的一款基于ARM920T核的16/32位RISC微处理器。

TQ2440开发板具有LCD控制器、64MB Nand Flash、64MB SDRAM控制器、一个UART扩展接口、一个五线异步串行接口、RJ45网络接口、DM 9000E 100M网卡芯片、CMOS摄像头接口、触摸屏接口等,支持WinCE、Linux等操作系统。

1.1.2 视频采集模块

图像采集设备采用OV9650 CMOS摄像头模块,130万像素,最高分辨率可达1 300x1 028,敏感度高、功耗低,成像清晰,支持多种图像格式,支持自动图像控制,适用于手持设备、摄像监控设备,并且与TQ2440开发板完全配套。

1.1.3 电机驱动模块及电机

系统采用了L298电机驱动模块,驱动电压为2~46 V,峰值电流为2 A,最大功率可达80 W,同时支持PWM调速;采用FAULHABER空心杯减速电机,工作电压为12 V,空载转速为8100RPM,减速后速为120 RPM,输出功率为17 W。

1.2 系统软件设计

系统软件主要包括移植Linux操作系统,设备驱动的编写,基于V4L的视频采集程序设计,嵌入式Web服务器的设计、语音控制系统的设计等。

1.2.1 嵌入式Linux环境的建立

嵌入式操作系统具有处理能力强、体积小、性能强、功耗低、可靠性高等突出的特征,目前已在消费电子、网络通信、军事国防、工业控制等领域得到广泛应用。Linux系统源代码开放、内核可裁减性强,具有良好的移植性,且集成了TCP/IP协议,有较好的网络功能,因此选用Linux嵌入式系统作为整个系统软件开发的平台。

先安装虚拟机,在虚拟机上安装内核版本为2.6.30的Fedora 10 Linux操作系统,交叉编译uboot、kernel、cramfs文件系统,在配置菜单中选择相应的配置后编译内核,得到内核镜像文件.zImage,将其下载至开发板并完成对宿主机的tftp、nfs服务的配置后,即可控制和调试开发板。

1.2.2 摄像头驱动

使用的Linux版本支持OV9650摄像头模块,只需在Linux Kernel中添加对模块的支持即可成功驱动设备。通过CAMIF接口将OV9650摄像头连接到开发板,设备的驱动程序可直接控制摄像头并进行数据的传输。

将OV9650的驱动程序载入内核时要先对其内部寄存器进行初始化操作,目的是申请所需资源并设置相关的设备;设备成功初始化之后开始进行图像的采集。完成图像采集过程后释放初始化时申请的资源,然后退出并关闭设备,完成采集工作。

1.2.3 无线网卡驱动

无线网卡选用Ralink Rt2870 Wireless LAN Card,通过USB HOST接口将其连接到开发板,无线协议栈的接口由设备驱动提供。由于USB总线首先被CPU检测到,其次才是无线网卡芯片,因此需要在完成Linux操作系统下USB的驱动后再进行无线网卡芯片的驱动,并且在初始化网卡时需先向USB子系统进行注册,判断网卡是否接入系统。无线网络的软、硬件层次结构图如图2所示。

基于ARM-Linux多功能机器人的设计

将USB HOST设置为内核模式,重新编译内核后下载至开发板,启动开发板,插入并挂载U盘。将Ralink Rt2870 Wireless LAN Card驱动保存到Linux目录并解压,进入到解压之后生成的文件夹,修改驱动源码根目录下的Makefile文件后编译驱动,生成.ko文件。将.ko文件复制到文件系统的/tmp目录下,重启开发板,进入文件系统后利用insmod命令将模块加载至内核,完成对设备的驱动。之后插入USB无线网卡,通过#ifcontig ra0 up命令激活无线网卡,其中ra0为网卡接口。完成激活后对无线网络进行配置,配置完成后,打开浏览器,输入无线网络的账号、密码即可实现网络连接功能。

2 功能模块的设计

2.1 基于V4L视频采集模块的设计

V4L是Linux操作系统为视频设备专门提供的应用程序接口,也是系统对视频设备在内核层次上的驱动。通过标准的系统调用就可操纵视频设备,完成打开设备、读写设备和关闭设备等操作。通过make memuconfig命令进入内核配置菜单,在Multimedia devices子菜单中选中Video for Linux,完成内核中对V4L模块的加载。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭