6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ArduinoからWHILL Model CRを動かす

Last updated at Posted at 2018-12-03

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

WHILL Model CRとは

[WHILL Model CR](https://whill.jp/model-cr)とは、WHILL社が販売しているパーソナルモビリティ[WHILL Model C](https://whill.jp/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なども募集してます!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?