基于ARM芯片和LINUX嵌入式系统具有自主避障功能的机器鱼设计

发布者:朝霞暮雨最新更新时间:2018-04-05 来源: eefocus关键字:ARM芯片  LINUX  自主避障功能  机器鱼 手机看文章 扫描二维码
随时随地手机看文章

      随着科技的发展与进步,出现了具有特殊功能的智能机器,如索尼公司生产的能够以自我“意识”来“感觉”“学习”和“饲养”的宠物机器狗,以弗吉尼亚理工大学研制的CHARLI-L1机器人为基础进行升级改造的SAFFIR的消防机器人等。机器鱼作为一项比较新的产品,涉及到机器鱼的智能开发并不深,因此机器鱼的智能化程度并不高,但随着机器鱼研究的加深,相信机器鱼的智能度会大大提高,功能也会更趋完善。目前的机器鱼类型主要有遥控机器鱼和语音控制机器鱼,例如曾在德国汉诺威电子展上展现的通过机器鱼体内收缩来提供动力的遥控式机器鱼和在西南民族大学诞生的国内首个的声控机器鱼等。据调查显示同内涉及到具有自主避障与自主视觉功能的智能机器鱼的研究与开发并不多。由于技术等诸多原因我们选择了设计自主避障的机器鱼。由于机器鱼具有机动性、高效性、低噪性等优点,所以高智能的机器鱼适合去完成如探测污染物质、绘制港口的实时立体图和对海底资源进行探测等具有一定难度和危险的任务。由于国内涉及到机器鱼智能的开发程度不高,所以高智能的机器鱼研发有较大的空间。

    1 硬件系统设计

    1.1 工作原理

    机器鱼主硬件原理如图1所示。机器鱼的自主避障功能是通过以ARM芯片、LINUX嵌入式系统、红外传感器等结合实现的。机器鱼在水中分别通过摄像头、红外传感器、LCD进行画面采集、自主避障和画而显示。摄像头采集到图片后,图像被缓存于SDRAM中。ARM芯片通过红外传感器的AD管脚向发射器传送命令,使探测器的发射模块不断地向外发送红外线,当接收器接收到返回的红外线后会立刻通过AD管脚向ARM芯片传送与红外线返回的光强相应的电压,电压经过ARM芯片的A/D转换器转变成十位的二进制数字量,通过一定的公式计算出此时与障碍物的距离。当计算出来的距离小于预设量时,ARM芯片的控制软件执行一个串行中断指令改变脉冲的脉宽即改变改PWM波的占空比变,进而改变机器鱼的游向从而避开障碍物。

   a.JPG


    1.2 ARM芯片模块设计

    ARM处理器拥有16/32Bit内核和具有450MIPS运算能力。400MHz的标准工作频率可满足高速的应用要求。ARM主芯片有内置数字摄像头接口,可选配130万像素CMOS号业摄像头进行图像采集。ARM处理器的外围扩展了64M的SDRAM和FLASH,ARM主芯片支持Linux、uCOS-II、WINCE等操作系统。ARM芯片高度集成,主芯片拥有CPU、Nand flash、Nor flash、Ethernet controller等资源。CPU内的所有可用资源可通过200PIN引脚引出。接口核心板可以单独构成系统,无需外围器件。

 

    嵌入式Linux (Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或单片机中。它具有成本低、源代码开放和移植性好的优点。在工程中得到了广泛的应用,适合于特定嵌入式的应用场合。

    1.3 红外模块

    红外线是介于可见光和微波之间的一种电磁波。它兼具可见光折射、反射、直线传播以及微波的贯穿一些不透明物质和较强的穿透的能力。红外传感器包括红外发射模块和红外接收模块。科学实验表明温度高于绝对零度的任何物体均可产生红外辐射,因此红外传感器要有更强的发射红外的能力。

    距离探测器的类型主要有激光探测器、视觉探测器、超声波传感器和红外传感器。由于激光探测器和视觉探测器比较昂贵而且对控制器的要求很高,所以不选为机器鱼的避障器。超声波传感器测距范围一般在30~300 cm,可见短距离测距是超声波传感器的盲区。能“看”到几米之外障碍物对于机器鱼的意义并不大,而红外传感器的测距距离一般在几十厘米之内,因此我们选择红外传感器作为机器鱼的避障器。

    GP2YOA21YK0F是夏普的一款距离测量传感器。它由PSD(position sensitive detector)、IRFD(infrared EMItting diode)以及信号处理电路三部分组成。由于采用了三角测量方法,所以被测环境温度、物体的材质以及测量时间均不会影响传感器的测量结果的精确度。接收到反射回来的红外线后,传感器输出一个与返回光强成正比模拟电压。输出的模拟电压经过ARM的A/D转换器变成数字量,数字量传到MCU后以一定的算法计算出机器鱼与障碍物之间的距离。将探测的结果与预设值比较,若大于预设值则不执行中断即继续前进,否则执行中断进行避障。红外传感器硬件原理如图2所示。

   b.JPG

    1.4 摄像头模块

    为机器鱼配备的摄像头是CMOS数字图象传感器。采用的是Ommvision公司的OV9650,OV9650具有130万的像素、10Bit的数据接口与标准SCCB接口,其分辨率达1280x1024并采用CSP-28封装该摄像头用类似于IIC总线的Secb总线连接到ARM主芯片的IIc接口进行通信。在ARM芯片中,摄像头的接口控制模块(CAMIF)由图像采集模块、视频预览尺度模块、模式混合模块、特殊功能寄存器(SFR)模块、码流尺度模块、视频预览DMA模块以及码流DMA模块构成。COMS摄像头OV9650输出的ITU-656格式视频码流,经CAMIF处理后,将采集到的视频码流成两路不同的格式进行传输,两路格式不同的信号分别进入不同的帧存储单元进行存贮,之后根据ARM控制器的指令通过视频DMA通道进行传输。摄像头原理如图3所示。c.JPG

    
1.5 LCD模块
    LCD液品显示器是(Liquid Crystal Display)的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。LCD有扭转式向列型(Super Twisted Nematic,简称STN)和薄膜式晶体管型(Thin Film Transistor,简称TFT)两种主流类型。因为TFT有反应速度快、可视角度大、色彩丰富、分辨率高、对比度、亮度高等优点,所以我们选择TFT的LCD。LCD硬件原理、LCD控制器功能如图4所示。

    d.JPG


    LCD的工作受其控制器控制完成,图5为LCD控制器功能图。通过LCD控制器的寄存器组REGBANK来对LCD控制器的各项参数进行设置。而LCDCDMA则是LCD控制器专用的DMA通道,负责将视频数据从显存(显存是SDRAM中的一块区域,可利用REGBANK编程设定)中取出,并从VIDPRCS从VD[23:0]发送给LCD屏。同时LPC3600和TIMECEN负责产生LCD屏所需的控制时,然后从VIDEOMUX送给LCD屏。TIMEGEN包含可编程逻辑,可通过程序进行设定。TIMEGEN能产生不同LCD屏驱动电路所需要的时序信号。

 


   e.JPG

    
    LCD部分接口介绍。VFRAME/VSYNC/STV接口:传送LCD控制器和LCD驱动器之间的帧同步信号。
    VLINE/HSYNC/CPV接口:传送LCD控制器和LCD驱动器之间的同步脉冲信号。
    VCLK/LCD_HCLK接口:传送LCD控制器和LCD驱动器之间的像素时钟信号。
    VM/VDEN/TP接口:传送LCD驱动器使用的交流信号。
    VD [23:0]接口:LCD的像素数据输出端即RGB信号线。

    2 系统软件设计
2.1 主程序流程
    ARM芯片通过AD管脚对红外传感器的发射模块传送命令。发射模块发射红外线,接收模块接收遇到障碍物反射回来的红外线,根据返回光强产生相应的模拟电压,经过A/D转换器后变成十位的二进制数据量,通过一定算法计算出到障碍物的距离。ARM芯片判断计算出的距离与预设值的逻辑关系,根据结果判断是否进行避障。摄像头采集图片后,将图片缓存于SDRAM中,LCD读取数据并将图像显示出来。主程序流程如图6所示。

   f.JPG


    2.2 红外模块

    在ARM的A/D进行转换时,首先要对ADC控制寄存器进行初始化,选择进行转换的模拟输入端,进行A/D转换,并从ADCDAT0读取转换结果。探测的结果小于预设值时ARM芯片执行中断,改变PWM波的占空比使机器鱼转向进行避障,反之继续前进。红外模块流程如图7所示。

    2.3 摄像头模块

 

    摄像头属于字符类设备,所以能够像字节流一样被程序访问,而且只能够按顺序读写。Linux内核程序通过设备的位号来寻找摄像头。Linux内核发送测试信号到地址0X9650,以检测摄像头是否存在。OV9650拥有多组寄存器,图像的输出编码方式和分辨率等参数取决于OV9650的寄存器。IIC (Inter Integration Circuit)是指内部整合电路,是常用的标准串行接口。系统是通过IIC总线对寄存器进行整体配置,所以此过程不会占用系统数据总线。考虑到图像传输的效率,所以摄像头与ARM芯片之间的Data[0]~Data[7]的通道仅用以传输图像数据。以下为摄像头的部分初始化代码。

    SRCWidth=640-WinHorOffset*2;//CAM_SRC_HSIZE为640,CAM_SRC_VSIZE为480

    SrcHeight=480-WinVerOffset*2;//计算得SrcWidth=440,SrcHeight=280

    rCIWDOFST=0;//窗口垂直偏移为0

    rCIWDOFST=(WinOfsEn<<31) | (WinHorOffset<<16) | (WinVerOffset);//水平偏移为100,垂直偏移为100

    rCISRCFMT=(1<<31) | (0<<30) | (0<<29) |(640<<16) | (0<<14) | (480);//30位设置为1后,图像颜色失真,偏彩色

    Calculate Prescaler RatioShift (SreWidth,PrDstWidth,&PreHorRatio,&H_Shin);//计算并设置突发长度

    Calculate Prescaler RatioShift (SrcHeight,PrDstHeight,&PreVerRatio,&V_Shift);//计算水平和垂直缩放比率和位移量、水平和垂直比率

    摄像头模块流程如图8所示。

    g.JPG

      3 结束语

    本文介绍了红外探测器在机器鱼上的应用以及画面的实时显示。通过红外传感器使机器鱼具有了自主避障的功能。实验表明基于ARM芯片和LINUX嵌入式系统平台开发的自主避障功能的机器鱼具有较高的实时避障功能,表明该机器鱼具有灵敏度较高的自主避障功能。此设计提高了机器鱼智能度,可作为后续自主视觉机器鱼开发的基础。相信随着高智能的机器鱼的研究与设计会给人类探索、开发海洋提供更多的帮助与便利。


关键字:ARM芯片  LINUX  自主避障功能  机器鱼 引用地址:基于ARM芯片和LINUX嵌入式系统具有自主避障功能的机器鱼设计

上一篇:基于ARM的11种嵌入式操作系统大盘点
下一篇:基于LPC1766的直流无刷电机控制系统的设计

推荐阅读最新更新时间:2024-03-16 15:59

第四部分 linux led驱动代码分析
一、LED驱动 1、对led驱动的测试 对于向led这样的设备模型,系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动。设备模型会产生一个虚拟的文件系统——sysfs,它给用户提供了一个从用户空间去访问内核设备的方法,它在linux里的路径是/sys。如果要写程序访问sysfs,可以像读写普通文件一样来操作/sys目录下的文件。 对于led的移植不需要任何的修改,首先需要在make menuconfig里面选择: Device Drivers LED Support – -* - LED Class Support * LED support forsansung s3c24xxG
[单片机]
第四部分 <font color='red'>linux</font> led驱动代码分析
OK6410A 开发板 (八) 16 linux-5.11 OK6410A start_kernel 打印角度 第二阶段 do_initcalls
log // init_jiffies_clocksource- ... - __clocksource_register_scale clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns // futex_init futex hash table entries: 256 (order: -1, 3072 bytes, linear) // netlink_proto_init NET: Registered protocol family 16 // atomic_pool_
[单片机]
基于嵌入式Linux的自助点菜终端设计
引言 随着人民生活水平的提高和生活方式的转变,餐饮业的市场急剧扩大,利润飞速增长,被称为中国的黄金产业。而电子点菜系统的应用,提高了餐馆档次和营业效率、优化了业务流程,为餐饮行业带来崭新的管理理念与服务手段。目前较为流行的点菜终端主要分为2种模式。第一种采用单片机和无线模块实现,该模式成本低,但是功能和界面较为简单,通信距离也较短,使用者一般是服务员;另外一种采用商业PDA和无线网卡实现,功能强大,界面华丽,操作方面,但成本较高,不利于大范围推广与应用。此外,友好的自助点菜终端要给客户提供诸如每道菜肴的名称、插图、介绍和价格等各种相关信息,这些信息需要随着菜单的变化实时更新。由于嵌入式系统的存储空间有限,大量的图片等信息存储和实
[单片机]
基于嵌入式<font color='red'>Linux</font>的自助点菜终端设计
基于ARM Linux的电子控制油门设计
1 系统原理 1.1 电控油门原理   工作时,由驾驶员发出转速的控制指令,由节气门开度传感器采集发动机的转速参数,并把信号输入电控单元;电控单元将控制信号和反馈的节气门位置信号进行比较,根据比较的结果来驱动执行器改变节气门的开度,使实际的开度与控制开度达到一致,从而实现车速的自动控制。 1.2 舵机控制原理   舵机是一种位置(角度)伺服驱动器,适用于那些角度需要不断变化并可以保持的系统。S3003型舵机有3个引脚,分别为电源Vcc、地GND和控制线Signal。控制信号由Signal通道进入信号调制芯片,获得直流偏置电压 。它的内部有一个基准电路,产生周期为20 ms、宽度为15 ms的基准信号,将获得的直流偏置电
[单片机]
基于ARM <font color='red'>Linux</font>的电子控制油门设计
基于S3C44BOX处理器和Linux操作系统实现物流PDA无线终端的设计
科学技术的进步带来了物流业的巨大变化,从机械化向自动化、智能化发展。我国物流业起步较晚,目前还处于人工管理或半自动管理状态,效率不高。随着物流业的发展,仓储规模不断扩大,货物种 类不断增多,带来一系列连锁反应,导致传统的物流业日渐吃力。 嵌入式扩展技术的发展可为物流MA控制领域提供强大灵活的解决方案。本文研究方案将嵌入式扩展技术系统应用于物流控制领域,采用嵌入式处理器以及丰富的外围扩展接口,配以液晶触摸屏,实现了人机交互。结合条码采集器,实现实时采集数据信息,通过无线传输实时连接服务器数据库;实时盘点货物、出入库;实时查询信息及时调度;还具有存储语音数据、简便快捷、避免人为错误、精简人力、管理库存、缩短繁杂程序、节省时间、提高
[单片机]
基于S3C44BOX处理器和<font color='red'>Linux</font>操作系统实现物流PDA无线终端的设计
ARM9学习---虚拟机中LINUX与主XP系统数据通信
我在XP系统中安装了虚拟机,VMwave,安装了redhat 的Linux系统,但是有些需要在Linux系统中安装软件等,所以需要从XP系统中把文件传输到Linux系统中。我接触 Linux系统时间不长,所以也不是特别的熟悉,所以先学了一种方法,就是利用FTP传输的方法,就是在主XP系统中安装一个FTP软件(我用的是G6 FTP Server V2.0软件)安装很简单,只要设置好IP地址和路径就可以了。我主要是用XP传输给Linux系统,所以很简单。在Linux系统终端中进入你所需要下载文件的文件夹,然后键入:ftp 192.168.50.103(我主机的IP地址) ,如果有用户名和密码,那就键入相应的用户名和密码,如果显示conn
[单片机]
s3c6410的RTC在linux中的驱动(2)
上一篇主要是关于 s3c6410的RTC在linux中驱动实现的整体结构框图,只有明白整体结构,我们才能进行自己的特定平台的RTC设备的驱动开发。这一篇我们就深入分析RTC设备驱动的具体实现。 1、根据上一篇的分析,我们直接看Rtc-s3c.c (linux2.6.28driversrtc)文件。首先注册一个平台设备,然后由平台设备负责完成RTC的驱动工作,看下面的源码: static char __initdata banner = S3C24XX RTC, (c) 2004,2006 Simtec Electronicsn ; static int __init s3c_rtc_init(void) { printk(ba
[单片机]
在MIPS开发板上建立Linux系统及开发环境
作者Email: jie_yi@sohu.com 介绍了利用已有的MIPS版Linux源文件包,编译可运行的Linux内核的方式;讨论了在主机上建立相关服务器,通过NFS服务从主机上下载内核,在无盘开发板上启动Linux的方法。 关键词:MIPS NFS 启动Linux 一、引言 大多数基于MIPS处理器的平台上都没有提供软、硬盘接口,一般情况下,也没有在板载Flash里烧入可使用的操作系统。没有操作系统,用户的使用就会受到很多限制,应用程序的开发、调试过程就会变得相当复杂。因此,建立合适的操作系统及开发环境,可以方便用户,简化开发调试过程。本文以RedHat Linux 为例,说明在RM7000A处理器无盘
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved