MachiKania

MachiKania type Pに、BASICプログラムを埋め込む

2022年8月10日

MachiKania type Pでは、起動時に自動的に実行するBASICプログラムを指定することができます。これにより、Raspberry Pi Picoの電源を入れると指定のBASICプログラムがすぐに実行されます。

これを行うには、2つの異なる方法があります。

1.MMC/SDカードに、MACHIKAP.BASを保存する
2.MachiKania本体に、実行するBASICプログラムを埋め込む

の方法は、単にMMC/SDカードのルートに、MACHIKAP.BASという名でBASICプログラムを保存するだけです。特に説明は必要ないと思います。また、MACHIKAP.INIを編集すると、起動時にMACHIKAP.BASとは異なるファイル名のBASICプログラムを実行することもできます。

この記事では、の方法について述べます。の方法と異なり、MMC/SDカードも液晶ディスプレイの接続も必須ではありません。Raspberry Pi Pico単体でMachiKaniaおよび埋め込んだBASICプログラムが走ります。従って、様々な組み込み用途でMachiKaniaを使用することができます。

どういったものなのか

百聞は一見に如かずなので、Raspberry Pi Picoをお持ちの方は、次のzipアーカイブをダウンロードして、含まれるmandelbr.uf2ファイルを、Raspberry Pi PicoのRPI-RP2ドライブにドラッグ&ドロップしてみて下さい。

mandelbr.zip

この時、Tera TermなどでRaspberry Pi PicoのUSB-serialにコンソール接続していれば、下のように表示されるはずです。

2022-08-10-console.png

Raspberry Pi Pico単体で、MachiKaniaシステム及び埋め込んだBASICプログラムが実行されるのが分かると思います。なお、ここで実行されるプログラムは、前の記事で紹介したものとほぼ同じものです。

MachiKania type Pは、SPI・I2C・UART・PWM・ADCを容易に制御することができますから、組み込み開発に適しています。また、先の記事で述べた通り、実行速度は、Cよりはほんの少し劣りますが、Micro Pythonの数倍です。

埋め込み方法

埋め込みには、配布ファイルのembedディレクトリーに含まれている、もしくはソースコードのscripts/ディレクトリーにあるconvert.phpスクリプトを使用します。実行には、PHPが必要です。PHPのバージョンは5.5と8.1でこのスクリプトの動作を確認しており、現在使われているほとんどのPHP環境で実行可能だと思います。

MachiKania type Pのファイルとしては、配布ファイルのうちembedディレクトリーに含まれているphyllosoma.uf2、もしくは、「DEBUG_MODE」でビルドした物(compiler.hの12行目のコメントアウトを外す)を用いてください(ver 0.9.3における該当のファイルは、ここからダウンロードできます)。このphyllosoma.uf2をconvert.phpと同じディレクトリーに配置します。

埋め込むことができるのは、拡張子が「BAS」「TXT」「INI」のテキストファイルです。合計4つまで埋め込むことができます。通常は、起動時に実行されるBASICプログラムとして「MACHIKAP.BAS」を埋め込むことになります。必要に応じて、各種設定用の「MACHIKAP.INI」や、使用するクラスファイルを埋め込むことができます。

2022-08-10-directory.png

convert.php、phyllosoma.uf2と埋め込むテキストファイルの準備ができれば(上図は、一例)、convert.phpをPHPで実行してください。Windowsであれば、cmdコンソールで該当のディレクトリーに移動し、「PHPインストールディレクトリー\php.exe convert.php」です。

2022-08-10-done.png

上のように表示されてresult.uf2が作成されれば成功です。作成されたresult.uf2ファイルをRaspberry Pi PicoのRPI-RP2ドライブにドラッグ&ドロップすれば、MachiKaniaシステムと埋め込んだBASICコードが、Raspberry Pi Pico上で走ります。

ライセンスについて

ここで作成されたresult.uf2のライセンスは、MachiKania type Pの配布時のライセンスと同じ、MachiKaniaライセンスです。簡単には、「非商用ならばフリー」というものです。商用利用はできませんので、ご注意ください。

コメント

コメントはありません

コメント送信