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/manual@v1.29.1/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
- フチなしにチェック
- はみ出し:少な目
- 印刷プレビューを表示するにチェック