Arduino框架的通用菜单/交互系统
全自动或用户代码驱动的导航系统。 使用此系统,你可以定义菜单、子菜单、输入字段和其他迭代对象,它们处理所有输入/输出,并可以根据用户迭代调用用户定义的处理程序。 用户函数可以作为单一动作在点击/输入时调用,也可以作为事件驱动函数响应焦点进入/离开或输入/退出事件。 该系统设计为非阻塞轮询系统,允许并发任务运行。 可选地,系统可以在半自动模式下操作,从用户代码发出导航命令。
查看wiki
#include <menu.h> #include <menuIO/serialOut.h> #include <menuIO/chainStream.h> #include <menuIO/serialIn.h> using namespace Menu; #define LEDPIN LED_BUILTIN #define MAX_DEPTH 1 unsigned int timeOn=10; unsigned int timeOff=90; MENU(mainMenu, "闪烁菜单", Menu::doNothing, Menu::noEvent, Menu::wrapStyle ,FIELD(timeOn,"开启","毫秒",0,1000,10,1, Menu::doNothing, Menu::noEvent, Menu::noStyle) ,FIELD(timeOff,"关闭","毫秒",0,10000,10,1,Menu::doNothing, Menu::noEvent, Menu::noStyle) ,EXIT("<返回") ); serialIn serial(Serial); MENU_INPUTS(in,&serial); MENU_OUTPUTS(out,MAX_DEPTH ,SERIAL_OUT(Serial) ,NONE//必须至少有2个项目 ); NAVROOT(nav,mainMenu,MAX_DEPTH,in,out); void setup() { pinMode(LEDPIN, OUTPUT); Serial.begin(115200); while(!Serial); Serial.println("菜单 4.x"); Serial.println("使用键 + - * /"); Serial.println("来控制菜单导航"); } bool blink(int timeOn,int timeOff) {return millis()%(unsigned long)(timeOn+timeOff)<(unsigned long)timeOn;} void loop() { nav.poll(); digitalWrite(LEDPIN, blink(timeOn,timeOff)); }
插件是特定的菜单组合或项目自定义行为和/或绘制。
某些插件可能是特定平台或需要某些硬件。
一些使用ArduinoMenu的应用/教程(当前和旧版本)。
你有其他应用吗?请在gitter上告诉我或发邮件给我。
温度传感器和定时器的Arduino脚本。 它允许根据计划开启加热器和灯光
https://github.com/vikulin/LCD_LAT
Project-GlassKilnController 用于制作"温玻璃"的电热窑炉
https://arduinoinfo.mywikis.net/wiki/Project-GlassKilnController
ArduinoMenu演示TTGO T-Display 精彩教程。
https://sites.google.com/site/jmaathuis/arduino/lilygo-ttgo-t-display-esp32/arduinomenu-demo-ttgo-t-display
mvc-interface ArduinoMenu教程
https://zaragozamakerspace.com/index.php/courses/mvc-interface/
Arduino自动铜带切割机
https://www.thingiverse.com/thing:3557719
装药粉料斗水平仪和 警报
https://github.com/nathandarnell/Reloading-Powder-Hopper-Level-Gauge-and-Alarm
ServoBox 舵机测试仪和监视器
https://github.com/jarkman/ServoBox
PANOBOT 全景机器人
https://github.com/RobertFach/panobot
teensy-midi-looper 基于微控制器的midi表演音序器
https://github.com/newdigate/teensy-midi-looper
AmplifierControl 自动化开/关功放和Kenwood波段解码的程序
https://github.com/petrlab/AmplifierControl
spna Arduino单端口网络分析仪 (SPNA)
https://github.com/tczerwonka/spna
LRDuino 车载多功能仪表系统 - STM32, SSD1306, MAX31856, ADXL345, ELM327 https://github.com/BennehBoy/LRDuino
LRDuinoTD5 车载多功能仪表系统 - STM32, SSD1306, MAX31856, ADXL345, L9637D, TD5 ECU https://github.com/BennehBoy/LRDuinoTD5
thom-radio 互联网收音机制作 https://github.com/evfool/thom-radio
MIDI_drums 7通道压电MIDI鼓机带LCD菜单 https://github.com/Sobollion/MIDI_drums
BalancingRobot https://github.com/SLBarker/BalancingRobot
swatili 50升水表,带阀门控制、LCD、按钮、RTC和霍尔效应脉冲读取器 https://github.com/daniel-leonard-robinson/swatili
Fielduino 硬件PWM发生器,使用菜单选择频率和占空比 https://github.com/neu-rah/Fielduino
ArduinoMultiDesktop 硬件设备的多桌面概念 https://github.com/dontsovcmc/ArduinoMultiDesktop
SmartGreenHouse https://github.com/dontsovcmc/SmartGreenHouse/tree/master/src
console.arduino 使用ILI9341的便携式串行调试控制台项目 https://github.com/malachib/console.arduino
Atmel AVR, Atmel SAM, Espressif 32, Espressif 8266, Intel ARC32, Microchip PIC32, Nordic nRF51, Nordic nRF52, ST STM32, Teensy, TI MSP430
Arduino IDE - 使用库管理器安装(ArduinoMenu库 - Rui Azevedo)
Platformio - http://platformio.org/lib/show/1468/ArduinoMenu%20library
串口
https://www.arduino.cc/en/Reference/Serial
标准Arduino LCD库
https://www.arduino.cc/en/Reference/LiquidCrystal
F Malpartida的LCD库
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
Matthias Hertel PCF8574驱动
https://github.com/mathertel/LiquidCrystal_PCF8574
Arduino TFT设备
https://www.arduino.cc/en/Guide/TFT
SSD1306Ascii
https://github.com/greiman/SSD1306Ascii
TFT_eSPI
兼容Arduino IDE的ESP8266和ESP32图形和字体库 https://github.com/Bodmer/TFT_eSPI
TFT_HX8357驱动
https://github.com/Bodmer/TFT_HX8357
Adafruit的GFX设备
https://github.com/adafruit/Adafruit-GFX-Library
UTFT设备
http://www.rinkydinkelectronics.com/library.php?id=51
U8glib设备
https://github.com/olikraus/U8glib_Arduino
SSD1306, 128x64, SSD1306, 128x32, SSD1306, 64x48, SSD1309, 128x64, SSD1322, 256x64, SSD1325, 128x64, SSD1327, 96x96, SH1106, 128x64, UC1601, 128x32, UC1608, 240x64, UC1610, 160x104, UC1611, 240x64, UC1611, 240x128, UC1701, 128x64, UC1701, 102x64, ST7565, 128x64, ST7565, 128x32, ST7920, 128x64, ST7920, 192x32, ST7920, 202x32, LD7032, 60x32, PCD8544, 84x48, TLS8204 , 84x48, PCF8812 , 96x65, KS0108 , 128x64, T6963, 128x64, T6963, 128x128, T6963, 240x64, T6963, 240x128, SBN1661, 122x32, LC7981, 160x80, LC7981, 240x64, LC7981, 240x128, LC7981, 320x64, SSD1351, HT1632, 24x16, Flipdisk, 28x14, 虚拟屏幕设备
U8G2和U8x8设备
https://github.com/olikraus/U8g2_Arduino SSD1305 128X32无名称,SSD1305 128X32无名称,SSD1305 128X64 ADAFRUIT,SSD1305 128X64 ADAFRUIT,SSD1306 128X64无名称,SSD1306 128X64 VCOMH0,SSD1306 128X64 ALT0,SSD1306 128X64无名称,SSD1306 128X64 VCOMH0,SSD1306 128X64 ALT0,SH1106 128X64无名称,SH1106 128X64 VCOMH0,SH1106 128X64 WINSTAR,SH1106 128X64无名称,SH1106 128X64 VCOMH0,SH1106 128X64 WINSTAR,SH1106 72X40 WISE,SH1106 72X40 WISE,SH1106 64X32,SH1106 64X32,SH1107 64X128,SH1107 64X128,SH1107 SEEED 96X96,SH1107 SEEED 96X96,SH1107 128X128,SH1107 128X128,SH1122 256X64,SH1122 256X64,SSD1306 128X32 UNIVISION,SSD1306 128X32 UNIVISION,SSD1306 64X48 ER,SSD1306 64X48 ER,SSD1306 48X64 WINSTAR,SSD1306 48X64 WINSTAR,SSD1306 64X32无名称,SSD1306 64X32 1F,SSD1306 64X32无名称,SSD1306 64X32 1F,SSD1306 96X16 ER,SSD1306 96X16 ER,SSD1309 128X64无名称2,SSD1309 128X64无名称2,SSD1309 128X64无名称0,SSD1309 128X64无名称0,SSD1325 NHD 128X64,SSD1325 NHD 128X64,SSD1326 ER 256X32,SSD1326 ER 256X32,SSD1327 SEEED 96X96,SSD1327 SEEED 96X96,SSD1327 MIDAS 128X128,SSD1327 MIDAS 128X128,SSD1329 128X96无名称,LD7032 60X32,LD7032 60X32,ST7920 192X32,ST7920 192X32,ST7920 192X32,ST7920 128X64,ST7920 128X64,ST7920 128X64,LS013B7DH03 128X128,UC1701 EA DOGS102,UC1701 MINI12864,PCD8544 84X48,PCF8812 96X65,HX1230 96X68,UC1604 JLX19264,UC1604 JLX19264,UC1608 ERC24064,UC1608 ERC24064,UC1608 ERC240120,UC1608 ERC240120,UC1608 240X128,UC1608 240X128,UC1638 160X128,UC1610 EA DOGXL160,UC1610 EA DOGXL160,UC1611 EA DOGM240,UC1611 EA DOGM240,UC1611 EA DOGXL240,UC1611 EA DOGXL240,UC1611 EW50850,UC1611 EW50850,ST7565 EA DOGM128,ST7565 64128N,ST7565 ZOLEN 128X64,ST7565 LM6059,ST7565 LX12864,ST7565 ERC12864,ST7565 NHD C12864,ST7565 JLX12864,ST7565 NHD C12832,UC1601 128X32,UC1601 128X32,ST7565 EA DOGM132,ST7567 PI 132X64,ST7567 JLX12864,ST7567 ENH DG128064,ST7567 ENH DG128064I,ST7588 JLX12864,ST7588 JLX12864,ST75256 JLX256128,ST75256 JLX256128,ST75256 JLX256160,ST75256 JLX256160,ST75256 JLX240160,ST75256 JLX240160,ST75256 JLX25664,ST75256 JLX25664,ST75256 JLX172104,ST75256 JLX172104,NT7534 TG12864R,IST3020 ERC19264,SBN1661 122X32,SED1520 122X32,KS0108 128X64,KS0108 ERM19264,LC7981 160X80,LC7981 160X160,LC7981 240X128,T6963 240X128,T6963 240X64,T6963 256X64,T6963 128X64,SSD1322 NHD 256X64,SSD1322 NHD 128X64,SSD1606 172X72,SSD1607 200X200,SSD1607 GD 200X200,IL3820 296X128,IL3820 V2 296X128,SED1330 240X128,RA8835 NHD 240X128,RA8835 320X240,MAX7219 32X8,A2打印机 384X240
UCGLib设备
https://github.com/olikraus/Ucglib_Arduino
ST7735, ILI9163, ILI9325, ILI9341, ILI9486, LD50T6160, PCF8833, SEPS225, SSD1331, SSD1351, HX8352C
串行ANSI终端
https://github.com/neu-rah/AnsiStream
Grove RGB LCD I2C 2x16
https://wiki.seeedstudio.com/Grove-LCD_RGB_Backlight/
Web浏览器
Web JSON
Websockets
注意: 即使不使用Web界面,ESP8266也需要流媒体库,并且需要包含 #include <menuIO/esp8266Out.h>
根据您的输出驱动程序,可能需要以下之一(可以同时安装两者)
串行 https://www.arduino.cc/en/Reference/Serial
四相编码器 - 使用PCINT的通用编码器(内置)
按钮 - 简单数字键盘(内置)
通用键盘(无PCINT) - 可配置用于数字或模拟键盘(内置)
模拟摇杆
ClickEncoder https://github.com/0xPIT/encoder
矩阵键盘 http://playground.arduino.cc/Code/Keypad https://github.com/Nullkraft/Keypad
基于PCF8574的I2C矩阵键盘 https://github.com/whatnick/i2ckeypad
用户定义的输入调用菜单导航API
使用ESP设备时的Web浏览器(实验性)
该库依赖于以下库:
根据输入或输出的类型,可能需要其他库。基本上是您的设备所需的任何库。
更多信息请参阅
请报告错误、问题或改进想法,我很感谢反馈。谢谢。
在问题报告中,请指明输入和输出驱动程序或设备以及目标平台。
编码器现在需要在setup中调用begin()(2.x)
从通用流读取输入,包括简单的编码器和键盘流 - 提供的编码器驱动程序使用内部上拉和反向逻辑
多个流打包用于输入,以混合编码器流和编码器键盘(通常1或2个键)
<del>invertFieldKeys选项已删除,反转现在由特定的menuIn对象支持。</del>
回归:仍需要简化简单输入情况。
numValueInput移至menuIn对象
navRoot额外选项,之前在全局选项对象上
bool nav2D=false;//未使用 bool canExit=true;//v4.0从全局选项移动 bool useUpdateEvent=false;//如果为false,则在字段值更改时使用enterEvent。 idx_t inputBurst=1;//可以在输出之前处理的输入限制
不再直接接受Serial作为输入,请使用serialIn代替
printTo成员函数从:
Used printTo(navRoot&,bool,menuOut&,idx_t,idx_t);
更改为:
Used printTo(navRoot&,bool,menuOut&,idx_t,idx_t,idx_t=0);
这应该只影响自定义组件
输入现在来自menuIn类,派生自Stream,但包括每个输入类的字段轴反转标志函数。
false = 继续菜单
true = 退出菜单
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号