Scratch可视化编程入门
Scratch可视化编程入门
Section titled “Scratch可视化编程入门”本节介绍ESP32的可视化(积木式)编程工具。通过本节学习,你将能够:
- 识别支持ESP32的主要可视化编程平台
- 为ESP32设置积木式编程环境
- 使用类似Scratch的积木块编程ESP32
- 就可视化编程选项向教育类买家提供建议
- 基本熟悉Scratch或其他积木式编程界面
- ESP32开发板
为什么为ESP32使用可视化编程
Section titled “为什么为ESP32使用可视化编程”可视化编程降低了ESP32开发的门槛。用户无需编写C++语法,而是拖放逻辑积木块。这种方法特别适用于:
- K-12教育:学生学习编程逻辑(循环、条件、变量)而无需为语法困扰
- 快速原型:无需编写代码即可快速测试硬件想法
- 非开发者受众:产品经理、设计师和教育工作者需要了解ESP32能力
- 工作坊设置:短时间的课程中重点在硬件交互而非编码
可用的可视化编程工具
Section titled “可用的可视化编程工具”mBlock(Makeblock)
最成熟的基于Scratch的ESP32平台。
- 基于:Scratch 3.0
- 平台:桌面(Windows/macOS)和Web
- ESP32支持:通过”mBuild”生态系统或通用ESP32原生支持
- 特性:
- 拖放积木块生成Arduino C++代码
- 可在积木视图和代码视图间切换
- 内置串行监视器
- 直接上传到ESP32
- 支持Wi-Fi和MQTT积木块
- 最适合:课堂教学、K-12 STEM项目
Mixly(北师大/中国)
在中国STEM教育中广泛使用的可视化编程工具。
- 基于:Google Blockly
- 平台:桌面(Windows/macOS/Linux)
- ESP32支持:支持,带有开发板包
- 特性:
- 生成Arduino C++代码
- 支持大多数常见传感器和执行器
- 中英文界面
- 轻量级安装(~100 MB)
- 最适合:中国教育市场、预算有限的课堂
ArduBlock
一个较老但仍可运行的积木编程插件,用于Arduino IDE。
- 基于:OpenBlocks
- 平台:Arduino IDE插件(基于Java)
- ESP32支持:通过Arduino IDE的ESP32核心
- 特性:
- 在Arduino IDE内部运行
- 生成标准Arduino代码
- 非常简单的界面(积木块比mBlock少)
- 最适合:在Arduino IDE内从积木过渡到文本编程
Arduino PLC IDE(可视化编程)
Arduino官方用于工业应用的可视化编程环境。
- 平台:桌面
- ESP32支持:通过Arduino Portenta(非标准ESP32)
- 注意:不推荐用于标准ESP32教育
第一步:安装mBlock用于ESP32
Section titled “第一步:安装mBlock用于ESP32”- 从 mblock.makeblock.com 下载mBlock
- 安装桌面应用程序
- 启动mBlock
- 进入 Devices 标签并添加新设备
- 搜索”Arduino”或”ESP32”
- 选择适当的开发板(如”Arduino Uno”——mBlock将其用作通用代码生成器)
- 通过USB连接ESP32
注意:mBlock生成Arduino C++代码。编译后的代码通过标准Arduino上传过程上传到ESP32。你需要安装ESP32 Arduino Core(见01-04)。
第二步:创建简单的闪烁程序
Section titled “第二步:创建简单的闪烁程序”- 从 Events 类别中拖出”when Arduino starts”积木块
- 从 Pins 类别中拖出”set pin 13 to HIGH”积木块
- 从 Control 类别中拖出”wait 1 seconds”积木块
- 从 Pins 类别中拖出”set pin 13 to LOW”积木块
- 从 Control 类别中拖出”wait 1 seconds”积木块
- 在第2-5步周围添加”forever”循环积木块
积木块排列:
when Arduino starts forever set pin 13 to HIGH wait 1 seconds set pin 13 to LOW wait 1 seconds- 点击 Upload 编译并上传到ESP32
- 观察内置LED(大多数ESP32 DevKit上为GPIO 2)闪烁
第三步:添加传感器读取
Section titled “第三步:添加传感器读取”- 将DHT11/DHT22传感器连接到ESP32:
- VCC → 3.3V
- DATA → GPIO 4
- GND → GND
- 在mBlock中,从扩展菜单添加”DHT11”扩展
- 使用”read temperature from DHT11 pin 4”积木块
- 使用”read humidity from DHT11 pin 4”积木块
- 使用”say”积木块或发送到Serial显示值
积木块排列:
when Arduino starts forever set variable temperature to (read temperature from DHT11 pin 4) set variable humidity to (read humidity from DHT11 pin 4) Serial print (join "Temp: " temperature) Serial print (join " Humidity: " humidity) Serial print newline wait 5 seconds第四步:查看生成的代码
Section titled “第四步:查看生成的代码”在mBlock中,切换到 Code View(代码视图)查看积木块生成的Arduino C++代码:
#include <Arduino.h>#include <DHT.h>
DHT dht(4, DHT11);float temperature = 0;float humidity = 0;
void setup() { Serial.begin(115200); dht.begin(); pinMode(13, OUTPUT);}
void loop() { temperature = dht.readTemperature(); humidity = dht.readHumidity(); Serial.print("Temp: "); Serial.print(temperature); Serial.print(" Humidity: "); Serial.print(humidity); Serial.println(); delay(5000);}这是一个强大的学习功能:学生可以看到他们的可视化积木块如何转化为真实的C++代码,建立通往文本编程的桥梁。
- mBlock(或所选工具)成功安装并检测到ESP32
- 闪烁程序上传并正确执行
- 传感器读取程序在串行监视器中显示正确的值
- 可以查看和理解生成的C++代码
- 可以在积木视图和代码视图之间切换
mBlock中检测不到开发板
Section titled “mBlock中检测不到开发板”原因:
- USB驱动未安装
- 选择了错误的端口
- mBlock Arduino连接器未激活
解决方案:
- 安装CP2102或CH340驱动
- 在mBlock中进入 Connect 并选择正确的USB端口
- 安装驱动后重启mBlock
代码编译但未上传
Section titled “代码编译但未上传”原因:
- 后台Arduino IDE中未安装ESP32开发板包
- 编译时选择了错误的开发板
解决方案:
- 先在Arduino IDE中手动安装ESP32开发板支持
- 在mBlock中验证上传设置指向正确的开发板
- 通过Arduino IDE手动上传导出的
.ino文件
特定传感器的积木块不可用
Section titled “特定传感器的积木块不可用”原因:
- 扩展未安装
- 可视化工具不支持该传感器
解决方案:
- 检查是否存在传感器的扩展
- 使用”自定义积木块”功能编写简单的Arduino代码片段
- 对于不支持的传感器,切换到Arduino IDE或PlatformIO
- 积木视图用于逻辑学习,代码视图用于语法过渡:可视化工具最大的优势是展示积木块和代码之间的联系
- K-12教育从mBlock开始:它对ESP32支持最好、积木库最大、课堂资源最多
- 将可视化编程限制在入门内容:学生理解逻辑概念后(通常4-8次课后)应过渡到文本编程
- 结合物理计算:可视化编程在连接真实LED、传感器和电机时最具吸引力
- 用于售前演示:可视化编程是向非技术买家展示ESP32工作方式而不展示代码的绝佳方式
- 可视化编程工具(mBlock、Mixly、ArduBlock)无需编写C++代码即可编程ESP32
- mBlock是最全面的选择,通过扩展支持Wi-Fi、MQTT和常见传感器
- 可视化工具生成标准的Arduino C++代码——学生可以看到积木块背后的代码
- 最适合K-12教育、快速原型设计和非开发者受众
- 可视化编程应作为通往文本编程的阶梯(Arduino IDE或PlatformIO)