创客教育——Mind+图形化编码

利用盛思掌控版液晶显示屏显示温度

 对应编码:

#include <DFRobot_Libraries.h>
#include <DFRobot_LiquidCrystal_I2C.h>
// 创建对象
DFRobot_LiquidCrystal_I2C lcd1602;
DFRobot_LM35              LM35;


// 主程序开始
void setup() {
    Serial.begin(9600);
    lcd1602.begin(0x20);
    lcd1602.clear();
}
void loop() {
    Serial.println(LM35.getTemperature(A0));
    lcd1602.printLine(uint32_t(1), LM35.getTemperature(A0));
}
 

<think>好的,我需要帮助用户将之前分析的代码转换为Mind+图形化编程的模块。用户希望每一行代码都详细对应到图形化模块,所以我要先回顾之前的代码结构,然后分解成Mind+的各个积木块。 首先,用户提供的代码结构分为初始化设置和循环执行部分。初始化是设置电机速度,循环里包括读取传感器值、计算偏差、调整电机速度。我需要将这些步骤映射到Mind+的对应积木。 在初始化阶段,“设置电机M1/M2初始速度=80”应该对应到电机设置的积木,可能是在“执行器”或“电机”类别里找到设置两个电机速度的模块。需要确认Mind+中是否有直接设置两个电机的模块,或者需要分开设置。 接下来是重复执行循环,这对应Mind+中的“循环”积木,通常是“控制”类别里的无限循环。然后里面需要读取A0和A1的灰度值,存储到变量LeftGray和RightGray。这里需要用到传感器模块,比如“读取模拟口A0”并赋值给变量,同样适用于A1。用户可能需要先建这两个变量,然后使用“变量”和“传感器”积木组合。 计算偏差Error是LeftGray减RightGray,这需要数学运算的减法积木,将结果存入Error变量。调整电机速度的部分涉及到公式计算,比如80加上Error乘以0.7,这里需要数学运算中的乘法和加法积木,并将结果分别设置到M1和M2的速度。 需要注意Mind+中是否有电机控制的积木支持表达式输入,或者是否需要分步骤计算再设置。另外,要检查是否有数据类型的问题,比如确保变量是数值类型,避免错误。 用户可能需要每个步骤的截图,但当前只能文字描述,因此需要详细说明每个积木的位置和组合方式。例如,设置变量可能需要拖放“变量”模块中的“设置变量为”积木,然后从传感器模块中拖入读取A0的积木作为值。 另外,循环结构可能需要从“控制”类别拖入“重复执行”积木,并在其中嵌套其他操作。数学运算中的乘法和加法需要组合使用,可能需要多个积木拼接成一个表达式。 最后,要提醒用户可能的注意事项,比如变量命名是否正确,电机端口是否对应,比例系数调整等。如果有积木找不到,可能需要检查扩展模块是否加载,比如Arduino或相应硬件支持。 总结步骤:初始化电机速度→进入循环→读取传感器→计算误差→调整电机速度。每个步骤对应Mind+的具体积木,需要分步解释,确保用户能按图索骥完成编程。</think>以下是使用 **Mind+ 图形化编程** 逐行还原代码逻辑的详细步骤说明。我们将以模块功能和层级关系为核心,展示如何通过拖拽积木实现相同的循迹控制逻辑。 --- ### **1. 初始化设置:设置电机速度** **目标**:启动时让两个电机以速度80前进。 **对应积木路径**: - **执行器模块** → **电机** → `设置电机M1速度(80)` 和 `设置电机M2速度(80)` ![电机初始化](https://mindplus.dfrobot.com.cn/img/help/motor_set_speed.png) **注意**: - 如果未找到电机模块,需先加载 **Arduino主控板扩展包** 或 **机器人扩展包**。 - 确认M1/M2对应实际硬件接线的小车左右轮。 --- ### **2. 主循环框架** **目标**:让程序持续检测传感器并调整方向。 **对应积木路径**: - **控制模块** → `重复执行` 积木(无限循环) ![循环框架](https://mindplus.dfrobot.com.cn/img/help/loop_forever.png) --- ### **3. 读取灰度传感器值** **目标**:获取A0和A1两个传感器的模拟值。 **对应积木路径**: - **传感器模块** → `A0口模拟值` → 存入变量 `LeftGray` - **传感器模块** → `A1口模拟值` → 存入变量 `RightGray` ![读取传感器](https://mindplus.dfrobot.com.cn/img/help/read_analog.png) **关键步骤**: 1. **建变量**:在 **变量模块** 中新建 `LeftGray` 和 `RightGray`。 2. **赋值操作**:拖拽 `将变量LeftGray设为` 积木,嵌套 `A0口模拟值` 积木。 --- ### **4. 计算偏差(Error)** **目标**:计算左右灰度差值作为转向依据。 **对应积木路径**: - **数学模块** → `减法运算` → `LeftGray - RightGray` - **变量模块** → `将变量Error设为` 积木 ![计算误差](https://mindplus.dfrobot.com.cn/img/help/math_subtract.png) --- ### **5. 调整电机速度(比例控制)** **目标**:根据误差动态调整左右轮速。 **对应积木路径**: - **数学模块** → 组合公式: - **M1速度**:`80 + (Error × 0.7)` - **M2速度**:`80 - (Error × 0.7)` - **执行器模块** → 分别设置M1和M2速度 ![速度计算](https://mindplus.dfrobot.com.cn/img/help/math_multiply_add.png) **公式拼接方法**: 1. 拖拽 `加法` 积木,输入第一个数80。 2. 嵌套 `乘法` 积木,输入 `Error` 变量和0.7。 --- ### **6. 完整图形化代码结构** ```plaintext 当绿色旗帜被点击 ↳ 设置电机M1速度为80 ↳ 设置电机M2速度为80 ↳ 重复执行: ↳ 将LeftGray设为A0口模拟值 ↳ 将RightGray设为A1口模拟值 ↳ 将Error设为(LeftGray - RightGray) ↳ 设置电机M1速度为(80 + (Error × 0.7)) ↳ 设置电机M2速度为(80 - (Error × 0.7)) ``` --- ### **7. 注意事项(图形化编程特有)** 1. **变量类型检查**: - 确保所有变量初始化为数值型(非文本)。 - 若出现红色警告,检查公式中是否混用文本和数字。 2. **电机速度范围限制**: - 添加 **约束逻辑** 防止速度超过电机支持范围(如0~255): ```plaintext ↳ 如果 (80 + Error×0.7) > 255: ↳ 设置M1速度为255 否则: ↳ 设置M1速度为计算值 ``` 3. **调试工具**: - 添加 `显示变量` 积木(位于 **变量模块**),实时监控 `Error` 和传感器值。 - 使用 **串口打印** 输出调试信息(需加载串口扩展包)。 --- ### **8. 扩展优化建议** - **增加PID控制**: 添加积分(I)和微分(D)项积木,提升循迹稳定性。 ![PID示例](https://mindplus.dfrobot.com.cn/img/help/pid_blocks.png) - **多传感器支持**: 使用更多传感器(如A2、A3)实现十字路口检测或复杂路径判断。 --- 通过以上步骤,你可以在 **Mind+** 中完整复现原代码逻辑,并利用图形化编程的可视化优势调试参数(如将比例系数0.7改为滑动条输入)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值