编程与机器人

台湾有一所大学定义了学生在校四年学习,毕业前必须具备三种”语言”能力,包括中文、英文和程序设计语言,这自然是呼应现今社会发展需求的产物。前两者是纯粹的语言能力,做为与人沟通以及文化理解的主要工具。程序设计语言同样是沟通与理解的工具,只不过对象是计算机,它是对应高度科技化社会发展下,工作职涯所应具备的基本知能。

大学规定学生必会的三种语言

程序设计语言做为与计算机沟通与理解的工具,它的沟通功能主要体现在”命令”计算机按指令办事。计算机就像〈一千零一夜〉故事中的神灯一样,它有强大的能耐,但阿拉丁得用它听得懂的语言来下命令给它,万能的神灯才能完成各项神奇任务。

能与计算机沟通,更重要的是要能理解,理解计算机是怎么做事的,学习程序设计语言和编程来让计算机动作的过程,就是最好的理解计算机的方法。

在「浅谈儿童编程教育」一文介绍了最简单的儿童程序设计语言Logo,并用Logo写了简短的程序来让小海龟在屏幕上画图。其实像Logo、Scratch或是可程序操控机器人Dash&Dot组合等,向前(Forward)、向后(Back)、右转(Right)、左转(Left)等几乎都是最基础的指令(instruction),也许是因为受到派普特一开始开发Logo语言就有这些指令的影响,但最根本原因是要让学习者学会操控程序设计的主角(在Logo是小海龟,Scratch是猫,Dash&Dot则是能移动的Dash机器人),并且可以立即看到操控的结果。在一般的程序语言中反而是看不到这些基本指令的。

不像Logo和Scratch只能在计算机屏幕上看到程序执行结果,若能对机器人编程来控制它执行各项任务,学习程序设计的兴趣会更高,效果也会更好。Dash&Dot就是这么一个风靡全球的可程序控制机器人组合,它得到盖兹与玛琳达基金会的推荐,并曾进入美国白宫让奥巴马总统和小朋友一起学习编程,因而被认证为最适合16岁以下学生学习编程的机器人玩具。

Wonder机器人包括Dash和Dot两个不同特性的机器人

Dash&Dot主要透过手机或平板等移动终端来操控,移动终端上有5个不同功能的应用(APP),透过蓝牙技术和Dash或Dot连结。在这5个APP中Blockly和Wonder都内建任务挑战,它们事实上是一份完整的程序设计教材,每一个任务关卡都是在训练编程来操控机器人的方法。通过这些任务挑战后,可以创建自己的项目(project),让机器人按照自己的想法做事情。

Dash和Dot透过5个APP操控

下面我们就用一个实际项目范例来了解计算机的运作以及对应的程序应该如何设计,这个项目就是让Dash扮演一个巡逻机器人:一开始Dash会静止不动,直到按下头上按钮才开始像卫兵一样前后走动巡逻,在巡逻过程中,听到有人说话,就停下来,眼睛转动3圈,最后回答「你好!」。

首先要分析项目的内容,并把它画成流程图,图中会标出程序执行时的每一个步骤。整个项目分成三个部分:
❶ Dash机器人静止等待启动键被按下
❷ Dash机器人不断向前走50公分后右转180度,直到听到有人说话才停止
❸ Dash机器人向上看,眼珠子转3圈,然后说”嗨”

巡逻卫兵机器人项目流程图

第❶部分的程序是让机器人处于静止的状态,一直到一个特定事件发生,这个事件就是机器人上的启动键被按下。在Blockly应用中编程时应该使用下面这个指令:

让Dash机器人等待按键的指令

第❷部分的程序是让机器人判断是否听到说话声,如果没有听到说话声,则Dash执行向前走和右转两个指令。在这里要使用程序语言中的回圈与判断指令,回圈内部是一段指令,计算机会从回圈起始处开始执行,一直到回圈结尾,再回到起始处继续执行。由于程序会在回圈中重复不断地执行,因此必须加入一个条件判断,当条件被满足时就跳出回圈外面,继续执行下面的指令。对照流程图和下面的程序片段可以帮助了解程序的撰写方法。

重复执行回圈直到符合判断条件为止的程序片段

第❸部分程序中也有一个回圈,但这个回圈只会执行指定的次数就离开回圈内部,跳到外面继续执行下面的指令。回圈内部的两个指令看起来一模一样,它们的差别在于”自定义”的内容。编写指令时按下”眼灯模式”指令会跳出一个设定Dash机器人眼灯的画面,可以控制在这个指令中眼睛的哪几个灯要点亮,只要把前后两个”眼灯模式”的内容设定为错开点亮,例如先偶数号灯点亮,下一个指令变成奇数号灯,连续执行时看起来就像眼睛在转圈圈的效果。

回圈执行3次后离开

把这三个部分的程序片段连接起来,就成为完整的巡逻机器人控制程序了。

巡逻卫兵机器人的完整程序

按左下角的程序执行键,就会看到Dash机器人来来回回的走,听到有人说话时会停下来,转转眼珠子,然后说”嗨”结束。每一个指令左侧都有一个指示灯,当程序执行到该指令时,这个指示灯会亮绿色,可以一边看着机器人执行程序,一边对照程序执行到哪一个指令。


巡逻卫兵机器人的执行结果

学习程序设计时,事件驱动、重复执行和条件判断是很重要的概念。所谓事件驱动是指计算机在其所处状态下(例如静止不动),接收到一个外部来的动作(例如某个按键被按下或接收到声音等)后,驱使计算机改变原先的状态。

重复执行在程序设计上常以回圈的形式表示,回圈会”包住”一个程序片段,当把回圈内指令全部执行完就会计数一次。回圈分成两种类型,一种是有限次数的回圈,另一种则是无限回圈。有限次数回圈需要一个计数器,当计数器数值达到设定数目才会跳出回圈,否则就依序执行回圈内的指令;无限回圈则是让计算机不断地执行回圈内指令,但这样计算机就不会停下来,因此通常会加上一个条件判断,当条件被满足时就跳出回圈,不再执行回圈内的指令。其实这两种回圈类型可说是一样,都需要一个终止回圈执行的条件判断,只不过有限回圈是单纯的以计数器来控制回圈执行次数。也因为有条件判断式,才让计算机(或机器人)感觉上有一点智慧,表现得好像懂得外来刺激一样。

程序设计的训练就是在培养运算思维,学习者会学习到将一个复杂问题分解、规划解决每一个分解后问题的步骤、使用适当策略解决困难的问题,并能熟练地编程与计算机(或机器人)沟通。而搭配机器人来学习程序设计,可以提高学习者的兴趣,并加深学习的效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容