LinuxでMSX0開発!msxtermを使ってIoTプログラムを作ってみる

みなさん、こんにちは。

2026年1月となりましたが、MSX Devcon 14の情報通りなら、そろそろMSX0 Tab5のクラウドファンディングが始まるはずですね。

新しい機種の発表は心躍るものですが、まだまだMSX0 Stackでやり残したことがあるのも事実。もう少し何かトライしてみたい。

MSX0 Stackにはディスプレイとキーボードが付いていますが、正直なところ「これでガッツリ開発するのは指と目が……」となってしまいますよね。

「PCからサクッと開発したい。でも自分はLinuxがメイン環境なんだよな」という私と同じような悩みを持つ方のために、今回はUbuntu 22.04からMSX0に接続し、M5Stack用のホールセンサーを動かすまでのプロセスを解説します!

「ホールセンサーって何?何に使うの?」という疑問をお持ちの方は、先に以下の記事を読んでから続きを読むと理解が深まりますよ。

 

 


 

開発環境の準備 – msxtermの導入

 

WindowsやAndroidには公式の「リモートコントロールパネル」がありますが、残念ながらLinux版はありません。そこで、GitHubで公開されている専用ターミナルソフト「msxterm」を利用します。

msxtermは、Wi-Fi(TCP/IP)やUSB(シリアル)経由でMSX0を操作できる非常に便利なツールです。

Rust環境の構築

Linux版はバイナリが配布されていないため、自分でビルドする必要があります。Rustがインストールされていない場合は、以下のコマンドで導入しましょう。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

※途中でインストール方法を聞かれますが、デフォルトのまま進めてOKです。

インストール後、バージョンが表示されれば準備完了です。

cargo --version
rustc --version

msxtermのインストール

次に、ソースコードを取得してインストールを行います。

git clone https://github.com/akio-se/msxterm.git
cd msxterm
cargo install --path ./

これで、ターミナルから msxterm コマンドが使えるようになります!

 


 

MSX0に接続してみる

 

MSX0をWi-Fiに接続した状態で、IPアドレスを確認してください。準備ができたら、Linuxのターミナルから接続します(ポートはデフォルトで2223です)。

msxterm {MSX0のIPアドレス}:2223

connected. と表示されれば成功です! 一旦動作確認ができたら、以下のコマンドで抜けることができます。

#quit

 


 

IoTプログラム(BASIC)を作成する

 

今回は、M5Stack用のホールセンサーユニットをPort Bに接続し、磁気を検知するプログラムを作ります。

「今さらBASIC?」と思うかもしれませんが、MSX0のIoT拡張コマンドを使えば、センサー値の取得も驚くほど簡単です。以下の内容を、ローカルPC上で HALL_SENSOR.BAS という名前で保存しましょう。

10 SCREEN 0
20 CLS
30 LOCATE 10, 12
40 _IOTGET("device/analog/in", A)
50 B$="hall:"
60 IF A=0 THEN PRINT B$ + STR$(A) ELSE PRINT B$ + " 1"
70 GOTO 30

プログラムのポイント:

  • _IOTGET("device/analog/in", A) これがMSX0の真骨頂!アナログポートの値を一発で変数 A に代入します。
  • ホールセンサーは磁気を感知すると 0、それ以外は 4095 を返します。今回は分かりやすく、磁気がないときは 1 と表示するようにしました。

 


 

プログラムの転送と実行

 

ここからが msxterm の本領発揮です。ローカルで作ったファイルをMSX0に転送して実行しましょう。

転送と実行の手順

msxtermで接続した状態で、以下のコマンドを打ちます。

#load ./HALL_SENSOR.BAS
run

#loadmsxterm独自のファイル転送コマンドで、手元のファイルをMSX0のメモリへ流し込めます。./HALL_SENSOR.BAS の部分はファイルを保存したパスにあわせて調整してください。

実行すると、MSX0の画面に hall status: 1 と表示されます。磁石をセンサーに近づけてみてください。表示が 0 に変われば成功です! (中断は Ctrl + C )

磁気があると0に変わる
磁気があると0に変わる

ファイルの管理(SDカードへの保存など)

MSX0側のSDカードに保存したり、逆にローカルに書き戻したりするコマンドも覚えておくと便利です。

MSX0のSDカードに保存する:

SAVE "HALL_SENSOR.BAS"

SDカード内のファイル一覧を見る:

FILES

MSX0からローカルPCに転送する:

一度 LOAD してから

#save ./HALL_SENSOR.BAS

 


 

AI時代のBASICを使ったIoT開発

 

「BASICなんて書いたことないよ!」という方もご安心を。今の時代、ChatGPTなどの生成AIに「MSX BASICで〜なプログラムを書いて」と頼めば、かなりの精度でコードを出してくれます。

_IOTGET などのMSX0専用コマンドはAIが知らないこともあるので、そこだけ今回のように少し手直ししてあげれば、開発効率は劇的に上がります。

Linuxという使い慣れた環境から、MSX0というレトロモダンなデバイスを操る。この少し不思議で楽しいIoT開発体験を、ぜひみなさんも味わってみてください!

 

本日も最後までお読みいただきありがとうございました。

それでは、よいIoTライフを!

「LinuxでMSX0開発!msxtermを使ってIoTプログラムを作ってみる」への1件のフィードバック

  1. ピンバック: MSXで空気質を可視化!SGP30ガスセンサーをMSX0で使う方法 - ビューローみかみ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール