Raspberry Pi (Pi400) での利用 (開発者環境 開発手順編)

注: SmrAI 開発ガイド も参照せよ.こちらの方がブロックの作り方が詳しく書かれている.

開発方法

smalruby3(Webアプリ)の変更ファイル

  • smalruby3-guiから変更したsmalruby3-gui-iotのファイルを以下に示す.

    Rubyカテゴリのブロックを定義するコード
    smalruby3-gui-iot/src/lib/define-ruby-blocks.js
    
    ブロックの見た目を作る
    smalruby3-gui-iot/src/lib/make-toolbox-xml.js:
    
    命令ブロックからRuby
    smalruby3-gui-iot/src/lib/ruby-generator/
    
    Rubyから命令ブロック
    smalruby3-gui-iot/src/lib/ruby-to-blocks-converter/ 
    
    シミュレータをデフォルトプロジェクトに追加する.
    smalruby3-gui-iot/src/lib/default-project/
    
    smalruby3の出力ファイルの要素の変更
    smalruby3-gui-iot/src/lib/ruby-generator/index.js
  • もとのscratch-vmから変更したファイルを以下に示す.

    追加したブロックの内部プログラム(シミュレータ)
    scratch-vm/src/blocks/scratch3_ruby.js

Electron開発(Winアプリ)

  • 開発したsmalruby3をelectronに適用するために,smalruby3-gui-iotディレクトリ内で以下のコマンドを実行するとwebpackによってsmalruby3をいくつかのファイルに圧縮することができる.

    >npm run build
  • 圧縮されたファイルは smalruby3-gui-smt/build に出力され,このディレクトリ内のファイル(staticディレクトリも含む)をまるごと electron_smt/app 直下にコピーすることで,開発内容を反映させることができる.
  • 以下にelectron_smalruby/app内の前述のファイル以外のファイルの内容を示す.

    Electronのメインファイル(主にここを編集する)
    main.js
    
    ESP32にプログラムを書き込むコードと表示用のファイル
    flash.js,flash.html, flash.bat
    
    ESP32のプログラムをビルド前に戻すコードと表示用のファイル
    clean.js,clean.html, clean.bat
    
    ESP32のプロジェクトディレクトリ
    esp/
  • 作成したelectronアプリは以下のコマンドで実行ファイルとしてパッケージングできる.

    >cd electron_smalruby
    > npx electron-packager ソースディレクトリ(app) 新しいアプリ名 --platform=プラットフォーム(x64) --arch=アーキテクチャ(win32) --version バージョン(4.2.9)
    
      platform ・・・ all, linux, win32, darwin のいずれかを選択。
             「--all」は全部入りのパッケージング。
             「darwin」はmacのこと。複数選択はカンマ区切り。
      arch ・・・ all, ia32, x64 のいずれかを選択。
      version ・・・ Electronのバージョンを指定。(npx electron -vで確認)

具体的な手順

  • smalruby3-gui-smt において,ブロックの定義やブロックと Ruby コードとの対応を記述する.

    以下の 3 つのファイルを変数すれば良い
    
      Rubyカテゴリのブロックを定義するコード
      smalruby3-gui-iot/src/lib/define-ruby-blocks.js
    
      ブロックの見た目を作る
      smalruby3-gui-iot/src/lib/make-toolbox-xml.js:
    
      命令ブロックからRuby
      smalruby3-gui-iot/src/lib/ruby-generator/
  • 編集を終えたら webpack する.

    $ cd ~/SmT/smalruby3-gui-smt/
    $ npm run build
  • webpack したファイルを electron_smt にコピーする.

    $ cp -r ~/SmT/smalruby3-gui-smt/build/*  ~/SmT/electron_smt/app/
  • Smt (electron) を実行して動作確認する

    $ cd ~/SmT/electron_smt
    $ npx electron app