Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby × 車 (その後) ~課題:オフライン対応~

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for matsudai matsudai
March 27, 2026
21

Ruby × 車 (その後) ~課題:オフライン対応~

Izumo Developers' Guild 第13回 meetup~出雲Ruby会議感想大会~
https://izumo-developers-guild.connpass.com/event/381873/

Avatar for matsudai

matsudai

March 27, 2026
Tweet

Transcript

  1. 課題 ・ 開発にインターネット接続が必要:   極限環境プログラミングでは人間だけでなく   ネットワーク回線も厳しい可能性がある。 ・ プログラム書込み時にUSBケーブルを抜き差し:  

    ボードにリセットボタンがないため、 Rubyコードを   変更したい場合にUSBケーブルを抜き差しする。 ・ Pico 2サポート/Pico W系サポート:   ボードは2種類(RP2040、RP2350)、さらに各無線モジュール付きモデルがある。   → 4パターンへの対応。 ・ ビルド環境なしで使いたい:   Raspberry Pi Picoはファームウェア書込みソフトが不要(ボタン押しながら PC接続)   のため、ビルド済みファームウェアを DLできるようにしておきたい。
  2. 課題 - 開発にインターネット接続が必要 Webブラウザ上で SmT → kaniwriter → ボードへ書き込み、という流れを想定 (PCとボードはUSBケーブルで接続、WebブラウザのSerial

    APIで通信) → エディタ表示・Rubyコードコンパイルでインターネットへの接続が必要 SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/ kaniwriter | mruby/c書き込みツール, https://ceres.epi.it.matsue-ct.ac.jp/writer/
  3. 課題 - 開発にインターネット接続が必要 Webブラウザ上で SmT → kaniwriter → ボードへ書き込み、という流れを想定 (PCとボードはUSBケーブルで接続、WebブラウザのSerial

    APIで通信) → エディタ表示・Rubyコードコンパイルでインターネットへの接続が必要  ※ SmTはScratchベースのサーバーアプリ    kaniwriterもmrubyのコンパイラ(mrbc)が動くサーバーアプリ
  4. 課題 - 開発にインターネット接続が必要 Webブラウザ上で SmT → kaniwriter → ボードへ書き込み、という流れを想定 (PCとボードはUSBケーブルで接続、WebブラウザのSerial

    APIで通信) → エディタ表示・Rubyコードコンパイルでインターネットへの接続が必要  ※ SmTはScratchベースのサーバーアプリ    kaniwriterもmrubyのコンパイラ(mrbc)が動くサーバーアプリ  → オフライン対応においてはSmT + kaniwriterを利用しない方向   ただし元々がSmT対応のため、kaniwriterによる書き込みとの互換性は必要
  5. 課題整理 目標: SmTとkaniwriterに依らないオフライン開発環境の構築   ① kaniwriterの役割:Rubyコードのコンパイル( mrbc)、ボードへの書込み     →

    mrbcはWASM、書き込みは現行踏襲でWeb Serial APIを利用することで       静的なHTML/JSで配布可能、依存はWebブラウザのみ   ② SmTの役割:Rubyコードの作成
  6. 課題整理 目標: SmTとkaniwriterに依らないオフライン開発環境の構築   ① kaniwriterの役割:Rubyコードのコンパイル( mrbc)、ボードへの書込み     →

    mrbcはWASM、書き込みは現行踏襲でWeb Serial APIを利用することで       静的なHTML/JSで配布可能、依存はWebブラウザのみ   ② SmTの役割:Rubyコードの作成
  7. 課題整理 目標: SmTとkaniwriterに依らないオフライン開発環境の構築   ① kaniwriterの役割:Rubyコードのコンパイル( mrbc)、ボードへの書込み     →

    mrbcはWASM、書き込みは現行踏襲でWeb Serial APIを利用することで       静的なHTML/JSで配布可能、依存はWebブラウザのみ   ② SmTの役割:Rubyコードの作成     → VSCodeの拡張機能で実現可能       拡張の有効/無効イベントでWebサーバーを起動・停止ができて、       VSCodeのファイル・ターミナルとブラウザをWebSocketで接続可能
  8. ・ mrubyのWebAssembly(WASM)対応によりブラウザで動作可能 ・ VSCode、Webブラウザと組み合わせることで高い可搬性の   mruby/cオフライン開発環境を作れた — 今後 —  

    ・ WSL2対応のためブラウザを経由したが、 Windows・Mac環境のために     ネイティブのUSBポートを使う(ブラウザを経由しない)オプションの提供 まとめ
  9. 課題 ・ 開発にインターネット接続が必要:   極限環境プログラミングでは人間だけでなく   ネットワーク回線も厳しい可能性がある。 ・ プログラム書込み時にUSBケーブルを抜き差し:  

    ボードにリセットボタンがないため、 Rubyコードを   変更したい場合にUSBケーブルを抜き差しする。 ・ Pico 2サポート/Pico W系サポート:   ボードは2種類(RP2040、RP2350)、さらに各無線モジュール付きモデルがある。   → 4パターンへの対応。 ・ ビルド環境なしで使いたい:   Raspberry Pi Picoはファームウェア書込みソフトが不要(ボタン押しながら PC接続)   のため、ビルド済みファームウェアを DLできるようにしておきたい。