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 IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「ARM」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
「STM32」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
« OLED(SSD1306)で美咲フォントを使った漢字表示 | トップページ | MCUXpresso IDEのインストール »
コメント