諸々の記録

その時々 興味にある事について

初心者におすすめ シンプルな実行環境でMachiKaniaプログラミング

MachiKania のプログラミング環境について

MachiKaniaはラズパイピコを使って自分で作れるBASICパソコンですが、作成したBASICプログラムを動かすだけなら、プログラムをuf2 バイナリに埋め込んで(embed)最小限必要なパーツだけで 実行することができることを最近知りました。

例えば、BASICで作成したゲームをテレビに接続(ビデオ出力)し、RP2040-ZeroにOTGアダプタでパソコンのキーボードを接続して動かすのなら下記のような非常にシンプルな構成で良いわけです。(RP2040-ZeroのUSBコネクタにOTGアダプタでUSBキーボードを接続)


プログラムをMachiKania本体のバイナリファイル(uf2)に埋め込むので、SDカードスロットが不要になり、このようなシンプルな構成になります。

ということで、BASIC埋め込みをして開発環境と実行環境を分けた場合どのようにすればよいか考えてみました。
下記の2つのパターンが考えられます。(実行に必要なパーツ等は省略)


参考までに、実行環境でキーボード接続しない場合は、PC connect を使ってPCからSDカードにプログラムを書き込むことができます。(上記パターン2と同様の環境)
プログラムをSDカードに転送するので、この場合は実行環境にSDカードが必要です。
MachiKania の PC connect については下記を参照。
http://www.ze.em-net.ne.jp/~kenken/machikania/typep.html#pcconnect


パターン1では実行環境のほかに、プログラム開発するためのMachiKaniaの環境がもう一つ必要ですが、パターン2の場合は、実行する環境の他にはPCがあればよいので、例えば、MachiKaniaでBASICゲームを作ってテレビにつなげて遊ぶだけなら、最初に示した回路図のような非常にシンプルな構成のものが1つあれば、MachiKania でのBASICプログラム開発が始められることになり、特に初心者の方の最初の一歩のハードルはかなり下がると思います。

ただ、このパターン2でのプログラム開発では、プログラムを作成してテスト実行する都度、

 uf2バイナリにBASICプログラムを埋め込む
         ↓
 ラズパイピコのBOOTスイッチを押しながらUSBケーブルを接続
         ↓
 ラズパイピコにuf2ファイルを書き込む
 (PCのエクスプローラーに表示されたフォルダにuf2ファイルをドラッグ&ドロップ

という操作をする手間があるので、このパターン2でのプログラム開発は
 簡単なプログラムの実行
 サンプルプログラムの修正
などMachiKaniaの開発に慣れるまでとして、本格的に複雑なプログラミングをしたい場合はパターン1のMachiKaniaの開発環境を用意した方が効率的に開発が行えると思います。
例えば、最初は下記記事のようにMachiKaniaの配布zipに含まれる sanples フォルダのプログラムを修正して動かしてみるのにもよいでしょう。

 
MachiKania のバイナリuf2にBASICプロブラムを埋め込んでみる

それでは、実際にBASICプログラムをuf2ファイルに埋め込んで(embed)みましょう。
(以下操作はすべてWindows11)

embed の説明は、MachiKaniaのWebページからダウンロードした zipファイル(Type PU なら、machikania-pu-xxx.zip)の documentsフォルダにある embed.txt に記載されていますので詳細はそちらをご覧ください。

まず、embed するプログラムを動作させるための準備として PHP をインストールします。
インストールする と言っても、 Zipファイルをダウンロードして展開するだけです。

https://windows.php.net/download/
にアクセスします。
そして、 x64 Non Thread Safe  にある  Zip ファイルをクリックしてダウンロード。

ダウンロードしたZipファイルを適当なフォルダに展開します。
例えば、 C:¥php というフォルダを作成して展開しておきます。

次に、MachiKania のWebページからダウンロードした Zipファイル(Type PU なら、machikania-pu-xxx.zip)を展開したフォルダにある、実行させる対象のマイコンのフォルダを確認します。
例えば、Type PU でマイコンRaspberry Pi pico であれば、下記の pico_ntsc フォルダになります。(pico Wなら、pico_w_ntsc フォルダ)
このフォルダに embed フォルダがあります。

 

この embed フォルダには、下記のファイルがあります。

このフォルダに埋め込みたいBASICプログラムを
  MACHIKAP.BAS
というファイル名にして置いておきます。

ここまでで準備は整ったので、uf2ファイルにBASICプログラムの埋め込み(embed)を実行します。
キーボード対応の TypePU のバイナリにBASICプログラムを埋め込みたい場合は、 convert.php
キーボード非対応のバイナリに埋め込む場合は、
convert_kb.php
を実行します。
php の実行の方法は、次のようにします。

コマンドプロンプトを起動(タスクバーの検索で cmd [Enter])して、このフォルダに移動します。
c:\MachiKania フォルダに machikania-pu-xxx.zipが展開されていれば、こんな感じ。



そして、
 c:\php\php.exe convert_kb.php [Enter]
と入力します。(PHP を c:¥php にインストールした場合)
すると、しばらくして
 done! result.uf2 was created.
と表示されれば完了です。
生成された result.uf2 をラズパイピコにコピーしてください。

いちいちコマンドラインでコマンドを打ち込むのが面倒であれば、次のような bat ファイルをこのフォルダに作っておき、実行(ダブルクリック)すれば良いです。

convert_kb.bat

c:\php\php.exe convert_kb.php
pause


これで、PCでプログラミングした BASICプログラムをラズパイピコで実行することができます。

ちなみに、PCでプログラミングする場合の私のおすすめエディタは「サクラエディタ」です。

拡張子が .BAS のファイルは BASICのプログラムとして認識されるので、コマンド等が色分けされて分かりやすくなります。

また、細かなカスタマイズも可能で、マクロも使えるので、是非使ってみてください。