1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

番外編|制御班体験会 ~Dynamixelを触ろう~

Last updated at Posted at 2023-05-16

(本記事は岐阜大学ロボコンサークルの2023年度制御班体験会にて使用しているものです)

目標はこれ

Dynamixelサーボモーターを個人のPCからUSB経由で操作する。
このとき簡単にPythonに触れて、ちょっとしたアレンジができるようになる。

さっそく始めよう!

※ 記事を丁寧に読んで進めてください。

以下空いている時間を使用してU2D2 Hub Boardの組み立てやDynamixelの準備を行なうとよい

手順1. Anacondaをインストールしよう

Free Download | Anaconda
ここから普通にダウンロード・インストールする。
なお、インストール時にインストール場所を聞かれるが、このインストール場所をWindowsのメモ帳か何かにコピペしておく。
他は特にいじらずにひたすら「次へ」を押す。
無事完了すればOK。

手順2. AnacondaのPATHを通そう

  1. Windowsの下の検索バーで「システム」と検索し、候補に挙がる「システム環境変数の編集」を開く
    image.png

  2. 表示される下画像左側のような画面のなかから「環境変数」のボタンをクリック。

  3. クリックすると下画像右側のような画面が出てくるので、その中のシステム環境変数の中のPathという部分をクリックして青い選択状態にしたら画面右下の「編集」をおす。
    image.png

  4. 下のような画面が表示されるので、右上の「新規」を押して「参照」を押す。
    image.png

  5. このような画面が表示されたら下画像のように「PC」→「OS(C:)」をクリックしてその先も同様に「OS(C:)」の中の「ユーザー」→「(自分のユーザー名)」とたどってその中の「anaconda3」のフォルダを選択し右下のOKを押す。
    image.png

  6. すると「環境変数名の編集」の画面にて「C:\Users(自分のユーザー名)\anaconda3」の1行が追加されていることを確認する。
    ※「\」が「¥」で表示されていても問題ない。

  7. 同様にして「PC」→「OS(C:)」→「ユーザー」→「(自分のユーザー名)」→「anaconda3」→「Library」→「mingw-w64」→「bin」でOKを押す。

  8. 同様にして「PC」→「OS(C:)」→「ユーザー」→「(自分のユーザー名)」→「anaconda3」→「Library」→「usr」→「bin」でOKを押す

  9. 同様にして「PC」→「OS(C:)」→「ユーザー」→「(自分のユーザー名)」→「anaconda3」→「Library」→「bin」でOKを押す

  10. 同様にして「PC」→「OS(C:)」→「ユーザー」→「(自分のユーザー名)」→「anaconda3」→「Scripts」でOKを押す

  11. ここまでやって同様に「環境変数名の編集」の画面にて下の5行があることを確認。

C:\Users\(自分のユーザー名)\anaconda3
C:\Users\(自分のユーザー名)\anaconda3\Library\mingw-w64\bin
C:\Users\(自分のユーザー名)\anaconda3\Library\usr\bin
C:\Users\(自分のユーザー名)\anaconda3\Library\bin
C:\Users\(自分のユーザー名)\anaconda3\Scripts

確認出来たら、ここまでで開いた画面ですべてOKを押して閉じる。

参考:【Windows】Anaconda3における環境変数への追加方法【Python】

追加し終わったらPCを再起動

再起動したら、PCのコマンドプロンプトを開いてconda info -eと入力して赤字のエラーが出なければOK!

手順3. VSCodeと拡張機能をインストールしよう

Visual Studio Code - Code Editing. Redefined
ここからダウンロードして特に何もいじらずインストールする。

インストール出来たらPython拡張機能「Python Extention Pack」を入れる。
image.png

同様にして、日本語化拡張機能も入れる(検索画面から「Japanese」で検索)

ここまで出来たら自動保存の設定をする。下参照。
image.png

ここまで出来たら一度HelloWorldで実行できるか確認する。
…参照 1. 最速習得!Pythonでプログラミング自由自在! - Qiita

上手くHelloWorldできてたらOK!

手順5.GithubからDynamixel_tutorialをダウンロードしよう

G-robo/Dynamixel_tutorial
上のGitHubからZipで必要なファイル・ライブラリをダウンロードする。
image.png

ダウンロード出来たら解凍。

※解凍とは
zip形式とはファイルのサイズを圧縮して小さくなっている状態です。
解凍したいzipファイルを右クリックするといくつか表示される選択肢の中に「すべて展開」というものがあるはずです。それをクリックしてOKを押したら解凍が始まり、しばらくして無事終了したらOKです。
すると、zipファイルの近くに「.zip」じゃない同じ名前のフォルダが確認できるはずです。確認出来たら元のzipファイルは要らないので削除してください。以後この「.zip」じゃない同じ名前のフォルダを「解凍したフォルダ」と呼びます(一般用語です)。

解凍したフォルダをVSCodeで開きます。
開いたらDynamixelSDKフォルダの中にあるpythonフォルダを右クリック
「統合ターミナルで開く」を選択
image.png

このとき開かれるターミナルが「コマンドプロンプト」であることを確認。

ターミナルが開いたらそこでpython setup.py installと入力し セットアップする。
それっぽい表示が出たらOK。

手順6. サンプルプログラムを動かそう

Dynamixel_tutorial >DynamixelSDK > python> tests > protocol2_0 のフォルダを開き
read_write.pyをクリック、プログラムコードの中の104行目にあるDEVICENAME = '/dev/ttyUSB0'の部分を下の手順に沿って書き換える。

手順:

0、Dynamixel及びU2D2をPCにUSBで接続する。このとき、U2D2 hub boradにACアダプターを差して、電源をオンにしておく。
1、Windowsからデバイスマネージャーを開く
image.png

2、「ポート(COMとLPT)」をクリックして「COM?」と表示されている番号を確認。

※ ここで「ポート(COMとLPT)」が表示されず、「その他」に「usb>> serial-converter」が表示されている場合
→ CDM212364_Setup.zip (2.2 MB) ← ここをクリックして、Zipをダウンロードして解凍する(右クリック→「すべて展開」→OK→.zipファイルを削除)。解凍したフォルダの中にある「.exe」ファイルをダブルクリックして実行。指示に従って適当にOK、OKと押していく。特にいじらなくてOK。最後まで行ってインストール出来たっぽければ閉じる。もう一度デバイスマネージャーを確認して「ポート(COMとLPT)」→「COM?」が表示されていれば完了!元のCDM212364_Setupフォルダは削除してOK。

3、先ほどのプログラムの104行目をDEVICENAME = 'COM?'のように書き換える。
※COM?をシングルクオーテーション' 'で挟むことに注意(Shit+7キー)

ここまで出来たら実行
※ read_write.pyが画面に表示されている状態で、右上の△マークをクリック。すると統合ターミナルで

Press any key to continue! (or press ESC to quit!)

の表示がされることを確認して、統合ターミナル上のどこかを一度クリックして選択状態にしておく。
早い話が、右上の△マークをクリックした後は「Press any key to continue! (or press ESC to quit!)」の文字周辺を一度クリックする。

そして、なにかキーボードをたたくたびに回転すればOK。
※ 終了するときはCtrlキーを押しながらcキーを押せば終了する(強制終了コマンド)。
動かないときの対処法
・エラーが出ている→読んだり調べたりする。
・謎(もう箱が開けてあったDynamixelを使用している)→一度read_write.pyと同じフォルダにある「factory_reset.py」を実行(もちろん同様にCOM?に書き換える)してからもう一度read_write.pyを実行する。

手順7. 他のプログラムも実行してみよう!

「Dynamixel_tutorial」の中にあるsample_position.pyやsample_velocity.pyも実行してみよう。
実験:キーボードの右矢印キーや左矢印キーを押すとどうなりますか?
※ 終了するときはCtrlキーを押しながらcキーを押せば終了する(強制終了コマンド)。

詳しい解説 > 2. 最先端サーボモーター「Dynamixel」を自由自在に動かそう! - Qiita

手順8. アレンジしてみよう

数値やボタンでのifによる条件分岐を試してみよう

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?