tcMenu

tcMenu

Arduino和mbed的模块化菜单框架,支持多种输入和IoT控制

tcMenu是一个为Arduino和mbed平台开发的模块化菜单框架,集成了设计器UI、代码生成器和IoT远程控制功能。它支持多种输入方式和显示模块,可用于构建复杂的IoT应用。该框架提供跨平台设计工具,支持往返开发,并能将菜单渲染到本地显示器。tcMenu不仅简化了嵌入式系统的用户界面开发,还为IoT设备提供了灵活的远程管理解决方案。

tcMenuArduinombedIoT菜单库Github开源项目

tcMenu - 一个具有物联网功能的Arduino和mbed菜单库和设计器

tcMenu是一个为Arduino和mbed设计的菜单库和设计器UI,它的模块化结构足以支持不同的输入方法、显示模块和物联网/远程控制方法。tcMenu不仅仅是一个Arduino菜单库,它更像是一个用于构建物联网应用的框架,包括在本地显示器上渲染菜单的能力。

首先,你可以使用每个版本中都包含的菜单设计器UI,它适用于Windows、macOS和Linux。设计器UI负责构建核心菜单代码,并将任何回调函数放入你的草图文件中。可以将设计器想象成桌面领域的表单设计器。此外,它对草图文件是非破坏性的,因此在开发过程中可以反复使用。

TheCodersCorner.com投入了大量时间和资源来开发这个被成千上万用户使用的开源产品。发布UI、租用服务器空间的成本比你想象的要高。请考虑至少通过使用赞助项目的任一选项来使这个项目对我来说达到成本中和。我们有一些商业服务,但由于我全职工作,这些服务目前非常有限。

在GitHub上赞助我(这个仓库)。

<a href="https://www.buymeacoffee.com/davetcc" target="_blank"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/d1972630-4500-4ee5-af0c-7c0155343639.png" alt="给我买杯咖啡" style="height: 60px !important;width: 217px !important;" ></a>

在任何分支中,请确保此处以上的所有文本保持不变。

文档

UI用户指南、入门和其他文档

完整的API嵌入式文档

YouTube入门教程第1部分

问题、社区论坛和支持

社区问题可以在此仓库的讨论区或Arduino论坛上提出。我们通常会回答大多数社区问题,但回复可能不会很及时。在向社区发帖之前,请确保你已经在一个简单的草图中重现了问题,并请考虑至少进行一次性捐赠(参见上面的链接):

Windows、Linux和MacOS的打包安装

可以直接从发布页面获取发布版本,有签名的Windows版本、公证的macOS版本和Linux包:

获取最新的TcMenu Designer发布版

虽然大多数人会使用上述包,但也可以从源代码构建,完整说明在tcMenuGenerator文件夹中。我们要求你只为自己使用而从源代码构建。

以下是设计器UI的几个截图 - 可在Windows、macOS和Linux上运行:

Arduino的菜单设计器

为急于上手的人从UI生成菜单

如果你不想阅读上面的文档,这里提供一个快速入门。打开tcMenu Designer UI,在"Edit -> General Settings"中设置你的Arduino目录,然后检查"Library Versions"标签以确保嵌入式库已安装/更新。

一旦定位到tcMenu库目录,"File -> Examples"菜单将加载所有示例。加载与你拥有的硬件最接近的示例。打开后,你会在左侧看到菜单树结构,选中时右侧显示每个菜单的详细信息。菜单树下方是管理菜单树中项目的按钮。

一旦你使用UI按照自己的喜好安排了菜单,从菜单中选择Code -> ID & Eeprom analyser检查是否有任何重叠范围,然后从菜单中选择Code -> Generate,选择适当的硬件配置并点击生成。 生成器也能够进行循环开发 - 大部分代码都被卸载到关联的CPP和头文件中。

TcMenu仍然支持带有LiquidCrystal dfRobot屏蔽或Ssd1306Ascii的Uno

我们努力保持TcMenu对Uno的可用性。然而,我们能做的有限。你可以在Uno上运行完整的菜单,但不太可能适配远程以太网支持。对于任何包含远程控制支持的内容,我们建议至少64K的闪存。在硬件支持的情况下,我们将菜单项存储在静态RAM中,以进一步减少板上内存占用。

TcMenu所需的库

TcMenu支持不同的开发板和构建工具。它可以直接用于platformIO和Arduino IDE。它也应该适用于大多数mbed工具,因为这些库可以在mbed上编译。

开始使用的最简单方法是使用库管理器安装tcMenu库,所有依赖项都会自动安装。但是,如果你喜欢手动管理库,以下是它们仓库的链接:

用于Arduino和mbed的嵌入式库

根据显示屏可能需要的其他库

主要Java源代码位置

2.0及以后版本的设计器UI代码库和插件位于此仓库。设计器、库和附带的插件都采用Apache许可证。

输入和显示技术

以下是我们的菜单库2.0版本在Arduino、ESP和mbed上的几个示例:

在ESP32上运行的Arduino菜单,带有ILI9341和触摸屏

在ESP32上运行的暗模式Arduino菜单,带有ILI9341和触摸屏

在ESP8266上运行的OLED Arduino菜单,带有SH1106和触摸屏

在AVR上运行的LCD Arduino菜单

支持旋转编码器、数字/模拟摇杆和触摸按钮

我们完全支持基于旋转编码器的输入,在许多情况下无需任何额外组件。你甚至可以在PCF8574、AW9523或MCP23017上连接旋转编码器。此外,我们甚至支持多个编码器。

你可以配置3个或更多按钮,使用基于按钮的旋转编码器模拟(上、下和确定按钮,可选左右)在板载引脚、i2c扩展器、移位寄存器上工作,就像数字摇杆一样。DfRobot模拟输入式按钮。DfRobot或其他模拟阶梯(可在代码中配置)。

我们还支持ESP32触摸板接口,允许使用多达9个触摸按钮进行菜单输入,它们目前配置为数字摇杆。

支持矩阵键盘

可配置大小和键组合的矩阵键盘。预设4x3和4x4布局选项。大多数核心功能可与矩阵键盘一起使用。

支持触摸屏

从2.0版本开始,我们将支持触摸屏界面。我们已经构建了支持,以便日后可以添加多种设备,但首先我们将支持使用4个输入的电阻式触摸屏,以及STM32 BSP提供的触摸屏接口。

在LiquidCrystal上绘图(I2C或直接连接)

我们有一个LiquidCrystal的分支版本,适用于20x4或16x2显示器 - 可以直接连接,通过I2C扩展板(PCF8574、MCP23017、AW9523)或移位寄存器连接。我们的库版本与任务管理器更好地集成,频繁让出CPU时间。

Adafruit_GFX集成支持多种显示器

大多数兼容Adafruit_GFX的库都可以与tcMenu一起使用,我们已经测试过以下TFT显示器:ILI9341、ST7735以及Nokia 5110显示器。我们甚至有一个快速启动选项,帮助您开始使用这个选项。

对于mbed RTOS 5/6,我们有一个自定义的Adafruit_GFX OLED驱动程序 https://github.com/TcMenu/Adafruit-GFX-mbed-fork ,支持SSD1306和SH1106。

U8G2集成用于单色显示器

我们可以使用这个库在大多数带缓冲的显示器上进行渲染。已测试过SSD1306和SH1106等OLED设备。我们甚至可以提供一个自定义的I2C字节函数,它频繁地让出CPU时间给任务管理器,使其与任务管理器更好地配合,并在ESP板上正确地让出CPU时间。

TFT_eSPI和STM32 LTDC帧缓冲集成

从2.0版本开始,我们将支持TFT_eSPI和STM32 LTDC基于帧缓冲的BSP函数,以提供非常高性能的显示渲染,我们已经在ESP32和STM32F429上测试了这两个选项,结果非常令人印象深刻。

无本地输入或显示技术

如果您的应用不需要任何本地显示或输入技术,您可以设置tcMenu,使其没有本地输入或显示,或者您可以在设备上设置单个开关或LED,并手动管理它。在这种情况下,您将使用下面的IoT支持来远程管理设备。

在以太网、WiFi、串口和蓝牙/BLE上的远程IoT支持

这个菜单库提供完整的IoT远程控制,目前支持串口和以太网。我们已经测试了USB串口和蓝牙的串口支持,两者都运行良好。完整的菜单结构通过线路传输,Java API将其作为可操作的树结构提供。还为其他语言定义了协议。除此之外,菜单可以在设备上非常容易地以编程方式操作。

  • RS232端点支持使用Java API对菜单项进行完全控制 - 包含示例应用。
  • 以太网端点支持Ethernet2库或UipEthernet。
  • 用于mbed的以太网端点支持mbed套接字实现。
  • 支持基于ESP8266和ESP32的WiFi。

tcMenu的现成API和远程控制UI - embedCONTROL

TcMenu从一开始就为远程控制而构建,有几种不同的产品,我们将依次介绍每一种,以及它们的预期用例:

Java embedCONTROL UI

这个桌面UI可以按照提供的说明轻松地从源代码构建,也为那些想要直接使用的人打包了桌面版本。这个产品基于JavaFX构建,它有一个自动化UI,可以为任何菜单应用自动构建,同时为更高级的情况提供表单支持。

[https://www.thecoderscorner.com/products/arduino-libraries/tc-menu/tcmenu-remote-connection-arduino-desktop/]

Java / JVM API

有一个用于远程访问菜单的Java API,源代码包含JavaDoc以帮助入门。在上述仓库中有一个使用它构建的JavaFX UI示例。在您的maven构建文件中包含以下内容:

    <dependency>
        <groupId>com.thecoderscorner.tcmenu</groupId>
        <artifactId>tcMenuJavaAPI</artifactId>
    </dependency>

C# API

C# API相对完整,可以做Java API能做的大部分事情,经过充分测试且稳定。

仓库:https://github.com/TcMenu/tcmenu-dotnet-sdk

Python API

现在有了一个Python API,感谢@vzahradnik - https://github.com/TcMenu/tcmenu-python-sdk

JavaScript和TypeScript

还有一个早期版本的TypeScript API,可以在任何JavaScript环境中使用。https://github.com/TcMenu/embedcontrolJS 。将来,我们可能会更好地将这个API打包到包管理器中。 还有一个基于网络服务器/HTML的应用程序可供部署,但它仅在具有嵌入式Java支持的树莓派上才能正常工作。它提供的功能有些有限。经过仔细评估,我们目前决定不支持ESP32和STM32用于此应用程序,因为它对它们来说太大了。

使用CLI操作菜单

TcMenu Designer的最新版本包含一个CLI,支持创建项目、添加和删除项目、验证和生成菜单。从CLI构建和生成菜单

加载和保存菜单项

tcMenu还可以将菜单项状态保存到EEPROM存储器中。在AVR上,通常是内部EEPROM;在32位板上,通常是AT24 i2c EEPROM。

开发者设置

查看开发者指南

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多