使用亮宁机器人的师生,可能注意到了这样一个特色,即亮宁机器人有自己特有的一套符号系统。如果还没有发现这一特色的师生,那我们就随本文来理解为什么我们要有这套特有的符号系统,我们使用这套系统有什么优势。

我们先模仿程序员,在Arduino上书写一段我们所熟悉的代码,看看它有何特色。

#include

int   leftLeft,left,middle,right,rightRight;

int   blackLineNumber;

int   times=0;

#defint  leftLeftEye  4

#defint  leftEye  2

#defint  middLeEye  1

#defint  rightEye  3

#defint  rightRightEye  5

voidcheckBlackWhite()

{

leftLeft=analogRead(LeftLeftEye)>550;

left=analogRead(LeftEye)>490;

middle=analogRead(middLeEye)>510;

right=analogRead(rightEye)>500;

rightRight=analogRead(rightRightEye)>560;

blackLineNumber=leftLeft+left+middLe+right+rightRight;

}

这段程序与我们平时的程序相比,有这几个特色。可能说到这里,师生们早就按奈不住,说程序好长。

首先程序的变量名较长,均由至少一个单词组成。两单词的连接处用一个大写字母以示区别。特别是传感器连接的端口,均采用宏定义方式,用单词或单词组合来替代各端口号。如果用上述程序来教中小学生的话,可能畏难情绪首先还不是来自我们的学生。

与我们熟悉的下面的程序段相比差异很大,但他们两者的运行效果是相同的。

#include

int  ll,l,m,r,rr;

Int  n,t=0;

void  check()

{

ll=AR(4)>550;

l=AR(2)>490;

m=AR(1)>510;

r=AR(3)>500;

rr=AR(5)>560;

n=ll+l+m+r+rr;

}

那谁的优势大,哪种形式的程序更受欢迎呢?

这要从书写程序的人的不同状况来分析。

对于程序员来说,他们经常面对许多复杂的程序,他们很难记住每段程序每个变量代表的意义。所以用较长的变量名,常量名来描述各变量的意义,端口的编号。一段时间后,他们再读这段程序时,就一目了然。所以这样的程序对他们而言,具有很强的可读性。但这样的程序,对我们英语基础较差,程序功底不够的学生而言,就会感觉莫大的困难,可能会引起中小学生望而却步,产生知难而退的想法。所以,亮宁机器人就应运而生自己特有的符号系统,使程序的可读性适合广大的师生,让程序简短明了。将变量、常量、函数名都用及其简单的字母组合来表示。例如,我们将digitalRead和analogRead简化为DR和AR,将digitalWrite和analogWrite简化为DW和AW,将lcd.background(1)简写成lcd.bg(1)等。这样一方面可以大大地减少了中小学生书写程序、记忆程序代码的时间与难度,又不失程序的可读性。

这样的简化,其优势通过上述两段代码的比较可以评判。但它也不是有没有劣势,如果我们书写程序的人不按亮宁这些约定俗成的方式去任意组合字母,对于程序书写本人的日常训练不会有什么问题的。单对于师生之间的沟通会带来困难。

例如,我们总是用ll,l,m,r,rr来代表这个几个常用的参数,师生们一看就明白。但有些同学却习惯于用:a=AR(4);b=AR(2);c=AR(3)....,这些字母除了顺序性没有其他意义,老师看程序时,首先必须判断你的字母所代表的意义,还要记住它们,然后才能看懂后面的程序。所以,才有了亮宁这些约定俗成的符号,如check(),checkB(),checkW(),findline(),left(),right()等特定的函数名。t,t0,t1等特人的变量名,代表时间或过路口的次数等。还用sp,sp0,sp1等来代表驱动电机的速度等。

又如:s1,s2代表不同的伺服马达,lcd代表1602电子屏,led代表LED灯板,fire代表火焰传感器等。后来在师生训练过程中,学生慢慢地也形成了用拼音字母组合来代表一些设备名称,也不失为一种好办法。例如csb用来代表超声波传感器等。

本来C语言体系中,if(ll==1)可以写成if(ll),if(ll==0)可以写成if(!ll)。但考虑到入门者容易理解,通常都写成有双等号的形式。亮宁程序中将n=ll+l+m+r+rr这样一个表达式,也使许多复杂的表达式得到了简化。同时,让师生之间、学友之间的交流简单化。

为了用可视化界面生成复杂表达式,亮宁的符号系统还把生成的表达式用于生成别的复杂表达式。如图1所示。即生成表达式时,可以调用原来定义过的表达式来构成新表达式。所以,可视化系统会自动将已定义的表达式保存下来供调用。值得一提的是,关闭当前程序后,系统里的现有的这些表达式就丢失了,并不能保存下来。不关闭可视化平台,新建程序,则原来的表达式还可以调用。

图1 表达式生成与调用

亮宁机器人的符号系统还延伸到硬件系统。例如,硬件上有标志为“GND”或“G”或“-”的接线柱或针,都表示公共地线,即所有设备都需要接的线。它既是电池负极、供电线的负极,又是所有输入输出的公共端。所的标志有“Vcc”或“5V”或“+”的接线柱或针,均为+5V供电端。并且规定,用黑白双线来连接这两个端子。黑线两端规定接G或GND,白线两端规定接5V或Vcc。

稍有电学常识的人都知道,黑白颜色对导电是没有影响的。那为什么要强调一定是白线接正黑线接负呢?因为这也是一种符号系统,使操作者减少随意性,不容易造成反接。因为电池或供电系统反接会对硬件造成损伤。

还有,亮宁的地面循线传感器安装板上的7个安装位置的编号,为什么不是从左至右或反过来编号呢?如图2,而是1号在正中间,然后两边是2、3号,再4、5号,最两边才是6、7号。这是为了选用不同传感器个数时,用户接线方便而布置的。大家可以试试,你选用1~7几个传感器,都能用连在一起的几屏线来连接传感器与主板。

图2 传感器支架位置编号顺序

由于中小学生学习的周期不长,所写的程序也不复杂,所以使用亮宁机器人简化后的符号系统,只会减轻学生的学习压力,降低差错率。不会有看到这些不认识的英文代码就有头皮发麻的感觉,去除了很多人害怕C语言的心理阴影。

如果编程者担心以后这些代码自己看不懂,我们还可以在程序后面用双斜杠,在程序语句后用汉字作出注释。还可以用“/*……*/”在程序任何位置插入一段说明文字。这样做是必要的,特别是我们将符号系统简化后的程序,为以后自己阅读或他人修改程序埋好伏笔。

期待本文给亮宁用户解开一些迷惘。

亮宁机器人套件_亮宁机器人特有的符号系统(图文)相关推荐

  1. 亮宁机器人套件_mBot木果创客豪华升级套件——解锁更多玩法!

    在拥有mBot机器人后,肯定是要发挥自己的创意,做出自己与众不同的mBot,木果创客豪华升级套件让你离梦想更近一步! 搭配上声音传感器.电位器.4段位数码管.摇杆控制器.温度感应器.130风扇,才让我 ...

  2. 朗朗与机器人合奏_震撼!机器人和人类PK弹钢琴!郎朗现场都懵了!

    前几天,世界最像人的机器人诞生! 这款机器人协调性.平衡性非常出色 职业运动员没有分别! Terminator<终结者>可能要成真了-- 如今,机器人发展速度令人惊叹不已. 这位Teo是来 ...

  3. 阵列卡u盘安装系统步骤_最简单实用的raid重装系统图文教程

    raid重装系统的方法,可能听过这种方法和使用过这种方法的网友都是比较少的,这种系统重装方法虽然现在使用的人不多,但是也是非常好用的.今天小编就要把raid重装系统的方法推荐给大家,下面就是最简单实用 ...

  4. win7备份工具_小白易学的 ghost win7 备份系统图文教程

    备份系统非常简单,目前除了 Windows 自带的创建还原点功能可以备份系统外还有其它第三方工具支持对当前 Windows 系统备份.今天我们就来通过使用小白一键重装系统工具对 Windows 7 执 ...

  5. 科沃斯机器人充电红灯_科沃斯扫地机器人充电一直亮红灯

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 科沃斯扫地机器人充电一直亮红灯的原因是: 1.说明主机悬空或被困,我们需要将机器放到地上并帮助其脱困. 2.说明防撞板异常/红外防 ...

  6. ironbot智能编程机器人_边玩边学,编程启蒙,IronBot机器人套件视频图文评测

    前言 当今世界充满竞争和挑战,你的对手可能不是人.早在2015年,教育部就颁发了指导意见,鼓励以编程为核心的,包括科学(S).技术(T).工程(E).艺术和航空(A),以及数学(M)五个方面的&quo ...

  7. 角蜂鸟套件_配备蜂鸟套件的教室机器人

    角蜂鸟套件 我最近在纽约州的一个区域教育中心参加了一个科学,技术,工程和数学(STEM)研讨会. 非常高兴能被在那里能了解如何吸引学生学习STEM技能的教育者包围. 其中一项活动是使用BirdBrai ...

  8. 擦地机器人排行榜_扫地机器人十大排行榜

    进入2018年以来,我们看到,越来越多的家庭购买并使用了扫地机器人,扫地机器人的普及度进一步获得提升.智家网通过征集用户对扫地机器人选购的数据信息,整理了2018扫地机器人十大品牌排行榜推荐您参考! ...

  9. northstar机器人编程_《机器人构建实战》——导读

    前言 机器人构建实战 机器人是21世纪发展最为迅速.应用前景最为广阔的科学技术领域之一.机器人技术综合运用了基础科学和应用工程技术的最新成果,是一个国家科技发展水平和国民经济现代化.信息化的重要标志, ...

最新文章

  1. Centos6部署lamp: httpd2.4+module模式
  2. python删除中文停用词_python词云 wordcloud+jieba生成中文词云图
  3. 2016年第七届蓝桥杯 - 国赛 - Java大学C组 - I. 路径之谜
  4. 架构之:软件架构漫谈
  5. SAP gateway 后台OData model data查看工具
  6. Android:DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
  7. c语言中如何让诊断代码右移_如何检测和诊断生产中的慢代码
  8. Linux中重要文件
  9. 视频质量检测中的TP、FP、Reacll、Precision
  10. iOS事件拦截(实现触摸任意位置隐藏指定view)
  11. 用计算机参加关于动漫的工作计划,动漫社团年度工作计划
  12. 【面向对象设计基础】UML统一建模语言初学
  13. 10.MongoDB连接模型(长连接vs短连接vs连接池)
  14. java私塾 代码_【整理】java私塾教程课后习题
  15. Elasticsearch系列——(1.2)倒排索引 的实现
  16. 英特尔应用PC业真的已经走到了穷途末路?
  17. 计算机无法连接因特网络,有网但是无法连接到internet
  18. 动态FormBean
  19. 曝光!中国女性的私密数据分析…
  20. Tabby sftp 下载文件夹

热门文章

  1. 一维稳态对流扩散问题,无源项,QUICK格式的python程序
  2. CV5200远距离WiFi图传输方案,远距离传输和低延迟传输特点
  3. bat脚本输入密码_Mysql修改密码20190511
  4. Python文件相关函数-----23
  5. KT148A语音芯片音频的生成和压缩以及简单修音_合成方法介绍_V3
  6. B站Q4财报解读与业务分析
  7. Proteus:单片机 LED流水灯模拟
  8. 蔚来通过聆讯:拟3月10日港交所上市 继续PK小鹏理想
  9. Centos 7下安装pip(简略版)
  10. 你会选墙纸吗?---颜色墙纸教你如何选墙纸!