启蒙课程是蘑菇云创客教育课程体系里的入门级课程,也是创客课程的必修课。
启蒙课程特点:
注重基础技能的培养,为所有后续主题性课程的开展打下基础
综合性学习创客教育最基础的三项技能(电子,编程,结构)
Mixly米思齐编程积木套件具备丰富的课程内容和资源,包括纸质内容和丰富的PPT,配套教材为Gravity:米思齐Mixly使用教程
全书设置了14个项目,有浅入深的去学习,从Arduino的起源发展,到Mixly软件的安装使用,循序渐进的运用图形化编程软件Mixly,结合Mixly米思齐编程积木套件,去实现14个不同的创意,可以满足14+课时以上的课堂需求。
每个项目中有多个任务的设计,帮助学生在学习的过程中,能够更加深刻的理解知识点,并且在实操实练中更快的掌握,体会到Mixly编程创造的乐趣;并且在每个项目后都有对应知识点总结,便于课后总结和自查。
本教学案例来源于《Gravity:米思齐Mixly使用教程》,项目五:可调灯
1.实现功能
灯的亮度逐渐变化。
2. 硬件连接
LEDà10。注意插线时的颜色对应。
3. 程序编写
这段程序中我们接触到了两个新的模块——函数以及模拟输出。
函数:我们最初见到函数是在数学当中。y=f(x)是函数的一种一般形式,它接受变量 x 的值,经过对应法则 f 的处理,向人返回结果值 y。Mixly 程序中的函数,可以类比理解。程序中的 fadeOn 函数接受了变量 time 的值,对其进行了操作,并向程序的其余部分返回一个值。
有区别的是,这里的变量 time,我们称之为“参数”,函数返回的值,是“空值”,因为这个函数的目的,不在于返回一个数值,而在于对于硬件进行输出操作。另外,函数的内部,也可以定义变量(如图中的 value),这个变量只在函数执行的时候存在,一旦函数执行结束,value 也就不存在了。函数的一次执行叫做函数的调用,在一个函数中,可以调用其他函数,甚至可以调用自己。
模拟输出:脉宽调制(PWM:Pulse Width Modulation)
输出:它是一种对模拟信号电平进行数字编码的方法,简单来说就是通过一个时钟周期内高低电平的不同占空比来表征模拟信号,如下图图就是一个具体的编码样例。
Arduino 使用 analogWrite(int value)输出 PWM 信号,其中的 value 取值范围是 0-255,效果如下图所示。
Arduino 主控板只有有限个 GPIO 管脚支持 PWM。
观察一下 Arduino 板,查看数字引脚,你会发现其中 6 个引脚
(3、5、6、9、10、11)旁标有“~”,这些引脚不同于其他引脚,因为它们可以输出 PWM 信号。
不难看出,上面这个函数的功能是让 LED 灯逐渐变亮。要实现任务要求,还需要一个让 LED 逐渐变暗的函数。
完整的程序如下图:
左侧两个紫色块内的程序需要自行编写,它们的功能是定义两个函数。程序的主体是右侧的两个模块,它们是对左侧的函数的调用。
1. 实现功能
通过按钮,让灯的亮度发生变化。
2.硬件连接
按钮à2;LEDà10。注意插线时的颜色对应。
3.程序编写
程序中“brightness 赋值为”一句里,对变量进行了运算操作:(brightness+1)%6。这里的“%”是一个运算符号,叫做“取余”,这个式子的结果是 brightness+1 后的数除以 6 得到的余数。
这里,我们用到了一个新的元件——模拟角度电位器,也叫
“滑动变阻器”或”电位器”。通过调节旋钮,可以改变它接入电路的阻值大小。将其连到主控板支持模拟输入的接口上,就可以把阻值作为模拟信号输入到主控板上。主控板根据输入值的大小,确定输出的值(在这里,输入值大,输出值也大;也可能另外一些程序希望输出值随着输入值变大而减小。)
1. 硬件连接
模拟角度电位器àA0;LEDà10。注意插线时的颜色对应。
需要注意的是,主控板支持的模拟输入信号的大小范围是 0~1023。然而,模拟输出大小是 0~255。
因此,模拟输入的数值,不能直接进行模拟输出,我们需要一种办法,能够把0~1023 内的数,按比例缩小,转化成 0~255 之间的数,再模拟输出。方法如下:
2. 程序编写
元件
l 模拟角度电位器
Mixly 程序模块块
l 模拟输入
l 自定义函数
l 映射
中文名称 | 英文名称 | 数量 |
红外数字避障传感器 | Gravity: Analog Adjustable Infrared Distance Sensor | 1 |
模拟环境光线传感器 | Gravity: Analog Ambient Light Sensor | 1 |
模拟角度传感器 | Gravity:Analog Rotation Sensor V1 | 1 |
模拟声音传感器 | Gravity: Analog Sound Sensor | 1 |
舵机 | 9g micro servo (1.6kg) | 1 |
数字食人鱼红色LED发光模块 | Gravity:Digital Piranha LED Module-Red | 1 |
数字食人鱼蓝色LED发光模块 | Gravity:Digital piranha LED module-Blue | 1 |
数字蜂鸣器模块 | Gravity: Digital Buzzer Module | 1 |
数字大按钮模块(黄色) | Gravity:Digital Push Button (Yellow) | 1 |
DFRduino UNO R3主控板 | DFRduino UNO Rev3 | 1 |
IO 传感器扩展板 V7.1 | Gravity:IO Expansion Shield for Arduino V7.1 | 1 |
USB数据线 | USB Cable A-B for Arduino | 1 |
红外遥控套件 | IR Kit | 1 |
I2C LCD1602液晶模块 | I2C/TWI LCD1602 Module | 1 |
模拟LM35线性温度传感器 | Gravity:Analog LM35 Linear Temperature Sensor | 1 |
SR-04超声波传感器 | SR-04 Ultrasonic Sensor | 1 |
杜邦线 | Jumper Wires 9 F/F Pack of 10 | 1 |
创客项目示例
以下均为来自于学生及老师的创客项目记录