Open2
RaspberryPi Pico上で動きそうな言語
最近趣味でマイコンボードを使った電子工作をしているが、組み込み用のバイナリ吐く以外に、マイコンボード上でスクリプト言語等リアルタイム書き換えして動くみたいなので、遊べることがあると考えメモっておくもの。
公式の環境はC言語だが、主にC言語以外の選択肢を記載していくものとする。
また、プリコンパイルとリアルタイム更新可否の区別もつけずに記載していく。(実際区別のついてない情報も多いので)
- Python
MicroPython/CircuitPython/KMKPythonが該当。
元々MicroPythonやCircuitPythonの対象マイコンの範囲が広い上に、シリアル通信を行なってデバッグも可能な開発環境として揃ってきているので、組み込みボードでコード書くなら有効な選択肢。 - Ruby
PicoRubyが該当。
RP2040他一部のARMアーキテクチャがターゲットになっている。
これをベースにしたPRK firmwareは事前準備が必要なく使いやすいので、RP2040でキーボードを作る際はほぼ必ずPRK firmwareを利用しようとする。 - Lisp
uLispが該当。
ARMのソースコードからArduinoIDE経由でターゲットを指定すれば専用バイナリを吐ける。
シリアル通信でプログラムを食わせて動くのを見ると感動を覚える。
http://www.ulisp.com/show?3KN3
他に情報があれば追記していく。
(ストックはあるけど動作確認できてないのも多いので)
- Lua
Yocto-8が該当
https://github.com/yocto-8/yocto-8
データ編集ではなく実行環境を目指しているとのことなので、編集はPico8上のエディタで行なって実行だけファイルかなにかでぶん投げることになるのかなと考えてる。 - Rust
言語のツールチェインで対応してるみたい
https://qiita.com/ochaochaocha3/items/1969d76debd6d3b42269
あといっぱいライブラリが生まれてるので追いきれない。
組み込み環境にも適合する言語ということで、どんどん多くなりそうな気はする。
Cの資産も使えるし、便利ねえ。 - Go
TinyGoが該当。
https://tinygo.org/docs/reference/microcontrollers/nano-rp2040/
多くのIFに対応しているみたい。 - Forth
Mecrisp-stellarisが該当。どうもこれはCortex-Mシリーズなら動く想定で作ってるらしい。
https://mecrisp-stellaris-folkdoc.sourceforge.io/index.html
元々が小さい言語仕様なおかげか、Lisp以外にも移植頻度の高い言語という認識。