Profile - CN280


CN280

Nios II嵌入式处理器在竞赛机器人上的应用

新疆大学
电子系


Finals


[print]


Project

Name of Project:Nios II嵌入式处理器在竞赛机器人上的应用

Contact Information

Name:张莉
E-Mail:zhangli_xju@sina.cn
Telephone:13579941575
Mobile Phone:13579941575
Mailing Address:新疆乌鲁木齐市胜利路14号新疆大学信息科学与工程学院通信07-3

Contest Advisor

Name:汪烈军
E-Mail:wang858@sina.cn
Telephone:13999816618

Members

No.NameE-MailEnglish Name
1张莉zhangli_xju@sina.cnzhang li
2张仁友kxman_123@sina.comzhang ren you
3张维忠mail_box_zwz@sian.comzhang wei zhong

Project Paper - view as Preliminary(2010/06/01), Final(2010/09/18), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

1.设计概述
1.1 设计意图
我们现在生活在一个机器的时代,一个智能的时代,为了特定的用途而设计出的机器人在这样的一个时代里得到了非常广泛的应用,它的应用不仅提高了生产的效率,还保证了所制造出的产品的质量。由此,机器人的控制就逐渐受到了人们的关注,而为了促进机器人技术的进步,各种各样的机器人比赛也应运而生。然而,在这多元化的机器人竞赛中,它们的共同点都是在同样的环境下配合完成或各自完成特定的任务。
本设计以2010年亚太机器人大赛为背景,按照其规则,我们设计的机器人将完成以下任务:1)、在启动区装载方块形积木,并按一定的路径运送到目的地;2)、与“机器人队友”合作把积木垒成金字塔形状,如图1-1所示(图片由官方规则视频截取编辑)。具体地说,机器人至少应该具备以下功能:1)、识别场地颜色;2)、规划路径,躲避障碍物;3)、与“机器人队友”合作装载卸载积木;4)、与“机器人队友”建立合适的通信协议等。
                                                                                                        (a)
                                                                                                        (b)
                                                                                    图1-1 机器人任务示意图
 
1.2 适用范围
    尽管本次设计是以2010年亚太机器人大赛为背景,但是正如前面所说的,机器人竞赛的目的是为了促进机器人技术的进步,所以该设计并不局限这一单一的比赛。
1)、我们首次把基于Nios II的SOPC技术引入此类机器人竞赛。因为,根据我们小组所在的创新实验室以往参加该类比赛的经验,基本上所有的参赛队伍都以单片机等作为控制核心。显然,由于该类器件本身的不可裁减性,在很大程序上限制了机器人更好地完成任务;
2)、利用FPGA的可灵活配置特性和Nios II的可裁剪特性,设计中的很多模块可以添加到其他机器人应用中,如。如采用PID算法的电机调速模块、颜色传感器控制模块等,这些模块都是根据Avalon总线规范设计,可以直接挂载到Avalon总线上供Nios II软核使用。
3)、可作为高校学习基于Nios II的SOPC技术的一个实验平台。通过此次设计,我们有一个很深刻的体会,这样的平台上对我们学习效果的提高作用非常明显。

 

1.3 采用Altera器件的原因
同样的系统设计可以由不同的核心器件来完成对整个系统的控制。不过控制核心大概可分为单片机、DSP、ARM及FPGA等,它们也各有各的特点。但是,对于单片机或其他内部资源固定的控制核心,如果要完成多项复杂任务,往往受其有限的内部资源的限制,如定时器个数,I/O个数,串口个数等。另外,单片机等控制核心纯粹地应用软件控制外围模块,而利用FPGA可以软硬件并行处理。综上,我们总结以下几点选择DE0进行设计原因:
1)、DE0采用Cyclone III系列FPGA,其提供了大量的逻辑资源,乘法器,M9K存储器区块,并且大大降低了功耗。另外,完整的开发套件为我们的开发提供了极大的便利;
2)、DE0已经扩展了FLASH和SDRAM,而SOPC Builder提供了这类存储器的控制器,大大方便了我们构建Nios II系统。同时,相比于单片机等器件,我们也可以很方便的把用户数据存储在这些存储器中,而不需要太多的软件操作;
3)、SOPC Builder本身集成了很多IP核和指令,用户可以根据自己的需要添加或删除;除此之外,可以把自己设计的IP核或自定义指令添加到系统中,方便程序开发人员使用;

       4)、在设计的初期,我们的考虑往往还不够成熟,所以软硬必需反复更改,而采用基于Nios IISOPC概念进行设计,做类似的更改非常方便且甚至可以不影响软件开发的人员的工作。

(Revision: 2 / 2010-05-31 12:40:32)

2. 功能描述 (Final Project Paper)

 

2. 功能描述

         本设计是基于DE0开发平台,将硬件设计与Nios软核处理器相结合,所建立起的SOPC系统,采用嵌入式系统与普通的系统相比有一定的优越性,主要体现在它的系统灵活性和高速的处理速率:首先,SOPC系统具有在硬件的可重构与可重配置,这是FPGA在硬件开发过程中独一无二的特点。其次,Nios II软核处理器,具有可裁剪的特性,所以我们可以按照实际需要重复选择必要的系统配置,而不用过多的考虑硬件方面的问题。使用自定义用户指令、自定义用户外设的方式可以对系统的性能给予很大的提高,从而使机器人系统的实时性得以保障并以此来满足在该系统中场地路线参数采集、电机控制等任务从而实现机器人的定位;运用红外传感器、继电器、限位开关等实现机器人手臂抓取物品的功能。
 
 2.1 自定义场地路线参数采集IP
          通过TCS230颜色传感器读取场地不同颜色的反射频率,运用系统中添加的频率计模块计算场地上不同位置的RGB值,同时使LED按固定周期闪烁,当LED灯开时输出的频率是环境光和LED灯光共同作用的结果,当LED灯灭时输出的频率只是环境光作用的结果,对频率定时计数并作差所得结果基本上为LED单独作用的结果。这样就可以在最大程度上抑制环境光的影响,确保机器人在场地寻找路径的过程中有正确的定位。
        该IP采集的值可以通过Avalon总线传输给Nios II,由Nios II完成白平衡及RGB值调整,由于涉及到浮点运算,而Nios II系统加入了浮点运算指令,使用起来非常方便。
 
2.2 自定义电机PID调速IP
该模块主要实现机器人的移动及手臂抓放物品的功能.在完成机器人移动的电机上加入编码器模块,编码器向SOPC系统反馈电机的正、反转及转速,系统在读取编码器的反馈值的同时根据具体需求发出对左右电机的控制信号,左右两路控制信号包括电机的正反转信号(C1L、C2L、C1R、C2R)及控制电机转速的信号(PWML 、PWMR),并将该控制信号作为H桥的输入信号,最终实现机器人的前进、倒退及转弯动作;完成机器人的手臂抓放任务的电机由系统发出正反转信号控制电机动作,以此来实现机器人在走到具体位置后抓放物品的功能。
Nios II软核可以通过Avalon总线读/写速度,读/写方向,启动停止电机等操作。
 
2.3  手臂控制模块
        该模块由嵌入式系统发送控制信号给继电器,通过继电器的不同组合状态控制手臂电机的正反转,在手臂控制模块的机械结构中加入限位传感器,当手臂的一个动作执行完毕限位开关会发送反馈信号给SOPC系统,系统读回反馈信号,执行下一动作。
 
2.4  红外通信模块
    该模块在硬件电路上由红外发射对管实现嵌入式系统对外界红外控制信号的接受及由系统向外界发送通信请求信号,在嵌入式系统中添加UART模块来处理收发信号,从而可以实现在比赛场地中自动机器人之间的通信功能,或是完成人机通信的功能。
 
2.5  液晶显示模块
为了实现机器人与人的互动功能,我们在工程中加入1602液晶显示模块,显示机器人执行动作的状态以及提示信息,有助于人对机器人的控制。1602直接挂载在三态桥上,与FLASH共享数据地址信号,大大节省了端口。
 
2.6 DE0试验开发板
 开发板上的flash单元存有控制整个系统运行的程序和硬件模块,在上电复位后即可直接顺序运行程序,系统的运动由开发板的Nios II CPU 负责,外围采集系统采回的信号经过电平转换的保护电路直接输入至系统开发板上的输入引脚, PIO 端口输出数字控制信号至外围执行电路信号端。

 

(Revision: 2 / 2010-05-31 12:44:15)

3. 性能参数 (Final Project Paper)

3、 性能参数

        对于本系统而言,要求机器人的定位准确,而且场地参数的采集需要较高的运算速度,我们用ALTERA公司提供的QUARTUSII下的SOPC硬件搭建平台完成嵌入式系统的硬件搭建工作,在SOPC builder中加入TCS230颜色频率采集模块,该模块的五路输入信号为TCS230采集到的五路反馈值,与传统单片机顺序采样不同,在本系统中可以实现多路同时采样,大大缩短了采样时间,使处理器能在更短的时间内得到机器人的方位信息,并且及时地给予纠正,这样机器人在行走过程中就能够及时的调整移动方向,避免了由于处理时间过长而导致的机器人迷失方位问题。经过实物测试该系统能良好的完成机器人的规定动作,同时降低软核处理器的复杂性,保证系统有较高的运算速率。

图3-1总体资源使用情况

3.2 采样周期

 
系统在进行场地参数实时采集时完成一个周期的采样时间为14ms,采集的数据为数据采集模块正下方场地颜色RGB值。并且可以保证在采集过程中相同颜色在同一片采集区中的各返回值之间误差不大于5,这样更便于机器人在移动过程中的快速精确定位。
 
3.3电机调速
 
   在运用编码器对电机调速时,左右电机装有编码器,实时地反馈机器人的前进、后退以及转速的信息,两路信号经过encoderLencoderR输入片上系统,系统可以根据反馈值与给定输出值的差给出一定占空比的PWM波,从而控制电机的转速,系统中运用此方法可以实现电机的60级调速,满足机器人在行进过程中的各种行走要求。
 
3.4 DE0开发板使用情况
 
     FPGA:Altera Cyclone III EP3C16F484C6;
动态存储器:8MB SDRAM;
闪存:4MB FLASH;
50MHZ晶振;
开关、按键、LED、数码管;
(Revision: 4 / 2010-08-15 12:48:37)

4. 设计结构 (Preliminary Paper)

 

4.设计结构
   4.1 系统体系结构框图,如图4-1所示.
                                                                            图4-1 系统组成结构图
                      
       通过颜色传感器感知场地颜色,位置及手臂动作用于感知机器人所处的位置及手臂动作执行情况,红外发射接收模块用于与“机器人队友”通信,光栅码盘用于调整和运行距离统计。
 
   4.2 系统硬件结构框图,如图4-2所示.
           
 
                                                                              2 硬件系统结构框图
 
4.3 系统软件流程图,如图4-3所示.

                                                                图4-3    系统软件流程图

(Revision: 2 / 2010-05-31 12:41:36)

5. 设计方法 (Final Project Paper)

5、 设计方法

5.1 手臂部分
手臂控制模块的输入信号由FPGA管脚直接输出,单个手臂控制模块电路原理图如图5-1所示,两路信号分别为X0X1,不同的组合状态可以控制继电器的通断,从而实现控制电机正反转的目的,由此来完成机器人手臂的动作。
 
 5-1 手臂动作电路原理图
 
 
5.2颜色传感器
       颜色传感器核心器件采用TCS230,颜色传感器模块电路原理图如图5-2所示。
 
 
              5-2 颜色传感器模块电路原理图
 
5.3系统硬件设计。
 
我们以NiosII软核处理器为核心,采用DE0开发平台,DE0开发板上集成了多种外设接口,并且易于扩展,为我们的设计提供了便利的条件。
SOPC Builder设置如图5-3所示:

                       图5-3 SOPC Builder 设置
 
5.4 硬件实现步骤及实现方法
 
整个设计采用自上而下的设计方法,在SOPC Builder中搭建系统硬件模块。将所需的各功能模块通过Avalon总线集成,这样系统的稳定性更高。SOPC Builder所具有强大的系统集成特性,大大缩短了我们的设计周期,在很短的时间内就可以构建一个稳定的系统,进而基于硬件完成系统的软件设计,最后集成为一个完整的系统。对于设计者而言这种方法不仅设计过程简单而且当体统需要添加新的功能时容易重新配置系统,不必考虑上层设计对配置后系统的适用性。
 本系统的工程模块描述图如图5-4所示:

5-4   工程模块描述文件图

(Revision: 3 / 2010-08-15 12:48:57)

6. 设计特点 (Preliminary Paper)

 

6. 设计特点
(1) 在控制方面采用闭环反馈,自定义实现该控制的IP核,对电机速度进行智能化的调节,在不增加系统成本的条件下,最大限度地节约了资源,同时也节省了软件消耗,使CPU有更多的时间去处理其他操作;
(2) 充分利用NIOS II的优势,采用该种设计方法用户可以定制指令、定制可裁剪的外设等,实现了资源的高效利用,使得系统在不增加其他控制器的条件下完成相同的比赛任务;
(3) 系统的各部分采用自顶向下的模块化设计,可移植性能较强,通用性高,该系统中用到的硬件模块可以应用到其它设计中。使得资源可以充分利用;
(4) 选择FPGA作为控制核心,在不增加核心板的前提下使系统可以承载更多的外围电路设计,使系统即拥有强大的扩展 功能,又不会有过于复杂的线路。

 

(Revision: 2 / 2010-05-31 12:42:48)

7. 总结 (Final Project Paper)

 

7、总结
 
首先要感谢Altera公司给我们提供如此宝贵的锻炼机会,通过参加本次比赛,让我们对NIOS有了更深入的了解,让我们充分体会到NIOS软核处理器作为嵌入式处理器的强大功能。在运用该种方法设计系统时我们可以直接调用开发工具提供的常用IP核,降低了设计的复杂度,使得我们将更多的精力放在设计系统的功能和提高系统稳定性上,极大地提高了设计的效率。其次,要感谢在我们设计过程中给我们提供过帮助和指点的指导老师及学长,在参加本次设计的过程中我们遇到许多问题,如传感器输出管脚与FPGA的IO口相连时要考虑到管脚输入电流限制,在刚刚开始设计时我们遗漏了这个问题导致开发板芯片管脚损坏,经过检查电路发现我们的主控板电源设计有缺陷,进过修改电路终于解决了这个问题。在本次设计过程中我们学会了如何发挥团队的力量,即使再艰巨的任务只要团队中的成员每人分担一部分,问题就会一点一点的解决。
(Revision: 2 / 2010-08-15 12:49:10)