Menu générique / système d'interactivité pour le cadre Arduino
Système de navigation complete ou basé sur le code utilisateur. Avec ce système, vous pouvez définir les menus, les sous-menus, les champs d'entrée et d'autres objets d'itération qui traitent de toutes les entrées / sorties et peuvent appeler le gestionnaire défini par l'utilisateur à la suite de l'itération de l'utilisateur. La fonction utilisateur peut être actionnée comme une seule action appelée sur Click / Entrée ou comme une fonction motivée par des événements répondant aux événements de mise au point / out ou entre / ESC. Le système est conçu comme un système de sondage non bloquant, permettant à une tâche simultanée de s'exécuter. En option, le système peut être utilisé en mode semi-automatisé, en émettant la commande de navigation à partir du code utilisateur.
Voir le 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));
}Les plugins sont des combinaisons de menu particulières ou des comportements personnalisés et / ou des dessins.
Certains plugins peuvent être spécifiques à la plate-forme ou nécessiter du matériel.
Certaines applications / tutoriels utilisant Arduinomenu (versions actuelles et anciennes).
En avez-vous un autre? S'il vous plaît laissez-moi savoir sur Gitter ou envoyez-moi un e-mail.
Script Arduino pour capteur et minuterie de température. Il permet d'activer le radiateur et la lumière en conséquence pour planifier
https://github.com/vikulin/lcd_lat
Projet-GlasskilnController au four à chauffage électrique pour avoir fait du "verre chaud"
https://arduininfo.mywikis.net/wiki/Project-GlasskilnController
Arduinomenu Demo TTGO T-Display Tutorial Awesome.
https://sites.google.com/site/jmaathuis/arduino/lilygo-ttgo-t-splay-esp32/arduinomenu-demo-ttgo-t-display
tutoriel MVC-Interface Arduinomenu
https://zaragozamakerspace.com/index.php/courses/mvc-interface/
ARDUINO CUBERTER CUPER CUBER TOUCH
https://www.thingiverse.com/thing:3557719
Recharger la jauge et alarme de niveau de la trémie en poudre
https://github.com/nathandarnell/reloading-powder-hopper-level-gauge-and-alarm
SERVOBOX SERVO TESTER ET MONITEUR
https://github.com/jarkman/servobox
Panobot un robot panorama
https://github.com/robertfach/panobot
séquenceur de performances MIDI de microcontrôleur de microcontrôleur de l'adhérence
https://github.com/newdigate/teensy-midi-looper
Procédure d'automatise AmplifierControl pour activer / désactiver l'amplificateur et le décodage de la bande de Kenwood
https://github.com/petrlab/amplificontrol
SPNA an Analyseur de réseau à port unique Arduino (SPNA)
https://github.com/tczerwonka/spna
Lrduino en voiture Système multi-jauges - STM32, SSD1306, MAX31856, ADXL345, ELM327
https://github.com/bennehboy/lrduino
LRDUINOTD5 dans le système Multi-Gauge CAR - STM32, SSD1306, MAX31856, ADXL345, L9637D, TD5 ECU
https://github.com/bennehboy/lrduinotd5
build de radio Internet thom- radio
https://github.com/evfool/thom-radio
Midi_drums 7 Chanel Piezo MIDI Drum Box avec menu sur LCD
https://github.com/sobollion/midi_drums
Équilibrage
https://github.com/slbarker/balancingRobot
SWATILI 50L METTERIET D'EAU AVEC CONTRÔLE DE VALVE, LCD, BOUTONS, RTC et HALL EFFET PULSE Reader
https://github.com/daniel-leonard-robinson/swatili
GÉNÉRATEUR DE PWM MARIAL FIELDUINO Utilisation du menu pour sélectionner la fréquence et le Dutty.
https://github.com/neu-rah/fieldoino
ArduinomultideSktop Multidesktop Concept pour les appareils matériels
https://github.com/doutsovcmc/arduinomultidesktop
SmartGreenhouse
https://github.com/dontovcmc/smartgreenhouse/tree/master/src
Console.arduino Project de console de débogage en série portable utilisant ili9341
https://github.com/malachib/console.arduino
Atmel AVR, Atmel Sam, EspressIF 32, Espresstif 8266, Intel Arc32, Microchip PIC32, Nordic NRF51, Nordic NRF52, ST STM32, TEENSY, TI MSP430
Arduino IDE - Installer à l'aide du gestionnaire de bibliothèque (Arduinomenu Library - Rui Azevedo)
Platformoo - http://platformrio.org/lib/show/1468/arduinomenu%20Library
En série
https://www.arduino.cc/en/reference/serial
Bibliothèque LCD Arduino standard
https://www.arduino.cc/en/reference/liquidcrystal
F MALPARTIDA LCDS
https://bitbucket.org/fmalpartida/new-liquidcrestal/wiki/Home
Matthias Hertel PCF8574
https://github.com/mathertel/liquidcrestal_pcf8574
Arduino TFT Devices
https://www.arduino.cc/en/guide/tft
SSD1306ASCII
https://github.com/greiman/ssd1306ascii
Tft_espi
Une bibliothèque graphiques et polices compatibles Arduino IDE pour ESP8266 et ESP32
https://github.com/bodmer/tft_espi
Pilote TFT_HX8357
https://github.com/bodmer/tft_hx8357
Appareils GFX d'Adafruit
https://github.com/adafruit/adafruit-gfx-library
Appareils UTFT
http://www.rinkydinkelectronics.com/library.php?id=51
Dispositifs U8Glib
https://github.com/olikraus/u8glib_arduino
SSD1306, 128X64, SSD1306, 128X32, SSD1306, 64X48, SSD1309, 128X64, SSD1322, 256X64, SSD1325, 128X64, SSD1327, 96X96, SH1106, 128X64, UC1601 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, 240x. T6963, 240x128, SBN1661, 122x32, LC7981, 160x80, LC7981, 240x64, LC7981, 240x128, LC7981, 320X64, SSD1351, HT1632, 24x16, Flipdisk, 28x14, Volute Disposine
Appareils U8G2 et U8X8
https://github.com/olikraus/u8g2_arduino
SSD1305 128X32_NONAME, SSD1305 128X32_NONAME, SSD1305 128X64_ADAFRUT, SSD1305 128X64_ADAFRUS SSD1306 128X64_NONAME, SSD1306 128X64_VCOMH0, SSD1306 128X64_ALT0, SH1106 128X64_NONAME, SH1106 128X64_VCOMH0, SH1106 128X64_WINSTAR, SH1106 128X64_NONAME, SH1106 128X64_VCOMH0, SH1106 128X64_WINSTAR, SH1106 72X40_WING, SH1106 72X40_WING, SH1106 64X32, SH1106 64X32, SH1107 64X128, SH1107 64X128, SH1107 VOIED_96X96, 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_NONAM SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME0, SSD1309 128X64_NONAME0, SSD1325 NHD_128X64, SSD1325 NHD_128X64, SSD1326 ER_256X32, SSD1326 ER_256X32, SSD1327 SEEED_96X96, SSD1327 Seed_96x96, SSD1327 Midas_128x128, SSD1327 Midas_128x128, SSD1329 128x96_NONAME, LD70328 60x32, LD7032 60x32, ST7920 192X32, ST7920 192X32, ST7920 192X32, ST7920 128X64, ST7920 128X64, ST7920 128X64, LS013B7DH03 128X128, 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, UCI 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 AMPH_DG128064, ST7567 AMPH_DG128064I, ST7588 JLX12864, ST7588 JLX12864, ST75256 JLX256128, ST75256 JLX256128, ST75256 JLLX256 ST75256 JLX256160, ST75256 JLX240160, ST75256 JLX240160, ST75256 JLX25664, ST75256 JLX25664, ST75256 JLX17210, ST75256 JLX172104, NT7534, ST75256 TG12864R, IST3020 ERC19264, SBN1661 122X32, SED1520 122X32, KS0108 128X64, KS0108 ERM19264, LC7981 160X80, LC7981 160X160, LC7981 240X128, T6963 240x128, 240x28, T6963 240x128, 240x128, T6963 240x128, 240x128, T6963 240x128, 240x128, T6963 240x128, 240x128, T6963 240x128, 240x128, T6963 240x128, 24081240 T6963 240x64, T6963 256X64, T6963 128X64, SSD1322 NHD_256X64, SSD1322, SSD_128X64, SSD1606 172X72, SSD1607 200X200, SSD1607 GD_200X200 296X128, IL3820 V2_296X128, SED1330 240X128, RA8835 NHD_240X128, RA8835 320X240, MAX7219 32X8, A2PRINTER 384X240
Dispositifs UCGLIB
https://github.com/olikraus/ucglib_arduino
ST7735, ILI9163, ILI9325, ILI9341, ILI9486, LD50T6160, PCF8833, SEPS225, SSD1331, SSD1351, HX8352C
Terminal en série ANSI
https://github.com/neu-rah/ansistream
Grove RGB LCD I2C 2x16
https://wiki.seeedstudio.com/grove-lcd_rgb_backlight/
Navigateur Web
Web json
Sockets websockets
Remarque: ESP8266 nécessitera une bibliothèque de streaming même si elle n'utilise pas d'interface Web, avec #include <menuIO/esp8266Out.h>
Selon votre pilote de sortie, il peut être l'un des (peut installer les deux)
Série https://www.arduino.cc/en/reference/serial
Quarncoder - Encodeur générique utilisant PCINT (intégré)
Boutons - Clavier numérique simple (intégré)
Clavier générique (pas de PCINT) - Configurable pour les claviers numériques ou analogiques (intégrés)
Joystick analogique
Clickencoder https://github.com/0xpit/encoder
Clavier matriciel
http://playground.arduino.cc/code/keypad https://github.com/nullkraft/keypad
PCF8574 Matrix I2C Keypad https://github.com/whatnick/i2ckeypad
API de navigation du menu d'appel à entrée définie par l'utilisateur
Browser Web (expérimental) lorsque vous utilisez des appareils ESP
Cette bibliothèque dépend des bibliothèques suivantes:
Selon le type d'entrée ou de sortie, d'autres bibliothèques peuvent être nécessaires. Essentiellement toutes les bibliothèques nécessaires à vos appareils.
Plus d'informations à
pages wiki, problèmes ou r-site.net
Veuillez signaler les erreurs, les problèmes ou les idées d'amélioration, j'éprète les commentaires. Merci.
Sur le rapport des problèmes, veuillez spécifier les pilotes ou périphériques d'entrée et de sortie ainsi que la plate-forme cible.
L'encodeur a maintenant besoin de commencer () pour être appelé sur la configuration (2.x)
L'entrée est lue à partir de flux génériques, inclus des flux simples pour les encodeurs et les claviers - le pilote d'encodeur fourni utilise des tractions internes et une logique inversée
Emballage de flux multiples pour l'entrée pour mélanger le flux d'encodeur avec le clavier d'encodeur (généralement 1 ou 2 touches)
Option InvertFieldKeys supprimée, Invertion est désormais prise en charge par des objets de menu spécifiques.
Régression: toujours nécessaire pour faciliter les cas d'entrée simples.
numValueInput déplacé vers l'objet Menuin
Navroot Options supplémentaires, précédemment sur l'objet Global Options
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 La série n'est plus acceptée directement comme entrée, utilisez à la place Serialine
La fonction membre de printto a changé par rapport à:
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t );à
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t , idx_t = 0 );Cela ne devrait affecter que des composants personnalisés
Les entrées proviennent désormais de la classe Menuin, dérivée du flux mais y compris les fonctions de signalisation pour l'inversion de l'axe de champ par classe d'entrée.
False = Contin Menu
Vrai = menu de sortie