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, " 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を使用した一部のアプリケーション/チュートリアル(現在および古いバージョン)。
別のものはありますか?ギターに私に知らせてください、または私にメールしてください。
温度センサーとタイマー用のArduinoスクリプト。スケジュールのためにヒーターとライトをオンにすることができます
https://github.com/vikulin/lcd_lat
プロジェクト-GlasskilnController 「温かいガラス」を作るための電気的に加熱されたki
https://arduinoinfo.mywikis.net/wiki/project-glasskilncontroller
Arduinomenu demo tto t-display素晴らしいチュートリアル。
https://sites.google.com/site/jmaathuis/arduino/lilygo-tto-tdisplay-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-レベルゲージとアラーム
サーボボックスサーボテスター&モニター
https://github.com/jarkman/servobox
パノボットパノラマロボット
https://github.com/robertfach/panobot
Teensy-Midi-LooperマイクロコントローラーベースのMIDIパフォーマンスシーケンサー
https://github.com/newdigate/teensy-midi-looper
AmplifierControl Automate手順は、ケンウッドのアンプをオン/オフアンプとバンドデコードをスイッチします
https://github.com/petrlab/amplifiercontrol
Spna Arduinoシングルポートネットワークアナライザー(SPNA)
https://github.com/tczerwonka/spna
Lrduino in Car Multi Gauge System -STM32、SSD1306、MAX31856、ADXL345、ELM327
https://github.com/bennehboy/lrduino
LRDUINOTD5 CAR Multi Gauge System -STM32、SSD1306、MAX31856、ADXL345、L9637D、TD5 ECU
https://github.com/bennehboy/lrduinotd5
Thom-Radioインターネットラジオビルド
https://github.com/evfool/thom-radio
MIDI_DRUMS 7 LCDのメニュー付きシャネルピエゾミディドラムボックス
https://github.com/sobollion/midi_drums
バランシングロボット
https://github.com/slbarker/balancingrobot
バルブ制御、LCD、ボタン、RTC、ホールエフェクトパルスリーダーを備えたSwatili 50Lウォーターメーター
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 Library -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
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、 UC1608、240x64、UC1610、160x104、UC1611、240x64、UC1611、240x128、UC1701、128x64、UC1701、102x64、St7565、128x64、ST77565、128x32、128x64、128x64 192x32、ST7920、202x32、LD7032、60x32、PCD8544、84x48、TLS8204、84x48、PCF8812、96x65、KS0108、128x64、T6963、128x64、T6963、128x128、T6963、128x128、T6964、 T6963、240x128、SBN1661、122x32、LC7981、160x80、LC7981、240x64、LC7981、240x128、LC7981、320x64、SSD1351、HT1632、24x16、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、flipdisk、
U8G2およびU8X8デバイス
https://github.com/olikraus/u8g2_arduino
SSD1305 128X32_NONAME、SSD1305 128X32_NONAME、SSD1305 128X64_ADAFRUIT、SSD1305 128X64_ADAFFRUIT、SSD1306 128X64_NONAME、SSD1306 128X64_VCOMH0、SSD1306 128X64_ALT1306 SSD1306 128X64_NONAME、SSD1306 128X64_VCOMH0、SSD1306 128X64_ALT0、SH1106 128X64_NONAME、SH1106 128x64_VCOMH0、SH1106 128x64_WINSTAR、SH1106 72X40_WISE、SH1106 72x40_WIDE、SH1106 64x32、SH1106 64x32、SH1107 64x128、SH1107 64X128 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_6x1306 96x16_ER SS SSSD1306 SSD1309 128X64_NONAME2、SSD1309 128X64_NONAME2、SSD1309 128X64_NONAME0、SSD1309 128X64_NONAME0、SSD1325 NHD_128X64、SSD1325 NHD_128X64、SSD1326 SSD1326 ER_256X32、SSD1326 ER_256X32、SSD1327 SEED_96X96、SSD1327 SEED_96X96、SSD1327 MIDAS_128X128、SSD1327 MIDAS_128X128、SSD1329 128X96_NONAME6_NONAME 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 ERC24064、UC1608 ECC1608 ECC1608 ECC1608 ECC1608 ECC1608 E UC1608 ERC240120、UC1608 240x128、UC1608 240x128、UC1638 160X128、UC1610 EA_DOGXL160、UC1610 EA_DOGXL160、UC1611 EA_DOGM240、UC1611111111111111111111111111111111111111111111111111111111111111111111111111111111 EA_DOGXL240、UC1611 EA_DOGXL240、UC1611 EW50850、UC1611 EW50850、ST7565 EA_DOGM128、ST7565 64128N、ST7565 ZOLEN_128X64、ST7565 LM6059、ST7565、ST7565、 ST7565 ERC12864、ST7565 NHD_C12864、ST7565 JLX12864、ST7565 NHD_C12832、UC1601 128X32、UC1601 128x32、ST7565 EA_DOGM132、ST7567 PI_132X7564 JLX12864、ST7567 ENH_DG128064、ST7567 ENG_DG128064I、ST7588 JLX12864、ST7588 JLX12864、ST75256 JLX256128、ST75256 JLX256128、ST75256 JLX256 JLX256 JLX2561256 JLX2561256 JLX256 ST75256 JLX256160、ST75256 JLX240160、ST75256 JLX240160、ST75256 JLX25664、ST75256 JLX25664、ST75256 JLX172104、ST75256 JLX172104、 TG12864R、IST3020 ERC19264、SBN1661 122X32、SED1520 122X32、KS0108 128x64、KS0108 ERM19264、LC7981 160x80、LC7981 160x160、T60x128、T60x128、T60x128、T60x128、 T6963 240x64、T6963 256x64、T6963 128x64、SSD1322 NHD_256X64、SSD1606 172x72、SSD1607 200x200、SSD1607 GD_200X200、SSD1606 172x72、SSD1607 296x128、IL3820 V2_296x128、SED1330 240x128、RA8835 NHD_240X128、RA8835 320x240、MAX7219 32X8、A2PRINTER 384X2400
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/
Webブラウザ
Web JSON
WebSockets
注: ESP8266は、 #include <menuIO/esp8266Out.h>とともに、Webインターフェイスを使用していなくてもストリーミングライブラリが必要です。
出力ドライバーに応じて、その1つである可能性があります(両方をインストールできます)
シリアル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マトリックスキーパッドhttps://github.com/whatnick/i2ckeypad
ユーザー定義の入力呼び出しメニューナビゲーションAPI
ESPデバイスを使用する場合のWebブラウザー(実験的)
このライブラリは、次のライブラリに依存します。
入力または出力の種類に応じて、他のライブラリが必要になる場合があります。基本的に、デバイスに必要なライブラリ。
で詳細
wikiページ、問題、またはr-site.net
エラー、問題、または強化のアイデアを報告してください。フィードバックを繰り返します。ありがとう。
問題レポートについては、入力および出力ドライバーまたはデバイス、およびターゲットプラットフォームを指定してください。
エンコーダーは、セットアップで呼び出される必要があります(2.x)
入力は、エンコーダとキーボード用のシンプルなストリームが含まれているジェネリックストリームから読み取られます - エンコーダドライバーが内部プルアップとリバースロジックを使用する場合
エンコーダーストリームとエンコーダーキーボード(通常は1つまたは2つのキー)を混合するための入力用の複数のストリームパッキング
InvertFieldKeysオプションは削除され、Invertionは特定のメニューインオブジェクトによってサポートされています。
回帰:単純な入力ケースを容易にするために必要でした。
numValueInputはメニューインオブジェクトに移動しました
以前はグローバルオプションオブジェクトで、 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 = exitメニュー