mechatronics / robotics

ブログ

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°の位置にしてサーボホーンを外しておいてください。

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

●メイン基板の準備 USBケーブルでメイン基板とパソコンを接続すると、USBシリアル変換ICのドライバがインストールされてプログラム開発ができるようになります。 ●最初のプログラム *ピン番号”14″=>”3″と読み替えてください。 Blockly@rduinoを開きます。 最初は英語の表記になっていますが難しくありませんので慣れていきましょう。 まず全体の設定をします。「Language」を日本語に、「Board」で”Arduino/Genuino UNO”を選んでOKを押します。アラートがでたらまたOKを押します。表示が日本語になります。 左側の黄色のボタン(ブロック設定)を押してブロックの設定をします。ドロップダウンリストで「Arduino all」を選び、「論理」から「Arduino」までと「サーボ」、「ロボクリエーターズ」を選択してOKします。これで準備は完了です。 まずは基板上のLEDを点滅させてみます。左側のブロックの中から「Arduino」->「出力」「デジタルピン__を設定__」のブロックを選んで右のエリアにドラッグ&ドロップします。ピンを3に、ドロップダウンリストからHIGHに設定します。 次に「Arduino」から「時間」->「待つ(ミリ秒)」を選んでドラッグ&ドラッグし、今度は先ほどの「デジタルピン_3_を設定_HIGH_」の下にくっ付けます。 同様に続けて「デジタルピン_3_を設定_HIGH_」〜「待つ(ミリ秒)」が2段重ねになるようにしてください。(ブロックを右クリックして「複製」でもOKです) 最後に下の「デジタルピン_3_を設定_HIGH_」の設定をLOWに設定します。以上が今回のプログラムです。 Arduino IDEを起動します。最初に二つの設定をします。メニューの「ツール」のボードで”Arduino/Genuino Uno”を、シリアルポートでメイン基板がつながっているポートを選択します。 次にBlockly@rduino上で右上のメガネのマークをクリックして生成されたソースコードを表示させます。 ソースコード画面の右角のマークをクリックしてソースコードをコピーします。これをArduino IDEに持っていき、すべて上書きで貼り付けます。 Arduino IDEの矢印ボタンでプログラムをロボットに書き込みます。ファイルの保存について聞かれますので”mm02″で保存してください。 右側のLEDが1秒ごとに点滅すれば成功です。 ●プログラムの説明 「デジタルピン_3_を設定_HIGH_」で設定した3とHIGHは、Arduinoの3番出力(LEDがつながっている)に電圧(5V)をかけるという意味です。これでLEDが光ります。反対に3をLOWに設定すると3番ピンに電圧を出さない(0V)ということでLEDが消灯します。 「待つ(ミリ秒)」は数字で設定したミリ秒(1/1000秒)の間、何もしないで待つというブロックです。今回は数値は1000となっていますのでLEDが光っていれば1秒間光り続け、光っていなければ1秒間光らずにいます。 ということでやっていることは、LEDを1秒間点灯しその後1秒間消灯する、ということです。なお、ここで作ったプログラムは何もしなければ永遠に繰り返し実行されます。 ●練習問題 LEDを0.5秒ごとに点滅させてください。 *Arduino IDEで、新しいプログラムは現在のプログラムの実行中でも矢印ボタンで上書きできます。 ここでいったんプログラムを保存しておきます。 ●Blockly@rduino 「プロジェクトを保存」ボタンで、”mm02″などとして保存します。mm02.B@というファイル名になります。 <= PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(1) チュートリアルベース PAPERBOTS マイクロマシーン チュートリアル ビジュアル版(3) =>

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互換となっており、Arduino IDE開発環境でプログラム開発できるようになっています。これをさらに親しみやすくしたものがビジュアルプログラミング環境です。本キットでは、Googleが開発した「Blockly」を元にArduino開発できるようにつくられた「Blockly@rduino」を日本語が使えるようにカスタマイズしたものと、一般的なArduino IDEを併用していきます。こちらBlockly@rduinoにアクセスしてみてください。(日本語で使えます。)使い方は次回から説明していきます。 ●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のtone(ピン番号, 周波数, 音の長さ)関数を使います。 出力ピンには”8″、周波数には”200″、〜秒間は”1000″(1秒)を設定します。 リモコンボタンは4番(rmDataは”8″)としました。ロボットで実行し音声が再生されるのを確認します。 “ms08″で保存します。 ●練習問題 音階(メロディ)を再生してください。 <= PAPERBOTS マイクロサウルス チュートリアル(7) チュートリアルベース PAPERBOTS マイクロサウルス チュートリアル(9) =>

PAPERBOTS マイクロサウルス チュートリアル(7)

●リモコンを使う(2) 前回のプログラムに少し追加してLEDをON/OFFしてみます。”ms06″を開いて”ms07″で名前を付けて保存します。 “1”ボタンでON、”2″ボタンでOFFです。 loop()の中でdataCodeをシリアル出力していた部分をswitch文に書き換えて、dataCodeが”12″(“1″ボタンが押された)ならLEDをON、dataCodeが”24″(“2″ボタンが押された)ならLEDをOFFします。 ・”ms06″を変更 うまくいきましたら次はリモコンでロボットの歩行をコントロールしてみます。”1″ボタンで前進、”2″ボタンでストップです。現状のプログラムに以前作ったサーボのプログラム部分(ms05)を足していきます。 if(rmReceived){}の部分は受信時に一度実行されるだけなので、リモコン受信のところに歩行のコードを書くと失敗します(一歩歩いて終わってしまう)。actionModeという変数を使って歩行のモードを管理します。 ●練習問題 前進、後退、右旋回、左旋回、停止をリモコンボタンに割り当ててコントロールできるようにしてください。 ヒント:リモコンボタンのデータコードは”ms06″を実行して確認できます。 “ms07″で保存します。

PAPERBOTS マイクロサウルス チュートリアル(3)

●サーボを動かす サーボを動かしてみましょう。サーボの出力軸(白いギザギザのところ)は通常0°~180°の範囲で回転しますが、その位置はサーボの容器に対して絶対的に決まっています。そのため出力軸の回転位置を気にせずに適当にロボットを組み立ててしまうと、出力に取り付けられた部品が思い通りに動いてくれません。まずはサーボの出力軸を90°の位置に停止させるプログラムをつくります。 下の写真を参考に配線してください。サーボは電池から電源を供給する回路になっていますので、今回は電池をつなぎます。サーボは2個使いで、それぞれ前脚用、後脚用となります。サーボのコネクタは逆向きに挿しても動きませんが壊れることはありません。中央のピンがプラス電源となっているためです。一方、電池のワイヤーは逆につけるとマイコンが壊れますので絶対に間違えないでください。 電源スイッチはOFF側にしておきます。 *サーボを取り扱う際の注意 サーボは非常に精密なギアで構成されています。出力軸を回そうとして(「バックドライブ」と言います。)引っ掛かりがある場合に無理に回そうとするとギアを破損します。 ハードウェアの準備ができましたらプログラムを作っていきます。 Arduino IDEを起動して「ボード」と「シリアルポート」の設定をしてください。 「ファイル」->「スケッチ例」->”Servo”->”Knob”を選択します。内容を下記のように変更してください。 チェックボタンでコンパイルが成功したら、矢印ボタンでメイン基板に書き込みます。「ボードへの書き込みが完了しました。」と出たら基板の電源スイッチをONにします。サーボが動いて90°の位置(センター位置)で停止します。(新品のサーボを用いた場合はもともと90°の位置になっていて動かない場合があります。)この状態でサーボホーン(長いタイプ)をサーボの長手方向と平行になるように取り付けます。ぴったり合わなくても構いません。後でソフトで調整します。 ●プログラムの説明 #include Arduinoでサーボを使う時にはプログラムの最初にこの行を書きます。Arduino IDEにあらかじめ用意されている”Servo.h”というファイルに実際にサーボをコントロールするプログラムが書かれていて、我々は簡単にサーボを使えるようになっています。 Servo myservo1; Servo myservo2; 2つのサーボにmyservo1,myservo2と名前をつけます。Servoは”Servo.h”のServoです。Servoクラスのオブジェクトmyservo1とmyservo2を生成したと言います。 myservo1.attach(9); myservo2.attach(10); myservo1とmyservo2にArduinoの出力ピン9,10を割り当てます。基板上のサーボのコネクタは回路図ではK2,K3で、それぞれ3ピンのうちひとつ(S1,S2)がサーボをコントロールする信号がくる線で、他の2つが電源(バッテリー)とグラウンド(0V)です。S1,S2はマイコンのPB1とPB2につながっているのでPin MappingからArduinoの”digital out 9″と”digital out 10″であるとわかります。 myservo1.write(90); myservo2.write(90); myservo1とmyservo2を90°の位置に動かせ、という命令文です。write()やattach()mの内容は”Servo.h”からたどって”Servo.cpp”というところに書かれています。今回はサーボを一度動かして終わりなのでloop()は何もしません。 ●往復運動させる loop()の中身を書き換えてサーボを往復運動させてみます。プログラムの意味はわかると思います。 サーボがセンター位置を中心に往復運動することを確認してください。 ●デバッグの方法 サーボとは直接関係ありませんが、プログラムが思い通りに動かない時などに原因を調べるひとつの方法です。 上のプログラムに少し追加します。 このプログラムをメイン基板に転送して実行し、Arduino IDEの「ツール」->「シリアルモニタ」からシリアルモニタを起動します。Serial.print()に書いた内容が500msごとに出てくると思います。このように実行中のプログラムの状況を調べることができます。 最後にloop()の中をすべてコメントアウト(/* … */)してサーボを90°の位置に戻してサーボホーンを外しておいてください。 今回の成果は”ms03″などとして保存しておきましょう。

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