Help us understand the problem. What is going on with this article?

ArduinoからWHILL Model CRを動かす

More than 1 year has passed since last update.

この記事はWHILL Advent Calendarの3日目の記事です.
3日目は中の人でソフトウェアエンジニアの私、杉浦がお送りします。

WHILL Model CRとは


WHILL Model CRとは、WHILL社が販売しているパーソナルモビリティWHILL Model CにRS232C経由で操作できるコマンドを追加した研究開発モデルです。

ハックしよう

WHILLのgithubで公式ライブラリが配布されています。
今のところ、

が公開されています。
今回はArduinoライブラリを使ってModel CRをArduinoから制御してみたいと思います。

用意するもの

Arduino SDKは予めこちらからインストールしておいてください。

Arduinoは、RS232Cシールドが対応している互換機やMegaでも大丈夫だと思います。
内部的にSoftSerialを使っているので、SoftSerialが実装されていない機種(ESP32 Arduono Core)などはおそらくそのままでは動きません。
RS232Cシールドの代わりにUART-RS232C変換基板も使えますが、TXとRXを間違えないように注意が必要です。
サンプルではRS232Cシールドの設定は、TXを7番ピン、RXを6番ピン になっています。

Model CR to RS232Cケーブル → Model CRから生えているケーブルとRS232を変換するケーブルです。自作が必要です。 

Arduinoライブラリをインストール

ここを参考に、WHILLの公式リポジトリwhill-arduino-sdkかライブラリをZipファイルをダウンロードし、インストールします。

正常にインストールされた場合、一旦終了して再起動すると、FileExamplesの中に"WHILL Model CR"という項目が増えていると思います。

サンプルを動かしてみよう

Arduino IDEの FileExamplesWHILL Model CR とたどると、以下の4つのサンプルスケッチを見つけることができます。

  • blink_power
  • callback
  • mirror_joystick
  • shake

blink_powerは5秒毎にWHILLの電源をON/OFFします
calllbackはWHILLから状態を受け取るたびにジョイスティックの値をPCにprintで表示します
mirror_joystickは、WHILLから受け取ったジョイスティックの信号を上下左右反転して、WHILLに入力します。
shakeは1秒ごとに左右にゆらゆらと揺れます

それぞれスケッチを開いた状態でArduinoに書き込むとサンプルスケッチが動作します。

whill-arduino-sdkで出来ること

  • 電源のON/OFF
  • WHILLからの電源供給(WHILLのバッテリー電圧)のON/OFF
  • ジョイスティックを仮想的に操作
  • 加速度センサ・ジャイロセンサの値の取得
  • バッテリー情報の取得
  • モーターの角度とスピードの取得
  • 現在の速度設定の取得

自由にスケッチを書いてみよう

さあ、ここまで来たらあとは自由にスケッチを変更したり、センサを追加して思い通りにWHILLを動かしてみましょう。
例えば....

  • 後進するときだけ音がなる
  • 距離センサを追加して人についてくる

などなど、様々なアプリケーションが考えられますね!

WHILL::register_callback()を使う場合の注意

WHILL::register_callback()でコールバックを登録した場合、ループの中で定期的にWHILL::refresh()を呼んであげてください。
この関数でソフトウェアシリアルのQueueからシリアルコマンドをパースして該当するデータがあったら場合はコールバック関数を実行するようになっています。
refresh()されない場合、永遠にコールバック関数が呼ばれません。

Arduinoをつなげるのに便利なUSBポート

PCからArduinoを切り離してスタンドアローンで動作させたいときは、WHILLのシート後ろにあるUSBポートからArduinoの電源を供給すると別途モバイルバッテリーなどをのせる手間が省けて便利です。

Pull Request募集中

whill-arduino-sdkはまだまだベータ版です。改善点がございましたらドシドシPull Request送ってください。

採用、してます!

現在WHILLでは電気エンジニア、ファームウェアエンジニアなど様々な職種を募集しています!
興味のある方はぜひWantedlyでエントリー・話を聞きに来てみてください!

電気エンジニア募集!一緒にモビリティの回路設計しませんか!
https://www.wantedly.com/projects/198522

ファームウェアエンジニアを募集!自社開発のモーター制御も担当できます
https://www.wantedly.com/projects/164079

他にも、アプリエンジニアやQAなども募集してます!

aquahika
パーソナルモビリティのソフトウェアをつくっています
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした