Kanirobo Debian Server

インストール

  • 省略.ネットワークは DHCP で設定.

基本パッケージのインストール

# apt update
# apt upgrade
# apt install build-essential net-tools dnsutils emacs lv ruby bison sudo git screen rsync

mruby

ESP32 用 mrubyc ライブラリ (https://github.com/gfd-dennou-club/iotex-esp32-mrubyc.git) は mruby 2.1.0 に依存している.Debian パッケージの mruby とバージョンが合わないので, 手動で mruby 2.1.0 をインストールする.

$ mkdir src

$ cd ~/src
$ git clone -b 2.1.0 https://github.com/mruby/mruby.git mruby2.1
$ cd mruby2.1
$ ./minirake
$ sudo mkdir -p /usr/local/mruby2.1/bin
$ sudo cp bin/* /usr/local/mruby2.1/bin

$ cd ~/src
$ git clone -b 3.1.0 https://github.com/mruby/mruby.git mruby3.1
$ cd mruby3.1
$ ./minirake
$ sudo mkdir -p /usr/local/mruby3.1/bin
$ sudo cp bin/* /usr/local/mruby3.1/bin   

$ cd /usr/local/bin/
$ sudo ln -s ../mruby2.1/bin/* .

ESP-IDF + mrubyc 環境

mkspiffs

メインプログラム (master.rb) からバイトコードを作成する際に必要となる mkspiffs コマンドを用意する.

$ cd ~/src
$ git clone https://github.com/igrr/mkspiffs
$ cd mkspiffs
$ git submodule update --init
$ ./build_all_configs.sh --esp-idf
$ sudo cp ./mkspiffs /usr/local/bin/

esp-idf

公式の開発環境 ESP-IDF をインストールする.これをインストールしておけば 手元で VM を作りなおすことが可能となる.

$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools python3-serial python3-click python3-cryptography python3-future python3-pyparsing python3-pyelftools python3-libusb1 cmake ninja-build ccache
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

$ mkdir ~/esp
$ cd ~/esp
$ git clone -b v4.2.4 https://github.com/espressif/esp-idf.git   
$ cd esp-idf
$ ./install.sh

環境変数の設定

$ . ./export.sh

常に ESP-IDF 関連の環境変数を有効にするために,.bashrc に入れておく.

$ echo ". ~/esp/esp-idf/export.sh" >> ~/.bashrc

ユーザを dialout グループに入れておく./dev/ttyUSB0 に書き込みするため.

# usermod -aG dialout sugiyama

さらに,npm で esptool をグローバル環境にインストールしておく. そうしないと,SmT の実行時に環境変数がうまく引き継がれずにマイコンへの書き込みに失敗する.

$ sudo pip install esptool

mrubyc-esp32

ESP32 マイコン用の mrubyc ライブラリをインストールする.

$ cd ~/esp
$ git clone https://github.com/gfd-dennou-club/mrubyc-esp32.git
$ cd mrubyc-esp32

高専ボードのための gem を使う. 以下は RTC, LCD, CO2 センサを使う場合.

$ cd components/
$ git clone https://github.com/gfd-dennou-club/mrubyc-gem-rx8035sa.git
$ git clone https://github.com/gfd-dennou-club/mrubyc-gem-aqm0802a.git
$ git clone https://github.com/gfd-dennou-club/mrubyc-gem-scd30.git
$ git clone https://github.com/gfd-dennou-club/mrubyc-gem-sht35.git

デバイス用のリポジトリに含まれる Ruby クラス用ファイルを mrblib 以下にリンクする. これは make gems コマンドで一括実行できる.

$ cd ..
$ make gems

  *** make links (.rb) ***
  ../components/mrubyc-gem-aqm0802a/mrblib/aqm0802a.rb -> mrblib/aqm0802a.rb
  ../components/mrubyc-gem-scd30/mrblib/scd30.rb -> mrblib/scd30.rb
  ../components/mrubyc-gem-rx8035sa/mrblib/rc8035sa.rb -> mrblib/rc8035sa.rb

  *** make links (.c, .h) ***

  *** add following lines in main/main.c ***

VM の書き込み.

$ make flash         

メインプログラムの書き込みを行って動作確認する. Ctrl-] でモニタを終了できる.

$ make spiffs monitor

SmT 環境

Apache2 + PHP

$ sudo apt install apache2
$ sudo apt install php-common libapache2-mod-php php-cli

nodejs

スモウルビーは javascript で書かれており,nodejs が使われている. Debian パッケージの nodejs のバージョンが古いので, nodejs の公式の説明に従って nodejs が配布している Debian パッケージを利用する.

  • https://nodejs.org/ja/download/package-manager/#debian-and-ubuntu-based-linux-distributions-enterprise-linux-fedora-and-snap-packages
  • https://github.com/nodesource/distributions/blob/master/README.md

    # curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
    # apt install -y nodejs

smt-kancon

$ cd ~
$ git clone https://github.com/Tanabe-Yumi/smt-kanicon.git
$ cd smt-kanicon
$ npm install

node18 だと SSL の互換性でエラーが出るので,オプションを付けて実行する.

$ export NODE_OPTIONS=--openssl-legacy-provider
$ npm start

サーバを変える場合は以下を修正する.

$ vi src/containers/ruby-downloader.jsx

  ele.action = 'https://www.epi.it.matsue-ct.jp/j1819/convert/upload.php';

converter

これはどうするのかな?

越前ガニロボコンのシステム

deno

https://deno.land/[email protected]/getting_started/installation

# curl -fsSL https://deno.land/x/install/install.sh | sh  
# cp /root/.deno/bin/deno /usr/local/bin/

kanirobocon-system

git clone

$ git clone https://github.com/fkpc/kanirobocon-system.git   

修正点

data/kanirobocon/entry.csv
   参加者名を入力する csv ファイル

static/Settings.js
   適切な名前に

static/match1.html
   for (var i = 1; i <= 2; i++) {

static/result1.html
   var sb = "<h2>" + (category == "T" ? "エントリー部門" : "") + "</h2><table>";

起動

$ deno run -A kanirobo-server.js --ipv4 8888

コースの印刷について

PowerPoint で作成したファイルからコースの印刷の仕方. Windows11 & Epson SC-P8050 を利用.

  • PowerPoint でコース全体を選択したあとに,右クリックで「画像を保存」を選択して保存.
  • gimp を起動し,保存した画像を読み込む
    • 「画像」メニューから「グリッド -> 新規グリッド」を選ぶ.ピクセル数で 3 分割される位置を計算し,鉛直方向にグリッド線を引く
    • 「画像」メニューから,「slice using grid」を選択する.自動的に 3 分割される.
    • 各分割画像を「ファイル」メニューからエクスポートする.
  • 分割画像を ペイント で開く.
    • ファイル > 印刷 > 印刷設定 より,余白をゼロにする.
    • ファイル > 印刷 > 印刷 より,大判プリンタ (EPSON SC-P8050) の詳細設定を開く.
      • 用紙:フォト 薄手,光沢
      • 印刷品質:速い
      • 給紙方法:ロール紙
      • ページサイズ: 1118 x 3370
      • フチなしにチェック
      • はみ出し:少な目
      • 印刷プレビューを表示するにチェック