摘要:针对现在机器人技能普遍存在的本钱高、功耗大、实时性差的缺陷,选用功用高、本钱低、功耗低的S3C2440芯片作为中心处理器,移植实时性较高的Linux操作体系,以增强体系的实时性和可靠性,完结机器人的准确实时操控。并经过规划视频收集模块、语音辨认模块、无线传输模块等功用模块,使体系具有实时监控、语音操控、无线传输等功用。
现在机器人技能已广泛使用在太空勘探、救灾防爆、海洋开发等范畴,可是其存在的本钱高、功耗大、实时性差的问题必定程度上阻止了机器人进入人们日常日子。ARM处理器是一种高功用、低本钱、低功耗的RISC芯片,并移植功用强大、运转安稳的Linux操作体系能使体系的本钱、实时性、功耗等功用指标得以改进。
根据以上考虑,文中选用根据ARM处理器的嵌入式渠道,经过规划视频收集模块、语音辨认模块、无线传输模块,构建一个相对完善的多功用机器人。可使用于无人工厂、库房、服务机器人、不知道道路勘探和人类不能存在或长期存在等环境中。
1 体系整体规划方案
整个体系的规划分为硬件规划和软件规划两部分。体系的整体结构如图1所示。硬件部分首要包含:操控器的挑选以及操控器与外围设备的接口电路,选用模块化规划,首要包含电源模块、电机驱动模块、视频收集处理模块、语音通讯模块等。体系软件以Linux操作体系作为开发渠道,规划各功用模块详细程序以及设备的驱动程序等。
1.1 体系硬件规划
1.1.1 主操控板
ARM嵌入式处理器是一种高功用、低功耗的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 300×1 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所示。
将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模块的加载。