レゴ製シャーシのJetBotを作ってみた

スポンサーリンク

f:id:sato_susumu:20201020165023j:plainf:id:sato_susumu:20201020165026j:plain

JetBotで遊んでみたかったので、レゴ製シャーシのJetBotを作ってみた。
キット購入も考えたけど、飽きたら置き場所に困りそうだし、改造したい・・・
レゴなら飽きたら壊して、また作りたくなったら再構築すればいい。子供が触りにくいように囲いを追加したり、ちょっとバラしてみたり、部品の配置を大胆に変えるのも楽々。

目次 (クリックで展開)

主な材料

電子部品はほとんどJetBot公式部品表のまんま。モーターが違うぐらい。
オプションのWi-Fiは、TP-LinkのWi-Fiドングルを使用。

名称 メモ
Jetson Nano Rev.A02
SainSmart IMX219カメラモジュール カメラ。160度FoV
フリクスケース カメラフレーム用
geek servo motor
レゴブロック
FeatherWing - DC/ステッピングモータードライバ
Adafruit PiOLED
INIU モバイルバッテリ 容量10000mAh。最大出力3A
TP-Link TL-WN725N Wi-Fiドングル
ケーキボード ブレッドボード。紹介 販売
USBケーブル モバイルバッテリからJetsonへの電源供給用
両端ロングピンヘッダ 1×40
M2 10mmくらいのネジとナット カメラの固定用

ハードウェアセットアップ

Jetson Nanoと電子部品

Jetson Nano本体のセットアップは「Jetson Nano超入門」参照。この本のおかげで迷うことなくスムーズにセットアップ。電子部品はJetBot公式に合わせているので、電子部品間の接続も公式ドキュメント通りにセットアップ。

f:id:sato_susumu:20201020165550j:plainf:id:sato_susumu:20201020165029j:plain

レゴ製シャーシ

中段

f:id:sato_susumu:20201020165553j:plainf:id:sato_susumu:20201020165557j:plainf:id:sato_susumu:20201020165040j:plainf:id:sato_susumu:20201020165044j:plain

下段

f:id:sato_susumu:20201020165056j:plainf:id:sato_susumu:20201020165052j:plainf:id:sato_susumu:20201020165100j:plainf:id:sato_susumu:20201020165104j:plainf:id:sato_susumu:20201020165107j:plain

フリスクケースは適当に穴をあけて、カメラを固定。あとレゴとの接続。穴が適当すぎて、少し歪んだ。

ソフトウェアセットアップ

全体的に公式ドキュメント通りにセットアップすればOK。
SD Card ImageはJetPack4.3をベースにした jetbot_image_v0p4p0.zip を選択。

Wi-Fi設定

まずは、PCとJetBotをUSBケーブルで接続。
下記のIPアドレスが割り振られる。

JetBot   192.168.55.1  
PC  192.168.55.100  

次にsshでアクセス。
sshの初期パスワードは jetbot 。jetson出ないので注意。

$ ssh jetbot@192.168.55.1

CUIでそのままWi-Fi設定

$ sudo nmcli device wifi rescan
$ sudo nmcli device wifi list
$ sudo nmcli device wifi connect <ssid> password <password>
Device 'wlan0' successfully activated with 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'.

Wi-Fi設定完了。
IPアドレスはコマンドで確認してもいいし、jetbotのOLED表示で確認してもいい。
これで、PCとJetBotをUSBケーブルでつなげておく必要がなくなる。

Wi-Fi経由でsshアクセス

コンピュータ名は jetson-4-3 だったので、それを使ってsshアクセス。

$ ssh jetbot@jetson-4-3

I2C確認

I2Cの接続状況を確認。コマンドを実行してスムーズに表示されない場合は、配線ミス。

$ i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --        

サービス状況確認

確認しくてもいいけど、なんとなくサービス状況も確認。

$ systemctl list-unit-files --type=service | grep jet
jetbot_jupyter.service                     enabled        
jetbot_stats.service                       enabled        
jetson_fan.service                         enabled        
jetson_performance.service                 disabled      

その他設定

モバイルバッテリを使うので、パワーモデルを5Wモードに変更

$ sudo nvpmodel -m 1
$ sudo nvpmodel -q

あとはお好みで設定。

GUI無効化

$ sudo systemctl set-default multi-user.target

Jupyter Notebookへのアクセス

あとはPCのブラウザで http://jetson-4-3:8888 にアクセスして、Jupyter Notebookを動かせばOK。

リンク

JetBot documentation
JetBot GitHub

FaBo JetBot Docs
FaBoPlatform / jetbot GitHub

メモ

INIU モバイルバッテリ

注意点は使用電力が少ないと、すぐに省電力モード(?)になること。
電源ボタン1回で電源供給開始、2回で電源供給停止
電源ボタンを3秒間長押しで、懐中電灯ON/OFF。いらない機能

課題

  • Nanoのケースとバッテリーが隣接してるので、ケースのネジでバッテリーが傷つく
  • バッテリーの残量が確認しづらい
  • 一部のケーブルが長すぎるので持て余しがち