mechatronics / robotics

ブログ

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

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

LCDディスプレイNokia5110テスト

OLEDディスプレイに続いて液晶ディスプレイNokia5110を使ってみました。SPIなので表示は速いですが、OLEDと比較してしまうと画質の悪さが目立ちます。また、全体の大きさに比べて実描画エリアが狭いのはNGです。バックライトも付きますがちょっと品位がないというか。プログラムはOLEDの時のものをほぼ流用してSPIのところを書き換えました。コントロールはI2Cのものに比べて簡単です。

Unity Arm Robot Inverse Kinematics -analytical approach

Explaining analytical approach to inverse kinematics for robot arm. This method is applyed only for robots that have a spherical wrist (axis of joints P4,P5,P6 meets at one point). And robot should not have joint offsets. reference : textbook “Robotics” by Hirose Vector $(a,b)$ represents the direction and rotation of end effector. \begin{align*} (a,b) = R^Y R^P R^R\begin{bmatrix} 1 & 0 \\ 0 & 0 \\ 0 & 1 \end{bmatrix} \end{align*} \begin{align*} \begin{bmatrix} a_{x} & b_{x} \\ a_{y} & b_{y} \\ a_{z} & b_{z} \end{bmatrix} = \begin{bmatrix} C_{Y} C_{P} & C_{Y} S_{P} C_{R} + S_{Y} S_{R} \\ S_{Y} C_{P} & S_{Y} S_{P} C_{R} – C_{Y} S_{R} \\ – S_{P} & …

OLEDディスプレイ(SSD1306)テスト

0.96インチ、128X64ドットのOLEDディスプレイの描画テストをArduinoを用いてテストしました。2cm程度の非常に小さいものなので、もともと数字等を静的に表示するための製品かとは思います。 配線は簡単で、電源とI2Cをつなぐだけです。ソフトのほうも通常はAdafruit社のライブラリを使えばよいでしょう。今回はデータシートを見て自前で書いてみました。 データシート SSD1306イニシャライズ I2CはArduinoのWireを使います。 I2Cの通信の仕様に関してはデータシートのP20 I2C-bus Write dataに説明があります。デバイスのアドレスは基板の裏側の抵抗の位置によって2通りあるようです。このアドレスを1bit左にずらして末尾にR/Wの0をつけて(私の場合は0x3C)を最初に送信します。これに続けて諸々を送信するのですが、これはデータシートの最後についているApplication noteのP5に沿ってやっています。 各コマンドはデータシートのP28~に記載されていて、上のコードでは2列目(Wire.write(0xAE) など)となります。1列目の0x80、0x00はコマンドに先立って送るControl byteといわれているもので、P20に説明がありますがわかりにくいです。0x80なら続けて1個0x00なら続けて複数個が送られる、と解釈しました。 Application noteにないコマンドで追加で送っているのは17-19行目の0x20,0x21,0x22です。この辺の説明はP34-36にあります。Horizontal addressing modeというものに設定していて、全画面の画素データを連続で送れるというものです。画面の成り立ちはP25に図があります。縦方向がpage、横方向がsegmentで分割されていて、1pageの縦は8bit(1byte)でこれを単位にアクセスします。 画素へのアクセス buf[]はすべての画素のデータを保持しておくための配列です。描画の計算はいつもこのbufに対して行い、最後にまとめてデバイスに転送します。 一つの点(ピクセル)を描く関数です。直線や円を描くときもここにやってきます。pos_negはその画素を点灯するか消灯するかを表します。bufの該当部分(1 byte)にORで書き込みます。縦方向の座標yがsegmentの中の何ビット目なのかを計算しているのが(1

独習 Fusion360

簡単な形状作成ができるようになった方向けのチュートリアルです。(超)簡単なロボットを設計してプレゼン用のアニメーションをつくってみます。(超)簡単なのでギアやモーターはありません。 (1)機構設計 3DCADの一般的なチュートリアルや初心者向けの書籍などで、何もないところからいきなり立体物を作り始めるのは違和感があります。このビデオでも最初から寸法がすべて決まっていたかのように進めてしまっていますが、実際には違います。紙の上にラフスケッチを描いたり、方眼紙を使ってだいたいの寸法を確認したり、あるいはCADの2Dスケッチで正面図や側面図を描きながら構想を練る段階が必ずあります。 また、既存の部品(モーターやギアボックス等)を使うことが分かっている場合にはその部品からモデリングし始めるのがよいと思います。 (2)設計修正~部品追加 履歴をさかのぼって設計変更する例も示しています。3DCADの最も優れたフィーチャーのひとつで、過去に指定した寸法を変更すると関連する部分を自動的に修正してくれるというものです。ただし万能ではありません。途中で部品を削除した場合など、関連付けがおかしくなって爆発してしまうこともあります。 (3)モーションスタディ Fusion360ではジョイント(solidworksのmate)という機能を使って部品間の拘束(穴を合わせてねじ止め、回転軸など)をつけていきます。モーションスタディでは時間軸でジョイントの値の変化を指定してアニメーションをつくります。見た目のインパクトがあるのでプレゼンなどに使えます。 (4)レンダリング 本格的なレンダリングが可能です。(3)で作ったモーションをレンダリングすることもできます。画像の大きさや長さによっては有料になるようです。

マイクロマシーン チュートリアル(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側で歩行プログラムの配列から関節角度を計算します。

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