ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:135.67KB ,
资源ID:19887032      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19887032.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交互式程序设计复习文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

交互式程序设计复习文档格式.docx

1、Void wait(float sec) 让前一状态保持一段时间Int digitalport(int channnel)读数字口上传感器的值。 channel的范围是 07.返回值0或1Int photo ( int index)光敏传感器。左 1右2.返回值0255,光线越暗数值越大。Int microphone() 声音传感器的值,返回值 0255.,声音越响数值越大。Int ir_detector() 红外测障, 0 无 1 左 2右 4前Int bumper()碰撞传感器,0无1左2右4前8后Int rotation(int index)光电编码器,1 左 2 右6、 多个进程如果进

2、行通讯怎么办 ?多进程之间的通讯及同步问题 。 遵循的原则 ? 进程间的通讯:通过全局变量进行。多进程之间的通讯及同步问题。遵循的原则: 1)一种设备只在一个进程中访问; 2)同时只能有一个进程写一个全局变量,但可以有多个进 程同时读。7、使用 JC 会遇到的错误类型使用 JC 会遇到两种类型的错误:编译错误和运行错误。编译错误包括:语法错误和数 据类型不匹配。运行错误发生时,将在液晶屏幕上显示错误号。错误代码列表( P29)8、如果程序不能正常下载 ,可能有以下 6 个方面的原因 :1)能力风暴的主开关未打开。2)电池电压不足。3)机器人型号设置不正确。4)该串口硬件有问题。5)能力风暴操作

3、系统被破坏。6)串口线头过松,接触不好9、 几种常用的操作 。 如何更新操作系统 如何为机器人配置型号 如何给机器人充电 如何下载自检程序 如何下载当前程序 如何正确使用复位/ASOS按钮 如何让机器人走的直线更好10、 构成机器人的三大要素是什么 ?请从这三大要素着手分析说明机器人的工作原理 。构成机器人的三大要素是:传感器、 微控制器和执行器。 机器人的工作原理:机器人通 过传感器采集外界环境信息,然后将采集的信息经过转换元件转换成电信号,再经过 A/D转换成数字量,传递给机器人的大脑 一一微控制器,微控制器根据装载的 JC程序进行思考, 发出相应的命令给执行器执行。11、 机器人的身体结

4、构: 主板:由很多电子元器件组成,跟人的大脑一样,主要完成接收信息、处理信息、和发出指令等。控制按键: 机器人的运行控制部件。 包括开关按钮、 电源指示灯、 充电指示灯、 充电口、 下载口、复位 /ASOS 按钮、运行键、通信指示灯。传感器部分:包括五种基本的传感器( P10)。执行部分:扬声器、 LCD 、主动轮及其驱动机构、从动轮。12、 微控制器 68HC11 , 端口 AE 的功能 。在机器人中的使用情况 。PORT A :数字口。PA2输入捕捉通道。 PA3-PA6输出比较通道。 PA7通用的I/O 口。能力风暴机器人中: 光电编码器利用 PA0、PA1 口捕捉计码盘信号; 电机驱动

5、采用 PA5、PA6 发出 PWM 信号;喇叭由 PA3 控制。PORT B :端口功能受68HC11E的工作模式的影响,单独工作模式下,提供普通的 8条 输出信号通道,扩展工作模式下,提供8位地址通道。PORT B与PORT C提供16条地址线, PORT B做为地址的高8位。PORT C :单独工作模式下,提供普通的 8条输入/输出信号通道,扩展工作模式下,提供8位地址/数据复合通道。 PORT B与PORT C提供16条地址线,8条数据线(PORT C做为地址的低8位,地址/数据时分多用)PORT D: PD0-PD1 作为串行通信口( SCI), PD2-PD5 串行外设接口( SPI

6、); 能力风暴 机器人 中:用 PD0 , PD1 与 PC 机进 行通信 ; PD0(RXD) 接收数 据; PD1(TXD) 发送数据。 红外传感器: 利用 PD2,PD3 设置发光二极管的状态; 直流电机: 利用 PD4, PD5 给驱动电机芯片提供输入脉冲。PORT E:模拟口。光敏传感器利用 PE0, PE1 口采集光敏电阻上的电压值;麦克风利用 PE2 口采集电压值;碰撞传感器利用 PE3 口采集电压值;红外传感器利用 PE4 口采集红外探测器的当前值。13、 机器人的驱动方式?机器人的调速系统采用了哪些装置,它是如何进行调速的?机器人的驱动方式采用差动驱动方式, 将两个独立的运动

7、合成为一个运动。 当我们把两 个电机的运动合成为一个运动时,这就成了差动运动。调速系统采用的装置为: 直流电机和齿轮减速器。 机器人上通过主板发 PWM 脉宽调制 信号, 使电机上得到不同宽度的脉冲方波信号, 从而调节输入到电机的平均电压。 而直流电 机上的电压大小影响他的转速和转矩,直流电机的转速又经过减速器将转动传递给主动轮。 当转矩一定时,加载在直流电机上的平均电压值越大,转速越高;相反,转速越低。这样, 通过改变电机电压的方式就可以实现调速。14、 什么是传感器?它的作用和组成。传感器就是自动测量系统中一个把待测量变换成某种电信号的装置。 传感器是能感觉规定的被测量, 并按一定的规律性

8、, 转换成可用输出信号的器件或装置。 通 常由敏感元件和转换元件组成。15、 能力风暴五种基本传感器,三种基本执行器,所对应的库函数有哪些,如何应用。基 本的结构和执行的过程。五种基本的传感器及其对应库函数及应用方法:( 1 )碰撞传感器: int bumper() 碰撞传感器检测( 2)红外传感器: int ir_detector() 红外传感器检测(3)光敏传感器: int photo() 光敏传感器检测( 4)麦克风: int microphone() 声音传感器检测(5)光电编码器: int encoder(int) 读取光电编码器器当前状态;Int rotation(int inde

9、x) 光电编码器脉冲累计读数 三种基本的执行器及其对应库函数的使用方法:(1)扬声器: void beep() , 使用它可产生一段 0.3秒 500赫兹的音频信号,发生结 束后返回。( 2)LCD :(3)直流电机:void stop()关闭左右两个电机,停止运动; void motor(int m,intspeed)以功率级别speed启动电机m;16、 简述 “基于视频技术的野外探险机器人 ”的硬件组成,以及机器人与电脑之间的控制信 号、视频信号的无线通讯实现过程。基于视频技术的野外探险机器人的硬件组成:机器人、 AS 无线摄像机、视频捕捉卡、 微功率无线通讯模块、电脑。视频信号的无线通

10、讯的实现: 在机器人上安装有 AS 无线摄像机和微功率无线通讯模块, 在上位机安装视频捕捉卡, 视频信号通过机器人上安装的无线摄像头采集视频信息, 通过连 接在电脑上的 AS 无线摄像机的接收模块接收到视频信息, 然后输出到接收模块所连接的视 频采集卡的视频输入端,从而完成机器人与电脑的视频信号的传输。控制信号的无线通讯的实现: 在机器人和上位机上都安装有微功率无线通讯模块, 机器 人与电脑之间,通过微功率无线通讯模块的接收和发送信号,完成控制信号的传输。编写程序:int X=50;int *Xptr;Xptr=&X;printf( “ *Xptr = %nd” ,*Xptr); _50_X=

11、100;printf( “n%”d ,*Xptr); _100_*Xptr=200;printf( “ X=%n”d ,X); _200_P13P14 检测光线亮度和累计左右碰撞次数的程序。把几个机器人放在一起,编写程序并下载运行,试一试机器人你叫我应的场面是不是 很有趣。一部分机器人先发音,一部分机器人先侦听。发音的机器人发音完毕后转入侦听, 听到声音的机器人回应(发音) 。/*初始化b=1时,设置该机器人先侦听;初始化 b= -1时,设置该机器人先发出声音。 */void main()int b=1;int mic;while(1)mic=microphone(); printf(mic=

12、%dn,mic); wait (0.5);if(b=1&mic140)b=b*(-1);beep ( );wait (2.0);if(b=-1)beep();wait (1.0);b=b*(-1);请用光敏传感器让机器人追光。 机器人放在离光源有一段距离的地方, 但光敏传感 器能探测到光源的位置,此时,让机器人向光源靠近,足够接近光源时停下来。Void main() int right,left , diff,even;while(1) right=photo(2); left=photo(1); diff=right-left; even=(right+left)/2; if (even20

13、) drive(60,10); else if (diff180) I+=1;if (I=1) drive(100 ,0);else stop(); I=0;红外避障库函数:/*红外测障,返回值:无 0,左1,右2,前4。 左发射PD2,右发射PD3,接收PE4*/int ir_detector() in t vall, val2, val3, result;vail = read(OxlOOA) & OblOOOO; /*检测接收到的背景红外信号 */bit_set(0x1008,0b0100); /* 打开左红外发射传感器 ,PD2 口 */msleep(2L); /* 等待 2 毫秒 *

14、/val3 = read(0x100A) & 0b10000; /*检测接收到的红外信号 */bit_clear(0x1008,0b0100); /*关闭左红外发射传感器 */bit_set(0x1008,0b1000); /* 打开右红外发射传感器 ,PD3 口 */val2 = read(0x100A) &bit_clear(0x1008,0b1100); /*关闭所有红外发射传感器 */result = (val1 & val2) 3) | (val1 & val3) 4);if(result=3) result=4;return result;8个不同方位的声音,并请用能力风暴机器人做

15、一个简易电子琴,碰撞碰撞环,发出 且在液晶显示器上,分别将 8个不同方位的碰撞信息显示出来。1 (262Hz)麻(393Hz)void mai n()int bump;秒”的显示方式,也就是将系统读出的时间变为具体的分、秒、毫秒值来显示。wait(0.1); /*等待 0.1秒 */ 机器人直走校准程序及调试方法。int drive_bias = 0;void driveb(int trans, int rot) int rot_bias = (drive_bias * trans) / 100 ; motor(0,trans - (rot + rot_bias) ; motor(1,tran

16、s + (rot + rot_bias) ;声与光在不同明暗环境中发不同的声音/* 依据光敏传感器检测值的差值计算发声的频率 */ float freq(int left, int right) int delta;float frq = 100.0;delta = left - right;frq = 2500.0 * (1.0 + (float) delta) / (float) max(left, right); return frq;/* 依据左右光敏检测值的和通过算式计算出发声的间隔时间 */float period(int left, int right) return (0.00

17、08 * (float) (512-(left + right);void dark()int left = 0;int right = 0;while (1)left = photo(1);right = photo(2);tone(freq(left, right),0.1); /* 用算出的频率发声 */wait(period(left, right); /* 用算出的间隔作为发声的间隔 */飞蛾扑火程序:int r,l; /*定义变量r左光敏I右光敏*/int a1,a2,a3; /*定义标志位al找光源方向a2靠近光源a3围绕光源转*/ int d1,d2; /*定义参数di靠近光源

18、左右方向参数 d2旋转参数*/a1=1;a2=0;a3=0; /*标志位设初值,al设1则先执行找光源方向*/ while(1)while(a1) /*执行 a1 找光源 */r=photo(2);l=photo(1);printf(a1:r=%d,l=%dn,r,l);if(r240|l240) /*发现光源方向的条件 */a1=0;a2=1; /*转到a2执行,靠近光源*/drive(0,20); /*原地转,寻找光源方向 */while(a2) /*执行靠近光源 */d1=(l-r)*2; /*设置 d1 参数*/a2:r=%d,l=%d,d=%dn,r,l,d1);150|l240&l

19、240) /* 远离光源的条件 */a1=1; /* 转到 a1 执行,寻找光源方向 */drive(80,d1); /* 靠近光源移动 */while(a3) /* 执行围绕光源转圈 */d2=(r-150)*2; /*设置 d2 参数*/ printf(a3:r=%d,d=%dn,r,d2);drive(80,d2); /* 围绕光源转动,先调整轨道,停留在 r=150 的圆圈轨道上运动 */wait(0.01);跟人走 int ir = 0; /* 红外检测变量 */int bmp = 0; /* 碰撞检测变量 */int old_bmp = 0; /* 前一次的碰撞检测结果 */int

20、 fol_trans_def =80; /* 预设的前进速度 */int fol_rot_def = 40; /* 预设的转弯速度 */ printf(Follown /* 显示在 LCD 屏幕上 */ while(1) ir = ir_detector(); /* 取红外系统检测结果 */bmp = bumper() & 0b0011; /* 检测前左、前右方向上的碰撞 */if (old_bmp & (! bmp) /* 连续两次碰撞 */ wait(0.5);else if (bmp) /* 如果前方有碰撞 */stop(); /* 停止运动 */else if (ir = 0) /*

21、前方没有物体 */else if (ir = 4) /* 前方有物体 */ drive(fol_trans_def,0); /* 往前追 */ else if (ir = 1) /* 物体在左侧 */ drive(fol_trans_def,(-fol_rot_def); /* 转向左 */ else if (ir = 2) /* 物体在右侧 */ drive(fol_trans_def,fol_rot_def); /* 转向右 */ wait(0.1); /* 让运动持续一会 */ old_bmp = bmp;鸡宝宝、鸡妈妈。灭火程序示例。多进程同步:int bill_trans=0;int

22、 bill_rot=0;int bmpr=0;int forward=0;int running=0; /* 能力风暴初始值处于静止状态 */ void billiards ()while(1) /* 无限循环检测 */ bmpr=bumper(); /* 检测碰撞传感器 */ if( bmpr!=0 )if(bmpr=0b0011) /* 正前方发生碰撞 */ forward=0; bill_trans=-80; /* 后退 */ bill_rot=0;else if(bmpr=0b1100) /* 正后方发生碰撞 */ forward=1; bill_trans=80; /* 前进 */

23、bill_rot=0;56else if(bmpr & 0b0101) /* 左侧发生碰撞 */ bill_trans=0;bill_rot=-80;wait(0.5); /* 顺时针转一个角度 */ forward=1;bill_trans=80; 0b1010) /* 右侧发生碰撞 */ bill_trans=0;bill_rot=80; /* 逆时针转一个角度 */ forward=1; /* 前进 */bill_rot=0;void billiards_ir()int ir; while(1)if( running ) /*能力风暴没有开始运动,不检测障碍 */ ir=ir_detec

24、tor(); /* 检测红外传感器 */if( bmpr=0 & forward ) /*后退或发生碰撞时,不避障 */ if(ir=2) /* 右侧有障碍,向左绕 */ bill_trans=20; /* 逆时针转 */else if(ir=1) /* 左侧有障碍,向右绕 */ /* 顺时针转 */else if(ir=0) /* 前方没有障碍,恢复直行 */ bill_trans=80; bill_rot=0;57void billiards_drive() running = bill_trans; /* 能力风暴正在运动 */ drive(bill_trans,bill_rot); /* 驱动电机 */ start_process(billiards_drive(); /* 创建电机驱动进程 */ start_process(billiards_ir(); /* 创建避障进程 */ start_process(billiards(); /* 创建碰撞处理进程 */

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1