Menu generik/sistem interaktivitas untuk kerangka Arduino
Sistem navigasi yang digerakkan oleh Kode Pengguna atau Kode Pengguna. Dengan sistem ini Anda dapat mendefinisikan menu, submenus, bidang input, dan objek iterasi lainnya yang berhubungan dengan semua input/output dan dapat memanggil penangan yang ditentukan pengguna sebagai hasil dari iterasi pengguna. Fungsi pengguna dapat dioperasikan sebagai tindakan tunggal yang dipanggil pada klik/enter atau sebagai fungsi yang didorong oleh peristiwa yang menanggapi fokus masuk/keluar atau masuk/ESC. Sistem ini dirancang sebagai sistem pemungutan suara yang tidak memblokir, memungkinkan tugas bersamaan untuk dijalankan. Secara opsional sistem dapat dioperasikan dalam mode semi-otomatis, mengeluarkan perintah navigasi dari kode pengguna.
Lihat 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, " 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));
}Plugin adalah kombinasi menu khusus atau perilaku dan/atau gambar yang disesuaikan.
Beberapa plugin mungkin spesifik platform atau memerlukan beberapa perangkat keras.
Beberapa aplikasi/tutorial menggunakan Arduinomenu, (versi saat ini dan lebih lama).
Apakah Anda memiliki yang lain? Tolong beri tahu saya di gitter atau email saya.
Script Arduino untuk sensor suhu dan pengatur waktu. Ini memungkinkan untuk menyalakan pemanas dan cahaya sesuai dengan jadwal
https://github.com/vikulin/lcd_lat
Project-glasskilncontroller kiln yang dipanaskan secara elektrik untuk membuat "gelas hangat"
https://arduinoinfo.mywikis.net/wiki/project-glasskilncontroller
ARDUINOMENU DEMO TTGO T-DISPLAY Tutorial yang luar biasa.
https://sites.google.com/site/jmaathuis/arduino/lilygo-ttgo-t-display-esp32/arduinomenu-demo-ttgo-t-display
Tutorial MVC-Interface Arduinomenu
https://zaragozamakerspace.com/index.php/courses/mvc-interface/
ARDUINO Pemotong Tapisi Tembaga Otomatis
https://www.thingiverse.com/thing:3557719
Muat ulang pengukur level hopper bubuk dan alarm
https://github.com/nathandarnell/reloading-powder-hopper-fevel-gauge-and-alarm
Tester & Monitor ServoBox
https://github.com/jarkman/servobox
Panobot robot panorama
https://github.com/robertfach/panobot
Teensy-Midi-Looper MIDI Sequencer Berbasis Midi
https://github.com/newdigate/teensy-midi-looper
Prosedur Otomatis AmplifierControl untuk Mengaktifkan/Mati/Mati Penguat dan Band Decode Kenwood
https://github.com/petrlab/amplifierControl
SPNA An Arduino Single Port Network Analyzer (SPNA)
https://github.com/tczerwonka/spna
Lrduino dalam Sistem Multi Gauge Mobil - STM32, SSD1306, MAX31856, ADXL345, ELM327
https://github.com/bennehboy/lrduino
Lrduinotd5 dalam sistem multi -gauge mobil - STM32, SSD1306, MAX31856, ADXL345, L9637D, TD5 ECU
https://github.com/bennehboy/lrduinotd5
Build Radio Internet Thom- Radio
https://github.com/evfool/thom-radio
Midi_drums 7 chanel piezo midi drum box dengan menu di lcd
https://github.com/sobollion/midi_drums
BalancingRobot
https://github.com/slbarker/balancingrobot
SWATILI 50L Water Meter Dengan Kontrol Katup, LCD, Tombol, RTC dan Hall Effect Pulse Reader
https://github.com/daniel-leonard-robinson/swatili
Generator PWM Perangkat Keras Fielduino Menggunakan Menu untuk Memilih Frekuensi dan Dutty.
https://github.com/neu-rah/fielduino
Konsep Multidesktop Arduinomultidesktop untuk Perangkat Perangkat Keras
https://github.com/dontsovcmc/arduinomultidesktop
SmartGreenhouse
https://github.com/dontsovcmc/smartgreenhouse/tree/master/src
Console.arduino Proyek Konsol Serial Debug Portabel Menggunakan 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 - Instal Menggunakan Manajer Perpustakaan (Perpustakaan Arduinomenu - Rui Azevedo)
Platformio - http://platformio.org/lib/show/1468/arduinomenu%20library
Serial
https://www.arduino.cc/en/reference/serial
Perpustakaan LCD Arduino Standar
https://www.arduino.cc/en/reference/liquidcrystal
LCD F Malpartida
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/home
Driver Matthias Hertel PCF8574
https://github.com/matertel/liquidcrystal_pcf8574
Perangkat TFT Arduino
https://www.arduino.cc/en/guide/tft
SSD1306ASCII
https://github.com/greiman/ssd1306ascii
Tft_espi
Perpustakaan Grafik dan Fonts yang kompatibel dengan IDE Arduino untuk ESP8266 dan ESP32
https://github.com/bodmer/tft_espi
Driver TFT_HX8357
https://github.com/bodmer/tft_hx8357
Perangkat GFX Adafruit
https://github.com/adafruit/adafruit-gfx-library
Perangkat UTFT
http://www.rinkydinkelectronics.com/library.php?id=51
Perangkat u8glib
https://github.com/olikraus/u8glib_arduino
SSD1306, 128X64, SSD1306, 128x32, SSD1306, 64x48, SSD1309, 128x64, SSD1322, 256x64, SSD1325, 128x64, SSD1327, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x96, 96x64, 96x64, UC1608, 240x64, UC1610, 160x104, UC1611, 240x64, UC1611, 240x128, UC1701, 128x64, UC1701, 102x64, ST7565, 128x64, ST7565, 122x64, ST7565, 128x64, ST7565, 1282, 1282, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 192x32, ST7920, 202x32, LD7032, 60x32, PCD8544, 84x48, TLS8204, 84x48, T6963, 128x64, T6963, 128x64, T6963, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x64, 128x T6963, 240x128, SBN1661, 122x32, LC7981, 160x80, LC7981, 240x64, LC7981, 240x128, LC7981, 320x64, SSD1351, HT1632, 24x16, Flipdisk, 28x14, Virtual Screen Device
Perangkat U8G2 dan U8X8
https://github.com/olikraus/u8g2_arduino
SSD1305 128X32_NONAME, SSD1305 128X32_NONAME, SSD1305 128X64_ADAFRUIT, SSD1305 128X64_ADAFRUIT, SSD1306 128X64_NONAME, SSD1306 128X64_VCOC64_VO864_NONAME, SSD1306 128X64_VCOC64_VCOC64_VCOC664_NONAME, SSD1306 128X64_VCOC64_VCOC64_VCOC64_VCOC64_VCOC64_N330 SSD1306 128X64_NONAME, SSD1306 128X64_VCOMH0, SSD1306 128X64_ALT0, SH1106 128X64_NONAME, SH1106 128X64_VCOMH0, SH1106 128X64_WINStar, SH11066666626 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 64, SSD1306 64X48_ER, SSD1306 648, SSD1306 64X48_ER, SSD1306, SSD1306, SSD1306 64X48_ER, SSD1306, SSD1306, SSD1306, SSD1306, SSD1306, SSD1306, SSD1306, SSD1306, SSD1306, SSD130, SSD130, SSD130, SSD130. 48x64_winstar, ssd1306 48x64_winstar, ssd1306 64x32_noname, ssd1306 64x32_1f, ssd1306 64x32_noname, ssd1306 64x32_1f, SSD1306, SSD1306 64x32_1F, SSD1306, SSD1306 64x32_1F, SSD1306, SSD1306, SSD1306 64x32_1F, SSD130666666606 64x32_1F, SSD1306, SSD1306 64X32_1F, SSD1306, SSD1306 64X32_1F, SSD1306, SSD1306 64X32_1F, SSD1306, SSD1306 64x32_ SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME0, SSD1309 128X64_NONAME0, SSD1325 NHD_128X64, SSD1325 NHD128, NHD_128X64, SSD1325 NHD12828 ER_256X32, SSD1326 ER_256X32, SSD1327 SEEED_96X96, SSD1327 SEEED_96X96, SSD1327 MIDAS_128X128, SSD1327 MIDAS_128x128, SSD1327 MIDAS_128X128, SSD1327.128x128, ssd1327 60x32, LD7032 60x32, ST7920 192x32, ST7920 192x32, ST7920 192x32, ST7920 128x64, ST7920 128x64, ST7920 128x64, LS013B7DH03 128x128, UCOG171, LS013B7DH03 128X128, UC128, UCOG13B7DH03 128X128, UC128, UC128, UCOG13B7DH03 128X128, UC128, UCOG13B7DH03 128X128, UCOG128, UCOG13B7DH03 128X128, UCOG128, 128X128, UCOG13B7DH03 128X128, 128X128, 128x Mini12864, PCD8544 84x48, PCF8812 96x65, HX1230 96x68, UC1604 JLX19264, UC1604 JLX19264, UC1608 ERC24064, UC1608 ERC24068 ERC24064, UC1608 UC24068 UC1608 ERC240120, UC1608 240x128, UC1608 240x128, UC1638 160x128, UC1610 EA_DOGXL160, UC1610 EA_DOGXL160, UC1611 EA_DOGM240 EA_DOGXL160, UC1611 EA_DOGMM240 EA_DOGXL160, UC1611 EA_DOGMM240 EA_DOGXL160, UC1611 EA_DOGMM240 EA_DOGXL240, UC1611 EA_DOGXL240, UC1611 EW50850, UC1611 EW50850, ST7565 EA_DOGM128, ST7565 64128N, ST7565 ZOLEN_128X64, ST7565 LM, ST7565 ZOLEN_128X64, ST7565, ST760565 ST7565 ERC12864, ST7565 NHD_C12864, ST7565 JLX12864, ST7565 NHD_C12832, UC1601 128X32, UC1601 128X32, ST7565 EA_DOGM132, ST7567 PI_132X64, ST7567 JLX12864, ST7567 ENGR_DG128064, ST7567 ENGR_DG128064I, ST7588 JLX12864, ST7588 JLX12864, ST75256 JLX256128, ST755256 JLX281286128, ST75566 JLX256128, ST75556 JLX256128, ST75556 JLX256128, ST7552566 JLX256128, ST755256666 ST75256 JLX256160, ST75256 JLX240160, ST75256 JLX240160, ST75256 JLX25664, ST75256 JLX2564, ST75256 JLX172104, ST75664, ST75256 JLX172104, ST75664, ST75256 JLX172104, ST7564, ST75256 JLX172104, TG12864R, IST3020 ERC19264, SBN1661 122x32, SED1520 122x32, KS0108, TEGI, KS0108 ERM19264, LC7981 160x80, LC7981 160x160, LC7981 160x80, LC7981 160x160, LC7981, LC7981 160X160, LC7981, LC7981 160X160, LC7981, 160x160, LC7981, LC7981 160x81, LC7981 160x80, 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, A2Printer 384x240
Perangkat ucglib
https://github.com/olikraus/ucglib_arduino
ST7735, ILI9163, ILI9325, ILI9341, ILI9486, LD50T6160, PCF8833, SEPS225, SSD1331, SSD1351, HX8352C
Terminal ANSI serial
https://github.com/neu-rah/ansistream
Grove RGB LCD I2C 2x16
https://wiki.seeedstudio.com/grove-lcd_rgb_backlight/
Browser web
Web Json
Websockets
Catatan: ESP8266 akan membutuhkan perpustakaan streaming bahkan jika tidak menggunakan antarmuka web, bersama dengan #include <menuIO/esp8266Out.h>
Tergantung pada driver output Anda, itu mungkin salah satu (dapat menginstal keduanya)
Serial https://www.arduino.cc/en/reference/serial
Quadencoder - Encoder generik menggunakan pcint (builtin)
Tombol - Keyboard Digital Sederhana (Builtin)
Keyboard Generik (Tanpa PCINT) - Dapat dikonfigurasi untuk keyboard digital atau analog (builtin)
Joystick analog
Clickencoder https://github.com/0xpit/encoder
Keypad matriks
http://playground.arduino.cc/code/keypad https://github.com/nullkraft/keypad
PCF8574 Berbasis Key Matrix Keypad https://github.com/whatnick/i2ckeypad
Input yang ditentukan Pengguna Menu Navigasi API
Browser Web (Eksperimental) Saat menggunakan perangkat ESP
Perpustakaan ini tergantung pada perpustakaan berikut:
Bergantung pada jenis input atau output, pustaka lain mungkin diperlukan. Pada dasarnya perpustakaan yang diperlukan untuk perangkat Anda.
info lebih lanjut di
halaman wiki, masalah atau r-site.net
Harap laporkan kesalahan, masalah atau ide peningkatan, saya menghargai umpan baliknya. Terima kasih.
Laporan pada masalah, harap tentukan driver atau perangkat input dan output serta platform target.
Encoder sekarang perlu dimulai () untuk dipanggil pada pengaturan (2.x)
Input dibaca dari aliran generik, termasuk aliran sederhana untuk encoder dan keyboard - yang disediakan driver encoder menggunakan pull -up internal dan logika terbalik
Multiple Stream Packing untuk Input ke Mix Encoder Stream dengan Keyboard Encoder (biasanya 1 atau 2 tombol)
Opsi InvertFieldKeys Dihapus, Inversi sekarang didukung oleh objek menuin tertentu.
Regresi: Masih diperlukan untuk meringankan kasus input sederhana.
numValueInput dipindahkan ke objek menuin
Opsi tambahan navroot , sebelumnya pada objek opsi global
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 Serial tidak lagi diterima sebagai input secara langsung, gunakan serialin sebagai gantinya
Fungsi anggota printto diubah dari:
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t );ke
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t , idx_t = 0 );Ini hanya memengaruhi komponen yang disesuaikan
Input sekarang dari kelas menuin, berasal dari aliran tetapi termasuk fungsi bendera untuk inversi sumbu bidang per kelas input.
false = lanjutkan menu
true = menu keluar