Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

open manipulator で遊ぶ その2:最初のアプリケーション

前回に続いて、今度は最初のアプリケーションを実装するところまでやります。
初回はシャレにならない程面倒なので、腰を据えてやる必要があります。

実際のところ

macOSでやります。

おおまかなフロー

  • Arduino IDEを入手
  • Arduino ボードライブラリにOpenCRを追加(20分ほどかかる)
  • OpenCRにOpenManipurator chain用ライブラリを導入
  • Processing を入手
  • Processingにサンプルアプリ(chain.pde)を導入
  • サンプルアプリのポート番号を書き換え <=ここ、なぜか公式に書いていない

具体的手順

Arduino IDEを入手

Arduino 公式から入手。
Arduino - Software

Arduino ボードライブラリにOpenCRを追加

まず、Arduinoの設定画面にてボードを追加する必要があります。

f:id:shuzo_kino:20190810001135p:plain
ここに、以下のURLを追記。
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json

IDE本体に戻って、ボードマネージャーをクリック
f:id:shuzo_kino:20190810001004p:plain
こんなリストがでてくるので
f:id:shuzo_kino:20190810001010p:plain
OpenCRを選択。私は最新の1.4.9を入れました。
f:id:shuzo_kino:20190810001300p:plain

で、ようやくライブラリを追加となるのですが……これがやたら時間がかかります。
具体的には、20分ほど。
どうもコンパイルに時間がかかっているらしく、
ダウンロードが終わってからが長いので気長に待ちましょう。
無事終われば、このようにボードリストのなかにOpenCRが現れます。
f:id:shuzo_kino:20190810001341p:plain
サンプルもご覧の通り。
f:id:shuzo_kino:20190810001358p:plain

OpenCRにOpenManipurator chain用ライブラリを導入

Arduinoメインメニューのスケッチ例から「OpenManipulator」=>「example」=>「open_manipulator_chain」
f:id:shuzo_kino:20190810011116p:plain

Processing を入手

Processing公式から本体を導入。
processing.org

起動すると、こんな画面がでるはず。
f:id:shuzo_kino:20190810011345p:plain

さらに、外部ライブラリとして「ControlP5」を入れる必要があります。
f:id:shuzo_kino:20190810011402p:plain
f:id:shuzo_kino:20190810011418p:plain

Processingにサンプルアプリ(chain.pde)を導入

>||
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_processing.git
|

Processingのファイル読み込みで
Open_manipulator_processing => Chain => Chain.pde

で、このまま再生……とはいかず、サンプルアプリのポート番号を書き換える必要があります
ここは何故か公式に書いておらず、1時間ほどここで積みました。

//78行目
  connectOpenCR(0); // Inside the brackets depends on a laptop enviroment.

ウチのコンソールには、こんな感じでリストがでてます。
今回、通信で使うのはttyのusbモデムなので引数を0から7に変更。

[0] "/dev/cu.Bluetooth-Incoming-Port"
[1] "/dev/cu.WirelessiAP"
[2] "/dev/cu.SSDC"
[3] "/dev/cu.usbmodem14111"
[4] "/dev/tty.Bluetooth-Incoming-Port"
[5] "/dev/tty.gds-WirelessiAP"
[6] "/dev/tty.SSDC"
[7] "/dev/tty.usbmodem14111"

無事起動すると、こんな感じの画面がでるはず。
f:id:shuzo_kino:20190810010855p:plain

注意すべき点

OpenCRのリカバリーモード

何らかの事情でボードに書き込みできなくなった場合、
リカバリーモードに入ってから再度書き込みします。
Button2とリセットを押しながら、途中でリセットを話せばLEDがチカチカしはじめます。
詳しくはこちらから。