能力风暴机器人编程11个经典实例(含代码)
1.1能力风暴——机器人仿真系统的应用课件

知识着陆
1、我们是通过能力风暴机器人来学习智能机器人知识的,供 中小学生使用的能力风暴机器人型号有AS- InfoX小学版、ASInfoM中学版和AS-MII活动版三种。
2、在没有真实机器人时,可以通过能力风暴仿真机器人系统 学习智能机器人的知识,体会学习机器人知识的乐趣。
3、在使用VJC系统为机器人编写程序前要先设置使用的机器 人型号。对于改变设置的VJC系统需要先关闭系统,设置之后再重 新进入系统,改变的设置才会生效。
能力风暴
——机器人仿真系统的应用
任务导航
1920年捷克作家卡雷尔·卡佩克发表了空想情节剧《罗 萨姆的万能机器人》,第一次提出了“机器人”这个名词。 时至今日机器人不仅为我们的日常生活提供了方便,而且还 能代替人类从事很多沉重和危险的工作,帮助人类探索许多 未知的领域。
本课,我们先来了解能力风暴机器人,然后用能力风暴 机器人仿真系统编写一个简单的程序。
(a)AS-InoX型机器人
(b)AS-InoM型机器
(c)AS-MII型活动版机器人
图1.1 能力风暴智能机器人
2、认识能力风暴机器人仿真系统 当没有真实的机器人做伴时,我们可以在计算机上安装一个能力风暴 机器人仿真系统,同样可以享受机器人带来的学习乐趣。 能力风暴机器人仿真系统可以使我们在编写程序后通过仿真系统界面 来到达控制仿真机器人的目的。 步骤1:安装能力风暴智能机器人VJC1.5仿真版软件。 能力风暴智能机器人VJC1.5仿真版软件可以从www.grandarX网站下载, 然后按照系统提示完成安装。 步骤2:单击桌面上的图标 进入VJC1.5流程图编辑界面,如图所示。
4、对于拖到编辑区的流程图模块,可以通过右击进入模块的 编辑对话框,修改模块中参数的设置。在执行程序时,机器人会按 照修改后的参数执行动作。
第4章 能力风暴编程

1.点击工具栏中的“新建”按钮,新建一个程序; 2.用鼠标将“执行器模块库”中的“显示”模块
拖入到流程图生成区,放在主程序模块正中的 下边沿的位置,看看“主程序”模块与“显示”
为机器人编写第一个程序“Hello,robot!”。 模块之间是不是有箭头连接,有则说明连接上
void main( )
放在平稳的地方,按机器人头顶上的“RUN”
{printf("Hello robot!\n");}
按钮,机器人的液晶显示屏上就会显示出
Hello,robot!
2/13
4.2 让机器人动起来
下面我们就尝试着让机器人动起来。(相关的知识介绍请参看VJC1.5开 发版使用手册》)
f) 再将“程序模块库”中的“任务结束”移入到流程图生成区并 连接在程序的末尾。
图4-4 机器人感光VJC程序
也可以点击“工具栏”中的“编辑JC程序代码”按钮,切换到JC代码界面,对JC代码进行修改7。/13
4.3.2 保存程序
点击工具栏中的“保存”按钮,文件名输入:感 光,按“确定”。此时,“感光.flw”流程图程序文件 已被保存。
让机器人对外界的光线进行检测,并在LCD上显示左右光敏所检测到外 界光线的平均值。示范操作步骤如下:
4.3.1 编写流程图
a)用鼠标将“控制模块库”中的“永远循环”模块移到流程图生 成区并与主程序模块连接上。
b) 用鼠标将“传感器模块库”中的“光敏检测”模块移到“永远 循环”模块内部并连接上;右击“光敏检测”流程图模块,在 弹出框中方向一栏选择“平均”,按确定。
drive(100,0); wait(1.0); drive(0,60); wait(0.2); } stop(); }
第五章_能力风暴智能机器人编程实例

} else { drive( 20 ,0); wait( 0.050000 ); stop(); } surf_1 = surface(); if( surf_1 == gi_1) { } else { tone(523.200012,0.250000); gi_1 = surf_1 ; } printf( "surf_1 =%d\n" ,surf_1); } }
第五பைடு நூலகம் 机器人避障
子程序开始
读取传感 器数值
障碍物在 前方 否 障碍物在 左方 否 障碍物在 右方 否
是
左转
是
右转
是
左转
前进
int ir_1=0; int bmp_1=0; void main() { while(1) { SubRoutine_1 (); SubRoutine_2 (); } } void SubRoutine_1( ) { ir_1 =ir_detector();
return; } void SubRoutine_3( ) { if(gi_1 == 1) { ir_1=ir_detector(); if(ir_1 == 1) { drive( 0 , 80 ); wait( 0.100000 ); stop(); } else { if(ir_1 == 4) { drive( 0 , 80 ); wait( 0.100000 ); stop(); } else { motor( 1 , 20 ); motor( 2 , 80 ); } } bmp_1 = bumper(); if( bmp_1 != 0) { drive( -40 ,0); wait( 0.200000 ); stop(); drive( 0 , 80); wait( 0.100000 ); stop(); } tim_1 =seconds(); if( tim_1 > 60.000000) { gi_1 = 2 ; } } else
能力风暴机器人编程复习过程

能力风暴机器人编程第一节图形化交互式C语言简介4.1.1VJC简介图形化交互式C语言(简称VJC)是用于能力风暴智能机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C语言(简称JC)。
VJC为开发智能机器人项目、程序与算法、教学等提供了简单而又功能强大的平台,是全球开创性的具有自主知识产权的产品。
在VJC中,不仅可以用直观的流程图编程,也可以用JC语言编写更高级的机器人程序。
流程图和JC语言双剑合壁,既能领读者轻松入门,又能够让读者在编程中发挥最大的创造力。
VJC操作简便,有活泼明快的图案和简短的文字说明。
读者可以使用形象化的模块,由顶向下搭建流程图,搭建流程图的同时,动态生成无语法错误的JC代码。
流程图搭建完毕,程序就已经编写完成,可以立即下载到机器人中运行。
已入门的读者可以直接在JC代码编辑环境中编写程序,还可以边写边试,发现错误,校正修改,十分方便。
VJC能让你在丰富多彩的机器人世界里,边玩边学,愉快地掌握许多有用的科技知识。
用常规的计算机编程语言(如C、FORTRAN、JAVA)编程,需要输入复杂的程序代码,并且编写的程序还要符合特定的语法。
而流程图编程不需要记忆计算机语言的语法,不需要使用键盘输入程序代码,只需要按照“先作什么,后作什么”的设想,就可以编出程序。
VJC正是按这个思想设计的。
使用VJC软件,学生们不用关心语言实现的细节,同时也有效避免了语法错误,有利于集中精力寻求解决问题的方法。
VJC的流程图模型由以下几种基本形状的模块及带有箭头的方向线组成:VJC的模块包括:执行器模块(蓝色矩形)、单功能传感器模块(紫色平行四边形)、带判断功能的传感器模块(紫色菱形)、控制模块(红色菱形)和程序模块(黄色矩形或椭圆形)五种。
VJC流程图支持多任务程序、子程序调用、浮点数和整数、全局变量、简单表达式、复合条件判断以及循环嵌套等。
每一个模块都可以完成一定的功能。
只要按清晰的思路连接这些模块,就可以很快地完成一个程序的编写。
能力风暴机器人编程

第一节图形化交互式C语言简介4.1.1VJC简介图形化交互式C语言(简称VJC)是用于能力风暴智能机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C语言(简称JC)。
VJC为开发智能机器人项目、程序与算法、教学等提供了简单而又功能强大的平台,是全球开创性的具有自主知识产权的产品。
在VJC中,不仅可以用直观的流程图编程,也可以用JC语言编写更高级的机器人程序。
流程图和JC语言双剑合壁,既能领读者轻松入门,又能够让读者在编程中发挥最大的创造力。
VJC操作简便,有活泼明快的图案和简短的文字说明。
读者可以使用形象化的模块,由顶向下搭建流程图,搭建流程图的同时,动态生成无语法错误的JC代码。
流程图搭建完毕,程序就已经编写完成,可以立即下载到机器人中运行。
已入门的读者可以直接在JC代码编辑环境中编写程序,还可以边写边试,发现错误,校正修改,十分方便。
VJC能让你在丰富多彩的机器人世界里,边玩边学,愉快地掌握许多有用的科技知识。
用常规的计算机编程语言(如C、FORTRAN、JAVA)编程,需要输入复杂的程序代码,并且编写的程序还要符合特定的语法。
而流程图编程不需要记忆计算机语言的语法,不需要使用键盘输入程序代码,只需要按照“先作什么,后作什么”的设想,就可以编出程序。
VJC正是按这个思想设计的。
使用VJC软件,学生们不用关心语言实现的细节,同时也有效避免了语法错误,有利于集中精力寻求解决问题的方法。
VJC的流程图模型由以下几种基本形状的模块及带有箭头的方向线组成:VJC的模块包括:执行器模块(蓝色矩形)、单功能传感器模块(紫色平行四边形)、带判断功能的传感器模块(紫色菱形)、控制模块(红色菱形)和程序模块(黄色矩形或椭圆形)五种。
VJC流程图支持多任务程序、子程序调用、浮点数和整数、全局变量、简单表达式、复合条件判断以及循环嵌套等。
每一个模块都可以完成一定的功能。
只要按清晰的思路连接这些模块,就可以很快地完成一个程序的编写。
能力风暴机器人课程设计

能力风暴机器人课程设计一、课程目标知识目标:1. 学生能够理解能力风暴机器人的基本原理,掌握其硬件组成及功能。
2. 学生能够掌握编程软件的使用,学会编写简单的程序控制机器人进行基本动作。
3. 学生能够了解机器人传感器的工作原理,并运用传感器实现机器人的智能互动。
技能目标:1. 学生通过动手实践,提高解决问题的能力和团队协作能力。
2. 学生能够运用所学的编程知识,设计并实现简单的机器人动作程序。
3. 学生能够运用创新思维,对机器人进行改进和优化,提高其性能。
情感态度价值观目标:1. 培养学生对机器人技术的兴趣,激发他们探索科学、技术、工程和数学领域的热情。
2. 培养学生积极进取、勇于挑战的精神,增强自信心和自主学习能力。
3. 培养学生关注社会发展,认识到机器人技术对社会进步的重要性,提高社会责任感。
课程性质:本课程为实践性课程,注重培养学生的动手操作能力和创新思维。
学生特点:四年级学生具备一定的认知能力、动手能力和团队协作能力,对新鲜事物充满好奇心。
教学要求:结合学生特点,课程设计应注重理论与实践相结合,突出实践操作,鼓励学生探索、创新。
在教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的实现。
通过课程学习,使学生具备将知识应用于实际问题的能力,为后续学习打下坚实基础。
二、教学内容1. 机器人基础知识:介绍能力风暴机器人的基本原理、硬件组成及其功能,涉及课本第二章内容。
- 机器人结构及功能- 传感器工作原理及作用- 控制器与执行器的协作原理2. 编程软件教学:学习编程软件的使用,掌握基本编程语法,能编写简单的控制程序,参考课本第三章内容。
- 编程软件的安装与操作- 基本编程语法与逻辑结构- 编写机器人动作程序3. 机器人编程实践:运用所学知识,设计并实现简单的机器人动作,涵盖课本第四章内容。
- 设计动作方案- 编写程序代码- 实际操作与调试4. 机器人创新设计:以小组合作形式,对机器人进行改进和优化,提高其性能,参考课本第五章内容。
实验二能力风暴实验二机器人直走实验

实验二机器人直走实验
一、实验目的:
掌握简单的程序设计、了解流程图文件的使用。
二、实验要求:
使用流程图文件进行程序的编写,要求机器人直行或者避开障碍物前行。
*用红外线传感器判断障碍物,并且躲避发出警报。
*机器人可以绕过障碍物,回到原来的直线行走。
三、实验内容、步骤:
1、流程图程序的使用。
(1)流程图编辑界面
(2) 模块的基本操作
2、编程、下载、运行及调试。
(1)机器人直走,要求以速度75,向前运动3秒,停止2秒,再以速度100,继续向前运动2秒,停止。
流程图:
JC代码:
(2)机器人直走,应用循环,(1)动作中作为循环体,循环三次。
流程图:
JC代码:
思考题:
1)机器人直走实验中,为什么机器人直走状态保持太久(走远了),行动轨迹会偏移,如何调校?
答:走偏的原因有机器人的两个轮子与地面的摩擦系数不同,主要原因是两个直流电机的功率不绝对相等。
调校方法:利用motor()函数改变左右电机的功率,
调校程序:
void main()
{
driveb(80,0);
wait(5.0);
}
int dx=0;
void driveb(int a,int b)
{
motor(1,80+dx);
motor(2,80-dx);
}
若机器人行动轨迹向左偏移则dx设置为一较小正数,向右偏移则设置为负数,不断改变dx的值,直到机器人行动轨迹不发生偏移。
2)在行走过程中用红外线判断障碍物,有障碍物时声音报警并避开,继续行走。
流程图:
JC代码:。
能力风暴机器人高级编程控制

能力风暴机器人高级编程控制通过前面的学习,同学们对能力风暴机器人的结构和传感器已经有了比较全面的了解,并且能够利用VJC系统编写可视化的流程图程序来控制机器人的动作,这对进一步学习和研究机器人是非常重要的。
能力风暴机器人的编程方式有两种,即流程图方式和JC代码方式。
流程图方式虽然简单直观,但功能有限,如果要编写更复杂的程序,特别是进行机器人创意设计时,就需要使用JC代码方式来编写程序了。
使用JC代码方式编程,将有利于我们进一步掌握计算机解决问题的思路和方法,更深层次地理解机器人智能化的工作原理,为进一步研究和制作机器人奠定基础。
本章我们将通过VJC系统开发版软件,介绍如何在JC编程环境下直接使用JC 代码编写程序。
同时还将结合国内外机器人大赛中的一些比赛项目,如:机器人灭火、机器人踢足球、机器人创意制作等,引导同学们综合实践机器人项目编程控制的方法与全过程。
-78-3.1 JC语言编程方法简介在前面的学习中,我们为机器人编写控制程序都是采用VJC系统中的流程图形式,相信同学们已经感受到这种编程方法确实直观易学。
然而,如果我们要编写更自由、更复杂的机器人程序一般就要采用第二种编程方法---JC语言编程。
本节我们就来了解JC语言编程的基本方法。
由于VJC系统仿真版不支持JC代码编程,所以,本节编程必须在VJC系统开发版中进行,并下载到真实机器人上调试。
3.1.1 JC编程的基本操作1.进入JC编程界面用JC语言编程时,首先要在计算机中安装VJC系统开发版软件。
启动软件时,双击桌面上的VJC图标,知识链接在VJC对话框中选择“JC代码程序”,再单击“确定”按钮,就可进入图3-1-1 VJC新建对话框 JC编程界面,界面组成如图3-1-2。
当机器人连接在计算机上时,在JC代码命令窗JC代码程序下载按钮编程方式切换按钮口可直接执行一条或若干条JC语JC代码程序编辑窗口句,执行的结果将显示在编译窗口内。
这一调试技巧JC代码命令窗口常用于编辑时直接测试某些命令编译窗口语句的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十一 机器人灭火
1、功能:机器人利用红外传感器、碰撞传感器、光敏等检测模块,在设置的房 间模型内进行巡视,找到光源并进行灭火; 2、实验目的:练习机器人传感器的综合使用; 3、用到的部件:红外传感器、碰撞传感器、光敏电阻、电机; 4、扩展:可以加入地面灰度传感器和风扇,完善该程序; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
#include "AS_UIII_LIB.h"
int ir_1=0; int photo_1=0; int photo_2=0; int bmp_1=0; float tim_1=0.0; int gi_1=0; int gi_2=0; int ma_3=0; void SubRoutine_3(); void SubRoutine_2(); void main() { gi_1 = 1 ; gi_2 = 1 ; while(1) {
#include "AS_UIII_LIB.h" int ir_1=0; void main() {
while(1) {
ir_1 = ir_detector(); if(ir_1 == 4) {
printf( "FRONT" ); drive( 0 ,80); wait( 0.250000 ); stop(); }
printf( "FRONT" ); drive( 80 ,0); wait( 0.100000 ); stop(); } else { ir_1 = ir_detector(); if(ir_1 == 1) /* 如果障碍物在左边则左转*/ {
printf( "LEFT" ); drive( 0 ,80); wait( 0.100000 );
{ stop(); /* 停止执行程序*/
}
} while(1){} }
实验六 躲避碰撞
1、功能:机器人在行走的过程中躲避碰撞; 2、实验目的:练习永远循环编程结构,学习利用碰撞检测功能块; 3、用到的部件:碰撞环; 4、扩展:尝试修改碰撞检测的条件“左前”“右前”“左后”“右后”,看机器人
是否能够正常工作; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
stop(); drive( 80 ,0); wait( 0.100000 ); stop(); } else { ir_1 = ir_detector(); if(ir_1 == 2)/* 如果障碍物在右边则右转*/ {
printf( "RIGHT" ); drive( 0 ,-80); wait( 0.100000 ); stop(); drive( 80 ,0); wait( 0.100000 ); stop(); } else { printf( "I AM LOST!" ); stop();/* 停止执行程序*/ } } } } while(1){} }
/*主程序*/
实验九 追光
1、功能:机器人利用光敏传感器,朝着光线强的地方走; 2、实验目的:练习条件循环编程结构,学习光敏检测; 3、用到的部件:光敏电阻; 4、扩展:试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之
间的反比关系; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
1、功能:机器人充当起床闹钟,在天亮的时候发出声音,并且原地转圈,直到 主人起床; 2、实验目的:练习永远循环编程结构,学习控制机器人的传感器; 3、用到的部件:光敏传感器,LCD显示屏; 4、扩展:反过来,天黑的时候是不是可以让机器人有什么操作; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
stop(); /* 已经接近火源则停止*/ }
else {
if(photo_1 < photo_2) /* 如果左边亮则左转*/
{ drive( 0 , 50 );
wait(2.500000); stop(); } else { if(photo_2 ==photo_1) /* 如果两边相等则直走*/ {
#include “AS_UIII_LIB.h” void main( ) /* 主程序说明*/ { /* 主程序开始标志*/
motor(1,60); /* 左电机以60 的速度前进,右电机以20 的速度前进*/ motor(2,20); wait(8.200000); /* 根据机器人走一周的时间调整参数*/ stop( ); wait(1.000000); motor(1,20); /* 左电机以20 的速度前进,右电机以60 的速度前进*/ motor(2,60); wait(6.000000);/* 根据机器人走一周的时间调整参数*/ stop( ); /* 停止执行程序*/ While(1){} }
间的反比关系; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
#include "AS_UIII_LIB.h" int ir_1=0;/* 用于保存红外采集的数据*/ void main() {
while(1) {
ir_1 = ir_detector();/* 采集红外传感器的数值*/ if(ir_1 == 4)/* 如果障碍物在前方则前行*/ {
#include “AS_UIII_LIB.h” int photo_1=0;
void main() {
printf( "Wake me up\n" );/* 打印“Wake me up”字符串在显示屏上*/ while(1) {
photo_1 =(photo(1)+photo(2))/2;/* 采集传感器的数值,取左右传感器的平均值*/ if(photo_1 < 500)/* 如果传感器的值小于某个特定值,也就是光线达到一定的强度
#include "AS_UIII_LIB.h" int bmp_1=0; void main() {
while(1) {
bmp_1 = bumper(); if( bmp_1 == 12) {
printf( "BACK" ); drive( 80 ,0); wait( 1.000000 ); stop(); drive( 0 ,-80);
实验四 机器人走五角星
1、功能:机器人在地上走出五角星图案; 2、实验目的:练习条件循环编程结构和计算公式; 3、用到的部件:电机; 4、扩展:这里是用变量控制条件循环的次数,可以增加其他的变量作为条件循
环的输入控制; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
实验五 机器人叫人起床
wait( 0.300000 ); stop(); } else { bmp_1 = bumper(); if( bmp_1 == 3) {
printf( "FRONT" ); drive( -80 ,0); wait( 1.000000 ); stop(); drive( 0 ,-80); wait( 0.300000 ); stop(); } else { bmp_1 = bumper(); if( bmp_1 == 4) {
*/ { motor( 1 , 80 );/* 左电机以80 的速度前进,右电机停止,原地转圈*/ motor( 2 , 0 ); tone(261.600006,0.2500000);/* 发出声音*/ tone(329.600006,0.2500000); stop();/* 停止执行程序*/ } else
printf( "LEFT BACK" ); drive( -80 ,0); wait( 0.500000 ); stop(); drive( 0 ,-80); wait( 0.300000 ); stop(); } else { bmp_1 = bumper(); if( bmp_1 == 1) {
#include “AS_UIII_LIB.h” int photo_1=0; /* 用于保存左眼的亮度*/ int photo_2=0; /* 用于保存右眼的亮度*/ void main()/* 主程序说明*/ { /* 主程序开始标志*/
while(1) {
photo_1 =photo(1); /* 采集左眼的亮度*/ photo_2 =photo(2); /* 采集右眼的亮度*/ if((photo_1 < 50) || (photo_2 < 50)) {
tone(261.600006,0.500000); tone(293.600006,0.500000); tone(329.600006,0.500000); while(1){} }
实验二 机器人走“∞”字形
1、功能:机器人走“∞”字形; 2、实验目的:练习顺序编程结构的同时,学习控制机器人的行走; 3、用到的部件:电机; 4、扩展:可以让机器人走四边形、三角形、之字形甚至波浪前行; 5、提供示例:VJC流程图编程,JC 代码程序。
printf( "LEFT FRONT" ); drive( 0 ,-80); wait( 0.200000 ); stop(); } else { bmp_1 = bumper(); if( bmp_1 == 2)
{ printf( "RIGHT FRONT" ); drive( 0 ,80); wait( 0.200000 ); stop();
能力风暴智能机器人编程实例
实验一 机器人发音
1、功能:机器人发出1 2 3的声音; 2、实验目的:练习最基本的顺序编程结构; 3、用到的部件:喇叭; 4、扩展:练习其他音节的发音,可以让机器人为你唱首歌; 5、提供示例:VJC流程图编程,JC 代码程序。
#include "AS_UIII_LIB.h" void main() {