从0到1看懂一个Blockly显示扩展1602LCD扩展blocksdef.js与Python代码生成源码剖析【免费下载链接】lcd-1602-display源师兄扩展项目: 1602LCD | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/lcd-1602-displaylcd-1602-display是源师兄为 Oh-Code 提供的 1602LCD 字符屏显示扩展。本文以它的两个核心文件blocksdef.js与library/lcd1602.py为主线用源码剖析的方式讲清楚拖积木 → 生成 Python → 点亮屏幕的完整链路新手读完也能掌握 Blockly 显示扩展的运行原理。一、1602LCD显示扩展全景4个文件撑起3个积木这个项目非常轻整个扩展只靠 4 个文件完成文件职责blocksdef.js积木外观定义 Python 代码生成规则category.json左侧分类盘 LCD1602 分类内容及各输入框默认值config.json设备元数据设备名、扩展名称、描述library/lcd1602.py板端真正驱动屏幕的底层驱动3 个积木统一使用玫红色#d4237a见 blocksdef.js 第1行 的globalcolor全部是语句型积木上下可拼接对应 LCD1602 的三大操作初始化 I²C 地址、指定行列显示文本、清空屏幕。二、逐块看积木每个积木到底生成了什么初始化积木给 LCD1602 打开电源它只有一个输入框iic_addr默认0x27。它的生成器没有直接返回代码而是把驱动实例写进了pythonGenerator.definitions_这个文件级全局定义里blocksdef.js 第21行最终被提升到生成文件的最顶部from lcd1602 import LCD1602 _lcd LCD1602(int(0x27))积木本身则输出空代码——这正是它放一次、管全程的原因无论拖在程序哪个位置import 语句都只会在文件头出现一次。显示文本积木列、行、内容三参数3 个输入框列rol1~16、行row1~2、内容content默认Hello World。生成的代码是标准两连击先set_cursor定位再show输出。注意每个变量都被int()/str()包裹blocksdef.js 第56行——即使用户拖入的积木类型不合预期也能保证类型安全。清空屏幕积木零参数最直白无参数直接生成一行_lcd.clear()屏幕内容清空、光标回到左上角。刷新显示前用它清一次可避免新旧内容叠加。三、blocksdef.js源码剖析每个积木的双层结构通读 blocksdef.js 可以发现每个积木都由两层组成第一层外观Blockly.Blocks三步套路appendDummyInput().appendField(...)放置固定文案如 LCD1602 |appendValueInput(名称)创建可插积木的输入插槽iic_addr、rol、row、contentsetPreviousStatement(true)setNextStatement(true)声明为语句型上下可拼接第二层代码生成pythonGenerator.forBlock用valueToCode取出各输入插槽上积木对应的代码片段再拼接成最终 Python。其中最值得学习的是初始化积木的definitions_技巧blocksdef.js#L19-L25把import 实例化注册为全局定义、自身返回空串。好处有二——import 语句永远置顶且不重复即使用户误拖了两个初始化积木同键名覆盖也不会产生重复代码。四、底层驱动lcd1602.py一个字节如何到达屏幕lcd1602.py 是纯 MicroPython 驱动I²C 接口默认地址0x274 位模式核心就 4 个方法write_bytelcd1602.py#L29-L454 位模式下一个字节拆成高/低 4 位配合使能位0x04与背光位分 4 次 I²C 写入完成传输init_displaylcd1602.py#L47-L62标准初始化序列0x33→0x32→0x28→0x0C→0x06→0x014位模式、2行、显示开光标关、增量模式、清屏构造时自动调用一般无需手动再调set_cursorlcd1602.py#L69-L76光标地址 0x80 (列-1) 0x40×(行-1)第 2 行比第 1 行整体偏移 64 个字符位showlcd1602.py#L78-L84逐字符ord(char)写入每行最多 16 字符五、完整示例3个积木生成的最终Python按顺序拖放初始化(0x27) → 显示文本(1, 1, Hello World) → 清空屏幕生成的完整代码只有 5 行from lcd1602 import LCD1602 _lcd LCD1602(int(0x27)) _lcd.set_cursor(int(1), int(1)) _lcd.show(str(Hello World)) _lcd.clear()前两行来自初始化积木的definitions_注册自动提升到文件顶部后三行按积木顺序逐块生成——这就是 blocksdef.js 的全部魔法。六、新手排错速查黑屏/不亮先查 SDA/SCL 是否接反、供电是否为 3.3V/5V再核对 I²C 地址部分模块是0x3F改初始化积木的输入框即可显示乱码确认程序里放了初始化积木初始化序列由驱动自动完成不要重复手动初始化位置不对列/行均从 1 开始列 1~16、行 1~2超出范围的内容不显示内容残留刷新前先拼一个清空屏幕积木更多积木用法、接线表和 API 说明可参考项目 README.md。【免费下载链接】lcd-1602-display源师兄扩展项目: 1602LCD | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/lcd-1602-display创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Delphi 13.1 + DevExpress VCL v25.2.3 真实交付避坑指南 简介:本资源是面向Delphi中高级开发者的专业级UI增强套件,专为适配Delphi 10至13.1(Florence)版本设计,解决Windows桌面应用现代化界面开发效率低、控件功能单一、视觉表现力不足等核心痛点。包内含2000个文件… · 2026/9/25 2:07:55
展讯SPRD平台AT指令调试实战:从基础查询到私有扩展指令 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:07:49
2026国内15家AI大模型应用盘点:Coding Agent与本地部署选型指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:07:49
源师兄BH1750光照扩展完整入门:从接线到第一个积木,5分钟测出环境光照 源师兄BH1750光照扩展完整入门:从接线到第一个积木,5分钟测出环境光照 【免费下载链接】CupCode_BH1750光线模块 该模块用于测量环境光线强度 项目地址: https://gitcode.com/yuanshixiong/test
想给自己的开发板加一块能"看光"的传感器… · 2026/9/25 2:37:22
Aliens Eye递归扩展完全指南:用--recurse-depth从简介里自动挖出关联账号 Aliens Eye递归扩展完全指南:用--recurse-depth从简介里自动挖出关联账号 【免费下载链接】Aliens_eye Hunt down 840 social media accounts using AI 项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye
Aliens Eye 是一款 AI 驱动的用户名扫描工具&… · 2026/9/25 2:37:15
【Dify】腾讯云智能字幕解析应用 音视频内容的自动转写和结构化处理已成为内容管理的重要一环。腾讯云SubtitleInfo智能字幕解析工作流,面向各类音视频数据,提供了自动提取、整理字幕信息的高效方案。
本文介绍腾讯云SubtitleInfo智能字幕解析的整体流程设计、节点拆解与应用案例,重点分析如何利用自动化工… · 2026/9/25 2:37:15
【Dify】数据统计分析可视化应用 数据统计分析是理解与利用数据的基础能力,无论是商业、科研还是日常运营,数据洞察已成为必备技能。通过自动化节点协作和可视化技术,数据分析工作流不仅大大简化了操作流程,还提升了分析效率。
本文介绍一种基于自动化节点的统计分析方法,涵盖数据导入、清洗、特征工程、… · 2026/9/25 2:37:15
【Dify】诗句封面生成与语音播报应用 以AI为核心的自动化创作工具已经进入内容生产的各个领域。古诗自动生成、配套视觉封面设计、诗句语音合成等多模态创新,正成为数字内容表达的新方式。
本文介绍一种利用大模型与多种AI工具自动生成古诗、诗句封面与语音播报的完整流程,覆盖主要技术节点及实际操作方法,适合… · 2026/9/25 2:37:15
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37