スクリーンショット_2020-02-03_19

Google Coral Dev Boardのセットアップ

Coral Dev Boardのセットアップ方法について書きます。😎

1. Coral Dev Boardとは

Googleが開発したEdge TPUコプロセッサーを搭載したシングルボードコンピューターです。TensorFlow Liteがサポートされており、機械学習モデルをEdge TPUを使って高速に推論することができます。

画像1

OSは、軽量化されたDebianベースのMendel LinuxというOSです。初期状態のCoral Dev BoardにはOSがインストールされていないので、セットアップの中でインストール作業が必要となります。

公式ドキュメント:https://coral.ai/docs/dev-board/get-started/

2. セットアップ環境

・Mac computer
・USB-C to USB-micro-B cable (ボードのシリアルポートとPCの接続用)
・USB-A to USB-C cable (ボードのデータポートとPCの接続用)
・2 - 3A (5V) USB Type-C power supply
・Wi-Fi connection

. ツールのインストール

1)fastbootのインストール
caskを使ってplatform-toolsをインストールします。

$ brew cask install android-platform-tools

2)fastbootのバージョン確認
Macとの互換性のため、バージョンは28.0.2以降でなければなりません。

$ fastboot --version
fastboot version 29.0.5-5949299
Installed as /usr/local/bin/fastboot​

3)MDT(Mendel Development Tool)のインストール

$ pip install --user mendel-development-tool


4. ボードの初期化

工場出荷時の設定にはシステムイメージは含まれず、U-Bootブートローダーのみが含まれます。 

1)DIPスイッチの確認
設定する際にはDevBoardの電源やケーブル類が完全に抜いてある状態で行ってください。ブートモードスイッチをeMMCモードに設定します。

スクリーンショット 2020-02-03 20.20.37

2)製造日付の確認
2019年4月10日以降に製造されているか確認します。
 Year     : Last digit of the year of manufacture: 0 - 9
 Month : Month of manufacture: 1 to 9 (Jan to Sep), A (Oct), B (Nov), C (Dec)
 Day      : Day of manufacture: 01 to 31 (1st to 31st)

画像5

シリアル番号が「9410」以上の場合は、2019年4月10日以降に製造されているため、”5. flash scriptの実行”に進みます。(DevBoardが自動的にfastbootモードで起動するため)。

/-------------------------------------------------------------------------
2019年4月10日以前に製造されている場合は、次の手順でfastbootモードを有効にする必要があります。

(https://coral.ai/docs/dev-board/get-started/#1-initiate-fastboot-mode)

❶シリアルポートドライバーのインストール
下記のサイトの Macintosh OSX のリンクからソフトをダウンロードします。

※インストールの途中で、Macの環境設定のセキュリティとプライバシーのウィンドウを開き、”読み込みブロックを許可”する必要があります。

インストール後は、Extensionsディレクトリ配下にSiLabsUSBDriver.kextファイルがあることを確認します。

$ cd /Library/Extensions
$ ls -l
(省略)
drwxr-xr-x@ 3 root  wheel  96 12 14 03:17 SiLabsUSBDriver.kext

❷シリアル(Serial console)の接続
PCのUSB-CをDevBoardのシリアルポートに接続します。接続するとボード上のオレンジと緑のLEDが点灯します。

画像3


❸シリアルコンソールに接続
Macでターミナルを開き、screenコマンドでシリアルポートに接続します。

$ screen /dev/cu.SLAB_USBtoUART 115200

※まだ、DevBoardに電源を入れていないため、プロンプトが消えて端末が全て空白になりますが接続は確立されているので問題ありません。

❹電源(Power)の接続
USB-C電源ケーブルをボード上の「PWR」というラベルのついたポートに接続します。

画像4

この時、コンソール画面に何も表示されない場合は、Enterキーを押下します。※赤いLEDが点灯し、ファンが起動する場合があります。

❺fastbootコマンドの実行

$ fastboot 0

❻シリアルコンソールを切断
シリアルコンソールに接続したケーブルを外すことができます。

2019年4月10日以前に製造されている場合は、上記の手順でfastbootモードを有効にする必要があります。
-----------
---------------------------------------------------------------/

5. flash scriptの実行

1)USB-Cケーブル(Data & Power)の接続
USB-Cケーブルをボード上の「OTG」というラベルの付いたデータポートに接続します。
又、USB-C電源ケーブルをボード上の「PWR」というラベルのついたポートに接続します。

画像6

2)デバイスを認識していることを確認
Macで新しいターミナルを開き、fastbootコマンドを実行します。

$ fastboot devices
1b0741d6f0609912        fastboot

3)システムイメージのダウンロード&解凍

$ cd ~/Downloads
$ curl -O https://dl.google.com/coral/mendel/enterprise/mendel-enterprise-day-13.zip
$ unzip mendel-enterprise-day-13.zip \
&& cd mendel-enterprise-day-13

Archive:  mendel-enterprise-day-13.zip
 inflating: mendel-enterprise-day-13/boot_arm64.img  
 inflating: mendel-enterprise-day-13/flash.sh  
 inflating: mendel-enterprise-day-13/partition-table-16gb.img  
 inflating: mendel-enterprise-day-13/partition-table-64gb.img  
 inflating: mendel-enterprise-day-13/partition-table-8gb.img  
 inflating: mendel-enterprise-day-13/recovery.img  
 inflating: mendel-enterprise-day-13/rootfs_arm64.img  
 inflating: mendel-enterprise-day-13/u-boot.imx  
 inflating: mendel-enterprise-day-13/README 

4)書き込み実行

$ bash flash.sh
Sending 'bootloader0' (991 KB)                     OKAY [  0.054s]
Writing 'bootloader0'                              OKAY [  0.235s]
Finished. Total time: 0.311s

(省略)

Writing 'rootfs'                                   OKAY [ 78.732s]
Finished. Total time: 245.199s
Rebooting                                          OKAY [  0.005s]
Finished. Total time: 0.005s


6. MDTを使用してボードに接続

1)mdt がデバイスを認識していることを確認

$ mdt devices
orange-horse        (192.168.100.2)

ボードが認識されるとホスト名とIPアドレスが表示されます。
※デバイス情報が表示されない場合は、まだ初期セットアップ中の可能性があります。(初期セットアップは、フラッシュ後2〜3分かかります)

2)ボードに接続します

$ mdt shell
※mdtから接続できない場合は、シリアルポートから接続することも可能。
(ユーザー名:mendel / パスワード:mendel)

yellow-xylophone login: mendel
Password:
Last login: Mon Nov 11 18:12:34 UTC 2019 on tty7
Linux yellow-xylophone 4.14.98-imx #1 SMP PREEMPT Fri Nov 8 23:28:21
(省略)


7. WiFiの接続設定

システムの更新、モデル、およびサンプルをダウンロードするには、オンラインにする必要があります。

1)nmtuiコマンドを実行

$ nmtui

2)アクセスポイントの選択
[Activate a connection]を選択し、Wi-Fi(wlan0)の下のリストからWi-Fiネットワークを選択します。※必要に応じてパスワード入力します。

3)接続の確認
選択したネットワークを一覧で表示します。

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE 
********            *****************                     wifi      ****

4)IPアドレスの確認

$ ip a

8. Mendelのソフトウェアアップデート

1)パッケージのアップデート

$ sudo apt-get update
$ sudo apt-get dist-upgrade

2)TensorFlow Lite Pythonランタイムのインストール

$ pip install https://dl.google.com/coral/python/tflite_runtime-2.1.0-cp37-cp37m-linux_aarch64.whl


9. デモの実行

Edge TPUパフォーマンスのビデオデモについては、開発ボードターミナルから次のコマンドを実行します。

1)ビデオデモのストリーミング

$ edgetpu_demo --stream

2)Webブラウザから <DevboradのIP>:4664 にアクセス
MobileNetモデルが開発ボード上で実行され、リアルタイムで車が検出されます。

スクリーンショット 2020-02-06 2.22.07

10.最後に

まずは、使えるようになった。シリアルポートでの接続で上手くいかない時が何度かありましたが、Mac側のUSB-Cを抜き差しすると認識することがありました。今後は、ssh接続の設定などの細かな設定を行った上で、カメラを接続してリアルタイムで物体検出などを試みたいと思います。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?