# -*- coding: utf-8 -*-, #ZeroOffsetはサーボモーターの基準の位置を調節するためのパラメーターです, #PCA9685はパルスで角度を制御しているため0~180のように角度を指定しても思った角度にはなりません, #そこで角度の値からパルスの値へと変換します。PCA9685ではパルス150~650が角度の0~180に対応しているみたいです, #それにpos(制御したい角度)を掛けた後、150を足すことでことで角度をパルスに直しています。, HiLetgo® 6個セット 2*120本 3種類 オスーオス メスーメス オス ーメス, https://qiita.com/ttyokoyama/items/935b51128d2d5bb26f15, https://sites.google.com/site/memorandumjavaandalgorithm/raspberry-pi-jiang-zuo9-pwmkontorora-pca9685, https://cdn-shop.adafruit.com/datasheets/PCA9685.pdf, you can read useful information later efficiently. 動作電圧:4.8~6V、 初代のラズパイや600円台の1コアCPUラズパイ「Raspberry Pi Zero」をサポートするバージョンと、ラズパイ2/3対応バージョンの2種類があります。2018年4月11日時点の最新版は、前者が「berryboot-20180405-pi0-pi1-pi2-pi3.zip」、後者が「berryboot-20180405-pi2-pi3.zip」です。 ラズパイは色々できるらしいものの具体的なことはさっぱりわかっていなかったので、まずは基礎知識を習得する。, カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス), ラズパイを用いた電子工作について、本当に基礎から細かく丁寧に書かれていて、わかりやすい良書でした。 超入門 」(ソーテック社)、「電子部品ごとの制御を学べる!Arduino 電子工作 Why not register and get more from Qiita? Help us understand the problem. ネジを開け閉めする際、一般的な家庭にあるような太めのドライバーだと入らないことがあるので、精密ドライバーがあると良い。, 続いて、PCA9685にサーボモータを接続する。 これは工作するときには必須ですね。たくさんあるといいと思います。 実際には上記のコードに少し書き加えて、PCA9685一つで動かせる最大数の16個のサーボモータを動かしてみた。動いた。とても楽しい。, 使用する機器やソフトウェアのバージョン等により、記事の内容が同じように動作しない場合があります。知識不足のため、内容が間違っていることがあります。もし訂正等ありましたら、twitterやコメントでそっと優しめに教えていただけるとありがたいです。, sizohuさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog 黒(GND)・一個飛ばして緑(SCL)・白(SDA)・赤(Vcc)に挿してください。 Pi鯖構築、性能にばかり気を取られがちだが、決して忘れてはならない「置き場所」問題。横に並べたが故にデッドスペースが大発生、という訳で最近買った積層型のPiケースをご紹介安くて縦置き、Piを複数利用してサーバにしている人にはぜひお勧めしたい。 現在、ものづくりをしたいメンバーを集めて電子工作を利用した作品などを制作する「サッポロ電子クラフト部」を主催(https://sapporo-elec.com/)。誰でも参加可能ですので、ご参加をお待ちしています。, Raspberry PiやArduinoを使った電子工作から、 つかうサーボモータです。 sg90、比較的安価で小型ですし入手しやすいのでアマゾンで10個入りを買いました。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. 読者よりいただいたお問い合わせを元に、ロボット製作者、エンジニアのみなさんに役に立つ技術解説を発信していきます。, ラズパイでスマートホームを実現しよう! 第1回: ウェイクワードで操作できるスマートホーム・デバイスを作り始める, ラズパイでスマートスピーカーを自作しよう!第3回:会話をリアルタイムに記録、自動でテキスト化するスマート議事録デバイス!, Device The following two tabs change content below. 制御角:±約90°(180°) 制御パルスに対し、制御角が決まります。 つまり、2.5% で -90° 回転、12% で +90° 回転 ということです こちらはこの方のコードを参考にさせてもらっています。 以下のリンクから、プログラム「gum_gun.py」をRaspberry Piにダウンロードします。, また、前のサーボモータの制御で利用した「pca9685.py」も必要となるので、ダウンロードしたファイルと同じフォルダー内に配置しておきます。 サーボモータ(Servo motor)とは、位置制御や速度制御ができるモータです。 製造業においてサーボモータは、位置決め・速度制御やトルク制御を行う機構によく用いられる大変高額なものですが、今回はラジコンやホビーロボットに用いられる安価で小型なサーボモータ:SG90を使用します。 Successfully installed pip-19.1.1, pip3 install Adafruit_PCA9685  [Errno 13] 許可がありません, Successfully installed Adafruit-GPIO-1.0.3 Adafruit-PCA9685-1.0.1 adafruit-pureio-0.2.3, Adafruit-GPIO==1.0.3 メルカリで4個セット1500円で手に入りました, 3.PCA9685 #「GPIO4出力」でPWMインスタンスを作成する。 Adafruit-PCA9685==1.0.1 ”二代目 圧倒的 かず まなぶ (´・ω・`)” です 同様に12から16行目の「tilt_」から始まる変数にチルトを制御するサーボモータの設定をします。 商品説明に「サーボモータに」とかかれていますけど、別にledの明るさ制御などにつかってもよさそうです。 はい。 今回はこれで複数のサーボモータの制御を試してみます。. 今回はサーボモータを16個同時に動かすことができるサーボドライバPCA9685を使って、SG90とSG92Rを同時に動かしてみようと思います。, はサーボモータを接続します、左から0~15番が振られてあり合計16個のサーボモータと接続できます。, pip3 install Adafruit_PCA9685 したところ拒否されました。, pip3 install –upgrade pip3 と書いたところ pip3でなくてpipで書けみたいなことを言われました。, pip install –upgrade pip と書いたところ許可がないといっております。, Successfully uninstalled pip-19.0.3 心が豊かになる方法について 引き続き考えていきたいです。 © Copyright 2020. 第1回で利用したラズパイを利用できます。 18から20行目の「trig_」から始まる変数にトリガーを制御するサーボモータの設定をします。「trig_ch」に接続したサーボモータドライバのチャンネル、「trig_off」にトリガーを引かない状態のパルス幅、「trig_on」に輪ゴムを発射する場合のパルス幅を指定します。 ロールとチルトを制御するサーボモータは動作範囲の中央付近に動かします。多少の違いはありますが、一般的なサーボモータはパルス幅が約1500μ秒で中央まで動くようになっています。そこで、以下のように実行してサーボモータを中央に移動しておきます。, トリガーを動かすには、サーボモータを90度以上動かすこととなります。しかし、今回利用するMG90Dはおおよそ120度の範囲でしか動かせません。トリガーを引いていない状態を動作範囲の中央にしてしまうと、60度程度しか回転できず、トリガーを十分動かせません。そこで、動作範囲の左端にサーボモータを動かしておきます。 Device Plus – デバプラ - Powered by ROHM. What is going on with this article? なお、終了する場合は必ず「Q」キーを押すようにします。「Ctrl」+「C」で強制終了してしまうと、端末の表示がおかしくなってしまいます。おかしくなった場合は、端末アプリを起動し直しましょう。, 今回はサーボモータで輪ゴム鉄砲の向きを自由に変えられるようにしました。この手法は輪ゴム鉄砲以外にも使えます。たとえばカメラを取り付ければ遠隔から制御して撮影が可能になるライブカメラや、レーザーポインタを使えば遠隔から画面を指し示すこともできます。 https://toyo-interest.com/wp-content/uploads/2019/05/VID_20190519_214734.mp4, Python3: 3Dプロット from mpl_toolkits.mplot3d import Axes3D, 最大62個のPCA9685が接続できます¥。よって992個のサーボモータを同時に動かせます。, 今回はラズパイのGPIOに繋ぎましたが、16個サーボモータを繋げるときは、別途電源を取らなくてはならないと思います。, 例えば 0.5ms幅のとき0deg、1.5ms幅のとき90deg、2.5ms幅のとき180degになったりします。(周波数で変更できます。周波数が高いほうが高速で制御できます。), 例えば、周波数f=60Hzのとき周期はT=1/f=17ms です。(早い方がいいので60Hzで考えましょう。), 周期Tの分解能は12bitなので、周期Tを2^12=4096分割できます。1分割分を1ステップと呼ぶことにしましょう。, 周期17msを4096分割できるので、1ステップあたり0.004150390625ms になります。, パルス幅を0.5msにしたければ、ステップは0.5/(17/4096)=120.47058823529412ステップになります。, サーボモータ角度をodegにしたいときは0.5msですから、120ステップをONして、残りの(4096-120)をOFFにすれば良いのです。, サーボ回転角度を0degから180degにするためには、(602-120)=482ステップになります。, 1degあたりのステップ数は 482ステップ/180deg = 2.7 (step/deg), なので任意のサーボ回転角度θでステップ数Nsを表現すると、Ns=120+2.7θ ということになります。. šãŒï¼“本必要です, 色々書いてありますが、重要なことは回転角度が -90°~+90°まで指定できるってことです。, 2.5~12.0を入力すると、それに応じた角度へ回転します, 先のサンプルではPWMのDuty Cycleである2.5%~12%を指定して回転させていました。分かりやすくするために角度(Degree)で指定するための計算方法を紹介します。先程の仕様を詳しく見てゆきます。, これは周波数にすると 1 / 0.02 = 50Hz です, Duty Cycleにすると 0.5 × 50 / 1000 ~ 2.4 × 50 / 1000 、つまり 0.025 ~ 0.12 でパーセントを単位にすると 2.5% ~ 12% という意味です, 制御パルスに対し、制御角が決まります。つまり、2.5% で -90° 回転、12% で +90° 回転 ということです, これらを考慮すると、DutyCycleは次の計算式でDegreeから求まります, 実行すると、-90°の位置へすぐに移動し、その後ゆっくりと+90°の位置まで回転して終了します先程の計算式を活用しています, Web上で様々な応用例がありますので、参考にしてみてはいかがでしょうか?, キャラクターの腕を動かすhttps://www.youtube.com/watch?v=UjV1oy0o7qU, キャラクターを載せて動かすhttps://www.youtube.com/watch?v=xDxv_ow_Ilw, 飛び出すキャラhttps://www.youtube.com/watch?v=JB2AUmH3zAM, キャラクター全体を動かすhttps://kkooddoommoo.work/entry/bird/, キータッチhttps://qiita.com/anzaitetsu/items/a66213c97fdb04d9baa7, 壁スイッチhttp://tasdg.co.jp/wot/tips/post-40/, ふみきりhttps://www.youtube.com/watch?v=VdT2fqFhdbU, ゴルフhttps://www.youtube.com/watch?v=nscu1RC83wU, 以上、ラズパイでサーボモーター動作でした!, 最大180°回転を想定し、0.3sec以上待つ, 回転終了したら一旦DutyCycle0%にする, https://www.youtube.com/watch?v=UjV1oy0o7qU, https://www.youtube.com/watch?v=xDxv_ow_Ilw, https://www.youtube.com/watch?v=JB2AUmH3zAM, https://qiita.com/anzaitetsu/items/a66213c97fdb04d9baa7, https://www.youtube.com/watch?v=VdT2fqFhdbU, https://www.youtube.com/watch?v=nscu1RC83wU, サーボモーターのオレンジ色がGPIO4. モーターを動かすところあたりまで進めると、なんとなくラズパイを用いた電子工作のやり方がわかってくる。, 書籍にも書かれているが、ラズパイはそのままではサーボモータを2台までしか動かすことができないらしい。 電子工作初心者向けの指南でありがちなのは四輪とかキャタピラとかで、でもそれじゃロマンがない。 電子工作で特にちょっとロボットを作りたい場合 複数のサーボを動かしたい場合がありますよね。 複数のサーボを動かすにはいくつかの方法があります。 今回ご紹介する方法、RaspberryPi+Python+PCA9685で複 […] #とりあえずゼロ指定だとサイクルが生まれないので特に動かないっぽい?, you can read useful information later efficiently. ・https://sites.google.com/site/memorandumjavaandalgorithm/raspberry-pi-jiang-zuo9-pwmkontorora-pca9685 今回のネタは、輪ゴム鉄砲砲台! 複数のサーボを組み合わせて、操作できる輪ゴム鉄砲の砲台を作ります。難しそうに見えるかもしれませんが、かみ砕いて解説してもらいました。今回の内容をマスターすると、きっと応用が利くはずです。, また、サーボモータを複数使って複雑な動きを実現することも可能です。 サーボモータとほかの電子パーツを組み合わせると様々な作品を作り出せます。 ラズパイ電子工作の基本① サーボモータを使って指さし温度計を作ってみよう. pwm制御のサーボモータは、3線が出ているものが多い。 sg90の仕様を調べると、3線は次の構成となっている。 オレンジ線:pwm信号; 赤線:電源; ブラウン線:gnd; となっている。 信号線には50hzのpwm信号で入力する。 また、電源、pwm信号は4.8v〜5.0vとのこと。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. 本記事では、手作りした輪ゴム鉄砲を取り付けて操作できるようにします。取り替えも可能なので、子供自身で手作りした輪ゴム鉄砲を取り付けて楽しめるようにできます。 とりあえずAmazonで購入する。高いものもあるけど、精度を求めないなら安いやつでいいらしい。懐に優しい。, HiLetgo PCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバー IIC モジュール Arduinoに対応 ロボット, サーボモータも必要数購入する。メジャーな製品だと、TowerProのSG90というものがよく使われるらしい。秋月電子通商で1個400円。, 同じ大きさで、別のメーカーが出しているものもあったりする。壊れやすいらしいがよくわからない。安いものだと、10個セットで2,000円強くらいでAmazonで売っている。, Quimat 10個セット9g サーボモーター ロボット arduino Raspberry Pi 小型ヘリコプター RCカーなどに自作用, 今回は12個(6足×2自由度)、または16個(8足×2自由度)、将来的には24個(8足×3自由度)+αくらい使いたいなと思っていたので、安価なもので試してみることに。 ダウンロードしたら各サーボモータの操作範囲を設定します。Raspberry Piのメニューから「アクセサリ」-「Text Editor」を選択してテキストエディタを起動し、ダウンロードしたプログラム「gum_gun.py」を開きます。 2020年11月現在、ラズベリーパイ4が日本で手に入るコスパが良いモデルです! また、操作についても今回はキーボードを利用しましたが、ジョイスティックを接続したり、独自にスイッチを取り付ける、ネットを介して操作できるようにするなどさまざまな応用もできます。, 札幌在住のライター。電子工作やパソコン、Linux、スマートフォンなどの記事を執筆。「ラズパイマガジン」や「日経Linux」へ記事の執筆。著書として「これ1冊でできる!ラズベリー・パイ Next:Raspberry PiにNFCリーダを接続してSuicaを読み取る. 特に、電流や抵抗の話から説明してくれるのはとてもありがたかった。「そういえば小中学校でやったような…」という程度の知識しかなかった、つまり知識が全くなかった私も、すんなり理解することができた。 なので茶色をGND、赤を5V、黄色を4番あたりに繋いで制御パルス用に用います。, サーボモーター動いたo(^▽^)o #RaspberryPi pic.twitter.com/09ljoifxkY, ラズパイでサーボっていうとよくSG90が紹介されていますが今回はSG92Rを使っています。カギを回すために一応トルクがちょっと強めなSG92Rを採用したのが理由ですが、結果としては十分すぎるくらい強かったのでSG90でも問題なく回せると思います。サイズ感で好みの方を使えば良いでしょう。 されていない場合は配線ミスの可能性があります。, 以下のコードで簡単に動かしてみます。 まず、パンの制御するサーボモータを動かしてみます。制御範囲を確かめるには「servo_pca.py」を使います。組み立てた際は、おおよそサーボモータの中央となる「1500」となっています。ここからパルス幅を増やしたり減らし、パーツがぶつからない操作する範囲のパルス幅を確認します。この際、ほかのパーツがぶつからないことも確認しておきましょう。例えば、パルス幅を1800とする場合は以下のように実行します。, 同様にチルトの範囲も調べます。チルトも組み立てる際におおよその中央値の「1500」としています。上下に動かす場合には、トリガーを動かすサーボモータや輪ゴム鉄砲の持ち手部分が干渉しやすいので、注意して確認しておきます。なお、チルトでパルス幅を1300とする場合は以下のように実行します。, トリガーを調節します。サーボモータを動かしてトリがが動くことを確認してみましょう。この際、サーボモータの動作範囲を超えないように注意します。例えば、第1回で調べたようにMG90Dは、800から2300の範囲で動かせます。組み立てる際にトリガーを引いていない状態を範囲内の2200としました。同様にトリガーを引く際も範囲内の900にしてみます。, これでトリガーが正しく動くかを確かめましょう。トリガがサーボモータから外れてしまう場合は、ホーンに付けるガイドを工夫する必要があります。 ロールを制御するサーボモータは土台に取り付けます。本記事では四角い箱を作成し、そこにねじで取り付けています。なお、箱の作成にはレーザーカッターを使いました。レーザーカッターを利用せずに、木を切ったり、段ボールを加工する、3Dプリンターで出力するなど任意の方法で作成しても問題ありません。, チルトを制御するサーボモータは、ロールのサーボモータに取り付けるホーンと直角になるように配置します。本記事では板を直角に取り付け、一方にサーボモータ、もう一方にホーンを取り付けています。三角形の板は補強するために取り付けたものです。, 輪ゴム鉄砲を取り付ける部分は、長方形の板を利用します。多数の穴を開けておき、輪ゴム鉄砲の本体を結束バンドなどで固定できるようにしています。また、チルトのサーボモータを取り付けるホーンを中央配置します。トリガーを動かすためのサーボモータを輪ゴム鉄砲のトリガーの前方あたりに配置するように取り付けます。, トリガーを動かすために、ホーンに加工をしておきます。そのまま付属のホーンだけでトリガーを動かそうとすると、トリガーがホーンの外側に逃げてしまい、トリガーを正しく動かせません。そこで、ホーンの両方にガイドとなる板で挟み込み、トリガーがガイドの間にはまるようにしておきます。, それぞれのパーツができたら、電子回路を作成し、1つに組み上げます。 HiLetgo PCA9685 16チャンネル 12-ビット, 4.外部電源 PCA9685の外部電源として充電池(1.2v)を直列に4つなので4.8vを入れてます。RaspberryPiからの5Vだけでも良いのですが、念の為です。, 5.ジャンパーワイヤー 今回は、サーボモータドライバとして「AE-PCA9685」を利用します。AE-PCA9685は16個のサーボモータを接続して同時に制御が可能となっています。また、I2Cを利用してRaspberry Piから各サーボモータの制御ができるようになっています。, サーボモータドライバを使ってサーボモータを動かしてみましょう。次の図のようにRaspberry Piと接続します。, サーボモータはドライバの上にある「0」と記載された端子に縦向きに差し込みます。この際、茶色の線(GND)を上側にします。, なお、サーボモータを接続する端子の上に記載された数字またはアルファベットはチャンネル番号で、サーボモータを動かす際に対象のチャンネル番号を指定することになります。 | 0x40と0x70の二つで、後ほどプログラムを書く際にこれを用いる。, python3は違いがまだよくわかっていないが、とりあえず入れとこうというよくない考えによるインストール。, 以下で公開されているコードを拝借。色々ご説明がありとても助かる。動かすサーボの数など、必要に応じて書き換える。, Raspberry Pi講座 PWMコントローラ ( PCA9685 ) - Hobby robot laboratory, こんな感じでテストしてみた。動いた。楽しい。 ACアダプタからモータドライバに電源を供給するためにコネクタの変換が必要です。使用したのはこちら。, サーボモータはひとつの軸の対して回転するため、第1回で実現したような1軸の回転する応用ができました。しかし、複数のサーボモータを組み合わせることでより複雑な制御が可能となります。

リドカイン 心 カテ 4, I Got It I Understand 違い 5, 2020年 開園 保育園 名古屋 9, Nec Pcb 証明書 4, Taisho Beauty Online 退会 7, サーモス 蓋 分解 5, シニカルナイトプラン 歌詞 ひらがな 4, ポケモン剣盾 クララ セイボリー 56, 内職 自宅に届く 愛知県 4,

Write a comment