Arduino Basicを改良してシリアルコンソール対応
Robin Edwards氏が開発し、公開している「Arduino Basic」を
シリアルコンソールで使えるように改良しました(Arduino、Arduino STM32対応)。
改良版
・Arduino Basic (シリアルコンソール対応版)
https://github.com/Tamakichi/ArduinoBASIC
Arduino BASICは、Tiny BASICとは異なり、小数、文字列、多次元配列が利用出来ます。
変数名も8文字まで付けられます。かなり本格的なBASIC言語です。
オリジナル版は、OLED画面+PS/2キーボードで利用する形式なのですが、
プログラミング言語としてどれくらい使えるのかを評価するため、
プログラミング効率向上のために、シリアルコンソール利用に変更しました。
こんな感じで、TermTerm等で利用出来ます。
簡単なスクリーン制御(CLS、POSITIONコマンド、BSキーで文字削除)にも対応しました。
ただし、オリジナル版と同様にスクリーンエディタは未対応です。
・プログラムの中断は[ESC]キーまたは、[CTRLC]で行う。
今後の改良を考えて、コメントに日本語訳、説明追記を行いました。
Blue Pillボード(STM32F103C8T6)でも、I/Oピンを使ったデジタル入出力が可能です。
Lチカプログラム
10 pc13=32
20 PINMODE pc13,1
30 PIN pc13,1
40 PAUSE 500
50 PIN pc13,0
60 PAUSE 500
70 GOTO 30
スクリーンエディタ対応は、やってみようと思います。
利用出来るコマンドについては、配布ページのドキュメントに記載しています。
追記
プログラムソースを読んでいると、このArduino BASIC、
変数の管理方式があまり良くないです。
中間コード方式を採用しているのに、変数名はコード化せず、
そのまま文字列で管理しています。
マズい処理方式
・実行時に、変数テーブルに変数を変数名(文字列)で登録
・変数参照の都度、変数テーブルを単純文字列検索でなめて該当変数にアクセスする
この作りだと、変数を多用すると指数的(実際は2乗)に実行速度が落ちると思われます。
行入力時の中間コード化の時点で、変数テーブルへの登録を行い、
変数はコード化して、中間コード化したプログラムに埋め込み等の修正が必要です。
本格的に改造して利用しようと思ったのですが、
ちょっとテンション(モチベーション)下落、ちょっと微妙になってきました。
追記 2019/02/08
別途、Arduino STM32対応版をおこしました。
・Arduino Basic シリアルコンソール対応(Arduino STM32専用)
https://github.com/Tamakichi/ArduinoBASIC_STM32
変更点
・プログラム領域を4096バイトに増量
・フルスクリーンエディタ対応(全角文字 シフトJISも利用可能)
・LOAD [n] 、SAVE [n] でロード、セーブ対応(nは0~ 5)
コンパイルにはArduino STM32が必要です。
Blue Pillボード(STM32F103C8T6)、フラシュメモリ128kバイト利用です。
« OLED(SSD1306)で美咲フォントを使った漢字表示 | トップページ | MCUXpresso IDEのインストール »
「arduino」カテゴリの記事
- Arduino UNO R4 WiFiに関するメモ(2024.03.21)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Arduino用ライブラリの自作用のメモ(2024.03.18)
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- 豊四季タイニーBASIC for Arduino 機能拡張版 V0.08の更新(2020.07.27)
「ARM」カテゴリの記事
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
- Arduino Basicを改良してシリアルコンソール対応(2019.02.06)
「STM32」カテゴリの記事
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
- Arduino STM32のWS2812Bライブラリ(NeoPixel制御ライブラリ) その1(2019.05.29)
- Arduino STM32のADC(アナログ・デジタル コンバータ)周辺の調査(2)(2019.05.25)
« OLED(SSD1306)で美咲フォントを使った漢字表示 | トップページ | MCUXpresso IDEのインストール »
コメント