Tamakichi / ttbasic_MW25616L

豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

豊四季タイニーBASIC for Arduino機能拡張版 V0.07

image image image image

image/screen.png

本プログラムは、オリジナル版「TOYOSHIKI Tiny BASIC for Arduino」を 機能拡張したバージョンです。

更新情報

  • 2019/11/14 リファレンスマニュアル(PDF)の更新 (⇒ 正式版 R0102-2)、BSキー不具合対応
  • 2019/11/02 リファレンスマニュアル(PDF)の更新 (⇒ 正式版 R0102-1)
  • 2019/11/01 リファレンスマニュアル(PDF)の更新 (⇒ 正式版 R0102)、単独Else追加
  • 2019/10/29 リファレンスマニュアル(PDF)の更新 (⇒ 正式版 R0101)

対応ハードウェア

  • Arduino Unoおよびその互換機(Arduino Nano、Pro Minoにも対応)
  • Arduino MEGA2560及びその互換機
  • MW25616L実験用表示モジュール用デモプログラム

ファームウェア書込み環境

  • Arduino IDE 1.8.9(Windows 10等のプラットフォームを含む)以降推奨

利用環境

  • ターミナルソフト (TeraTerm を推奨、Windows 10等のプラットフォームを含む)

主な機能拡張

  • シリアルコンソール画面制御機能(CLS、LOCATE、COLOR、ATTRコマンド)

    日本語シフトJIS文字もサポートします。

  • ラインエディタの編集機能拡張

    • 編集キー [←] [→] によるカーソル移動
    • 編集キー[↑] [↓]、 [PageUP][PageDOWN] による上下の行の表示
    • 編集キー[BS]、[DEL]による文字削除
    • 編集キー[HOME] [END] による行先頭、行末へのカーソール移動
    • 行番号 [TAB]による、指定行の表示
    • エラー発生時、[TAB]による該当行の表示
    • [F2]キー、[CTRL+D]による、行クリア
    • [F1]キー、[CTRL+L]による、画面クリア
  • 内部EEPROM及びI2C接続EEPROMへのプログラム保存・読み込み(SAVE、LOAD、RRASE、FILES)

  • GPIOを使った入出力(デジタル入出力、アナログ入力、PWM、I2C、パルス入力等)

  • 単音出力(PLAYコマンドによるMML演奏、TONEコマンドによる指定周波数音出力)

  • I2C接続 RTC DS3231対応(SETDATE、GETDATE、GETTIMEコマンド)

  • 赤外線リモコン受信対応(IR() 関数)

  • NeoPixel(WS2812B)対応(リボン・テープ形状、リンク形状、8x8ドットマトリックス形状)

  • 8x8ドット 美咲フォント(シフトJIS 全角500字:英数記号・カタカナ・ひらがな・漢字)

  • タイマーイベント(ON TIMER ミリ秒 GOSUB|GOTO,TIMER ON|OFFコマンド)

  • 外部割込みイベント(ON EXT ピン番号,LOW|RISING|FALLING|CHANGE GOSUB|GOTO、PIN ピン番号,ON|OFF)

  • SLEEP機能(SLEEPコマンド)

  • 「 MW25616L実験用表示モジュール(Arduino 互換)」対応(※スケッチコンパイルの設定にて対応)

    • VFDディスプレイ制御(文字の表示、輝度設定等)

    • 日本語漢字フォント ROM GT20L16J1Y対応(16x16ドット日本語表示対応) ​

本プログラムに実装においては、下記の公開ソースの一部を流用しています。

その他の利用方法については、付属のリファレンス・マニュアル(PDF形式)を参照して下さい。
image/screen.png

スケッチコンパイルオプションについて

Arduino Unoでは、フラッシュメモリ及びSRAMの容量の制約から、全ての機能を同時に利用することが出来ません。
必要に応じて、ttconfig.hの下記の設定にて利用する機能を有効・無効化を定義して下さい。 Arduino UnoArduino MEGA2560では独立した定義となります。
Arduino MEGA2560では、VFD以外は全ての機能が有効設定になっています。

#ifndef ARDUINO_AVR_MEGA2560
// ** 機能利用オプション設定 for Arduino Uno *********************************
#define USE_CMD_PLAY   0  // PLAYコマンドの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_CMD_I2C    1  // I2Cコマンドの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_PULSEIN    1  // PULSEIN関数の利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SHIFTIN    1  // SHIFTIN関数の利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SHIFTOUT   1  // SHIFTOUTコマンドの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_CMD_VFD    0  // VFDモジュールコマンドの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_RTC_DS3231 0  // I2C接続RTC DS3231の利用(0:利用しない 1:利用する デフォルト:0)
#define USE_I2CEEPROM  1  // I2C EEPROM対応(0:利用しない 1:利用する デフォルト:1)
#define USE_SYSINFO    1  // SYSINFOコマンド(0:利用しない 1:利用する デフォルト:1)
#define USE_GRADE      1  // GRADE関数(0:利用しない 1:利用する デフォルト:1)
#define USE_DMP        1  // DMP$関数(0:利用しない 1:利用する デフォルト:1)
#define USE_IR         1  // IR関数(0:利用しない 1:利用する デフォルト:1)
#define USE_ANADEF     1  // アナログピン定数A0~A7orA15(0:利用しない 1:利用する デフォルト:1)
#define USE_SO1602AWWB 0  // 有機ELキャラクタディスプレイ SO1602AWWB(0:利用しない 1:利用する デフォルト:0)
#define USE_MISAKIFONT 0  // 美咲フォント500文字の利用(0:利用しない 1:利用する 2:非漢字のみ利用 デフォルト:0)
#define USE_NEOPIXEL   0  // NeoPixelの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_EVENT      1  // タイマー・外部割込みイベントの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SLEEP      1  // SLEEPコマンドの利用(0:利用しない 1:利用する デフォルト:1) ※USE_EVENTを利用必須#else
// ** 機能利用オプション設定 for Arduino MEGA2560******************************
#define USE_CMD_PLAY   1  // PLAYコマンドの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_CMD_I2C    1  // I2Cコマンドの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_PULSEIN    1  // PULSEIN関数の利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SHIFTIN    1  // SHIFTIN関数の利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SHIFTOUT   1  // SHIFTOUTコマンドの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_CMD_VFD    0  // VFDモジュールコマンドの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_RTC_DS3231 1  // I2C接続RTC DS3231の利用(0:利用しない 1:利用する デフォルト:0)
#define USE_I2CEEPROM  1  // I2C EEPROM対応(0:利用しない 1:利用する デフォルト:1)
#define USE_SYSINFO    1  // SYSINFOコマンド(0:利用しない 1:利用する デフォルト:1)
#define USE_GRADE      1  // GRADE関数(0:利用しない 1:利用する デフォルト:1)
#define USE_DMP        1  // DMP$関数(0:利用しない 1:利用する デフォルト:1)
#define USE_IR         1  // IR関数(0:利用しない 1:利用する デフォルト:1)
#define USE_ANADEF     1  // アナログピン定数A0~A7orA15(0:利用しない 1:利用する デフォルト:1)
#define USE_SO1602AWWB 1  // 有機ELキャラクタディスプレイ SO1602AWWB(0:利用しない 1:利用する デフォルト:0)
#define USE_MISAKIFONT 1  // 美咲フォント500文字の利用(0:利用しない 1:利用する 2:非漢字のみ利用 デフォルト:0)
#define USE_NEOPIXEL   1  // NeoPixelの利用(0:利用しない 1:利用する デフォルト:0)
#define USE_EVENT      1  // タイマー・外部割込みイベントの利用(0:利用しない 1:利用する デフォルト:1)
#define USE_SLEEP      1  // SLEEPコマンドの利用(0:利用しない 1:利用する デフォルト:1) ※USE_EVENTを利用必須
#endif

以下はオリジナル版のドキュメントです。


TOYOSHIKI Tiny BASIC for Arduino

The code tested in Arduino Uno R3.
Use UART terminal, or temporarily use Arduino IDE serial monitor.

Operation example

> list
10 FOR I=2 TO -2 STEP -1; GOSUB 100; NEXT I
20 STOP
100 REM Subroutine
110 PRINT ABS(I); RETURN

OK
>run
2
1
0
1
2

OK
>

The grammar is the same as
PALO ALTO TinyBASIC by Li-Chen Wang
Except 3 point to show below.

(1)The contracted form of the description is invalid.

(2)Force abort key
PALO ALTO TinyBASIC -> [Ctrl]+[C]
TOYOSHIKI TinyBASIC -> [ESC]
NOTE: Probably, there is no input means in serial monitor.

(3)Other some beyond my expectations.

(C)2012 Tetsuya Suzuki
GNU General Public License

About

豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)


Languages

Language:C++ 73.7%Language:C 26.3%