ブログだいちゃん

ブログだいちゃん

趣味のブログ

ブログだいちゃん

B-Robot ESP32 version 3号機 その2

前回の記事ででハード面の作成を行いましたので、続いてソフトウエアのインストールを行い完成させます。

スケッチの書込み

B-Robot forum で投稿されている ghmartin77 の記事にGithub へのリンクがありますのでZip ファイルをダウンロードします、また不具合などの対処もフォーラム内で議論されていますので最後まで目を通して下さい。

書込みには Arduino IDE を使用しますので使用したことがある方が対象です、使用方法はネット上に山ほどありますのでここでは省きます。

ESP32のライブラリが必要です。

また、Arduino IDEのバージョンがVer1.8.7ではコンパイル時にエラーが出ましたのでベーター版のVer1.9.0を使用しました。

まずGithubからダウンロードしたZipファイルを解凍し、出来たフォルダーの中の「BRobotEvo2ESP32」フォルダーをArduinoで使用するフォルダー(通常ドキュメント内のAruduinoフォルダー)に移動します、フォルダー内にファイルが14個ありますが「BRobotEvo2ESP32.ino」は中身はメッセージだけなので削除し、「ESP32SelfbalancingBot.CPP」ファイルを「ESP32SelfbalancingBot.ino」にリネームします。

その他、フォーラムに書かれている不具合箇所の修正などがありますが、どのファイルを修正したのか覚えておりませんので、この3号機用に修正したファイルをまとめてZipファイルにしたのでアップしておきます。

B-Robot_ESP32_ZIP_file

スケッチを書き込む前に不要動作防止のため、サーボコネクターと電池は外しておきます。

ステッパーモータードライバーの電流値調整

書込みが無事終了したらステッパーモータードライバーの電流値を調整します、まずサーボ、左右のステッパーモーターのコネクターを外した状態で電流値を測定しますこのロボットの場合150mA程度流れています。

いったん電源を落とし片方のステッパーモーターを接続し電源を入れステッパーモーターが動作したときの電流値を250mA程度にドライバーモジュール上のボリュームで調整します、もう片方も同様に調整します。

この電流値で私の場合ちょうど良い感じでしたが、個体差があるかもしれないので実際に動作させてみて調整した方がよいでしょう、調整が済んだら全てのコネクターを接続し寝かせた状態で電源を入れます、暫くすると車輪が少し動きます、動きが止まったら車体をゆっくり持ち上げると立ち上がります。

スマートフォンでのコントロール

jjrobotsAndroid 及び iOS 用にアプリを公開しています、私はAndroidスマフォを使用していますのでGoogle Play よりアプリをインストールしました。

B-Robotの電源を入れるとスマフォのWiFi設定一覧に「Bbot」が表示されますので選択しパスワード「12345678」を入力して接続します。

アプリを立ち上げ「B-ROBOT EVO2」を選択してコントロールします。

サーボは右側のボタンで操作、設定画面ではPIDの調整がスマフォから行えます。

※注意点

ロボットを立たせている時にスマフォを接続すると、一瞬動作がストップしロボットが倒れますので、ロボットを倒した状態でスマフォをWiFi接続し、スマフォでコントロール出来るようにしてからロボットを立たせます。

動 画

関連記事

blogdaichan.hatenablog.com

B-Robot ESP32 version 3号機

この所セルフバランシングロボットばかり作っているような感じですが、また作りました。。。(^_^;)

前回の改良版としてフレームの見直しとサーボの追加、ステッパーモーターを一般的なNEMA14に変更しました。

このセルフバランシングロボットはjjrobotsオープンソースを公開しているBROBOT EVOを参考にしています、B-Robot forum に掲載されています「ghmartin77」さんの記事が大変参考になりました感謝です。   

 

3Dプリンターで作成したフレーム

フレームはPLAフィラメントを使用しています、サーボ取付けやステッパーモーターの仕様変更により以前のものとは多少変更がありますが、大きさはほぼ同じです。   展開図と組み上がりのイメージです。  

  サーボに取付けるハンマーです、B-Robotが倒れたときの起き上がりにも使用します。

  STLファイルが必要な方は以下からダウンロードして下さい。   STL_ZIP_File

主要パーツ

ステッパモーター・サーボ以外は、以前作成したB-Robotと殆ど変りはありませんのでそちらを参照して下さい、以下主要パーツのリンクを張っておきます。   ESP32-DevKitC ESP-WROOM-32開発ボード

ジャイロ:MPU6050

ステッパーモーターNEMA14

ステッパーモータードライバー:DRV8825

サーボ:MG90S

スイッチ:丸型スイッチ(アマゾン)

回路図

サーボを追加した回路図です。

基盤作成

ユニバーサル基板は70mm×50mmを使用します。

ESP32及びDRV8825用のピンヘッダー メスとステッパーモーター用及びサーボ用のピンヘッダーは画像のような配置になりました、短いピンヘッダー メスはMPU6050用でESP32の下に配置しています、5Vのレギュレータは結構熱くなりますのでヒートシンクを取付けています、その右側は電源及びスイッチ用のブロックコネクターです。

MPU6050はジンバルコントローラーに付属のものを流用しています、市販のMPU6050はピン数が異なります、また取付け方向に注意が必要です。

  画像の手前が前進方向です、このMPU6050の場合はこの方向になりました、市販のMPU6050の場合は下の画像のようになります。

↓ 矢印の方向が前進

基盤の仕上がりです、しかしよく見たらLED用の抵抗1KΩ×2個を忘れてました、基盤の空いているところに取付け配線しました、ESP32だと部品数が少なくて済み配線も楽ですね。

組み立て

フレームの展開図を見れば分かると思います、基板用のプレートに基盤を2mmのタップネジで取付けます、ステッピングモーターは8mm×3mmのネジで固定します。

基板用プレートと側面フレームなどは3mmのタップを切りナイロンネジで固定します(タップがない場合は3mmのタップネジでもOK)

ホイールはOリングを取付けて、3mmのタップを切りイモネジでシャフトに固定します、サーボはSG90の場合裏側から2mmのタップネジで固定、MG90Sの場合表側からサーボを差し込みタップネジで固定します、スイッチは押し込みます。

電池は画像のようにベルクロでフレームに固定します、ちなみにコネクターは左側から、サーボ・左モーター/右モーターの順になります(車体の後ろから見た状態)

フレームカバーは0.5mmの塩ビ板を83mm×160mmにカットしたものをフレームの溝にはめ込みます、シールのプリント用紙にイラストを印刷し貼り付けました。

次回はソフトウエア-のインストールです。

関連記事

blogdaichan.hatenablog.com

記事がHACKADAYに取り上げられた

10月のログを見ていたらアクセスが異常に多い日がありました、アクセスが集中した記事はこの記事です。

ログを見ると最初にHACKADAYからのアクセスがあり、その後世界中からアクセスが集中していました、HACKADAYと言う名前からハッカーからの不正アクセスなのかと焦りましたが、アクセスしてみると私の記事が紹介されていました。

HACKADAYは、エンジニア愛好家のためのニュースメディア兼コミュニティサイトだそうで、内容も興味をそそるおもしろい記事がアップされています。

いやはや、拙い記事を紹介して頂き恐縮しています。

B-Robotをバージョンアップ(EVO2化)する

以前作成したB-Robotはバージョンが古いタイプで、スマートフォンでコントロール出来るもののテレメトリー関連の不具合で電圧の表示などが出来ませんでした。

B-robotの最新バージョン(EVO2)では色々改善され、安定度も増しているようなのでバージョンアップしてみました。

バージョンアップはソフトウエアのみ

ハードウエアは変更ありませんので前のをそのまま使います、作成方法は前の記事を参照して下さい。

f:id:blogdaichan:20190103123127j:plain

まず、GithubからB-ROBOT_EVO2-master.zipファイルをダウンロードします。 解凍したファイルの中のArduino→BROBOT_EVO2フォルダ内のファイルを使用するので、このBROBOT_EVO2フォルダをArduinoで使用しているフォルダ(通常ドキュメント内のArduinoフォルダ)に移動します。

Arduinoを立ち上げ、BROBOT_EVO2タブを開き反転箇所のように変更します「 pinMode(9, OUTPUT); // STEP MOTOR 2 PORTB,5

f:id:blogdaichan:20190103123142j:plain

次にControlタブを開き反転箇所の中の2箇所を「SET(PORTB, 5); // STEP MOTOR 2」「CLR(PORTB, 5);」に書き換えます。

f:id:blogdaichan:20190103123139j:plain

最後に電池残量表示箇所の変更をします、Servosタブを開き反転箇所のように変更します、3S Lipoの場合13.5でちょうど良かったので。 17行目:#define BATT_VOLT_FACTOR 13.5 // 8

f:id:blogdaichan:20190103123134j:plain

77行目~の2箇所:analogRead(3)  電池電圧測定にA3端子を使用するため(5)→(3)に変更。

f:id:blogdaichan:20190103123131j:plain

ファイルを修正したら、Arduino ProMicro にスケッチを書き込んで終了です、ただArduino Ver1.8.7ではコンパイルエラーが出て書込み出来なかったので、ベーター版のVer1.9にてコンパイルしています。

B-Robot の状態表示(電池残量表示の左側)、電池残量表示もスマートフォンに表示されました、電池残量は測定器で55パーセントでしたのでスマートフォンの残量表示もほぼ合っています、安定度は多少良くなった程度であまり変化はありませんでした。

f:id:blogdaichan:20190103123124j:plain

関連記事

blogdaichan.hatenablog.com

ESP Wroom32 で倒立Robot Car を作成

Google の Voice Kit に興味を持ちマイコンに手を出してから早1年になろうとしています、年を重ねるごとに1年が早く過ぎ去りますね。

さて、倒立 Robot Car も今回で4台目になります、最初に作成したものはふらふらしながら立つのがやっとでしたが、何台か作成してきて多少なりともまともになってきたかなと。(自己満足(^_^;)

ESP Wroom32 を使用する

ユニバーサル基板にパーツを配置して作成していますので、今までの仕様だと小型化がなかなか難しく70mm×90mm の基盤が限度でしたので、フレームはこの大きさより小さく出来ませんでした。

ESP Wroom32 を使用するとWiFi部分が内蔵されていますので、残りは Motor_driver ・ Regulator・MPU6050 位ですので 50mm×70mm のユニバーサル基板に治まりそうです、今回はこの大きさで作成してみます。

使用パーツ

ESP Wroom32:ESP32-DevKitC ESP-WROOM-32開発ボード(秋月電子

ステッパーモータードライバー:DRV8825(アマゾン)

ジャイロ:MPU6050(アマゾン)

5Vレギュレータ:三端子レギュレーター 5V1.5A L7805CV-DG (秋月電子

電解コンデンサー:100μF セラミックコンデンサー:0.1μF(秋月電子

抵抗器:1KΩ   LED:青・赤  スイッチ  (秋月電子

ユニバーサル基板:50mm×70mm  ピンヘッダー 分割ロングピンソケット  (秋月電子

ステッパーモーター:日本電産サーボ 2相  KH39FM2-022(オリジナルマインド)

車輪用Oリング:太さ5.7mm×内径59.6mm (ものたろう)

フレーム:3Dプリンターで作成 カバー:0.5mm 塩ビ板

電池:3S11.1V450mAリポ電池(KKホビー)

回路図

B-robot の forum に掲載されていたものを参考にしています。

スケッチ・ライブラリーなどはGitHub からダウンロードして使用します、使い方は Readme.md に書かれています。

なお、forum にも書かれていますが Timers.cpp ファイルの一部修正が必要です。

基盤作成及び組み立て

50mm×70mmのユニバーサル基板にきれいに収まりました、配線の汚さには目をつぶって下さい。

フレーム及び車輪は3Dプリンターで作成しました。

塩ビのカバーをフレームの溝に入れて、車輪を取付け完成です。

ステッパーモーターのコネクターを外し、電源を入れた時に流れる電流は150mA位です、片方のステッパーモーターを取付けて流れる電流を230mA程度にモータードライバーを調整すると振動がなく調子よく動きました、オーバーパワーにするとモーターの振動が増加してガクガクします。

立たせてみました結構安定しています。

スマフォによるコントロール

手持ちのスマフォは Android ですが iPhone 用もあります、Google Play からJJrobots contro APP をダウンロードしインストールします。

スマフォのWiFi設定を開くと、一覧の中に bbot が表示されていますので選択、Passはディフォルトでは「12345678」です、IDとPassは変更可能ですがPassは8文字以上が仕様です、接続されたらAPPを起動B-robotを選択すればコントロールが可能になります。

動画です


www.youtube.com

関連記事

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

夕焼け

f:id:blogdaichan:20190103134404j:plain

愛犬ダイスケと夕方の散歩をしているときのスナップ写真です、4年ぶりに取替えたスマフォ(ZenFone5)で撮影しました。

雨上がりで空気が澄んでいたので余計鮮やかに見えました。

f:id:blogdaichan:20190103134401j:plainf:id:blogdaichan:20190103134358j:plain

富士山を撮影しようとしたら月が出ていたので一緒に写しました。

f:id:blogdaichan:20190103134409j:plain

スパイダーロボットの作成

f:id:blogdaichan:20190103135253j:plain

プロローグ

AIY Voice Kit を作成したことからマイコンに興味を持つようになりRspberry Pi よりは理解しやすそうな Arduino で電子工作を始めました。

YouTubeには色々興味をそそる物がアップされていて、作成方法も詳しく説明されている所もあり、技術を伴わない素人の私でも作成することができてありがたいですね。

さて、今回はmicroサーボを使用したスパイダーロボットの動画があり、作成方法もアップされていたので作成してみました。

作成方法及び使用パーツ

作成方法はここにあります、おおまかなパーツは Arduino NANO ・5Vレギュレーター・SG90microサーボ・3S1500mA Lipo・他3Dプリンターで作成したフレームです、50×70mmのユニバーサル基板にパーツを配置し配線しました、回路は単純ですがサーボが12個有りますので配線がごちゃごちゃ状態になります。

f:id:blogdaichan:20190103135250j:plainf:id:blogdaichan:20190103135256j:plain

動作確認

これでデモは動かせますが、遠隔操作を行うには、ESP8266またはBluetoothが必要でスマフォなどからの操作になります。

ディフォルトの設定でデモを実行してみました。

ぎこちない動きでおもしろくありません、まともな動きにするには各サーボの動作位置の調整が必要ですね、またサーボ12個の中の1つが不良でした、安価なサーボなので予備をストックしておくのが良さそうです。