论文网
首页 职业教育教育技术学正文

开源硬件在“智能机器人”实践课程中的应用

  • 投稿郝完
  • 更新时间2015-10-09
  • 阅读量407次
  • 评分4
  • 34
  • 0

邓 欣,王 进,于 洪,王国胤,陈桥松

(重庆邮电大学计算机科学与技术学院,重庆400065)

摘要:针对智能科学与技术专业学生的特点和“智能机器人”实践课程的教学实际,分析教学目的,通过对实验平台的选定和题目的设计,指出基于开源硬件实验平台的“智能机器人”实践教学不仅可以节省平台配置的经费,而且能够降低学生学习并制作实体机器人的门槛,进一步激发学生学习机器人技术的兴趣。

教育期刊网 http://www.jyqkw.com
关键词 :开源硬件;智能机器人;Arduino;实践课程

基金项目:国家自然科学基金(青年基金)资助项目“基于秀丽隐杆线虫本体感受回馈机制的自适应波形运动研究”( 61403054);重庆市基础与前沿研究计划项目“结合本体感受回馈机制与生物神经网络的波形运动爬虫机器人研究”(cstc2014jcyjA40022);重庆邮电大学教改项目(重邮197号)。

第一作者简介:邓欣,男,副教授,研究方向为智能机器人和流程工业知识自动化,dengxin@cqupt.edu.cn。

0 引 言

随着社会生产力的发展,机器人技术得到迅猛发展和广泛应用。与机器人技术相关的专业人才需求逐年增长,但专业人才培养的数量和质量相对滞后。目前,本科院校培养的智能机器人技术相关人才大多从事理论研究、实体机器人和特种机器人的开发等,而关于机器人应用方面的专业较少,从课程内容设置到人才培养还不是很成熟。为了培养学生的实践能力和创新能力,也为培养尽可能多的创新人才,重庆邮电大学计算机科学与技术学院智能科学与技术系从2011年春季起开设“智能机器人”相关课程。

“智能机器人”实践课程是“智能机器人”理论课程的实践部分,为必修课,共计16学时1学分。由于课程涉及多个学科交叉的知识内容,包括机械制造、物理学、电子学与微电子学、控制论、计算机、生物学、人工智能、系统工程等,同时又是一门理论性和实践性很强的课程,因此课程设计和教学难度较大。智能科学与技术专业学生有编程能力强的特点,但其他学科背景如机械、控制、电子等知识相对薄弱,这也增加了“智能机器人”实践课程实验平台选定和题目设计的难度。如果能有一套无需学生了解和掌握底层电路和通讯协议就能直接在开发环境中编写算法程序,然后通过开发环境中的编译器直接把所编写的程序刻录入硬件中便能完成各种机器人行为控制的设备,将大大有利于计算机背景的学生快速掌握机器人开发与应用技术,更早地投入完整的项目实践中,提高创新能力。

经过广泛调研,我们发现Arduino开源平台作为一个典型的开源硬件,有着极强的易用性和扩展性,受到众多电子工程师、手工制作爱好者青睐,在国外应用较为广泛。Arduino开源平台不需要学生掌握复杂的单片机底层代码和汇编语言,只要求学生掌握少量简单实用的自带函数,并且只需在特定的IDE下编程,从而极大地方便了硬件知识薄弱而编程能力较强的学生。

1 开源硬牛Arduino简介优势

1.1 Arduino简介

随着开源硬件技术的发展,由于这类硬件具有简易性和实用性的特点而得到越来越广泛的了解和使用。Arduino作为开源硬件的典型,有重量轻、体积小的特点,属于AVR单片机种类,包含了以ATM芯片为处理器的微型控制器和众多I/O接口[5]。Arduino芯片的扩展性非常强,通过扩展板和自带I/O接口能与键盘、鼠标、红外距离传感器、超声波传感器、LED灯、步进电机、舵机、GPS、蓝牙、Wi-Fi等相连。通过类似Java、C语言的开发环境(IDE)编写程序,可以控制显示器、扬声器、电机、伺服器等设备工作。由于是开源硬件,很多代码能在各种关于Arduino的技术论坛中找到,开发者只要找到类似的案例,下载源代码进行修改、烧写和调试后,便可以成为自己的项目。

1.2 Arduino的优势

目前很多智能专业的学生学习机器人课程时,感觉硬件技术比较枯燥,难以掌握,遇到困难容易失去信心。Arduino具有较强的易用性,提供的30多个例子难度循序渐进,生动有趣,可以令学生由浅入深地学习,逐渐建立自信心,其优势如下。

(1)价格低廉、资源丰富。Arduino开源平台使用AVR系列控制器,价格低廉,容易获得;源代码开放,方便程序员利用开放代码进行程序开发;程序开发接口免费下载,程序员可以按照自己的需求进行修改。

(2)软件开发环境简单易学。对于没有太多硬件编程基础的计算机专业学生,Arduino提供了简单易懂的软件开发环境。学生只要熟练掌握C语言和VC++6.0以上的编程环境,就能学会在该平台开发环境中进行硬件开发。

(3)软硬件开源,可扩展性强。Arduino的PCB和SCH电路图公开,开发人员可以根据基本构架进行修改、改进和扩展。同时,各种库函数开源,开发人员可以通过C++对其进行集成、派生、重载等二次开发。

(4)跨平台性强,应用丰富。Arduino软件可直接运行于Windows、iOS和Linux操作系统等,同时也支持其他程序,如Flash、MAX、Processing、Matlab等。

2 教学实践

“智能机器人”课程主要包括理论教学和实验教学两个环节。要真正掌握课程内容,除理论之外,更重要的是要将理论知识运用于实践。笔者从教学原则、实验保障、教学内容和课程开展4个方面阐述“智能机器人”实践教学的改革方案。

2.1 教学原则

(1)由浅入深,激发学生兴趣。教师可针对计算机学科学生的背景和专长进行实验课程的内容设计,由浅入深,从易到难,循序渐进;用相对简单且容易完成的实例,激发学生的兴趣,树立他们对硬件编程的信心,在内驱力的驱使下,激发学生的求知欲和创造力。

(2)个性化指导,坚持学生为主体。教学上以学生为中心,通过深入调研广泛了解学生的想法和需求;了解当前最先进的技术和最成熟的产品,在构建实验系统时加以应用;结合社会人才需求,确定有针对性的、符合人才培养需要的实验内容。

2.2 教学保障

计算机学院对“智能机器人”实践教学环节十分重视,在硬件方面,不仅提供教学场地、配置高性能计算机、完善软硬件条件,还拨付专门经费用于“智能机器人”实践教学设备购买和场地模型制作,具体包括以下几方面。

(1)购置教学机器人2套,用于教师备课和演示教具。韩国“Robotis机器人”套件价值5万元。

(2) Arduino学习套件25套(50名学生,2人1组),作为实验工具。以每套300元计算,共计7 500元。

(3) Arduino智能小车套件17套(50名学生,3人1组),作为实验部分难度最大的综合实验。以每套500元计算,共计8500元。

(4)其他工具:万用表、螺丝刀套件、电烙铁、导线等,共计2000元。

(5)场地模型一个(光源、迷宫、智能识别路线、机器人灭火等)。场地模型制作费1000元。

(6)计算机:使用学校原有计算机(50台)。

所有的器件合计约69 000元。每年用于购买正常耗损的传感器、控制器、杜邦线、电池等元器件及其耗材的维护费用,共计约2000元。

2.3 教学内容

“智能机器人”实践课程开设于大学三年级春季学期。由于学生在进入三年级前先学习了“人工智能原理”和“单片机原理”两门专业基础课,对人工智能知识有了一定的认识和掌握,此时再进行“智能机器人”实践课程的学习,可以降低学生学习的门槛,加快理论知识与实践结合的进度。实践课程分为基础实验环节和综合实验环节两部分,共计16学时。

1)基础实验环节。

基础实验环节共设置5个实验,每个实验2学时,共计10学时(5次课),实验2人一组,具体安排见表1。第1个实验要求学生在电脑上安装Arduino的IDE,并掌握IDE所有菜单选项的功能和用途;了解和熟悉Arduino控制器各个端口的功能,在教师的指导下把控制器和电脑相连接并实现通讯和通讯监视;最后要求学生学习使用面包板进行电路设计和配置。第2个实验要求学生完成一个彩灯控制系统,虽然程序和过程简单易懂,但是能使学生对Arduino的程序编写、编译和烧录过程有直观了解,激发动手的兴趣和积极性;之后的3次实验分别是光电传感器、超声距离传感器和步进电机控制方面的实验,目的是使学生熟悉这几类典型传感器的使用方法,为综合实验打下基础。

2)综合实验环节。

综合实验环节共3个实验6学时,主要完成寻迹小车的组装和功能实现。学生分为3人一组,具体内容见表2。第1次实验进行小车机械部分组装,完成步进电机、控制器和传感器之间的电路连接;第2次试验根据光电传感器对黑、白线识别的反馈信息,编写控制逻辑,控制小车左右步进电机的不同转速,实现小车的转弯功能,达到小车跟随黑线或者白线运行的目的;最后1次实验根据超声距离传感器的反馈信号,控制小车左右步进电机的不同转速,实现小车的避障功能。课后可增加附加实验,如用蓝牙模块或Wi-Fi模块实现通过手机端对小车运行的遥控等。

2.4 课程开展

“智能机器人”实践课程属于交叉学科,涉及的学科范围较广,需要采用多种适合的教学方法进行授课。

(1)集中讲授法。对开源硬件的基本理论知识,在实验之前采用课堂集中讲授方式,同时增加师生互动模式,让学生参与教学,强调学生在教学中的主体地位。

(2)演示讨论法。用一定量的视频素材进行课堂演示,同时将有关机器人技术的视频素材及相关网址提供给学生,方便他们课余查阅资料和学习。

(3)任务驱动法。设计由浅入深、从易到难、生动有趣的一系列实验,把学生划分成2~3人/组,针对实验题目自主讨论、交流和研究,让学生在实验中激发兴趣,树立信心,为后续学习打下基础。

(4)竞赛指导法。鼓励学生参加“挑战杯”“华为杯”等有关的智能设计大赛,用自己编写的程序赋予机器人以“生命”和“智能”,进一步激发学习和实践兴趣,增强理论功底和实战能力,发现别人的长处,了解自己的不足,对自己的知识和技术不断加以完善。

3 教学成果

按照以上的教学内容和方法,我们在2014年春季学期对智能科学与技术专业顺利实施了“智能机器人”实践课程的改革,效果显著。对于学生而言,枯燥的学习过程变成了有意义的实践活动,因为用C语言设计一个简单运算并显示在数码管上,这要比显示在计算机屏幕上更具有吸引力。利用Arduino开源平台,学生不仅可以实现有各种实验要求的智能操作,而且还可以参加开源项目的研发。

3.1 学生作品

学生实验采用的Arduino芯片为AVR Atmega644, 共有32个10接口,64K Flash,16MHz主频,8个AD接口,2个串口,功能强大。实验的第1部分要求学生熟悉Arduino单片,掌握基本的传感器操作;反射式光电传感器实验要求学生学会用传感器反馈给芯片的电压高低来判定黑线或白线;超声波距离传感器实验要求学生学会根据距离传感器电压的高低测算物体间的实际距离;步进电机控制实验要求学生了解步进和脉冲的关系,通过编写程序控制步进电机的转速。实验的第2部分首先要求学生按照图纸把小车进行组装,组装效果如图1所示。

然后,学生应了解和熟悉单片机各个IO接口和AD接口的位置及功能,整理并记录控制板(图2(a))、光电传感器(图2(b))、超声波距离传感器(图2(c))、舵机(图2(d))的连接端口号。

最后,学生要在电脑上编写对应的寻迹和避障程序并烧录进单片机里,如图3(a)所示。编写程序的关键在于设计算法对3个前置红外传感器接受到的数据进行处理判断,执行命令的循环过程。在循环体中,要编写小车判断前进方向的逻辑以及调用相应运动模式的命令,从而让小车在自我调整的行进方式下按既定路线运行。在实际测试时,小车能跟随单条黑线前进,但是遇到类似十字路口(黑线交叉)时会出现无法通过的问题,如图3(b)的情况,需要修改程序的逻辑和代码,才能解决这个问题。增加了超声波距离传感器功能之后,多个小车串行寻迹时能够保持车距避免相撞,实现了类似避障功能,如图3(c)所示。

除以上基本实验之外,我们还设计了扩展实验,内容是在Arudino控制器上安装蓝牙芯片,如图4(a)所示。学生可以在自己的手机上安装自己编写的APP进行手机和蓝牙芯片之间的通讯,如图4(b)所示。小车接收手机发出的控制指令,作出相应的动作,从而实现手机对小车的远程控制。在实验中可能遇到各种实际问题,如小车灵敏度过低、小车失控等,学生通过自主学习和反复实践,能够逐步解决芯片处理限速等问题,如在算法中加入优化函数以提高芯片处理信号的能力等。

3.2 教学评价

“智能机器人”实践课程的改革是一个不断探索和创新的过程,需要学生与老师相互配合,共同推进。教师通过课程教学能够激发学生的想象力、创造力、逻辑思维能力和团队合作能力,获得知识和能力的提升。教学过程中,教师针对学生的进步和成绩及时给予表扬和鼓励,对学生提出的问题给予全方位、多角度的解答和指导,促进学生知识与能力的全面发展。

学生对课程普遍给出很高的评价,“学评教”的评分在计算机学院开设的30多门实践课中排名第二。学生普遍反映“智能机器人”实践课程让他们第一次接触了机器人实体的组装和编程,使他们对AVR单片机这类开源硬件有了一定了解,为后续硬件开发打下了坚实的基础。通过课程学习时的分组合作以及问题处置,提高了学生解决实际硬件问题的能力和沟通合作能力。基于该课程的学习内容,有3名学生组队参加了2014年7月在厦门大学举行的第四届“华为杯”全国大学生智能设计竞赛,以“飞行器姿态的神经网络控制”为题获得本科组一等奖。

4 结语

在智能科学与技术专业开设“智能机器人”实践课程,达到了让学生动脑、动手又动口的实际效果,激发了学生踊跃参加相关竞赛的积极性。这说明通过课程实践能充分激发学生的学习兴趣与积极性,确立和巩固学生在教学中的主体地位。“智能机器人”实践教学融合了多学科知识,对学生已有的多学科知识不断给予更新和重组,培养和锻炼了学生的沟通交流和团队协作能力。课程教学的成果如下。

(1)采用开源硬件,建立了低成本、高效益的“智能机器人”实践教学平台,为“智能机器人”的理论教学提供了实验保障,也为创新型教学的进一步开展提供了新载体。

(2)简单易学的软件开发环境和类C开发语言有效降低了开发硬件程序的难度,激发了学生的学习兴趣、实践能力和创新能力,增强了学生开发智能机器人硬件的信心。

(3)在教学的实施过程中积累了一定的经验,为下一步开发“智能机器人”课程的教学资源和编写教材奠定了基础。

教育期刊网 http://www.jyqkw.com
参考文献:

[1]张奇志,周亚丽,机器人学教学内容改革与实践[J]计算机教育,2012(18): 67-70.

[2]许林.机器人课程在智能专业本科教学中的探索[J]计算机教育,2012(18): 78-81.

[3]李昭,从本科生视角看“机器人学”课程教学[J]计算机教育,2010(19): 81-83.

[4] Agudo J E,Pardo P J,Sanchez H,et aI.Alow-cost real color picker based on arduino[J]. Sensors, 2014(7): 11943-11956.

[5] Koenka I J,Saiz J,Hauser P C.Instrumentino: an open-source modular Python framework for controlling Arduino based experimental instruments[J]. Computer Physics Communications, 2014(10): 2724-2729.

[6] Jimenez F J,Lara F R,Redel M D.API for communication between Labview and Arduino UNO[J]. IEEE Latin America Transactions, 2014(6): 971-976.

[7] Barrett S F Arduino microcontroller: processing for everyone[M]. San Rafael: Morgan&Clay pools publishers, 2010:9.

(编辑:宋文婷)