0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#1-2 開発環境を作ろう (macOS向け)【SPIKE-RTでロボコンに出よう!!】

Posted at

目次

タイトル 内容
1 はじめに この記事について
2 開発環境構築 環境構築について説明
3 最後に この後やる事について説明

1. はじめに

この記事は 【SPIKE-RTでロボコンに出よう!!】シリーズ#1 開発環境を作ろう に対する補足記事となります。

#1 では、開発環境構築をテーマに、主にWindows PC (本質的にはUbuntuも対象) にSPIKE-RTの開発環境を作成する方法を紹介しました。
しかし、macOSでの環境構築方法は一切紹介していませんでしたので、本記事で説明したいと思います。
(というのも、#1 執筆当時はmacを使っていなかったので…)

環境構築以外の説明 (#1の「SPIKE-RTとは?」など) は省いていきますので、そちらはご自身で #1 の記事をご覧ください。

2. 開発環境構築

Step 1. ビルド環境の構築

ビルド環境を構築します。
ビルドとは要するにコンパイルすることです。

SPIKE-RTのビルド環境は、「コンテナ」というパッケージングされたものが提供されており、これを「Docker」というシステムに適用して使います。

ソースコードのダウンロード

Dockerの話の前に、SPIKE-RTのソースコードをクローン(ダウンロード)していきます。
ソースコードは、以下のGitHub上のリポジトリにあります。

以下のコマンドによりソースコードをクローンしましょう。

ターミナル.app (zsh)
% git clone https://github.com/spike-rt/spike-rt.git

もしSPIKEハブの ポートFを開放した状態 (モーターやセンサーに使える状態) でセットアップしたい場合は、#1の後に公開した「ショートカット版開発環境構築」にて紹介している、私がフォークしたGitHubリポジトリからクローンしてください。

↓私がフォークしたGitHubリポジトリはこちらから

ターミナル.app (zsh)
% git clone https://github.com/Koushiro-Achioku/spike-rt.git

クローン後、ls コマンドを実行し、spike-rtというフォルダが確認されればクローン完了です。

rubyコードの修正

公式のリポジトリからクローンした場合は以下の作業を行ってください。
私のリポジトリからクローンした場合は対応済みのため必要ありません。

SPIKE-RTのアップデートに伴い、rubyのバージョンが3系に上がったようです。
これにより、ソースコードの修正が必要な箇所があります。

編集するのは spike-rt/asp3/cfg/pass1.rb の 181行目 です。

pass1.rb
# 元のコード
symvalCsv = CSV.open(symvalTableFileName, { skip_blanks: true, skip_lines: /^#/ })

# 修正後のコード
symvalCsv = CSV.open(symvalTableFileName, skip_blanks: true, skip_lines: /^#/ )

詳しくは 「もっと!後輩たちのEV3rt講座」 の方で詳しく解説しておりますので、そちらを参照してください。

Step 2. Dockerの導入

次に行うコンテナ・イメージのプルの前に、macにDockerを導入しておく必要があります。
Dockerの導入にはHomeBrewを使用しますが、ここではHomeBrewのインストール方法は省略いたします。
以下を参考にインストールしてください。

では、本題のDockerインストールを行います。

ターミナル.app (zsh)
% brew install --cask docker

上のコマンドで、Dockerがインストールされるはずです。
導入完了後、以下のコマンドによりDockerが正しく入っているか確認しておくことをおすすめします。

ターミナル.app (zsh)
% docker -v

Docker version 27.4.0, build bde2b89 のように出力されれば導入完了です。
(Launchpad (アプリ一覧) にDockerが追加されているはずですが、そちらを開き、設定を行う必要があるかもしれません)

コンテナ・イメージのプル

次に、Github上にあるDockerのコンテナ・イメージをプル(つまりダウンロード)してきます。
ターミナルを開いて、以下を実行してください。

ターミナル.app (zsh)
% docker pull ghcr.io/spike-rt/spike-rt:v0.2.0-rich

プルが完了すると以下のように表示されます。

Status: Downloaded newer image for ghcr.io/spike-rt/spike-rt:v0.2.0-rich
ghcr.io/spike-rt/spike-rt:v0.2.0-rich

コンテナのアタッチと起動

プルしてきたコンテナをDockerにアタッチして起動します。

ターミナル.app (zsh)
% docker run --rm -it -v $(pwd):$(pwd) -w $(pwd) ghcr.io/spike-rt/spike-rt:v0.2.0-rich /bin/bash

ここで、行の先頭に sudo というコマンドがありますが、こちらは 「管理者権限で実行する」 という意味です。
この際、パスワードの入力が求められますので、macのログインに使用するパスワードを入力してください。

Step 3. 転送方法の構築

続いて、Hubブロックをmacに接続して、ビルドした実行ファイルをHubブロックに転送する方法を構築します。

libusbのインストール

SPIKEに実行ファイルを転送するのに使用するライブラリを、Homebrew経由でインストールします。

ターミナル.app (zsh)
% brew install libusb

PyUSBの導入

HUBブロックに実行ファイルを転送するために、Pythonのスクリプトを使用します。
又、そのスクリプト内で、DFU ModeのUSBデバイスに実行ファイルを転送するためのライブラリ pyusb をインストールします。

まずは、Pythonを導入する必要がありますが、今回は仮想環境下にインストールしたいと思います。
Pythonの仮想環境を、Homebrew経由でインストールします。
ターミナルを開いて、以下のコマンドを実行していきましょう。

ターミナル.app (zsh)
% brew install python@3.10

次に、 spike-rt/tools/python のディレクトリに、Pythonの仮想環境を作成します。
最後に、仮想環境下に、Pythonのパッケージ管理ツールである pip を用いて、pyusb をインストールします。
同じくターミナルにて以下のコマンドを実行していきましょう。

ターミナル.app (zsh)
% cd (spike-rtがあるフォルダ)
% python3 -m venv ./spike-rt/tools/python
% ./spike-rt/tools/python/bin/pip install pyusb

ソースコード修正

こちらもソースコードの修正が必要な箇所があるため、修正します。
修正を行うのは /Users/koushiro/Workspace/spike-rt/external/libpybricks/micropython/tools/pydfu.py80行目です。
以下のように書き換えてください。

pydfu.py
# 修正前
getargspec = getattr(inspect, "getfullargspec", inspect.getargspec)

# 修正後
getargspec = getattr(inspect, "getfullargspec", inspect.getargs)

以上で、実行ファイルの転送方法の構築は完了です。

Step 4. ビルドのテスト

それでは、構築した開発環境が正しく動作するか、ビルドのテストを行いたいと思います。
ターミナルを開いて、以下の操作を行ってください。

初めに、GithubからプルしてきたSPIKE-RTのフォルダに移動します。

ターミナル.app (zsh)
% cd (spike-rtがあるフォルダ)/spike-rt

ここで、Dockerがアタッチされていない方は、アタッチしておきましょう。

アタッチコマンド(再掲)
docker run --rm -it -v $(pwd):$(pwd) -w $(pwd) ghcr.io/spike-rt/spike-rt:v0.2.0-rich /bin/bash

続いて、以下のコマンドを実行して、scripts フォルダ内の build-test.sh というシェルスクリプトを実行します。

ターミナル.app (zsh)
% ./scripts/build-test.sh

ここで必要なファイルの生成、およびコンパイルが行われるため、ターミナルには文字がザーっと流れます。
正しくビルドできたかどうかを見分けるには、実行完了時にターミナルに以下👇の文字列が表示されているかを確認すれば良いです。

ターミナル.app (zsh)
arm-none-eabi-objcopy -O binary -S asp asp.bin
+ cd ..

これにて、開発環境構築は完了です!!

3. 最後に

Windows(WSL) 版では、前章のビルドテストまでで#1が終わっているので、ここから #2 エディタを使おう(VisualStudio Code) に合流して貰えればと思います。
今回、実行ファイルをHubブロックに転送するテストは行っていませんので、出来ればそのテストを行う #3 テンプレートファイルとシェルスクリプトの作成 まで一気に行い、確認していただくのが良いかと思います。

本編: #1 開発環境を作ろう
次回: #2 エディタを使おう(VisualStudio Code)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?