ESP32 Evo2タイプロボットを作る その3
お知らせ!
10月22日現在、ここに使ったステッピングモータと同じ品が、メルカリで2個(税・送料込み)1100円で出ています。
先ずは動画をご覧下さい。
その3 ソフトウエアーについて
このESP32 Evo2 TypeにはがGitHubに公開されたB-ROBOT_EVO2_ESP32を利用させて頂きました。
ghmartin77さんに感謝いたします。
ダウンロードについて
①次のURLからZIPファイルをダウンロードします。
GitHubのESP32_EVO2_ESP32を開く
②開いたページの緑表示のCODEをクリックし、ダイヤログのDownloadZIPを実行します。
③ダウンロードしたZIPファイルを適当なディレクトリーに解凍します。
④解凍したファイルの上から2番目のディレクトリーBRobotEvo2ESP32を開きます。
⑤開いたディレクトリー1番上のINOファイルBRobotEvo2ESP32.inoはダミーで注釈のみです。
英文の注釈通り意図的に空にしている故、配慮が必要です。
作者の意図を尊重し、あえてファイル名を記しませんが、ソースファイルがどれか直ぐに解ると思います。
ライブラリーの修正
先に解凍したBRobotEvo2ESP32ファイル内のdefinesをテキストエディタ等で開き、ハードウェアが使用する
ピン番号に書き換える必要があります。
前回に記した回路図の所でも少し述べましたが、この回路の通り配線をした場合は図内で記したピン番号に
変更します。その他は使用するハードウェアに合わせます。
変更箇所は11から19行目です。
11 #define PIN_ENABLE_MOTORS 12 ⇒ 32
12
13 #define PIN_SERVO 17 ⇒ 16
14
15 #define PIN_MOTOR1_DIR 27 ⇒ 27
16 #define PIN_MOTOR1_STEP 14 ⇒ 26
17
18 #define PIN_MOTOR2_DIR 25 ⇒ 33
19 #define PIN_MOTOR2_STEP 26 ⇒ 25
変更が終われば保存して終了します。
ライブラリーの追加
先に解凍したBRobotEvo2ESP32ファイルからライブラリー以外の2個を除き、Arduinoがインストールされた
ディレクトリーへ移動し、その下層のlibraryディレクトリーへBRobotEvo2ESP32を直接貼り付ければOKです。
注意
Arduinoのlibraryディレクトリー内に他のMPU6050ライブラリーが存在する場合、追加したMPU6050と競合して
コンパイルエラーが出ます。この場合は、先に入ってたMPU6050ライブラリーを別のディレクトリーへ退避させると
解決します。
使用充電池について
今回使用した格安ステッピングモータはコイルの抵抗値が約5Ωと低いため、電流を流し過ぎるとモータや
ドライバーICの発熱が起き、無駄な電流消費を招きます。
使用したモータドライバーA4988の仕様書では、モータ電圧 min 8.0Vとありますが、今回使用したモータでは
電圧を上げ過ぎると発熱を起こすため、あえて7.4Vのリチウムイオン充電池を使用していますが、
7V以上の電圧が有れば正常に動作します。(6年前の初期B-ROBOTから同じ方法を使用して確認すみです)
但し、容量が多い電池の使用と早めの充電が必要で古い電池はNGです。
モータードライバーの電流調整
モータードライバー基板に付いたVR(ポテンションメータ)を回してステッピングモータに流れる電流を調整します。
①電源回路へ直列に電流計を接続します。
②片方のステッピングモータのコネクターを外します。
③ロボットを水平に寝かせて電源スイッチを投入します。
④暫くするとサーボモータに取り付けたアームが数回小刻みに動いたら手で持ち上げ、
角度を水平から少し起こすとモーターが回転を始めます。
⑤この無負荷で回転する時の電流値を約200mA前後(マイコン等回路全ての消費電流)となるように
VRを回して調整し、ロボットを水平に戻したり起こしたりしながら行います。(電流値には個体差あり)
片方が終われば、反対側のモータも同じ値に調整すれば完了です。
コントロールソフトについて
Evo2ロボットのコントロールには、jjrobots社のB-Robot用スマートフォンアプリが利用可能です。
iPhoneとAndroidの両方がサポートされて、夫々のAPPストアにてダウンロード出来ます。
APPの使用は営利を伴わなければOKだと思いますが自己責任で行って下さい。
以上、ESP32 Evo2タイプロボットを作られる方の参考になれば幸いです。
by Paradise
10月22日現在、ここに使ったステッピングモータと同じ品が、メルカリで2個(税・送料込み)1100円で出ています。
先ずは動画をご覧下さい。
その3 ソフトウエアーについて
このESP32 Evo2 TypeにはがGitHubに公開されたB-ROBOT_EVO2_ESP32を利用させて頂きました。
ghmartin77さんに感謝いたします。
ダウンロードについて
①次のURLからZIPファイルをダウンロードします。
GitHubのESP32_EVO2_ESP32を開く
②開いたページの緑表示のCODEをクリックし、ダイヤログのDownloadZIPを実行します。
③ダウンロードしたZIPファイルを適当なディレクトリーに解凍します。
④解凍したファイルの上から2番目のディレクトリーBRobotEvo2ESP32を開きます。
⑤開いたディレクトリー1番上のINOファイルBRobotEvo2ESP32.inoはダミーで注釈のみです。
英文の注釈通り意図的に空にしている故、配慮が必要です。
作者の意図を尊重し、あえてファイル名を記しませんが、ソースファイルがどれか直ぐに解ると思います。
ライブラリーの修正
先に解凍したBRobotEvo2ESP32ファイル内のdefinesをテキストエディタ等で開き、ハードウェアが使用する
ピン番号に書き換える必要があります。
前回に記した回路図の所でも少し述べましたが、この回路の通り配線をした場合は図内で記したピン番号に
変更します。その他は使用するハードウェアに合わせます。
変更箇所は11から19行目です。
11 #define PIN_ENABLE_MOTORS 12 ⇒ 32
12
13 #define PIN_SERVO 17 ⇒ 16
14
15 #define PIN_MOTOR1_DIR 27 ⇒ 27
16 #define PIN_MOTOR1_STEP 14 ⇒ 26
17
18 #define PIN_MOTOR2_DIR 25 ⇒ 33
19 #define PIN_MOTOR2_STEP 26 ⇒ 25
変更が終われば保存して終了します。
ライブラリーの追加
先に解凍したBRobotEvo2ESP32ファイルからライブラリー以外の2個を除き、Arduinoがインストールされた
ディレクトリーへ移動し、その下層のlibraryディレクトリーへBRobotEvo2ESP32を直接貼り付ければOKです。
注意
Arduinoのlibraryディレクトリー内に他のMPU6050ライブラリーが存在する場合、追加したMPU6050と競合して
コンパイルエラーが出ます。この場合は、先に入ってたMPU6050ライブラリーを別のディレクトリーへ退避させると
解決します。
使用充電池について
今回使用した格安ステッピングモータはコイルの抵抗値が約5Ωと低いため、電流を流し過ぎるとモータや
ドライバーICの発熱が起き、無駄な電流消費を招きます。
使用したモータドライバーA4988の仕様書では、モータ電圧 min 8.0Vとありますが、今回使用したモータでは
電圧を上げ過ぎると発熱を起こすため、あえて7.4Vのリチウムイオン充電池を使用していますが、
7V以上の電圧が有れば正常に動作します。(6年前の初期B-ROBOTから同じ方法を使用して確認すみです)
但し、容量が多い電池の使用と早めの充電が必要で古い電池はNGです。
モータードライバーの電流調整
モータードライバー基板に付いたVR(ポテンションメータ)を回してステッピングモータに流れる電流を調整します。
①電源回路へ直列に電流計を接続します。
②片方のステッピングモータのコネクターを外します。
③ロボットを水平に寝かせて電源スイッチを投入します。
④暫くするとサーボモータに取り付けたアームが数回小刻みに動いたら手で持ち上げ、
角度を水平から少し起こすとモーターが回転を始めます。
⑤この無負荷で回転する時の電流値を約200mA前後(マイコン等回路全ての消費電流)となるように
VRを回して調整し、ロボットを水平に戻したり起こしたりしながら行います。(電流値には個体差あり)
片方が終われば、反対側のモータも同じ値に調整すれば完了です。
コントロールソフトについて
Evo2ロボットのコントロールには、jjrobots社のB-Robot用スマートフォンアプリが利用可能です。
iPhoneとAndroidの両方がサポートされて、夫々のAPPストアにてダウンロード出来ます。
APPの使用は営利を伴わなければOKだと思いますが自己責任で行って下さい。
以上、ESP32 Evo2タイプロボットを作られる方の参考になれば幸いです。
by Paradise
スポンサーサイト
ESP32 Evo2タイプロボットを作る その2
先ずは動画をご覧下さい。
その2 本体の組み立て
この作品は再現性を重点に出来るだけ市販部品を使って組み立てました。
主なパーツを揃える
39㎜ステッピングモータ ×2 (シャフトが長いので13㎜に切断しています)
A4988ステッピングモータ・ドライバーモジュール ×2 (Amazon 5個 849円)
アルミ電解コンデンサー 35V100㎌ ×2 (秋月電子1個 15円)
GY-521 ジャイロセンサー ×1 (Amazon 価格色々、最安 5個 999円)
SG90 マイクロサーボモータ ×1 (秋月電子1個 440円)
ユニバーサル基板 片面ガラスCタイプ72X47.5㎜ ×1 (秋月電子 1枚 60円)
基板スペーサー丸型30㎜ ×4 (秋月電子 丸型両メネジ RFB 3-30 1個 50円)
ホイール マイクロサーボ用60㎜ ×2 (秋月電子1個 160円)
ホイールハブ 5㎜モーターシャフト用ハブ X2 (秋月電子2個入540円)
電池ボックス A123用 ×2 (秋月電子1個 40円)
ROHM スイッチング式3端子レギュレータユニット BP5293-50 ×1 (秋月電子1個 260円)
3.3V 800mA 3端子レギュレータユニット ×1 (Amazon 10個 560円)
アクリル板 t2、t3、t5 少々
その他にピン・ソケット、配線材、ビス、超強力両面テープ等少々

上部アクリル板の寸法図
材料はアクリル板に限らずベニヤ板でもOKです。

アクリル板に部品の取り付け
予め上部のアクリル板に電池ボックスとサーボモータを両面テープにて貼り付けておきます。

モータに補強版の取り付け
左右モータをアクリル板を補強材にして超強力両面テープにて貼り合わせます。
モータ後部には5㎜厚のアクリル板13X13㎜を2枚用意して、モータシャフトを避けて画像のように張り合わせます。
次に底板に厚さ2㎜のアクリル板50x30㎜を両面テープにて接着します。

基板固定用アクリル板の取り付け
最後に基板取り付け用アクリル板を両面テープにて接着しますが、モータのリード線を通し位置を正確に決めます。
この作業で左右のモータが動かなく固定されます。

コントロール基板の取り付け
コントロール基板の取り付けには厚さ3㎜のスペーサーを使いますが、円でなくても正方形にM3の穴を開けた物を
4個用意します。
次にアクリル板の下側からM3x10㎜のビスを通し、スペーサーを介して基板を載せ、長さ30㎜の金属スペーサーにて
画像のようにコントロール基板を固定します。

電源部の取り付け
先に組み立てた電源部を金属スペーサーに載せてM3x6㎜のビスで固定します。
画像では、転倒時に電池が飛び出さないようにマジックテープで止めるようにしています。

後部の様子
ここまで出来たらモータのリード線を基板に接続出来ますが、リード線の順番は左から、赤、青、黒、緑を接続します。

ホイールの準備
今回使ったホイールは1個160円(秋月電子)にて購入の直径60㎜のマイクロサーボ用です。また、シャフトへの
取り付けには同じく秋月電子で購入のアルミ製ホイールハブ(5㎜モーターシャフト用ハブ(2個入540円))です。
少し高価ですが自分で加工出来ない方には便利です。画像左側のホイールに白く光るのがハブです。
このホイールには2個の取付穴と対角にもう2個下穴が開いていてM3のピンバイスで直ぐに貫通出来ます。
尚、私はホイールのサーボモータ取り付け穴をM5ドリルで貫通して使用しています。
最初にも記しましたが、モーターシャフトが20㎜と長いので金鋸で切断して13㎜長にしています。

完成画像1

完成画像2

次回はソフトウェアについての要点を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
その2 本体の組み立て
この作品は再現性を重点に出来るだけ市販部品を使って組み立てました。
主なパーツを揃える
39㎜ステッピングモータ ×2 (シャフトが長いので13㎜に切断しています)
A4988ステッピングモータ・ドライバーモジュール ×2 (Amazon 5個 849円)
アルミ電解コンデンサー 35V100㎌ ×2 (秋月電子1個 15円)
GY-521 ジャイロセンサー ×1 (Amazon 価格色々、最安 5個 999円)
SG90 マイクロサーボモータ ×1 (秋月電子1個 440円)
ユニバーサル基板 片面ガラスCタイプ72X47.5㎜ ×1 (秋月電子 1枚 60円)
基板スペーサー丸型30㎜ ×4 (秋月電子 丸型両メネジ RFB 3-30 1個 50円)
ホイール マイクロサーボ用60㎜ ×2 (秋月電子1個 160円)
ホイールハブ 5㎜モーターシャフト用ハブ X2 (秋月電子2個入540円)
電池ボックス A123用 ×2 (秋月電子1個 40円)
ROHM スイッチング式3端子レギュレータユニット BP5293-50 ×1 (秋月電子1個 260円)
3.3V 800mA 3端子レギュレータユニット ×1 (Amazon 10個 560円)
アクリル板 t2、t3、t5 少々
その他にピン・ソケット、配線材、ビス、超強力両面テープ等少々

上部アクリル板の寸法図
材料はアクリル板に限らずベニヤ板でもOKです。

アクリル板に部品の取り付け
予め上部のアクリル板に電池ボックスとサーボモータを両面テープにて貼り付けておきます。

モータに補強版の取り付け
左右モータをアクリル板を補強材にして超強力両面テープにて貼り合わせます。
モータ後部には5㎜厚のアクリル板13X13㎜を2枚用意して、モータシャフトを避けて画像のように張り合わせます。
次に底板に厚さ2㎜のアクリル板50x30㎜を両面テープにて接着します。

基板固定用アクリル板の取り付け
最後に基板取り付け用アクリル板を両面テープにて接着しますが、モータのリード線を通し位置を正確に決めます。
この作業で左右のモータが動かなく固定されます。

コントロール基板の取り付け
コントロール基板の取り付けには厚さ3㎜のスペーサーを使いますが、円でなくても正方形にM3の穴を開けた物を
4個用意します。
次にアクリル板の下側からM3x10㎜のビスを通し、スペーサーを介して基板を載せ、長さ30㎜の金属スペーサーにて
画像のようにコントロール基板を固定します。

電源部の取り付け
先に組み立てた電源部を金属スペーサーに載せてM3x6㎜のビスで固定します。
画像では、転倒時に電池が飛び出さないようにマジックテープで止めるようにしています。

後部の様子
ここまで出来たらモータのリード線を基板に接続出来ますが、リード線の順番は左から、赤、青、黒、緑を接続します。

ホイールの準備
今回使ったホイールは1個160円(秋月電子)にて購入の直径60㎜のマイクロサーボ用です。また、シャフトへの
取り付けには同じく秋月電子で購入のアルミ製ホイールハブ(5㎜モーターシャフト用ハブ(2個入540円))です。
少し高価ですが自分で加工出来ない方には便利です。画像左側のホイールに白く光るのがハブです。
このホイールには2個の取付穴と対角にもう2個下穴が開いていてM3のピンバイスで直ぐに貫通出来ます。
尚、私はホイールのサーボモータ取り付け穴をM5ドリルで貫通して使用しています。
最初にも記しましたが、モーターシャフトが20㎜と長いので金鋸で切断して13㎜長にしています。

完成画像1

完成画像2

次回はソフトウェアについての要点を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
ESP32 Evo2タイプロボットを作る その1
その1 コントロール基板を作る
今回の製作モデルには、先に紹介しましたステッピングモータの使用を前提ですが、他のモータでも
昇圧回路の追加等で対応できます。
Pylon slalomを練習中

手組基板例
前回作ったESP32 Original Unitを使いユニバーサル基板に電源回路、モータードライバー、ジャイロセンサーを
手配線しました。

回路図
この配線パターンで組み立てた場合は、definesライブラリー内のピン番号の設定を図内リストを参考に変更します。
5Vの3端子レギュレータにはROHM社のDC/DC型モジュールを使っています。電源電圧を上げた場合でも発熱が
無く安心して使えます。3.3Vの方は800mAのコンデンサー実装型(Amazonにて購入)の安価なモジュールです。

基板裏側から見た配線図
手組配線される方は参考にして下さい。電源関係の配線が交差する所は片方を表側へ迂回させています。
信号線は0.32㎜径のラッピングワイヤーを使っています。

基板裏側の見本
上の配線図とほぼ同じに仕上がっていますが、細かい部分ではアレンジしています。
使用したユニバーサル基板は、秋月電子の片面ガラスCタイプ72X47.5㎜を、片側をカットして幅61㎜にて使用。

CNC切削用プリントパターン例 (実物サイズは55X55㎜)
片面基板なので3ヶ所ジャンパー線が必要です。上側ENABLEは表ジャンパー、I2CのSCL,SDAは裏ジャンパーです。
参考にして下さい。

次回は全体の組み立てについて掲載します。
皆さまの参考になれば幸いです。
by Paradise
今回の製作モデルには、先に紹介しましたステッピングモータの使用を前提ですが、他のモータでも
昇圧回路の追加等で対応できます。
Pylon slalomを練習中

手組基板例
前回作ったESP32 Original Unitを使いユニバーサル基板に電源回路、モータードライバー、ジャイロセンサーを
手配線しました。

回路図
この配線パターンで組み立てた場合は、definesライブラリー内のピン番号の設定を図内リストを参考に変更します。
5Vの3端子レギュレータにはROHM社のDC/DC型モジュールを使っています。電源電圧を上げた場合でも発熱が
無く安心して使えます。3.3Vの方は800mAのコンデンサー実装型(Amazonにて購入)の安価なモジュールです。

基板裏側から見た配線図
手組配線される方は参考にして下さい。電源関係の配線が交差する所は片方を表側へ迂回させています。
信号線は0.32㎜径のラッピングワイヤーを使っています。

基板裏側の見本
上の配線図とほぼ同じに仕上がっていますが、細かい部分ではアレンジしています。
使用したユニバーサル基板は、秋月電子の片面ガラスCタイプ72X47.5㎜を、片側をカットして幅61㎜にて使用。

CNC切削用プリントパターン例 (実物サイズは55X55㎜)
片面基板なので3ヶ所ジャンパー線が必要です。上側ENABLEは表ジャンパー、I2CのSCL,SDAは裏ジャンパーです。
参考にして下さい。

次回は全体の組み立てについて掲載します。
皆さまの参考になれば幸いです。
by Paradise
M5 Stack ATOM Lite を使って倒立振子型ロボットを作る その3
2020年6月25日
私は、後期高齢者の爺さんですが、若い方に科学や工作について興味を抱いて欲しいと願っています。

EVO2用ESP32ソースファイルの紹介
先ずは、B-ROBOT EVO2用にESP32のソースファイルを公開されたghmartin77氏への敬意と感謝を申し上げます。
ESP32を使うことにより、原形のB-ROBOT EVO2に比べ回路の簡素化により部品点数が少なくなりました。
GitHub B-ROBOT EVO2 ESP32を開きます。
BRobotEvo2ESP32を開くと1番上のBRobotEvo2ESP32.inoはダミーファイルで、4番目のESP32SelfbalancingBot.cppが
本当のソースファイルなので拡張子をcppからinoに変更します。
次にそれ以外の12個のファイルは、libraryファイルなのでフォルダー名をBrobot等と付けた中にコピーし、Arduinoのlibraryに
インストールします。
M5stack ATOM Liteを使うためのコード変更
ghmartin77氏のGithubでは、ESP32 DevKitを使ってますが、私は小さく作るためにM5stack ATOM Lite(技適証明付き)
を使いました。
そのために使用するGPIOの番号を変更する必要があります。GPIOがバラバラなのは、プリントパターンを優先した結果です。
変更箇所はlibraryのdefines.hなのでテキストエディタ等で次の部分(11行目から)を編集します。
#define PIN_ENABLE_MOTORS12 ⇒ 19
#define PIN_SERVO17 ⇒ 32
#define PIN_MOTOR1_DIR27 ⇒ 26
#define PIN_MOTOR1_STEP14 ⇒ 33
#define PIN_MOTOR2_DIR25 ⇒ 23
#define PIN_MOTOR2_STEP26 ⇒ 25
以上の6行を書き換えたら保存を忘れずに行います。
注意:ESP32では、I2CのGPIOが21pin=SDA、22pin=SCLと規定されているので手組で配線される方は忘れずに!

ArduinoIDEでの書き込みについて
ここでは、M5stack ATOMの特別な機能を使わないので"M5Atom.h"を#includeする必要がありません。
ボードの選択は標準のESP32 Dev ModuleでOKです。
注意:Upload Speedは115200に設定します。これより早いと書き込みエラーが出ます。

コントロールソフトについて
B-ROBOT EVO2開発元のJJrobots社がスマホ用アプリ[JJrobots control APP]を無料公開されています。
android用はGooglePlay、iPhone用はApp Storeにてダウンロードして下さい。
APPの使い方は、JJrobots社のホームページにてご覧下さい。
JJrobots社のホームページには、倒立振子2輪ロボットの原理の他、参考になる情報が満載です。

遊び方
完成したら動かせてみましょう!机の上などは落下の危険があるので広い場所で行って下さい。
①本体を寝かせて電源スイッチをON。
②暫くするとアームが小刻みに動いた後静止します。(自動キャリブレーション)
③スマホのWiFi設定をタップすると利用可能なネットワークに「bbot」と表示されていると思います。
④「bbot」をタップしてパスワード[12345678]を入力設定します。
⑤少しすると接続済みになります。
⑥スマホにインストール済のJJrobots control APPを起動します。
⑦APPの右側SERVOボタンを押すとアームが本体を起こして自動的に倒立します。 左側のSERVO2は実装していません。
⑧後は、前後と左右のスライダーを動かす事により、思い通りに動かせます。
各スライダーは画面から指を離すと中立点で停止します。
⑨PROボタンを押すと動作スピードがアップしますが、普通モードで慣れてからでないと操作が難しいです。
海外ではサーキット・コースを作り、競技会が行われています。何人かで遊ぶと楽しいと思います。
機能を追加して楽しむ
M5stack ATOMを使った場合は、GPIOを全部使って余りが無いので無理ですが、GPIOに余裕があるESP32 DevKitや
ESP32単体に置き換えると、各種センサーを取り付けて障害物を避けながらの自動走行やライントレースを楽しむなど、
工夫次第で色々と発展させることが出来ます。
自作出来ない方のためにキットの販売も有りますが・・・
JJrobots社ではキット販売を行っていますが、使っているWiFiチップが日本国内で使えない技術適合証明が付いていない
ので注意が必要です。
最後にもう一度動画をご覧下さい。
最後までご覧頂き有難うございました。
皆様の参考になれば幸いです。
私は、後期高齢者の爺さんですが、若い方に科学や工作について興味を抱いて欲しいと願っています。

EVO2用ESP32ソースファイルの紹介
先ずは、B-ROBOT EVO2用にESP32のソースファイルを公開されたghmartin77氏への敬意と感謝を申し上げます。
ESP32を使うことにより、原形のB-ROBOT EVO2に比べ回路の簡素化により部品点数が少なくなりました。
GitHub B-ROBOT EVO2 ESP32を開きます。
BRobotEvo2ESP32を開くと1番上のBRobotEvo2ESP32.inoはダミーファイルで、4番目のESP32SelfbalancingBot.cppが
本当のソースファイルなので拡張子をcppからinoに変更します。
次にそれ以外の12個のファイルは、libraryファイルなのでフォルダー名をBrobot等と付けた中にコピーし、Arduinoのlibraryに
インストールします。
M5stack ATOM Liteを使うためのコード変更
ghmartin77氏のGithubでは、ESP32 DevKitを使ってますが、私は小さく作るためにM5stack ATOM Lite(技適証明付き)
を使いました。
そのために使用するGPIOの番号を変更する必要があります。GPIOがバラバラなのは、プリントパターンを優先した結果です。
変更箇所はlibraryのdefines.hなのでテキストエディタ等で次の部分(11行目から)を編集します。
#define PIN_ENABLE_MOTORS
#define PIN_SERVO
#define PIN_MOTOR1_DIR
#define PIN_MOTOR1_STEP
#define PIN_MOTOR2_DIR
#define PIN_MOTOR2_STEP
以上の6行を書き換えたら保存を忘れずに行います。
注意:ESP32では、I2CのGPIOが21pin=SDA、22pin=SCLと規定されているので手組で配線される方は忘れずに!

ArduinoIDEでの書き込みについて
ここでは、M5stack ATOMの特別な機能を使わないので"M5Atom.h"を#includeする必要がありません。
ボードの選択は標準のESP32 Dev ModuleでOKです。
注意:Upload Speedは115200に設定します。これより早いと書き込みエラーが出ます。

コントロールソフトについて
B-ROBOT EVO2開発元のJJrobots社がスマホ用アプリ[JJrobots control APP]を無料公開されています。
android用はGooglePlay、iPhone用はApp Storeにてダウンロードして下さい。
APPの使い方は、JJrobots社のホームページにてご覧下さい。
JJrobots社のホームページには、倒立振子2輪ロボットの原理の他、参考になる情報が満載です。

遊び方
完成したら動かせてみましょう!机の上などは落下の危険があるので広い場所で行って下さい。
①本体を寝かせて電源スイッチをON。
②暫くするとアームが小刻みに動いた後静止します。(自動キャリブレーション)
③スマホのWiFi設定をタップすると利用可能なネットワークに「bbot」と表示されていると思います。
④「bbot」をタップしてパスワード[12345678]を入力設定します。
⑤少しすると接続済みになります。
⑥スマホにインストール済のJJrobots control APPを起動します。
⑦APPの右側SERVOボタンを押すとアームが本体を起こして自動的に倒立します。 左側のSERVO2は実装していません。
⑧後は、前後と左右のスライダーを動かす事により、思い通りに動かせます。
各スライダーは画面から指を離すと中立点で停止します。
⑨PROボタンを押すと動作スピードがアップしますが、普通モードで慣れてからでないと操作が難しいです。
海外ではサーキット・コースを作り、競技会が行われています。何人かで遊ぶと楽しいと思います。
機能を追加して楽しむ
M5stack ATOMを使った場合は、GPIOを全部使って余りが無いので無理ですが、GPIOに余裕があるESP32 DevKitや
ESP32単体に置き換えると、各種センサーを取り付けて障害物を避けながらの自動走行やライントレースを楽しむなど、
工夫次第で色々と発展させることが出来ます。
自作出来ない方のためにキットの販売も有りますが・・・
JJrobots社ではキット販売を行っていますが、使っているWiFiチップが日本国内で使えない技術適合証明が付いていない
ので注意が必要です。
最後にもう一度動画をご覧下さい。
最後までご覧頂き有難うございました。
皆様の参考になれば幸いです。
![]() 良かったらclickして下さい! | ![]() 良かったらclickしてください! |
M5 Stack ATOM Lite を使って倒立振子型ロボットを作る その2
2020年6月23日
先は動画をご覧下さい。
キビキビ走り回る安定度抜群の倒立振子型2輪ロボットです。前面カバーに幼児が好きなドラえもんのイラストを借用しました。
1)ボディの工作について
私と同じ部品の入手が難しく、切削用のDXFファイルを添付しても役に立たないと思います。
と言うのは、ここで使用したステッピングモータ39㎜はオリジナルマインド社の新古品を利用しましたが、今では入手出来ません。
一般的には国内で入手し易い42㎜(NEMA17)タイプを使うことになります。
その他の工作については5年前の記事になりますが、下記URLのB-ROBOT3号機iの紹介記事を参考にして下さい。
http://kishiwada2.web.fc2.com/CNC/B-Robot3.htm
2)コントロール基板の回路図
今回製作目標の一つ小型化を実現するのに超小型のM5 Stack ATOM Liteを使いました。
ATOM Liteには、ESP32picoが組み込まれています。しかし、GPIOが最大8個しか使えませんが、B-ROBOT EVO2に必要な
要件を最小限ですが満たしています。但し、標準機能以外の拡張性が有りません。
ATOM Liteの3.3V出力電流の容量が僅かなので、別途3.3V500mAの電源を用意しました。
尚、GPIOの出力先がバラバラなのは、プリントパターンを優先した結果です。 IO26と32がPH2.0 4Pコネクターから出力
されていますが、本当はここにIO21と22を出してほしかった。その理由はI2Cラインが便利に使えるからです。

3)CNC切削でプリント基板の作製
簡単な回路なのでユニバーサル基板で作れますが、生基板にCNCでパターンを切削しました。
下の画像は実寸より大きいですが、実際の寸法は55㎜X55㎜の正方形です。但し2個所ジャンパー線が必要です。
基板切削用DXFデータのZIPファイルをダウンロード出来ます。

4)組み立て済の基板を参考にして下さい。
ATOM LiteとMPU6050の間隔が狭かったので上記プリントパターでは少し間隔を広げてます。

5)電源について
私は手持ちのデジカメ用7.4Vリチウムイオン電池を使いましたが、純正品が高価なので互換品を使っています。
参考:Canon純正型のNB-10L(ロワ・ジャパン)880円をAMAZONにて購入。
新たに用意される方は、3S(11.1V)タイプのLipo電池を使う方法があります。その場合はDC/DCコンバータが不要です。
NB-10Lの電池ケース加工方法はB-ROBOT3号機の紹介記事を参考にして下さい。
次回はghmartin77氏がESP32用に作成され、Githubに公開されたソースファイルを
M5 Stack ATOM Liteへの変更点などを紹介します。
先は動画をご覧下さい。
キビキビ走り回る安定度抜群の倒立振子型2輪ロボットです。前面カバーに幼児が好きなドラえもんのイラストを借用しました。
1)ボディの工作について
私と同じ部品の入手が難しく、切削用のDXFファイルを添付しても役に立たないと思います。
と言うのは、ここで使用したステッピングモータ39㎜はオリジナルマインド社の新古品を利用しましたが、今では入手出来ません。
一般的には国内で入手し易い42㎜(NEMA17)タイプを使うことになります。
その他の工作については5年前の記事になりますが、下記URLのB-ROBOT3号機iの紹介記事を参考にして下さい。
http://kishiwada2.web.fc2.com/CNC/B-Robot3.htm
2)コントロール基板の回路図
今回製作目標の一つ小型化を実現するのに超小型のM5 Stack ATOM Liteを使いました。
ATOM Liteには、ESP32picoが組み込まれています。しかし、GPIOが最大8個しか使えませんが、B-ROBOT EVO2に必要な
要件を最小限ですが満たしています。但し、標準機能以外の拡張性が有りません。
ATOM Liteの3.3V出力電流の容量が僅かなので、別途3.3V500mAの電源を用意しました。
尚、GPIOの出力先がバラバラなのは、プリントパターンを優先した結果です。 IO26と32がPH2.0 4Pコネクターから出力
されていますが、本当はここにIO21と22を出してほしかった。その理由はI2Cラインが便利に使えるからです。

3)CNC切削でプリント基板の作製
簡単な回路なのでユニバーサル基板で作れますが、生基板にCNCでパターンを切削しました。
下の画像は実寸より大きいですが、実際の寸法は55㎜X55㎜の正方形です。但し2個所ジャンパー線が必要です。
基板切削用DXFデータのZIPファイルをダウンロード出来ます。

4)組み立て済の基板を参考にして下さい。
ATOM LiteとMPU6050の間隔が狭かったので上記プリントパターでは少し間隔を広げてます。

5)電源について
私は手持ちのデジカメ用7.4Vリチウムイオン電池を使いましたが、純正品が高価なので互換品を使っています。
参考:Canon純正型のNB-10L(ロワ・ジャパン)880円をAMAZONにて購入。
新たに用意される方は、3S(11.1V)タイプのLipo電池を使う方法があります。その場合はDC/DCコンバータが不要です。
NB-10Lの電池ケース加工方法はB-ROBOT3号機の紹介記事を参考にして下さい。
次回はghmartin77氏がESP32用に作成され、Githubに公開されたソースファイルを
M5 Stack ATOM Liteへの変更点などを紹介します。
![]() 良かったらclickして下さい! | ![]() 良かったらclickしてください! |
M5 Stack ATOM Lite を使って倒立振子型ロボットを作る その1
2020年6月17日
5年前にjjrobots社のB-ROBOTを4台作りましたが、今回B-ROBOTにESP32を使った海外の記事が目に留まり、
5台目を作ってみました。 作っての感想は抜群の安定性で皆さんにお勧め出来る性能です。
参考にした記事ではESP32DevKitを使ってましたが、私は超小型のATOM Liteを使って完成させました。
完成したB-ROBOT Evo2 (前後のカバーを撮影用に外しています)。

今回使った全パーツ
ステッピングモータの下側が片面生基板をCNCでパターンカットしたPCBでサイズは約55X55㎜角に纏めました。
モータドライバA4988が2個並ぶ左下が24x24㎜角のATOM Liteで、その横がMPU-6050 3軸ジャイロセンサーです。
バッテリーはキャノンのデジカメに使われている7.4Vリチウムイオン電池を流用しています。
ボディやホイールは何時ものように3㎜と5㎜のアクリル板をCNC加工して作りました。

次回から製作についての詳細やソフトウエアーのお話を順次掲載します。
5年前にjjrobots社のB-ROBOTを4台作りましたが、今回B-ROBOTにESP32を使った海外の記事が目に留まり、
5台目を作ってみました。 作っての感想は抜群の安定性で皆さんにお勧め出来る性能です。
参考にした記事ではESP32DevKitを使ってましたが、私は超小型のATOM Liteを使って完成させました。
完成したB-ROBOT Evo2 (前後のカバーを撮影用に外しています)。

今回使った全パーツ
ステッピングモータの下側が片面生基板をCNCでパターンカットしたPCBでサイズは約55X55㎜角に纏めました。
モータドライバA4988が2個並ぶ左下が24x24㎜角のATOM Liteで、その横がMPU-6050 3軸ジャイロセンサーです。
バッテリーはキャノンのデジカメに使われている7.4Vリチウムイオン電池を流用しています。
ボディやホイールは何時ものように3㎜と5㎜のアクリル板をCNC加工して作りました。

次回から製作についての詳細やソフトウエアーのお話を順次掲載します。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
Inverted Balancing Robot(倒立振子型ロボット)その10
Inverted Balancing Robot(倒立振子型ロボット)その2をWiFiに改造
2017年8月の作品
2017年8月の作品
ESP8266 WROOM-02を使ってWiFiコントロールに改造した2号機
その2で紹介の2号機の記事と併せてご覧下さい。

ATmega328マイコンに替えてWiFiモジュールESP8266 WROOM-02を使ったことにより、回路が簡素化しました。
この2号機はステッピングモータを使わないのでB-ROBOTやYABRのような安定性が望めませんが、安価で
入手し易い模型用ギヤーボックスやWiFiモジュールを使って簡単に倒立ロボットの実験が出来てIoTの
勉強にもなるかと思います。
コントロール基板の回路図

小さなユニバーサル基板に組み込んだコントロール回路

コントローラーにWiiヌンチャクを使う場合の回路図

Wiiヌンチャクを改造せずにWiFi化する方法
小さな箱にWiFiモジュールESP8266 WROOM-02と電池を組み込むことにより、手頃なWiFiコントローラーになります。

スマートフォンやタブレットを使ってコントロールする方法
コントロール基板のESP8266 WROOM-02のsketchを少し変更することにより、スマートフォン・アプリのTouchOSCを
利用するとスマホなどがWiFiコントローラーとなります。このページに関するsketchなどの詳細はこちらから見れます。
また、WiFiを省電力のBluetooth LE(BLE)に変更したい場合は、テオヤンセンメカニズムを応用した作品 その9 を
参考にして下さい。
動画をご覧ください。
2019.04.22 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その9
Joop brokking氏企画のYABR(倒立ロボット)を作る
2017年7月の作品
2017年7月の作品
私は、以前に作ったB-ROBOT Miniのフレームや部品を再利用するため、YABRとは外観をはじめマイコンや主要部品が
異なりますが、今迄の倒立ロボット製作の経験から充分に再現性が有ると判断して製作を進めました。
YABRでは、リモコン用にシリアルトランシーバーモジュールを使ってますが、技術適合品ではなく国内では使えません。
そこで、技術適合マークが付いたWiFiモジュールを使い、スマホやタブレットからリモート操作が出来るように変更しました。

手持ち部品を使うためにマイコンやモータードライバーを変更した回路図です。

マザーボードに部品配置した様子(電池台を外した状態)
私はフレーム再利用のために高密度実装しましたが、Joop brokking氏の様に箱型に組むと作り易いと思います。

YABRのsketch(Sauce)はとても良く出来ていて、バランスが良いのでライントレースにも挑戦しました。
IRセンサーTCRT5000を左右と中央に配置して黒いラインから外れないように自走するライントレース機能を
組み込みました。

60㎝×90㎝の白い発泡スチロール板に電工用ビニールテープを貼り付けたコースでテストしました。

動画をご覧ください。
如何でしたか?Joop brokking氏が企画されたYABRの基本Sketchを利用させて頂き、安心して国内で遊べるように
通信方法の変更やライントレース機能を追加しましたが、1ヶ月余しで何んとか発表出来るようになりました。
YABRに興味を持ち製作される方は、最初は基本機能から始め、完動後にライントレース等の付加価値を追加して
ください。 最後までご覧頂き有難うございました。 興味のある皆様の参考になれば幸いです。
2019.04.21 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その8
フレームから基板までをCNCで加工したB-ROBOT 3号機miniの紹介
2015年10月の作品
2015年10月の作品
B-ROBOT 2号機とB-ROBOT Miniの大きさを比較

ステッピングモータを一回り小さい39㎜を使いました。

CNC加工して専用コントロール基板を製作しました。

完成したコントロール基板

完成したB-ROBOT 3号機 Mini

B-ROBOT miniの動画をご覧下さい。
小さくてもキビキビと走ります。 操作をTouchOSCのXY-Padを使い指一本で行えるようにしました。
B-ROBOT 2号機とminiの共演ご覧下さい。
Miniの試作機と併せて4台となりました。
2019.04.20 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その7
安定性抜群!ステッピングモーターを使ったB-ROBOT 2号機の紹介
2015年9月の作品
木製フレームB-ROBOT 2号機の初期モデル

B-ROBOT2号機では、オリジナルと同じArduino Leonardo互換機が入手出来たのでこれを使い、WiFiモジュールは
1号機同様に技適証明が付いたESP-WROOM-02を使いました。

電源も1号機と同様にカメラ用リチウムイオン電池を使っています。

ステッピングモーターも1号機同様にオリジナルマインド社で購入した新古品です。

フレームとホイールをアクリル板で作り変えたB-ROBOT 2号機

アクリルフレームB-ROBOT 2号機の後ろ側

動画をご覧ください。
2019.04.20 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その6
安定性抜群!ステッピングモーターを使ったB-ROBOT 1号機の紹介。
2015年9月の作品
2015年9月の作品
今回はjjrobots社公開のB-ROBOTを国内で購入出来る部品を使って完成させました。
B-ROBOTの特徴は駆動モータにステッピングモータを使っていることで、ギアモータのようなバックラッシュが
無くて安定したコントロールが得られることです。 ここをクリックするとjjrobots社のページを開きます

フレームはシナベニヤをCNC加工してムーミンをデザインしてみました。

ホイールはシナベニヤをCNCで加工して貼り合わせ、タイヤにはOリング(太さ5.7mm、外径約80mm)を使い、
ホイールとモーターシャフトはアクリル板をCNCで加工したHUBを使って固定しました。

木製フレームにステッピングモータを組み込んだ様子。

コントロール基板
jjrobots社のオリジナル回路のマイコンをArduino Leonardoがから小型のArduino Pro Microに変更。
WiFiモジュールを電波法の関係で国内では使えないESP-12Eから技術基準適合証明が付いたESP-WROOM-02変更。

電源には小型軽量のデジタルカメラ(CANONのLP-6Eの互換品)用7.2V約1800mAhのリチウムイオン電池を使用。

動画をご覧ください。
リモコンにはタブレット又はスマートフォンを使ってWiFiで操作します。
2019.04.19 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その5
超音波自律走行と倒立振子の複合型ロボット2号機の紹介
2015年5月の作品
2015年5月の作品
複合型ロボット2号機の特徴は、駆動モータにロータリー式サーボモータを使った事ですが、駆動トルクは有るが
回転数が低くて倒立時のバランスが難しい等、初期モデルに欠点が有りました。

初期モデル 倒立はするがバランスが悪かった!

そこで、対策として増速用の40:12ギアをCNC加工して追加しました。

増速ギアを追加して完成した複合型ロボット2号機

底部に取り付けた倒立補助用サーボモータ

回路図

動画をご覧ください。 増速ギアのバックラッシュで少し倒立が不安定ですが、何とかk完成しました!
2019.04.19 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その4
超音波自律走行と倒立振子の複合型ロボットの紹介
2015年5月の作品
2015年5月の作品
「手動走行・自律走行・倒立走行」3つのモードが使えるロボットです。
マイコン(Arduino)の勉強を始めて約半年、今回は3つの超音波センサーを使い障害物を避けて走行する
ロボットをRCサーボを使い、自動で倒立する複合型のロボットを作りました。
駆動モーターには、タミヤの楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)を使用。

今回の目玉は、超音波自律ロボットを赤外線リモコンを使い、ボタン操作一つで倒立するようにしました。
倒立開始時は先に転倒防止用補助アームを所定位置へ作動、次にメインアームを作動、バランスポイントまで車体を
持ち上げて倒立、数秒の安定時間をおいてスタートさせます。
倒立終了時も補助アームを先に動かして後への転倒を防ぎ、次にメインアーム伸ばした後ゆっくりと車体を下げます。
両アーム共に其々のRCサーボモーターよって働き、正確にバランスポイントに止まるように設定してます。

ロボットの底面に取り付けたサーボモーター及びメーンアームと補助アーム
今回は、3個の超音波センサーを使い、前方と左右斜め前方の障害物を感知して自立走行します。

回路図

動画をご覧ください。
2019.04.18 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
テーマ : こんなの作りました♪
ジャンル : 趣味・実用
Inverted Balancing Robot(倒立振子型ロボット)その3
Inverted Balancing Robot 3号機の紹介
2015年2月の作品
2015年2月の作品
2号機とほぼ同じですが、以前に通販で購入した中国製の12Vギアモーターを使いました。
何時ものように3㎜厚のシナベニヤをCNCで加工してフレームを作り、ホイールも同じくシナベニヤを貼り合わせて
作りました。 タイヤにはOリング(外径約70mm)を使ってます。

コントロール基板の回路図:Arduinoを使わずにユニバーサル基板に上記の回路を手配線しました。
USB-Serial変換部は組み込まずに6Pinソケットを介して外付にしてます。電源はアルカリ乾電池6本の9Vで使ってます。

ユニバーサル基板に組み込み、シンプルに出来上がったコントロール基板 (テレビの赤外線リモコンで操作します)

動画をご覧下さい。
2019.04.18 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
Inverted Balancing Robot(倒立振子型ロボット)その2
Inverted Balancing Robot 2号機の紹介
2015年2月の作品
2015年2月の作品
今回はジャイロモジュールにMPU-6050を使い、Webに公開されたスケッチを参考にしてPID制御を用いましたが、
ソフトは初心者なのでハード面を中心に紹介します。
動力部は国内で入手可能な部品を使い再現性を重視、制御部はATmega328PマイコンとモータードライブICを
50mmX72mmのユニバーサル基板に組み込みました。遠隔操作にテレビ用赤外線リモコンの十字キーを使い、
前後左右にコントロール出来るようにしました。

何時ものように3㎜厚のシナベニヤをCNCで加工してフレームを作り、タミヤの楽しい工作シリーズのNo.168
ダブルギヤボックスを38.2:1に設定して組み込み、タイヤには楽しい工作シリーズのNo.145ナロータイヤセット
(58mm径)使いました。電源には単3型ニッケル水素電池1.2Vを4個の4.8Vを使います。

回路図:Arduinoを使わずにユニバーサル基板に手配線しました。

シンプルに出来上がったコントロール基板

動画をご覧ください。
1号機に比べスピーディーに動くのが特徴です。
2019.04.17 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |
Inverted Balancing Robot(倒立振子型ロボット)その1
Inverted Balancing Robot(倒立振子型ロボット)を作ってみました。
2014年12月の作品
2014年12月の作品
マイコン(Arduino)の勉強を始めて数か月、3作目のアイデアを探してWebを検索中に巡り合ったのが
この倒立振子型のロボットです。
倒立振子型の作品はWebに沢山出ていますが、私が参考にしたのはinstructablesに投稿された
ArduinoDeXXXさんの「もう一つの倒立振子(デジタル版)」です。(日本語ページです)
ハード&ソフトウエア(sketch)の公開と画像や動画を使った詳細な解説により、Arduino初心者にも
解りやすい親切丁寧な優れた製作記事です。
下がArduino UNOに自作シールド基板を載せて最初に作ったモデルです。

ArduinoDeXXXさん詳しい解説のお陰で何の苦労もせずに倒立することが出来ました。
(シールド基板やフレームの製作を含めてたった2日間で完成!)
シールド基板にスペースが有ったのでマイコンチップATMega382Pを組み込み、Arduino UNOを取り外しました。

回路図:シールド基板にすべての機能を載せました。赤外線センサーを使ったリモコンで操作します。

動画をご覧ください。
動きがぎこちないですが、赤外線リモコンの機能を追加して前後と左右の回転が出来るよう改良にしました。
2019.04.17 by Paradise
記事の詳細はホームページ「CNC Paradise」をご覧ください。
![]() 良かったらclickしてください! | ![]() 良かったらclickしてください! |