たまには自作ネタ。
豊四季タイニーBASIC のArduino Uno版Arduino STM32(libmaple core)に移植して拡張されているのが「豊四季タイニーBASIC for Arduino STM32」です。
さらにSTM32版には現状2つのバージョンが並行しています。
本家と同様にターミナルベースで動くV0.5系と、NTSC・PS/2キーボード対応ブランチ版であるV0.8系です。たま吉さんによる功績です。感謝。
STM32としていますが、Blue Pillと呼ばれるSTM32F103C8T6を搭載した安いボード用です。

今回自作したのは、ブランチ版であるV0.8系を使うためのベースボード的なモノ。Blue Pillではなくて、少し小さくでお気に入りのRobotDynの互換ボードを使いました。
いつもだったら細かくレイアウトや配線を考えて作るんだけど、この手のデジタルものの場合、ユニバーサル基板だと綺麗に配線できない場合も多く、ジャンパーばかりになることが多いので、今回はモジュール類の位置をだいたい決めて適当に作り始めました。今回は試作してみて、次にちゃんと作ろうかななと思ったのもありますが。

結果的にそれほど汚くはならなかっただけど、ビデオアウトとUBSコネクタの位置を予定とは逆にしてしまったり、ピン番号を間違えてたり、コンデンサの値を間違ってつけたりと、初歩的なミスが多く、若干テンションが下がる結果に。とはいえ動作は問題無さそう(RTCだけ試してないけど)。

USBはキーボード用。キーボードの接続方式はPS/2なので、USBといってもPS/2動作できるやつでないと駄目だと思う。USBだけどPS/2変換付きというのなら大丈夫かと。安いのは結構あります。僕はキーボードをラズパイでも使うかもと思ったのでUSBにしましたが、使い回ししないならPS/2キーボードを買ったほうが良いかも。

ディスプレイは秋月で買った安いやつ(Amazonならもっと安い。外見は違っても中身が同じものが多いようだ)。表示させると一行目がどうしても少し欠けてしまうので、TNTSCライブラリのTNSC.cpp中に

#define NTSC_VTOP 30 // 映像表示開始ライン

とそれらしい項目があったので、表示みながら値を調整しました。
表示も若干ちらつきがあるんだけど、気になりすぎるというほどでもないので、ひとまずは様子見。

SDカード用のスロットは秋月で購入した変換基板とセットのやつ。これはSPI用に抵抗とかの必要なパーツが付いているわけではなく、単にスロットのピンをそのまま外に出しただけのものなので、必要な回路を外に作らないとならないので少し面倒です。抵抗とかコンデンサとか最初からついている中華製とかの安いモジュール使ったほうが楽です。今回はこの面倒なパーツ(以前から持っていて使わなかった)を消化するために使用しました。

なぜわざわざBASICを使いたいかというと、
・BASICが懐かしい(小中学生のころ少し勉強してた)。まあほとんど覚えてないけど。
・インタプリタなので、コード書いてビルドして転送してという手間が無い。動作として必ずしも最適化されないかもしれないけど何か試すには良いかなと。他の方が試されている例を見るとかなりいろいろなことができているので、これでも充分使えそうです。ひとつのボードにしておけば使いやすいですし。

個人的な勉強のためにBlue Pill をArduinoとして使っていくことの方を重視していますが、これはこれで楽しいかなと。
Facebookページにもコミュニティがあります。非公開のようなのでURLは載せませんが、探せばすぐ見つかるかと。非公開でしたが参加申請したらすぐ許可されました。
AliExpress.com Product – STM32F103C8T6, STM32 ARM Cortex-M3 Minimum System Development Board

Share