mechatronics / robotics
Blog

cog

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

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

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

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

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

●ESP32側のドラッグコントロール対応  「mm13」を改造してドラッグコントロール対応にしていきます。主な変更箇所はBLE受信のところと、loop()内のサーボ駆動用の角度計算部分です。歩行用の配列8行の半分の4行分を、BLEで送られてくる100分割に割り当てて決め打ちでコード中に数値を書いてしまっています。  BLE受信部でvalue.length() == 5としていますが、これはAndroidのプログラムで byte[] command = new byte[5]; としたためです。実際に使っているのは3byteのみです。

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

●ドラッグコントロールを追加(iOS)  前回開発したiPhoneアプリに、画面をドラッグして歩行をコントロールする機能を追加します。右手と左手の親指をロボットの両足に見立てて画面上を歩くような動作で操縦できます。 ドラッグコントロールモードにするためのボタンと指の動きを拾うための部品(dragView)は既に設置されていますので、Main.storyboardとViewController.swiftとの関連付けと行ってください。    次にWALKボタンが押された時の処理とdragView上で指を動かした時の処理を追記します。  変更箇所の簡単な説明をします。  ドラッグコントロールの時と通常のボタンによる操縦の場合とで一応モードを分けています。counterはドラッグ時の座標アップデートがあまり頻繁にならないようにするための対策に使っています。  dragView上をドラッグするとtouchesMovedイベントが呼ばれます。指を動かすとdragView上の座標が取得できます。座標が領域の右側か左側か、縦方向の位置を0-100の値に変換してコマンドとして送信します。コマンドはbyteArray[0]:WALKモードであることの識別値(127)、byteArray[1]:右か左か(右:1 左:0)、byteArray[2]:縦方向位置(0-100)となっていて、ESP32側で歩行プログラムの配列から関節角度を計算します。

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

●部品の確認 ・パーツボード 1個 ・サーボモーター 12個 ・リモコン 1個 ・電池ボックス 1個 ・ねじ類 M2.6*8(タッピング) 22個 M2.6*6(サラネジ) 4個 M2*4(直径2mm長さ4mm) 16個 樹脂スペーサー15mm 2個 樹脂スペーサー6mm 8個 ・パーツボード          1個 ・サーボモーター         12個 ・小型スピーカー(取り付け済)   1個 ・リモコン            1個 ・電池ボックス          1個 ・ねじ類 M2*5(直径2mm長さ5mm) 11個 M2ナット          3個 M2.6*8(サラネジ)     2個 M2.6ナット 4個 樹脂スペーサー 2個 ●必要な道具など ・パソコン ・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と進みこの画面でインストール完了です。 ●esp32用Board Managerのインストール Arduino IDEを起動してメニューの「Arduino」->「Preferences..」を選択し、「追加のボードマネージャーのURL」に https://dl.espressif.com/dl/package_esp32_index.json を記入して「OK」。 「ツール」->「ボード」->「ボードマネージャ」から、「esp32 by Espressif Systems」を選択して「インストール」。「ボードマネージャ」を閉じて「ツール」->「ボード」->「ESP32 Dev Module」を選択します。 チュートリアルベース マイクロマシーン チュートリアル(2) =>

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

●ドラッグコントロールを追加(Android)— オプション  前回開発したAndroidアプリに、画面をドラッグして歩行をコントロールする機能を追加します。右手と左手の親指をロボットの両足に見立てて画面上を歩くような動作で操縦できます。  こちらのテーマは内容も複雑でコードの分量も増えますのでオプション(番外編)とします。 まずスマホ画面に、ドラッグコントロールモードにするためのボタンと指の動きを拾うための部品(ImageView)を追加します。activity_main.xmlを変更します。    次にMainActivity.javaの変更箇所を示します。  ImageView上をドラッグするとonTouchイベントが呼ばれます。指を動かすとACTION_MOVEのところへ行き座標が取得できます。座標が領域の右側か左側か、縦方向の位置を0-100の値に変換してコマンドとして送信します。コマンドはcommand[0]:WALKモードであることの識別値(127)、command[1]:右か左か(右:1 左:0)、command[2]:縦方向位置(0-100)となっていて、ESP32側で歩行プログラムの配列から関節角度を計算します。

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

●delay()を使わない方法  これまでサーボの動きを制御するのにArduinoのdelay()関数を使ってきました。delay()関数はスケッチ内容が比較的明確で単純な確認のような目的には有用ですが、ひとつ欠点があります。delay()実行中は他の処理が止まってしまうので、少し込み入ったプログラムの場合には不具合が生じることがあります。幸いタイマーの割り込みは禁止されませんので前回までのプログラムは意図通りの動きをしてくれました。 ここでは、delay()を使わないでサーボをコントロールする方法の例を示しておきます。具体的には、オーディオの再生で使用したタイマー割り込みをもう一つ30msecで常時まわして時間をカウントします。 ・mm11

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

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

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

●オリジナル音声を作る オリジナルの音声(フリーの効果音など)をArduinoのプログラムに組み込むために、2つのフリーソフトを利用します。以下のソフトをダウンロードしてインストールしてください。 ・Audacity(音声編集ソフト) ・stirling(バイナリエディタ) まず、用意した音声ファイル(ここではrobot-footstep1.mp3というファイル)をAudacityで開きます。 元の音声がステレオの場合には、「編集」->「選択」->「すべて」としてから、「トラック」->「ステレオからモノラルへ」でモノラルに変換します。 左下の「プロジェクトのサンプリング周波数」を8000Hzとして、「ファイル」->「オーディオの書き出し」、「ファイルの種類」を「その他の非圧縮ファイル」、「ヘッダ」を「WAV(Microsoft)」、「エンコーディング」を「Unsigned 8-bit PCM」として「保存」->「OK」します。 次にstirlingを起動して今保存したwavファイルを開きます。 右側の列を見て”data”となっているすぐあと辺りから後ろをすべて選択してコピーします。 Windowsのメモ帳を開いて貼り付けます。 カーソルを先頭に持っていき、「編集」->「置換」で「検索する文字列」に” “(半角スペース)、「置換後の文字列」に”,0x”(コンマ ゼロ エックス)を入力して「すべて置換」します。”0x”は16進数の印です。先頭のみ置換されていませんので”0x”を手入力したのち、全体をコピーしてArduinoプログラムの”sounddata.h”の当該箇所に貼り付けます。

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

●音声出力 次にスピーカーから音声を鳴らしてみます。ESP32にはアナログ出力機能がありますので(DAC-Digital Analog Converter)、これをオーディオアンプに入力してスピーカーを鳴らします。 オーディオソースはサンプリング周波数8kHzのWAVデータとし、124usecごと(約8kHz)のタイマー割り込みでDAC端子にアナログ出力していきます。音声データは0〜255(unsigned char)の値を行列データとしてプログラム内に直接記述し、フラッシュメモリに読み込ませます。全く圧縮していない形式で、1秒間の音声で1byte*8000=8Kbyte必要です。 まずは電源ONで「ロボットの足音」を1回だけ再生するプログラムを作っていきます。タイマー割り込みのスケッチ例を書き換えていきますので、「ファイル」->「スケッチ例」->「ESP32」->「Timer」->「RepeatTimer」を開いてmm08として保存してください。タイマー関連の不要部分を削除して、DAC関連のコードを追加します。 なお、音声データは”sounddata.h”として別ファイルで与えます。 ・プログラム ・データファイル Arduino IDEの右側にある下向き三角をクリックして新規タブ名を”sounddata.h”としてOKすると新しいタブが現れますので、そこに以下をコピペします。 ロボットで実行し音声が再生されるのを確認します。プログラムサイズが大きいので転送には時間がかかります。 ●プログラムの説明 参照:回路図 オーディオアンプ オーディオデータをインクルードします。 wavデータの位置を124usecごとにカウントアップします。 esp32マイコンのIO25ピンに音声データをアナログ出力します。IRAM_ATTR onTimer()はタイマー割り込みで呼ばれる関数です。 タイマー割り込みの間隔を124usecに設定します。 オーディオアンプのCEピンをLOWにして有効化します。 ●練習問題 リモコンのボタンで音声が再生されるようにしてください。 “mm08″で保存します。

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