资源描述
能力风暴智能机器人编程实例实验一 机器人发音1、功能:机器人发出1 2 3的声音;、功能:机器人发出1 2 3的声音;2、实验目的:练习最基本的顺序编程结构;、实验目的:练习最基本的顺序编程结构;3、用到的部件:喇叭;、用到的部件:喇叭;4、扩展:练习其他音节的发音,可以让机器人为你唱首歌;、扩展:练习其他音节的发音,可以让机器人为你唱首歌;5、提供示例:VJC流程图编程,、提供示例:VJC流程图编程,JC 代码程序。代码程序。#include AS_UIII_LIB.hvoid main()tone(261.600006,0.500000);tone(293.600006,0.500000);tone(329.600006,0.500000);while(1)实验二 机器人走“”字形1、功能:机器人走“”字形;、功能:机器人走“”字形;2、实验目的:练习顺序编程结构的同时,学习控制机器人的行走;、实验目的:练习顺序编程结构的同时,学习控制机器人的行走;3、用到的部件:电机;、用到的部件:电机;4、扩展:可以让机器人走四边形、三角形、之字形甚至波浪前行;、扩展:可以让机器人走四边形、三角形、之字形甚至波浪前行;5、提供示例:VJC流程图编程,、提供示例: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)实验三 动态字符显示1、功能:在机器人的屏幕上循环动态显示“、功能:在机器人的屏幕上循环动态显示“ABCD”四个字符;”四个字符;2、实验目的:练习较长的顺序编程结构,学习控制机器人的显示屏;、实验目的:练习较长的顺序编程结构,学习控制机器人的显示屏;3、用到的部件:、用到的部件:LCD显示屏;显示屏;4、扩展:考虑如何让字符滚动显示到第二行,尝试是否可以显示汉字,学习循环之后,尝试将此程序改写为循环结构;、扩展:考虑如何让字符滚动显示到第二行,尝试是否可以显示汉字,学习循环之后,尝试将此程序改写为循环结构;5、提供示例:流程图分析,VJC流程图编程,、提供示例:流程图分析,VJC流程图编程,JC 代码程序。代码程序。实验四 机器人走五角星1、功能:机器人在地上走出五角星图案;、功能:机器人在地上走出五角星图案;2、实验目的:练习条件循环编程结构和计算公式;、实验目的:练习条件循环编程结构和计算公式;3、用到的部件:电机;、用到的部件:电机;4、扩展:这里是用变量控制条件循环的次数,可以增加其他的变量作为条件循环的输入控制;、扩展:这里是用变量控制条件循环的次数,可以增加其他的变量作为条件循环的输入控制;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。实验五 机器人叫人起床1、功能:机器人充当起床闹钟,在天亮的时候发出声音,并且原地转圈,直到主人起床;、功能:机器人充当起床闹钟,在天亮的时候发出声音,并且原地转圈,直到主人起床;2、实验目的:练习永远循环编程结构,学习控制机器人的传感器;、实验目的:练习永远循环编程结构,学习控制机器人的传感器;3、用到的部件:光敏传感器,、用到的部件:光敏传感器,LCD显示屏;显示屏;4、扩展:反过来,天黑的时候是不是可以让机器人有什么操作;、扩展:反过来,天黑的时候是不是可以让机器人有什么操作;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#include“AS_UIII_LIB.h”int photo_1=0;void main()printf(Wake me upn);/*打印“Wake me up”字符串在显示屏上*/while(1)photo_1=(photo(1)+photo(2)/2;/*采集传感器的数值,取左右传感器的平均值*/if(photo_1 500)/*如果传感器的值小于某个特定值,也就是光线达到一定的强度*/motor(1,80);/*左电机以80 的速度前进,右电机停止,原地转圈*/motor(2,0);tone(261.600006,0.2500000);/*发出声音*/tone(329.600006,0.2500000);stop();/*停止执行程序*/elsestop();/*停止执行程序*/while(1)实验六 躲避碰撞1、功能:机器人在行走的过程中躲避碰撞;、功能:机器人在行走的过程中躲避碰撞;2、实验目的:练习永远循环编程结构,学习利用碰撞检测功能块;、实验目的:练习永远循环编程结构,学习利用碰撞检测功能块;3、用到的部件:碰撞环;、用到的部件:碰撞环;4、扩展:尝试修改碰撞检测的条件“左前”“右前”“左后”“右后”,看机器人是否能够正常工作;、扩展:尝试修改碰撞检测的条件“左前”“右前”“左后”“右后”,看机器人是否能够正常工作;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#include AS_UIII_LIB.hint 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);wait(0.300000);stop();elsebmp_1=bumper();if(bmp_1=3)printf(FRONT);drive(-80,0);wait(1.000000);stop();drive(0,-80);wait(0.300000);stop();elsebmp_1=bumper();if(bmp_1=4)printf(LEFT BACK);drive(-80,0);wait(0.500000);stop();drive(0,-80);wait(0.300000);stop();elsebmp_1=bumper();if(bmp_1=1)printf(LEFT FRONT);drive(0,-80);wait(0.200000);stop();elsebmp_1=bumper();if(bmp_1=2)printf(RIGHT FRONT);drive(0,80);wait(0.200000);stop();elseprintf(OTHER);motor(1,80);motor(2,80);while(1)实验七 红外避障1、功能:机器人在行走的过程中避开障碍物;、功能:机器人在行走的过程中避开障碍物;2、实验目的:练习永远循环编程结构,学习利用红外检测功能块;、实验目的:练习永远循环编程结构,学习利用红外检测功能块;3、用到的部件:红外发射和红外接收;、用到的部件:红外发射和红外接收;4、扩展:可以制作机器人导盲犬;、扩展:可以制作机器人导盲犬;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#include AS_UIII_LIB.hint ir_1=0;void main()while(1)ir_1=ir_detector();if(ir_1=4)printf(FRONT);drive(0,80);wait(0.250000);stop();elseir_1=ir_detector();if(ir_1=1)printf(LEFT);drive(0,-80);wait(0.150000);stop();elseir_1=ir_detector();if(ir_1=2)printf(RIGHT);drive(0,80);wait(0.150000);stop();elseprintf(OTHER);motor(1,80);motor(2,80);while(1)实验八 机器人避障1、功能:机器人在行走的过程中避开障碍物,躲避碰撞;、功能:机器人在行走的过程中避开障碍物,躲避碰撞;2、实验目的:练习永远循环编程结构,学习子程序的设计;、实验目的:练习永远循环编程结构,学习子程序的设计;3、用到的部件:红外发射和红外接收,碰撞环;、用到的部件:红外发射和红外接收,碰撞环;4、扩展:搞懂子程序的设计,在其他程序里,可以加入子程序,简化程序的设计;、扩展:搞懂子程序的设计,在其他程序里,可以加入子程序,简化程序的设计;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。/*主程序*/实验九 追光1、功能:机器人利用光敏传感器,朝着光线强的地方走;、功能:机器人利用光敏传感器,朝着光线强的地方走;2、实验目的:练习条件循环编程结构,学习光敏检测;、实验目的:练习条件循环编程结构,学习光敏检测;3、用到的部件:光敏电阻;、用到的部件:光敏电阻;4、扩展:、扩展:试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之间的反比关系试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之间的反比关系;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#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)stop();/*已经接近火源则停止*/elseif(photo_1 photo_2)/*如果左边亮则左转*/drive(0,50);wait(2.500000);stop();elseif(photo_2=photo_1)/*如果两边相等则直走*/motor(1,80);motor(2,80);else/*如果右边亮则右转*/drive(0,-50);wait(2.500000);stop();while(1)实验十 机器人跟人走1、功能:机器人利用红外传感器检测人的脚,一旦确定方向,则向该方向前进;、功能:机器人利用红外传感器检测人的脚,一旦确定方向,则向该方向前进;2、实验目的:练习条件循环编程结构,学习光敏检测;、实验目的:练习条件循环编程结构,学习光敏检测;3、用到的部件:光敏电阻;、用到的部件:光敏电阻;4、扩展:、扩展:试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之间的反比关系试验中在执行判断语句时需要注意的是光线的强度和光敏传感器返回的数值之间的反比关系;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#include AS_UIII_LIB.hint ir_1=0;/*用于保存红外采集的数据*/void main()while(1)ir_1=ir_detector();/*采集红外传感器的数值*/if(ir_1=4)/*如果障碍物在前方则前行*/printf(FRONT);drive(80,0);wait(0.100000);stop();elseir_1=ir_detector();if(ir_1=1)/*如果障碍物在左边则左转*/printf(LEFT);drive(0,80);wait(0.100000);stop();drive(80,0);wait(0.100000);stop();elseir_1=ir_detector();if(ir_1=2)/*如果障碍物在右边则右转*/printf(RIGHT);drive(0,-80);wait(0.100000);stop();drive(80,0);wait(0.100000);stop();elseprintf(I AM LOST!);stop();/*停止执行程序*/while(1)实验十一 机器人灭火1、功能:机器人利用红外传感器、碰撞传感器、光敏等检测模块,在设置的房间模型内进行巡视,找到光源并进行灭火;、功能:机器人利用红外传感器、碰撞传感器、光敏等检测模块,在设置的房间模型内进行巡视,找到光源并进行灭火;2、实验目的:练习机器人传感器的综合使用;、实验目的:练习机器人传感器的综合使用;3、用到的部件:红外传感器、碰撞传感器、光敏电阻、电机;、用到的部件:红外传感器、碰撞传感器、光敏电阻、电机;4、扩展:可以加入地面灰度传感器和风扇,完善该程序;、扩展:可以加入地面灰度传感器和风扇,完善该程序;5、提供示例:流程图,VJC流程图编程,、提供示例:流程图,VJC流程图编程,JC 代码程序。代码程序。#include AS_UIII_LIB.hint 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)if(gi_2=1)SubRoutine_3();photo_1=photo(1);photo_2=photo(2);if(photo_1 100)|(photo_2 100)gi_2=2;elseif(gi_2=2)SubRoutine_2();ma_3=analogport(5);if(ma_3 120)gi_2=3;elseif(gi_2=3)stop();wait(0.500000);motor(1,-100);motor(2,100);motor(3,100);wait(5.000000);stop();/*stop_motor(3);*/wait(15.000000);/*/void SubRoutine_1()ir_1=ir_detector();if(ir_1=1)drive(0,80);wait(0.100000);stop();elseif(ir_1=4)drive(0,80);wait(0.150000);stop();elsemotor(1,20);motor(2,80);wait(0.100000);return;/*/void SubRoutine_2()photo_1=photo(1);photo_2=photo(2);if(photo_1 photo_2)motor(1,10);motor(2,20);elseif(photo_2 60.000000)gi_1=2;elseif(gi_1=2)drive(0,80);wait(0.600000);stop();gi_1=3;elseif(gi_1=3)ir_1=ir_detector();if(ir_1=1)drive(0,80);wait(0.100000);stop();elseif(ir_1=4)drive(0,80);wait(0.100000);stop();elsemotor(1,20);motor(2,80);bmp_1=bumper();if(bmp_1!=0)drive(-40,0);wait(0.100000);stop();drive(0,80);wait(0.100000);stop();return;
展开阅读全文