LoginSignup
3
4

More than 3 years have passed since last update.

へたれオヤジのGoPiGo3

Last updated at Posted at 2019-11-16

GoPiGo3
写真は公式ページより

実際に動いている動画はこちら

■きっかけ

興味があってRaspberry Piを買ったはいいものの、電気系が弱くて全く使えない状態でした。
ソフトウエア関係の仕事なので、UNIXサーバに触れることはありますが、lsやcp程度の知識しかありません。
たまたま、PlayStation3のコントローラーで操作するロボットを見る機会があり、自分でも作れるキットがないか探していたところ、これに行き着きました。

見つけた動画
GoPiGo Example: PS3 Controller (by youTube)
これがやりたかった!

■商品の特徴

Dexter社は米ワシントンにある教育、研究者、愛好家向けのロボットを制作しています。
(GoPiGoはKickstarterによる資金集めで、日本でも話題になりました)

GoPiGoはRaspberry Piを使ったコンピュータ教育用の教材を目的として作られているため

  • こどもでも簡単に組み立てられる。
  • すぐに使える。
  • 専門の知識がいらない。

などの特徴があります。

紹介動画でも実際に子供が遊んでいる姿が紹介されています。
GoPiGo3 Robot for Education

また、商品もRaspberry PiやOSの入ったSDカード付のオールインワンパッケージが販売されており、あとは単3電池(8本)を用意すればいいようになっています。
へたれオヤジにはピッタリですね。

最終目標はPS3のコントローラーを使ったラジコンカーを作る事です。

■商品

商品はアマゾンより安い「ロボットショップ」で購入しました。
もっと安いショップも見つけたのですが、不安があって専門ショップにしました。(不幸なことにこの不安は的中しました・・・)

それ以外にも、充電式の単3電池、充電器、外でも使うためのミニルーターなどを購入しました。

購入商品一覧

商品 ショップ 金額
GoPiGo3 初心者スターターキット ロボットショップ 27,940
パナソニック エネループ 単3形充電池 4本パック BK-3MCC/4SA x 2セット anazon 2,650
パナソニック 急速充電器 単3形・単4形 黒 BQ-CC73AM-K amazon 2,049
RAVPower Wi-Fi SDカードリーダー RP-WD009 amazon ¥5,099 (タイムセール+クーポン)
Team microSDHCカード 16GB amazon 550
38,292

こまごまと買うと、意外とかかるものですね。
もう少し出せばこれが買えてしまうぐらい。

これ以外に、Raspberry PI用にマウス、キーボード、モニタを用意。
プログラム開発のためにPCが必要です。

■GoPiGo3スターターキットについて

GoPiGo3スターターキットには、「初心者用」「上級者用」があります。
違いはOSが「Dexter OS」か「Raspian for Robots」の違いだけです。

Dexter OSとはRaspian(Stetch Lite)をベースとして、すべてブラウザから操作を行うものです。
OSの仕組みやコマンドなどを知らなくても、画面の操作だけでプログラムが作れる「Bloxter」(Scratchのようなもの)が付いてきます。

今回はこれを購入したのですが、SSHでログインできない(後述)ため、用意されているレッスンを使うことは出来ても、プログラミングには向いていません。
結局、上級者用に提供されているOSイメージをダウンロードして使うことにしました。

上級者用は「Raspian for Robots」で、GoPiGo3に必要なライブラリ類はインストール済みで、SSH接続やVNC接続ができるようになっています。
目的だったPS3コントローラーサンプルもこちらに含まれているので、最初からこちらを購入すればよかったです。

OSの違い
os比較.png

「初心者用」「上級者用」とも、キットの内容は変わりません。

GoPiGo3 スターターキットに含まれるもの

  1. GoPiGo基本セット(本体)
  2. Raspberry PI 3B(+ではありません)
  3. USBメモリカード(8GB)
  4. サーボセット
  5. 距離センサーセット
  6. OSイメージの入ったSDカード(8G)

2~6をバラで買うとスターターキットより高くなるので、余ったRaspberry PIがないのであれば、こちらの方をお勧めします。
ただし、すでにRaspberry PI 3Bを持っていて、あとは、自分でそろえるのであれば、基本セットで十分だと思います。
こちらのほうが断然安い(13,306)ですしね。

■実際の購入

発注時に受付メール、翌日には発送メールが来て翌々日には商品が届きました。(はや!)
DSC_1522.JPG
(箱の中身)

DSC_1519.JPG
(届いた箱に猫も興味津々)

DSC_1529.JPG
使う場面がわからない空のUSBメモリ

DSC_1532.JPG
両目の飾り付き赤外線距離センサ(センサは真ん中)

DSC_1533.JPG
電源

DSC_1535.JPG
Dexter OS SDカード(8Gでは少ないので、別の 16GB SDカードにコピーして使用しました)

DSC_1536.JPG
Raspberry PI 3B

DSC_1541.JPG
基本キット

DSC_1542.JPG
基本キットの内容

DSC_1563.JPG
RedBord(Arduino)

DSC_1547.JPG
ホイール

DSC_1548.JPG
アクリル用取り付けパーツ

DSC_1549.JPG
モーター取り付けパーツ

DSC_1550.JPG
後輪パーツ

DSC_1551.JPG
予備パーツ(どっさり)

DSC_1552.JPG
コントローラーパーツ

DSC_1558.JPG
距離センサ付きモーター

DSC_1554.JPG
モーター接続ケーブル、電池バンド、電源ケーブル

DSC_1555.JPG
電池ボックス(単三8本用)

DSC_1556.JPG
アクリル板(下)

DSC_1557.JPG
アクリル板(上)

DSC_1526.JPG
それ以外に買いそろえたもの

アクリルパーツに番号が振られていたり、シールが貼られていたりと作りやすくする工夫が随所にされています。
また、部品は機能別のパーツにまとめられており、さらに予備のパーツがどっさり入っていました。(安心ですね)
DEXTERロゴ入りのドライバが付属
ただ、残念なことに作りが雑で、さすがメイドインUSA。こんな曲がったワッシャー(スペーサー?)初めて見ました。

子供向けという事で、多少乱暴に扱ってもいいようにできていると思います。

■組み立て

特に日本語の説明書はないため、Dexter社のサイト(英語)を参考に組み立てることになります。
- チュートリアル&ドキュメンテーション
- 写真たっぷりでわかりやすい組み立て説明

教育向けキットのため、子供でも作れるように配慮されており、組み立ては非常に簡単です。

ただし、Dexter社のサイトの説明と実際の商品内容(特にパーツ類のまとめ方)が違うため、戸惑うこともしばし。
ドキュメントが商品に追い付いていない、よくあるパターンですね。
息子と組み立てましたが、組み立て自体は30分程度でできました。

DSC_1560.JPG
(組み立て写真1)

DSC_1565.JPG
(組み立て写真2)

■(1)初心者オプション(Dexter OS)での接続

ブラウザからのアクセスのみとなります。
手順は簡単。

  1. 電源をいれる
  2. しばらく待つ(Wifiランプが緑になるのを待つ)
  3. PCのWifi接続先一覧にある「GoPiGo」に接続する
  4. ブラウザが自動的に起動し以下の画面が表示されます。 ブラウザが起動しない場合、手動で起動し、URLに「mygopigo.com」と入力します。 注)InternetExploerの場合、時々ボタンが効かなくなるバグがあります。IE以外を使用してください。

(画面)

5.Driveを選択し、ボタンをクリック

(画面)

GoPiGoが動きます!
まじ感動!

■トラブル1

ここでトラブル発生。
なんと右側のモータが動きません。
接続やケーブルを調べましたが、どうやらモーターが初期不良のようです。
ショップに交換の依頼をしました。

(ショップから交換のために、本体を返送してほしい旨の連絡が来ましたが、急いでいることを伝えたところ、モーターだけ送ってもらうことになりました。(不良部品の返品は不要とのこと)
パーツ販売もしているショップならではの対応でとても助かりました。

■トラブル2

接続のポイントはPCのWifi接続先としてGoPiGoに接続する点です。
実は、GoPiGo3自身がWifiスポットとして機能しており、最初のうちそれが分からず、ずいぶんと悩みました。

また、Raspberry PIの画面をモニタに出し、ログインしようとしたのですが、標準ユーザであるpiのパスワードが分かりません。
さらにルートのパスワードも分からないため、ログインプロンプトから先に進めることができずに困りました。
このBlogを見つけて、Wifiの接続先を変えることに気づき、ようやく画面を出すことができました!

画面が出たところまではよかったのですが、Bloxterの使い方がよく分からないのと、PS3コントローラーのサンプルが見つからなかったので、Dexter OSを使うのはあきらめ、上級者オプション(Raspian for Robots)のセットアップにチャレンジすることにしました。

■(2)上級者オプション(Raspian for Robots)での接続

最初から上級者オプションを購入した場合は、SDカードを挿入して起動します。
ベースキットを購入した場合、OSイメージが入ったSDカードを作る必要があります。

手順
1. OSイメージをgitHUBからダウンロードします。
2. zipファイルを解凍します。
3. SDカードをフォーマットします。
 フォーマットはDiskFormat32を使いました。
 ここでトラブル。SDカードが書き込めないとエラーになります。
 ここを参考にdiskpartコマンドで読み取り属性をクリアしました。
4. Win32 Disk Imagerを使って、先ほどのOSイメージを書き込みます。

組み立てる前にWifi設定だけしておきます。
手順

  1. Raspberry PIにSDカード、マウス、キーボード、モニタを繋げます。
  2. Raspberry PIに電源を入れます。
  3. しばらく待つとデスクトップが表示されます。
  4. デスクトップ画面からWifi接続設定を行います。

GpPiGo3を組み立てます。(組み立て方は先ほどと同じです)

組み立てたら、GoPiGo3の電源を入れて、しばらく待つとWifiランプが白色に光ります。
接続方法として2つあります。

・SSH接続

SSHクライアント(私はTeraTermを使用しました)をインストールし、ログインします。
ホスト名pi@dex.localで接続し、パスワードrobots1234で入ることができます。

SSH1.png
(画面1)
SSH2.png
(画面2)
SSH3.png
(画面3)

・VNC接続
ブラウザで「dex.local」を開いてVNCを選択し、パスワードrobots1234をいれるとデスクトップが表示されます。

vnc.png
(VNC画面)

ブラウザでVNCができることを知らなったので、ビックリしました。
また、どちらもIPアドレスではなく「dex.local」で接続できるので、IPを調べずにすみます。素晴らしい!

デスクトップのGoPiGo3 Control Panelを起動し、GoPiGo3が動くことを確認します。

vnc2.png
(テスト画面)

■PlayStation3コントローラー接続

組み立てる前に接続設定は済ませておきます。

ここを見ながら設定します。
PS3 Control with GoPiGo

設定が済んで、再起動後、PSボタンを押すとbiuetoothの認識は一瞬で終わります。
PlayStation接続と違って、LEDは消えますが、接続しているので、安心してください。
ls /dev/input/js0
があれば、成功です。

■トラブル3

一番やりたかったPS3からのコントロール。
接続設定は済ませていざ実行となった時に、エラー!。かなりがっかりしました。
が、Pythonの勉強ができると気を取り直し、追跡することにしました。

(結果)

PS3コントローラーデータの受信部分がサンプルでは動かないことが判明。(理由は不明ですが)

こちらを参考に受信部分を見直しました。
■ラズパイでラジコン(3):Pythonでdualshock3の入力を読み取る
https://www.usagi1975.com/30jul170722/

また、提供されているサンプルはGoPiGo2用のスクリプトでした。Exampleを見ならがGoPiGo3用に書き直しました。
できたコードは以下の通りです

ps3.py
#!/usr/bin/python3
import struct
import gopigo3
import easygopigo3 as easy
import time

device_path = "/dev/input/js0"

# unsigned long, short, unsigned char, unsigned char
EVENT_FORMAT = "LhBB";
EVENT_SIZE = struct.calcsize(EVENT_FORMAT)

try:
  GPG = easy.EasyGoPiGo3()
except Exception as e:
  print("GoPiGo3 cannot be instanstited")
  print(e)
  exit()

with open(device_path, "rb") as device:
  event = device.read(EVENT_SIZE)
  while event:
    (ds3_time, ds3_val, ds3_type, ds3_num) = struct.unpack(EVENT_FORMAT, event)
    print( "{0}, {1}, {2}, {3}".format( ds3_time, ds3_val, ds3_type, ds3_num ) )

    if ds3_val == 1 and ds3_type== 1 and ds3_num==13:
        GPG.forward()
        print "F"
    if ds3_val == 1 and ds3_type == 1 and ds3_num == 14:
        GPG.backward()
        print "B"
    if ds3_val == 1 and ds3_type == 1 and ds3_num == 16:
        GPG.right()
        print "R"
    if ds3_val == 1 and ds3_type == 1 and ds3_num == 15:
        GPG.left()
        print "L"
    if ds3_val == 1 and ds3_type == 1 and ds3_num == 0:
        GPG.stop()
        print "STOP"

    event = device.read(EVENT_SIZE)

実際に動いている様子はこちら

■結論

  • GoPiGoは手軽で簡単。ベースキットなら1万円台で手に入ります。
  • PS3コントローラーがあれば、ラジコンカーが作れます。
  • ある程度のRaspberry PIの知識は必要です。

■参考リソース

GoPiGoについて日本語で書かれているリソースはそれほど多くありません。その分内容が濃くてとても参考になります。参考にしたリソースです。感謝!

<日本語で書かれた記事>

ROSでgopigo3を走らせる
ubuntu mate + rosでGoPiGoを動かしている方です。

ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(1) 開発準備編
GoPiGoに関して、日本語できちんと書かれた記事はこれくらい?

GOPIGOを作ろう
米国のDexter Industriesから直接購入された方のBlogです。
書かれている内容や、やりたいことは私に近くて参考になりました。

10さいからはじめる「お絵かきロボット」づくり
子供に楽しいロボットの講義をしているテイストが素晴らしい。

工作と小物のがらくた部屋 Dexter Industries GoPiGo 組み立て
GoPiGoだけでなく、GrovePiも組み立てられている方。すげぇ。

GoPiGo2で遊んでみた
上手にスライドにまとめられている方です。

tkamada_の日々
赤い基盤はArudinoだそうです。知らなかった。

<Shops>
ロボショップ株式会社
米robotshopの日本法人。品揃えが多いのと発送が早いのが素晴らしい

GoPiGo3 初心者スターターキット:ロボショップ 店 - 18,829円
ベースキットなら1万を切る安さ。パパもう1台買っちゃうゾ!

はじめてのロボット・カー開発キットの販売
GoPiGoをシステムとして販売されている会社様です。
目の付け所が良いと思うので、商売になればいいな。

<Dexter Site>
GoPiGo3 Tutorials & Documentation
ここにリソースがまとめられています。
古いのが難点

■PS3コントローラー
PS3 Control with GoPiGo
接続手順はこの通りですが、サンプルは、GoPiGo3では動きません。

Assemble the GoPiGo Servo Kit
実際のキット内容と説明が全然あっていません。早く更新してください。

Dexter Industries GoPiGo3 Documentation!
APIドキュメントのようです。

Raspberry Pi, Java, and the GoPiGo3 - Part 1: Setting up the GoPiGo3
英語のBlogですが、loginに関して丁寧に解説されています。
ここに掲載されたサンプルが実際に同梱されていました。素晴らしい。

3
4
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
3
4