论文部分内容阅读
摘要: 智能机器人的研究与应用是我国十三五期间的重要方向,对于高等院校中电子、机械或计算机等相关专业,可以通过机器人实践教学让学生掌握智能机器人的核心技术,提升大学生的创新能力。本文详细论述了基于智能控制器Arduino的机器人实践教学项目的设计,旨在抛砖引玉,为机器人相关的实践教学建设提供参考。
【中图分类号】TP391【文献标识码】B【文章编号】2236-1879(2017)18-0237-01
本文的实践项目以Arduino为控制器,控制机器人的多路舵机,实现关节运动,可以模拟人体动作,也可以完成码垛等常见的工业生产动作序列。实验的目的是让学生熟悉智能机器人控制器,并掌握基本的Arduino编程技术。下图1-(a)是本文实践教学中使用的智能机器人模型机,该模型机的原型是ABB公司的码垛机器人,是一种工业生产中应用最为广泛的智能机器人。图1-(b)则是实验用的Arduino为控制器。
(a)4自由度智能机器人模型机
(b) Arduino 控制器
下表1给出了本文实验所用的机器人系统相关参数
Arduino由微控制器,编程语言和IDE构成,支持多个扩展接口的一个开源硬件平台。以Arduino为控制器的机器人拥有许多功能,比如让机器人检查并立即对接触和光线做出反应,驱动不同类型的电动机,跟踪黑色或者彩色的运动轨迹,探索不同的运动技术,存储一组预定义动作,然后执行,等等。Ardunio电路板可以看成是一个把大量的传敢器和执行器连接在一起的小电脑。Arduino电路板的核心是一个8bit的Atmel AVR单片机。Arduino uno有14个数字输入输出引脚和6个模拟输入引脚。Arduino电路板的结构设计成把引脚暴露出来,使它们能够很容易地连接到外部电路。Arduino的开发环境是以AVR-GCC和其他一些开源软件为基础,采用java编写的,软件无需安装。Arduino开发环境使用的语言与C/C++相似,非常容易使用。
本文实验的例程如下,实现的功能是通过Arduino控制器控制机器人的一个舵机由起始位置旋转100度。
#include
Servo myservo;
int pos = 80;
void setup()
{
myservo.attach(6);
myservo.write(pos);
}
void loop()
{
myservo.write(pos); //下角度指令给舵机
for(;pos<90;pos++)
{
myservo.write(pos);
delay(10);
}
for(;pos<90;pos--)
{
myservo.write(pos);
delay(10);
}
}
實验分小组进行,主要由两大步骤构成,首先是完成硬件连接,然后是基于Arduino开发环境编辑机器人运动动作序列。一般由4名同学组成一个实验小组,通过实践发现本实验项目能较大的引起学生的学习兴趣,学生在学习过程中受到实验任务的驱动,积极性高,思维活跃,提高了学习效率。同时,小组实验也培养了学生的团队合作精神。总的来说,本文的实验项目取得了较好的教学效果。
【中图分类号】TP391【文献标识码】B【文章编号】2236-1879(2017)18-0237-01
本文的实践项目以Arduino为控制器,控制机器人的多路舵机,实现关节运动,可以模拟人体动作,也可以完成码垛等常见的工业生产动作序列。实验的目的是让学生熟悉智能机器人控制器,并掌握基本的Arduino编程技术。下图1-(a)是本文实践教学中使用的智能机器人模型机,该模型机的原型是ABB公司的码垛机器人,是一种工业生产中应用最为广泛的智能机器人。图1-(b)则是实验用的Arduino为控制器。
(a)4自由度智能机器人模型机
(b) Arduino 控制器
下表1给出了本文实验所用的机器人系统相关参数
Arduino由微控制器,编程语言和IDE构成,支持多个扩展接口的一个开源硬件平台。以Arduino为控制器的机器人拥有许多功能,比如让机器人检查并立即对接触和光线做出反应,驱动不同类型的电动机,跟踪黑色或者彩色的运动轨迹,探索不同的运动技术,存储一组预定义动作,然后执行,等等。Ardunio电路板可以看成是一个把大量的传敢器和执行器连接在一起的小电脑。Arduino电路板的核心是一个8bit的Atmel AVR单片机。Arduino uno有14个数字输入输出引脚和6个模拟输入引脚。Arduino电路板的结构设计成把引脚暴露出来,使它们能够很容易地连接到外部电路。Arduino的开发环境是以AVR-GCC和其他一些开源软件为基础,采用java编写的,软件无需安装。Arduino开发环境使用的语言与C/C++相似,非常容易使用。
本文实验的例程如下,实现的功能是通过Arduino控制器控制机器人的一个舵机由起始位置旋转100度。
#include
Servo myservo;
int pos = 80;
void setup()
{
myservo.attach(6);
myservo.write(pos);
}
void loop()
{
myservo.write(pos); //下角度指令给舵机
for(;pos<90;pos++)
{
myservo.write(pos);
delay(10);
}
for(;pos<90;pos--)
{
myservo.write(pos);
delay(10);
}
}
實验分小组进行,主要由两大步骤构成,首先是完成硬件连接,然后是基于Arduino开发环境编辑机器人运动动作序列。一般由4名同学组成一个实验小组,通过实践发现本实验项目能较大的引起学生的学习兴趣,学生在学习过程中受到实验任务的驱动,积极性高,思维活跃,提高了学习效率。同时,小组实验也培养了学生的团队合作精神。总的来说,本文的实验项目取得了较好的教学效果。