Arduino 프레임 워크의 일반 메뉴/상호 작용 시스템
완전 자동 또는 사용자 코드 중심 내비게이션 시스템. 이 시스템을 사용하면 모든 입력/출력을 처리하고 사용자 반복의 결과로 사용자 정의 핸들러를 호출 할 수있는 메뉴, 하위 메뉴, 입력 필드 및 기타 반복 객체를 정의 할 수 있습니다. 사용자 기능은 클릭/입력에서 호출 된 단일 조치 또는 초점 인/출력 또는 ENTER/ESC 이벤트에 응답하는 이벤트 중심 기능으로 작동 할 수 있습니다. 이 시스템은 비 차단 폴링 시스템으로 설계되어 동시 작업을 실행할 수 있습니다. 선택적으로 시스템은 반자동 모드에서 작동하여 사용자 코드에서 내비게이션 명령을 발행 할 수 있습니다.
위키를 참조하십시오
# 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, " Blink menu " , Menu::doNothing, Menu::noEvent, Menu::wrapStyle
,FIELD(timeOn, " On " , " ms " , 0 , 1000 , 10 , 1 , Menu::doNothing, Menu::noEvent, Menu::noStyle)
,FIELD(timeOff, " Off " , " ms " , 0 , 10000 , 10 , 1 ,Menu::doNothing, Menu::noEvent, Menu::noStyle)
,EXIT( " <Back " )
);
serialIn serial (Serial);
MENU_INPUTS (in,&serial);
MENU_OUTPUTS (out,MAX_DEPTH
,SERIAL_OUT(Serial)
,NONE // must have 2 items at least
);
NAVROOT (nav,mainMenu,MAX_DEPTH,in,out);
void setup () {
pinMode (LEDPIN, OUTPUT);
Serial. begin ( 115200 );
while (!Serial);
Serial. println ( " Menu 4.x " );
Serial. println ( " Use keys + - * / " );
Serial. println ( " to control the menu navigation " );
}
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 Demo ttgo t-display 멋진 튜토리얼.
https://sites.google.com/site/jmaathuis/arduino/lilygo-ttgo-t-display-esp32/arduinomenu-demo-ttgo-t-display
MVC 인터페이스 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-rooper
Kenwood의 앰프 및 밴드 디코드를 켜기위한 AmplifierControl 절차를 자동화
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 Chanel Piezo MIDI 드럼 박스 LCD 메뉴가있는 MIDI 드럼 박스
https://github.com/sobollion/midi_drums
Balancingrobot
https://github.com/slbarker/balancingrobot
밸브 제어, LCD, 버튼, RTC 및 홀 효과 펄스 리더가있는 Swatili 50L 워터 미터
https://github.com/daniel-leonard-robinson/swatili
Fielduino 하드웨어 PWM 생성기 메뉴를 사용하여 주파수 및 dutty를 선택합니다.
https://github.com/neu-rah/fielduino
하드웨어 장치에 대한 Arduinomultidesktop Multidesktop 개념
https://github.com/dontsovcmc/arduinomultidesktop
SmartGreenhouse
https://github.com/dontsovcmc/smartgreenhouse/tree/master/src
ILI9341을 사용한 Console.Aduino 휴대용 직렬 디버그 콘솔 프로젝트
https://github.com/malachib/console.arduino
Atmel Avr, Atmel Sam, Espressif 32, Espressif 8266, Intel Arc32, Microchip Pic32, Nordic NRF51, Nordic NRF52, ST STM32, Temensy, Ti MSP430
Arduino IDE- 도서관 관리자 (Arduinomenu Library -Rui Azevedo)를 사용하여 설치
플랫폼 - 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
ESP8266 및 ESP32 용 Arduino IDE 호환 그래픽 및 글꼴 라이브러리
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, 128X64, UC1601, SH1106. UC1608, 240x64, UC1610, 160x104, UC1611, 240X64, UC1611, 240X128, UC1701, 128X64, UC1701, 102X64, ST7565, 128X64, ST7565, 128X32, ST7920, 128X64, St7565, 128X32, 192x32, ST7920, 202X32, LD7032, 60x32, PCD8544, 84X48, TLS8204, 84X48, PCF8812, 96X65, KS0108, 128X64, T6963, 128X64, T6963, 128X128, 24063, T6963, 240x128, SBN1661, 122X32, LC7981, 160X80, LC7981, 240X64, LC7981, 240X128, LC7981, 320X64, SSD1351, HT1632, 24X16, FLIPDISK, 28X14, 28X14, 28X16.
U8G2 및 U8X8 장치
https://github.com/olikraus/u8g2_arduino
SSD1305 128X32_NONAME, SSD1305 128X32_NONAME, SSD1305 128X64_ADAFRIUT, SSD1305 128X64_ADAFRUIT, SSD1306 128X64_NONAME, SSD1306 128X64_VCOC0, SSD1306 128X64_ALT, SSD1306 128X64_NONAME, SSD1306 128X64_VCOMH0, SSD1306 128X64_ALT0, SH1106 128X64_NONAME, SH1106 128X64_VCOMH0, SH1106 128X64_WINSTAR, SH1106 128X64_NONOME, SH1106 128x64_vcomh0, SH1106 128x64_winstar, SH1106 72x40_WISE, SH1106 72x40_WISE, SH1106 64X32, SH1106 64X32, SH1107 64X128, SH1107 64X128, SH1107 SOWED_96X96, SH1106, SH1106, SH1107. 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_Noname, SSD1306 64X32_1F, SSD1306 64X32_NONAME, SSD1306 64X32_1F, SSD1306 96X16_ER SSD1309 128X64_NONAME2, SSD1309 128x64_NONAME2, SSD1309 128X64_NONAME0, SSD1309 128X64_NONAME0, SSD1325 NHD_128X64, SSD1325 NHD_128X64, SSD132666. ER_256X32, SSD1326 ER_256X32, SSD1327 SEEED_96X96, SSD1327 SEED_96X96, SSD1327 MIDAS_128X128, SSD1327 MIDAS_128X128, SSD1329 128X96_NONAME, LD7329 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 808 ERC24064. 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_1132X64, JLX12864, ST7567 ENH_DG128064, ST7567 ENH_DG128064I, ST7588 JLX12864, ST7588 JLX12864, ST75256 JLX256128, ST75256 JLX256128, ST75256 JL256 JL256 JLX256 JLX256128. 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, T690624, T69064, LC7981 T6963 240x64, T6963 256x64, T6963 128x64, SSD1322 NHD_256X64, SSD1322 NHD_128X64, SSD1606 172X72, SSD1607 20000, SSD1607 GD_200X200, it. 296x128, IL3820 V2_296X128, SED1330 240X128, RA8835 NHD_240X128, RA8835 320X240, MAX7219 32X8, A2PRINGRING 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
그 로브 RGB LCD I2C 2x16
https://wiki.seeedstudio.com/grove-lcd_rgb_backlight/
웹 브라우저
웹 JSON
websockets
참고 : ESP8266은 웹 인터페이스를 사용하지 않더라도 #include <menuIO/esp8266Out.h> 와 함께 스트리밍 라이브러리가 필요합니다.
출력 드라이버에 따라 중 하나 일 수 있습니다 (둘 다 설치할 수 있음)
직렬 https://www.arduino.cc/en/reference/serial
Quadencoder- PCINT를 사용한 일반 인코더 (내장)
버튼 - 간단한 디지털 키보드 (내장)
일반 키보드 (PCINT 없음) - 디지털 또는 아날로그 키보드 용 구성 가능 (내장)
아날로그 조이스틱
ClickEncoder https://github.com/0xpit/encoder
매트릭스 키패드
http://playground.arduino.cc/code/keypad https://github.com/nullkraft/keypad
PCF8574 기반 I2C MATRIX 키패드 https://github.com/whatnick/i2ckeypad
사용자 정의 입력 호출 메뉴 탐색 API
ESP 장치를 사용할 때 웹 브라우저 (실험)
이 라이브러리는 다음 라이브러리에 따라 다릅니다.
입력 또는 출력 유형에 따라 다른 라이브러리가 필요할 수 있습니다. 기본적으로 장치에 필요한 모든 라이브러리.
더 많은 정보
Wiki 페이지, 문제 또는 r-site.net
오류, 문제 또는 향상 아이디어를보고하십시오. 피드백을 적용합니다. 감사해요.
문제 보고서에서는 입력 및 출력 드라이버 또는 장치 및 대상 플랫폼을 지정하십시오.
Encoder는 이제 설정에서 호출하려면 시작 ()이 필요합니다 (2.x)
입력은 제네릭 스트림에서 읽히고 인코더 및 키보드에 대한 간단한 스트림이 포함되어 있습니다 - 제공 인 엔코더 드라이버는 내부 풀업 및 역 논리를 사용합니다.
인코더 키보드와 인코더 스트림을 혼합하기위한 입력을위한 다중 스트림 패킹 (일반적으로 1 또는 2 키)
InvertfieldKeys 옵션 제거, 이제 특정 Menuin 객체에서 반전이 지원됩니다.
회귀 : 간단한 입력 케이스를 완화해야합니다.
NumValueInput은 Menuin Object로 이동했습니다
이전에 글로벌 옵션 개체에서 NavRoot 추가 옵션
bool nav2D= false ; // not used
bool canExit= true ; // v4.0 moved from global options
bool useUpdateEvent= false ; // if false, use enterEvent when field value is changed.
idx_t inputBurst= 1 ; // limit of inputs that can be processed before output 직렬은 더 이상 입력으로 직접 허용되지 않으며 대신 Serialin을 사용하십시오.
printto 멤버 함수가 변경되었습니다.
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t );에게
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t , idx_t = 0 );이것은 맞춤형 구성 요소에만 영향을 미칩니다
입력은 이제 스트림에서 파생되었지만 입력 클래스 당 필드 축 반전에 대한 플래그 함수를 포함하여 클래스 메뉴에서입니다.
false = 메뉴 계속
true = 종료 메뉴