フォト
2024年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

« OLED(SSD1306)で美咲フォントを使った漢字表示 | トップページ | MCUXpresso IDEのインストール »

2019年2月 6日 (水)

Arduino Basicを改良してシリアルコンソール対応

Robin Edwards氏が開発し、公開している「Arduino Basic」を
シリアルコンソールで使えるように改良しました(ArduinoArduino STM32対応)。

Dscn9589

オリジナル版
・Arduino Basic

改良版
・Arduino Basic (シリアルコンソール対応版)
  https://github.com/Tamakichi/ArduinoBASIC


Arduino BASICは、Tiny BASICとは異なり、小数、文字列、多次元配列が利用出来ます。
変数名も8文字まで付けられます。かなり本格的なBASIC言語です。

オリジナル版は、OLED画面+PS/2キーボードで利用する形式なのですが、
プログラミング言語としてどれくらい使えるのかを評価するため、
プログラミング効率向上のために、シリアルコンソール利用に変更しました。

こんな感じで、TermTerm等で利用出来ます。

01

簡単なスクリーン制御(CLS、POSITIONコマンド、BSキーで文字削除)にも対応しました。
ただし、オリジナル版と同様にスクリーンエディタは未対応です。

02

改良点
  ・画面表示をOLEDからシリアルコンソールに変更
  ・PS/2キーボード利用は廃止(シリアルコンソールから入力)
  ・コマンド実行後、OKプロンプトを表示するように変更
  ・Arduino STM32 (Blue Pill対応) 、ただしLOAD、SAVE、TONEピンは未対応
  ・プログラムソースに日本語コメント追加、ソースの整形
  ・ファイル名arduino_BASIC.ino をarduinoBASIC.ino に変更
  ・プログラムの中断は[ESC]キーまたは、[CTRLC]で行う。

今後の改良を考えて、コメントに日本語訳、説明追記を行いました。

03

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」カテゴリの記事

ARM」カテゴリの記事

STM32」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Arduino Basicを改良してシリアルコンソール対応:

« OLED(SSD1306)で美咲フォントを使った漢字表示 | トップページ | MCUXpresso IDEのインストール »