モノづくりが好きで、ブログでは電子工作やゴミ回収ロボットのことを書いています。, ゴミ回収ロボットを一緒に開発してくれる方がいらっしゃいましたらお問い合わせフォームからご連絡ください。, Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~, , // Update the current slider value (each time you drag the slider handle), Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~ by, 解決!「Arduino ‘read’ was not declared in this scope」というコンパイルエラーについて, Blenderと3Dプリンターを使用してミニ四駆を作ってみた!【3Dプリンターで出力可能な3Dデータを作ります!】, RaspberryPiとMJPG-Streamerでライブストリーミングをする方法, 毎回 sudo chmod 666 /dev/ttyTHS1を実行しなくてもよくなる方法, JetsonNanoに入れたrosserialを使ってArduinoでLチカを行う. ***************************************************, メインとなるロボットアームはサインスマートの5軸ロボットアームを使用しています。今回は5軸のロボットアームを購入しましたが、他にも3軸や6軸のものもあるようです。, サーボモータはMG996Rが4個、DS3218が1個付属されています。DS3218はハンド用として付属されていますが、電圧などをこれのためだけに別途用意したくはなかったのでMG996Rをもう1個追加で購入しました。フレームはアルミ製かと思っていたのですが、鉄製でした。持ってみるとかなりズッシリとしていて重いです。その分強度は強いと思います。, サーボのトルクがかなり強いので土台部分をガッチリと固定してから動かさないと振り回してあぶないです。, 組み立てにはプラスドライバーがあれば十分です。あとラジオペンチなどあればナットの取り付けのときに役に立つかもしれません。, ネットから注文しましたので、ロボットアームはバラされた状態で届きます。この状態から写真を見ながら組み立てていきます。組み立て方法などが記載された説明書などがあればよかったのですが、そういったものは同封されていませんでした。, サーボとフレームをネジで組み立てていきます。一つのフレームとサーボはこのようになっています。, サーボモータの三段目の部分を取り付けます。四段目のフレームは先に固定しておいたほうがいいです。, 四段目のサーボを固定します。ここで、付属されているネジでは四段目のフレームを固定しているネジと四段目のサーボが干渉してしまうことが分かります。。なので、可能ならば付属されているネジより少し短いネジが用意できれば理想的です。自分は干渉させたまま、サーボを固定するネジのほうを長くして対応しています。, まずは初期版ロボットアームについて書いていきます。こちらのほうは結果的に操作が微妙でしたので、読み飛ばしていただいても大丈夫です。, 今回はPythonでロボットアームを操作していきたいと思います。ブラウザの操作画面はこのようになります。, 前回は一個のサーボモータをブラウザから操作してみましたので、こちらをもとに今回のプログラムを作成します。, ブラウザのスライダーでRaspberryPiのサーボモータを動かす(WebIOPI利用), ブラウザに表示するindex.htmlは以下のようにしました。上から順にロボットアームのサーボを操作するスライダーを設置しています。, 簡単に解説していきます。ロボットアームのサーボモータは一つ一つブラウザのスライダーから操作できるようにしています。上から順番に操作できるようにしています。一番上のスライダーはロボット アームの開閉部分です。, スライダーにはレンジを設定してあるので、それぞれ「min」と「max」を設定していきます。レンジを超えてしまうとサーボモータの可動範囲を超えてしまい、壊れる可能性が非常に高くなるため気をつけるポイントとなります。, スライダーのID「id=”myRange1″」などは、ファイル下部のJavaScriptに紐付いています。こちらのほうでスライダーの値などを読み取っていきます。, まず、スライダー1が操作されると上記が動き、output1にスライダー1の値が表示されます。またslidervalueにスライダーの値が代入され、「webiopi().callMacro(・・・)」の部分で引数としてPythonに渡されます。, 次にPythonのほうはこのようになっています。GPIOはwiringpiで操作しています。インストール方法については上記記事をご参照ください。, こちらのほうも簡単に解説していきます。HTMLのほうのスライダーが操作されるとマクロが呼ばれます。, 引数として渡されたスライダーの値は「getServoPanPWMvalue(int(slidervalue))」で関数に渡されます。, 関数の中では配列「val2」からインデックスの場所の値がリターンされてきます。配列の中身はPWMで出力したい値をそのまま格納しています。, リターンされてきたら「GPIO.softPwmWrite」でサーボモータのほうに出力されていきます。スライダーを操作するとサーボモータも動くようになっていると思います。, ページ下部の回路図を参照ください。ピンはPythonファイルで定義してあるものを使う必要があります。, ガタガタしてしまうのはどうしようもありませんでした。いろいろと調べてみるとwiringpiのソフトウェアPWMでは安定したPWMを出力できないのが原因らしいです。よって、これを解決するためにはハードウェアPWMかサーボモータドライバを使うと安定したPWMを出力できるらしいです。, ハードウェアPWMを試してみたときの記事はこちらです。こちらのほうでは情報通り安定したPWMを出すことができました。, ブラウザのスライダーでRaspberryPiのサーボモータを動かす(ハードウェアPWM), でも、このハードウェアPWMはRaspberryPiのGPIOでは2個までしか利用することができないので、5軸あるロボットアームでは足りません。残りの3個はソフトウェアPWMとなってしまいます。, そこで何かほかに良い方法はないか探してみたところ、pigpioというライブラリを利用するとハードウェアPWMを使わなくても高精度PWMを出力できることが分かりました。, 次はpigpioを利用して改良版ロボットアームを作りましたのでこちらの説明をしていきます。, 上記まででロボットアームを動かせるまでにはなっていましたが、サーボがどうしてもガタガタしてしまいました。そこでpigpioというライブラリが高精度なPWM制御ができるということだったのでそちらのほうでプログラムを書き直してみました。, こちらのライブラリは評判通りの性能を発揮してくれました。ハードウェアPWMを使っているわけでもないのにピタッとサーボが止まってくれます。そう、これを目指していた。, 改良版のindex.htmlはこちらです。上記まででは角度指定で動かしていなかったので細かく操作することができませんでしたが、今回は0~180度で操作できるようにしてみました。minとmaxはロボットアームの可動範囲に合わせて変更しています。, こちらのほうもブラウザのスライダーが操作されたら値がPythonファイルに渡され、それをgetServoPWMvalueに引数として渡しています。この中ではスライダーの値が500~2400に変換されて返却されてきます。, 注意事項として、ファイル名を「pigpio.py」というファイル名にしないこと。pigpioは外部からインポートしているため、ファイル名をライブラリ名と同じにしてしまうと動かなくなってしまいます。ファイル名は「script.py」などのようにして保存しておいたほうがよいです。, また、pigpioを使う場合は先にデーモンを起動しておく必要があります。こちらを先に実行しておきます。, 改良版のHTMLではGPIOのピンを変更していますので、HTMLのファイルの内容に合わせて接続を変更しておきます。サーボモータの電源には単三乾電池4本(6V)を使用します。6VのACアダプタがあればそちらでもいいかもしれません。, サーボモータの電圧を測定してみました。約6Vぐらいの電圧となっており、ちゃんと動作してくれました。電圧が低すぎたり高すぎたりするとサーボモータが動いてくれない可能性があります。, これでまたwebiopiを再起動してブラウザにアクセスするとこのような画面が表示されます。, 改良版のロボットアームを動かしてみたときのようすがこちらです。初期版と比較して振動が少なくなっていることが分かります。こちらのほうが断然良い感じになりました。(※2020/4/26 貼り付けている動画を間違えていましたので修正しました。), 今は以下のような感じでラジコンボートにロボットアームを取り付けてゴミ回収ができるようなものが作れればいいかなと思っています。, 以上、今回はRaspberryPiとサーボモータで5軸ロボットアームを動かす方法についてご紹介させていただきました。, KAZUKIです。

By continuing to use the site, you agree to the use of cookies. ・ジャンパーワイヤ では、目次の流れで書いていきたいと思います。, *************************************************** Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~ PCA9685搭載16チャネル PWM/サーボ ドライバー (I2C接続), (追記) ・DCジャック(ACアダプターを回路に接続する用) The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. RaspberryPi3B+とサーボモータードライバ(PCA9685)でサーボを動かしてみた, こちらについてもその他のサイトを見ながら間違えのないように実施しました。PCA9685とRaspberry Piをつないでいる線は4本しかありませんが、何度も確認しました。こちらについても問題はなさそうです。, 試しにPCA9685なしで動かしてみたところ、普通に動いてくれたのでサーボモーターは問題なさそうです。, こちらのサイトに「ACモーターと100% デジタルサーボは動作しない」とあります。…マジで?デジタルサーボは動かないだと。。。恥ずかしながら今まで自分のサーボがアナログかデジタルかを考えたことがありませんでしたので、使っているサーボモータ(MG996R)の表記を確認するとデジタルサーボのようです。たぶん。, つまり、アナログサーボモーターを使ったほうがいいかもしれないので、他の方が使われている「SG90」という小さいサーボを1個購入して試してみる価値はありそうです。, (追記) 電子工作やロボットの情報をメインに発信していきます!, 今回はRaspberryPiとサーボモータでサインスマートの5軸ロボットアームを動かしてみましたので、そのときの情報を書いていきたいと思います。作ったロボットアームでボトルキャップチャレンジをやってみたときの様子がこちらです↓, ロボットアームを作ったのでやってみました#ペットボトルキャップチャレンジ #ボトルキャップチャレンジ pic.twitter.com/cRXoHNxPGn, イメージ通りに動いてくれてとても嬉しかったです。可能なら他のことにもチャレンジしてみたいですね。

.

フォレスター バックカメラ 映らない 9, バイク ツーリングタイヤ おすすめ 2020 4, おしゃれ キャンプ場 関西 10, Audacity クリッピング 除去 5, 逃さ ず の石橋 料理 17, プラド 走行距離 寿命 15, Windows7 マザーボード交換 ライセンス認証 7, 犬 薬 吐いた 46, 画面録画 容量 Pc 48, Dbr M180 不具合 5, Sqft M2 換算 4, 閉店 アナウンス 例文 年末 5, Vb6 Load コントロール 4, Aquos Sense3 通知音 8, ピル 休薬期間 短縮 ヤーズ 19, Googleアプリ 勝手に 開く 4, 薬学部 病院実習 スライド 4, グラブル 闇 奥義上限 36, Ana Card ログイン 4, ペリカン 実況者 年齢 38, コート 縫い代 パイピング 4, パール イズミ Pgl 9, マクセル ブルーレイディスク ダビング できない 5, 筑駒 入試 抽選 5, Hgss ハートのウロコ 集め 49, 広島 Bar A 5,