MicroLuaを探る:RP2040のためのLuaプログラミング

RP2040のためのMicroLuaの探求 タイトル画像

Luaプログラミングの世界に入り込み、RP2040マイクロコントローラの機能を探求したいと思ったことはありませんか?MicroLuaは、まさにそれを可能にするエキサイティングな機会を提供します!

この記事では、このようなことを掘り下げてみたい。 マイクロルア それがどのようなもので、どのように機能するのか、そしてなぜ私が開発者にとって超貴重なツールだと思うのか。

私は以下の方々に大きなエールを送りたい。 レミー・ブランク レミーはMicroLuaを開発し、世界と共有している。レミーはMITライセンス(Lua自体がそうであるように)でMicroLuaを公開し、誰でもMicroLuaを利用できるようにした。

今後のプロジェクトで使うのがとても楽しみだ。

MicroLuaとは? RP2040とは?

そこで、MicroLuaはLuaの実装を使用し、それをパッケージ化する。

Luaは動的型付けされたマルチパラダイム言語だ。もちろん、最も高速なスクリプト言語のひとつだ。また、非常に小さい(ソースコードとドキュメントを合わせても1.3MBだ!)。

そのため、高速で小さく、大きなアプリケーションの中に何かを組み込みたい場合に最適だ。

また、Luaには21の強調キーワードがあり、構文もかなり単純なので、学習は比較的簡単だ。

しかし、もしあなたがLuaに馴染みがないのであれば、Luaが1ベースのインデックス言語であることを誰もが不満に思うだろう。正直なところ、私は毎回これに悩まされている。

これがLuaの例だ:

Lua.orgによるLuaの例
クレジット lua.org.

Remy氏は、RP2040マイクロコントローラー専用にプログラミングするMicroLuaを設計しました。

RP2040マイクロコントローラは、Raspberry Piの自社製チップで、次のような機能を備えています。 ピコ.しかし、ラズベリーパイは、次のような販売も行っている。 RP2040チップ を別途購入する必要がある。そのため、RP2040は以下のような他のボードにも搭載されています。 アダフルーツフェザー.

MicroLuaは、これらのボード用にLuaをパッケージ化したものです。この文脈において、MicroLuaは最新のLuaインタプリタ(バージョン5.4)と、以下のインタフェースを統合している。 ピコ・ソフトウェア開発キット 協調スレッディング・ライブラリも含まれている。

LuaインタープリターをPicoインターフェイスと一緒に使うことで、MicroLuaはGPIOピンとタイマーにアクセスできる。Remyが協調スレッディング・ライブラリを搭載しているのも素晴らしい。Picoがあれば、両方のコアで遊ぶことができます。

さらに、MicroLuaはFennelをサポートしているので、(私のように)Lispが好きな人もMicroLuaを活用できる。Raspberry Pi PicoでLispライクな言語を使いたい?Remyがそれを簡単にしてくれた。

MicroLua入門

MicroLuaをセットアップするには、クローンする必要がある。 リポジトリサブモジュールを初期化し、提供されたビルド手順に従ってください。

GitHubには、テスト・スイートを立ち上げて実行するための以下のコードがある:

# Configure the location of the Pico SDK. Adjust for your setup.
$ export PICO_SDK_PATH="${HOME}/pico-sdk"

# Clone the repository and initialize submodules.
$ git clone https://github.com/MicroLua/MicroLua.git
$ cd MicroLua
$ git submodule update --init

# Connect a Picoprobe to the target, on the UART and optionally on the debug
# port. Then view the Picoprobe's UART connection in a separate terminal.
# The "term" script uses socat.
$ tools/term /dev/ttyACM0

# Build the unit tests.
$ cmake -s . -B build -DPICO_BOARD=pico
$ make -j9 -C build/lib

# Start the target in BOOTSEL mode and flash it with picotool.
$ picotool load -v -x build/lib/mlua_tests.elf

# Alternatively, start the target in BOOTSEL mode and copy to its boot drive.
$ cp build/lib/mlua_tests.uf2 /mnt/RPI-RP2/

それさえできれば、もう大丈夫だ。

レミーはMicroLuaのパフォーマンスについていくつかの問題を指摘している。まず第一に、イベント・ディスパッチのレイテンシーが比較的遅く、改善が必要だということだ。

さらに GitHubのページレミーは、Pico SDK用のバインディングの追加、ファイルシステム、マルチチップ通信など、追加すべきもののロードマップを含めている。そしてレミーは、スレッド性能、クロスコア通信、ガベージ・コレクタのチューニングを改善したいと考えている。

だから、このプロジェクトは非常に生きていて、目を離す価値がある。

ビデオの中の小さなプログラムはMicroPythonで書いたんだけど、次回はFennelとMicroLuaを使うよ!

結論

さあ、これで次のピコ・プロジェクトに取り掛かろう。世界はあなたのものだ!

このプロジェクトを見て、私が最初に思い浮かべたのは次のようなことだった。 ESP32用Lua RTOS.マイコンでLuaを使う選択肢を考えているなら、このプロジェクトもぜひチェックしてほしい。

もしインスピレーションが必要なら、私たちが紹介したピコのプロジェクトをチェックしてみてください:

また、ピコWをお持ちの方は、ピコWに接続することをお忘れなく。 PiCockpitそうすれば、世界中のどこからでもインターネット経由で接続できる。

MicroLuaを使ってどんなプロジェクトを作りますか?次のPicoプロジェクトでFennelを使うのがとても楽しみです!

コメントを残す