Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

Tello 挥军直闯玩具无人机界别,小小一台却还能提供编程乐趣,提供多一个购买推动力。而 Makerfire 创客火的 Ghost 无人机拥有同样的编程功能,更可自行决定轴数再加以组装,玩法更多变,那当然,价格也比 Tello 高不少… …

Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

四、六、八轴随心变

在基本规格上, Ghost 无人机与 Tello 配备非常相近,同样可使用由麻省理工学院( MIT )开发的软件 Scratch 进行编程,具 720P 图传系统、光流定位、声纳定位等。但 Ghost 其中一个重大卖点是可自行变换轴数,最基本为四轴模式,另也能组装成六轴或八轴,加强动力系统,只是增加轴数也相对的缩短了续航时间,用家需在其中取舍。

Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

Ghost 的基础模式为四轴设计。

Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

也可组装成 6 轴。

Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

机身积木化设计可装上不同部件,如 LED 灯、语音工具等,而其可通过编程程式进行控制。

进阶程式化控制无人机

Tello 支援的三款编程语言 Scratch 、 Python 、 Swift 均较著重于控制无人机飞行,如设定轨迹与动作(横滚、横滚等),而 Ghost 除了让无人机可使用 Scratch 控制飞行,另外支援进阶版编程方法 Ardunio ,可控制马达转动、多颗 LED 灯光变化等,自订的有趣玩法更多,但需要用家具一定的 C 语言基础。

Tello 以外的另类编程无人机选择,拼拼拆拆燃烧 DIY 小宇宙

Ardunio 编程方法比 Scratch 略为复杂。

360 度桨翼保护罩

Ghost 续航时间约只有 10 分钟,机身为 178 x 178 mm左右,比 Tello 的 98 mm x 92.5 mm 约大一倍,重量更是 Tello 的四倍( Tello 80 克; Ghost 312 克),桨翼完全被包裹在保护罩内,不似 Tello 的保护罩可随时拆下,偏好迷你机型的用家可能对 Ghost 稍微却步。 Ghost 官方售价 2299 人民币,比 Tello 贵上不少,大概真的对编程非常有爱的玩家小编才会推荐这款,不然貌似还是 Tello 的性价比高一点。

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

硬件

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

树莓派3代B型主板

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

Scratch编程小车红外追踪

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

整体供电使用两节3.7V的18650锂电池。树莓派需要5V供电,所以需要使用一个转5V的降压模块Lm2596模块。组装跟之前C语言控制小车一样。

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

现在我们来学习树莓派小车用Scratch编程。

首先打开所有程序—>编程——Scratch>

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

打开软件可以讲语言设置为中文

树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

我们通过Scratch软件去控制小车,这就意味着我们的主要工作是用此软件去控制树莓派GPIO,以及利用它去通过GPIO接收传感器发来的讯号并对信号进行处理。

打开软件的第一步:设置StartGPIOServer树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

一切准备工作就绪,接下来。我们开始吧树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

当旗标被点击时,gpioserveron即打开GPIOSERVER,然后设置引脚18 23 24 25(BCM编码方式,对应wpi编码方式的GPIO1、4、5、6)为out输出模式。设置引脚12 16(BCM编码方式,对应wpi编码方式的GPIO26 27)为in输入模式,输入模式下可以接收传感器发送过来的高低电平讯号。首先看一下怎么通过两个红外传感器或者光敏电阻传感器进行物体跟踪或者光源追踪。树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

我们已经设置了12 16引脚为输入模式,设定左侧的传感器接12引脚,右侧的传感器接16引脚。那么我们添加判断语句,当两侧的红外传感器都有障碍物在前方时直行,左侧有障碍物时则左转,右侧有障碍物时则右转,无障碍时则保持静止。若12 16引脚接的是关敏电阻传感器则寻光走。同样的道理黑线循迹也可以实现。

接下来,如何使用按钮控制小车前进后退左右。树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

如果这样设置,那么当我按下W键时小车一直向前不会停止。这样未免有点不好操作。所以我把运行步骤改了一下:树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

向前0.001秒后停止,这样的话只要一直按住w则小车前进,松开后即停止。同理后退左右也是。大家可以根据自己的需要自己编写脚本。或者先运行我写好的一个小脚本。

稍后评论区放脚本文件

原文始发于:树莓派Scratch入门教程——最简单的方式制作智能小车GPIO篇

|

用树莓派Scratch给家里的小朋友做个小玩具吧

用LED为您的机器人制造天线

让我们亲手实践电子产品!这是Raspberry Pi派上用场的地方。您将编程一个发光二极管(LED)闪光。首先你需要制作一个电路。

  1. LED具有短腿和长腿。在长腿上插入跳线。

  2. 将电阻插入同一跳线的另一端。

  3. 在电阻的另一端加上另一根跳线。

  4. 将另一根跳线和一端插入LED的短脚。你应该最终得到如下所示的东西:

    用树莓派Scratch给家里的小朋友做个小玩具吧

  5. 使用下图,找到Raspberry Pi上的第一个3V3引脚和GND引脚:

    用树莓派Scratch给家里的小朋友做个小玩具吧

    Raspberry Pi上的通用输入输出(GPIO)引脚可以听外界,可以进行控制或编程。每个针具有特定的作用。为了使生活更轻松,引脚被编号以供参考。3v3引脚用于电源,GND引脚用于接地。

  6. 将电阻器跳线插入Raspberry Pi的3V3引脚,将另一根跳线插入GND引脚。

  7. 插入micro USB电源,您应该会看到屏幕上出现一些文字。

光天线如何工作

现在你有一个电路,LED应该打开。如果不是,请通过检查上图来确保将跳线插入正确的引脚。

那么为什么LED发光呢?

当电路插入Raspberry Pi GPIO引脚时,电能流过它。此流程称为当前流。当电流从长腿通过灯泡流到短腿时,LED仅点亮。

该电阻减少了通过电路的电流量。这样可以保护LED免受破坏,因为高电流会使光线更亮,然后停止工作。

做得好!你为你的机器人做了天线。现在我们需要做一些编程来控制它。

使天线闪烁代码

现在你有一个天线点亮,你可以写一个程序来告诉LED当你想要它。

对于本节,您将需要使用针17而不是3V3来为您的LED供电。针17是特殊的,因为它可以打开和关闭电源 – 如果你告诉它!按照以下说明学习如何切换引脚。

  1. 关闭您的Raspberry Pi,然后卸下电源线。将连接到电阻器的跳线从3V3引脚移动到GPIO引脚17.参见下图,确保电路正确:

    用树莓派Scratch给家里的小朋友做个小玩具吧

  2. 将电源线连接到Raspberry Pi,然后等待它启动。

  3. 单击菜单和编程,然后单击Scratch打开Scratch。

  4. 单击编辑并启动GPIO服务器(如果尚未启动)。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  5. 右键单击Scratch cat,然后从菜单中选择delete。

  6. 然后点击按钮获取一个新的精灵,并从幻想文件夹中选择robot3。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  7. 点击控制。将when green flag clicked块拖动到脚本区域。然后broadcast在下面连接一个块。点击广播块上的下拉菜单,选择新的。

    在消息名称框中键入config17output此指令将告诉Raspberry Pi,该引脚17将是一个输出。这是因为您正在告诉引脚打开一个作为输出组件的LED。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  8. when space key pressed块拖动到脚本区域。然后单击声音并将该play sound块拖放到脚本区域并将其连接到控制块。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  9. 单击脚本区域上方的“ 声音”选项卡,然后单击“ 导入”。选择电子,然后选择ComputerBeeps2。这将添加到声音选项卡。

  10. 现在通过单击脚本选项卡返回到脚本区域。点击旁边的下拉框播放声音。选择您刚从菜单导入的声音。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  11. 测试你的程序到目前为止,按空格键。应该哔哔声

  12. 点击文件并另存为,保存工作到目前为止。命名您的文件机器人并单击确定。

  13. 单击块调色板中的控件,并将块拖动broadcast到脚本区域,并将其附加到播放声音块。点击广播块上的下拉菜单,选择新的。

    在消息名称框中键入gpio17on此指令将告诉Raspberry Pi点亮LED。

    用树莓派Scratch给家里的小朋友做个小玩具吧

  14. wait 1 second块拖动到脚本区域并将其连接到广播块。

  15. 通过点击机器人精灵来测试你的程序。你应该看到LED闪耀并保持开启。

  16. 将另一个broadcast块拖动到脚本区域并将其连接到等待1秒的块。点击广播块上的下拉菜单,选择新的。

    在消息名称框中键入gpio17off这将关闭LED。

  17. 现在添加另一个wait 1 second块到脚本。

  18. 通过点击机器人精灵再次测试您的程序。您应该看到LED亮起一秒钟,关闭一秒钟。

用树莓派Scratch给家里的小朋友做个小玩具吧

制作纸板机器人

您将制作纸板机器人并添加您的光天线。

  1. 在一张A4纸上,绘制或打印您自己的机器人设计。它应该被绘制的肖像,所以它可以包裹在你的纸板管。确保它有一个天线!

  2. 在机器人图片中的颜色,并仔细切出。

  3. 将机器人围绕纸板管纵向缠绕。

用树莓派Scratch给家里的小朋友做个小玩具吧

  1. 将机器人胶粘或胶带到位。

  2. 在纸板管内的机器人天线后面贴上橡皮泥或蓝宝石。

用树莓派Scratch给家里的小朋友做个小玩具吧

将一支铅笔推入天线,穿过纸板管。

用树莓派Scratch给家里的小朋友做个小玩具吧

  1. 取出橡皮泥。

  2. 将跳线,LED和电阻的电路放在纸板管内。将LED推入管中的孔,使机器人的天线。

  3. 给你的机器人一个名字,并欢迎它到世界。

恭喜!您的机器人已经完成!

接下来是什么?

  • 你能使纸板机器人的天线保持长时间吗?

  • 你能让闪光灯多次闪光吗?

  • 尝试录制新的声音播放,当您的节目播放。

原文始发于:用树莓派Scratch给家里的小朋友做个小玩具吧

|

树莓派Scratch控制GPIO说明文档

Scratch GPIO

随着2015年9月发布的Raspberry Pi Scratch,包含在Raspbian Jessie版本中,我们推出了一款新的GPIO服务器,使LED,蜂鸣器,HATS以及其他设备和组件更加轻松。

使用和基本功能

启动服务器

在使用GPIO引脚之前,您必须启动GPIO服务器。有几种方法可以做到这一点:

  • 从编辑菜单中选择启动GPIO服务器将其打开。如果服务器已经运行,则停止GPIO服务器将其关闭。

  • 一个暂时播放gpioserverongpioserveroff将会有相同的效果。

  • 当GPIO服务器运行时保存的项目将记录该状态,并且在加载时将尝试启动服务器(如果启用)。

  • 您也可以在临时INI文件中设置一个选项。见下面的附录。

基本的GPIO使用

没有任何进一步的设置,您现在可以访问GPIO系统的基础知识。目前使用广播块向GPIO服务器发送命令,就像原始的网状网络广播消息一样。

例如,要将GPIO引脚4配置为输出并将其打开,您将创建以下两个广播:

树莓派Scratch控制GPIO说明文档

和往常一样,您可以使用正常的连接,选择或列表处理块来组合此文本。例如,如果foo= 17,那么

树莓派Scratch控制GPIO说明文档

将广播gpio17on并因此设置GPIO引脚号17(在BCM编号下 – 不是物理或接线号码!)on。引脚需要配置才能使用它们做任何事情。我们可以设置引脚的方向(输入或输出),对于输入引脚,可以设置上拉模式(上,下,无)。

  • 对于输入引脚,我们可以使用’in’或’input’。这两个都被视为与“inpullup”或“inputpullup”相同,默认设置上拉电阻来拉起信号。

  • 要设置上拉电阻将信号拉低,我们使用’inpulldown’或’inputpulldown’

  • 我们可以将上拉电阻设置为“inpullnone”或“inputpullnone”

  • 输出引脚简单地通过“输出”或“输出”

  • 通过PWM输出,使LED发光部分亮起或使电机以可变速度等运行非常有用,配置为’outputpwm’

例如:

树莓派Scratch控制GPIO说明文档

设置为输入的引脚连接到Scratch传感器变量系统,因此它们显示在传感器模块中可能的值列表中:

树莓派Scratch控制GPIO说明文档

并且可以以相同的方式使用:

树莓派Scratch控制GPIO说明文档

在运行配置广播之后,您将不会在列表中找到您的输入引脚。在此之前,GPIO服务器无法知道您希望它是一个输入。保存项目时,输入仍将被挂起。

通过这些非常简单的命令,您可以构建相当复杂的GPIO处理脚本来读取按钮并操作LED,电机等。我们还有命令返回时间,返回机器IP地址,读取各种温度,读取超声波距离传感器,获取天气报告,甚至使用附带的Raspberry Pi相机模块拍摄照片并将其设置为当前服装。

此脚本(传感器和电机文件夹中提供的传感器和电机/ gpio-demo)说明了上述大部分内容:

树莓派Scratch控制GPIO说明文档

随着适当配置的面包板,它提供了通过按下按钮打开和关闭LED的能力,以逐渐增亮的LED提供的倒计时照片,检查时间的方式等。

树莓派Scratch控制GPIO说明文档

请注意,我们可以有一个包含多个消息的广播,如

gpio24on gpio18pwm400

上面的脚本。

基本的GPIO命令

在下面的命令列表中,我们使用

[comm] + pin number + [ on | off]

指示形式的命令

comm17off或comm7on。

对于一个变量,

led + light number (1..5) = ( 0 .. 100)

表示一个名为的变量

led5可能具有从0到100的值。同样,foo = ( 1 | 4 | 7 )表示变量foo可以设置为1,4或7。

简单的GPIO控制

您可以在没有任何HAT插入您的Pi的情况下执行的基本GPIO命令列表如下所示:

  • 设置为PWM引脚

  • gpio + pin number + [ on | high | off | low ]打开或关闭输出例如,gpio17on

  • 打开引脚17。gpio + pin number + pwm + [ 0..1024 ]

  • 使用PWM输出例如,gpio22 pwm 522

将PWM占空比设置为1024,即1024或大约一半的功率。请注意,许多LED不会以简单的线性方式改变其亮度,因此522可能几乎不发光或接近完全亮度。

伺服驾驶

  • servo + pin number + [percent | %] + [-100…100]

    将连接的伺服器移动到位置。例如servo15%0,将伺服放置在其范围的中心。

  • servo stop

    关闭伺服驱动器。

在Servos和Motors / gpio-servoDemo脚本中,您可以看到如何移动伺服器或将其连接到像Sprite位置的变量。您需要将伺服电缆连接起来,如下所示:

树莓派Scratch控制GPIO说明文档

超声波传感器

ultrasonic + trigger + trigger pin + echo + echo pin

  • 连接典型的SR04超声波传感器

ultrasonic stop

  • 在脚本结束时关闭传感器支持

这里是使用引脚16作为触发器的布线布局示例,而作为回波的是26:

树莓派Scratch控制GPIO说明文档

如果您使用传感器和电机/ gpio-ultrasonicDemo中的脚本使用此接线设置,您将看到如何阅读距离并按顺序移动sprite。传感器和电机/ gpio-ultrasonicIntruderAlarm中的另一个超声波演示需要一个相机模块,并且当任何人太靠近时会拍摄快照。

天气报告

getweather + city name + , + country two-letter code + , + your user key from [OpenWeatherMaps](http://www.openweathermaps.org)

  • 将为指定的城市的温度,风速和方向,降雨量和云层创建传感器变量。您必须注册才能从中获取密钥(可用的免费帐户)。有关详细信息,请参阅OpenWeatherMaps。

例如

getweather Rio de Janeiro, BR, 1234EF65B42DEAD

将使传感器变量

Rain in Rio de Janeiro

Temp in Rio de Janeir0

…等等。城市名称和国家/地区代码之间的逗号和密钥对于让GPIO服务器知道哪里分割的东西至关重要。一些城市有简单的名字,如“Ee”或“Manchester”,而其他城市则更像“Sault Ste Marie”或“Llanfairpwllgwyngyllgogerychwyrndrobwllllantysilioogogog”。请注意,OpenWeatherMaps服务器不知道每个国家的每个城市,也不知道它所知道的所有的天气数据,所以有时您将无法获得有用的信息。

该脚本传感器和电机/ GPIO-citytemperaturegraph演示了如何获取气象数据,伦敦和积的温度。由于天气数据通常不会快速变化,我们只能每15分钟获取一次数据,以免网站超载。

阅读温度

gettemp

  • 连接到几个可能的温度传感器。

gettemp + cpu

  • 读取cpu温度并创建一个传感器变量

cputtemp

  • 。例如:

gettempcpu

  • 。绘制CPU温度图的示例项目可以在传感器和电机/ gpio-cputtemperaturegraph项目中找到。

gettemp + [a previously discovered twelve-digit 1-wire id]

  • 如果可能,将直接连接到识别的DS18B20传感器。

    请注意,1线传感器需要大约半秒钟才能读取,因此经常读取传感器可能会使Scratch显得非常慢。

gettemp

  • 本身将尝试找到一个附加的1线DS18B20热敏传感器,并创建一个名为的传感器变量

temp + [the twelve-digit sensor ID]

相片

photo

  • 使用照相机拍摄照片并将其插入当前精灵的服装(如果选择了舞台)。

photo + [width @ height]

  • 将照片尺寸宽度乘以高度像素,直到相机的极限。您可以尝试几乎任何合理的数字的宽度和高度,但请记住,非常小的数字(32以下)不一定产生正确的图像,非常大的数字可以使图像如此之大,似乎崩溃Scratch。例如,

photo800@600

通常是可以接受的,但photo2000@1600可能会导致问题。

photo + [big/large]:“大”照片与舞台大小相同。例如:

photobig或photo large。

gettime

  • 将一些时间值添加到传感器变量,特别是hours值,minutes值,以及完整的日期和时间YYMMDDhhmmss。

getip

  • 为机器的本地主机地址IP号添加一个传感器变量。

附加硬件

我们还可以控制Pi附加板,如PiGlow,Pibrella,Explorer HAT等。要设置一个板,我们首先需要通知GPIO服务器是什么板;

这是通过创建和设置变量来完成的

AddOn,如下所示:

树莓派Scratch控制GPIO说明文档

每个主板都有自己的一套命令,分布在上述基本的GPIO设备之上。许多电路板也可以利用Scratch变量广播,从而创建一个合适的名称变量,并在变化时广播它的值。

例如,对于PiGlow板,将每个LED或LED环命名的变量设置为有意义,并将每个值设置为控制亮度的一种方式。同时使用这两种形式的控制可能造成混乱;

myCommand400

以与设置

myValue

为200 相同的脚本播放可能会在极端情况下导致闪烁,明显的非功能甚至硬件故障。

所有您需要做的是创建一个适当名称的变量,并使用正常的脚本块设置其值。

一些电路板提供可以通过传感器变量访问的输入,如上面在引脚11的示例使用中所示。

PIGLOW

PiGlow板有几个明亮的LED环,可以单独或一起控制为环,腿。小心:看起来可以有点明亮,所以使用一些描图纸或有色皮肤制成的扩散器是一个好主意。要使用板,设置AddOn到PiGlow。

PiGlow有很多命令,其中许多都在传感器和电机/ gpio-PiGlow项目中得到证明。

支持的命令

leg + leg number [ 1 | 2 | 3 ] + [ on | high | off | low ]

  • 例如

leg2off

[ red | orange | yellow | green | blue | white ] + [ on | high | off | low ]

  • 例如 redlowarm

  • – 如

bright + [ 0 .. 255 ] (设置任何后续LED指示灯的亮度乘数)

[ led | light ] + led number + [ on | high | off | low ]

  • 例如 light12high all + [ on | high | off | low ]

变量bright = ( 0 .. 255) led pattern =(作为二进制数字处理的18个字符的字符串,如“011111101010101010”,其中任何不为0的字符串被认为是1)

[ red | orange | yellow | green | blue | white ] = ( 0 .. 255)

[ leg | arm ] + [ 1 | 2 | 3 ] = (0 .. 255)

[ led | light ] + led number (1..18) = (0 .. 255)

PIFACE

PiFace数字板提供八个数字输入和八个数字输出,前四个输入具有并行开关,前两个输出具有20V / 5A继电器。设置

AddOn为PiFace激活此板。

支持的命令all + [ on | off] output + output number + [ on | high | off | low ]

  • 例如

output6on

变量output + [ 0 .. 7 ] = (0 |1 )

  • – 值被舍入,并受到最大/最小限制,因此-1轮次最多为0和400000000轮次,减少到1。

还有八个输入传感器变量,命名

Input1为Input8,具有可能的值(0/1)。该传感器和电机/ GPIO-PiFace项目说明了如何使其发挥作用。

PIBRELLA

这提供了一个很好的大红色按钮,三个大LED,四个数字输入,四个数字输出和一个响亮的蜂鸣器。要使用此板,请设置AddOn为Pibrella。

命令中止

[ red | yellow | green ] + [ on | high | off | low ]

  • 例如

yellowhigh

Output + [ E | F | G | H ] + [ on | high | off | low ]

Buzzer + (0 .. 4000)

  • 例如

buzzer2100

变量

Buzzer = (0..10000)

Output + [ E | F | G | H ] = (0 |1 )

[ red | green | yellow ] = (0 |1 )

输入A,B,C,D和大红色按钮作为传感器变量提供,均具有可能的值(0/1)。汽车和传感器/ gpio-pibrella有一个演示。

EXPLORER HAT PRO

这个板卡对于驱动器来说更是一个挑战,因为它具有与GPIO连接的部分和I2C连接的部件:

  • 四个LED

  • 四个5V输出连接器

  • 四个缓冲输入连接器

  • 两个H桥电机驱动器

  • 四个模拟输入

  • 四个电容式输入板

要使用此板,请设置

AddOn为ExplorerHAT。

支持的命令

led + led number ( 1 .. 3) + [ on | high | off | low ]

motor + motor number (1|2) + speed + (0..100)

  • – 电机速度设置为百分比,例如

motor1 speed 42

output + input number ( 1 .. 3) + [ on | high | off | low ]

它们具有匹配的变量形式:

led + led number = (0 |1 )

motor + motor number (0|1) = (0..100)

output + led number = (0 |1 )

变量也有传感器的变量Input1-Input4使用值(0 | 1),和四个ADC引脚(1。4)用值+ -6.1V。如果信号源自连接到Explorer HAT的5V / GND的电位器,则范围为(0 ..〜5)。

在演示脚本传感器和电机/ GPIO-ExplorerHAT要求连线一个电动机,带动,旋转电位计等,如图该图

请注意,电容输入焊盘尚未运行,需要一些库级支持。

传感器HAT(如ASTRO PI所用)

这个基础制造的电路板提供了一系列不寻常的传感器和一个8 x 8的RGB LED阵列。

传感器测量:

  • 温度

  • 湿度

  • 压力

  • 加速度计/陀螺仪

  • 磁力计/指南针

  • 迷你操纵杆动作左/右/上/下/返回

要使用此板,请设置

AddOn为SenseHAT。支持的命令clearleds:将所有LED设置为背景颜色edbackground + colour

  • 或者ledforeground + colour

  • 设置要使用的字符串和图形命令的背景颜色和前景颜色。颜色指定为以下之一:

  • 从名单中的名字红色青色蓝色灰色黑色白色绿色棕色棕色橙色黄色洋红色淡棕色白an淡淡淡蓝色苍白黑色黑色…蓝色

  • 一个HTML样式的六位十六进制数字,以哈希符号开头

#34F2A0

  • 或0到255之间的数字的RGB三元组,例如

ledscrollspeed + [number of milliseconds delay per step of scrolling]

  • :一个字符串

ledpixel + [ x | at] + [0..7] + [y | @] + [0..7] + [colour | color] + [colour name or code as ledbackground]

  • 。例如:

ledpixelx4y3colourwhite

  • or

ledpixelat2@7color42,231,97

  • or

ledpixelx3@1colour#4A76A0

ledscrollstring + [string]

  • :用以前设置的前景和背景颜色滚动以下字符串,例如

ledscrollstring HelloWorld

ledshowsprite + [name of sprite]

  • :在LED上显示命名的精灵,例如

ledshowsprite Sprite1

  • 。精灵集中在8 x 8阵列上,所以你可能会看到很少的一个大的精灵。

ledbargraph + [8 digits 0..8]

  • :使用以前设置的前景和背景颜色制作最多八位数的简单条形图

ledbargraph20614590

ledshowchar + [character]

  • :只显示一个单一的字符与以前设置的前景和背景颜色

变量

gyroX

humidity

gyroY

pressure

gyroZ

temp

accelX

compassZ

accelY

compassY

accelZ

compassX

PI-LITE

Pi-LITE板提供了一个简单的白色LED阵列,可以单独寻址或被视为滚动文本显示,条形图或VU表。它通过GPIO串行端口工作,并提出了一些有趣的挑战,特别是在[RaspberryPi-Spy的Pi-LITE指令]中详细介绍了串行连接的设置(http://www.raspberrypi-spy.co.uk/2013/09/如何设置-i-lite-led-matrix-board /)。支持的命令

尽管它们的工作方式差别很大,但它们共享相同的命令

motor + motor number (1|2) + speed + value (-100..100)

变量

motor + motor number (0|1) = (-100..100)

附录:启用和禁用GPIO服务器

在正常使用中,您不需要启用GPIO服务器,因为默认情况下启用但停止。我们可以通过在init文件中添加一行来改变它。在主目录中,我们可以使用一个名为的文件

.scratch.ini

– 初始点对于使其成为隐藏的Unix文件非常重要。只需将该行添加

gpioserver=X

到文件中,其中X是:

0

  • – 禁用GPIO服务器,阻止用户或加载的项目使用它

2

  • – 启用和启动服务器,这可能在课堂上有关GPIO使用的教训

1

  • – 启用GPIO服务器,但将其关闭,这是没有

.scratch.ini

  • 文件时的默认值

请注意,旧的网状网络/网络服务器设置当前在“ 共享”菜单下半隐藏:您必须在打开该菜单时按住shift键。它与以前一样工作,仍然连接到外部基于套接字的服务器。

原文始发于:树莓派Scratch控制GPIO说明文档

|

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

  • 前言

 

这是一个轰轰烈烈的全民人工智能的时代。不说自己做了些和大数据、人工智能的工作都感觉有点不好意思说自己是干IT的。据说人工智能已经进入中小学标准教育大纲了。

 

Scratch中实现人脸识别刷脸?能够实现聊天机器人?能够教AI玩游戏(剪刀石头布、井字游戏)?是的,你没有看错。计划通过几次的人工智能课程,让小朋友了解人工智能能够干什么,有哪些应用,并且亲自尝试一下AI的应用,体验未来世界的智能性。

 

当然这还没有涉及到背后的人工智能的实现逻辑。我们只是在应用大厂家的人工智能算法和平台(鼎鼎大名的IBM沃森Watson)。因此这几个例子,也只能说是人工智能的应用,并不属于底层人工智能的研发。当然,市面上,也有不少通过调用通用平台AI功能的AI应用产品。人工智能算法和平台的发展很可能和云平台类似,最终由多个寡头企业主导,或者会逐渐走向开源和免费,成为免费的“水电”。

 

 

2. 目的

人脸识别是人工智能下图像识别的重要科目。大学人工智能专业中,估计有半数是和图像识别相关的。人脸识别非常重要,并且在将来的社会中应用会非常广泛。估计未来将将来全地球人的人脸数据。刷脸购买产品、车牌识别、乘车坐飞机,进入某个区域,都可能直接通过“刷脸”完成验证工作。“人脸”识别还能自动识别“好人”和“坏人”,提升社会的安全。例如在西单广场、交通入口处,设置一堆人脸识别的摄像头,如果发现“坏人”指数大于80%的人,允许警察提前进入警戒状态,甚至允许上前“盘问”。

 

今天的目的是使用人脸识别。在Scratch中拍照,然后系统会识别这是谁,是否允许进入某游戏或系统。当然在这之前,我们要先介绍一下这几个人工智能后面所用的IBM Watson人工智能平台系统,如何申请免费账号,如何培训系统,如何在Scratch中调用和使用这些人工智能的功能。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

(最终的应用截图,根据角色图片,能够识别这是谁,验证通过与否,同时播放声音。)

 

3. 免费注册IBM 沃森人工智能平台账号

 

IBM Watson人工智能属于IBM 云平台所提供的服务,属于人工智能的大厂家,其人工智能水平还是位于前列的。首先进入https://console.bluemix.net/注册IBM的云平台账号。

 

进入后,如果没有账号,可以在“Create Free Account”中创建免费账号。如果已经拥有账号,可以直接登录。IBM的这个云平台似乎还是在国外,访问比较慢。注册以后需要邮件确认,如果无法完成验证,就只能“翻墙”确认一下了。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
注册图像识别服务。
 

注册以后,要定于对应的AI服务,例如文本识别、图像识别、数字识别。我们这一次用到了图像识别,因此要注册“Visual Recognition”服务。可以在IBM平台中找到对应的服务,先创建API Key。在machinelearningforkids.co.uk也有链接地址,进入IBM云平台,注册相关的服务。

 

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
IBM图像识别服务按照调用次数收费,Lite的免费版一个月允许调用1000次。对于测试来说,这已经够了。

进入这个服务以后,“Create”创建账号。然后我们可以看到各种版本的收费标准。Lite版本是免费的,每月1000Calls

 

创建这个服务的账号以后,能够获取一个API Key,就是其他应用中访问IBM服务的API Key。会在后面的Scratch项目中用到。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
获取最关键的API Key。点击复制,复制该API Key,可以先复制到本地的文件中。
 

如果要订阅文本识别类的服务,选择“Watson Assistant(formerlyConversation)

 

微信订阅号:ABO_CRM

 

 

4. 注册MachineLearningForKids.co.uk

这是一个少儿机器学习网站,有十几个案例项目。这些项目都可以应用在Scratch中。这个网站使用的后台AI平台是IBMWatson,因此需要先注册IBMAI平台账号。

 

进入网址,https://machinelearningforkids.co.uk。第一次使用,申请账号。

 

 

 4.1 Worksheets-19AI示例应用

进入“Worksheets”,能够看见19AI的应用项目。随便打开一个,就进入下载页面了。

https://machinelearningforkids.co.uk/#!/worksheets

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

下载页面:下载学生手册和教师手册。

 

手册中有详细的操作步骤。当然手册了里面并没有告诉你如何申请IBM账号。

 

 

 

4.2 设置IBM API Key

 

先别着急创建Scratch项目,需要先申请、设置API Key进入Teacher>API Keys”. 这里有两个链接地址,可以引导我们进入IBMWatson平台,注册文本和图像识别服务。如果第三步没有提前注册,也可以在这里进入,注册。

 

Watson VisualRecognition:

https://www.ibm.com/watson/services/visual-recognition/

 

Watson Assistant:

https://www.ibm.com/watson/services/conversation/

 

这一次需要使用到图像识别。注册IBM图像识别服务以后,在这里”Add new API key”,添加API Key即可。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
Teacher>API Keys
 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
添加图像识别的IBM Watson API Keyes。

 

4.3 开始人工智能的Scratch项目

一)      新建AI项目

 

进入“Projects”,  新建项目“Add a new project,需要录入项目名称Project Name, 识别类型Recognizing,有文字、图形和数字。这里需要选择图形。注意,这里的项目名称依然不支持中文,只能使用英文。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

 二)      Train:培训计算机识别图形,进行图形分类识别

创建以后,进入项目。有三个功能:“训练Train”,“学习和测试Learn &

Test,”Scratch”

  • Train: 为系统提供需要识别的照片,可以在线拍照,作为素材,训练系统。识别这是谁,那是谁。系统分组识别,因此要分成几组。

  • Learn &

    Test: 系统进行抽取,学习。然后可以测试该模型的可靠性。

  • Scratch: 进入Scratch编程环境,在Scratch环境中调用这个AI模型。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

进入Train, 定义三个分组:Kang, Tong, Others,即为两个人,和其他人。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

每组拍10个照片,注意每个照片要更换一定的表情,例如做一下鬼脸之类的。最终目的是,根据所提供的照片,系统能够识别这是谁。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

 

三)      Learn &

Test:机器学习和测试

 

上载素材完毕以后,就可以进行机器学习和测试了。进入”Learn&

Test”,点击培训机器学习模型。这时候需要调用WatsonAPI,如果前面没有设置好API,这里就无法继续。

几分钟以后,系统就能建立模型。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
建立模型需要花费几分钟,可以返回项目,重新进来。学习完毕以后,还可以删除该模型,注意该模型只能保留一天。第二天来就需要重新学习了。
 

 

模型建立后,点击“Test withWebcam”,可以拍照测试模型。系统列出识别结果即该图属于哪一类的图片,即哪个人。提供给出可信度Confidence,例如91%的概率认为这是某人。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

如果图片正规一点,识别率会高一些。如果图形变化大,识别率可能会小一些。

 

四)      Scratch:进入Scratch环境,调用AI应用。

这里的Scratch环境并不是直接在MIT网上的,但功能类似。可以切换到中文版,但扩展的积木还是英文的。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

进入后,点击菜单“Project Templates”,有17个模板项目,包括一些示例代码和角色图片。请复制浏览器URL,在新页签中打开,进入Project Templates少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

如果想省时间,就直接使用这些模板,下载模板中的角色图片,然后编写程序,上载角色。

 

下面开始制作程序:

  1. 首先查看“更多模块”,这里能够看见这个人工智能项目Face Lock的扩展,并且有一个绿色标志,说明这个扩展和AI模型是工作的。

  2. 进入舞台,导入4个舞台背景图片。这些背景图片是从示例项目中直接下载的。第一个是空手机、第二个是Scanning,说明在扫描图片;第三个是识别成功,绿色打钩的通过背景Granted;第四个是未能正确识别的红色锁定背景Denied

如果成功识别某个人,允许进入系统Granted,则使用背景3,否则使用背景4 Denied.

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

3.  设置一个空白角色,什么都不要放。不过要进入造型,拍一些照片,也可以每次使用的时候拍摄。Scratch没有单独的拍照功能,这点很不好。因此需要一个空造型,在运行开始之前,先给这个造型启动WebCam拍照,才能进行后面的识别环节。

 

微信订阅号:ABO_CRM

 

4.    调用AI人脸识别:这段程序其实很简单。

  1. )点击的时候,先将背景切换到Scanning,显示正在扫描。其实Scratch是有摄像头扫描图片功能的,不过速度太慢了。

     

  2. )设置三个判断,Recognize image () = Kang,则切换背景为Granted;

    说一句话“This is Kang.;

    播放一段声音,自己录制一段声音,“我是Kang Kang。”。第二、三个判断类似,识别TongOthers

Image里面选择Costume Image,就是当前角色的图片。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

   3.)测试:先对角色拍照,可以一次拍多个照片,执行前,选择对应的照片。然后开始,系统会切换背景、说话、并且播放声音。系统的识别能力还是很不错的。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

下一次试试剪刀石头布。和计算机一起玩剪刀石头布的游戏,我们出剪刀、石头或者布,计算机能够识别出来,并且出题,比对。

 

本程序的图片和Scratch都来自https://machinelearningforkids.co.uk,感谢这个网提供如此美好的AI体验。

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)|

少儿编程Scratch第15讲:贪吃蛇

目的:完成一个贪吃蛇的小游戏,了解角色图片制作、克隆、运动方向、碰到障碍物的处理。

 

游戏说明:游戏开始时,蛇不停的往前移动,身体逐渐变长。玩家可以通过上下左右四个按键改变蛇运动方向(向上、向下、向左和向右)。蝙蝠是蛇要吃掉的小动物,可能随机出现在屏幕任何一个地方,挥动翅膀,但保持位置不动(当然也可以让蝙蝠飞起来)。当蛇碰到蝙蝠时,蝙蝠消失,即蛇将蝙蝠吃掉,获取得分;蛇吃掉蝙蝠以后,其中的一节身体变成蝙蝠的颜色。经过几秒后,(另外一只)蝙蝠重新出现在另外一个位置。游戏继续。

 

这个游戏属于“炒冷饭”的范畴,因为很多小游戏的基本实现指令和方法都是类似的。

 

适合人群:一二年级学生。在家长或老师指导下完成。

用时:2-3小时。

 

一、角色设置

设置两个角色。一个是蛇,分成蛇头和蛇身。蛇的身体由一块一块组成。

蝙蝠:蛇的食物,可以挥动翅膀(,也可以飞翔移动)。

 

微信订阅号:ABO_CRM
 

二、蛇头的制作

 

少儿编程Scratch第15讲:贪吃蛇

这是Scratch标准角色库中提供的球,有不同颜色的球。我们以这个球为基础,制作蛇头。

 

蛇头造型1:在角色中,使用“变形”,出现出现几个可以拉动的小点点。拉动圆形右边的点,最后形成尖尖的蛇头形状。

 

少儿编程Scratch第15讲:贪吃蛇

蛇总要有眼睛,因此使用用粗线点两下,或者用画圆的功能,画两个圆,填充红色。这是蛇的造型1.

 

 

少儿编程Scratch第15讲:贪吃蛇

蛇头造型2:因为蛇在上下左右移动时,要保持头的方向一致,因此复制一个图,然后上下翻转,形成另外一个蛇头,造型2.

 

 

三、让蛇头运动起来

 

因为一个多月没有做运动类的程序了,今天已经比较生疏。为了让蛇头前后左右移动,显示使用了右边的X或Y坐标增加一定位置的循环指令。

 

后来改成左边的运动和方向。

少儿编程Scratch第15讲:贪吃蛇

重复循环,每次都移动1步。默认的时候,蛇头是往右边移动的。如果按了上箭头,面向0度,即往上走。如果按下箭头,面向180度方向,即往下走。

 

测试。

 

但这时候我们会发现,蛇头的方向是不对的,因此,下移的时候,需要将蛇头的造型切换为2. 除非蛇头上下对称,否则就有这个问题。

 

用类似的方法,处理左右移动。

 

 

少儿编程Scratch第15讲:贪吃蛇

现在,这个蛇头可以顺畅的动起来了。

 

 

四、蛇身体的制作-让蛇长出身体

 

也不能只有这一个蛇头啊。怎么做出蛇的身体呢?那就一节一节克隆吧,没格一段时间,克隆出一节“蛇身体”来,然后间隙小一些,看上去,就成一条连续的蛇了。

 

少儿编程Scratch第15讲:贪吃蛇

这里再次使用一遍“开始”指令,蛇头每隔一秒,就克隆一个自己。注意克隆等待时间和运动步数,蛇的身体要保持连续。

 

试玩一下。

 

少儿编程Scratch第15讲:贪吃蛇

随着蛇的移动,蛇真的变长了, 长出来了。但是有个问题,有很多蛇头,因为我们是克隆了蛇头。Scratch允许我们克隆300份,因此可以一直玩,到了300份蛇头,就不会继续克隆了。

 

到这一步,小孩的兴致已经上来了,一定要把满屏都擦成蛇头为止。小妹妹也上来玩了。

 

 

五、蛇身体的制作-一节一节的蛇身

 

为了解决复制出来的都是蛇头的问题,我们需要一节蛇的身体,就是没有眼睛的头。

少儿编程Scratch第15讲:贪吃蛇

这个很简单,只需要复制出另外一个造型,把蛇的眼睛去掉即可。造型3:一节蛇的身体。

 

六、蛇头变成蛇身

 

少儿编程Scratch第15讲:贪吃蛇

蛇头复制出来以后,克隆体启动时,需要将造型切换成3,即将蛇头变成蛇的身体。如果不变换,那就会出来很多蛇头。

再玩一下。

少儿编程Scratch第15讲:贪吃蛇

这时候就只有一个蛇头了。还是可以克隆300份。KK想把整屏都盖上蛇,到后来就不会继续克隆了。这也体会了只允许300份克隆体的限制。在实际应用中,要将不需要的克隆体删除,而不能仅做简单的隐藏操作。

克隆体启动后,等待8秒,就删除本克隆体。这样蛇的身体就不会“无限”长了。

 

七、蝙蝠角色-随机出现

本来贪吃蛇的游戏是让蛇吃掉球或豆子的,结果说要吃掉蝙蝠。就加了一个蝙蝠角色。

 

首先让蝙蝠挥动翅膀,这个只要不停更改造型就可以了。

 

然后,让蝙蝠出现在屏幕的随机位置上。 X和Y都使用一个随机数,当然不能太靠近边缘。

少儿编程Scratch第15讲:贪吃蛇

 

八、蛇吃蝙蝠:侦测碰到某种颜色

这是关键的一步。我们使用了碰到某种颜色,蝙蝠则隐藏。选择“碰到颜色”以后,可以在屏幕中点击蛇的眼睛, 这样能够获取的红色。

 

当碰到红色的时候,蝙蝠隐藏。蛇将蝙蝠吃掉了。

 

九、蛇吃蝙蝠:游戏得分

吃掉蝙蝠以后,分数增加。因此设置一个全局变量。开始时,将分数设置为零。蝙蝠被蛇吃掉后,分数增加。

 

 

十、蛇吃蝙蝠:蝙蝠在蛇的肚子里

吃掉蝙蝠以后,蛇的肚子有一节会变成黑色,甚至那一节还可以变大一点。这个实现稍微复杂一点。

 

首先制作一节黑色的蛇的身体,还是蛇的角色,造型2.

 

其次,设置一个黑色的全局变量。默认是0.如果被吃掉了,设置为1.

 

在克隆体启动时,读取合格黑色的全局变量标识,如果是0,则为普通蛇身,造型为2.如果是1,即刚吃掉一只蝙蝠,需要变成黑色,造型3。切换成造型3以后,需要将黑色的变量设置为0,否则后面就全是黑色的了。

少儿编程Scratch第15讲:贪吃蛇

总结测试:

最后效果图这个图。

少儿编程Scratch第15讲:贪吃蛇

 

还可以改进,例如多条蛇、多只蝙蝠,蝙蝠会飞翔,不能碰到边缘等。蛇的身体,在转弯的时候,覆盖的还不大好。

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第15讲:贪吃蛇|

少儿编程Scratch第13讲:九九乘法问答

目的

目的:通过编写一个简易的九九乘法问答程序,理解变量、问答和广播。本想编写一个输出九九乘法表的程序,以便能够练习循环、克隆和对象的相对位置。最后决定先做一个乘法问答小程序。
 
适用对象:适合有一定初步Scratch编程经验的用户,例如一二年级学生。在家长指引下学员能独立完成大部分功能,用时约3小时。
 
本游戏共享在:https://scratch.mit.edu/projects/211180722/
 
 
少儿编程Scratch第13讲:九九乘法问答
 

 

微信订阅号:ABO_CRM

实现方式

九九乘法问答思路:
1)        点击魔术师出题,系统从1-9随机选择两个数,并且相乘,得到答案。
2)        魔术师显示被乘数、乘于的操作符、乘数、等于,然后显示问号。
3)        魔术师随机询问,答案是多少,显示录入框。
4)        用户录入答案。 系统判断用户录入是否和系统计算一致;
                 i.     一致:隐藏问号,显示录入的值;显示正确打钩角色;
                ii.     不一致: 隐藏问号,显示录入的值;显示错误打钩角色。
5)        用户点击“查看答案”按钮。

a.     系统显示“正确答案”标签;

b.     在旁边显示正确答案。这样用户可以将自己录入的值和系统答案相比较。

 
少儿编程Scratch第13讲:九九乘法问答
 

 

 

少儿编程Scratch第13讲:九九乘法问答
 

 

 

 

  • 变量设置

定义四个变量,均为全局变量。

  • X:被乘数
  • Y:乘数
  • R:系统结算结果
  • Input:用户回答录入的值

 
2.  魔术师角色
 
1)        初始化:隐藏输入和结果变量。初始化变量值。
2)        当角色被点击时:

a.     隐藏结果和录入变量

b.     随机选择1-9数字,并存入X

c.     随机选择1-9数字,并存入Y

d.     计算结果:X * Y, 并且写入到结果变量R

e.     广播“显示问号”。问号角色收到以后,就显示问号。

f.     询问答案,并等待用户回答。用户需要录入答案。

g.     用户录入答案确定以后

                                              i.     将用户录入的值写入Input变量。

                                             ii.     如果回答正确(Input = R),则广播“对”。打钩的角色收到后,显示打钩。

                                           iii.     如果回答错误(Input <>R),则广播“错”。错误标识的角色收到后,显示错误标识。

                                           iv.     显示用户录入的变量Input

 
少儿编程Scratch第13讲:九九乘法问答
 

 
3. 显示答案角色(Answer)
 
1)        当这个按钮被点击时,广播两个消息:隐藏问号、显示“正确答案”的标签、显示答案变量。
2)        问号角色收到后隐藏问号。其实之前如果用户有录入的话,已经会隐藏掉,显示用户实际录入的值了。
 
少儿编程Scratch第13讲:九九乘法问答
 

 
4. “正确”角色
 
1)        收到回答正确的广播时,显示。
2)        收到回答错误的广播时,隐藏。
3)        收到显示问号时,即出题完毕,也要隐藏。
 
少儿编程Scratch第13讲:九九乘法问答
 

5. “正确答案”标签角色
 
4)        这是一个标签,标签是一个图“正确答案”。
5)        程序开始时隐藏。
6)        点击魔术师出题时会隐藏;点击“Answer”按钮显示答案时会显示。

 

少儿编程Scratch第13讲:九九乘法问答

 

后续改进

 

1)        增加难易程度按钮,高中低三挡。选择高,则从20-99随机;选择中,则从10-19随机;选择低,从1-9随机。
2)        将用户录入的值,按照图片角色的形式显示出来。因为显示变量的样式是固定的,过于简单,通过显示图片,可以实现各种效果。

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第13讲:九九乘法问答|

少儿编程Scratch第12讲:制作时钟

目的

 
制作一个带秒针、分针和时针的时钟,秒针每秒走一小格,分针每60秒走一小格,时针每12分钟走一小格。
 
适用对象:这个游戏比较简单,具有初步Scratch基础的学员在教师的指导下均能完成。考虑到程序时间和讲解需要时间,安排2-3个小时会比较合适,适合一二年级小孩。

 
这是在朋友家里完成的。对方刚好也有一个一年级小孩,具有初步的Scratch基础,因此两个小朋友都顺利的完成了任务。虽然任务简单,但我们加了不少内容,最后还是花了两个小时左右。
 
首先:我带他们看钟表实物,介绍时钟。客厅刚好有一个挂钟。但 小孩看不懂上面的数字,因为这个朋友家是大House,装修超级豪华,能让我这种住老小房子的人感到惭愧的豪宅。时钟上是罗马数字哦。
 
我在白板上介绍了一下时钟,特别是小时、分钟、秒的关系。整点在哪里,七点干什么,八点干什么,几点下课放学等。通过询问回答,能够起到热身的作用,逐步进入程序制作环节。时钟是一个大圆圈,分成60份。每一秒,秒针就需要走一小格,即向右旋转一定的角度。这个角度要引导才能算出来。即360/60=6°。
 
 

少儿编程Scratch第12讲:制作时钟
教师手稿图~~~
 

 

不带指针的时钟背景图,之前我就准备好了。然后自己选择想要的角色当做时分秒三个针。

 
 
其次:开始进入MIT Scratch系统,开始制作程序。用到角色中心十字星的功能,十字星要放在针的顶端。先制作秒针,对准12点的位置,设置指针中央位置,然后大循环,每等待1秒就右旋转6度。
 
制作完毕秒针,小孩就兴奋了,叫爸爸妈妈来看看。然后继续完成分针。分针和秒针类似,只是每60秒,才转一小格。时针其实是比较复杂的,要准确计算时针每走一小格的秒数。时针每走一大格是一个小时,即60分钟,然后分成5个小格,因此是60/5=12分钟;12分钟=720秒。

 
其实制作时针之前我们吃了一顿午饭,午饭后写作业,然后继续完成下列任务。
 
第三:做完以后,然两位小朋友上台轮流讲解。这是家长们是学生,小孩是老师。小朋友表现还是很不错的。这一个环节很重要,能够体现小孩的思路是否清晰,表达力如何。
 
第四:练习关联的英语。写了几个单词Clock, Time, Second, Minute, Hour, What time is it? It’s 8 o’clock.等。

 
游戏主界面:
少儿编程Scratch第12讲:制作时钟
 

本游戏共享在:https://scratch.mit.edu/projects/225754329/
 

 

 
微信订阅号:ABO_CRM

实现方式

背景-时钟;三个角色:时分秒三个针。方法在上面基本上都说明了。

 
 

 

少儿编程-Scratch

·     少儿编程Scratch第11讲:植物大战僵尸(1) (2018/5)

·     少儿编程Scratch书评:《轻松玩转Scratch编程》

·     少儿编程Scratch第十讲:钢琴演奏入门(2018/4)

·     少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动(2018/4)

·     少儿编程Scratch第八讲:变量和太空大战(2018/4)

·     少儿编程Scratch第七讲:字母雨打字练习(2018/3)

·     少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播(2018/2)

·     少儿编程Scratch第五讲:练习一坐标和移动(2018/1)

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 

 
一、背景
背景图是在网上找的,要找不带指针的时钟。

 
 

少儿编程Scratch第12讲:制作时钟
 

二:秒针
少儿编程Scratch第12讲:制作时钟
初始化的面向很重要,不过可以引导小孩逐步尝试。通过增加和减少方向数字,确保开始的时候在12点的位置。
 

然后移动XY的指令,很重要,确保指针的十字中心点(头部)在时钟背景中心点。因为原来时钟的图形是方的,Scratch布景是长方形的,因此时钟会靠左一点。
 

然后是主程序,每等待1秒,右转6°。
 

三:分针
和秒针类似,每60秒,右转6度。
 

少儿编程Scratch第12讲:制作时钟
 

四:时针
和秒针类似,每720秒,右转6度。
少儿编程Scratch第12讲:制作时钟
 

 

五:学生讲解什么是时钟,今天程序做了什么,怎么做的。
少儿编程Scratch第12讲:制作时钟
第一个小朋友,讲解的很好
 

少儿编程Scratch第12讲:制作时钟
我家,讲的也还行,还有另外一张,没上载好。
 

六:英语
少儿编程Scratch第12讲:制作时钟
单词就要死记硬背。不读不写,记忆就不牢靠。
 

有空的朋友可以进行改进个,例如增加初始的时间设置,增加闹铃等。
 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第12讲:制作时钟|

少儿编程Scratch第11讲:植物大战僵尸(1)

目的

 
实现植物大战僵尸游戏。游戏比较大,需要分几次课程才能完成,因此这里先讲述第一部分:种植豌豆射手、豌豆射手射出豌豆,种植向日葵,僵尸从右边往左边移动,到房子边上开始“吃脑子”。
 
适用对象:适合有一定编程和数学基础的用户,例如一二年级学生。在家长指引下能完成多数练习,每次课程约2个小时,制作完整的植物大战僵尸需要三四次课程。
 
少儿编程Scratch第11讲:植物大战僵尸(1)
游戏主界面。
 

本游戏共享在:https://scratch.mit.edu/projects/219832179/

 

 
微信订阅号:ABO_CRM

实现方式

分步骤实现植物大战僵尸游戏。我让小孩自己画了植物大战僵尸的各种图标、草坪,但颜色较浅,效果不好,最后还是使用了网上的一个版本的图片。将来可以将这些图片替换掉。
 
 

少儿编程-Scratch

·     少儿编程Scratch书评:《轻松玩转Scratch编程》

·     少儿编程Scratch第十讲:钢琴演奏入门(2018/4)

·     少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动 (2018/4)

·     少儿编程Scratch第八讲:变量和太空大战(2018/4)

·     少儿编程Scratch第七讲:字母雨打字练习(2018/3)

·     少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播(2018/2)

·     少儿编程Scratch第五讲:练习一坐标和移动(2018/1)

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 

 
一、角色说明
 
 

少儿编程Scratch第11讲:植物大战僵尸(1)
 

1) 三个卡牌:阳光卡牌、向日葵卡牌、豌豆卡牌。 卡牌位置固定。阳光卡牌下方有阳光数量变量。收集阳光以后,阳光数量增加。使用阳光,可以终止豌豆射手或者向日葵,种植以后,扣减对应的阳光数。
2)背景:草坪、围栏、终点是房子。如果僵尸走到房子边上,就开始吃“脑子”,脑子被吃完,游戏则结束。
3)阳光:阳光会定期随机飘落,可以点击,收集阳光。
 

4)豌豆射手:会摆动,会发豌豆子弹,打击僵尸。
5)豌豆子弹:种植豌豆以后,豌豆开始发射豌豆子弹。
 

6)僵尸:分成两个角色,一个是普通前进的角色;一个是碰到向日葵、豌豆射手或到达房子时,吃植物或脑子动作的角色。开始吃的时候,切换成开始吃的角色。
 

7)向日葵:向日葵会产生阳光。
 

 

二、铁桶僵尸
少儿编程Scratch第11讲:植物大战僵尸(1)
僵尸被打中两次即消失。
僵尸从屏幕右边随机出现,向左移动。到达左边房子以后,记录位置,广播开始脑子,然后显示第二个开吃脑子的僵尸。如果碰到子弹,打中次数减少1,如果打中次数为零,则打死了,删除克隆体。这里打中次数就是僵尸的生命值。
 

三:吃脑子的僵尸
少儿编程Scratch第11讲:植物大战僵尸(1)
收到吃脑子的广播以后,克隆自己,移动到原僵尸位置,显示,开吃脑子。这里设置了吃十次以后,僵尸消失。
 
 

 

四:种植豌豆射手(豌豆射手卡牌)
少儿编程Scratch第11讲:植物大战僵尸(1)
阳光数大于100,可以种植豌豆射手。种植时,立即克隆一个豌豆射手,减少阳光数,否则提示阳光不足。
 

五:豌豆射手
少儿编程Scratch第11讲:植物大战僵尸(1)
豌豆射手启动时,切换造型,实现动画效果。
豌豆射手启动时,跟随鼠标移动,当鼠标被按下以后,记录鼠标的位置,这个变量为角色变量,非全局变量。种植豌豆射手一段时间以后,开始发射豌豆。这里有个关键点,就是鼠标按下,广播发射豌豆以后,要停止当前脚本,即豌豆射手固定在草坪上。
 

六:豌豆子弹
少儿编程Scratch第11讲:植物大战僵尸(1)
接收到豌豆射手发射子弹的广播以后,克隆自己。然后移动到豌豆射手位置,开始向右移动,碰到边缘或者僵尸,重新回到原点,注意不是删除克隆体。
如果打中了僵尸,则子弹需要移回豌豆射手。(这里可改进:如果碰到僵尸,需要考虑射手和僵尸的距离,经过一段时间后再发射下一个豌豆子弹。否则僵尸靠近射手时,子弹的发射速度将加快,这不合理。)
 

七:种植向日葵(向日葵卡牌)
少儿编程Scratch第11讲:植物大战僵尸(1)
阳光数大于50,可以种植向日葵。种植时,立即克隆一个向日葵,减少阳光数,否则提示阳光不足。
 

八:向日葵
少儿编程Scratch第11讲:植物大战僵尸(1)
向日葵启动时,切换造型,实现动画效果。
向日葵启动时,跟随鼠标移动,当鼠标被按下以后,记录鼠标的位置,这个变量为角色变量,非全局变量。经过一段时间以后,要停止当前脚本,即豌豆射手固定在草坪上。还未制作向日葵产生太阳的功能。
 

 

九:阳光
 
 

少儿编程Scratch第11讲:植物大战僵尸(1)
初始化阳光。每5秒克隆产生一个阳光。
 

少儿编程Scratch第11讲:植物大战僵尸(1)
克隆后,阳关在一定范围内随机产生,然后在一秒内,随机滑行到另外一个地方,停留三秒。点击阳光时,阳光滑回卡牌,阳光增加50。
 

植物大战僵尸的游戏,初步可以玩玩了。
本游戏共享在:https://scratch.mit.edu/projects/219832179/
 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第11讲:植物大战僵尸(1)|

少儿编程Scratch第十讲:钢琴演奏入门

目的

目的:编写一个简易的钢琴演奏程序,了解Scratch对声音的处理(播放声音、弹奏鼓声、弹奏音符,控制节拍,选择乐器,控制音量等)。
 
适用对象:适合有一定编程和数学基础的用户,例如一二年级学生。在家长指引下小完成多数练习,用时约2小时。
 
 

少儿编程Scratch第十讲:钢琴演奏入门
 

 

本游戏共享在:https://scratch.mit.edu/projects/217924108/
 
微信订阅号:ABO_CRM

实现方式

尽量使用简单的语句和方法,实现一个简易的钢琴。首先自己制作一个钢琴白色按键,有两个造型,只是颜色有点区别。按下按键的时候,切换造型,显示按下的效果。实现从1,2,3,4,5,6,7i八个音节,因此复制角色即可。方法相同,制作5个黑色按钮角色。(为了简单,并未使用克隆功能,因此代码是重复的。这种方式适合入门的用户。)
 

少儿编程-Scratch

·     少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动 (2018/4)

·     少儿编程Scratch第八讲:变量和太空大战(2018/4)

·     少儿编程Scratch第七讲:字母雨打字练习(2018/3)

·     少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播(2018/2)

·     少儿编程Scratch第五讲:练习一坐标和移动(2018/1)

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 
 
一、钢琴白键:造型、按键和播放声音
1)自己制作一个角色,用填充白色的长方形即可。制作完毕以后,复制这个造型,修改填充颜色。白键的两个造型即完成。
 
少儿编程Scratch第十讲:钢琴演奏入门
 
2)添加按键、播放音节的脚本:开始时切换造型到1(即白色)。重复执行,判断按键A被按下,则切换造型2(浅蓝色),然后“弹奏音符60 0.5节拍”,如果没有A被按下,则切换回造型1(白键)。
少儿编程Scratch第十讲:钢琴演奏入门
 
3)其他按键类似,只是弹奏的音符不同,1,2,3,4,5,6,7i八个音符的数字依次为:60,62,64,65,67,69,71,72.
4)为了使按键间隔一致,初始化时移动到X YY0X-180开始,每个按键增增加50。为了简单,这里并未使用变量。级别高的用户可以使用变量,以便在整体往右移动按键的时候会简单些。
 
少儿编程Scratch第十讲:钢琴演奏入门
 
二、钢琴黑键:造型、按键和播放声音
1)使用相同的方法制作黑键。两个造型,高度稍短。位置和钢琴上的黑键相同,即3,4之间没有黑键。
 
 

 

少儿编程Scratch第十讲:钢琴演奏入门
 

改进

中高级用户可以实现这些改进功能:
1)        使用变量统一控制钢琴按键在屏幕中的相对位置。
2)        使用克隆,减少角色数量,使用一个白色角色、黑色角色,通过克隆,即可实现所有按键。(代码虽有所减少,但单个角色中的代码会增加,程序会复杂一些)
3)        考虑按键时长:这种循环中,直接判断某个按键是否被按下,存在严重的缺陷。即用户如果连续按着按键,系统会再次播放这个音节。相当于每次都是固定的0.5拍,不会随着按键快慢而变换节奏。
 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第十讲:钢琴演奏入门|