--:-- LUA API
PICO-OSLUA 5.4PICO.*

LUA API_

pico-os (Raspberry Pi Pico 2 W向け自作タッチGUI OS) のLuaアプリ開発者向けAPIリファレンス

pico-os は Raspberry Pi Pico 2 W (RP2350) 上で動く自作タッチGUI OSです。SDカードに Lua スクリプトを置くだけで、ランチャから起動できるタッチGUIアプリを作れます。

このサイトは、pico.* として公開されている Lua API の使い方とリファレンス、実際に動くサンプルをまとめたものです。Luaでアプリを書く人に必要なことだけを載せています(OS本体の作りは リポジトリ の docs/ を見てください)。

最小のサンプル

ボタンを押すとカウンタが増えるだけの、最小構成のLuaアプリです。

local x, y, w, h = pico.content_rect()

local count = 0
local label = pico.create("Label")
pico.set(label, "x", x + 10)
pico.set(label, "y", y + 10)
pico.set(label, "text", "count: 0")

local button = pico.create("Button")
pico.set(button, "x", x + 10)
pico.set(button, "y", y + 50)
pico.set(button, "w", 80)
pico.set(button, "h", 30)
pico.set(button, "text", "+1")
pico.on(button, "press_start", function()
    count = count + 1
    pico.set(label, "text", "count: " .. count)
end)

この文書の表記

  • 関数シグネチャは pico.関数名(引数...) -> 戻り値 の形式で示します。角括弧 [ ] は省略可能な引数です。
  • ウィジェットは生成すると32bit整数の WidgetId が返ります。以降の操作はすべてこのIDで指定します。
  • プロパティ名・イベント名・ウィジェット種別名はすべて文字列で指定します(大文字小文字は区別されます)。
  • コード例は実機・PCビルド両対応です。/lua/apps/<アプリ名>/main.lua に置くとランチャへ自動登録されます。