がちもとさんのブログ

co-founder #KumaMCN / @KnowComInc R&D戦略チーム / #Azure #HoloLens #MRPP / #AWS #ML / #CV #SLAM #Python / #WHILL #自動運転 / #メタバース #XR / #Databricks / お仕事のご依頼はDMで✉️

PythonでWHILLを動かしてみた

WHILL Advent Calendar 2018 - Adventarの21日目の記事です。

WHILL Model CRのモーターコントローラが返ってきました。経緯はこちら。 モーターコントローラのトランシーバー及びマイコンが故障していたそうです。 原因は、TX/RXとバッテリーのピンが接触し、トランシーバーに定格以上の電圧が加わったためです。 TX/RXとバッテリーのピンは隣にあるので、注意しましょう! WHILLの仕様書はこちらです。 github.com

今日はPythonでWHILL Model CRを動かします。

開発環境

接続ケーブルを準備する

外部機器(PC)からWHILLを動かすには、接続ケーブルを自作する必要があります。
接続ケーブルの作り方はMioさんの記事(接続ケーブルのつくりかた - WHILL Model CRについてのブログ)を参考にしてください。
構成は、PC(USBポート)→ USB - RS232C 変換ケーブル → 自作ケーブル → WHILL になります。

USB - RS232C変換ケーブルはこちらを使用しました。ドライバはここ(USB-CVRS9 のソフト(ドライバ)ダウンロード - サンワサプライ株式会社)にあります。

自作ケーブルの部品はミスミから買いました。送料かからないので超良いです。

PCとWHILLを接続ケーブルで繋ぎ、デバイスマネージャーを開き、ポートの設定を下記のようにします。
f:id:gachimoto:20181230181105p:plain

Pythonのサンプルを動かす

サンプルプログラムがgithubにあるので、ダウンロードします。
github.com
scriptフォルダのwhill.py、whill_data.py、whill_packet.pyをexamplesフォルダにコピペしました。あとはwhill.pyにimport serialを追記します。serialが見つからなければ、pip install pyserialでインストールします。

examplesの中に、4つのサンプルがあるので、実行してみましょう。 試しに動かすときは、転倒防止バーの下に角材かなにかを敷いて、タイヤを浮かせて実験します。

cr_example1_joy.py

1秒ごとに少しずつ前進するプログラムです。
cr_example1_joy.pyの11行目、whill = ComWHILL(port='COM4')のポート番号は、デバイスマネージャーから調べて書きかえてください。
13行目の whill.send_joystick(int(10), int(0)) は、第一引数が前後、第二引数が回転になっており、それぞれ-100~100までの値を入力します。
第一引数:(+)前進、(-)後退
第二引数:(+)右回転、(-)左回転

cr_example2_data.py

1秒ごとに加速度、ジャイロ、ジョイスティック、バッテリー、モーターの値を表示するプログラムです。
whill.pyの42行目、self.accelerometerself.accelerationに変更します。
cr_example2_data.pyの21行目、print(whill.accelerometer)print(whill.acceleration)に変更します。
f:id:gachimoto:20181230183745p:plain

cr_example3_callback.py

cr_example2_data.pyのコールバック関数を用いたプログラムです。
cr_example3_callback.pyの25行目、print(whill.accelerometer)print(whill.acceleration)に変更します。
f:id:gachimoto:20181230184258p:plain

cr_example4_blink_power.py

3秒ごとに電源をオンオフするプログラムです。

まとめ

今回、Pythonのサンプルプログラムを用いて、PCからWHILLを動かしてみました。 実際に動くと楽しくなってきますね!(モーターコントローラ治ってよかった...)

whill.jp

https://www.facebook.com/KumaMCN/

株式会社ナレッジコミュニケーション(ナレコム)- コーポレートサイト