mechatronics / robotics
Blog

cog

サーボブラケット組み立て手順

サーボブラケット(SG-90用)の組み立て手順です。 *SG-90互換製品の場合、多少の追加工が必要となることがあります。 パーツを切り離します。使用する部品は、 タッピングスクリュー(太)x 2、 タッピングスクリュー(細)x 2、 ワッシャー x 2、 小ねじ x 1、 ナット x 1、 ハトメ x 1 です。 サーボ底面のねじ(対角線)2本をはずします。 底面に軸受け(ハトメ)を形成します。ハトメの座部をプレートとサーボ底面で挟むように、タッピングスクリュー(細)でねじ止めします。プレートが傾かないようにワッシャーを使用してください。 サーボにサーボホーン(片腕)を取り付け、3個穴のプレートをサーボに付属のねじを使ってサーボホーンに共締めします。 2個穴のプレートに小ねじをナットで止めます。 タッピングスクリュー(太)で長方形のプレートを両側のアームのプレートにねじ止めします。

PAPERBOTS マイクロマシーン チュートリアル(10)

●delay()を使わない方法  これまでサーボの動きを制御するのにArduinoのdelay()関数を使ってきました。delay()関数はスケッチ内容が比較的明確で単純な確認のような目的には有用ですが、ひとつ欠点があります。delay()実行中は他の処理が止まってしまうので、少し込み入ったプログラムの場合には不具合が生じることがあります。 ここでは、delay()を使わないでサーボとbeep音をコントロールする方法の例を示しておきます。具体的には、Timer0割り込みを常時まわして時間をカウントします。 ・ms10-1 ●練習問題 歩行に合わせて音を出して(足音)ください。 チュートリアルベース

PAPERBOTS マイクロマシーン チュートリアル(8)

●サウンド出力 最後にスピーカーから音声を鳴らしてみます。 リモコンのボタンでビープ音が再生されるようにしてください。リモコン受信部分はチュートリアル(6)と同じです。 ビープ音再生にはArduinoのtone(ピン番号, 周波数, 音の長さ)関数を使います。 出力ピンには”8″、周波数には”200″、〜秒間は”1000″(1秒)を設定します。 リモコンボタンは0番(rmDataは”22″)としました。ロボットで実行し音声が再生されるのを確認します。 “ms08″で保存します。 ●練習問題 音階(メロディ)を再生してください。続けてtone()関数を使う場合にはdelay()が必要です。 <= PAPERBOTS マイクロマシーン チュートリアル(7) チュートリアルベース PAPERBOTS マイクロマシーン チュートリアル(9) =>

PAPERBOTS マイクロマシーン チュートリアル(3)

●サーボを動かす サーボを動かしてみましょう。サーボの出力軸(白いギザギザのところ)は通常0°~180°の範囲で回転しますが、その位置はサーボの容器に対して絶対的に決まっています。そのため出力軸の回転位置を気にせずに適当にロボットを組み立ててしまうと、出力に取り付けられた部品が思い通りに動いてくれません。まずはサーボの出力軸を90°の位置に停止させるプログラムをつくります。 下の写真を参考に配線してください。サーボは電池から電源を供給する回路になっていますので、今回は電池をつなぎます。サーボは12個使いで対応するコネクタが12箇所ありますが、すべてのコネクタから90°の信号を出力します。サーボのコネクタは逆向きに挿しても動きませんが壊れることはありません。中央のピンがプラス電源となっているためです。一方、電池のワイヤーは逆につけるとマイコンが壊れますので絶対に間違えないでください。コネクター側基板上に”G”と記載されている側がグランド(黒線)です。 電源スイッチはOFF側にしておきます。 *サーボを取り扱う際の注意 サーボは非常に精密なギアで構成されています。出力軸を回そうとして(「バックドライブ」と言います。)引っ掛かりがある場合に無理に回そうとするとギアを破損します。 ハードウェアの準備ができましたらプログラムを作っていきます。通常Arduinoでサーボを動かす場合専用の関数を使って簡単に駆動できるのですが、今回サーボが12個と多いので「PCA9685」というICを利用してATMEGA328マイコンからI2Cで制御するようにします。 Arduino IDEを起動して「ボード」と「シリアルポート」の設定をしてください。 下記のプログラムを書き込みます。 チェックボタンでコンパイルが成功したら、矢印ボタンでメイン基板に書き込みます。「ボードへの書き込みが完了しました。」と出たら基板の電源スイッチをONにします。サーボが動いて90°の位置(センター位置)で停止します。(新品のサーボを用いた場合はもともと90°の位置になっていて動かない場合があります。) ●プログラムの説明 プログラムの内容的にはPCA9685とのI2C通信に関する部分がほとんどです。PCA9685のデータシートと回路図を参照しながら確認してください。初学者の方はsetup()の部分だけを見ておけばOKです。 ArduinoでI2C通信を使う時にはプログラムの最初にこの行を書きます。Arduino IDEにあらかじめ用意されている”Wire.h”というファイルに実際にI2Cをコントロールするプログラムが書かれていて、我々は簡単にI2Cを使えるようになっています。 I2C通信を使えるようにします。100kHzの周波数で使用します。 サーボ駆動用のIC PCA9685をイニシャライズし、角度を設定します。角度はグローバル変数としてtempAngles[12]で保持しています。 15ピンをLOWにしてPCA9685を有効化します。(データシート P6) 今回はサーボを一度動かして終わりなのでloop()は何もしません。 PCA9685データシートのP10~P17を参照してください。 I2C通信はWire.beginTransmission(0x40)~Wire.endTransmission()で一区切りです。0x40はこのデバイス(PCA9685)のアドレスです。まずWire.write(6)でP10の表の6行目を指定します。forループの中のWire.write()はP10の表の6-9行目に対して実行され、サーボ#0(LED0と表記)のパルス立ち上がりタイミングと立ち下がりタイミングを指定します。 なお表の上の行から順番に実行されるのは、init_pca9685()の中でenable auto-incrementを指定していることによります。 サーボに与えるパルスは通常15-20msec周期でONパルス幅1.5msecで90°(センター位置)となります。init_pca9685()の中でPWM周波数を60Hzに設定していて1周期のカウント数が4095となっていますので、パルス幅が1.5msecとなるカウント数は369となります。プログラム中のangle=の式は、サーボの可動範囲のセンターが90°となるように実測して決めた変換式です。 forループでこれを12回まわしてすべてのサーボの角度を設定していきます。 ●往復運動させる loop()の中身を書き換えてサーボを往復運動させてみます。#0サーボ(P2コネクタ)のみ動かします。プログラムの意味はわかると思います。 #0サーボがセンター位置を中心に往復運動することを確認してください。そのままでは見えませんのでサーボホーンを取り付けてください。 ●デバッグの方法 サーボとは直接関係ありませんが、プログラムが思い通りに動かない時などに原因を調べるひとつの方法です。 上のプログラムに少し追加します。 このプログラムをメイン基板に転送して実行し、Arduino IDEの「ツール」->「シリアルモニタ」からシリアルモニタを起動します。Serial.print()に書いた内容が1000msごとに出てくると思います。(出てこない場合は画面下で9600bpsを選択)このように実行中のプログラムの状況を調べることができます。 最後にloop()の中をすべてコメントアウト(/* … */)して12個すべてのサーボを90°の位置に戻してサーボホーンを外しておいてください。 今回の成果は”mm03″などとして保存しておきましょう。

PAPERBOTS マイクロマシーン チュートリアル(2)

●メイン基板の準備 USBケーブルでメイン基板とパソコンを接続すると、USBシリアル変換ICのドライバがインストールされてプログラム開発ができるようになります。 ●最初のプログラム デスクトップのArduinoのアイコンからArduino IDEを起動します。 最初に二つの設定をします。メニューの「ツール」のボードで”Arduino/Genuino Uno”を、シリアルポートでメイン基板がつながっているポートを選択します。シリアルポートは、デスクトップ左下のWindowsアイコンを右クリックしてデバイスマネージャーを起動し、「ポート(COMとLPT)」から知ることができます。 まずは用意されているスケッチ例を使ってみます。LEDを点滅させるプログラムです。メニューの「ファイル」から「スケッチ例」-> 01.Basics -> Blinkを選択します。 プログラムの中で”LED_BUILTIN”となっているところ(3か所)を”3″に変更します。上の左側のチェックマークボタンをクリックして「コンパイルが完了しました。」と出たら、隣りの矢印ボタンをクリックしてプログラムをメイン基板のマイコンに書き込みます。「ボードへの書き込みが完了しました。」と出たのち、LED(D1)が1秒ごとに点滅すれば成功です。 ●プログラムの説明 Arduinoのプログラムは大きく二つの部分に分かれていて、void setup(){…}はマイコンのピンの割り当てなどを書くところで最初に1回だけ実行されます。void loop(){…}はマイコンにやらせる仕事を書くところで、上から順番に実行され下まで行ったらまた上に戻り、を永久に(電源が切られるまで)繰り返します。 pinMode(3, OUTPUT); の行は、Arduinoの3番ピンを出力(基本的にHigh(5V)とLow(0V)の電圧を出す)に設定しています。Arduinoのピン番号と実際の回路との関係は、 回路図と、 Pin Mapping を参照してください。LED(D1)はマイコンのPD3というピンにつながっていて、それはArduinoではdigital pin 3という名称になっています。LEDについている抵抗R1はLEDに流れる電流を制限するためのものです。抵抗値が小さければ大きな電流が流れ(オームの法則)LEDが明るく光り、逆ならば暗くなります。 digitalWrite(3, HIGH); は3番ピンにHigh(5V)を出力しLEDを光らせます。 delay(1000); は何もしないで1000msec(1秒)待ちます。 digitalWrite(3, LOW); は3番ピンにLow(0V)を出力しLEDを消します。 delay(1000); は何もしないで1000msec(1秒)待ちます。 この後またdigitalWrite(3, HIGH);に戻ります。 ●練習問題 LEDを0.5秒ごとに点滅させてください。 *新しいプログラムは現在のプログラムの実行中でも矢印ボタンで上書きできます。 ここでいったんプログラムを保存しておきます。「ファイル」->「名前を付けて保存」で”mm01″などとして保存します。

PAPERBOTS マイクロマシーン チュートリアル(1)

●部品の確認 ・基板 1個 ・パーツボード 1個 ・サーボモーター 12個 ・リモコン 1個 ・電池ボックス 1個 ・ねじ類 M2.6*8(タッピング) 14個 M2*6(直径2mm長さ6mm) 8個 M2ナット 8個 M2.6*6(サラネジ) 4個 M2*4(直径2mm長さ4mm) 16個 樹脂スペーサー15mm 2個 樹脂スペーサー6mm 8個 ●必要な道具など ・パソコン ・microUSBケーブル ・単4アルカリ乾電池 3個 ・ボタン電池(リモコン用)CR2025 1個 ・ニッパー ・プラスドライバー ・カッターナイフ ●Arduino IDEのインストール Windowsの場合で説明します。 http://arduino.cc/en/Main/Softwareにアクセスし、Windows Installer, for Windows XP and upをクリックします。 JUST DOWNLOADをクリックします。 ダウンロードしたファイル(arduino-1.8.8-windows.exe)を実行してインストールを開始します。 I Agree-> Next-> Installと進みこの画面でインストール完了です。 チュートリアルベース PAPERBOTS マイクロマシーン チュートリアル(2) =>

PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(9)

●ロボットを完成させる 前回までの内容を全て盛り込んで完成版のロボットにしてみましょう。 ・リモコンボタンで前進、後退、右旋回、左旋回、停止をコントロール ・リモコンボタンで音声再生 ・リモコンボタンでLEDをON/OFF

PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(8)

●サウンド出力 最後にスピーカーから音声を鳴らしてみます。 リモコンのボタンで音声が再生されるようにしてください。リモコン受信部分はチュートリアル(6)と同じです。音声再生のためのブロックは、「Arduino」->「出力」にある「サウンド出力_ピン_周波数_秒間」です。 出力ピンには”8″、周波数には”200″、〜秒間は”1000″(1秒)を設定します。 リモコンボタンは0番(rmDataは”22″)としました。Arduino IDEにコピー&ペーストして、ロボットで実行し音声が再生されるのを確認します。 “ms08″で保存します。 ●練習問題 サウンド出力ブロックを複数使って音階を再生してください。 <= PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(7) チュートリアルベース PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(9) =>

PAPERBOTS マイクロマシーン チュートリアル(4)

●ロボットを組み立てる ロボットを組み立てていきます。けがをしないようにあわてずにゆっくり進めていきましょう。 1.左フット部の組み立て  サーボはセンター位置(90°)に合わせた状態でサーボホーン(サーボに付属の白いアーム部品)を図のようにおおよそ45°の位置に取り付けます。付属のねじの短いほうで軸側を、長いほうでアーム先端をねじ止めします。長いほうのねじは固いので、あらかじめサーボホーン単品の状態でねじを切っておいたほうがよいと思います。 両サイドのねじは強く締めすぎてねじバカにならないよう、注意してください。 2.股関節部の組み立て  同様にサーボホーンは45°の位置に取り付けます。 3.脚部の組み立て  サーボホーンは、サーボをセンター位置に調整した状態で下図のような角度に取り付けます。両方とも長いねじを使います。 4.左足のアセンブリを組み立て 5.右足のアセンブリを組み立て  右足と左右対称に組み立てます。 6.左腕の組み立て  サーボとアーム部材をねじで共締めして裏からナットで締めます。サーボホーンは図のように45°の位置に取り付けます。 7.左肩部分の組み立て  ボードとボードの接続は木ネジ(目の粗いねじ)を使います。 8.左腕アセンブリ  腕先が下を向いている状態が標準姿勢です。右腕も同様に組み立てます。 9.メイン基板にスペーサーを取り付け 使用するのはm2.6のねじです。 10.メイン基板に両腕、両足を取り付け  両足は、ナットを使用して基板に共締めです。 11.ワイヤーの整理  サーボの番号を参照しつつワイヤーを基板のコネクタに接続し、うまくボディに収めます。足のワイヤーは裏からまわして2本のスペーサを利用して長さを調節します。足が自由に動くようにワイヤーは余裕をもってたるませておきます。腕のワイヤーは全面のスペース(コネクタの上あたり)に収納します。 12.電池ボックスの取り付け  m2.6の皿ねじを使います。 13.その他の部品 残りの部品を取り付けて完成です。部品の勘合が緩い場合は接着剤を使用してください。 チュートリアルベース PAPERBOTS マイクロマシーン チュートリアル(5) => PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(5) =>

PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(3)

●サーボを動かす サーボを動かしてみましょう。サーボの出力軸(白いギザギザのところ)は通常0°~180°の範囲で回転しますが、その位置はサーボの容器に対して絶対的に決まっています。そのため出力軸の回転位置を気にせずに適当にロボットを組み立ててしまうと、出力に取り付けられた部品が思い通りに動いてくれません。まずはサーボの出力軸を90°の位置に停止させるプログラムをつくります。 下の写真を参考に配線してください。サーボは電池から電源を供給する回路になっていますので、今回は電池をつなぎます。サーボは12個使いで対応するコネクタが12箇所ありますが、すべてのコネクタから90°の信号を出力します。サーボのコネクタは逆向きに挿しても動きませんが壊れることはありません。中央のピンがプラス電源となっているためです。一方、電池のワイヤーは逆につけるとマイコンが壊れますので絶対に間違えないでください。コネクター側基板上に”G”と記載されている側がグランド(黒線)です。 電源スイッチはOFF側にしておきます。 *サーボを取り扱う際の注意 サーボは非常に精密なギアで構成されています。出力軸を回そうとして(「バックドライブ」と言います。)引っ掛かりがある場合に無理に回そうとするとギアを破損します。 ハードウェアの準備ができましたらプログラムを作っていきます。 「Blockly@rduino」で新しい画面を準備してください。前回のブロックが残っている場合は右下のゴミ箱に捨てるか、「ワークスペースをクリア」です。 今回からサーボを使いますので、「ロボクリエーターズ」->「PAPERBOTS」->「マイクロマシーン」から「アクション初期化」を選んでドラッグ&ドロップします。これで12個のサーボが使えるようになります。offsetにはまだ何もつなぎません。 次に「ロボクリエーターズ」->「PAPERBOTS」->「マイクロマシーン」->「サーボ駆動」を選んでドラッグ&ドロップ、コネクタ#は”0″とします。 角度のところには、ブロックエリアの数値から”0″を持ってきて接続します。0を90に変更します。 前回と同様にプログラムをボードに書き込みます。「ボードへの書き込みが完了しました。」と出たら基板の電源スイッチをONにします。サーボが動いて90°の位置(センター位置)で停止します。(新品のサーボを用いた場合はもともと90°の位置になっていて動かない場合があります。) ●練習問題 角度を変えてサーボの軸が動くことを確認してください。一応30°~150°ぐらいの範囲にとどめてください。 *最後に90°に戻しておいてください。 ●プログラムの説明 今回使ったブロックで「アクション初期化」ブロックはプログラムの中で最初に1回だけ実行されます。一方、「サーボ駆動」ブロックは何もしないと何度も繰り返し実行されます。設定角度を変えてサーボを動かしたりするためです。ただし今回は角度を一度設定したまま動かしませんので、下のようにしても同じです。「初期設定ブロック」は最初に1回だけ実行することを明確にしたいときに使います。 ●往復運動させる ブロックを少し加えてサーボを往復運動させてみます。プログラムの意味はわかると思います。右側の塊りは上から下へ順に実行されたのち、また上に戻って繰り返されます。 #0サーボがセンター位置を中心に往復運動することを確認してください。そのままでは見えませんのでサーボホーンを取り付けてください。 ●デバッグの方法 サーボとは直接関係ありませんが、プログラムが思い通りに動かない時などに原因を調べるひとつの方法です。 上のプログラムに少し追加します。シリアル通信関連のブロックは、「Arduino」->「シリアル通信」にあります。 このプログラムをメイン基板に転送して実行し、Arduino IDEの「ツール」->「シリアルモニタ」からシリアルモニタを起動します。”angle=”の内容が1000msごとに出てくると思います。(出てこない場合は画面下で9600bpsを選択)このように実行中のプログラムの状況を調べることができます。 今回の成果は”mm03″などとして保存しておきましょう。 最後に12個すべてのサーボを90°の位置にしてサーボホーンを外しておいてください。

Page 1 / 912»
PAGETOP
Copyright © Meuse Robotics All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.