VJC案例-叫人起床
项目内容:夜晚天黑的时候,机器人静止不动。一旦天亮了,机器人就动起来,并发出声音、眼睛发光,持续一段时间才停下来。
相关模块:亮度检测、发音、转向、条件循环。
难度等级:●●○○○
程序设计
首先设计一个亮度检测小程序,第一个“亮度检测”模块参数设置为方式“左”,变量选择“亮度变量一”,第二个“亮度检测”模块参数设置为方式“右”,变量选择“亮度变量二”。“显示”模块两行显示信息分别为“亮度变量一、亮度变量二”。延时等待0.1秒(如下图)。
将以上程序仿真运行。在运行场地上添加光源,光源半径设为180,渐变值30。然后将机器人放在光圈中和光圈外(如下图),观察一下机器人左右眼检测到的亮度值。
图3-12亮度检测界面
为了达到叫人起床的目的,需要检测环境光的亮度。假设天黑的时候,环境光的亮度大于200,而天亮的时候,环境光的亮度小于200。当天黑的时候,机器人就一直反复检测环境光的亮度。一旦检测到环境光的亮度小于200,表明天亮了,机器人就开始动作,转动身体、发音、眼睛放光。在程序中,机器人检测环境光的亮度的过程可以用条件循环来实现(如下图)。
如下图叫人起床例程
参数设置
“亮度检测”模块:亮度检测模块可以分别检测左眼亮度、右眼亮度、平均亮度、以及左右眼亮度之差(如下图)。
图3-14亮度检测模块的对话框
在本例中,我们选择的是“平均”方式。变量选择“亮度变量一”,即将检测到的亮度值保存在“亮度变量一”中。在程序执行的时候,每检测一次,就会将前次的亮度值覆盖,所以“亮度变量一”中保存的总是最近一次检测到的亮度值。
“条件循环”模块:条件表达式设置为
亮度变量一 200
于是当环境光的亮度大于200的时候,条件表达式成立,表明天还黑着,机器人就继续检测。当亮度小于200的时候,表明天亮了,此时条件表达式不再满足,条件循环中止,机器人就转而去执行条件循环后面的指令。
由于程序开始时默认“亮度变量一”的初始值等于零,我们在进入条件循环之前先调用一次亮度检测模块,以获取环境光的当前值,并将其赋给“亮度变量一”,可以避免程序错误地跳过条件循环。观察程序的JC代码,可以更清楚地看到这一点。在流程图编辑界面中,点击工具栏上的“JC代码”快捷按钮,即可看到当前程序的JC代码。
其余模块:略。
仿真运行
在机器人运行场地中添加光源,设置光源半径为180,渐变值为30。先将机器人放在黑暗的地方,然后再将机器人放在光圈中。观察是否能达到叫人起床的效果。
VJC案例-叫人起床相关推荐
- VJC案例-光控手控灯开关设计
VJC案例:利用光控制灯开关 以及 利用手控控制灯开关 对应C语言代码为:
- VJC案例-填字游戏
项目内容:在机器人运行场地上,有若干个颜色各别的圆形图带,分别代表不同的英文字母.请您设计一个程序,开始时让机器人显示一个英文单词,但缺少一个字母.如果将机器人放在代表正确字母的图带上,机器人就会显示 ...
- VJC案例-计算走过的距离
计算走过的距离 项目内容:计算机器人走过的距离. 相关模块:直行.转向.转角检测.显示. 程序设计 在本例中,我们让机器人先走一段直线,接着走一段弧线,然后再走一段直线.最后,调用两个转角检测模块, ...
- 彼林机器人_第一章 Buddy Robot开发软件介绍.doc
您所在位置:网站首页 > 海量文档  > 计算机 > Java 第一章 Buddy Robot开发软件介绍.doc62 ...
- 个体重构:将重构应用到生活中
Bryan Beecham在Agile Testing Days 2015敏捷测试大会上以个体重构作主旨发言.InfoQ就个体重构如何帮助我们来改善我们的生活,它与代码重构的关系,为什么他认为健康饮食 ...
- 关于团队开发项目的想法
目前因为大学生比较懒散,早上通常起不来,因此会耽误上午12节课,有些同学想要改正睡懒觉的习惯,但是又没有那个毅力,所以我想和我的团队做一个早晨叫人起床的闹钟,但是不是和手机自带的一样,结束闹钟需要通过 ...
- 【文章】我在华为打工的日子
在上大学以前,我一直是个好学生.简单的说,从小学一年级到高三,在n次期末考试中,90%是全班第一名,剩下10%是全校第一.高考结束后我去北京继续good good study,day day up. ...
- 用计算机公式表白,用物理公式表白的正确方法
表白是获得对象的一个重要方式,理工科的男生用所学习的物理公式去进行表白,一定能够给女生带来很多的惊喜.下面学习啦小编给你分享用物理公式表白,欢迎阅读.. 用物理公式表白的方法 你是否能看懂这个呢?知道 ...
- [SONE必看]少時囧事大集錦!
1. 首先,是最經典的"林蓋子事件" 先用文字概括: 一次泰妍與允兒的聊天中,不知道泰妍和允兒講到什麼事情了,允兒就笑得後仰了. 額前的劉海就那麼"xiu"的飛 ...
最新文章
- PyTorch数据加载处理
- .net中连接SYBASE的种种问题
- 安装RADOS gateway(CEPH对象存储)
- 奇葩注释大盘点,你觉得哪个最牛逼?
- Python 学习笔记 -- 序列的基本使用
- JSON的使用场景及注意事项介绍
- android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro
- 机械史上最复杂的巅峰之作,这才是最强大脑!
- 企业实战_12_MyCat水平扩展_分库分表
- 学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?
- 垃圾oracle_第 14 章 垃圾回收概述
- Linux下监视NVIDIA的GPU使用情况
- mysql 61_MySQL 连接错误Can't connect to MySQL server on (61)
- 简述数字电路在计算机的应用,数字电路应用举例
- python 排程问题仿真_APS自动生产排程系统-用户常见问题及解答
- 企业盈利能力五大指标之:净利率
- Unity C# 三角函数、直角三角形边角计算
- C/C++程序设计与算法第十一周:零点定理求方程的根
- Linux如何打开U盘
- 解决python安装依赖包出现 Microsoft Visual C++ 14.0 or greater is required问题
热门文章
- 一篇文章教你如何快速在Linux上 安装JDK
- centos离线安装fastdfs
- Java的图标及由来(9.25)
- iOS UIWebView 缩放
- 高速PCB基材介绍(铜箔、PP、基板)
- Substance Painter 服饰材质制作 中间刮痕 - 肩带3
- sql中日期和时间戳的相互转换
- STC15F2K60S2内E2PROM应用
- 年薪50万的AI和年薪80万的区块链,哪一个更适合你?
- show函数的作用是什么python_matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)...