Ottis Robot 製作の要点
Ottis Robot 最終回
Ottis Robotを作ってみたいと考えておられる方へアドバイスを記します。
Ottis Robotは、メキシコの大学生エドゥアルドさんがinstructablesに製作記事を発表された二足歩行ロボットです。
このロボットはハードウエアを作る楽しみの他、ハード完成後にソフトウエアを工夫することにより、オリジナルな
動作をプログラムする楽しみが大きく、プログラミングの勉強にもなり、とても有意義な製作記事です。

1)製作記事のURL:instructables circuits
上記URLを開くとチュートリアルが開きます。
3Dプリンターをお持ちの方は、データが添付されているのでボディ・パーツが問題なく作れると思います。
(私は3Dプリンターが無いのでアクリル板をCNC加工して作りました)。
2)部品について
①チュートリアルのリストに記されたマイコンやTFTディスプレイをそのまま使う場合は、添付された回路図の通りに
配線を行います。但し、Arduino NANOにHC-05 bluethooth moduleを使うようになっていますが、HC-05は技適を
取得しておらず、国内ではそのまま使えません。使う場合は総務省へ申請が必要となりますが、テスト代行費用や
書類作成の労力を考えると、私のように技適認証された安価なマイコンESP32を使うのがベターです。
②サーボモータSG90は少し高価てもTowerPro等の純正品をお勧めします。私のように安価なサーボモータを
使うとバックラッシュが大きくてバランスが悪くなる原因となります。
3)注意点
①特に注意が必要なのは、ロボットの左右が人の左右とは逆で、ロボットに対面しての左右となっています。
私はいちいち読み替えるのが面倒なうえ、間違いの元となるのでプログラムを全て書き直しました。
②脚部の関節長について:3Dプリンターのデータを基に作られる方は問題外ですが、それ以外の方法で自作
される方は、脚部の長さが違うと動きが変わるので、厳密には添付のソフトウエアがそのまま使えません。
後述角度計算ソフトOttis1.0のA-B及びB-C間の長さを実際の寸法に合わせる必要があります。(変更可能)
4)プログラミングに必要な計算ソフトOttis1.0について
エドゥアルドさんが作成された計算ソフトOttis1.0は、ロボットの動きを制御するサーボモータの角度を計算するのに
とても重宝しました。 ここも左右が逆なので注意!
私は、このソフトを利用してロボットにダンスや屈伸運動(ラジオ体操もどき)をさせています。(末尾の動画を参照)
注意:チュートリアルの計算ソフトへのリンクが開きません。正しくは、こちらのURLから開きます。
5)TFTディスプレイのグラフィック表示について
チュートリアル添付のArduino UNOがTFTディスプレイのプログラムです。
TFTディスプレイは縦240ドット、横320ドットなので、240X320の方眼紙を使い描画の座標位置を決めます。
私は顔の輪郭を丸くした12種類をデザインしました。
描画には、円や線、三角形、四角形、角丸四角形などの輪郭及び塗りつぶし等の記述書式が有ります。
*全画面塗りつぶし:色の指定=(色) 書式 = tft.fillScreen(BLACK);
*線の描画:座標と色の指定=( 始点 x1,y1、 終点 x2,y2、色)
線の書式=tft.drawLine(x1, y1, x2, y2, WHITE);
*四角形の描画:座標と色の指定= (始点 x1,y1、サイズ sx,sy 、色)
四角形の輪郭書式=tft.drawRect(x1, y1, sx, sy, BLUE);
四角形の塗りつぶし書式= tft.fillRect(x1, y1, sx, sy, RED);
*角丸四角形の描画
座標と色の指定= (始点 x1,y1、サイズ sx,sy、角丸の半径 r ( rを0にすると角丸が無くなる)、色)
角丸四角形の輪郭書式=tft.drawRoundRect(x1, y1, sx, sy, r, CYAN);
角丸四角形の塗りつぶし書式=tft.fillRoundRect(x1, y1, sx, sy, r, GREEN);
*円の描画:座標と色の指定= (中心点 x1,y1、半径(radius)、色)
円の輪郭書式=tft.drawCircle(x, y, radius, WHITE);
円の塗りつぶし書式=tft.fillCircle(x1, y1, radius, WHITE);
*三角形の描画:座標と色の指定= ( 座標1 x1,y1 、座標2 x2,y2 、座標3 x3,y3、色)
三角形の輪郭書式 = tft.drawTriangle(x1, y1, x2, y2, x3, y3, MAGENTA);
三角形の塗りつぶし書式= tft.fillTriangle(x1, y1, x2, y2, x3, y3, YELLOW);
中間色を指定する場合は、0x00000~0xFFFFFのu16 Codeで表示できます。
また、文字を表示する事も出来ますが、何れも詳細はAdafruit_ILI9341ライブラリーをご覧下さい。
6)ビープ音源について
CuteBuzzerSoundsライブラリーを使って圧電スピーカからメロディを出力します。
次の19個のメロディーが用意されています。
7)コントロールAPPについて
チュートリアルに記されたスマートフォン用アプリを使うよりも、私が使っているBluetooth Serial Controllerが
汎用性が高くて使い易いのでお勧めです。但し、Android専用でiPhone用が無いのが残念です。
8)工作の楽しみ方について
工作についての私の考えは、マニュアル通りに作るのではなく、手持ちの部品や材料を活かして出来るだけ
独創性を出すことが信条です。 今回の作品も素材やマイコン、ディスプレイ、回路などが異なります。
例えば同じ素材を使うプラモデルであっても長けた人は、塗装や装飾などで独創性を出して見事な作品を
作り上げます。このことは全ての工作に通じると信じています。
9)おわりに
一寸愚痴な話になりますが、instructablesの最後に「この作品を作られた方は共有して下さい」と投稿案内が
有ります。これまでにも何回か参考にして作った作品を投稿してますが、今回初めて何の連絡もなく削除されて
しまいました。 作者は自分の製作記事を参考に多くの方が作られ、それが完動すれば嬉しいと思うのですが?
製作手段が違っても出来上がりが同じなのに、何が問題なのか?理由を知ろうと再投稿するもアカウントが
ブロックされて受け付けず、運営会社に連絡しても返事が無く、他に連絡方法が無くて少しガッカリしています。
最後に動画をもう一度ご覧下さい。
皆様の参考になれば幸いです。
by Paradise
Ottis Robotを作ってみたいと考えておられる方へアドバイスを記します。
Ottis Robotは、メキシコの大学生エドゥアルドさんがinstructablesに製作記事を発表された二足歩行ロボットです。
このロボットはハードウエアを作る楽しみの他、ハード完成後にソフトウエアを工夫することにより、オリジナルな
動作をプログラムする楽しみが大きく、プログラミングの勉強にもなり、とても有意義な製作記事です。

1)製作記事のURL:instructables circuits
上記URLを開くとチュートリアルが開きます。
3Dプリンターをお持ちの方は、データが添付されているのでボディ・パーツが問題なく作れると思います。
(私は3Dプリンターが無いのでアクリル板をCNC加工して作りました)。
2)部品について
①チュートリアルのリストに記されたマイコンやTFTディスプレイをそのまま使う場合は、添付された回路図の通りに
配線を行います。但し、Arduino NANOにHC-05 bluethooth moduleを使うようになっていますが、HC-05は技適を
取得しておらず、国内ではそのまま使えません。使う場合は総務省へ申請が必要となりますが、テスト代行費用や
書類作成の労力を考えると、私のように技適認証された安価なマイコンESP32を使うのがベターです。
②サーボモータSG90は少し高価てもTowerPro等の純正品をお勧めします。私のように安価なサーボモータを
使うとバックラッシュが大きくてバランスが悪くなる原因となります。
3)注意点
①特に注意が必要なのは、ロボットの左右が人の左右とは逆で、ロボットに対面しての左右となっています。
私はいちいち読み替えるのが面倒なうえ、間違いの元となるのでプログラムを全て書き直しました。
②脚部の関節長について:3Dプリンターのデータを基に作られる方は問題外ですが、それ以外の方法で自作
される方は、脚部の長さが違うと動きが変わるので、厳密には添付のソフトウエアがそのまま使えません。
後述角度計算ソフトOttis1.0のA-B及びB-C間の長さを実際の寸法に合わせる必要があります。(変更可能)
4)プログラミングに必要な計算ソフトOttis1.0について
エドゥアルドさんが作成された計算ソフトOttis1.0は、ロボットの動きを制御するサーボモータの角度を計算するのに
とても重宝しました。 ここも左右が逆なので注意!
私は、このソフトを利用してロボットにダンスや屈伸運動(ラジオ体操もどき)をさせています。(末尾の動画を参照)
注意:チュートリアルの計算ソフトへのリンクが開きません。正しくは、こちらのURLから開きます。
5)TFTディスプレイのグラフィック表示について
チュートリアル添付のArduino UNOがTFTディスプレイのプログラムです。
TFTディスプレイは縦240ドット、横320ドットなので、240X320の方眼紙を使い描画の座標位置を決めます。
私は顔の輪郭を丸くした12種類をデザインしました。
描画には、円や線、三角形、四角形、角丸四角形などの輪郭及び塗りつぶし等の記述書式が有ります。
*全画面塗りつぶし:色の指定=(色) 書式 = tft.fillScreen(BLACK);
*線の描画:座標と色の指定=( 始点 x1,y1、 終点 x2,y2、色)
線の書式=tft.drawLine(x1, y1, x2, y2, WHITE);
*四角形の描画:座標と色の指定= (始点 x1,y1、サイズ sx,sy 、色)
四角形の輪郭書式=tft.drawRect(x1, y1, sx, sy, BLUE);
四角形の塗りつぶし書式= tft.fillRect(x1, y1, sx, sy, RED);
*角丸四角形の描画
座標と色の指定= (始点 x1,y1、サイズ sx,sy、角丸の半径 r ( rを0にすると角丸が無くなる)、色)
角丸四角形の輪郭書式=tft.drawRoundRect(x1, y1, sx, sy, r, CYAN);
角丸四角形の塗りつぶし書式=tft.fillRoundRect(x1, y1, sx, sy, r, GREEN);
*円の描画:座標と色の指定= (中心点 x1,y1、半径(radius)、色)
円の輪郭書式=tft.drawCircle(x, y, radius, WHITE);
円の塗りつぶし書式=tft.fillCircle(x1, y1, radius, WHITE);
*三角形の描画:座標と色の指定= ( 座標1 x1,y1 、座標2 x2,y2 、座標3 x3,y3、色)
三角形の輪郭書式 = tft.drawTriangle(x1, y1, x2, y2, x3, y3, MAGENTA);
三角形の塗りつぶし書式= tft.fillTriangle(x1, y1, x2, y2, x3, y3, YELLOW);
中間色を指定する場合は、0x00000~0xFFFFFのu16 Codeで表示できます。
また、文字を表示する事も出来ますが、何れも詳細はAdafruit_ILI9341ライブラリーをご覧下さい。
6)ビープ音源について
CuteBuzzerSoundsライブラリーを使って圧電スピーカからメロディを出力します。
次の19個のメロディーが用意されています。
S_CONNECTION | S_DISCONNECTION | S_BUTTON_PUSHED |
S_MODE1 | S_MODE2 | S_MODE3 |
S_SURPRISE | S_OHOOH | S_OHOOH2 |
S_CUDDLY | S_SLEEPING | S_HAPPY |
S_SUPER_HAPPY | S_HAPPY_SHORT | S_SAD |
S_CONFUSED | S_FART1 | S_FART3 |
S_JUMP |
7)コントロールAPPについて
チュートリアルに記されたスマートフォン用アプリを使うよりも、私が使っているBluetooth Serial Controllerが
汎用性が高くて使い易いのでお勧めです。但し、Android専用でiPhone用が無いのが残念です。
8)工作の楽しみ方について
工作についての私の考えは、マニュアル通りに作るのではなく、手持ちの部品や材料を活かして出来るだけ
独創性を出すことが信条です。 今回の作品も素材やマイコン、ディスプレイ、回路などが異なります。
例えば同じ素材を使うプラモデルであっても長けた人は、塗装や装飾などで独創性を出して見事な作品を
作り上げます。このことは全ての工作に通じると信じています。
9)おわりに
一寸愚痴な話になりますが、instructablesの最後に「この作品を作られた方は共有して下さい」と投稿案内が
有ります。これまでにも何回か参考にして作った作品を投稿してますが、今回初めて何の連絡もなく削除されて
しまいました。 作者は自分の製作記事を参考に多くの方が作られ、それが完動すれば嬉しいと思うのですが?
製作手段が違っても出来上がりが同じなのに、何が問題なのか?理由を知ろうと再投稿するもアカウントが
ブロックされて受け付けず、運営会社に連絡しても返事が無く、他に連絡方法が無くて少しガッカリしています。
最後に動画をもう一度ご覧下さい。
皆様の参考になれば幸いです。
by Paradise
スポンサーサイト
Ottis Robotの動画が出来ました。
動画が出来ましたのでご覧下さい。
1個100円程の安価なサーボモータを使った結果、ギアーの遊び(バックラッシュ)が大きくて
立ている時にハンチングが起こり、体が揺れてしまうのが難点です。
皆様の参考になれば幸いです。
by Paradise
1個100円程の安価なサーボモータを使った結果、ギアーの遊び(バックラッシュ)が大きくて
立ている時にハンチングが起こり、体が揺れてしまうのが難点です。
皆様の参考になれば幸いです。
by Paradise
Ottis Robotの制御回路を変更しました。
制御回路を作り替えたOttis Robot

Ottis Robotの概要
原作者エドゥアルドさんの場合
ボディー:3Dプリンターによる製作
2.4インチTFT液晶ディスプレイ:Arduino用シールドタイプとArduinoUNO
サーボモータの制御:ArduinoNANO+HC-05 bluethooth module+Servo driver PCA9685
コントロール・アプリ:MIT APP
Paradiseモデル (使用部品の多くは先に製作のスネークロボット1号機を分解した物を使用)
製作の構想時には、ESP32モジュール1個でディスプレイ制御とServo driver PCA9685を動かす予定でしたが、
テストの結果、ESP32のWiFi又はBluetoothを作動させるとTFTディスプレイの画面が乱れる事が判り、ディスプレイ用と
サーボモータの制御用を分ける事にしました。
ボディー:アクリル板をCNC加工よる製作
2.4インチTFT液晶ディスプレイ:SPI接続の汎用タイプとESP32U(電波を出さないのでアンテナ外付けタイプを使用)

TFTディスプレイの配線図

サーボモータの制御(改良前):M5 Stamp Pico+Servo driver PCA9685
背面にServo driver PCA9685を取り付けるとサーボモータのコネクター端子が出っ張って不細工なので
PCA9685を止めてESP32モジュールにて直接サーボモータを制御することにしました。

サーボモータの制御(改良後):ESP32による直接ドライブ方式としました。
制御基板から下向きにサーボモータのコネクタ端子をを取り付けて奥行きを短くしました。

ESP32モジュールを使ったサーボモータの制御回路
UART SWと表示したスイッチは、サーボモータコントロール部からTFT制御部へ映像切り替え信号を一歩通行にて
送るためですが、USBシリアルから書き込み時にバッティングするので、書き込み時と通常時の切り替え用です。
電源は制御用に3.7V500mAのリポバッテリーを2個直列接続にて7.4Vを使用。7.4Vを使う理由は、3.3V1Aを得る
ROHM社のDC/DCコンバータ(BP5293)の入力電圧下限が7Vだからです。
サーボモータ用電源には単四充電池1.2Vを4個直列接続にて使用しています。両方の電源を1個のSWでON/OFF
させる方法としてGNDコモンにてスイッチしました。

背面が随分スッキリと纏まりました。

コントロール・アプリ
フリーAPPのBluetooth Serial Controllerがこの用途にピッタリなので今回も利用させてもらいました。
使い方は、過去記事M5 Stamp Pico Mateを使ってみました。 その2をご覧下さい。

作ってみての感想
エドゥアルドさんの原作と外観は似ていますが、中身が全く別物になりました。
サーボモータ制御部を変更したので、歩行データを最初から作り直す羽目になりましたが、その分ソフトウェアの
勉強になりました。
単にまねるだけではなく、ひと工夫することによりオリジナル性が出て工作の楽しみが増えて行きます。
やっぱり、工作は楽しいですね!
年内に動画をご覧頂けるように、今は、歩くだけでなくダンスを覚えさせたり、体操をさせるプログラムが
進行中です。また、ディスプレイに表示の顔も作成中で、バリエーションが増えます。
皆様の参考になれば幸いです。
by Paradise

Ottis Robotの概要
原作者エドゥアルドさんの場合
ボディー:3Dプリンターによる製作
2.4インチTFT液晶ディスプレイ:Arduino用シールドタイプとArduinoUNO
サーボモータの制御:ArduinoNANO+HC-05 bluethooth module+Servo driver PCA9685
コントロール・アプリ:MIT APP
Paradiseモデル (使用部品の多くは先に製作のスネークロボット1号機を分解した物を使用)
製作の構想時には、ESP32モジュール1個でディスプレイ制御とServo driver PCA9685を動かす予定でしたが、
テストの結果、ESP32のWiFi又はBluetoothを作動させるとTFTディスプレイの画面が乱れる事が判り、ディスプレイ用と
サーボモータの制御用を分ける事にしました。
ボディー:アクリル板をCNC加工よる製作
2.4インチTFT液晶ディスプレイ:SPI接続の汎用タイプとESP32U(電波を出さないのでアンテナ外付けタイプを使用)

TFTディスプレイの配線図

サーボモータの制御(改良前):M5 Stamp Pico+Servo driver PCA9685
背面にServo driver PCA9685を取り付けるとサーボモータのコネクター端子が出っ張って不細工なので
PCA9685を止めてESP32モジュールにて直接サーボモータを制御することにしました。

サーボモータの制御(改良後):ESP32による直接ドライブ方式としました。
制御基板から下向きにサーボモータのコネクタ端子をを取り付けて奥行きを短くしました。

ESP32モジュールを使ったサーボモータの制御回路
UART SWと表示したスイッチは、サーボモータコントロール部からTFT制御部へ映像切り替え信号を一歩通行にて
送るためですが、USBシリアルから書き込み時にバッティングするので、書き込み時と通常時の切り替え用です。
電源は制御用に3.7V500mAのリポバッテリーを2個直列接続にて7.4Vを使用。7.4Vを使う理由は、3.3V1Aを得る
ROHM社のDC/DCコンバータ(BP5293)の入力電圧下限が7Vだからです。
サーボモータ用電源には単四充電池1.2Vを4個直列接続にて使用しています。両方の電源を1個のSWでON/OFF
させる方法としてGNDコモンにてスイッチしました。

背面が随分スッキリと纏まりました。

コントロール・アプリ
フリーAPPのBluetooth Serial Controllerがこの用途にピッタリなので今回も利用させてもらいました。
使い方は、過去記事M5 Stamp Pico Mateを使ってみました。 その2をご覧下さい。

作ってみての感想
エドゥアルドさんの原作と外観は似ていますが、中身が全く別物になりました。
サーボモータ制御部を変更したので、歩行データを最初から作り直す羽目になりましたが、その分ソフトウェアの
勉強になりました。
単にまねるだけではなく、ひと工夫することによりオリジナル性が出て工作の楽しみが増えて行きます。
やっぱり、工作は楽しいですね!
年内に動画をご覧頂けるように、今は、歩くだけでなくダンスを覚えさせたり、体操をさせるプログラムが
進行中です。また、ディスプレイに表示の顔も作成中で、バリエーションが増えます。
皆様の参考になれば幸いです。
by Paradise
Ottis 2足歩行ロボットが歩き始めました。
インストラクタブルのロボットコンテストに準優勝のOttisロボット
大学生が作った2足歩行ロボットが面白そうなので手持ちの部品を集めて作りました。
Ottisロボット製作記事を参照 作者はメキシコシティの大学生エドゥアルドさんです。
私は3Dプリンターが無いのでアクリル板をCNC加工して作りました。
また、マイコンをArduinoからESP32に変更、TFTディスプレイも手持ち品を使うなど大きく変更しています。
完成画像
公開されたソフトウェアはごく基本的なもので、出来上がったロボットに合わせてカスタマイズする必要があります。
顔のグラフィックス表示もオリジナルに変更予定です。

後ろ姿
マイコンやコントロールボードとサーボモータを繋ぐ配線が露です。

次回から回路図や組み立てについての詳細と動画を順次紹介します。

by Paradise
大学生が作った2足歩行ロボットが面白そうなので手持ちの部品を集めて作りました。
Ottisロボット製作記事を参照 作者はメキシコシティの大学生エドゥアルドさんです。
私は3Dプリンターが無いのでアクリル板をCNC加工して作りました。
また、マイコンをArduinoからESP32に変更、TFTディスプレイも手持ち品を使うなど大きく変更しています。
完成画像
公開されたソフトウェアはごく基本的なもので、出来上がったロボットに合わせてカスタマイズする必要があります。
顔のグラフィックス表示もオリジナルに変更予定です。

後ろ姿
マイコンやコントロールボードとサーボモータを繋ぐ配線が露です。

次回から回路図や組み立てについての詳細と動画を順次紹介します。

by Paradise
Ottis 2足歩行ロボットを作り始めました。
インストラクタブルのロボットコンテストに準優勝のOttisロボット
大学生が作った2足歩行ロボットが面白そうなので手持ちの部品で製作を始めています。
Ottisロボット製作記事を参照 作者はメキシコシティの大学生エドゥアルドさんです。
(上記ページには3Dプリンターのデータやソースファイルが公開されています)
私は3Dプリンターが無いのでアクリル板をCNC加工して作ります。
また、マイコンをArduinoからESP32に変更、TFTディスプレイも手持ち品を使うなど大きく変更しています。
完成までにしばらく時間が掛かりますが、上手く出来上がりましたら掲載の予定です。
完成イメージ (画像はインストラクタブルより引用)

by Paradise
大学生が作った2足歩行ロボットが面白そうなので手持ちの部品で製作を始めています。
Ottisロボット製作記事を参照 作者はメキシコシティの大学生エドゥアルドさんです。
(上記ページには3Dプリンターのデータやソースファイルが公開されています)
私は3Dプリンターが無いのでアクリル板をCNC加工して作ります。
また、マイコンをArduinoからESP32に変更、TFTディスプレイも手持ち品を使うなど大きく変更しています。
完成までにしばらく時間が掛かりますが、上手く出来上がりましたら掲載の予定です。
完成イメージ (画像はインストラクタブルより引用)

by Paradise