能力风暴机器人编程11个经典实例(含代码)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
能力风暴智能机器人编程实例
实验一 机器人发音
1、功能:机器人发出1 2 3的声音; 2、实验目的:练习最基本的顺序编程结构; 3、用到的部件:喇叭; 4、扩展:练习其他音节的发音,可以让机器人为你唱首歌; 5、提供示例:VJC流程图编程,JC 代码程序。
#include "AS_UIII_LIB.h" void main() {
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 bmp_1=0; void maBiblioteka Baidun() {
while(1) {
bmp_1 = bumper(); if( bmp_1 == 12) {
printf( "BACK" ); drive( 80 ,0); wait( 1.000000 ); stop(); drive( 0 ,-80);
else {
ir_1 = ir_detector();
if(ir_1 == 1) {
printf( "LEFT" ); drive( 0 ,-80); wait( 0.150000 ); stop(); } else { ir_1 = ir_detector();
if(ir_1 == 2) {
printf( "RIGHT" ); drive( 0 ,80); wait( 0.150000 ); stop(); } else { printf( "OTHER" ); motor( 1 , 80 ); motor( 2 , 80 ); } } } } while(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)) {
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 );
motor( 1 , 80 ); motor( 2 , 80 ); } else /* 如果右边亮则右转*/ { drive( 0 , -50 ); wait(2.500000); stop(); } } } } while(1){} }
实验十 机器人跟人走
1、功能:机器人利用红外传感器检测人的脚,一旦确定方向,则向该方向前进; 2、实验目的:练习条件循环编程结构,学习光敏检测; 3、用到的部件:光敏电阻; 4、扩展:试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之
} else {
printf( "OTHER" ); motor( 1 , 80 ); motor( 2 , 80 ); } } } } } } while(1){} }
实验七 红外避障
1、功能:机器人在行走的过程中避开障碍物; 2、实验目的:练习永远循环编程结构,学习利用红外检测功能块; 3、用到的部件:红外发射和红外接收; 4、扩展:可以制作机器人导盲犬; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
#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){} }
{ stop(); /* 停止执行程序*/
}
} while(1){} }
实验六 躲避碰撞
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) {
实验十一 机器人灭火
1、功能:机器人利用红外传感器、碰撞传感器、光敏等检测模块,在设置的房 间模型内进行巡视,找到光源并进行灭火; 2、实验目的:练习机器人传感器的综合使用; 3、用到的部件:红外传感器、碰撞传感器、光敏电阻、电机; 4、扩展:可以加入地面灰度传感器和风扇,完善该程序; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
实验八 机器人避障
1、功能:机器人在行走的过程中避开障碍物,躲避碰撞; 2、实验目的:练习永远循环编程结构,学习子程序的设计; 3、用到的部件:红外发射和红外接收,碰撞环; 4、扩展:搞懂子程序的设计,在其他程序里,可以加入子程序,简化程序的设
计; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
stop(); /* 已经接近火源则停止*/ }
else {
if(photo_1 < photo_2) /* 如果左边亮则左转*/
{ drive( 0 , 50 );
wait(2.500000); stop(); } else { if(photo_2 ==photo_1) /* 如果两边相等则直走*/ {
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();
间的反比关系; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
#include "AS_UIII_LIB.h" int ir_1=0;/* 用于保存红外采集的数据*/ void main() {
while(1) {
ir_1 = ir_detector();/* 采集红外传感器的数值*/ if(ir_1 == 4)/* 如果障碍物在前方则前行*/ {
实验三 动态字符显示
1、功能:在机器人的屏幕上循环动态显示“ABCD ”四个字符; 2、实验目的:练习较长的顺序编程结构,学习控制机器人的显示屏; 3、用到的部件:LCD显示屏; 4、扩展:考虑如何让字符滚动显示到第二行,尝试是否可以显示汉字,学习循
环之后,尝试将此程序改写为循环结构; 5、提供示例:流程图分析,VJC流程图编程,JC 代码程序。
/*主程序*/
实验九 追光
1、功能:机器人利用光敏传感器,朝着光线强的地方走; 2、实验目的:练习条件循环编程结构,学习光敏检测; 3、用到的部件:光敏电阻; 4、扩展:试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之
间的反比关系; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
#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)/* 如果传感器的值小于某个特定值,也就是光线达到一定的强度
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){} }
*/ { motor( 1 , 80 );/* 左电机以80 的速度前进,右电机停止,原地转圈*/ motor( 2 , 0 ); tone(261.600006,0.2500000);/* 发出声音*/ tone(329.600006,0.2500000); stop();/* 停止执行程序*/ } else
#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(); }
实验四 机器人走五角星
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) {
1、功能:机器人充当起床闹钟,在天亮的时候发出声音,并且原地转圈,直到 主人起床; 2、实验目的:练习永远循环编程结构,学习控制机器人的传感器; 3、用到的部件:光敏传感器,LCD显示屏; 4、扩展:反过来,天黑的时候是不是可以让机器人有什么操作; 5、提供示例:流程图,VJC流程图编程,JC 代码程序。
相关文档
最新文档