机器人的实践教学模块

2024-06-15 版权声明 我要投稿

机器人的实践教学模块(精选5篇)

机器人的实践教学模块 篇1

电子科技大学机械电子工程学院工程训练中心

目 录

实验一 MULTIFLEX控制卡编程实验..............................................1 实验二 多自由度串联式机械手..................................................9 实验三 简易四足机器人.......................................................15 实验四 轮式机器人运动控制实验...............................................20 实验五 机器人传感系统实验...................................................25 实验六 自主避障机器人实验...................................................28 实验七 追光的机器爬虫.......................................................37 实验八 开放性实验:设计自己的机器人.........................................46

创意之星模块化机器人实验

实验一 MultiFLEX控制卡编程实验

一 实验目的

1.了解MultiFLEX控制卡的基本结构; 2.了解WinAVR+AVRStudio编译环境的使用;

3.了解C 语言环境下编写控制程序,并编译、下载到MultiFLEX 控制器中执行的流程 4.熟悉关于AVR 单片机的I/O口有关的寄存器的概念、作用

5.理解函数gpio_mode_set(),write_gpio(),read_gpio()的定义,掌握其用法 6.熟悉并掌握利用5中的3 个函数控制MultiFLEX 控制卡的16 路IO 口

二 实验原理

AVR 单片机与I/O 口有关的寄存器有3 个:PORTX,DDRX,PINX(X 为端口编号)。DDRX 说明X 端口的输入输出状态,例如:如PORTA=0x0F=0000 1111,则引脚PA0-PA3均为输出(1 为输出),引脚PA4-PA7 均为输入(0 为输入)。

PORTX 说明X 端口的输入输出的具体信息,例如:当PORTA=0x0F 时,若PORTA=0X33=00110011,则引脚PA0、PA1 为输出,且输出信号为高(1);引脚PA2、Pa3 为输出,但输出信号为低(0);PA4、PA5 为输入且输入有效;至于PA6、PA7 虽然DDRA 已经将其设置为输入,但是PORTA 使其输入无效,所以PA6、PA7 的输入信号读不出来。

PINX 为输入端口的具体信息(PINX 只能读取不能写入),例如:当DDRA=0x0F,PORTA=0x33时,如果读取PINA 即char temp=PINA,则temp=--XX0011,其中为输入的引脚只有PA4-PA7,PA4 与PA5 状态为XX,X 为输入信号,而PA6、PA7 的输入为--,-为一个不确定的数。

1.gpio_mode_set()在SYSTEM.C 中的定义如下:

void gpio_mode_set(uint16 temp16)//设置16 位GPIO 模式,IO0-IO7 全为输出,IO8-IO15 { DDRE =(uint8)(temp16>>8);//IO8~IO15 路TTL I/O 模式设置 DDRC =(uint8)temp16;//IO0~IO7 路TTL I/O 模式设置 } 2.write_gpio()在SYSTEM.C 中的定义如下:

void gpio_mode_set(uint16 temp16)//设置16 位GPIO 模式 { DDRE =(uint8)(temp16>>8);//IO8~IO15 路TTL I/O 模式设置 DDRC =(uint8)temp16;//IO0~IO7 路TTL I/O 模式设置 }

3.read_gpio()在SYSTEM.C 中的定义如下: uint16 read_gpio(void){ uint16 temp16;temp16 =(uint16)EXT_IO2_IN;temp16 =(temp16<<8)| EXT_IO_IN;return temp16;} 而EXT_IO_IN 等在public.h 中的宏定义如下 #define EXT_IO_IN PINC //8 路数字输入口

创意之星模块化机器人实验

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 UP-MRcommander 控制软件

1套

四 实验步骤

1.WinAVR 以及AVRStudio 软件的安装

在“MultiFLEX 控制卡AVR MCU 开发资料”目录下,打开“WinAVR”文件夹,双击“WinAVR-20060421-install.exe”完成WinAVR 的安装;然后打开“AVR Studio”文件夹,根据文件夹里面的安装说明进行AVRstudio 的安装,并将其升级到最新版本。

注意:请先安装WinAVR 再安装AVRStudio,这样WinAVR 才能自动嵌入到AVRStudio。2.用AVRStudio 建立一个工程

首先打开我们刚刚安装好的AVRStudio,会出现如下窗口:

图1-1 AVRStudio新建项目

点击图1-1中的选框1 中的按钮可以新建一个工程,点击选框2 中的按钮可以打开一个工程,选框3 是最近你所打开的文件,你可以选中快速将其打开。在这里,我们点击1(NewProject),会出现如下窗口:

图1-2 AVRStudio工程文件选项

在图1-2窗口中我们可以设置关于新工程的一些基本信息。在选框1(Projec tType)中,第一项AtmelAVRAssembler 指汇编工程文件,第二项AVRGCC 指建立后的文件为C 语言

创意之星模块化机器人实验

工程文件,在此我们选择AVRGCC(如果没有安装WinAVR 则此处不会出现AVRGCC 选项)。在选框2 中,我们可以确定工程名(Project name)以及初始文件名(Initial file),在此我们不妨均取名为test。在选项框3 中,我们可以确定工程所在的文件夹位置,在此我们不妨将路径设为D:test。在选项卡2 中如果选中Create folder,则会在3 中确定的文件夹中新建一个以工程名为文件夹名的文件夹,所有与该工程有关的文件会放在此文件夹内;在选项卡2 中选中Create initial file 会生成一个初始.c 文件,方便我们编写程序。以上设定完成后我们点击Next 进行下一步设置,会弹出如下窗口:

图1-3 AVRStudio单片机型号选项

在图1-3窗口中我们可以设置一些关于计算机调试的一些信息。在选项框1 之中我们设置程序调试平台,在此我们选择AVRSimulator。在选项框2 中我们可以选择单片机类型,你可以根据实际需要选择,在此我们选择ATmega128(本实验以创意之星控制板为平台,所以选择创意之星的控制核心ATmega128,AVRStudio 可以进行软件模拟单片机的运行过程,但本书中不作介绍)。选择完成后我们点击Finish,这样一个新工程就初步建立了。然后会出现如下窗口。

图1-4 AVRStudio程序编辑窗口

图1-4中选框1 为菜单栏,选框2 为工具栏,选框3 为工程管理树,选框4 为程序编辑栏,选框5 为编译信息栏。作为我们的第一个代码实验,我们可在选框4 中输入程序:

#include #define BEEP_ON PORTG |= _BV(PG3)

创意之星模块化机器人实验

#define BEEP_OFF PORTG &= ~_BV(PG3)int main(void){ int i,j;PORTG = 0;DDRG = 0xff;while(1){ for(i=0;i<0xFF;i++){for(j=0;j<0xFF;j++);} BEEP_ON;for(i=0;i<0xFF;i++){for(j=0;j<0xFF;j++);} BEEP_OFF;} } 然后在菜单栏选择“Project——》Configuration Options”

图1-5 AVRStudio选项菜单

会弹出如下窗口:

图1-6 AVRStudio选项设置

在控制核心工作频率(Frequency)一栏输入14745600,由于创意之星采用的晶振是此频率,故如此设置。其他选项均采用默认设置即可,然后点击确定。保存文件,然后在菜单

创意之星模块化机器人实验

栏选择“Build——》Build”(或者按F7),如下图所示:

图1-7 AVRStudio编译下拉菜单

在编译信息栏会出现相应的编译信息,显示是否有错误,其中显示“Build succeeded with 0 Warnings„”说明我们编译正常通过,这时,在我们当初设置的工程所在的文件夹的default 文件夹“D:testtestdefault”里会出现很多新文件,这些都是程序编译的结果,其中有个test.hex 文件是程序烧写文件,将这个文件经过烧录软件下载至MultiFLEX 控制板后程序就能运行,至于如何烧写我们将在后面进行介绍。

3.将*.hex 文件烧录至MultiFLEX 控制卡中

首先我们要安装烧写软件PonyProg2000,打开实验指导书配套光盘,在“MultiFLEX控制卡AVR MCU 开发资料ponypro”目录下,运行ponyprogV206f.exe,安装完毕后运行,有两个提示会出现,都选择确认,最终正确运行的PonyProg2000 如下图所示:

图1-8 PonyProg2000界面

首先我们应该对软件进行总线时序校准,在Setup 中选择Calibration 即可。然后进行下载方式设置,点击“Setup——》InterfaceSetup”

图1-9 PonyProg2000下载方式设置

创意之星模块化机器人实验

会出现如下窗口:

图1-10 PonyProg2000I/O设置

由于“创意之星”配置的是并行下载线,所以我们应该选择Parallel,在下拉选项中选择AvrISPI/O,如上图所示,其他选项按其默认设置,不予更改,然后点击“OK”完成设置。

然后我们进行目标芯片的选择:点击“Device——》AVR micro”,在弹出的选项框中选择ATmega128,如下图所示,这样我们就完成了目标芯片的选择。

图1-11 PonyProg2000芯片设置

现在我们用并口下载线将电脑和MultiFLEX 控制卡进行连接。下图是“创意之星”提供的并口下载线以及其线序:

图1-11 创意之星”提供的并口下载线

下图是MultiFLEX 控制卡的功能区域图,将下载线的5 针插头与其中的H 区的5 针插头相连接,注意线序

创意之星模块化机器人实验

图1-12 MultiFLEX 控制卡的功能区域图

连接完成后给控制卡通上电源(程序烧写过程中不允许断电,请确保电源的可靠性)。然后在刚才打开的PonyProg2000 中点击“File——》Open Device File”或者点击图标打开我们前面生成的test.hex 文件(应该在“X:testtestdefault”文件夹中),然后点击“Command——》Write All”或者点击图标,然后程序就会开始烧写至控制卡里面。

当PonyProg2000 显示烧写成功时我们的第一个实验程序就顺利的烧写进MultiFLEX 控制卡中了,正常情况下我们会听到控制卡蜂鸣器发出急促的“嘟嘟嘟”的声音,如果没有任何现象请你检查以上步骤是否按要求完成或者检查下载线有没有插反、控制卡是否正常供电,修改有问题的地方后再生成hex 文件进行烧录,直至蜂鸣器出现规则的嘟嘟声为止。

4.编写C 程序实现对16 路I/O 口的控制

方便大家看懂源程序,对于MultiFLEX 控制卡,已经在系统程序里面进行了处理,同学们只需要调用相关的函数即可对控制卡的IO0-IO15 这16 个引脚进行控制。

(1)控制卡的IO0-I03 分别与4 个LED 灯连接

(2)控制卡的I015 与1 个碰撞传感器(实质上是一个开关)连接(3)控制卡与电脑之间用并口下载线正确连接(4)控制卡电源线正确连接 输入实验程序: #include “Public.h” #include “Usertask.h” void user_task(void){ uint8 io_in;uint8 io_out;uint8 temp8;uint16 temp16;gpio_mode_set(0x00FF);write_gpio(0xFF00);while(1){ temp16 = read_gpio();io_in =(uint8)(temp16>>8);

创意之星模块化机器人实验

temp8=(io_in&0x80);if(temp8==0){ io_out=0x01;while(io_out){ write_gpio(~((uint16)io_out));delay(5);//延时5×20MS=0.1s io_out<<=1;write_gpio(~((uint16)io_out));delay(5);} } else write_gpio(0xFF00);} } 五 实验要求

记录实验程序及实验现象

创意之星模块化机器人实验

实验二 多自由度串联式机械手

一 实验目的

1.了解串联式机器人、自由度和空间机构学、机器人运动学的基本概念; 2.熟悉四自由度串联式机械手;使用配套动作程序,然后自己给机器人编写动作; 3.掌握创意之星机器人套件的搭建和装配技巧

4.熟悉并掌握舵机控制函数rc_moto_control()以及延时函数delay()的使用方法,理解其函数定义

5.熟悉并掌握利用函数控制舵机运动

二 实验原理

舵机控制数据命令包括两个值一个是最终到达的旋转终止角度,另外一个是速度范围0-255,255代表最大速度。

舵机控制函数rc_moto_control()的定义如下: 函数原型:

void rc_moto_control(uint8 *point)

参数说明:

*point 指向24字节舵机控制数据,控制数据定义见控制板舵机控制命令 返回值:

说明:

设定12路舵机角度控制 void rc_moto_control(uint8 *point){

} uint8 {

} Sys_PWMDataAccount();//根据舵机旋转角度PWMangle和舵机速度PWMspeed这if(*(point+(i*2))<= 180)

PWMangle[i] = *(point+(i*2));//控制字必须小于i;for(i=0;i<12;i++)

180度,大于180度控制字丢弃

PWMspeed[i] = *(point+(i*2+1));//舵机速度控制字

两个量计算舵机控制量

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 舵机

5个 舵机延长线

5根 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤

1.结构组装

其结构(3D模型图,线缆和其他细节没有在图上表示出来)示意图如下:

创意之星模块化机器人实验

图2-1 腰部旋转关节3D模型图

图2-2 机械手3D模型图

此部分组装完成后,用手旋转橙红色U-3-3-3 构件,应该和腰关节舵机的输出轴牢固地连接在一起,不能有松动、晃动或者卡住的现象。

组装其他部分。需要2 个基本构形A,1 个基本构形B,以及一个基本构形E。各个基本构形之间可以用通用连接件(D8x4、D8x6 塞子)连接,也可以用螺栓和螺母连接。需要注意的是,如果用通用连接件连接,最终完成的机械手的刚度会差一些;如果用螺栓/螺母连接,则需要仔细思考连接的先后顺序,不能先把各个基本构形组装出来之后再拼装,否则可能由于空间限制而无法进行拧螺丝等操作。

例如,连接DOF2 和DOF3 的两个基本构形的时候,就需要预先把DOF3 上的U3-3-3 红色U 型构件连接到DOF2 的舵机架上。

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

图2-3 指定关节的舵机连线图

创意之星模块化机器人实验

3.调整初始姿态

打开控制卡的电源,我们会发现机器手开始运动到初始姿势之后会锁定该姿势。为了使用附带的动作程序,我们需要手动调整每个关节的姿势,调整完毕后应该如下图所示:

图2-4 舵机初始位置图

4.写入动作程序

调整之后,再次打开电源。我们应该看到组装完成的机械手保持如上图所示的状态。此时在UP-MRcommander 软件中调入“UP-MRcommander机械臂机械臂.mra”这个动作文件,并下载执行。机械臂就可以运动起来了。

5.建立自己的动作程序

现在我们来编写自己的动作程序。动作程序的编写过程就是建立一个个的动作,并设计每个动作的姿态,以及持续时间。这一步中我们的目标是编写一个机械手的程序,它可以让机械手把一个纸团从他的左侧夹起,放到右侧,并如此重复。

编写动作的几个要点是:

要在“在线调试”的状态下对每个动作进行调试;如下图所示,选中“在线调试”复选框,即进入了在线调试状态。这种状态下,在UP-MRcommander 界面上的任何改动动作的操作都回立刻被机器人执行。利用在线调试功能可以很方便地为机器人编写每一个动作。

图2-5 在线调试

舵机的运动速度可以在0~255 之间调节。但是对于机械手来说,舵机的运动速度在50~150 比较合适。由于机械手的每个关节舵机(尤其是底座部位的舵机)的负载很大,如果速度太快的话,舵机会很快速地启动和停止,有可能损伤舵机本身,甚至有可能误伤操作者。

如果设定舵机的速度较慢,并且动作的执行时间太短的话,相应的动作可能还没有执行完毕就已经进入了下一个动作。没有执行完的动作将被忽略。

如下图2-6所示,你很难搞明白左图的动作程序是什么。相对的,右图的动作程序每一步都进行了命名,如果我们要修改动作程序,很容易找出需要修改的地方来调试。

创意之星模块化机器人实验

图2-6 舵机动作命名

6.编写C 程序实现对舵机的控制

用“创意之星”机器人套件搭建的机器人的主要关节都是由舵机驱动的,在打开电脑上的工程文件(“D:创意之星8.3.1 控制卡原始程序MultiFLEX.aps”),我们选择USERTASK.C 对其进行编辑。输入如下程序:

#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;array_rc[7]=170;array_rc[8]=90;array_rc[9]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90-16;array_rc[1]=50;array_rc[2]=90+40;array_rc[3]=60;array_rc[4]=90-60;array_rc[5]=60;array_rc[6]=90+55;array_rc[7]=85;array_rc[8]=90+40;

创意之星模块化机器人实验

array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90-22;array_rc[1]=128;array_rc[2]=90+8;array_rc[3]=70;array_rc[4]=90-29;array_rc[5]=60;array_rc[6]=90-65;array_rc[7]=60;array_rc[8]=90+70;array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90+10;array_rc[1]=128;array_rc[2]=90-33;array_rc[3]=70;array_rc[4]=90+45;array_rc[5]=60;array_rc[6]=90-38;array_rc[7]=60;array_rc[8]=90-63;array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90+10;array_rc[1]=128;array_rc[2]=90-11;array_rc[3]=70;array_rc[4]=90-54;array_rc[5]=60;array_rc[6]=90+79;array_rc[7]=60;array_rc[8]=90-47 array_rc[9]=128;rc_moto_control(array_rc);delay(50);} 然后打开SYSTASK.C 文件,将处于最后的main()函数进行细微改动。int main(void){

创意之星模块化机器人实验

Sys_Init();WORK_LED_ON;while(1){ //system_task();user_task();} } 至此我们就顺利完成了用c 语言实现机器人关节运动控制。根据以上程序 可增加舵机的控制动作,并记录修改的程序。

五 实验要求

记录实验程序及实验现象

创意之星模块化机器人实验

实验三 简易四足机器人

一 实验目的

1.熟悉四足机器人,使用配套光盘中提供的动作程序机器人; 2.熟悉UP-MRcommander 软件调试机器人运动步态的技巧。3.掌握“创意之星”机器人套件的搭建技巧。

4.熟悉并掌握舵机控制函数rc_moto_control()以及延时函数delay()的使用方法,理解其函数定义

5.熟悉并掌握利用函数调试机器人的步态

二 实验原理

1.舵机控制方法

舵机控制数据命令包括两个值一个是最终到达的旋转终止角度,另外一个是速度范围0-255,255代表最大速度。

舵机控制函数rc_moto_control()的定义如下: 函数原型:

void rc_moto_control(uint8 *point)

参数说明:

*point 指向24字节舵机控制数据,控制数据定义见控制板舵机控制命令 返回值:

说明:

设定12路舵机角度控制 void rc_moto_control(uint8 *point){

} 2.多足机器人的步态

步态规划是多足机器人运动的重要研究步骤。其研究的内容是如何让机器人的各条腿协调、连续地运动,产生整体的前进、后退、左转、右转等运动。一种最简单的步态规划方法是,观察真实的四足动物的运动,并提取每个动作的关键帧,得到步行过程中各关节的姿态、速度数据,再使用这些数据来控制机器人。uint8 {

} Sys_PWMDataAccount();//根据舵机旋转角度PWMangle和舵机速度PWMspeed这if(*(point+(i*2))<= 180)

PWMangle[i] = *(point+(i*2));//控制字必须小于i;for(i=0;i<12;i++)

180度,大于180度控制字丢弃

PWMspeed[i] = *(point+(i*2+1));//舵机速度控制字

两个量计算舵机控制量

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 舵机

4个

创意之星模块化机器人实验

舵机延长线

4根 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤

1.结构组装

本实验中需要组装的简易四足机器人三视图及轴测视图如下:

图3-1 简易四足机器人三视图

从图3-1中可以看到,机器人具有4 个自由度(DOF1~DOF4),使用4 个基本构形A 构成了机器人的身体,它们之间使用I 形连接件连接。每个舵机的输出轴上连接了一个I 形连接件,作为机器人的腿。如果大家对机器人刚度有较高要求的各部件连接件最好用螺纹副固定。在腿的末端使用了橡胶防滑垫,以增大腿部与地面的摩擦力。机器人的装配爆炸图如下图所示:

图3-2 装配爆炸图

创意之星模块化机器人实验

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

图3-3 指定关节的舵机连线图

3.调整初始姿态

与前面的实验相同,在完成机器人的组装后,为了使用配套光盘中附带的动作程序,我们需要手动调整每个关节的初始姿态。调整方法如前面实验所述。调整完毕后各关节的初始姿态应该如下图所示:

图3-4 舵机初始状态图

4.写入动作程序

调整之后,再次打开电源。我们应该看到组装完成的机械手保持如图3-4所示的状态。此时在UP-MRcommander 软件中调入“UP-MRcommander蛇形机器人10 关节蠕动-步距0.125波长-正弦波.mra”这个动作文件,并下载执行。此时把机器人放到地上,注意观察它的运动方式。

通常情况下,使只有4 个自由度的四足机器人运动起来并且能够前进、后退,是一个很困难的事情。普通的四足机器人至少有8 个自由度,有些甚至有12 个自由度。这个4 自由度的简易四足机器人能够前进、后退,甚至能够笨拙地转弯。

5.编写C 程序实现对舵机的控制

用“创意之星”机器人套件搭建的机器人的主要关节都是由舵机驱动的,在打开电脑上的工程文件(“D:创意之星8.3.1 控制卡原始程序MultiFLEX.aps”),我们选择USERTASK.C 对其进行编辑。输入如下程序:

#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;

创意之星模块化机器人实验

array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+70;array_rc[1]=170;array_rc[2]=90-6;array_rc[3]=170;array_rc[4]=90-66;array_rc[5]=170;array_rc[6]=90-8;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+62;array_rc[1]=170;array_rc[2]=90-60;array_rc[3]=170;array_rc[4]=90-64;array_rc[5]=170;array_rc[6]=90+49;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+34;array_rc[1]=170;array_rc[2]=90-58;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+40;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+12;array_rc[1]=170;array_rc[2]=90-51;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+38;array_rc[7]=170;rc_moto_control(array_rc);delay(50);

创意之星模块化机器人实验

array_rc[0]=90+12;array_rc[1]=170;array_rc[2]=90-58;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+36;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+60;array_rc[1]=170;array_rc[2]=90-60;array_rc[3]=170;array_rc[4]=90-64;array_rc[5]=170;array_rc[6]=90+44;array_rc[7]=170;rc_moto_control(array_rc);delay(50);} 然后打开SYSTASK.C 文件,将处于最后的main()函数进行细微改动。int main(void){ Sys_Init();WORK_LED_ON;while(1){ //system_task();user_task();} } 至此我们就顺利完成了用c 语言实现四足机器人关节运动控制。

五 实验要求

记录实验程序及实验现象

创意之星模块化机器人实验

实验四 轮式机器人运动控制实验

一 实验目的

1.了解轮式机器人的概念和了解采用全向驱动方式在生活、科研、工作中的应用; 2.熟悉轮式机器人;使用配套光盘中提供的动作程序,然后自己为机器人编写动作;在UP-MRcommander 软件中,熟悉直流电机的控制;

3.掌握对于具有多种执行器(舵机、电机或者其他)的机器人,掌握搭建和调试要领。4.掌握“创意之星”机器人套件的搭建和调试要领。5.熟悉并掌握电机控制函数dc_moto_control()的使用方法 6.熟悉并掌握利用函数dc_moto_control()控制4 路直流伺服电机

二 实验原理

电机控制数组长度为8,可控制4路舵机,电机运动函数要求array_dc[偶数]为电机转动速度,array_rc[奇数]为电机转动时间。电机控制函数dc_moto_control()的定义如下:

函数原型: void dc_moto_control(uint8 *point)

参数说明:*point 指向8字节直流电机控制数据,控制数据定义见控制板电机控制命令 返回值:

说明:

设定4路直流电机控制

void dc_moto_control(uint8 *point){

cli();

Timer1_100ms_M1 = 0;Timer1_100ms_M2 = 0;Timer1_100ms_M3 = 0;Timer1_100ms_M4 = 0;MotoTime[0] = *(point+1);MotoTime[1] = *(point+3);MotoTime[2] = *(point+5);MotoTime[3] = *(point+7);sei();if(0x80 == *point)M1_T;else if(*point < 0x80){

} else {

}

//设定各个电机的运行时间0.1MS-25.5S

//MOTO1停止

OCR0 = 70 +(uint8)(((uint16)(0x7f0x80)* 145)/100);M1_R;

//MOTO2停止 if(0x80 == *(point+2))M2_T;else if(*(point+2)< 0x80){

创意之星模块化机器人实验

}

} else {

} OCR2 = 70 +(uint8)(((uint16)(0x7f0x80)* 145)/100);M2_R;

//MOTO3停止 if(0x80 == *(point+4))M3_T;else if(*(point+4)< 0x80){ } else { } if(0x80 == *(point+6))M4_T;else if(*(point+6)< 0x80){ } else { } M4_R;

M4_L;M3_R;M3_L;

//MOTO4停止

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 舵机

4个 舵机延长线

4根 电机

4个 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

创意之星模块化机器人实验

四 实验步骤

1.结构组装

图4-1 轮式机器人结构图

组装完成的轮式机器人应该如下图所示:

图4-2 轮式机器人三视图

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

创意之星模块化机器人实验

图4-3 轮式机器人连线图

3.调整初始姿态

打开控制卡的电源,机器人会锁定初始姿势。为了使用配套光盘中附带的动作程序,我们需要手动调整每个关节的姿势,调整方法如前面实验所述。调整完毕后应该如下图所示:

图4-4 轮式机器人初始状态

4.写入动作程序

调整之后,再次打开电源。我们应该看到组装完成的轮式机器人保持如图4-4所示的状态。此时在UP-MRcommander 软件中调入“UP-MRcommander全向四驱小车+机械臂机械臂+四驱车.mra”这个动作文件,并下载执行。轮式机器人就可以运动起来了。

5.建立自己的动作程序

观察机器人的运动,并且通过UP-MRcommander 软件的在线调试功能,弄清楚每个舵机、直流电机与软件界面中相应滑块的对应关系。

把机器人的轮子架空,拖动软件界面上的电机调速滑块和电机运行时间滑块,观察电机在不同速度运行的情况,以及不同的运行时间。可以用手握住轮子,体会一下不同速度时电机的力量大小。

熟悉了电机的控制操作之后,我们可以编写自己的运动程序,控制机器人按照一定的顺序运动。

6.编写C 程序实现对4 路电机的控制

电机是机器人非常重要的组成部件之一,我们已经知道了怎样用“创意之星”机器人套件提供的上位机程序通过控制卡对电机进行控制。在本实验中,我们都只讨论怎么对USERTASK.C 进行编辑,其余步骤跟前面相同,不再赘述。对四路电机进行控制的USERTASK.C程序如下所示:

#include “Public.h” #include “Usertask.h” void user_task(void)

创意之星模块化机器人实验

{ uint8 array_dc[7]={0};uint8 i;array_dc[0] = 0;array_dc[1] = 30;array_dc[2] = 0xFE;array_dc[3] = 30;array_dc[4] = 0;array_dc[5] = 30;array_dc[6] = 0xFE;array_dc[7] = 30;dc_moto_control(array_dc);delay(150);

for(i=0;i<(128/10+1);i++){ array_dc[0] = 0+i*10;array_dc[1] = 2;array_dc[2] = 255-i*10;array_dc[3] = 2;array_dc[4] = 0;array_dc[5] = 2;array_dc[6] = 0;array_dc[7] = 2;dc_moto_control(array_dc);delay(10);}

array_dc[0] = 0x80;array_dc[1] = 2;array_dc[2] = 0x80;array_dc[3] = 2;array_dc[4] = 0x80;array_dc[5] = 2;array_dc[6] = 0x80;array_dc[7] = 2;dc_moto_control(array_dc);delay(10);delay(50);} 整个工程编译后电机将以上循环规律转动。但机器人是无法规律运动的,要求同学根据UP-MRcommander 软件中调入“UP-MRcommander全向四驱小车+机械臂机械臂+四驱车.mra”这个动作文件中的参数设置,修改对4 路电机的控制程序,实现机器人运动。

五 实验要求

记录实验程序及实验现象

创意之星模块化机器人实验

实验五 机器人传感系统实验

一 实验目的

1.熟悉关于AVR 单片机的A/D 口的概念、作用

2.熟悉并掌握函数ADC_Read(uint8 Channel,uint8 *data)的使用方法,理解其函数 定义

3.熟悉并掌握利用函数ADC_Read()读取来自MultiFLEX 控制卡A/D 口的模拟信号

二 实验原理

A/D 口(ADC 模拟/数字信号转换器)是MultiFLEX 控制卡的又一重要组成部分之一。A/D 口可以进行数字信号与模拟信号的转化,在这里仅简单介绍A/D 口的模拟信息采集过程:传感器输出的模拟信号到达A/D 口后,单片机会对输入的连续模拟信号进行定时采集,进而得到一系列时间间隔一定的离散信号,用这些离散的点信号来代替以前连续的曲线信号,由于两次采集之间的时间间隔极短,所以由连续信号转化为离散信号的误差极小,在普通工程应用领域我们可以忽略两者之间的误差。

A/D口函数ADC_Read()的定义如下: 参数说明:

Channel : ADC通道选择 0-7 *

函数原型:

void ADC_Read(uint8 Channel,uint8 *data)//读取8路模拟量

*data : 返回8位ADC数据

返回值: 无

说明: 读取8路模拟量 {

} uint8 i;

//每次读取两次抛弃前一次的数据,防止转换通道的时候读ADMUX =((ADMUX & 0xf8)|(Channel & 0x07));for(i=0;i<2;i++){

} ADCSRA |= _BV(ADSC);_delay_loop_1(60);while(ADCSRA & _BV(ADSC))_delay_loop_1(60);*data = ADCH;

//读取AD数据

//读取8路模拟量 void ADC_Read(uint8 Channel,uint8 *data)取到上一个通道的输入

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 传感器

若干 舵机

4个

创意之星模块化机器人实验

舵机延长线

4根 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤

1.控制卡的AD0 与光强传感器连接 2.控制卡PWM0 与舵机连接

3.控制卡与电脑之间用并口下载线正确连接 4.控制卡电源线正确连接 5.建立自己的程序 实验程序1: #include “Public.h” #include

“Usertask.h” void user_task(void){

} 整个实验的运行结果应为:开机后,PWM0口的舵机在0-180度之间运动,其位置与外部光照强度成正比(外部光照强度通过光强传感器采集,采集频率2Hz)。

实验程序2: #include “Public.h” #include

“Usertask.h” void user_task(void){

uint8 uint8 AD0_in;rc_array[23]={0};uint16 temp;uint8

i;for(i=0;i<24;i=i+2){

} while(1){

} ADC_Read(0,&AD0_in);temp=((uint16)AD0_in*180)/255;rc_array[0]=(uint8)temp;rc_array[1]=80;rc_moto_control(rc_array);delay(25);rc_array[i]=90;rc_array[i+1]=128;uint8 uint8 AD0_in;rc_array[23]={0};

创意之星模块化机器人实验

} uint8 while(1){

} i=0;ADC_Read(0,&AD0_in);rc_array[0]=i*180;rc_array[1]=AD0_in;delay(25);i++;if(i>1)i=0;

rc_moto_control(rc_array);实验结果:开机后,舵机在0-180度之间往复运动,其转动速度与外部光照强度成正比(外部光照强度通过光强传感器采集,采集频率2Hz)。

6.同时控制多个舵机的程序编写

参考上述程序,编写程序同时使用4个光强(或温度)传感器分别控制4个舵机的转角位置的程序。

五 实验要求

记录程序及实验现象

创意之星模块化机器人实验

实验六 自主避障机器人实验

一 实验目的

1.回顾控制卡的各种控制函数

2.提高灵活应用各种控制函数控制机器人各种执行器的能力 3.提高搭建只能程序,使机器人拥有一定人工智能的能力

二 实验原理

机器人在没有遇到障碍物的时候会一直向前运动。当传感器遇到障碍物之后,由于传感器自生延时以及处理器的需要处理时间,所以机器人会由于惯性继续向前运动一段距离,我们就需要机器人推后一定的补偿距离,以保证和障碍物之间的距离为一个确定的范围。其次机器人会根据检测到障碍物的传感器不同而采取不同的策略:如果是左边传感器检测到障碍物之后,机器人应该向右转避开障碍物;如果是右边的传感器检测到障碍物的话机器人应该向左转;如果两个传感器都有障碍物的话机器人应该随机采取一个旋转方向(为简化程序,我们假设此时机器人仍向右转)。并且机器人左转与右转的角度不应该相同,否则在特殊情况下机器人会陷入死循环,在一个地方不停的循环的左转右转。当机器人转向后,如果机器人前方仍然有障碍物的话机器人应该重复后退专项操作,如果前方已经没有障碍物的话机器人应该继续向前引动。以下是程序框图:

图6-1 自主避障机器人的程序框架

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根

创意之星模块化机器人实验

232电缆

1根 USB转232电缆

1根 电机

4个 舵机

4个 舵机延长线

4根 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤

1.结构组装

图6-2 结构组装图

由图6-2可知,整个全向运动作业机器人由1 个机器手构型,1 个控制盒,4 个基本构型D,4 个零件I9 以及相应的连接件构成。为简化起见,上图中并没有显示出具体的连接件,大家可以在考虑机器人系统刚性的情况下采用自己喜欢的连接方式。本实验的全向运动作业机器人结构主体和前面里面的四轮小车基本相似,下部的驱动部分大不相同,采用的是前面介绍的基本构型D。请同学们组装的时候认真体会这种驱动结构的优缺点。

组装好后的全向作业机器人如下图所示:

创意之星模块化机器人实验

图6-3 全向作业机器人

在此我们将其机器手部分去掉,为其加上两个检测障碍物用的红外传感器。加上的红外传感器装配图如下图所示:

图6-4 红外传感器示意图

加上的红外传感器装配体由1 个L5-3,2 个V2-2 以及两个红外传感器构成,各零件之间用螺纹副连接(红外传感器与V2-2 之间靠过盈配合)。为了增加系统刚性,红外传感器装配体与全向运动机器人之间也用螺纹副连接。改装好的机器人如下图所示:

创意之星模块化机器人实验

图6-5 改装后的全向运动机器人

改装后的全向运动机器人的各个舵机以及电机与控制卡的连接顺序以及开机后各舵机的初始位置依然同全向运动机器人一样,不做改动(机器手部分忽略),而加上的两个红外传感器则分别插在控制卡的IO0 以及IO1 上。至此我们的机器人就改装完毕了。

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

图6-6 电缆连接图

3.C 语言程序编写

打开我们的上位机程序UPMRobot.exe,用串口线将控制卡与电脑连接好,给机器人通上电,在上位机程序里打开设置相应串口并且打开在线调试功能。

通过在线调试,可以把机器人调整到假设机器人遇到某种情况时所需要执行的运动状态,然后点击如下图所示的红框框住的指令栏,分别点击舵机、电机、I/O 输出、蜂鸣器会弹出不同的窗口,这个窗口就是上位机给控制卡发出的使机器人执行当前运动设置的指令,这个指令遵守模块化机器人电脑与控制卡之间的通讯协议,通过查阅“创意之星”实验里的模块化机器人通讯协议,经过简单分析,就可以提取出在Usertask.C 中调用的控制函数的参数,将这些控制参数提交给控制函数并执行,机器人就会如现在在线调试般运动。通过在31

创意之星模块化机器人实验

线调试提取机器人运动信息,可以使我们的程序编写过程大大简化。

图6-7 UPMRobot界面

先在在线调试模式下设定一个机器人的运动状态,然后电机指令栏里的舵机按钮,会弹出如下信息:

图6-8 舵机数据

而在模块化机器人通讯中关于舵机指令的规定如下:

图6-9 舵机控制指令

通过分析,可以看到在弹出窗口里舵00——舵11 之间的24 个数据,实际上就是让机器人运动到此状态下的舵机控制函数rc_moto_control()的运动参数。将此24 个数依次赋予一个拥有24 项的数组(例如unsigned char rc_array[23];),然后将此数组数组名(数组地址)传递给舵机函数,在Usertask.C 中调用命令“rc_moto_control(array);”即可使机器人按照当前在线调试状态所设置的运动状态运动。

类似的,在在线调试模式下设定一个机器人的运动状态,然后电机指令栏里的舵机按钮,32

创意之星模块化机器人实验

会弹出如下信息:

图6-10 电机数据

在的模块化机器人通讯中关于电机指令的规定如下:

图6-11 电机控制指令

经过分析,M00-M03 之间的8 个数就是在Usertask.C 中调用dc_moto_control()函数实现当前运动状态的参数。我们不妨建立一个数组“unsigned chardc_array[7];” 然后将上述数据依次赋予此数组,然后再Usertask.C 调用语句“dc_moto_control(dc_array);”机器人机会按照当前在线调试所确定的状态运动。通过反复尝试,最终我们建立的使全向运动机器人实现自动避障的USERTASK.C程序如下所示:

#include “public.h” #include “Usertask.h” void user_task(void){ uint8 array_dc[7]={0};uint8 array_rc[23]={0};uint16 temp16;gpio_mode_set(0);temp16 = read_gpio();if((temp16 & 0x0003)==3){ array_dc[0] = 0;array_dc[1] = 50;array_dc[2] = 0xFE;array_dc[3] = 50;array_dc[4] = 0;array_dc[5] = 50;array_dc[6] = 0xFE;array_dc[7] = 50;

创意之星模块化机器人实验

dc_moto_control(array_dc);} else if(((temp16&0x0003)==2)||((temp16&0x0003)==0)){ beep_set(5);

array_dc[0] = 0xFE;array_dc[1] = 5;//0.5 秒 array_dc[2] = 0;array_dc[3] = 5;array_dc[4] = 0xFE;array_dc[5] = 5;array_dc[6] = 0;array_dc[7] = 5;dc_moto_control(array_dc);delay(30);array_rc[0]=90+20;array_rc[1]=170;array_rc[2]=90-20;array_rc[3]=170;array_rc[4]=90-20;array_rc[5]=170;array_rc[6]=90+20;array_rc[7]=170;rc_moto_control(array_rc);delay(50);

array_dc[0] = 0x80+55;array_dc[1] = 10;array_dc[2] = 0x80+55;array_dc[3] = 10;array_dc[4] = 0x80+55;array_dc[5] = 10;array_dc[6] = 0x80+55;array_dc[7] = 10;dc_moto_control(array_dc);delay(50);array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;

创意之星模块化机器人实验

array_rc[7]=170;rc_moto_control(array_rc);delay(50);} else { beep_set(5);array_dc[0] = 0xFE;array_dc[1] = 5;array_dc[2] = 0;array_dc[3] = 5;array_dc[4] = 0xFE;array_dc[5] = 5;array_dc[6] = 0;array_dc[7] = 5;dc_moto_control(array_dc);delay(30);array_rc[0]=90+20;array_rc[1]=170;array_rc[2]=90-20;array_rc[3]=170;array_rc[4]=90-20;array_rc[5]=170;array_rc[6]=90+20;array_rc[7]=170;rc_moto_control(array_rc);delay(50);

array_dc[0] = 0x80-55;array_dc[1] = 15;array_dc[2] = 0x80-55;array_dc[3] = 15;array_dc[4] = 0x80-55;array_dc[5] = 15;array_dc[6] = 0x80-55;array_dc[7] = 15;dc_moto_control(array_dc);delay(50);array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;

创意之星模块化机器人实验

array_rc[6]=90;array_rc[7]=170;rc_moto_control(array_rc);delay(50);} } 下载完成后,如果操作正确,我们会看见拥有自主避障功能的全向运动小车在地面运动。

五 实验要求

记录程序及实验现象

创意之星模块化机器人实验

实验七 追光的机器爬虫

一 实验目的

1.回顾控制卡的各种控制函数

2.提高灵活应用各种控制卡函数控制机器的能力 3.提高搭建c 程序,使机器人拥有一定人工智能的能力

二 实验原理

机器人的追光行为应该细分为寻找光源、追逐光源等基本行为,在两个基本行为之中又夹杂着若干的逻辑判断,例如周围光源是否达到人造光源光强标准,是否追踪到光源,光源是否丢失等等。其具体分析如下所述:

机器爬虫开机复位后,首先应该开始寻找光源:机器人开始采集传感器数据,并沿某方向(例如向左)原地打转直至传感器采集的数据大于某一阈值δ(在自然条件下环境光比较温和,传感器采集数据处于一个比较低的范围,若传感器采集值忽然增大,说明机器人逐渐朝向光源方向),然后机器人继续转相,直至两传感器采集数据之差小于或等于另一阈值Δ 时说明机器人现在已经朝向光源方向。

当机器爬虫锁定光源大概方向后即开始追光:爬虫朝光源方向运动,运动过程中不断根据传感器采集的数据修正自己的方向:如果两传感器采集数据之差仍不大于Δ 时说明光源未丢失;如果光源之差大于Δ(光源移动等原因导致)说明机器人已经丢失光源,如果此时单个传感器值仍大于δ 则机器人朝次方向转向,如果两个传感器的数据均小于δ 则说明光源已经彻底丢失,机器人应该重复追光行为。初步的框架图如下所示:

图7-1 机器人追光框架图

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根

创意之星模块化机器人实验

串口下载线

1根 232电缆

1根 USB转232电缆

1根 传感器

2个 舵机

8个 舵机延长线

8根 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤 结构组装

机器爬虫的结构组装如下图所示:

图7-2 机器爬虫的结构组装图

机器爬虫每个腿部构型由2 个基本构型B,1 个L1-1,一个L3-1 以及相应的连接件构成。四只腿两两对称,组装的时候需注意。机器爬虫的头部构型由1 个基本构型B,2 个光强传感器,1 个L3-3,2 个V2-2 以及相应的连接件构成。机器爬虫控制盒由2 个电路板底座,6 个U1-2-1,1 块电路板以及相应的连接件构成。整个机器爬虫由1 个头部构型,4 个腿部构型,1 个控制盒,1 个支撑架,1 个L5-1,1 个电池组以及相应的连接件构成。建议腿部与躯干用螺钉连接以保证机体的稳定性。

组装好后的机器爬虫如下图所示

创意之星模块化机器人实验

图7-3 机器爬虫全图

由于两个光强传感器平行不利于分辨光源方向,所以我们要对机器爬虫的头部进行改装。改装的机器人头部如下所示:

图7-4 光强传感器安装图

机器人头部由1 个U1-2-1,一个V2-2,两个D8x6 轮轴,两个红外传感器以及一些连接螺钉装配而成,两传感器之间呈大概30 度夹角。改装后的机器爬虫如下所示:

创意之星模块化机器人实验

图7-5 机器爬虫初始状态

四只腿中八个舵机与控制卡的连接顺序还是和前面的四足爬虫一样。头部的左、右(以爬虫为基准的左右)光强传感器分别连接至控制卡的AD0 和AD1 接口上。

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

图7-6 机器爬虫电缆连接图

3.C 语言程序编写

借助上位机软件在线调试步通过反复尝试,最终建立的使四足机器爬虫实现追光行为的USERTASK.C程序如下所示:

#include “public.h” #include

“Usertask.h” uint8 { uint8

rc_array[10][24]={{0xAD,0x67,0x5A,0x67,0x11,0xDC,0x5C,0xD9,0xAD,0x67,0x67,0x67,0x0A,0x67,0x60,0x67},move_on_flag=0;

void move_on1(void)

{0xAD,0x67,0x50,0x67,0x11,0x67,0x66,0x67,0xAD,0x67,0x5D,0x67,0x0A,0x67,0x6A,0x6

创意之星模块化机器人实验

7,0x5A ,0x80}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0xDC ,0x85 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x75 ,0x67 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x7A ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0x67 {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x7F ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x84 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x5F ,0x67 ,0x2F ,0xDC ,0x70 ,0xD9 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,}

void move_on2(void){ uint8 rc_array[10][24]={{0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67}, {0xAD ,0x67 ,0x50 ,0x67 ,0x11 ,0x67 ,0x66 ,0x67 ,0xAD ,0x67 ,0x5D ,0x67 ,0x0A ,0x67 ,0

0x6F ,0x67 }, 0x74 ,0x67 }, x79 ,0x67}, ,0x7E ,0x67}, x6A ,0xD9}, x56 ,0xD9}, 0x5B ,0x67}, 0x60 ,0x67}};uint8 {

} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)x6A ,0x67}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0xAD ,0x67 ,0x58 ,0x67 ,0x28 ,0xDC ,41

创意之星模块化机器人实验

0x56 ,0xD9}, {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0x67 ,0x53 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x41 ,0x67 ,0x2F ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x4E ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x3C ,0x67 ,0x11 ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x49 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x37 ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x5D ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x32 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x46 ,0xD9 ,0x11 ,0x67 ,0x57 ,0x67 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,} void move_on(void){

}

void turn_left(void){ uint8 rc_array[10][24]={{0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67},x42 ,0xD9}, 0x47 ,0x67}, 0x4C ,0x67}, 0x51 ,0x67}, 0x56 ,0x67}, x5B ,0x67}, 0x60 ,0x67}};{

} rc_moto_control(rc_array[i]);delay(6);uint8 i;for(i=0;i<10;i++)if(move_on_flag==0)move_on1();else move_on2();move_on_flag++;if(move_on_flag>1)move_on_flag=0;{0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x66 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0x67 ,0x

创意之星模块化机器人实验

6A ,0x67}, {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x6E ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0xDC , {0xAD ,0x67 ,0x73 ,0x67 ,0x2F ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x78 ,0x67 ,0x11 ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x85 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x7D ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x82 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0xDC ,0x5D ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x57 ,0x67 ,0xAD ,0x67 ,0x62 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 , } void turn_right(void){ uint8 rc_array[10][24]={{0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67}, {0xAD ,0x67 ,0x50 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0x67 ,0x5D ,0x67 ,0x0A ,0x67 ,0

x56 ,0xD9}, 0x42 ,0xD9}, 0x47 ,0x67}, 0x4C ,0x67}, 0x51 ,0x67}, 0x56 ,0x67}, x5B ,0x67}, 0x60 ,0x67}};delay(10);uint8 {

} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)x56 ,0x67}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 ,43

创意之星模块化机器人实验

0x51 ,0x67}, {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x48 ,0x67 ,0xAD ,0xDC ,0x85 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x43 ,0x67 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x3E ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x39 ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x34 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x5F ,0x67 ,0x2F ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 , }

void user_task(void){

0x4C ,0x67}, x47 ,0x67}, 0x42 ,0x67}, x56 ,0xD9}, x6A ,0xD9}, 0x65 ,0x67}, 0x60 ,0x67}};delay(10);uint8 {

} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)uint8 uint8 uint8 light_sensor_left;light_sensor_right;light_gate=130;

int8 sub_gate=30;int8 int8_temp;while(1){

ADC_Read(0,&light_sensor_left);ADC_Read(1,&light_sensor_right);if(light_sensor_left>light_gate)

创意之星模块化机器人实验

}

} {

} else turn_right();if(light_sensor_right>light_gate){

} else turn_left();int8_temp=(int8)(light_sensor_left-light_sensor_right);if(int8_temp){

} else {

}

int8_temp=0-int8_temp;

if(int8_temp>sub_gate)turn_right();else move_on();

if(int8_temp>sub_gate)turn_left();else move_on();下载完成后,如果操作正确,我们会看见拥有追光行为的四组机器爬虫在地面运动,我们可以不断的变换手电筒的位置,检验编程效果。

五 实验要求

记录动作程序及现象

创意之星模块化机器人实验

实验八 开放性实验:设计自己的机器人

一 实验目的

1.回顾控制卡的各种控制函数

2.提高灵活应用各种控制卡函数控制机器的能力 3.提高搭建c 程序,使机器人拥有一定人工智能的能力 4.回顾“创意之星”机器人套件的搭建和调试要领。

二 实验原理

根据自己的爱好搭建出自己喜欢的机器人。但是仅仅搭建出一个机器人构型只能体现出我们的动手能力,如何把这个机器人搭好、搭妙则需要我们有较强的创新能力。搭建的过程中注意个部分结构的强度、刚度、稳定性。注意给机器人的各运动部分留下充足的空间,避免机器人运动时产生干涉。自己定义一定的顺序,连接指定关节的舵机的电缆到MultiFLEX 控制卡上。

三 实验器材

计算机

1台 MultiFLEX 控制卡

1块 控制卡电源线

1根 串口下载线

1根 232电缆

1根 USB转232电缆

1根 传感器

2个 舵机

若干 舵机延长线

若干 创意之星机器人构件

1套 UP-MRcommander 控制软件

1套

四 实验步骤

1.根据自己的爱好搭建出自己喜欢的机器人

2.将自己设计的机器人的各个舵机、电机与控制卡相连 3.将自己设计的机器人的传感器分别插在控制卡上 4.控制卡与电脑之间用并口下载线正确连接 5.编程、下载、运行。观察结果。实验范例:

仿生蛇形机器人的制作 1 结构组装

机器蛇的蛇身由10个基本构型B 串联构成,蛇头由一个V2-

2、两个基本构型H以及相应的连接件构成。推荐机器蛇各基本构型之间用螺纹副连接方式以增强机器蛇结构的稳定性及可靠性。

图8-1 仿生蛇形机器人结构

创意之星模块化机器人实验

2.连接电缆

按下表所示顺序连接指定关节的舵机的电缆到MultiFLEX 控制卡上:

图8-2 仿生蛇形机器人连线图

3.调整初始姿态

打开控制卡的电源,我们会发现机器蛇开始运动到初始姿势之后会锁定该姿势。为了使用附带的动作程序,我们需要手动调整每个关节的姿势,调整完毕后应该如下图所示:

图8-3 仿生蛇形机器人初始状态

4.C 语言程序编写

借助上位机软件在线调试步通过反复尝试,最终建立的仿生蛇形机器人的USERTASK.C程序:

#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;array_rc[7]=170;array_rc[8]=90;array_rc[9]=170;array_rc[10]=90;array_rc[11]=170;array_rc[12]=90;array_rc[13]=170;

创意之星模块化机器人实验

机器人的实践教学模块 篇2

Device Net(设备网)是一种基于CAN总线技术的开放型、符合全球工业标准的低成本、高性能的现场总线通讯网络。它最初是由罗克韦尔自动化提出的,如今已经是全球使用最广泛的现场总线之一,在工厂自动化领域有明显优势,能连接到变频器、机器人、PLC等各类工控产品。由于采用了许多新技术及独特的设计,与一般的通讯总线相比,Device Net网络的数据通讯具有突出的高可靠性、实时性和灵活性。Device Net不仅可以接入更多、更复杂的设备,还可以为上层提供更多的信息和服务[1]。

ABB致力于研发、生产机器人已有40多年的历史,在世界范围内安装了17.5万多台机器人[2]。ABB机器人集成有PROFINET,PROFIBUS DP,Device Net,Ether Net/IPTM等多种现场总线网络,是现场总线技术应用的典型范例。ABB机器人早在1994年就进入了中国市场,经过十几年的发展,在中国,ABB先进的机器人自动化解决方案和包括白车身、冲压自动化,动力总成和涂装自动化在内的四大系统正在为各大汽车整车厂和零部件供应商,以及消费品、铸造、塑料和金属加工业提供全面完善的服务。

本文主要解决ABB机器人控制系统与焊机之间的通讯问题。焊接机器人由机器人和焊机组成,机器人控制器控制机器人的移动,可将机器人送到各个工作空间。焊机控制安装在机器人手臂上的焊枪,决定焊接工作的进行。为了准确和可靠的完成焊接工作,必须使机器人手臂和焊机能够正确的配合使用。因此需要把焊机接入到机器人系统中统一控制和调度。传统的机器人控制系统直接通过I/O端口控制弧焊机的工作。在焊接场所恶劣的环境下,这种离散I/O端口控制方式具有现场布线困难和抗干扰能力差等缺点。采用Device Net现场总线的连接方式实现机器人与焊机之间的通讯可以克服现场环境对焊机工作造成的干扰。

ABB机器人具备Device Net主站功能,可以采用Device Net现场总线接口与其他具有Device Net接口的设备进行数据通讯。然而焊机提供的数字通讯方式为T061CAN通讯协议,不能直接连入Device Net总线网络。为了实现机器人控制系统采用Device Net接口与时代焊机进行数据通讯,需要设计一个总线通讯转换单元,实现机器人通过Device Net总线与具有CAN总线接口的电焊机进行双向数据通讯。

1 通讯模块的硬件设计

本设计采用的处理器为LPC2129,它是NXP公司的32位工业级ARM7处理器,其内部集成了两个CAN控制器,只需外扩两个CAN收发器即可实现CAN报文的收发,达到与机器人和焊机进行通讯的目的。在一片处理器内首先将机器人端的Device Net协议数据转换成中间协议数据,之后转换成电焊机可以识别的自定义T061CAN协议数据。拨码开关用来设置Device Net端的波特率及MAC地址,其中波特率的开关为3位,分别代表125Kbps、250Kbps、500Kbps;MAC地址的开关为6位,地址为0~63。RS232既可作为程序下载接口,也可作为通用的RS232串口实现与上位机的通讯。另外扩展一片FM24CL08存储器,主要用来存储协议转换模块的配置参数,例如Device Net侧通讯参数、CAN侧通讯参数、机器人与固件匹配参数、CAN口的ID等参数;系统的供电电源采用24V的直流供电,并在内部将24V电源转化为模块需要的5V、3.3V及1.8V电压电源。整体的硬件结构如图1所示。

如图所示,通讯模块实现Device Net与CAN之间的通讯。机器人作为Device Net主站,通讯模块便需要实现一个Device Net从站的功能;焊机作为CAN的从站,通讯模块便需要实现一个CAN主站的功能。当处理器接收到机器人的Device Net数据时,协议转换并打包为CAN包发给焊机;同样,当处理器接收到焊机的CAN数据时,转换为Device Net数据包并发送给机器人。

2 D e v i c e N e t及CAN协议介绍

2.1 Device Net协议规范

Device Net TM规范由Rockwell自动化公司开发,并将其作为一个基于CAN协议的开放式现场总线标准而公布[3]。最初的Device Net产品在1995年初出现。Device Net协议特别为工厂自动控制而定制,它在美国和亚洲扮演了非常重要的角色。在欧洲,越来越多的系统方案使用Device Net来实现。Device Net协议是一个简单、廉价而且高效的协议,适用于最低层的现场总线。

Device Net采用对象建模的方法,将每个总线设备视为一个对象集合体的节点。这些节点的总线行为表现是其内部对象之间相互作用的结果[4],如图2所示为Device Net的对象模型。Device Net包括对象类Identity、Message Router、Device Net、Connection、Assembly、Parameter、Application。一个对象代表设备内一个部件的抽象描述,由它的数据或属性、功能或服务以及它所定义的行为决定。对象的数据和服务通过一个分层的寻址概念进行寻址,包括MAC ID、分类ID、实例ID、属性ID和服务代码。

Device Net连接包括显式信息连接和I/O连接,I/O连接用于传送对实时性要求较高的和面向控制的I/O报文,I/O报文的发送和接收设备都必须先行设定。显式报文则适用于两个设备间多用途的点对点报文传递,是典型的请求/响应通信方式,常用于节点配置、问题诊断和控制命令等[5]。Device Net信息帧的格式如图3所示,显式信息和I/O信息的数据区都是0~8个字节,如果超过8个字节,则需要采用分段方式进行传输。

2.2 焊机自定义CAN协议

焊机通过CAN总线与通讯模块连接,采用的协议为自定义的T061CAN通讯协议,协议分为内部CAN和外部CAN,内部CAN总线采用采用11位标识符帧标准格式,外部CAN总线采用采用29位标识符帧扩展格式。通讯模块与焊机间的通讯属于内部CAN总线。

焊机的通讯采用问答的方式进行,只有当焊机接收到CAN总线的提问时才会作出响应。通讯模块向焊机寄存器写数据时采用标准的数据帧,而读取焊机寄存器的信息采用标准的远程帧,标准数据帧格式如表1所示。远程帧和数据帧相比,无数据域。

内部CAN总线的11位标识符定义为寄存器编号,最大可定义2048个寄存器,如表2所示。

3 Device Net从站协议代码

为了实现通讯模块与机器人主站通过Device Net现场总线进行数据传输,需要开发一个Device Net从站节点。一个仅限组2的Device Net从站在通信模块中以软件的形式实现,从站确保通讯模块能够通过Device Net接口接收到机器人的数据。Device Net从站源代码的编写是通讯的关键,也是整个设计中最困难的部分。完整的从站代码组成了一套可以移植到其他Device Net从站产品上的Device Net协议栈,该协议栈的主要特点如下:

1)支持Device Net预定义主/从连接模式;

2)支持报文类型:Poll,Strobe,Change ofState/Cyclic;

3)对硬件资源(ROM/RAM)最大程序进行优化。

如图4所示为协议栈的功能模块图。通过协议栈,通讯模块可以与机器人建立显式信息连接以及4种I/O连接。协议栈还可以提供LED状态,定时器等功能函数。

如图5所示为Device Net主/从站连接的过程,当机器人发送一个请求命令时,Device Net必须对其进行响应。本通讯模块属于仅限组2设备,一个Device Net的组2服务器在通过重复MAC ID检测上线后,需等待客户机分配预定义主/从连接组并建立显式信息连接,通过客户机的配置和验证后建立轮询的I/O连接。根据Device Net主/从站的连接过程,Device Net从站必须对主站的请求进行响应。

4 通讯模块的应用层软件设计

应用层程序调用协议栈相关函数接收机器人端的Device Net数据,然后转换为焊机的通讯规约格式,送入CAN驱动打包后发送给焊机。反之,当通讯模块发送读焊机命令后,若收到焊机响应数据,则将该CAN数据转换为Device Net规约格式并打包发返回到机器人。最终实现机器人和焊机之间的双向数据交换。如图6所示为通讯模块的主程序流程图。

上电后,通讯模块启动,首先进行一次自检,检测它的MAC ID,波特率,EEPROM。自检通过后,对LPC2129进行初始化,打开CAN收发中断。在主循环里首先查看是否有新的机器人数据,若有则将它转换为焊机的格式写到焊机内部。若无机器人新数据,则直接进入下一步,发送读焊机命令,每发一条等待焊机响应,若在等待周期内收到焊机响应,则在CAN接收中断内将接收到的焊机数据转换为Device Net数据。

Void Dns Poll Request Update(void)是协议栈部分Device Net数据的处理函数,它在通讯模块接收到一个完整的轮询请求后被调用。该函数首先对本次接收到的数据和上次接收到的数据进行比较,只有当不同时才将接收到的新数据赋给aub App Old Cons Data[i]以便被_U08Send CAN2Write Msg()函数调用后写到焊机。这样不仅减轻了CPU的处理负担,还避免了焊机寄存器的不断写入。

Void Dns Poll Response Update(void)也是协议栈部分Device Net数据的处理函数,它在通讯模块进行轮询响应前被调用。该函数将读焊机命令Send CAN2Read Msg(_U08 i)的响应数据赋给aub App Poll Prod Data[ub Cnt Byte]作为轮询响应。

应用层还具有的功能包括:读取拨码开关的值(MAC ID和波特率);设置轮询I/O的长度;串口的相关功能。

5 编译及调试

软件的编译环境为Ubuntu,完整的程序可在Ubuntu上成功编译并生成相应的hex文件。编译路径及其它设置由makefi le文件确定:

基于ARM7处理器LPC2129,通讯模块实现了Device Net总线与CAN总线之间的通信。连接好机器人、通讯模块与焊机并上电。在机器人控制面板里对Device Net总线进行设置,其从站地址为1,输入长度为6字节,输出长度为63字节,轮询周期为10ms。然后再添加组输入与组输出。

如表3所示为机器人输入值的调试结果,其中焊机地址为0x1B4的值为32768,表示焊机状态为初始化完成。焊机地址为0x1B5的值为0表示焊机的电源状态正常,焊机地址为0x1B1的值为0表示焊机如输入故障信息,当焊机断电时,该值为49152表示焊机欠压。

改变机器输出组的值,焊机面板上相应的数据随之发生变化。如表4所示为部分机器人输出值与焊机值的比较,它表明机器人的输出能正确写入到焊机。

6 结束语

本设计采用NXP公司的ARM7处理器LPC2129,实现了基于Device Net总线的机器人与基于CAN总线的焊机之间的通讯。充分利用了LPC2129的两个CAN控制器设计了两个CAN接口,一个接机器人端的Device Net总线,另一个接焊机端的T061CAN总线。机器人、焊机和通讯模块同时上电后,机器人与通讯模块间的Device Net总线先建立连接后进行I/O轮询,机器人的输出通过通讯模块的转换后通过CAN2接口被写入焊机相应的寄存器。然后通讯模块发出读取焊机参数的命令并将焊机的返回值转换为Device Net总线格式作为轮询输入返回到机器人。这样便完成了一个完整的信息交换过程。实现表明,Device Net总线的轮询周期小到10ms也能够正常控制焊机。

通讯模块在恶劣的环境下经历了严格的测试,能够满足模块化、数字化、网络化要求。Device Net从站代码经过了ODVA的一致性测试,可移植到其他的产品上。

参考文献

[1]陈在平,张建峰,贾超,李其林.DeviceNet从节点智能通信接口设计与实现[J].制造业自动化,2006,(7):54-57.

[2]叶晖,管小清.工业机器人实操与应用技巧[M].北京:机械工业出版社,2010:2-10.

[3]ODVA.DeviceNet Specification[S],Release2.0,1999.

[4]王雪,甘永梅.DeviceNet现场总线从站通信接口的设计[J].工矿自动化,2004,(2):7-10.

模块教学的积极运用 篇3

【关键词】体育教学; 模块教学; 教学效果

【中图分类号】G642 【文献标识码】B 【文章编号】2095-3089 (2012)02-0145-02

体育教学是学校教育的重要组成部分,是培养学生“终身体育”意识,提高国民身体素质的奠基石。而当前中学体育教学中突出的问题是一些体育教育工作者不从学生个体能力出发,采用整齐划一的格式化的组织教法和教学手段来进行教学,导致很多中学生喜欢体育,但又不喜欢上体育课。就这个问题,国内不少体育教育工作者对发展学生个性、培养学生体育能力与兴趣爱好等方面进行了研究,但从当前教学来看,只从改革教学组织形式,是难以取得突破性进展的。在体育课内对高中学生进行模块教学,对提高体育教学效果进行了研究,为促进中学体育教学改革,培养学生“终身体育”意识提供参考依据。

1 研究对象和方法

1.1 研究对象。 山东省新泰市第一中学2010届17.18班高中学生共110人为对照班; 2010届19,20班高中学生共107人为实验班,共217人。实验时间为期一学年,于2010年9月~2011年5月底完成。实验前两班按日常分组,均由同一场地和同一任课教师任教;教学内容按学期教学计划进行,学生身体发育基本正常,均无运动队学生参与,且身体形态(身高、体重、胸围)、机能(肺活量、脉博)、身体素质(50 m、800 m、立定跳远、铅球)的9项指标测试中,除实验班的50 m成绩稍优于对照班(P<0.05),而800 m成绩明显劣于对照班外(P<0.001),其他都处于同一水平,均无明显差异。

1.2 研究方法

1.2.1 实验法。 对照班与实验班的确定采用随机抽样的办法,对照班按常规分组,采用传统的听、观、练3段式教学结构模式来进行体育教学。实验班则从学生个体能力爱好出发,采用3层4组(好一组、中二组、差一组)制定不同的教学目标来进行模块教学。

1.2.2 问卷调查法。 2010年9月初,向2010级高二两班学生共发放问卷217份,回收217份,回收率100%。

2 研究结果与分析

2.1 学生对分层次教学的认知度。 问卷经过数理统计调查结果表明,有41.08%的学生认为体育课教学不必要根据现行的教学大纲内容来进行技术性教学模式;56%的学生认为体育课评价应按学生身高、体重等力量大小的个体能力进行评分,更完美、更合理;有70.42%的学生认为,体育课教学应按学生运动素质能力高低,和兴趣爱好来进行模块教学,这样可以让优生不断更新塑造自己、完善自己、发展自己,从而使自己“反复成功”提供丰富的机会。利于激发学生的运动兴趣,利于养成锻炼身体的习惯,利于培养学生的创新精神和实践能力,逐步树立正确的学习动机和自尊心、自信心、自强心。

2.2 模块教学对学生体育兴趣、锻炼动机的影响

2.3 教学对模块学生参加课外体育锻炼积极性的影响。 由于两班学生对体育兴趣、锻炼动机认识不同,由此而产生在学习态度上存在着很大的差异性。调查原因,对照班中有学生由于对课外体育锻炼不感兴趣,怕累、怕出汗,往往以头痛、脚痛、胃痛等等这种看不见,摸不着的病症来为自己逃避锻炼寻找借口。而实验班学生一致认为体育这门课程使我们身心受益,实验班这种高出勤率和良好的课堂情绪不仅使体育课得以顺利进行,而且也为其他各科教学提供了良好学习氛围。

2.4 模块教学对学生掌握体育技能的影响。实验班和对照班技能掌握状况有明显的差异,这种显著差异,来自于教师对学生采用不同的教学方法和教学手段一:基础内容的学习;模块二:基本内容的学习;模块三:提高内容的学习;模块四:特长的灵活应用。对第一层次学生重点学习本模块的基础理论知识、简单的技能技术及基本的体能要求。

3 结论与建议

3.1 结论。 模块教学的积极运用,可提高学生身体素质、运动技能,为学生建立“终身体育”意识打下基础;可大大提高体育特困生对上体育课的自信心,也充分发挥好生的创造性思维,为每个学生“反复成功”提供丰富的机会;可因材施教,大面积提高教学质量的需要,也是培养学生竞争意识适应未来社会激烈竞争的需要。

3.2 建议。1)模块教学的积极运用,可以解决目前体育教师师资、场地、器材等不足的缺陷,但是还有一些问题,例如:如何更好地解决组织教学的问题;如何解决教师的负担加大的问题等等。这些问题需要进一步在实践中进行探讨。2)采用模块教学后,评定体育成绩应以学生的体质情况、努力程度、本人运动成绩进步幅度和掌握的体育知识为主要评定标准。当前我国模块选项教学已经全面铺开,要真正的让模块选项教学激发起学生的学习兴趣、自主学习、合作学习、探究学习,则要让学校根据学生体育与健康水平基础的基本情况、学校的场地器材以及学校体育教师师资力量水平,在尽可能满足学生的需求和爱好的基础上进行选项教学;力求满足学生在各模块学习中的不同层次的需求,从而培养其终身体育的意识,进一步促进学生身心健康和谐的发展。但在模块层次性教学的实际操作过程中应注意以下五点:

3.2.1 在预设教学目标时,一定要结合学习的内容、学生的差异来确定不同的、合理的、有层次的学习目标,特别在运动技能学习方面一定要区分开。

3.2.2 高中模块教学大家都在探索过程中,一个模块,18-16课时的体育与健康课教学,对于学生的技能学习是比较系统的,每一个模块都学习些什么内容?在高中模块教学中十分的重要,而对于模块交叉分层教学就更为重要。因此,我们教师在设计模块学习内容时,要尽量考虑模块之间的联系,模块二学习的内容尽量是在模块一相应知识技能上的提高与延伸,这样有利于我们开展模块交叉的分层教学。

3.2.3 我们教师一定要注意调整自己的教学行为,切忌教学过程的一刀切,要从教学内容、教学方法、教学组织等多方面选择合理的教学行为,课堂教学坚决贯彻分层施教。

3.2.4 我们必须要制定不同的评价标准。由于学习的基础不同,在模块交叉的体育与健康课教学中,常常会使我们教师对低模块学习的学生要求过高,不能客观的评价他们,久而久之会影响到這部分学生学习积极性。所以,我们要站在不同模块下,用不同的标准,合理地评价每一位学生的学习,这样使每一位学生都能在这种交叉的模块教学中,习得知识与技能,获得体育学习的满足。

参考文献

[1] 李文江.对高中体育与健康课实施选项教学存在问题的几点思考.体育教学,2007(5)

[2] 肖威.现阶段高中体育选项课应直面的几个问题.体育教学,2007(6)

[3] 体育与健康课程标准研修

机器人的实践教学模块 篇4

可重构包括自动可重构和手动可重构, 自动可重构 (自重构) 是机器人学近年来兴起的新兴研究领域。自重构机器人由许多功能简单且具有一定感知能力的模块机器人有机连接而成, 可以通过自动变形获得自主适应能力, 在军事行动、危险环境和行星探测等场合有着很大的应用潜力[1]。

模块化是指构件具有由一系列可以替换的标准模块组成的特性, 模块化可以指机构的具体部件, 也可以指整个机构。在群体机器人的研究中, 每个子机器人就代表一个模块, 它具有自己独立的通信、计算、控制模块和驱动器以及简单的传感器。

可重构模块化机器人是一种新型的机器人, 它的显著优点在于自身的模块化和可重构性。模块化允许局部被损坏的模块由系统中冗余的备用模块替换, 这样, 系统局部模块的损坏不会影响整个机器人系统的作业;可重构性可以实现作业构型之间的转换, 用于那些普通机器人无法适应的场合[2,3,4]。模块化机器人的设计在很大程度上扩展了机器人的性能, 提高了机器人系统的可维护性。可重构机器人系统在机构模块化的基础上, 实现了控制上的自主性, 它的最大优势在于可以根据周围环境和实际任务的要求动态地改变自己的结构和构型, 具有较强的运动灵活性和环境适应性, 因此成为机器人领域的研究热点。本文介绍的多机器人系统把可重构的概念引入到星球探测中, 对多机器人系统的爬坡能力进行了详尽的分析和试验。

1 子机器人机构简介及爬坡能力分析

可重构模块化星球探测机器人系统 (RMERS) 可以用于星球探测, 它包括一个主体和6个轮子[5]。主体本身不能运动, 它通过控制与它相连的所有轮子协调运动来控制整个系统的运动, 每个轮子就是一个独立的子机器人。在行进过程中, 子机器人与主体相连并充当它的主动轮;当探测任务需要时, 子机器人可以从主体脱离从而执行相应的任务, 在执行任务过程中, 子机器人之间可以互相协作[6]。

对于单体子机器人, 在硬件设计中, 所选电机的输出力矩是足够的, 它可以根据设定的速度和外界环境需要, 不断地调整自己的力矩。因此, 当坡面粗糙程度已知时, 可以得到子机器人匀速爬坡时需要的电机输出与坡度变化之间的关系曲线, 同时, 坡面最大静摩擦力与坡度的变化曲线也可以获得。对于同一个坡面, 当电机输出所对应的沿坡面的力 (拉力或推力) 小于或等于最大静摩擦力时, 子机器人可以爬坡;否则, 表示最大静摩擦力满足不了爬坡的需要, 发生打滑, 子机器人不能继续爬坡。因此, 以上两条曲线的交点所对应的坡角就是这种环境下机器人能爬的最大坡度。

对于子机器人组合, 当坡度比较小时, 组合中两个子机器人的电机都可以根据给定的速度调节自己的力矩, 以满足运动的需要, 因此, 这时可以近似认为它们之间的作用力只有垂直于坡面的压力。由于两个子机器人组合的构型不同, 组合中每个子机器人的坡面最大静摩擦力也随之变化, 随着坡度的增大, 必定会有一个子机器人的动力首先达到它对应的坡面最大静摩擦力, 出现打滑, 这时另一个子机器人对它施加一个拉力 (或推力) , 子机器人组合仍然可以爬坡。本文分析子机器人爬坡的方法为:分析子机器人之间只有垂直于坡面的相互作用力而不存在沿坡面的拉力时各自所能爬的最大坡度, 分析方法与单体子机器人相同[7], 由于结构上的相似性和环境条件的一致性, 故两个子机器人所对应的最大坡度的平均值被认为是子机器人组合所能爬的最大坡度。

2 子机器人组合的构型分析

子机器人之间的连接部位和结构决定了组合的构型数目, RMERS子机器人的抓取部位为末端操作器, 连接部位为履带轮子底部正中间的连接板[7], 因此, 子机器人组合之间的连接方式是有限的。基本的组合形式有三种, 即串形连接、环形连接和通过工具相连的并形连接, 如图1所示[8]。

图1a所示为子机器人组合的串形连接, 组合可以按图示方向运动, 也可以反向运动, 其运动机理不同。当沿着图示方向运动时, 子机器人的手臂拖在后边, 运动的同时向下压手臂, 由于手臂导轮的支撑作用, 因而子机器人之间只能相互施加向前或向后的推力;如果沿图示方向的反方向运动, 相当于手臂在前, 子机器人运动的同时对手臂施加一个向上抬起的力矩, 走在前面的子机器人可能在该力的作用下实现手臂向后翻转。

图1b所示为子机器人组合的环形连接, 该构型中前面的子机器人对其手臂施加一个向下的力, 其反作用力为地面对导轮的支撑力, 同时三角轮子受到手臂向上的作用力。

图1c所示为两个子机器人通过工具连接在一起的并形连接, 在执行采样操作时, 子机器人组合不仅要携带工具, 而且要携带容器以收集样品, 这种构型中, 连接两个子机器人的工具中间可以做成需要的容器。

3 子机器人组合爬坡的静力学分析

本文主要对手臂在前的串形连接、手臂在后的串形连接、首尾相连的环形连接等子机器人组合的爬坡能力进行研究。

3.1 手臂在后的串形连接爬坡时静力学分析

子机器人组合手臂在后成串形连接爬坡时的受力分析如图2所示。组合中前面的子机器人设为R1, 后面的子机器人设为R2, 为与单体子机器人受力相区分, 作用在R1上的所有作用力加下标1, 作用在R2上的所有作用力加下标2。子机器人组合与单体子机器人受力的区别在于:R1手臂处的支持力NdY1由子机器人R2提供, 相对于R2来说等于额外施加了一个压力, 增大了R2所受的最大静摩擦力fA2, 因此R2爬坡能力提高, 当R1打滑时, R2给R1一个向前的推力, 从而使整体的爬坡能力提升。

(1) R1的坡角β1与电机输出力矩TA1的关系。R1沿斜面受力平衡方程为

(G1A1+G1A2+GW1) sin β1=TW1/r (1)

ΤA1= (G1A1+G1A2+GW1) rsinβ1nη (2)

TW1=TA1n η

式中, G1A1为R1手臂前2个关节所受的重力;G1A2为R1手臂后2个关节所受的重力;GW1为R1的轮子所受的重力;TW1为传递到R1导轮上的力矩;TA1为R1的电机输出力矩;r为导轮的半径;n为传动比;η为传递效率。

手臂力矩平衡方程为

ΤA1+G1A2l1cosβ1+G1A1l12cosβ1=ΝA1l1 (3)

ΝA1=ΤA1l1+G1A2cosβ1+G1A12cosβ1 (4)

式中, l1为G1A2的力臂长;NA1为R1手臂导轮处所受的支持力, NA1=NdY1。

(2) 坡面粗糙程度已知时R1的坡角与对应最大静摩擦力的关系为

ΤA1max=ΤW1nη=[ (G1A1+G1A2+GW1) cosβ-ΝA1]μ1rnη (5)

式中, TA1max为R1的电机的最大输出力矩;μ1为履带与地面间的摩擦因数。

(3) R2的坡角β2与电机输出力矩TA2的关系。R2沿斜面受力平衡方程为

(G2A1+G2A2+GW2) sin β2+fA2=TW2/r (6)

ΤA2= (G2A1+G2A2+GW2) rsinβ2nη (7)

TW2=TA2n η fA2=NA2μ2

式中, G2A1为R2手臂前2个关节所受的重力;G2A2为R2手臂后2个关节所受的重力;GW2为R2的轮子所受的重力;TW2为传递到R2导轮上的力矩;fA2为导轮所受的摩擦力;NA2为R2手臂导轮处所受的支持力, NA2=NdY2;NdY2为地面对导轮的支持力;μ2为导轮与地面间的摩擦因数。

手臂力矩平衡方程为

ΤA2+G2A2l2cosβ2+G2A1l22cosβ2=ΝA2l2+fA2 (lb+l2sinβ2) (8)

ΝA2=ΤA2+G2A2l2cosβ2+G2A1l22cosβ2l2+μ2 (l2sinβ2+lb) (9)

式中, l2为G2A2的力臂长;lb为三角轮子重心高度与导轮半径之差。

所以

ΤA2=[ (G2A1+G2A2+GW2) sinβ2- (G2A2l2cosβ2+G2A1l22cosβ2) μ2l2+μ2 (l2sinβ2+lb) ][nηr-μ2l2+μ2 (l2sinβ2+lb) ]-1 (10)

(4) 坡面粗糙程度已知时R2的坡角与对应的最大静摩擦力关系为

NW2= (G2A1+G2A2+GW2) cos β2-NA2+NA1 (11)

fW2max=ΝW2μ1ΤW2=ΤA2nη=fW2maxrΤA2max=ΤW2nη=Aμ1rnηA= (G2A1+G2A2+GW2) cosβ2-ΤA2+G2A2l2cosβ2+G2A1l22cosβ2l2+μ2 (l2sinβ2+lb) +ΤA1l1+G1A2cosβ2+G1A12cosβ2 (12)

式中, NW2为R2三角轮子所受的支持力;fW2max为R2三角轮子处最大静摩擦力。

手臂在前串形连接的静力学分析与手臂在后串形连接的静力学分析相近。

3.2 子机器人首尾相连的环形连接爬坡时静力学分析

图3为环形连接机器人组合爬坡示意图, 如果两个子机器人R1与R2的速度相等, 加速度相同, 则它们沿连接手臂方向的推力为0, 即R1与R2不受对方的推力作用, 仅依靠自己与坡面的摩擦力和电机输出力矩而爬坡, 此时有NdX1=NdX2=0 (NdX1为子机器人R2对R1导轮处的水平支持力;NdX2为子机器人R1对R2导轮处的水平支持力) 。下面以此为基础对子机器人首尾相连的环形连接进行爬坡时的静力学分析。

(1) R1沿斜面受力平衡方程式 (1) 、式 (2) 包含了R1的坡角β与电机输出力矩TA1的关系式。

(2) R2的坡角β与电机输出力矩TA2的关系见式 (7) 。

(3) 坡面粗糙程度已知时R1的坡角与对应最大静摩擦力的关系。R1手臂力矩平衡方程与上述串形连接时一致, 见式 (3) 、式 (4) ;R1手臂Y轴力平衡方程为

ΝWAY1= (G1A1+G1A2) cosβ-ΝdY1= (G1A1+G1A2) cosβ- (ΤA1l1+G1A2cosβ+G1A12cosβ) (13)

式中, NWAY1为在子机器人R1手臂与三角轮子连接处, 轮子对手臂在Y方向上的支持力。

R2手臂力矩平衡方程为

ΤA2+ΝdY2l2=G2A2l2cosβ+G2A1l22cosβ (14)

ΝdY2=G2A2cosβ+G2A12cosβ-ΤA2l2 (15)

R2手臂Y轴力平衡方程为

ΝWAY2= (G2A1+G2A2) cosβ-ΝdY2= (G2A1+G2A2) cosβ- (G2A2cosβ+G2A12cosβ-ΤA2l2) (16)

NW1=GW1cos β+NdY2+NWAY1 (17)

式中, NWAY2为在子机器人R2手臂与三角轮子连接处, 轮子对手臂在Y方向上的支持力;NW1为子机器人R1轮子处所受的支持力。

f1max=ΝW1μ1ΤA1max=ΤW1nη= (GW1cosβ+ΝdY2+ΝWAY1) μ1rnη

(4) 坡面粗糙程度已知时R2的坡角与对应最大静摩擦力的关系为

NW2=GW2cos β+NdY1+NWAY2

f2max=NW2μ1

式中, NW2为子机器人R2轮子处所受的支持力。

ΤA1max=ΤW1nη= (GW2cosβ1+ΝdY1+ΝWAY2) μ1rnη

4 子机器人组合的爬坡能力比较与仿真研究

子机器人组合的静力学分析求出了子机器人与环境之间以及子机器人相互之间的作用力, 是仿真分析的基础。在以上静力学分析方程中代入子器人的实际模型参数 (表1) , 同时, 为了比较子机器人组合不同构型的爬坡能力, 使它们处于同一环境条件下, 分别对串形连接手臂在后、串形连接手臂在前和首尾相连成环形组合的爬坡能力作一比较, 仿真结果如图4所示, 其中, 曲线TA1、TA2分别表示在对应的坡度下, 子机器人R1和R2所需要的电机输出力矩;曲线Tf1max、Tf2max分别表示在对应的坡度下, 子机器人R1和R2所受的最大静摩擦力对应的电机输出力矩。与单体子机器人相似, 当TA<Tfmax时, 地面摩擦力能够保证子机器人向上运动, 否则, 会出现打滑现象, 不能继续爬坡。当Tf1max=TA1时, 对应的横坐标即为该环境和构型下R1能够爬的最大坡度。当子机器人组合所爬的坡度介于两个子机器人所能爬的最大坡度之间时, 它们之间会出现沿坡面方向的相互作用力, 最终结果是子机器人组合能爬的坡度介于两个最大值之间。

由图4可知:

(1) 各种构型对应的两个子机器人所能爬的最大坡度见表2。

(°)

(2) 组合中的子机器人普遍比单体子机器人爬坡时所爬的坡度大。这是因为:一方面, 导轮处不利于爬坡的滚动摩擦力减小 (环形连接时消失) , 另一方面, 导轮对地面的正压力转变成了对三角轮子的正压力, 从而最大静摩擦力增大, 有利于爬坡。

(3) 理想条件下, 手臂在前的串形连接所能爬的坡度最大, 其次是首尾相连环形连接, 最后是手臂在后的串形连接。

(4) 该仿真实验用来比较在给定姿态和理想条件下子机器人组合平稳爬坡的能力, 真实环境下由运动过程中环境条件的改变而引起的子机器人组合爬坡能力的变化应该另外考虑。比如手臂在前爬坡时, 真实环境中很多不稳定因素会导致手臂摆动。

5 试验研究

根据仿真分析结果, 当μ1=0.35时, 手臂在后成串形连接的两个子机器人所能爬的最大坡度分别为11.5°和17.2°;手臂在前成串形连接的两个子机器人所能爬的最大坡度分别为24.6°和20°;首尾相连成环形连接的两个子机器人所能爬的最大坡度分别为18.3°和24.6°。子机器人组合所能爬的最大坡度介于两个子机器人在该条件下所爬坡的坡度最大值和最小值之间, 即μ1=0.35时, 手臂在后的串行连接可以爬14.35°的坡, 手臂在前的串行连接可以爬22.3°的坡, 首尾相连成环形组合时可以爬21.45°的坡。

实际试验中设置了两种爬坡环境, 一种坡度为arcsin (400/1200) ≈19.5° (18.3°<19.5°<24.6°) , 另一种坡度为arcsin (300/1200) ≈14.3° (11.5°<14.3°<17.2°) , μ1=0.35, 试验过程如图5所示, 最终结果如表3所示。

试验中可以看出:当坡度为19.5°时, 串形连接手臂在前的构型在爬坡开始时, R1的手臂会慢慢抬起并有向后翻转的趋势, 从而导致了构型的改变和组合的不稳定性;串形连接手臂在后的构型在爬坡开始时R1的三角轮子会发生翻滚, 随后趋于稳定。因此这两种组合爬坡时的稳定性稍差。而首尾相连的环形连接则可以平稳爬上坡度为19.5°的坡。结果说明:在实际环境中, 三种构型中的环形连接在保持稳定构型的前提下爬坡能力最强;或者说, 在爬相同的坡度时, 环形连接的构型最为稳定。

当坡度为14.3°时, 手臂在后的串形连接可以平稳爬坡;手臂在前的串形连接能够持续爬坡, 但是手臂上下晃动, 系统处于不稳定状态。由此可见, 外界条件稍微改变会引起子机器人手臂在前串形组合的运动不稳定。

6 结论

由以上分析可见, 如果只考虑爬坡能力, 仿真结果大体上与试验结果相一致, 可以用来指导实际试验。但是, 仿真毕竟是在理想条件下进行的, 无法考虑真实环境中的突变性因素和由此导致的系统运动稳定性变化。比如, 在本试验中, 突变性因素为斜坡开始时的不平稳突变。因此, 在本文中, 通过综合比较仿真与实际试验结果, 我们得出:在实际环境中, 子机器人组合的环形连接在保持构型稳定的前提下爬坡性能最好。

致谢:感谢日本东京工业大学Shigeo Hirose教授及其研究小组在第一代子机器人机构设计及运动调试中的合作。

参考文献

[1]Yi m M.Locomotion with a Unit Modular Reconfig-urable Robot[D].Stanford:Stanford University, 1994.

[2]Casal A.Reconfiguration Planning for Modular Self-reconfigurable Robots[D].Stanford:StanfordUniversity, 2001.

[3]Suh J W, Homans S B, Yi m M.Telecubes:Mechani-cal Design of a Module for Self-reconfigurable Ro-botics[C]//ICRAIEEEInternational Conference onRobotics and Automation.Washington DC, 2002:4095-4101.

[4]徐雪松, 葛彤, 朱继懋.模块化自重构机器人最优构形拓扑转换[J].上海交通大学学报, 2005, 39 (6) :889-904.

[5]张力平, 马书根, 李斌, 等.可重构模块化机器人系统的翻越台阶能力研究[J].中国机械工程, 2009, 20 (12) :1407-1412.

[6]Hirose S.Super-mechano-colony and SMC Roverwith Detachable Wheel Units[J].Proc.COEWorkshop, 1999, 11 (3) :67-72.

[7]张力平.可重构模块化探测机器人系统的空间对接及协调运动研究[D].西安:西安交通大学, 2006.

服装史教学的互动模块 篇5

【关键词】服装史 教学 互动模块

就我国目前的服装专业教学的设置而言,服装史是一门必不可少的基础理论课程,其涉及到中国及西方在各个历史时期,不同地域文明的服饰发展走向、特征及工艺、科技,系统地展示了中外服装各自所具备的风格样式、纵向演变及内在规律。既然中外服装史上升至史学的高度,也就意味着它所涉及的范围、所涵盖的知识点,也必然是相当丰富的。而这,也就衍生出了另一问题——教学质量。

1.目前的服装史学教学存在的几个问题:

众所周知,史学类课程对相当一部分学生而言,是晦涩难懂、枯燥乏味、兴趣缺缺的代名词,导致很多时候授课教师是受累不讨好,学生则是考试过关即可,所学的知识模棱两可。笔者认为,虽然近些年教学不断改革,科技日新月异,填补了一部分的缺失,但依然存在一些问题:课程的定位不当,认识不清;课程设置相对孤立;授课形式单一,灵活机动性小。

2. 互动模块的设置:

服装专业的学生学习服装史的最终教学目的,不是“悟”史,而是“用”史。笔者认为“兴趣就是最好的老师”,将“兴趣”用于服装史学课,通过课上师生的互动交流,使学生从不抵触到有兴趣,并在潜移默化之中激发其学习动力,唤起其求知欲望,架构其思维方式[1]。下面详细论述一下服装史学互动模块的设置:

2.1设置游戏环节

一是设置“找茬”游戏,授课教师提前选出两部分图片,比如说一部分有明确历史考据的某朝代服饰图片,另一部分则由古装电视剧或电影剧照构成,对比展示,让学生们利用“找茬”游戏的方式,快速找出相同点和不同点,并由教师引导讨论古装剧照的服饰搭配是否遵循古时旧制,是否在传统的基础上进行了现代创新改造,而这种尝试是否成功,是否更加符合剧中人物的性格特征。

2“解码”大师,以服装发布会短片或书籍图片的展示方式,使学生们多接触大师的作品,寻找大师的灵感之源,透过表象,由表及里地深入其中,分析他们如何活用各国传统服饰元素至现代服饰之中,体悟他们的用心,感受他们的视界。之后以讨论的形式进行,师生共同交流,说出所感所想,集思广益,共同进步。

2.2设置学生自我发挥环节

2.2.1由服装传说趣闻开启

由授课教师提前安排好发言次序,学生轮流进行,利用每次课前5分钟左右的时间。轮到的学生自觉准备,课下查询相关书籍资料,选择与本课时相邻的时间段作为时代背景,以讲故事的方式向全班学生进行讲述,要求脱稿,自信而随意。内容的选择上,可以是宫廷正史,亦可是民间传说;可以关于文人墨客,亦可关于宫妃才女,可以是九五之尊,亦可是贩夫走卒,借由趣闻故事更能加强学生的印象,点燃学生们对服饰的热情,还锻炼了学生的表达能力和自我展现能力,可谓一举数得。

2.2.2课件话服装

授课教师可以选出几节有代表性、收集资料较方便的课节进行实验,事先分组,学生利用课余时间收集信息并展开讨论。内容的选择上,可以全面概括介绍,也可有针对性地集中在某一点,然后将成果制成PPT或电子书的展示方式,选出一名代表课上讲解,时间大约20-30分钟,要求课件图文并茂,讲解条理清晰。代表用自己的理解,凝聚全组人员的智慧,向全班学生及授课教师展开一幅幅瑰丽的服饰画卷[2]。

此环节的教学目的是:⑴培养学生的自学能力,理解能力,收集和整理资料的能力;⑵ 培养团队精神,分工合作,头脑风暴,创意思维;⑶加深理解与记忆,唤起学生对服装的兴趣和热忱。

2.3设置实践动手环节

有这样一句格言“听到的,过眼烟云;看见的,铭记在心;做过的,沦肌侠髓。”看得再多,听得再多,也只是纸上谈兵,只有亲身体验,亲自实践过才会“知其然,知其所以然”,也才会有更深一层的体悟。所以,笔者认为,服装史学课程不应以理论的形式孤立存在,而应在理论之余设置实践动手环节,而两者的相互渗透,相互促进,也必定会使教学内容更加充实,教学形式更加多元化。

2.3.1平面“添加”练习

此练习适合于小班授课,注重学生的平面手绘功夫。学生分组围合而坐,由教师根据授课情况选择一个时代背景和场景,比如十八世纪(洛可可艺术盛行)参加舞会的贵妇,并发给每组只有外轮廓线的图样。然后,由学生讨论决定人物的性格特征,并根据要求每人轮流为贵妇添一件衣饰,再由组内最后一位学生作出阐述,教师予以点评。这个练习设置的目的有三:⑴教师考察授课成果,了解学生听课情况,是否达到教学要求;⑵学生是否能在历史的基础上,进行个人的突破,以此更加彰显人物的性格;⑶理论与实践动手相结合,提高学生学习兴趣,为设计课打下良好的基础。

2.3.2立体“纸样”练习

课上练习和课下作业不能只局限于二维平面形式,为了培养学生的空间架构能力和想象思维能力,授课教师要从三维空间立体的角度对学生有意识地进行引导。以旗袍为例,在讲述旗袍的演变时,为了加深学生的印象,要求学生亲自动手,实际操作。用纸样剪裁,胶带粘合的方法,以“围合的纸板”为人体,制成一个立体的、360度可视的简易服装小样。这样的练习,它不仅锻炼了学生的动手能力、空间想象能力,也与结构课程存在一定的交叉点,两者互相渗透,互相影响,更利于学生对知识的理解和吸收[3]。此外,这种“纸样”的简易小样,也会引起学生制作成衣的兴趣,还会对设计创意课起到一定投射的作用。

结论:

在素质教育的今天,要求教师不能填鸭式地要求学生强记知识点,而是摆脱僵硬的授课模式,通过师生之间的互动,寓教于乐,保持愉悦的心情和轻松的课堂氛围,在游戏中学,在实践动手中学,把记忆变成一种快乐,甚至演变为灵感的火花。服装史学课程互动模块的设置,就是要教师在师生互动之中,潜移默化地引导学生,培养他们对服装的兴趣,使学生每每都有新的体验和感悟,并对以后的其他课程起到积极的促进作用。

【参考文献】

[1]张艳,体验教学法在服装专业教学中的运用 [J],江苏技术师范学院学报2011.3(21)46

[2]李凌,服装创意设计主题训练的教学研究 [J],装饰, 2014.2(11)98

[3]甄娜,服装艺术史教学范式建构 [J],装饰, 2010.2(8)124

上一篇:县XX年精神文明建设工作总结下一篇:预备党员主要表现