0
1

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 3 years have passed since last update.

PLEN Control ServerをViVi PLEN2に対応させる

Last updated at Posted at 2020-05-09

ViVi PLENのキャリブレーションをTCP通信でコマンド直打ちでやっていたのだが、あまりにもまどろっこしいので、純正のPLEN Control Serverで行えないかを試してみた。
いくつか試行錯誤はあったが、何とか動くところまでこぎつけたので記録。

PLEN Control Serverとは:
PLEN2は無線通信をBlueToothによるシリアル通信で行っているが、その通信を請け負い、かつWebサーバとしてふるまうことでアプリケーションの開発を容易にできるもののようだ。

アプリケーション版とPython版の2種類があるが、当然ながらアプリケーション版は動かず。
そこでPython版をGithubから落としてきて中身を見てみた。
https://github.com/plenprojectcompany/plen-ControlServer

結論から言ってしまうと、次の3点を修正すればとりあえず動いた。
1.Control ServerとPLEN2の間のシリアル通信を確立させるのに、デバイス'Arduino Micro'をサーチし、接続を行っていた。ViVi Plenとの接続は有線シリアルなので、返り値として(自分の環境では)'COM3'を決め打ちにする。
2.通信速度の設定が自動で調整されない。115200で決め打ち。
3.自分の開発環境がPython3であったためと思われる違いを修正。
 Print分の構文
 Serial.write()に与える値がUTFでエラーを吐くため、Strに変更。Serial.write(str.encode())

しかしここで問題が発生。
現在のPLEN2とViVi PLENでは、ベースになっているバージョンが違うらしく、モーションファイルをViViにダウンロードさせようとしても出来なかった。

PLEN2のファームについて、該当部分をViVi PLENに移植を検討。

2020/05/10追記
ViVi PLENでは、モーションファイルをSPIFFSのファイルとして扱う。
それが2Mb、ほかのファイルが合計8Kb使うので、ArduinoIDEの設定でFSを3Mb確保する必要がある。

2020/05/16追記
firmware.ino
void setMotionHeader()内のm_header_tmpへの代入をオリジナルに合わせて変更

Protocol.cpp
30, // MOTION HEADER

35, // MOTION HEADER
に変更

JointController.cpp
組み立て説明書通りだとピンの位置とサーボの位置が一致しなかったので、
const unsigned char servo_map[PLEN2::JointController::SUM] = {16, 7, 6, 5, 4, 3, 2, 1, 0, 18, 19, 20, 17, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23};
の3番目と4番目の値を入れ替え
const unsigned char servo_map[PLEN2::JointController::SUM] = {16, 7, 5, 6, 4, 3, 2, 1, 0, 18, 19, 20, 17, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23};

これでシリアル経由だがPLEN Control ServerとViViが繋がった。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?