TinyGS 基地局 ParadiseGS1のアンテナを更新
ParadiseGS1のアンテナを更新 2023.2.12
新しく打ち上げられたLoRa衛星には、400MHz付近の区分帯使用が増えてきました。
これに合わせてアンテナの中心周波数を420MHzに設計し直し、エレメントの真鍮パイプを2㎜径から
4㎜径に変更。折り曲げ部分は3㎜径の真鍮丸棒を90度に折り曲げて、4㎜径エレメントに差し込んで
半田付けしています。真鍮パイプに白い塗料で錆止めを施しました。

QFHアンテナの参考資料
尚、このQFHアンテナはジョン・コペンズ ON6JC/LW3HAZ氏のホームページを参考に作りました。
ここをクリックするとHPが開きます。
内容は主に気象衛星NOAAの137MHz帯ですが、他のバンドにも応用が可能です。
メニューのCalculaterを開くと中心周波数、エレメントの太さ、曲げ角度、縦横比などを入力すれば
Elementの長さなど必要項目が表示されます。
皆様の参考になれば幸いです。
新しく打ち上げられたLoRa衛星には、400MHz付近の区分帯使用が増えてきました。
これに合わせてアンテナの中心周波数を420MHzに設計し直し、エレメントの真鍮パイプを2㎜径から
4㎜径に変更。折り曲げ部分は3㎜径の真鍮丸棒を90度に折り曲げて、4㎜径エレメントに差し込んで
半田付けしています。真鍮パイプに白い塗料で錆止めを施しました。

QFHアンテナの参考資料
尚、このQFHアンテナはジョン・コペンズ ON6JC/LW3HAZ氏のホームページを参考に作りました。
ここをクリックするとHPが開きます。
内容は主に気象衛星NOAAの137MHz帯ですが、他のバンドにも応用が可能です。
メニューのCalculaterを開くと中心周波数、エレメントの太さ、曲げ角度、縦横比などを入力すれば
Elementの長さなど必要項目が表示されます。
皆様の参考になれば幸いです。
スポンサーサイト
LoRa衛星地上局を追加
LoRa衛星受信の地上局を追加して3局体制としました。
ガレージ窓の面格子に取り付けた3本の受信専用アンテナ
各アンテナの間隔が80センチと近く互いの干渉や、自宅と隣家の狭間に立つ立地条件による受信パターの
乱れも気になりるところです。 それでも、2000Km以上彼方のLoRa衛星からの電波が受信出来ています。

LoRa受信機
今回は、高価な専用LoRaボードではなく、以前に数百円で購入した安価なESP32 Devkit V1に
これも数百円で購入したLoRa受信モジュールRa-02を手配線にて組み立てました。合計約1000円
画像の説明
左側が30pinタイプのESP32 Devkit V1で邪魔になるピンヘッダを取り外しています。
右側がDevkit V1の裏側に433MHzのRa-02 LoRaモジュールを両面テープで貼り付けて手配線しています。
SSD1306 128x64 OLEDは必需品ではないのでI2C接続用ソケットを両面テープで取り付け、
ファームウエアのインストール時に動作確認用として使い、通常は外しています。

配線図
ESP32 Devkit V1とLoRaモジュールの配線例を記します。電源はUSB電源アダプターから給電します。
*この配線図通りに組み立てると、Heltec WiFi LoRa 32 V2とピンコンパチブルなのでボード設定時に
テンプレートをHeltec WiFi LoRa 32 V2として使えます。OLEDの取り付けは任意です。

Eggbeater II アンテナについて (Eggbeaterとは卵泡立て器のことです)
今回使用したアンテナはアメリカのアマチュア無線局 K5OE Jerry さんが開発された低地球軌道 (LEO) 衛星用
アンテナを参考にParadise流にアレンジして作りました。
参考ペ記事:Jerryのページへリンク
Jerry, K5OE: Home Brew Amateur Antennas
Eggbeater II Omni LEO Antennas
完成したEggbeater II アンテナ
アンテナのフレームパイプには、QFHアンテナ製作で余った13㎜ HIVP塩ビパイプを使い、エレメントには2㎜径
真鍮丸棒と3㎜径真鍮パイプを、リフレクターには3㎜径真鍮丸棒を使いました。
このアンテナは、90度位相給電の右回り円偏波です。マッチングセクションにはRG62 インピーダンス92Ω
の同軸ケーブルをフェーズラインに使いますが、特殊ケーブルの為入手が難しいのが難点です。
幸い秋葉原のオヤイデ電気の通販にて切り売り購入出来ました。
私はマッチング部に塩ビ板を8角形にCNC加工して作りました。 これは、円形だとエレメントを通す穴を垂直に
正確な穴を開けるのが難しく、底面が平らになる8角形を選びましたが、4角形でも同じです。
また、フレームの塩ビパイプが細いのでフェーズラインを外回りにしています。新たに作られる方は40㎜以上の
太いパイプを使うとフェーズラインをパイプ内に収納出来るので良いでしょう。
未だ、使い始めて数日ですが3種類のアンテナによる受信状況の比較が楽しみです。

以上、興味のある方の参考になれば幸いです。
by Paradise de ex JH3VSR
ガレージ窓の面格子に取り付けた3本の受信専用アンテナ
各アンテナの間隔が80センチと近く互いの干渉や、自宅と隣家の狭間に立つ立地条件による受信パターの
乱れも気になりるところです。 それでも、2000Km以上彼方のLoRa衛星からの電波が受信出来ています。

LoRa受信機
今回は、高価な専用LoRaボードではなく、以前に数百円で購入した安価なESP32 Devkit V1に
これも数百円で購入したLoRa受信モジュールRa-02を手配線にて組み立てました。合計約1000円
画像の説明
左側が30pinタイプのESP32 Devkit V1で邪魔になるピンヘッダを取り外しています。
右側がDevkit V1の裏側に433MHzのRa-02 LoRaモジュールを両面テープで貼り付けて手配線しています。
SSD1306 128x64 OLEDは必需品ではないのでI2C接続用ソケットを両面テープで取り付け、
ファームウエアのインストール時に動作確認用として使い、通常は外しています。

配線図
ESP32 Devkit V1とLoRaモジュールの配線例を記します。電源はUSB電源アダプターから給電します。
*この配線図通りに組み立てると、Heltec WiFi LoRa 32 V2とピンコンパチブルなのでボード設定時に
テンプレートをHeltec WiFi LoRa 32 V2として使えます。OLEDの取り付けは任意です。

Eggbeater II アンテナについて (Eggbeaterとは卵泡立て器のことです)
今回使用したアンテナはアメリカのアマチュア無線局 K5OE Jerry さんが開発された低地球軌道 (LEO) 衛星用
アンテナを参考にParadise流にアレンジして作りました。
参考ペ記事:Jerryのページへリンク
Jerry, K5OE: Home Brew Amateur Antennas
Eggbeater II Omni LEO Antennas
完成したEggbeater II アンテナ
アンテナのフレームパイプには、QFHアンテナ製作で余った13㎜ HIVP塩ビパイプを使い、エレメントには2㎜径
真鍮丸棒と3㎜径真鍮パイプを、リフレクターには3㎜径真鍮丸棒を使いました。
このアンテナは、90度位相給電の右回り円偏波です。マッチングセクションにはRG62 インピーダンス92Ω
の同軸ケーブルをフェーズラインに使いますが、特殊ケーブルの為入手が難しいのが難点です。
幸い秋葉原のオヤイデ電気の通販にて切り売り購入出来ました。
私はマッチング部に塩ビ板を8角形にCNC加工して作りました。 これは、円形だとエレメントを通す穴を垂直に
正確な穴を開けるのが難しく、底面が平らになる8角形を選びましたが、4角形でも同じです。
また、フレームの塩ビパイプが細いのでフェーズラインを外回りにしています。新たに作られる方は40㎜以上の
太いパイプを使うとフェーズラインをパイプ内に収納出来るので良いでしょう。
未だ、使い始めて数日ですが3種類のアンテナによる受信状況の比較が楽しみです。

以上、興味のある方の参考になれば幸いです。
by Paradise de ex JH3VSR
LoRa衛星受信アンテナと受信dataの比較
Happy New Year
本年もよろしくお願いします。 2023年 元旦
QFHアンテナを自作し、12月30日より地上局を2局体制としました。
新しく製作したQFHアンテナです。低軌道衛星通信用(円偏波無指向性アンテナ)

以前から使用のGPアンテナ

アンテナの違いによる受信衛星数を単純に比較してみました。
今朝のexJH3VSR地上局の受信データです。(画像は何れもクリックすると拡大します)。
棒グラフはテレメトリー信号をエラーなしで受信した衛星の数です。
右側のMAPは地上局を中心に受信した衛星の位置で、丸印がエラーなし受信、茶色丸印はCRCエラー受信です。
棒グラフの欠落部分は、地上局exJH3VSR_2がGPアンテナを使用中のためです。

こちらは休止中のexJH3VSR_2地上局の受信データです。
上記のexJH3VSR地上局同様にCRCエラーが多いですね!、どのMAPを見ても判りますが南北に
我が家と隣家が建っていて西側が開ける立地が読み取れます。

こちらが比較対象のParadiseGS1地上局の受信データです。
未だ2日間のデータなので余り参考になりませんが、バンド幅が狭いQFHアンテナの特性により、送信周波数が極端に
低い(401MHz帯)FossaSat-2Eシリーズの衛星が受信出来ていません。この点はGPアンテナに軍配ありです。
この問題を解決するには、広帯域のディスコーンアンテナが良いかも知れません。
尚、QFHアンテナでは、バンド内の衛星にはCRCエラーが少なく、確率よく受信出来る傾向にあります。

次のリンクTinygs.comにアクセスすると誰でもLoRa衛星の受信状況が見れます。
地上局名を入力すれば、その局の受信状況が見れます。
今後も受信方法を研究しながらLoRa衛星の受信を楽しみたいと思います。
以上、興味のある方の参考になれば幸いです。
by Paradise de ex JH3VSR
本年もよろしくお願いします。 2023年 元旦
QFHアンテナを自作し、12月30日より地上局を2局体制としました。
新しく製作したQFHアンテナです。低軌道衛星通信用(円偏波無指向性アンテナ)

以前から使用のGPアンテナ

アンテナの違いによる受信衛星数を単純に比較してみました。
今朝のexJH3VSR地上局の受信データです。(画像は何れもクリックすると拡大します)。
棒グラフはテレメトリー信号をエラーなしで受信した衛星の数です。
右側のMAPは地上局を中心に受信した衛星の位置で、丸印がエラーなし受信、茶色丸印はCRCエラー受信です。
棒グラフの欠落部分は、地上局exJH3VSR_2がGPアンテナを使用中のためです。

こちらは休止中のexJH3VSR_2地上局の受信データです。
上記のexJH3VSR地上局同様にCRCエラーが多いですね!、どのMAPを見ても判りますが南北に
我が家と隣家が建っていて西側が開ける立地が読み取れます。

こちらが比較対象のParadiseGS1地上局の受信データです。
未だ2日間のデータなので余り参考になりませんが、バンド幅が狭いQFHアンテナの特性により、送信周波数が極端に
低い(401MHz帯)FossaSat-2Eシリーズの衛星が受信出来ていません。この点はGPアンテナに軍配ありです。
この問題を解決するには、広帯域のディスコーンアンテナが良いかも知れません。
尚、QFHアンテナでは、バンド内の衛星にはCRCエラーが少なく、確率よく受信出来る傾向にあります。

次のリンクTinygs.comにアクセスすると誰でもLoRa衛星の受信状況が見れます。
地上局名を入力すれば、その局の受信状況が見れます。
今後も受信方法を研究しながらLoRa衛星の受信を楽しみたいと思います。
以上、興味のある方の参考になれば幸いです。
by Paradise de ex JH3VSR
LoRa衛星のテレメトリー信号受信 その2
その2 LoRa衛星のテレメトリー信号受信用ボードを交換
2022年12月4日午後より運用開始
先に使ったHeltec WiFi LoRa32 V2を同じHeltecのWireless stickに置き換えて受信感度のテストを実施中。
下の画像がHeltecのWireless stickで、0.49インチOLEDディスプレイを備えた433MHz帯のLoRaボードです。
但し、OLEDが小さ過ぎて老人の私にはルーペが無いと読み取れません。もし、これから始められる方で
購入をお考えの方は、OLEDは必需品では無いのでOLEDを省いた<Wireless stick Liteをお勧めします。
またOLEDが必要な場合は、安価に購入可能な0.96インチ 128x64 I2C接続のOLEDが外付け出来ます。

1)Wireless stickを使った場合の設定方法
先ずは、TinyGSのホームページ下段のGitHabに入り、どのような事をするのかREADME.mdを塾続します。
尚、付属のアンテナでは感度が悪く受信が困難です。次回予定のグランドプレーンアンテナの自作を
参考に作られるのが賢明です。(1000円以下で出来ます)。
①Install
Linux、Windows、Mac に使えるワンクリック アップローダーを利用します。
次の手順ページを開き、使用するOSに合ったアップローダーをリリースページからダウンロードします。
私はWindows派なのでTinyGS_Uploader_WINDOWS.exeを選びました。
②インストールの実行
PCとボードをUSBケーブルで接続してダウンロードしたUploaderを実行しますが、セキュリティソフトが
ウイルスソフトと認識して強制的にダウンロードファイルを削除したので、一時的にセキュリティソフトを
停止して実行しました。
また実行前に、Configure the board「ボードを構成する」パラメータに必要な項目を準備しておきます。
③ボードを構成する (ほぼコピペ)
ボードの初回起動時に、My TinyGS という名前の AP が生成されます。WiFiネットワークに接続すると、
ステーションの基本的なパラメーターを構成するための Web パネルが表示されます。
私の場合は、Web ブラウザーの url にIPアドレス192.168.4.1を入力してWeb パネル表示させました。
詳しい説明は下段のリンク「ボード構成の詳細」を参照して下さい。

④設定パラメータ
GROUNDSTATION NAME:地上局の名称 解り易い適当な名前付けます。
GROUNDSTATION PASSWORD:適当なパスワードを設定します。
SSID と PASSWORD:ホーム WiFi ルーターのSSID と PASSWORを記入します。
タイムゾーン:プルダウンメニューからアジア東京を選択します。
LATITUDE および LONGITUDE:設置場所の緯度経度をGoogleMap等で調べておきます。
MQTT_SERVER および MQTT_PORT:初期設定のまま
MQTT_USER および MQTT_PASS:この情報を得るにはTelegramをインストールする必要があります。
Telegramのインストールが嫌な場合は全てを残念するしかないようです。
BOARD TYPE:最初私はハードウエアをHeltec WiFi LoRa 32 V2に設定していました。
次にテストしたボードがHeltecのWireless stickですが実物を比較した結果、ピンアサインが全て同じなので
Heltec WiFi LoRa 32 V2を選びましたが、問題なく動作しています。
OLED の明るさ:デフォルトのまま使っています。
Enable TX:通常一般地上局は受信のみなので必ずオフに設定します。
自動同調:デフォルトのままオンに設定しています。
サードパーティへのテレメトリ:デフォルトのままオンに設定しています。
テスト モード:オフに設定しています。
自動ファームウェア更新:デフォルトのままオンに設定しています。
ボード テンプレート:BOARD TYPEで設定済みなので空白まま使用。
モデムの起動:デフォルトのまま使っています。
高度なパラメーター:デフォルトのまま空白で使用。
2)テレグラム(←クリックすると開きます)のインストール
TinyGSの設定や操作には、テレグラムをインストールを行う必要があります。
見出しのテレグラムをクリックするとテレグラムのTinyGSコミュニティに参加するページが開きます。
ヘッダーライン右端のアイコンからテレグラムをダウンロードします。
設定にはIDとパスワード及び携帯電話番号が必要ですが固定電話は使えません。
テレグラムの設定が終わるとTelegram、MQTT Bot、TinyGS Personal Bot、TinyGS Communityの項目が
出来ます。
先の設定項目のMQTT Userナンバー及びPassの取得は、TinyGS Personal Botにアクセスして
メッセージ欄に/mqttコマンドを入力すると取得できます。
3)ローカル データ アクセス
また設定完了後は、ボードとPCを接続しなくてもローカル Web サイトから、Ground Station のデータと構成に
アクセスできます。/weblogimコマンドを入力すれば、Webアドレスが送られてくるのでアクセスすると
ヘッダーラインにSIGN OUTのアイコンが付いた設定ページが開きます。
次にEDIT STATIONにてTinyGS Consoleに画像や説明文章を追加したり、アンテナのバンド幅を表示
(スライダーがシビアで使いずらい)等の編集が出来ます。編集後は保存してSIGN OUTで終了します。

尚、現在利用可能なコマンドは次のとおりです。
/mqtt - MQTT アカウントを作成または編集します
/stations - ステーションのステータスを表示します
/delete - データベースから 1 つのステーションを削除します。
/weblogin - Web のログイン リンクを生成します。
二つ目の地上局を構成した機会に備忘録を兼ねて掲載しました。
未だ誤りや不足箇所があると思います。順次訂正しながら加筆したいと思います。
皆さまの参考になれば幸いです。
by Paradise exJH3VSR
2022年12月4日午後より運用開始
先に使ったHeltec WiFi LoRa32 V2を同じHeltecのWireless stickに置き換えて受信感度のテストを実施中。
下の画像がHeltecのWireless stickで、0.49インチOLEDディスプレイを備えた433MHz帯のLoRaボードです。
但し、OLEDが小さ過ぎて老人の私にはルーペが無いと読み取れません。もし、これから始められる方で
購入をお考えの方は、OLEDは必需品では無いのでOLEDを省いた<Wireless stick Liteをお勧めします。
またOLEDが必要な場合は、安価に購入可能な0.96インチ 128x64 I2C接続のOLEDが外付け出来ます。

1)Wireless stickを使った場合の設定方法
先ずは、TinyGSのホームページ下段のGitHabに入り、どのような事をするのかREADME.mdを塾続します。
尚、付属のアンテナでは感度が悪く受信が困難です。次回予定のグランドプレーンアンテナの自作を
参考に作られるのが賢明です。(1000円以下で出来ます)。
①Install
Linux、Windows、Mac に使えるワンクリック アップローダーを利用します。
次の手順ページを開き、使用するOSに合ったアップローダーをリリースページからダウンロードします。
私はWindows派なのでTinyGS_Uploader_WINDOWS.exeを選びました。
②インストールの実行
PCとボードをUSBケーブルで接続してダウンロードしたUploaderを実行しますが、セキュリティソフトが
ウイルスソフトと認識して強制的にダウンロードファイルを削除したので、一時的にセキュリティソフトを
停止して実行しました。
また実行前に、Configure the board「ボードを構成する」パラメータに必要な項目を準備しておきます。
③ボードを構成する (ほぼコピペ)
ボードの初回起動時に、My TinyGS という名前の AP が生成されます。WiFiネットワークに接続すると、
ステーションの基本的なパラメーターを構成するための Web パネルが表示されます。
私の場合は、Web ブラウザーの url にIPアドレス192.168.4.1を入力してWeb パネル表示させました。
詳しい説明は下段のリンク「ボード構成の詳細」を参照して下さい。

④設定パラメータ
GROUNDSTATION NAME:地上局の名称 解り易い適当な名前付けます。
GROUNDSTATION PASSWORD:適当なパスワードを設定します。
SSID と PASSWORD:ホーム WiFi ルーターのSSID と PASSWORを記入します。
タイムゾーン:プルダウンメニューからアジア東京を選択します。
LATITUDE および LONGITUDE:設置場所の緯度経度をGoogleMap等で調べておきます。
MQTT_SERVER および MQTT_PORT:初期設定のまま
MQTT_USER および MQTT_PASS:この情報を得るにはTelegramをインストールする必要があります。
Telegramのインストールが嫌な場合は全てを残念するしかないようです。
BOARD TYPE:最初私はハードウエアをHeltec WiFi LoRa 32 V2に設定していました。
次にテストしたボードがHeltecのWireless stickですが実物を比較した結果、ピンアサインが全て同じなので
Heltec WiFi LoRa 32 V2を選びましたが、問題なく動作しています。
OLED の明るさ:デフォルトのまま使っています。
Enable TX:通常一般地上局は受信のみなので必ずオフに設定します。
自動同調:デフォルトのままオンに設定しています。
サードパーティへのテレメトリ:デフォルトのままオンに設定しています。
テスト モード:オフに設定しています。
自動ファームウェア更新:デフォルトのままオンに設定しています。
ボード テンプレート:BOARD TYPEで設定済みなので空白まま使用。
モデムの起動:デフォルトのまま使っています。
高度なパラメーター:デフォルトのまま空白で使用。
2)テレグラム(←クリックすると開きます)のインストール
TinyGSの設定や操作には、テレグラムをインストールを行う必要があります。
見出しのテレグラムをクリックするとテレグラムのTinyGSコミュニティに参加するページが開きます。
ヘッダーライン右端のアイコンからテレグラムをダウンロードします。
設定にはIDとパスワード及び携帯電話番号が必要ですが固定電話は使えません。
テレグラムの設定が終わるとTelegram、MQTT Bot、TinyGS Personal Bot、TinyGS Communityの項目が
出来ます。
先の設定項目のMQTT Userナンバー及びPassの取得は、TinyGS Personal Botにアクセスして
メッセージ欄に/mqttコマンドを入力すると取得できます。
3)ローカル データ アクセス
また設定完了後は、ボードとPCを接続しなくてもローカル Web サイトから、Ground Station のデータと構成に
アクセスできます。/weblogimコマンドを入力すれば、Webアドレスが送られてくるのでアクセスすると
ヘッダーラインにSIGN OUTのアイコンが付いた設定ページが開きます。
次にEDIT STATIONにてTinyGS Consoleに画像や説明文章を追加したり、アンテナのバンド幅を表示
(スライダーがシビアで使いずらい)等の編集が出来ます。編集後は保存してSIGN OUTで終了します。

尚、現在利用可能なコマンドは次のとおりです。
/mqtt - MQTT アカウントを作成または編集します
/stations - ステーションのステータスを表示します
/delete - データベースから 1 つのステーションを削除します。
/weblogin - Web のログイン リンクを生成します。
二つ目の地上局を構成した機会に備忘録を兼ねて掲載しました。
未だ誤りや不足箇所があると思います。順次訂正しながら加筆したいと思います。
皆さまの参考になれば幸いです。
by Paradise exJH3VSR
LoRa衛星のテレメトリーを受信一週間の結果
LoRa衛星のテレメトリーを受信開始から一週間が経ちました。
下のグラフは完全にテレメトリーパケット信号をコンファーム出来た数を表しています。
最初の3日間はダイポールアンテナを使用中、4日目にグランドプレーンアンテナに変更した結果
アンテナの違いによる受信衛星数が大幅に増えたことが判ります。

下のマップの黄色い丸印が、コンファームされた時の衛星位置で、地上局(私)からの距離が1881km、
仰角が8.37°、方位が288.08°と記録されています。
また、赤茶色の丸印は、受信出来たがノイズ等でCRCエラーが出た場合の衛星位置です。
尚、この衛星のLoRa出力信号が500ミリワットと微小ですが、スペクトラム拡散通信の利点が生かされ、
1時間程で作った簡単なGPアンテナにも拘らず、この長距離を受信出来たことに感激しています。

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
下のグラフは完全にテレメトリーパケット信号をコンファーム出来た数を表しています。
最初の3日間はダイポールアンテナを使用中、4日目にグランドプレーンアンテナに変更した結果
アンテナの違いによる受信衛星数が大幅に増えたことが判ります。

下のマップの黄色い丸印が、コンファームされた時の衛星位置で、地上局(私)からの距離が1881km、
仰角が8.37°、方位が288.08°と記録されています。
また、赤茶色の丸印は、受信出来たがノイズ等でCRCエラーが出た場合の衛星位置です。
尚、この衛星のLoRa出力信号が500ミリワットと微小ですが、スペクトラム拡散通信の利点が生かされ、
1時間程で作った簡単なGPアンテナにも拘らず、この長距離を受信出来たことに感激しています。

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
アンテナの違いが鮮明
昨日、DPアンテナからGPアンテナに交換した結果
GPアンテナの特性である放射角度の低さにより、衛星を捉える仰角が低くなりました。
その結果、衛星までの距離が1679Kmと伸び、仰角11.87°となりました。
反面、何時も同時に受信してた国内の地上局ではなく、中国や台湾の地上局と同時に
受信出来るようになり、受信回数も増えました。
簡単な八木アンテナを作り、自動追尾させればもっと多くの衛星から受信出来るのだが!
それには追尾装置を作らねば! と80近い爺さんの夢が広がります。
下は今朝受信した衛星Norbyのデータです。(受信時間はJSTです)。

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
GPアンテナの特性である放射角度の低さにより、衛星を捉える仰角が低くなりました。
その結果、衛星までの距離が1679Kmと伸び、仰角11.87°となりました。
反面、何時も同時に受信してた国内の地上局ではなく、中国や台湾の地上局と同時に
受信出来るようになり、受信回数も増えました。
簡単な八木アンテナを作り、自動追尾させればもっと多くの衛星から受信出来るのだが!
それには追尾装置を作らねば! と80近い爺さんの夢が広がります。
下は今朝受信した衛星Norbyのデータです。(受信時間はJSTです)。

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
アンテナを交換しました。
Lor衛星受信用アンテナを交換
今朝まで使っていた70Cmバンド用120°DPアンテナです。大きく見えますが、エレメントの一辺が165㎜、太さ2㎜です。
50数年前にアマチュア無線を始めた頃、よく自作したアンテナの工作を思い出し久しく楽しんでいます。

今朝から注文してたエレメント用の2㎜径真鍮丸棒が届いたので、1/4λのグランドプレーンアンテナを作りました。
手持ちの金メッキ仕様RCAコネクタを利用し、165㎜長ラジエータ1本と184㎜長ラジアル4本を半田付けして
簡単に作り上げました。DPアンテナとの比較は明日の朝になれば判るので楽しみです。
未だテスト中なのでアンテナ下のビニール袋の中にLoRa受信用アダプターを入れてます。
DPとGPアンテナの性能を比較して結果の良い方を使いますが、それまではビニール袋で代用です。

RXデバイスの収納をビニール袋から、ダイソーの容器に変更しました。
12月6日追記:受信アンテナの直ぐ近くに受信機を置くのが伝送ロスが少なく感度の低下を防ぐ良い方法です。
容器の下から出ている線は、デバイスに電源を供給するためのUSBケーブルで5V電源アダプターに接続してます。
20000Kmもの彼方から届く微弱な人工衛星の電波を受信し、PCに衛星の状態を表示するなんて、ロマンですね!

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
今朝まで使っていた70Cmバンド用120°DPアンテナです。大きく見えますが、エレメントの一辺が165㎜、太さ2㎜です。
50数年前にアマチュア無線を始めた頃、よく自作したアンテナの工作を思い出し久しく楽しんでいます。

今朝から注文してたエレメント用の2㎜径真鍮丸棒が届いたので、1/4λのグランドプレーンアンテナを作りました。
手持ちの金メッキ仕様RCAコネクタを利用し、165㎜長ラジエータ1本と184㎜長ラジアル4本を半田付けして
簡単に作り上げました。DPアンテナとの比較は明日の朝になれば判るので楽しみです。
未だテスト中なのでアンテナ下のビニール袋の中にLoRa受信用アダプターを入れてます。
DPとGPアンテナの性能を比較して結果の良い方を使いますが、それまではビニール袋で代用です。

RXデバイスの収納をビニール袋から、ダイソーの容器に変更しました。
12月6日追記:受信アンテナの直ぐ近くに受信機を置くのが伝送ロスが少なく感度の低下を防ぐ良い方法です。
容器の下から出ている線は、デバイスに電源を供給するためのUSBケーブルで5V電源アダプターに接続してます。
20000Kmもの彼方から届く微弱な人工衛星の電波を受信し、PCに衛星の状態を表示するなんて、ロマンですね!

皆さまの参考になれば幸いです。
by Paradise exJH3VSR
人工衛星からの電波を受信してみました。
TinyGSに参加と人工衛星のテレメトリーを受信
現在、国内には私を含めて地上局が4局登録されています。ヨーロッパが多いですね!
人工衛星に興味のある方は、TinyGSを検索すればホームページが見れます。

LoRa受信機
LoRa:スペクトラム拡散通信を利用した超小型の人工衛星のテレメトリーを受信するには、マイコンと受信機を
組み合わせた製品を購入するのが、一番の近道です。(参考画像はHeltec LoRa 32 V2です)。

アンテナ
昨日、11月21日の午後に簡易的な120°V型ダイポールアンテナを自作してガレージの屋根に設置

受信結果
今朝、受信履歴を確認すると超小型衛星FossaSat-2E1のテレメトリーが受信されていました。
通信距離は737kmでした。
尚、exJH3VSRは50年余し前から使っていた私のアマチュア無線コールサインですが、今は閉局中です。
地上局の受信データは、TinyGSのホームページにて自由に閲覧出来ます。

おわりに
テスト用のアンテナは地上高が低く、利得が少ないDP(ダイポール)なので多くの衛星を受信できません。
もう少し高さを上げ、無指向性のGP(グランドプレーン)アンテナを自作して設置予定です。
20年ほど前、超楕円軌道のAO13アマチュア無線衛星を自作の自動追尾装置を使って追いかけてた頃を
思い出しながら遊べています。
皆さまの参考になれば幸いです。
by Paradise
現在、国内には私を含めて地上局が4局登録されています。ヨーロッパが多いですね!
人工衛星に興味のある方は、TinyGSを検索すればホームページが見れます。

LoRa受信機
LoRa:スペクトラム拡散通信を利用した超小型の人工衛星のテレメトリーを受信するには、マイコンと受信機を
組み合わせた製品を購入するのが、一番の近道です。(参考画像はHeltec LoRa 32 V2です)。

アンテナ
昨日、11月21日の午後に簡易的な120°V型ダイポールアンテナを自作してガレージの屋根に設置

受信結果
今朝、受信履歴を確認すると超小型衛星FossaSat-2E1のテレメトリーが受信されていました。
通信距離は737kmでした。
尚、exJH3VSRは50年余し前から使っていた私のアマチュア無線コールサインですが、今は閉局中です。
地上局の受信データは、TinyGSのホームページにて自由に閲覧出来ます。

おわりに
テスト用のアンテナは地上高が低く、利得が少ないDP(ダイポール)なので多くの衛星を受信できません。
もう少し高さを上げ、無指向性のGP(グランドプレーン)アンテナを自作して設置予定です。
20年ほど前、超楕円軌道のAO13アマチュア無線衛星を自作の自動追尾装置を使って追いかけてた頃を
思い出しながら遊べています。
皆さまの参考になれば幸いです。
by Paradise
皆既月食
テオ・ヤンセン展大阪 開催中
現在、大阪南港ATCにてテオ・ヤンセン展が開催中です。(9月25日まで)
開催を機会に、これまでに制作したテオヤンセンメカニズム応用作品を紹介します。
2014年の作品1 : ウインドビースト
特長:サボニウス型風車を利用したウインドビーストで風向きに関係なく前進します。

2014年の作品2 : ラジコンビースト
タミヤ模型のギヤモータを左右に設け、無線リモコンにて自由自在に動かせます。

2014年の作品3 : ソーラービースト
ソーラービースト:タミヤ模型のソーラーパネルを利用して太陽光で動きます。

2014年の作品4 : 12足アクリルビースト
アクリル板をCNC加工して製作:紐で引くだけで滑らかに動くのが特徴です。

動画をご覧下さい。
2014年の作品5 : 超音波センサー自律歩行ビースト
超音波センサーにより、障害物を感知して自律歩行しますが、赤外線リモコンで手動操作もOKです。

2014年の作品6 : ウインドビースト2
作品4にサボニウス型風車を取り付け、ウインドビーストに改造した作品です。

2016年の作品1 : 超音波自律歩行ビースト2
この作品は、超音波センサーによる自律歩行と自作WiFiリモコンで手動操作が出来ます。

2016年の作品2 : 赤外線センサー自律歩行ビースト
アクリル板をCNC加工して製作、スケールを約1/2にした小型モデルで、赤外線センサーにて自律歩行と
WiiヌンチャクをWiFiに改造したリモコンで手動操作が出来ます。

2019年の作品1 : 自律歩行ビースト
2016年作品1のWiFiリモコンとコントロール回路をWiFiからBluetooth BLEに改造した作品です。

2020年の作品 : BLE RCビースト
2020年にシリーズで掲載した作品です。動力にロータリーサーボモータを使った作品で、リモコンにBLEを使い
コントロール回路にESP32とM5Stack ATOM Liteの2種類を以下のページにて紹介しています。
参照ページ:Theo Jansen Mechanism series No.9 その1~7

サイドメニューのカテゴリーにてテオヤンセンメカニズムを選択すると過去の記事を
ご覧頂けます。 皆さまの参考になれば幸いです。
尚、酷暑のため夏休み中ですが、涼しくなったら工作を再会します。
by CNC Paradise
開催を機会に、これまでに制作したテオヤンセンメカニズム応用作品を紹介します。
2014年の作品1 : ウインドビースト
特長:サボニウス型風車を利用したウインドビーストで風向きに関係なく前進します。

2014年の作品2 : ラジコンビースト
タミヤ模型のギヤモータを左右に設け、無線リモコンにて自由自在に動かせます。

2014年の作品3 : ソーラービースト
ソーラービースト:タミヤ模型のソーラーパネルを利用して太陽光で動きます。

2014年の作品4 : 12足アクリルビースト
アクリル板をCNC加工して製作:紐で引くだけで滑らかに動くのが特徴です。

動画をご覧下さい。
2014年の作品5 : 超音波センサー自律歩行ビースト
超音波センサーにより、障害物を感知して自律歩行しますが、赤外線リモコンで手動操作もOKです。

2014年の作品6 : ウインドビースト2
作品4にサボニウス型風車を取り付け、ウインドビーストに改造した作品です。

2016年の作品1 : 超音波自律歩行ビースト2
この作品は、超音波センサーによる自律歩行と自作WiFiリモコンで手動操作が出来ます。

2016年の作品2 : 赤外線センサー自律歩行ビースト
アクリル板をCNC加工して製作、スケールを約1/2にした小型モデルで、赤外線センサーにて自律歩行と
WiiヌンチャクをWiFiに改造したリモコンで手動操作が出来ます。

2019年の作品1 : 自律歩行ビースト
2016年作品1のWiFiリモコンとコントロール回路をWiFiからBluetooth BLEに改造した作品です。

2020年の作品 : BLE RCビースト
2020年にシリーズで掲載した作品です。動力にロータリーサーボモータを使った作品で、リモコンにBLEを使い
コントロール回路にESP32とM5Stack ATOM Liteの2種類を以下のページにて紹介しています。
参照ページ:Theo Jansen Mechanism series No.9 その1~7

サイドメニューのカテゴリーにてテオヤンセンメカニズムを選択すると過去の記事を
ご覧頂けます。 皆さまの参考になれば幸いです。
尚、酷暑のため夏休み中ですが、涼しくなったら工作を再会します。
by CNC Paradise
手回し発電機で動く歩行ロボット
夏休みに遊びに来る4歳の孫におもちゃを作りました。
この作品を作る切っ掛けは、先日7月9日(土)に毎日放送テレビで放映された「三度の飯よりアレが好き」に
姫路市の上橋智恵さんが出演され、電子工作や3Dプリンターを使った作品が沢山紹介されました。
作品の冒頭に紹介されたのが、TTモータを使った発電機と二足歩行ロボットでした。
5~6年前に買ったTTモータが使わずに残っているのを思い出し、月末に孫がやって来るので手持ち部品を集め
早速、CNC加工の設計から始めて3日間で作り上げました。 ヒントを頂いた上橋さんに感謝いたします。
先ずは動画をご覧下さい

設計・組み立て図 何れの画像もクリックすると拡大します。
このロボットは、2組のTTモータの片方を発電機として使い、ロボット側のモータを回転させる仕組みです。
尚、使用したTTモータには減速比が1:48の標準品を使いました。
モータの取り付けにはM3ビス、その他の部品取り付けには2X8㎜のタップタイトを使いました。
可動部は、アクリル板に3.2㎜の穴を開け、外径3㎜のアルミチューブを3.2㎜の長さに切断してタップタイトにて
M2平ワッシャー介して固定しています。
発電機側は、厚さ10㎜のヒノキ板を加工したグリップにTTモータをネジ止めしただけですが、ロボット側と連結する
平行線が抜けないように、インシュレータで固定するための2㎜径穴を2つ開けています。

厚さ5㎜アクリル板の切削パーツ図
CNC加工用のDXFファイルを用意しましたが、DXFファイルをブログに添付出来ないのが残念です。
コの字型部品が左右の足です。
四角い部品がスライド部のスペーサーで、左右のネジ穴の大きさが異なります。
丸い3個の部品が発電機のハンドルボスとロボット側のクランクホイールで、同じサイズです。
何れも外径22㎜で、中心から15㎜の位置に1.7㎜径の貫通穴を対角に設けています。
発電機のハンドルのボス側は、モータ軸が入る穴を2.5㎜のポケット加工を行い、中心穴は2㎜でモータ軸に
タップタイトを使って固定して抜け止めをしています。
ハンドルの先端側には、2.5㎜下穴にM3タップを切り、直径10㎜の丸棒を長さ13㎜に切断し、中央に3㎜の穴を
貫通してツマミを作り、M3X20㎜のボールトナットで軽く動くように固定しています。

厚さ3㎜アクリル板の切削パーツ図
2本の長い部品がロボットの脚で長さが76㎜、幅が10㎜です。
上部に3.2㎜幅、長さ約20㎜のスライド穴を設けています。クランクへの取り付け穴は下から25㎜の位置です。
上側の部品は、スライド部のアームで幅が22㎜、高さが33㎜で、t5スペーサーを介してモータのネジ穴へ35㎜長の
M3皿ネジを使って固定しますが、アームの片方には皿穴加工が必要です。また、反対側のアームとスペーサーに
2.5㎜径下穴にM3タップを切っています。 注意:鍋頭ネジやナットは脚部運動の邪魔になるので使えません。

参考画像1 のっぺらぼうの顔に黒いビニールテープを貼り付けてパンダ風に手直ししました。

参考画像2

RGB LEDの配線図
発電機のハンドルを右回転すると前進し、左回転するとバックします。発電機とロボットのモータは互いの電極を
1m程の赤黒平行線で直結しています。
下の配線図のA/Bとモータの電極を配線しますが、前進時にくまさんの目が緑色に点灯し、後退時に赤色に
点灯するようにしています。
発電機の回転方向により、極性が反転するので電圧降下の少ないショットキーバリアダイオードを使い、
LEDの発光が暗くなるのを防いでます。
5㎜径RGB LEDは、5年ほど前に50個入りを格安で買った物で型番が不明ですが、カソードコモンです。
ここでは、電流制限用の抵抗を省略しています。各部品の配線はくまさんの目の裏側で行いました。

追記:発電ロボットを調べたら、タミヤ模型から同じような製品が販売されていました。
皆さまの参考になれば幸いです。
by Paradise
この作品を作る切っ掛けは、先日7月9日(土)に毎日放送テレビで放映された「三度の飯よりアレが好き」に
姫路市の上橋智恵さんが出演され、電子工作や3Dプリンターを使った作品が沢山紹介されました。
作品の冒頭に紹介されたのが、TTモータを使った発電機と二足歩行ロボットでした。
5~6年前に買ったTTモータが使わずに残っているのを思い出し、月末に孫がやって来るので手持ち部品を集め
早速、CNC加工の設計から始めて3日間で作り上げました。 ヒントを頂いた上橋さんに感謝いたします。
先ずは動画をご覧下さい

設計・組み立て図 何れの画像もクリックすると拡大します。
このロボットは、2組のTTモータの片方を発電機として使い、ロボット側のモータを回転させる仕組みです。
尚、使用したTTモータには減速比が1:48の標準品を使いました。
モータの取り付けにはM3ビス、その他の部品取り付けには2X8㎜のタップタイトを使いました。
可動部は、アクリル板に3.2㎜の穴を開け、外径3㎜のアルミチューブを3.2㎜の長さに切断してタップタイトにて
M2平ワッシャー介して固定しています。
発電機側は、厚さ10㎜のヒノキ板を加工したグリップにTTモータをネジ止めしただけですが、ロボット側と連結する
平行線が抜けないように、インシュレータで固定するための2㎜径穴を2つ開けています。

厚さ5㎜アクリル板の切削パーツ図
CNC加工用のDXFファイルを用意しましたが、DXFファイルをブログに添付出来ないのが残念です。
コの字型部品が左右の足です。
四角い部品がスライド部のスペーサーで、左右のネジ穴の大きさが異なります。
丸い3個の部品が発電機のハンドルボスとロボット側のクランクホイールで、同じサイズです。
何れも外径22㎜で、中心から15㎜の位置に1.7㎜径の貫通穴を対角に設けています。
発電機のハンドルのボス側は、モータ軸が入る穴を2.5㎜のポケット加工を行い、中心穴は2㎜でモータ軸に
タップタイトを使って固定して抜け止めをしています。
ハンドルの先端側には、2.5㎜下穴にM3タップを切り、直径10㎜の丸棒を長さ13㎜に切断し、中央に3㎜の穴を
貫通してツマミを作り、M3X20㎜のボールトナットで軽く動くように固定しています。

厚さ3㎜アクリル板の切削パーツ図
2本の長い部品がロボットの脚で長さが76㎜、幅が10㎜です。
上部に3.2㎜幅、長さ約20㎜のスライド穴を設けています。クランクへの取り付け穴は下から25㎜の位置です。
上側の部品は、スライド部のアームで幅が22㎜、高さが33㎜で、t5スペーサーを介してモータのネジ穴へ35㎜長の
M3皿ネジを使って固定しますが、アームの片方には皿穴加工が必要です。また、反対側のアームとスペーサーに
2.5㎜径下穴にM3タップを切っています。 注意:鍋頭ネジやナットは脚部運動の邪魔になるので使えません。

参考画像1 のっぺらぼうの顔に黒いビニールテープを貼り付けてパンダ風に手直ししました。

参考画像2

RGB LEDの配線図
発電機のハンドルを右回転すると前進し、左回転するとバックします。発電機とロボットのモータは互いの電極を
1m程の赤黒平行線で直結しています。
下の配線図のA/Bとモータの電極を配線しますが、前進時にくまさんの目が緑色に点灯し、後退時に赤色に
点灯するようにしています。
発電機の回転方向により、極性が反転するので電圧降下の少ないショットキーバリアダイオードを使い、
LEDの発光が暗くなるのを防いでます。
5㎜径RGB LEDは、5年ほど前に50個入りを格安で買った物で型番が不明ですが、カソードコモンです。
ここでは、電流制限用の抵抗を省略しています。各部品の配線はくまさんの目の裏側で行いました。

追記:発電ロボットを調べたら、タミヤ模型から同じような製品が販売されていました。
皆さまの参考になれば幸いです。
by Paradise
初めてのRC模型飛行機の続編
RC模型飛行機製作の要点

機体の素材について
超軽量なデプロンシートやEPPシートを入手することが、軽量な機体を作る秘訣のようです。
私が入手した製品は、「住化 発泡PPシート スミセラー」 厚さが3㎜のA3サイズですが、思ったよりも
発泡密度が高くて重い製品でした。
仕方なく主翼を軽量なプラダンに置き換え、胴体をトラス構造にして軽量化を図り、胴体の上下に3㎜径の
木の丸棒を接着補強して何とか飛ばせました。
主な機材
46㎜プロペラ付きコアレスモータ:モータの直径約7㎜、長さ約16㎜(amazon 1セット 990円)
マイコン:ESP-WROOM-32Dモジュール(秋月電子通商1個 330円)
モータドライバーFET:NchMOSFET 30V 3.5A SSM3K329R (秋月電子通商 10個入 110円)
タクトスイッチ、スライドスイッチ、ソケット類等:手持ち品使用
Lipoバッテリー:モータ用3.7V500mAX1、マイコン用150mAX1
モータ・コントロール回路図
マイコンESP32モジュールは、主翼下側胴体に金属キャップが入る穴を開けて嵌め込んでいます。
モータドライバー用FET(米粒大)を0.8㎜薄型ユニバーサル基板の切れ端に組み込みました。
マイコンの電源は、Lipoバッテリーの出力をシリコンダイオードの順方向電圧降下を応用して簡易的な
手法により約3.3Vを得ています。
完成後もUSBシリアル変換モジュールを接続すれば、プログラムの変更が出来るようにしています。

モーターのバランスについて
購入したコアレスモータは、精度が悪くて製品に大きなバラツキがありました。
双発の飛行機は、左右モータの出力が同じでなければ、左右どちらかへ旋回します。
左右モータに差がある場合は、出力の低い方に合わせて高い方のモータの出力をPWM制御にて下げます。
この作業は実際に、飛行機の重心点を紐で吊り下げ、左右にバランスが取れるポイントを探します。
しかし、差が余りに大き過ぎる場合は使えないので複数購入して出力が釣り合った製品を選ぶ必要があります。
RC用BLEコントローラ
送信機にWiiヌンチャクのジョイスティック部とESP32を組み合わせてBLE(Bluetooth Low Energy)通信を行う
コントローラです。以前に何度か紹介しましたが再掲載します。しかし、通信距離が短い短所があります。
尚、Wiiヌンチャクの中古品がメルカリに数百円程度で出品されていたのを利用しました。

ESP32 BLEコントローラの回路図
注意:Wiiヌンチャクには、純正品そっくりの中国製が多く出回っていて配線の色に違いがあります。
また、純正のWiiヌンチャクには白タイプと黒タイプがあり、これらはsendアドレスが異なります。
また、純正以外は製品の色に関係なく、sendアドレスが異なる場合があり外見では判別できません。

ESP32_BLE_Controller.html
上記リンクにてESP32 BLEコントローラのプログラムコードが参照出来ます。
白タイプヌンチャクを基にしたプログラムですが、53行目:void nunchuck_init () 内の55.56目の注釈に
黒タイプのアドレスを記したので参考にして下さい。
ジョイスティックの操作と飛行機の動き
Wiiヌンチャクのジョイスティックは、I2C通信を介してESP32へ.X/Y共に0~255の値を出力しますが、ハード的な
制約により実際には40~210付近を出力し、中間点も128付近で数%の個体差があり、各々実測に合わせて
プログラムを変更する必要があります。
Y方向(前後)の操作=推進力を調節
マニュプレータから指を放した中間点がPWM出力の1/2出力となり、うっかり指が離れても出力が0に落ちること
が有りません。上昇させるにはフルパワーまで出力し、着陸や高度を下げる場合はゆっくりと0に戻します。
X方向(左右)の操作=左右旋回を調節
マニュプレータを左側へ傾けると角度応じて左側のモーターが減速して左へ旋回、右に傾けると角度に応じて
右側のモータが減速して右へ旋回する仕組みです。 尚、左右(X軸)の中間点には±10程の不感帯を設け、
その範囲内では直進に影響を与えずにフラツキを防止しています。
ESP32_BLE_plane.html
上記リンクにてESP32 BLEコントローラを使った場合の飛行機側のプログラムコードが参照出来ます。
補足:wiiヌンチャクのX/Y出力には個体差が有あります。ソースコード110~113行目のprint文を有効にして
実測値を調べます。 ここに使ったコントローラでは、x_valの実測値が、min=22,max=207,center=123
y_valの実測値が、min=31,max=212,center=131なのでこの値に合わせてプログラムしています。
その他、各項目には注釈を付けていますので参考にして下さい。
おわりに
80歳近い爺さんが、初めてのRC飛行機に挑戦して何とか飛ばせて感動しています。
一人で飛行機の操縦と撮影が同時に出来なく、動画をご覧頂けないのが残念です。
これからも、作ることの喜びを求めていろんな工作に挑戦したいと思います。
皆様の参考になれば幸いです。
by Paradise

機体の素材について
超軽量なデプロンシートやEPPシートを入手することが、軽量な機体を作る秘訣のようです。
私が入手した製品は、「住化 発泡PPシート スミセラー」 厚さが3㎜のA3サイズですが、思ったよりも
発泡密度が高くて重い製品でした。
仕方なく主翼を軽量なプラダンに置き換え、胴体をトラス構造にして軽量化を図り、胴体の上下に3㎜径の
木の丸棒を接着補強して何とか飛ばせました。
主な機材
46㎜プロペラ付きコアレスモータ:モータの直径約7㎜、長さ約16㎜(amazon 1セット 990円)
マイコン:ESP-WROOM-32Dモジュール(秋月電子通商1個 330円)
モータドライバーFET:NchMOSFET 30V 3.5A SSM3K329R (秋月電子通商 10個入 110円)
タクトスイッチ、スライドスイッチ、ソケット類等:手持ち品使用
Lipoバッテリー:モータ用3.7V500mAX1、マイコン用150mAX1
モータ・コントロール回路図
マイコンESP32モジュールは、主翼下側胴体に金属キャップが入る穴を開けて嵌め込んでいます。
モータドライバー用FET(米粒大)を0.8㎜薄型ユニバーサル基板の切れ端に組み込みました。
マイコンの電源は、Lipoバッテリーの出力をシリコンダイオードの順方向電圧降下を応用して簡易的な
手法により約3.3Vを得ています。
完成後もUSBシリアル変換モジュールを接続すれば、プログラムの変更が出来るようにしています。

モーターのバランスについて
購入したコアレスモータは、精度が悪くて製品に大きなバラツキがありました。
双発の飛行機は、左右モータの出力が同じでなければ、左右どちらかへ旋回します。
左右モータに差がある場合は、出力の低い方に合わせて高い方のモータの出力をPWM制御にて下げます。
この作業は実際に、飛行機の重心点を紐で吊り下げ、左右にバランスが取れるポイントを探します。
しかし、差が余りに大き過ぎる場合は使えないので複数購入して出力が釣り合った製品を選ぶ必要があります。
RC用BLEコントローラ
送信機にWiiヌンチャクのジョイスティック部とESP32を組み合わせてBLE(Bluetooth Low Energy)通信を行う
コントローラです。以前に何度か紹介しましたが再掲載します。しかし、通信距離が短い短所があります。
尚、Wiiヌンチャクの中古品がメルカリに数百円程度で出品されていたのを利用しました。

ESP32 BLEコントローラの回路図
注意:Wiiヌンチャクには、純正品そっくりの中国製が多く出回っていて配線の色に違いがあります。
また、純正のWiiヌンチャクには白タイプと黒タイプがあり、これらはsendアドレスが異なります。
また、純正以外は製品の色に関係なく、sendアドレスが異なる場合があり外見では判別できません。

ESP32_BLE_Controller.html
上記リンクにてESP32 BLEコントローラのプログラムコードが参照出来ます。
白タイプヌンチャクを基にしたプログラムですが、53行目:void nunchuck_init () 内の55.56目の注釈に
黒タイプのアドレスを記したので参考にして下さい。
ジョイスティックの操作と飛行機の動き
Wiiヌンチャクのジョイスティックは、I2C通信を介してESP32へ.X/Y共に0~255の値を出力しますが、ハード的な
制約により実際には40~210付近を出力し、中間点も128付近で数%の個体差があり、各々実測に合わせて
プログラムを変更する必要があります。
Y方向(前後)の操作=推進力を調節
マニュプレータから指を放した中間点がPWM出力の1/2出力となり、うっかり指が離れても出力が0に落ちること
が有りません。上昇させるにはフルパワーまで出力し、着陸や高度を下げる場合はゆっくりと0に戻します。
X方向(左右)の操作=左右旋回を調節
マニュプレータを左側へ傾けると角度応じて左側のモーターが減速して左へ旋回、右に傾けると角度に応じて
右側のモータが減速して右へ旋回する仕組みです。 尚、左右(X軸)の中間点には±10程の不感帯を設け、
その範囲内では直進に影響を与えずにフラツキを防止しています。
ESP32_BLE_plane.html
上記リンクにてESP32 BLEコントローラを使った場合の飛行機側のプログラムコードが参照出来ます。
補足:wiiヌンチャクのX/Y出力には個体差が有あります。ソースコード110~113行目のprint文を有効にして
実測値を調べます。 ここに使ったコントローラでは、x_valの実測値が、min=22,max=207,center=123
y_valの実測値が、min=31,max=212,center=131なのでこの値に合わせてプログラムしています。
その他、各項目には注釈を付けていますので参考にして下さい。
おわりに
80歳近い爺さんが、初めてのRC飛行機に挑戦して何とか飛ばせて感動しています。
一人で飛行機の操縦と撮影が同時に出来なく、動画をご覧頂けないのが残念です。
これからも、作ることの喜びを求めていろんな工作に挑戦したいと思います。
皆様の参考になれば幸いです。
by Paradise
一休みにpython
梅雨時の天候で模型飛行機のテストを一休み。
時間つぶしにpythonプログラミングの勉強にとWebを検索してたら、日経XTECHに3Dゲームを作る特集を
見付けました。 初心者にも出来るように必要なアプリのダウンロード方法から詳しく紹介されてます。
興味のある方はご覧下さい。 (全文を読むには無料会員登録が必要です)。
日経XTECH python 特集記事を開きます。
私がこの特集記事を基に作成した3D迷路ゲームです。
エディターを使ってプログラムを一行ずつ書くので勉強になります。

皆様の参考になれば幸いです。
by Paradise
時間つぶしにpythonプログラミングの勉強にとWebを検索してたら、日経XTECHに3Dゲームを作る特集を
見付けました。 初心者にも出来るように必要なアプリのダウンロード方法から詳しく紹介されてます。
興味のある方はご覧下さい。 (全文を読むには無料会員登録が必要です)。
日経XTECH python 特集記事を開きます。
私がこの特集記事を基に作成した3D迷路ゲームです。
エディターを使ってプログラムを一行ずつ書くので勉強になります。

皆様の参考になれば幸いです。
by Paradise
初めてのRC模型飛行機
初めてラジコン式模型飛行機を作りました。
主翼の長さ約40センチ、胴体長さ約30センチ、ラジコンにはESP32を使ったBLE(Bluetooth Low Energy)
を送受信に使いました。 直線距離で半径30mくらいは安定した通信が出来そうです。
この飛行機は、主翼の左右にプロペラを配置し、左右モータの回転数を変化させて旋回する仕組みです。
そのために、旋回用に垂直尾翼のラダーを操作するサーボモータを必要としません。

素材に発泡PPシートを使いましたが、購入した製品の発泡率が低くて重かったので主翼をプラダンに変更と胴体の
軽量化により何とか総重量が60gに収めまたのですが、滑走用の車輪を追加したら5g増えてしまった。
天井から紐で吊り下げてテストの結果、飛び上がる事を確認したので、次はお天気の良い日に広場でテスト飛行を
行う予定です。しかし、一人では同時に操縦と動画撮影が出来ないのが悩みです。

バッテリーには3.7VのLipo 500mAhを1個の予定でしたが、購入してから3年余し使ったので容量が低下していて
マイコン電源と共用するとESP32の電圧低下により、ダウンするので仕方なく別電源として150mAhを追加しました。
モータはアマゾンで購入した46㎜プロペラ付きのコアレスモータを一組使いました。
しかし、コアレスモータの出力にはバラツキが多く、左右モータに出力差が少ない製品を選ぶ事が肝要です。
余り出力差が大きいとPWM制御で吸収できなく、片方に偏り旋回するのでコントロールが難しくなります。

ESP32 BLEコントローラー
以前から何度か紹介のWiiヌンチャクから取り出したジョイスティック部を使った専用コントローラを今回も使いました。
このコントローラーの代わりとしてスマホにBlynk Appを使っても同様にコントロール出来ます。詳細は次回より!

次回から作り方の詳細を記す予定です。
皆様の参考になれば幸いです。
by Paradise
主翼の長さ約40センチ、胴体長さ約30センチ、ラジコンにはESP32を使ったBLE(Bluetooth Low Energy)
を送受信に使いました。 直線距離で半径30mくらいは安定した通信が出来そうです。
この飛行機は、主翼の左右にプロペラを配置し、左右モータの回転数を変化させて旋回する仕組みです。
そのために、旋回用に垂直尾翼のラダーを操作するサーボモータを必要としません。

素材に発泡PPシートを使いましたが、購入した製品の発泡率が低くて重かったので主翼をプラダンに変更と胴体の
軽量化により何とか総重量が60gに収めまたのですが、滑走用の車輪を追加したら5g増えてしまった。
天井から紐で吊り下げてテストの結果、飛び上がる事を確認したので、次はお天気の良い日に広場でテスト飛行を
行う予定です。しかし、一人では同時に操縦と動画撮影が出来ないのが悩みです。

バッテリーには3.7VのLipo 500mAhを1個の予定でしたが、購入してから3年余し使ったので容量が低下していて
マイコン電源と共用するとESP32の電圧低下により、ダウンするので仕方なく別電源として150mAhを追加しました。
モータはアマゾンで購入した46㎜プロペラ付きのコアレスモータを一組使いました。
しかし、コアレスモータの出力にはバラツキが多く、左右モータに出力差が少ない製品を選ぶ事が肝要です。
余り出力差が大きいとPWM制御で吸収できなく、片方に偏り旋回するのでコントロールが難しくなります。

ESP32 BLEコントローラー
以前から何度か紹介のWiiヌンチャクから取り出したジョイスティック部を使った専用コントローラを今回も使いました。
このコントローラーの代わりとしてスマホにBlynk Appを使っても同様にコントロール出来ます。詳細は次回より!

次回から作り方の詳細を記す予定です。
皆様の参考になれば幸いです。
by Paradise
迷路探索ロボット (Maze path search robot) その4(プログラム編)

参考プログラムについて
迷路ロボットをweb検索すると多くの製作例や解説がヒットします。 私が参考にさせて頂いた記事は
MJRoBot(Marcelo Rovai)さんが6年前に発表されたMaze Solver Robotです。
プログラムを公開して頂いたMarcelo Rovaiさんに感謝申し上げます。
このロボットの動作やプログラムが詳しく解説されているので是非ご覧下さい。
上記のリンクを開き記事を最後まで読まれた後、興味のある方はページの最後の方でプログラムが
ダウンロード出来るので実行して下さい。
zipファイルを解凍すると次の2種類のArduinoプログラムコードが見れますが、どちらも基本機能は同じです。
①smart_MJRoBot_Maze_Solve_Left_Hand_Algorithm
②smart_MJRoBot_Maze_Solve_Phase_2_with__Optimization
私は②のsmart_MJRoBot_Maze_Solve_Phase_2_with__Optimizationを参考にました。
ファイルを開くと次のように6個のファンクションに機能がまとめられているのが解ります。
①smart_MJRoBot_Maze_Solve_Phase_2_with__Optimization:メインプログラム
②generalFunctions:サーボモータとBluetoothのコントロール関係(不使用)
③mazeFunctions:迷路探索記録関係
④motorFuntions:モータ関係
⑤sensorFuntions:センサー関係
⑥robotDefines.h:ヘッダファイル 関数設定関係(メインプログラムに統合)
私はハードウエアの違いに合わせ、プログラムを変更して使わせて頂きました。
ハード的な相違点
モータ : ロータリー式RCサーボモータ ⇒ 1回転200ステップのステッピングモータ
モータ制御 : サーボモータの制御 ⇒ ステッピングモータの制御
(ステッピングモータの制御が正確なのでPID制御を不使用)
フォトセンサー : センサーユニット7個使用 ⇒ センサーモジュール5個を使用した基板を手組。
LO、RO(左右外側センサー:コースの停止ラインや各分岐の状況を読み取る)
LI、RI(左右内側センサー:ストレート走行時のラインに対する左右へのブレを読み取る)
CT(中央センサー:常時ラインを監視、他のセンサー情報と組み合わせてアクションを実行する)
(フォトセンサーのアナログ出力をAIではなくDIに入力し、デジタル入力のスレッショルド(しきい値)により、
コース面の白色とテープの黒色を 識別する方法を使いました)
Bluetooth : Arduino Nano + HC-06Bluetoothモジュール ⇒ Bluetoothを不使用
迷路探索ロボットのプログラム
注意:ハードウエアの仕様が変わるとプログラムを修正しないと使えません。
(長文になるので各ファンクションをクリックすると別ページにてプログラムコードが開きます)。
1)main_Function
ヘッダーファイルを使わずに統合しました。
注意:メインプログラムのディレクトリー下に各ファンクションのプログラムを置きます。
主な設定箇所
①ライブラリーのダウンロードとインストール
1. #include "BasicStepperDriver.h"
2. #include "SyncDriver.h"
ここでは、BasicStepperDriver.h及びSyncDriver.hを使ってスッテプモータを制御します。
ます、ステップモータドライバーのライブラリーを次のリンク内のアイコンCode▼からZipファイルをダウンロードし、
Arduino IDEのスケッチから⇒ライブラリーのインクルード⇒Zip形式のライブラリーをインストールします。
GitHubからライブラリーをダウンロード
②ハードウエア―の定義
12. #define MOTOR_STEPS 200 // 1回転のステップ数を設定
13. #define L_Motor_RPM 40 // 左モータの1分間の回転数を設定:走行速が決定します。
14. #define R_Motor_RPM 40 // 右モータの1分間の回転数を設定:走行速が決定します。
15. #define MICROSTEPS 16 // モータドライバーA4988のマイクロステップ数の設定
16. #define ENB_Pin 19 // ESB32のGPIO19をイネーブルに設定(以下GPIOのピン番号設定は任意)
17. #define L_Motor_DIR 26 // ESB32のGPIO26を左モータドライバーA4988のDIRに設定
18. #define L_Motor_STEP 33 // ESB32のGPIO33を左モータドライバーA4988のSTEPに設定
19. #define R_Motor_DIR 32 // ESB32のGPIO32を右モータドライバーA4988のDIRに設定
20. #define R_Motor_STEP 25 // ESB32のGPIO25を右モータドライバーA4988のSTEPに設定
③ホイールの計測値を設定
注意:ホイールの直径と左右ホイールの間隔(トレッド)を正確に測定して設定します。
ここが正確でないと移動距離や旋回角度が狂ってしまいます。
26. float wheel_dia = 68.9; // ホイール(車輪)の直径を記します。
27. float wheel_base = 74.0; // 左右ホイールの間隔(トレッド:タイヤの中心点間の距離)を記します。
28. int steps_rev = 3200; // ステップモータ1回転のスッテプ数×マイクロスッテプ数(200X16)
④ラインセンサーの設定 // 各GPIOのピン番号設定は任意です。
35. const int lineFollowSensor0 = 18; // LO(左外側センサー)
36. const int lineFollowSensor1 = 5; // LI(左内側センサー)
37. const int lineFollowSensor2 = 17; // CT(中央センサー)
38. const int lineFollowSensor3 = 16; // RI(右内側センサー)
39. const int lineFollowSensor4 = 4; // RO(右外側センサー)
46. const int ledPin = 27; // LEDインジケーター
47. const int buttonPin = 23; // スタートボタン
2)maze_Function
オリジナルに準拠していますが、実演を見た家族にゴールした後に手で戻すの?との指摘に発奮!
通常ゴール後にスタートポイントへ手で戻しますが、自動で戻るプログラムを90行目からの
mazeEnd()関数に追加しています。
しかし、ゴールからスタートポイントへ左手の法則に従って戻るルートは、その後にスタートする最短ルートの
逆回りを走行します。結果、正解を先に示すことになり、手で戻した方が良かったのか?と悩むところです。
maze_FunctionのmazeSlove()関数では、sensor_Functionから得たmode信号により、分岐点の状況を
把握してモータを制御すると共に分岐点の状況をR・L・B・Sの4種類の分岐データとして記録し、
RLBSの法則に従って最短経路を計算しながらゴールまで走行します。
32行目からのcase RIGHT_TURN:と56行目からのcase LEFT_TURN:では、T字路の入り口で平行ラインに
対して車体が少し斜めに侵入すると左右に迷う現象が出ました。この対策として一度ストップして更に
5㎜前進させてもう一度センサーを読み取り、確認するようにプログラムを変えています。
131行目からのsimplifyPath()が短絡経路を計算する関数です。
注意:217行目からのvoid mazeTurn (char dir);にも設定箇所があります。
ここでは、スタートポイントから最短絡ルートを走行する場合、各分岐点に達するとR・L・B・Sのターン信号が
出され、目的のゴールまで最短ルートを案内します。 ターン信号は1行目のmazeSolve(void);で設定した
Turnright();、Turnleft();、Forward();、Straight();の値に準じます。
詳細は、Maze Solver Robotのチュートリアルをご覧下さい。
3)motor_Function
BasicStepperDriver及びSyncDriverを使ったステッピングモータコントロールに置き換えています。
main_Functionで定義したホイールの直径とホイールベースに基づいて移動距離や旋回角度が計算されます。
ステッピングモータの制御
前進のForward();は移動距離をミリメートル単位設定します。0で停止、例えば30㎜前進;の場合は
Forward(30)と記します。この値はホイールの中心線からフォトセンサーまでの距離にほぼ等しく
センサー基板の取り付け位置により異なります。
左右旋回のTurnright();、Turnright();は角度を記します。直角の場合は90を、Uターンは180と記します。
しかし、スピードが速いとストップを掛けた位置よりも慣性により進むので補正が必要です。
注意:各設定は実際にコースを走らせ、カットアンドトライで調整を行います。
4)sensor_Function
フォトセンサーの読み取り値を各コマンドに変換。(不要な部分を省略しています)
(LFS[]は行が長くなるのでlineFollowSensor[]を略しました)
2. LFS[0] = digitalRead(lineFollowSensor0); // Left out side sensor
3. LFS[1] = digitalRead(lineFollowSensor1); // Left in side sensor
4. LFS[2] = digitalRead(lineFollowSensor2); // Center sensor
5. LFS[3] = digitalRead(lineFollowSensor3); // Right in side sensor
6. LFS[4] = digitalRead(lineFollowSensor4); // Right out side sensor
ここで読み込んだセンサーの状態を、次のif文ににより5種類のコマンドに変換します。
①CONT_LINE:全てのセンサーが1=黒の場合
②RIGHT_TURN:右外側のセンサーが1=黒の場合
③LEFT_TURN:左外側のセンサーが1=黒の場合
④NO_LINE:全てのセンサーが0=白の場合
⑤FOLLOWING_LINE:中央センサー及び左右何れかの内側のセンサーが1=黒の場合
尚、main_Functionの4行目から10行目にこれらの文字列を数値comndに変換を定義しています。
4. # define STOPPED 0
5. # define FOLLOWING_LINE 1
6. # define NO_LINE 2
7. # define CONT_LINE 3
8. # define POS_LINE 4
9. # define RIGHT_TURN 5
10. # define LEFT_TURN 6
走行速度について
その1でも述べましたが、このロボットは2020年8月に高精度お絵描きロボットとして製作したものを
少し改造して使っています。
自走しながら文字や図形を描くため、モータを1分間に7回転とゆっくりとした速度で動かせていました。
ここでは、迷路探索に適した速度として1分間に40回転に設定していますが、60回転位いまで可能です。
しかし、ステッピングモータが重いのでスピードを上げ過ぎると慣性が増し、細いOリングのタイヤでは、
ブレーキを掛けてもスリップして停止位置よりも余分に進むので設定が難しくなる弱点が有ります。
また、同様に90度旋回やUターンの180度旋回時も角度をオーバーし、その分の微設定が必要となります。
添付のプログラムコードを見れば、その辺りの設定差が解ると思います。
競技に使う場合は、タイヤにOリングを使わず、グリップが優れたタイヤを使うなどの対策が必要です。
おわりに
迷路ロボットはハードルの高い工作ですが、その分面白味が多いと思います。
説明不足が多々あると思いますが、迷路ロボットに興味のある方の参考になれば幸いです。
市販部品を多く使った3号車も完成してますが、プログラムの基本は同じなので説明を省略しました。
最後までご覧頂きまして有難うございました。
最後にもう一度動画をご覧下さい。
皆様の参考になれば幸いです。
by Paradise
迷路探索ロボット (Maze path search robot) その4
プログラムについての予定でしたが、その前に3号機を作りました。
先に紹介の2号機には、自作のホイールやESP32マイコンの直付けなど工作に難易点があります。
各画像はクリックすると拡大し、鮮明に観れます。
超小型のマイコンXiao 2040を使用
3号機には市販のホイールや新しい超小型マイコンSeeed Stadio製のXiao 2040を使い、汎用性を重視しました。
しかし、何時も利用の秋葉原の通販サイトで購入したXiao 2040はAruduino環境でのデジタルIOが機能せず、
予想外に時間を費やしました。

動作確認のためにRspberry pi Picoを仮付け
販売店には交換を依頼してますが、時間が掛かりそうなので同じ2040系マイコンを搭載したRspberry pi Picoを
仮付けして動作の確認を行いました。
追記;5月3日に交換品と差し替えて完動を確認し、Rspberry pi Picoを撤去しました。

完成後はこんな感じになります。
3号機の部品は、昨年10月に紹介の倒立2輪ロボットESP32 Evo2タイプロボットを作る その2
を改造して利用しました。電池はデジカメ用リチウムイオン電池を流用しています。
カメラ用電池以外の主要部品は全て秋月電子通商の通販で購入できます。

次回はプログラムについて掲載予定です。
皆様の参考になれば幸いです。
by Paradise
先に紹介の2号機には、自作のホイールやESP32マイコンの直付けなど工作に難易点があります。
各画像はクリックすると拡大し、鮮明に観れます。
超小型のマイコンXiao 2040を使用
3号機には市販のホイールや新しい超小型マイコンSeeed Stadio製のXiao 2040を使い、汎用性を重視しました。
しかし、何時も利用の秋葉原の通販サイトで購入したXiao 2040はAruduino環境でのデジタルIOが機能せず、
予想外に時間を費やしました。

動作確認のためにRspberry pi Picoを仮付け
販売店には交換を依頼してますが、時間が掛かりそうなので同じ2040系マイコンを搭載したRspberry pi Picoを
仮付けして動作の確認を行いました。
追記;5月3日に交換品と差し替えて完動を確認し、Rspberry pi Picoを撤去しました。

完成後はこんな感じになります。
3号機の部品は、昨年10月に紹介の倒立2輪ロボットESP32 Evo2タイプロボットを作る その2
を改造して利用しました。電池はデジカメ用リチウムイオン電池を流用しています。
カメラ用電池以外の主要部品は全て秋月電子通商の通販で購入できます。

次回はプログラムについて掲載予定です。
皆様の参考になれば幸いです。
by Paradise
迷路探索ロボット (Maze path search robot) その3
迷路探索ロボット (Maze path search robot) その2
迷路探索ロボットの紹介
迷路解決ロボットを検索すると多くのロボットには、DCギアモータやロータリーサーボモータを使った
作品などが多数紹介されいます。興味のある方は参考にして下さい。
今回の作品は、前回も少し触れましたが約2年前に作ったお絵描きロボットを改造して再利用しました。
主な構成部品
モータ:39㎜タイプのステッピングピングモータ
モータドライバー:A4988
マイコン:ESP32 Wroom32 (今回は無線通信を使わないのでArduino nanoなどでも可)
フォトリフレクタ:LBR-127HLD(秋月電子1個50円)
車体とホイール:アクリル板にて自作(ここでは正確さが求められます)
画像①
ステッピングモータは、幅60㎜、長さ100㎜、厚さ2㎜のアクリル板の前方に取り付けています。
赤外線センサーにはLBR-127HLDを5個ユニバーサル基板に組み込み、モータの前側に取り付けています。
ホイールですが、左右の直径にバラツキが有ってはダメなのでアクリル板で自作しました。
ソフト編で説明予定ですが、BasicStepperDriverを使う関係により、ホイールの直径とトレッド(左右の間隔)が
正確でないと進む距離や回転角度が狂ってしまうからで、ホイールにブレが有ってもNGです。
組立時、車体の中心線に対して左右ホイールの位置が対称、及びIRセンサー基板の中央センサーの位置を
一致させることが大事です。

画像②
制御基板は、お絵描きロボットの基板を流用ですが、モータの横から上側に取り付け方法を変更しました。
電池はデジタル一眼カメラ用の予備を使用。アクリル板をCNC加工して電池ホルダーを作りモータの
後ろ側に載せました。

画像③
裏側から見るとIRセンサー基板とボールキャスターが見えるだけです。
センサー基板は、ユニバーサル基板にセンサーモジュールをホール3個分を開けて等間隔に配置しています。
また、7ピンのL型ピンヘッダを取り付け、コネクターを介して制御基板と繋げています。(配線方法は回路図参照)
ボールキャスターにはタミヤ模型のNo.144を使いました。

回路図
電源に手持ちのデジタルカメラ用リチウムイオン電池を使いましたが、入手し易いニッケル水素充電池でも可能です。
ここでは、7.4VをMT3608昇圧型DC-DCコンバータを使い、12Vに昇圧してA4988モータドライバーへの印加及び
ROHM社製三端子型DC-DCコンバータBP5293-33にてESP32マイコン用の3.3Vを得ています。
今回は、WiFiやBluetoothの無線通信を使わないが、ESP32が載った使いまわしの基板をそのまま使用しました。
新たに作る場合は、Arduino nano等を使うと良いでしょう。

ステッピングモータを使った場合の長所と短所
長所:キビキビと動きが速く正確です。
短所:①モータが高価、②重い
動画を準備中
迷路探索の様子は文章で説明するよりも動画を見て頂くのがよく解ります。
現在、動画の準備をしていますので今しばらくお待ちください。
皆様の参考になれば幸いです。
by Paradise
迷路解決ロボットを検索すると多くのロボットには、DCギアモータやロータリーサーボモータを使った
作品などが多数紹介されいます。興味のある方は参考にして下さい。
今回の作品は、前回も少し触れましたが約2年前に作ったお絵描きロボットを改造して再利用しました。
主な構成部品
モータ:39㎜タイプのステッピングピングモータ
モータドライバー:A4988
マイコン:ESP32 Wroom32 (今回は無線通信を使わないのでArduino nanoなどでも可)
フォトリフレクタ:LBR-127HLD(秋月電子1個50円)
車体とホイール:アクリル板にて自作(ここでは正確さが求められます)
画像①
ステッピングモータは、幅60㎜、長さ100㎜、厚さ2㎜のアクリル板の前方に取り付けています。
赤外線センサーにはLBR-127HLDを5個ユニバーサル基板に組み込み、モータの前側に取り付けています。
ホイールですが、左右の直径にバラツキが有ってはダメなのでアクリル板で自作しました。
ソフト編で説明予定ですが、BasicStepperDriverを使う関係により、ホイールの直径とトレッド(左右の間隔)が
正確でないと進む距離や回転角度が狂ってしまうからで、ホイールにブレが有ってもNGです。
組立時、車体の中心線に対して左右ホイールの位置が対称、及びIRセンサー基板の中央センサーの位置を
一致させることが大事です。

画像②
制御基板は、お絵描きロボットの基板を流用ですが、モータの横から上側に取り付け方法を変更しました。
電池はデジタル一眼カメラ用の予備を使用。アクリル板をCNC加工して電池ホルダーを作りモータの
後ろ側に載せました。

画像③
裏側から見るとIRセンサー基板とボールキャスターが見えるだけです。
センサー基板は、ユニバーサル基板にセンサーモジュールをホール3個分を開けて等間隔に配置しています。
また、7ピンのL型ピンヘッダを取り付け、コネクターを介して制御基板と繋げています。(配線方法は回路図参照)
ボールキャスターにはタミヤ模型のNo.144を使いました。

回路図
電源に手持ちのデジタルカメラ用リチウムイオン電池を使いましたが、入手し易いニッケル水素充電池でも可能です。
ここでは、7.4VをMT3608昇圧型DC-DCコンバータを使い、12Vに昇圧してA4988モータドライバーへの印加及び
ROHM社製三端子型DC-DCコンバータBP5293-33にてESP32マイコン用の3.3Vを得ています。
今回は、WiFiやBluetoothの無線通信を使わないが、ESP32が載った使いまわしの基板をそのまま使用しました。
新たに作る場合は、Arduino nano等を使うと良いでしょう。

ステッピングモータを使った場合の長所と短所
長所:キビキビと動きが速く正確です。
短所:①モータが高価、②重い
動画を準備中
迷路探索の様子は文章で説明するよりも動画を見て頂くのがよく解ります。
現在、動画の準備をしていますので今しばらくお待ちください。
皆様の参考になれば幸いです。
by Paradise
迷路探索ロボット (Maze path search robot) その1
迷路探索ロボットの概要
先に作ったライントレースカーを発展させ、迷路を走らせて最短経路を探索するロボットを作りました。
1台目はライントレースカーのフォトセンサーアレーを3個から5個に変更しただけですが、少し安定性に
欠けるので2台目を作りました。OSTRお絵描きロボットの過去記事を参照

2台目には2020年8月に製作したステッピングモータを使った高精度の「OSTRお絵描きロボット」を
改造して作りました。

迷路コース
先のライントレースカーと同様にスチロールパネルに電工用ビニールテープを貼り付けて迷路を作りました。
ロボットの動作
左下のStartポイントから出発して「左手の法則」に従って分岐点を辿り、右上のFinishポイントまで自走します。
通過した分岐点を記録して最短経路を自動計算します。
コース中のテープが途切れた場所ではUターンし、コースには余分な部分が無く全てのテープ上を辿ります。
次にロボットをStartポイントに戻して再スタートすると、今度は記録されたデータにより最短経路を通って
Finishポイントへ自走します。
今はStartポイントまで手で戻していますが、Finishした後に自動で戻り再スタートするように改良の予定です。

次回からロボットの説明・動画・プログラムについて順次掲載予定です。
皆様の参考になれば幸いです。
by Paradise
先に作ったライントレースカーを発展させ、迷路を走らせて最短経路を探索するロボットを作りました。
1台目はライントレースカーのフォトセンサーアレーを3個から5個に変更しただけですが、少し安定性に
欠けるので2台目を作りました。OSTRお絵描きロボットの過去記事を参照

2台目には2020年8月に製作したステッピングモータを使った高精度の「OSTRお絵描きロボット」を
改造して作りました。

迷路コース
先のライントレースカーと同様にスチロールパネルに電工用ビニールテープを貼り付けて迷路を作りました。
ロボットの動作
左下のStartポイントから出発して「左手の法則」に従って分岐点を辿り、右上のFinishポイントまで自走します。
通過した分岐点を記録して最短経路を自動計算します。
コース中のテープが途切れた場所ではUターンし、コースには余分な部分が無く全てのテープ上を辿ります。
次にロボットをStartポイントに戻して再スタートすると、今度は記録されたデータにより最短経路を通って
Finishポイントへ自走します。
今はStartポイントまで手で戻していますが、Finishした後に自動で戻り再スタートするように改良の予定です。

次回からロボットの説明・動画・プログラムについて順次掲載予定です。
皆様の参考になれば幸いです。
by Paradise
ライントレースカー ソフト編 その2
Micro Pythonを使ったプログラミング
マイコンにRaspberry pi Picoを使い、Micro Python言語を使う場合の作成例です。
Thonnyのインストール方法は、過去記事「Thonny IDEを使ってラズピコをプログラミング」を参考にして下さい。

注意点
①18行目からのIN1.duty_u16(256*75)のPWM値は0~65535を入力しますが、桁数が多いのでArduinoの
8ビットPWM値に合わせ、直感的に解り易くするために16ビットを半分に分けて256*xxxと記しています。
②42行目からの valueL = round(sensorL.read_u16()/256)IRセンサー読取り値をround関数でまとめ、更に
256で割り、見かけ上のしきい値をArduinoの場合と同様にしました。
皆様の参考になれば幸いです。
by Paradise
マイコンにRaspberry pi Picoを使い、Micro Python言語を使う場合の作成例です。
Thonnyのインストール方法は、過去記事「Thonny IDEを使ってラズピコをプログラミング」を参考にして下さい。

注意点
①18行目からのIN1.duty_u16(256*75)のPWM値は0~65535を入力しますが、桁数が多いのでArduinoの
8ビットPWM値に合わせ、直感的に解り易くするために16ビットを半分に分けて256*xxxと記しています。
②42行目からの valueL = round(sensorL.read_u16()/256)IRセンサー読取り値をround関数でまとめ、更に
256で割り、見かけ上のしきい値をArduinoの場合と同様にしました。
- from machine import ADC, Pin ,PWM
- import utime
-
- sensorL = machine.ADC(26) # Left GPIO 26
- sensorC = machine.ADC(27) # Center GPIO 27
- sensorR = machine.ADC(28) # right GPIO 28
- IN1 = PWM(Pin(6)) # GPIO 6
- IN1.freq(1000)
- IN2 = PWM(Pin(7)) # GPIO 7
- IN2.freq(1000)
- IN3 = PWM(Pin(8)) # GPIO 8
- IN3.freq(1000)
- IN4 = PWM(Pin(9)) # GPIO 9
- IN4.freq(1000)
- def forward(): # 前進
- IN1.duty_u16(256*75)
- IN2.duty_u16(0)
- IN3.duty_u16(0)
- IN4.duty_u16(256*75)
- def turnleft(): # 左旋回
- IN1.duty_u16(0)
- IN2.duty_u16(256*60)
- IN3.duty_u16(0)
- IN4.duty_u16(256*110)
- def turnright(): # 右旋回
- IN1.duty_u16(256*110)
- IN2.duty_u16(0)
- IN3.duty_u16(256*60)
- IN4.duty_u16(0)
- def stop(): # 停止
- IN1.duty_u16(0)
- IN2.duty_u16(0)
- IN3.duty_u16(0)
- IN4.duty_u16(0)
-
- while True:
- valueL = round(sensorL.read_u16()/256) # 左IRセンサー
- valueC = round(sensorC.read_u16()/256) # 中央IRセンサー
- valueR = round(sensorR.read_u16()/256) # 右IRセンサー
- utime.sleep(0.05)
- #print("L",valueL)
- #print("C",valueC)
- #print("R",valueR)
-
- if valueL <= 100: # しきい値 100以下は白(16ビットでは25600)
- sensL = 0 # 白
- else:
- sensL = 1 # 黒
- #print("L",sensL)
-
- if valueC <= 100: # しきい値 10以下は白0(16ビットでは25600)
- sensC = 0 # 白
- else:
- sensC = 1 # 黒
- #print("C",sensC)
-
- if valueR <= 100: # しきい値 100以下は白(16ビットでは25600)
- sensR = 0 # 白
- else:
- sensR = 1 # 黒
- #print("R",sensR)
-
- if sensL==0 and sensC==1 and sensR==0: # 前進
- forward()
- if sensL==1 and sensC==1 and sensR==1: # 前進
- forward()
- elif sensL==1 and sensC==1 and sensR==0: # 左旋回
- turnleft()
- elif sensL==0 and sensC==1 and sensR==1: # 右旋回
- turnright()
- elif sensL==0 and sensC==0 and sensR==0: # 停止
- stop()
皆様の参考になれば幸いです。
by Paradise
ライントレースカー ソフト編 その1
Raspberry pi PicoをArduino IDEを使ってプログラミング
マイコンにRaspberry pi PicoとArduino Pro Microを使った2車体を作りましたが、どちらもArduino IDEを使って
プログラミングしました。何れの車体にも赤外線距離センサーを付けましたが、通常ライントレースカーは
2台同時に走らせることが無いのでその部分は省略しています。 前回までの製作編と併せてご覧下さい。

Raspberry pi Picoのプログラミング例
Raspberry pi PicoをArduino IDEで使うには、ボードマネージャにRaspberry pi RP2040 Boards又は
Arduino Mbed OS RP2040 Boardsが、インストールされている必要があります。
Arduino Pro Microを使う場合はIOピン番号と名称が変わるだけで基本は同じです。
注意点
①21行目からのPWM信号は0~255の数値を入力しますが、大き過ぎるとスピードが出過ぎてカーブを
曲がり切れません。使用するギアモーターに合わせてカットアンドトライで決めます。
②54行目からはラインセンサーの読み取り値からコースの下地の白色とラインの黒色を識別する部分です。
しきい値は、使用するセンサーの種類、回路定数、取り付け方法、対物距離などによって出力値が変わるので
カットアンドトライで決めます。
次回はMicro Pythonを使ったプログラミング例を紹介します。
皆様の参考になれば幸いです。
by Paradise
マイコンにRaspberry pi PicoとArduino Pro Microを使った2車体を作りましたが、どちらもArduino IDEを使って
プログラミングしました。何れの車体にも赤外線距離センサーを付けましたが、通常ライントレースカーは
2台同時に走らせることが無いのでその部分は省略しています。 前回までの製作編と併せてご覧下さい。

Raspberry pi Picoのプログラミング例
Raspberry pi PicoをArduino IDEで使うには、ボードマネージャにRaspberry pi RP2040 Boards又は
Arduino Mbed OS RP2040 Boardsが、インストールされている必要があります。
Arduino Pro Microを使う場合はIOピン番号と名称が変わるだけで基本は同じです。
注意点
①21行目からのPWM信号は0~255の数値を入力しますが、大き過ぎるとスピードが出過ぎてカーブを
曲がり切れません。使用するギアモーターに合わせてカットアンドトライで決めます。
②54行目からはラインセンサーの読み取り値からコースの下地の白色とラインの黒色を識別する部分です。
しきい値は、使用するセンサーの種類、回路定数、取り付け方法、対物距離などによって出力値が変わるので
カットアンドトライで決めます。
- #define IN1 6 // GPIO 6
- #define IN2 7 // GPI0 7
- #define IN3 8 // GPIO 8
- #define IN4 9 // GPIO 9
- int Left_val;
- int Center_val;
- int Right_val;
- int L_SENS;
- int C_SENS;
- int R_SENS;
- void setup() {
- Serial.begin(115200);
- pinMode(IN1, OUTPUT); analogWrite(IN1 , 0);
- pinMode(IN2, OUTPUT); analogWrite(IN2 , 0);
- pinMode(IN3, OUTPUT); analogWrite(IN3 , 0);
- pinMode(IN4, OUTPUT); analogWrite(IN4 , 0);
- }
- void Forward() { //前進
- analogWrite(IN1, 75); // PWM 0〜255
- analogWrite(IN2, 0); // PWM 0
- analogWrite(IN3, 0); // PWM 0
- analogWrite(IN4, 75); // PWM 0〜255
- }
- void Turnleft() { //左旋回
- analogWrite(IN1, 0); // PWM 0
- analogWrite(IN2, 60); // PWM 0〜255
- analogWrite(IN3, 0); // PWM 0
- analogWrite(IN4, 110); // PWM 0〜255
- }
- void Turnright() { //右旋回
- analogWrite(IN1, 110); // PWM 0〜255
- analogWrite(IN2, 0); // PWM 0
- analogWrite(IN3, 60); // PWM 0〜255
- analogWrite(IN4, 0); // PWM 0
- }
- void Stop() { //停止
- analogWrite(IN1, 0); // PWM 0
- analogWrite(IN2, 0); // PWM 0
- analogWrite(IN3, 0); // PWM 0
- analogWrite(IN4, 0); // PWM 0
- }
- void loop() {
- Left_val = analogRead(26); // 左センサーの出力値 0〜255
- Center_val = analogRead(27); // 中央センサーの出力値 0〜255
- Right_val = analogRead(28); // 右センサーの出力値 0〜255
- if (Left_val <= 100) { // しきい値 100以下は白
- L_SENS = 0; // 白色
- }
- else {
- L_SENS = 1; // 黒色
- }
- if (Center_val <= 100) { // しきい値 100以下は白
- C_SENS = 0; // 白色
- }
- else {
- C_SENS = 1; // 黒色
- }
- if (Right_val <= 100) { // しきい値 100以下は白
- R_SENS = 0; // 白色
- }
- else {
- R_SENS = 1; // 黒色
- }
- if (L_SENS == 0 && C_SENS == 1 && R_SENS == 0) { // Forwar 前進
- Forward();
- }
- else if (L_SENS == 1 && C_SENS == 1 && R_SENS == 1) { // Forward 前進
- Forward();
- }
- else if (L_SENS == 1 && C_SENS == 1 && R_SENS == 0) { // Turnleft 左旋回
- Turnleft();
- }
- else if (L_SENS == 0 && C_SENS == 1 && R_SENS == 1) { // Turnright 右旋回
- Turnright();
- }
- else if (L_SENS == 0 && C_SENS == 0 && R_SENS == 0) { // Stop 停止
- Stop();
- }
- /*Serial.print(" L = ");
- Serial.print(L_SENS);
- Serial.print(" C = ");
- Serial.print(C_SENS);
- Serial.print(" R = ");
- Serial.println(R_SENS);*/
- }
次回はMicro Pythonを使ったプログラミング例を紹介します。
皆様の参考になれば幸いです。
by Paradise
ライントレースカー パート3
ライントレースカー パート2
ライントレースカーの改良と、もう1台追加して同じコースを走らせる。

先ずは動画をご覧下さい。
1)改良ポイント
前回の記事と併せてご覧下さい。
主な変更点は、単4充電池を2本増やして4.8VとしてモータードライバーMX1508をPWM制御に変更しました。
これにより、旋回時の左右ホイールへのパワー配分を細かく調整が出来、S字やクランクカーブを滑らかな走行が
可能となり、スピードを上げてもオーバーランや脱線することが無くなりました。
2)2台同時に走らせるために
1台用のコースに2台走らせようと思い、衝突防止に赤外線距離センサーを付けました。
1号車の方は、マイコンがRaspberry Pi Picoを使ってるため、アナログ入力3系統をラインセンサーで使用済みなので、
I2C入力を備えたシャープ製赤外線距離センサーGP2Y0E03を使いました。
センサーがフロント中央に1個なので上手く作動するか不安だったが、結果はOKでした。
3)2号車の製作
この機体も倒立振子ロボットの2号機に少し手を加えただけですが、マイコンに手持ちの古いArduino pro Microを
使いました。pro MicroはUSB入力が付いたArduinoの中では一番小型なので、小さく組みたい場合に有効です。
Raspberry Pi Picoを使った1号車と比べ、上面のみに全ての部品が実装出来ました。
2号機の赤外線距離センサーには、数年前に買ったままでお蔵入りしていた同じシャープ製のGP2Y0A21YKを
使いました。
このセンサーはアナログ出力専用なので、Pro Microのアナログ入力4箇所の内、ラインセンサーに使った残りの
1箇所が丁度使えます。
4)2号車の回路図
基本的には、マイコンをRaspberry Pi PicoをArduino pro Microに置き換えただけです。
配線数が少なく簡単に組み上がると思います。

次回はソフトウエアーについて記す予定です。
皆様の参考になれば幸いです。
by Paradise

先ずは動画をご覧下さい。
1)改良ポイント
前回の記事と併せてご覧下さい。
主な変更点は、単4充電池を2本増やして4.8VとしてモータードライバーMX1508をPWM制御に変更しました。
これにより、旋回時の左右ホイールへのパワー配分を細かく調整が出来、S字やクランクカーブを滑らかな走行が
可能となり、スピードを上げてもオーバーランや脱線することが無くなりました。
2)2台同時に走らせるために
1台用のコースに2台走らせようと思い、衝突防止に赤外線距離センサーを付けました。
1号車の方は、マイコンがRaspberry Pi Picoを使ってるため、アナログ入力3系統をラインセンサーで使用済みなので、
I2C入力を備えたシャープ製赤外線距離センサーGP2Y0E03を使いました。
センサーがフロント中央に1個なので上手く作動するか不安だったが、結果はOKでした。
3)2号車の製作
この機体も倒立振子ロボットの2号機に少し手を加えただけですが、マイコンに手持ちの古いArduino pro Microを
使いました。pro MicroはUSB入力が付いたArduinoの中では一番小型なので、小さく組みたい場合に有効です。
Raspberry Pi Picoを使った1号車と比べ、上面のみに全ての部品が実装出来ました。
2号機の赤外線距離センサーには、数年前に買ったままでお蔵入りしていた同じシャープ製のGP2Y0A21YKを
使いました。
このセンサーはアナログ出力専用なので、Pro Microのアナログ入力4箇所の内、ラインセンサーに使った残りの
1箇所が丁度使えます。
4)2号車の回路図
基本的には、マイコンをRaspberry Pi PicoをArduino pro Microに置き換えただけです。
配線数が少なく簡単に組み上がると思います。

次回はソフトウエアーについて記す予定です。
皆様の参考になれば幸いです。
by Paradise
初歩的なライントレースカーを作りました。
簡単なライントレースカー
昨年紹介しました「安価に作る倒立2輪ロボット その1~5」に少し手を加えてライントレースカーに模様替えしました。
先ずは動画をご覧下さい。
回路図
部品店すっが少なく簡単な回路です。使用部品も通販で買えるものばかりです。
Raspberry Pi PicoにはADC入力が3ヶ所用意されているので、左右と中央のフォトセンサーに丁度使えます。
補足:Raspberry Pi PicoのADCはMicro Pythonでは16ビット1 から 65535の分解能を得れます。ArduinoIDEで
Raspberry Pi Picoを使うためにArduino Mbed OS RP2040 Boardsをインストールした場合は、分解能が
仕様書の12ビットではなく、他のArduinoボードと同様に10ビット1~1023が出力されます。

心臓部にRaspberry Pi Picoを使う
ロボットコンテストの副賞に貰ったRaspberry Pi Picoをそろそろ何かに使わないとと思い立ち、通信機能が不要な
ライントレースカーに使うことにしました。
Raspberry Pi Picoの取り付けには、コネクターを使わずに基板を躯体にビス止めして、GPIO端子に直接配線を
行っています。USBソケットへのケーブルプラグの差し込みは、ホイールの隙間から行えます。
プログラムはArduino IDEを使って簡単にまとめましたが、Micro Pythonでも可能です。

ラインを読むセンサーにポピュラーなTCRT5000を使用
このセンサーは2017年7月に掲載の「Inverted Balancing Robot(倒立振子型ロボット)その9」で倒立ロボットの
ライントレース化に使ったセンサー基板がジャンクボックスに残ってたのを流用しました。
新たに購入される方は、オペアンプを内蔵してしきい値をVRで調整できる基板が安価に販売されています。
これを利用すると、アナログ入力(ADC)ではなくデジタル入力で使えますが、基板が3枚必要です。
後部の受けは、電池ボックスにダイソーのワイヤーハンガーを貼り付けただけの簡単な方法です。
ギアモーターとモータードライバー
モーターやモータードライバーユニットは倒立振子ロボットに組み込んだものを躯体ごと流用。
倒立振子ロボットの縦型配置を横に寝かせただけです。

電源について
電池ボックスを単4型電池4個用から2個用に取り換えて2.4Vで使うことにしました。
その理由は、4.8Vだとギアモーターの回転が速すぎてヘアピンカーブが曲がり切れません。
通常回転数を下げる方法としてPWM(パルス幅変調)を使いますが、Raspberry Pi Picoの入力電圧が2.1Vからに
対応していることと、電池を減らせば軽くなるメリットが有り電圧を下げる方法を用いました。

ライントレースのコースについて
私は10㎜厚、900×600㎜の発泡スチロールパネルに幅19㎜の電工用黒色ビニールテープを貼り付けて
コースを作りました。冬場はビニールテープが伸びにくくてカーブを描くのが難しいですが、ドライヤーで
温めながら行うと上手く行えます。

皆様の参考になれば幸いです。
by Paradise
昨年紹介しました「安価に作る倒立2輪ロボット その1~5」に少し手を加えてライントレースカーに模様替えしました。
先ずは動画をご覧下さい。
回路図
部品店すっが少なく簡単な回路です。使用部品も通販で買えるものばかりです。
Raspberry Pi PicoにはADC入力が3ヶ所用意されているので、左右と中央のフォトセンサーに丁度使えます。
補足:Raspberry Pi PicoのADCはMicro Pythonでは16ビット1 から 65535の分解能を得れます。ArduinoIDEで
Raspberry Pi Picoを使うためにArduino Mbed OS RP2040 Boardsをインストールした場合は、分解能が
仕様書の12ビットではなく、他のArduinoボードと同様に10ビット1~1023が出力されます。

心臓部にRaspberry Pi Picoを使う
ロボットコンテストの副賞に貰ったRaspberry Pi Picoをそろそろ何かに使わないとと思い立ち、通信機能が不要な
ライントレースカーに使うことにしました。
Raspberry Pi Picoの取り付けには、コネクターを使わずに基板を躯体にビス止めして、GPIO端子に直接配線を
行っています。USBソケットへのケーブルプラグの差し込みは、ホイールの隙間から行えます。
プログラムはArduino IDEを使って簡単にまとめましたが、Micro Pythonでも可能です。

ラインを読むセンサーにポピュラーなTCRT5000を使用
このセンサーは2017年7月に掲載の「Inverted Balancing Robot(倒立振子型ロボット)その9」で倒立ロボットの
ライントレース化に使ったセンサー基板がジャンクボックスに残ってたのを流用しました。
新たに購入される方は、オペアンプを内蔵してしきい値をVRで調整できる基板が安価に販売されています。
これを利用すると、アナログ入力(ADC)ではなくデジタル入力で使えますが、基板が3枚必要です。
後部の受けは、電池ボックスにダイソーのワイヤーハンガーを貼り付けただけの簡単な方法です。
ギアモーターとモータードライバー
モーターやモータードライバーユニットは倒立振子ロボットに組み込んだものを躯体ごと流用。
倒立振子ロボットの縦型配置を横に寝かせただけです。

電源について
電池ボックスを単4型電池4個用から2個用に取り換えて2.4Vで使うことにしました。
その理由は、4.8Vだとギアモーターの回転が速すぎてヘアピンカーブが曲がり切れません。
通常回転数を下げる方法としてPWM(パルス幅変調)を使いますが、Raspberry Pi Picoの入力電圧が2.1Vからに
対応していることと、電池を減らせば軽くなるメリットが有り電圧を下げる方法を用いました。

ライントレースのコースについて
私は10㎜厚、900×600㎜の発泡スチロールパネルに幅19㎜の電工用黒色ビニールテープを貼り付けて
コースを作りました。冬場はビニールテープが伸びにくくてカーブを描くのが難しいですが、ドライヤーで
温めながら行うと上手く行えます。

皆様の参考になれば幸いです。
by Paradise
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
パックマンをイメージしたマーブルマシンを作りました。
透明アクリル板をCNC加工して作りました。
2021年11月12日
ボールを運ぶ通路とパックマン取り付けパネルとマーブルポンプを一体構造としました。
動画をご覧下さい。
皆様の参考になれば幸いです。
by Paradise
2021年11月12日
ボールを運ぶ通路とパックマン取り付けパネルとマーブルポンプを一体構造としました。
動画をご覧下さい。
皆様の参考になれば幸いです。
by Paradise
手動ポンプ式マーブルマシーン
電子工作が続いたのでシンプルなマーブルマシーンを作ってみました。

異なるマーブルマシンを複数組み合わせた作品は以前にし紹介しましたが、
今回は単一機能のシンプルマシーンです。
ボールに6㎜径のベアリング玉を使ったオリジナルのロータリーポンプは、小さいハンドルを回してボールを押し上げる方式です。
頂上からはループ状のスロープを下り、ポンプの入り口に戻って来るシンプルな構造です。
ループの直径が90㎜で6回転半なのでスロープの長さが約1m80Cmとなります。
動画をご覧下さい。
これまでの掲載したマーブルマシーンの動画を併せてご覧下さい。
2014年4月の作品
最初に作った複合型、5種類のマシーンを組み合わせた木製の作品です。
2016年10月の作品
アクリル板と針金のレールに4種類のマシーンを組み合わせた作品です。
2016年11月の作品
クリスマスツリーをイメージしたスパイラルループタイプの作品です。
2021年4月の作品
アームロボットがビー玉を運ぶオリジナルタイプの作品です。
皆様の参考になれば幸いです。
by Paradise

異なるマーブルマシンを複数組み合わせた作品は以前にし紹介しましたが、
今回は単一機能のシンプルマシーンです。
ボールに6㎜径のベアリング玉を使ったオリジナルのロータリーポンプは、小さいハンドルを回してボールを押し上げる方式です。
頂上からはループ状のスロープを下り、ポンプの入り口に戻って来るシンプルな構造です。
ループの直径が90㎜で6回転半なのでスロープの長さが約1m80Cmとなります。
動画をご覧下さい。
これまでの掲載したマーブルマシーンの動画を併せてご覧下さい。
2014年4月の作品
最初に作った複合型、5種類のマシーンを組み合わせた木製の作品です。
2016年10月の作品
アクリル板と針金のレールに4種類のマシーンを組み合わせた作品です。
2016年11月の作品
クリスマスツリーをイメージしたスパイラルループタイプの作品です。
2021年4月の作品
アームロボットがビー玉を運ぶオリジナルタイプの作品です。
皆様の参考になれば幸いです。
by Paradise
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
ESP32モジュールを使った汎用ユニットを作る
ESP32 Evo2タイプロボットを作る前に!
ESP32は単体のモージュールの他、Dev Kitが種々販売されていますが、Dev Kit類はサイズが大きくて
組み込み用としては不向きです。
小さいタイプとしてM5シリーズのM5 Stack Atom LiteやM5 Stamp pico Mateなど有りますが、
使用できるGPIOが少ない割に結構高価です。そこで、これらに準じたユニットを作る方法を紹介します。
オリジナルユニットと既存品の比較
上面:左端が今回作ったESP32を載せたユニットで、大きさはほぼAtom Liteと同じです。
利用可能なGPIOは、オリジナルが13個、Atom Liteが8個、Pico Mateが9個です。(書き込み関係含まず)

下面:オリジナルの基板下面にはピンヘッダ8x2とプログラム書き込み用のUSBシリアル端子を設けています。
画像下側のピンソケットは秋月電子にて購入の低メスタイプで高さを低くするのに有効です。

ESP32Dのピンマップ

オリジナルユニットの配線図と組み立て方
両側の端子のみ表示、下部の端子は不使用のため省略しています。(画像をクリックで拡大します)
3.3V電源線とGND線には0.5㎜径の錫メッキ線を使用、信号線は全て0.32㎜径のワイヤーラッピング用を使っています。
ESP32Dは秋月電子で1個330円で購入。新しいタイプのESP32Eは360円です。

部品の準備
基板:秋月電子の片面ガラス・薄型ユニバーサル基板Cタイプ(72X48mm)メッキ仕上げ(日本製)60円を
8×9穴を残して周囲を切断します。この基板は厚さが薄いので両面にカッターを入れると綺麗に折れます。
ピンヘッダ:これも秋月電子にて購入のピンヘッダ 1X40(40P、35円)から8ピンを2本をニッパー等で切断します。
完成高さを低くするためにピンヘッダの足を6.1㎜から3㎜短くしますが、先端を切断すると後の仕上げが大変なので
ラジオペンチを使いハンダ側へ3㎜押し込むと、ハンダ側が3㎜伸びるのでその分をニッパーで切断、高さを揃えます。
ピンソケット:これも秋月電子にて購入の分割ロングピンソケット 1X42 (42P、80円)の6ピン分を切断しますが、
切断箇所両面にカッターで切り込みを入れて折り曲げると綺麗に切断出来ます。
組立作業 注意:組立には順番が有ります。
①ピンヘッダの取り付け
カットしたユニバーサル基板のハンダ面を上にして8ピンのピンヘッダをハンダ付けしますが、ブレッドボードに
ピンヘッダを差し込み、ピンが傾かないように行えば正確に仕上がります。(ピンヘッダには1~16の番号を表示)
②USBシリアル用ソケットの取り付け
次に下面の画像(クリックで拡大します)を参考にして裏側に6ピンソケットを瞬間接着にて固定します。
③電源の配線
3.3VとGND2か所は0.5㎜の錫メッキ線を使い尖端にループを作り、ピンヘッダにハンダ付けした後、少し長めに
切断しておきます。
④USBシリアルソケットへの配線
次にGND、3.3V電源線とTXD、RXD、EN、IO0の信号線をUSBシリアルソケットへ配線しますが、配線図右側を
参考に行います。各配線を表側へ引き出す穴はピンヘッダの一つ内側です。
ENのプルアップ抵抗10KΩ1/6Wのリード線を15番ピンと14番ピン横の穴に通して表側に引き出しておきます。
抵抗の3.3V側とEN側をUSBシリアルソケットの3.3V及びENに接続します。
TXD、RXDはクロス接続するのでUSBシリアルソケット側から配線を始め、2番ピン、3番ピン横の穴から表側に
配線を少し長めに引きだしておきます。
IO0(書き込み=Download mode)ラインは、直ぐ横の穴がUSBシリアルソケットにより塞がれているので6番ピン横の
穴から表側に引き出しておきます。
⑤ESP32の取り付け方法
ESP32の金属面に幅10㎜、厚さ1.1㎜の強力両面テープを貼り、裏返しにして接着しますが、両面テープの厚みが
薄いと基板との間隔が狭く、後の配線作業が難しいので2枚重ねるか薄板の下駄をはかせると良いでしょう。
⑥ESP32への配線とハンダ付けについて
表側に引き出した各リード線をESP32の端子にハンダ付けしますが、少し長めに出してあるので寸法を合わせて切断、
先端の被覆を剥がしGPIO端子の角に沿って芯線を折り曲げてハンダ付けします。しかし、先端が細いICチップ用の
コテ先でないと隣の端子とブリッジするので細心の注意が必要です。
⑦ピンヘッダとESP32各GPIO端子の接続
配線図左側(表面)を参考にピンヘッダ2番から14番と各GPIOをハンダ付けしますが、リード線の被覆を剥がし芯線の
先端にループを作り、ピンヘッダにはめ込んでハンダ付けします。
ピンヘッダとGPIO端子の距離が近くて難しいと思いますが慎重に作業を行います。また、芯線をGPIO端子角で折り
曲げてハンダ付けすると接触面が増えて剥がれ難く仕上がります。
プログラム書き込み用アダプターについて
USBシリアルソケットのピン配置をM5 Stamp Pico Mateに準拠しました。アダプターの回路は下図と共通です。

細かな作業ですが、1つ作っておけば使いまわしが出来るので便利だと思います。
次回はESP32 Evo2タイプロボットの作り方を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
ESP32は単体のモージュールの他、Dev Kitが種々販売されていますが、Dev Kit類はサイズが大きくて
組み込み用としては不向きです。
小さいタイプとしてM5シリーズのM5 Stack Atom LiteやM5 Stamp pico Mateなど有りますが、
使用できるGPIOが少ない割に結構高価です。そこで、これらに準じたユニットを作る方法を紹介します。
オリジナルユニットと既存品の比較
上面:左端が今回作ったESP32を載せたユニットで、大きさはほぼAtom Liteと同じです。
利用可能なGPIOは、オリジナルが13個、Atom Liteが8個、Pico Mateが9個です。(書き込み関係含まず)

下面:オリジナルの基板下面にはピンヘッダ8x2とプログラム書き込み用のUSBシリアル端子を設けています。
画像下側のピンソケットは秋月電子にて購入の低メスタイプで高さを低くするのに有効です。

ESP32Dのピンマップ

オリジナルユニットの配線図と組み立て方
両側の端子のみ表示、下部の端子は不使用のため省略しています。(画像をクリックで拡大します)
3.3V電源線とGND線には0.5㎜径の錫メッキ線を使用、信号線は全て0.32㎜径のワイヤーラッピング用を使っています。
ESP32Dは秋月電子で1個330円で購入。新しいタイプのESP32Eは360円です。

部品の準備
基板:秋月電子の片面ガラス・薄型ユニバーサル基板Cタイプ(72X48mm)メッキ仕上げ(日本製)60円を
8×9穴を残して周囲を切断します。この基板は厚さが薄いので両面にカッターを入れると綺麗に折れます。
ピンヘッダ:これも秋月電子にて購入のピンヘッダ 1X40(40P、35円)から8ピンを2本をニッパー等で切断します。
完成高さを低くするためにピンヘッダの足を6.1㎜から3㎜短くしますが、先端を切断すると後の仕上げが大変なので
ラジオペンチを使いハンダ側へ3㎜押し込むと、ハンダ側が3㎜伸びるのでその分をニッパーで切断、高さを揃えます。
ピンソケット:これも秋月電子にて購入の分割ロングピンソケット 1X42 (42P、80円)の6ピン分を切断しますが、
切断箇所両面にカッターで切り込みを入れて折り曲げると綺麗に切断出来ます。
組立作業 注意:組立には順番が有ります。
①ピンヘッダの取り付け
カットしたユニバーサル基板のハンダ面を上にして8ピンのピンヘッダをハンダ付けしますが、ブレッドボードに
ピンヘッダを差し込み、ピンが傾かないように行えば正確に仕上がります。(ピンヘッダには1~16の番号を表示)
②USBシリアル用ソケットの取り付け
次に下面の画像(クリックで拡大します)を参考にして裏側に6ピンソケットを瞬間接着にて固定します。
③電源の配線
3.3VとGND2か所は0.5㎜の錫メッキ線を使い尖端にループを作り、ピンヘッダにハンダ付けした後、少し長めに
切断しておきます。
④USBシリアルソケットへの配線
次にGND、3.3V電源線とTXD、RXD、EN、IO0の信号線をUSBシリアルソケットへ配線しますが、配線図右側を
参考に行います。各配線を表側へ引き出す穴はピンヘッダの一つ内側です。
ENのプルアップ抵抗10KΩ1/6Wのリード線を15番ピンと14番ピン横の穴に通して表側に引き出しておきます。
抵抗の3.3V側とEN側をUSBシリアルソケットの3.3V及びENに接続します。
TXD、RXDはクロス接続するのでUSBシリアルソケット側から配線を始め、2番ピン、3番ピン横の穴から表側に
配線を少し長めに引きだしておきます。
IO0(書き込み=Download mode)ラインは、直ぐ横の穴がUSBシリアルソケットにより塞がれているので6番ピン横の
穴から表側に引き出しておきます。
⑤ESP32の取り付け方法
ESP32の金属面に幅10㎜、厚さ1.1㎜の強力両面テープを貼り、裏返しにして接着しますが、両面テープの厚みが
薄いと基板との間隔が狭く、後の配線作業が難しいので2枚重ねるか薄板の下駄をはかせると良いでしょう。
⑥ESP32への配線とハンダ付けについて
表側に引き出した各リード線をESP32の端子にハンダ付けしますが、少し長めに出してあるので寸法を合わせて切断、
先端の被覆を剥がしGPIO端子の角に沿って芯線を折り曲げてハンダ付けします。しかし、先端が細いICチップ用の
コテ先でないと隣の端子とブリッジするので細心の注意が必要です。
⑦ピンヘッダとESP32各GPIO端子の接続
配線図左側(表面)を参考にピンヘッダ2番から14番と各GPIOをハンダ付けしますが、リード線の被覆を剥がし芯線の
先端にループを作り、ピンヘッダにはめ込んでハンダ付けします。
ピンヘッダとGPIO端子の距離が近くて難しいと思いますが慎重に作業を行います。また、芯線をGPIO端子角で折り
曲げてハンダ付けすると接触面が増えて剥がれ難く仕上がります。
プログラム書き込み用アダプターについて
USBシリアルソケットのピン配置をM5 Stamp Pico Mateに準拠しました。アダプターの回路は下図と共通です。

細かな作業ですが、1つ作っておけば使いまわしが出来るので便利だと思います。
次回はESP32 Evo2タイプロボットの作り方を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
ESP32 Evo2タイプ倒立振子型ロボットの製作
格安ステッピングモータ入手を機に3台追加して4兄弟になりました。
先ずは動画をご覧下さい
2号機の外観
2号機はアクリル板を補強材に両面テープにてモーターを連結、四角いアクリル板を基板スペーサーを使い
上下2段に配置、コントロール部と電池ボックスを取り付け、上側アクリル板にサーボモータを接着した
簡単な構造にしました。ホイールとハブは市販品を使い自作出来ない方にも製作が可能な作り方としました。
コントロール部のプリント基板は昨年1号機を作った時の予備品(M5 Stack Atom Lite用)を使用。
電池は3.7V123Aタイプのリチウムイオン充電池を2個使用、今回使ったステッピングモーターの仕様が
不明ですが、電圧を上げ過ぎないよう注意が必要です。私は昇圧をせずに電池の電圧をそのまま使用しました。
詳細は次回に掲載します。

3号機の外観
こちらは、側板に厚さ3㎜、上下の仕切り版には厚さ5㎜のアクリル板を使用し、M2タップタイトで連結しました。
充電池は16340型3.7Vを2個使用。123Aタイプよりも少し長いが、123A用電池ボックスに辛うじて入ります。
1号機、2号機にはM5 Stack Atom Liteを使いましたが、昨年は700円程だったのが今は倍ほどに値上がり!
今回から、330円で買えるESP32Dチップを手組配線しました。ホイールは1号機と同じ65㎜径を使用。

4号機の外観
昨日出来上がったばかりです。3号機と殆ど変わりませんが、電池にCANON IOS7Dに使っていた予備の
カメラ用電池7.2V 1800mAを使いました。ホイール75㎜径は文字描きロボットに使った予備品を使用。

次回は2号機から順に工作についての要点を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
先ずは動画をご覧下さい
2号機の外観
2号機はアクリル板を補強材に両面テープにてモーターを連結、四角いアクリル板を基板スペーサーを使い
上下2段に配置、コントロール部と電池ボックスを取り付け、上側アクリル板にサーボモータを接着した
簡単な構造にしました。ホイールとハブは市販品を使い自作出来ない方にも製作が可能な作り方としました。
コントロール部のプリント基板は昨年1号機を作った時の予備品(M5 Stack Atom Lite用)を使用。
電池は3.7V123Aタイプのリチウムイオン充電池を2個使用、今回使ったステッピングモーターの仕様が
不明ですが、電圧を上げ過ぎないよう注意が必要です。私は昇圧をせずに電池の電圧をそのまま使用しました。
詳細は次回に掲載します。

3号機の外観
こちらは、側板に厚さ3㎜、上下の仕切り版には厚さ5㎜のアクリル板を使用し、M2タップタイトで連結しました。
充電池は16340型3.7Vを2個使用。123Aタイプよりも少し長いが、123A用電池ボックスに辛うじて入ります。
1号機、2号機にはM5 Stack Atom Liteを使いましたが、昨年は700円程だったのが今は倍ほどに値上がり!
今回から、330円で買えるESP32Dチップを手組配線しました。ホイールは1号機と同じ65㎜径を使用。

4号機の外観
昨日出来上がったばかりです。3号機と殆ど変わりませんが、電池にCANON IOS7Dに使っていた予備の
カメラ用電池7.2V 1800mAを使いました。ホイール75㎜径は文字描きロボットに使った予備品を使用。

次回は2号機から順に工作についての要点を掲載予定です。
皆さまの参考になれば幸いです。
by Paradise
安価に作る倒立2輪ロボットの紹介 その5
その5 ソフトウェアについて
今回応用させて頂いた基本ソースは、6年前に倒立2輪ロボットの製作を始めた頃に出会ったサインスマート社の
セルフバランシングロボットです。教材的なキットとして販売されていますが、WiFiモジュールが技適認証外のため
残念ですが国内で使えません。そこで、マイコンをArduinoから技適対応の通信機能を内蔵したESP系に置き換え、
BLYNK APPを使ってスマートフォンからリモコン操作が出来るようにしました。
参考にしたサインスマート社のページ (現在は新しい機種が販売されています)
モータの取り付け方法を両面テープ止めからネジ止め式に変更しました。

マイコンにESP32系を使うための変更
M5 Stamp PicoやM5 Stack Atom Liteを使うためには、基本ソースの変更が必要です。
また、リモコンに何を使うかによっても受信部やモータコントロール部が異なりますが、ここではその4で紹介の
BlynkAPPを使った場合に合わせたコードの変更を記します。
1)ライブラリーのインストール
各リンクサイトからライブラリーのzipファイルをダウンロードしてArduinoIDEにインクルードしておきます。
インストール手順:ArduinoIDE⇒スケッチ⇒ライブラリーをインクルード⇒ZIP形式のライブラリーをインストール
①MPU6050-0.4.0.zip
mpu6050ライブラリー ダウンロードサイトへのリンク
②M5Atom-0.0.5.zip
M5Atom ライブラリー ダウンロードサイトへのリンク
2)ソースコードの変更
ソースコードが長いので下記ページを開きながら参照して下さい。
行番号&注釈付きソースコードを別ページに開きます。
主な変更点
①12行目:Blynk APPから取得したauth codeを記入します。
スマートフォンとWiFのペアリング時に56行目のデバイス名「M5Stamp_BLE」が表示されるのでペアリングします。
デバイス名は任意なので好みの名称に変更出来ます。
②70~80行目:ESP32系のPWM出力の設定です。(arduinoのanalogWriteに相当)
ここでは、8ビット0~255のPWM信号を扱います。
注意:使用するマイコン M5 Stamp PicoとM5 Stack Atom liteでは使用GPIO番号が異なります。
③93~102行目:BLYNK_WRITE(V0)の設定
Blynk APPで設定したV0のボタンスイッチ(トグル)です。
走路が滑らかなフローリングの場合やカーペットやマットなどの使用条件により、モータの出力を切り替えています。
④104~167行目:BLYNK_WRITE(V1)の設定
ジョイスティックからのx、y信号の値 0~±255を前後進と左右旋回及び停止信号に変換しています。
使い易くするためにx、y方向共に0~±100の間を不感帯としています。
⑤183~197行目:PIDの調整
ここでは、私が試したkp、ki、kdの値を記していますが、個体差が有るので微調整が必要です。
時間が掛かりますが、一番安定する値を求めて下さい。
⑥199~228行目: MotorControl
ジャイロセンサーの傾斜角度及びPID制御により得たOutput値とBlynkコントローラーから受信して得た
Run_Speed値及びTurn_Speed値の合計値を、左右のモータを動かすモータドライバーへ出力します。
ArudinoIDE用txtファイルを添付しましたコピーして貼り付けます。
3)調整のポイント
①静止せずに前後何れか決まった方向に進む場合は、20行目のAngle_offsetの値を0から少し±に変更すると
僅かに前後に動くがほぼ静止するポイントが有ります。
この調整が面倒な方は、ジャイロセンサーの取り付け方法をシーソー式とし、傾きを僅かに変えることにより静止
ポイントを簡単に見付けることが出来ます。但し調整後に動かないよう固定する構造が必要です。
②前項の⑤に記したPID制御の設定値ですが、kp、ki、kd各々にポテンションメータを置き、A/D変換した値により
調節するのが最良ですが、今回は省略しています。
どうしても必要な方は、スマートフォンのBlynkAPPにスライダーを3個追加してその値を利用する方法も有ります。
但し、一度値を求めたらその後は必要なく、固定値に戻せばよいので興味のある方はお試し下さい。
③前項③に記した走路によるパワーの切り替えですが、これもBlynkAPPにスライダーを2個追加することにより
連続した出力の変更が可能です。興味のある方はお試し下さい。
4)コントローラーとオペレーション
近年幼児期からスマホやゲーム機に親しむ子供が多く、スマホのジョイスティックの操作などお手の物だと思います。
しかし、後期高齢者の私は工作が得意なのにオペレーションが下手で子供達のように上手く操作が出来ません。
このバランシングロボットの欠点は少しスピードを上げると転倒します。これを転倒しないようにジョイスティックを
操作するのが大変難しく、練習が必要と痛感しています。
5)超安定バランシングロボットのお勧め
今回は安価にバランシングロボットを作るのが主題で、初めてのバランシングロボット体験とプログラムの勉強には
適材ですが、もっと安定した高性能のバランシングロボットを希望される方にはjjRobot社のB-Robot Evo2が
お勧めです。キットも販売されていますが、使用するマイコンが技適認証外なので国内で使うことが出来ません。
そこで、技適マークが付いたマイコンを使って作ったのが、昨年に紹介しましたM5 Stack ATOM Lite を使用の
B-Robot Evo2 Paradise Modelです。 このBlogのカテゴリー「倒立振子型ロボット」にてご覧頂けます。
前回参照:現在このバランシングロボットに使えるステッピングモーターが通常1個1500円以上しますが
4個セットで400円で販売されています。残り僅かです!興味のある方にはラストチャンスだと思います。
高速でも転倒し難く、海外では自作したB-Robot Evo2を持ち寄り、専用コースでレース競技も行われています。
次回紹介予定のNew Evo2
New Evo2は、上記の1個約100円のステッピングモータを使った簡易型紹介用モデルです。
ホイールやホイールフランジも市販品なのでCNC加工機が無くても作れるように設計しました。

皆さまの参考になれば幸いです。
by Paradise
今回応用させて頂いた基本ソースは、6年前に倒立2輪ロボットの製作を始めた頃に出会ったサインスマート社の
セルフバランシングロボットです。教材的なキットとして販売されていますが、WiFiモジュールが技適認証外のため
残念ですが国内で使えません。そこで、マイコンをArduinoから技適対応の通信機能を内蔵したESP系に置き換え、
BLYNK APPを使ってスマートフォンからリモコン操作が出来るようにしました。
参考にしたサインスマート社のページ (現在は新しい機種が販売されています)
モータの取り付け方法を両面テープ止めからネジ止め式に変更しました。

マイコンにESP32系を使うための変更
M5 Stamp PicoやM5 Stack Atom Liteを使うためには、基本ソースの変更が必要です。
また、リモコンに何を使うかによっても受信部やモータコントロール部が異なりますが、ここではその4で紹介の
BlynkAPPを使った場合に合わせたコードの変更を記します。
1)ライブラリーのインストール
各リンクサイトからライブラリーのzipファイルをダウンロードしてArduinoIDEにインクルードしておきます。
インストール手順:ArduinoIDE⇒スケッチ⇒ライブラリーをインクルード⇒ZIP形式のライブラリーをインストール
①MPU6050-0.4.0.zip
mpu6050ライブラリー ダウンロードサイトへのリンク
②M5Atom-0.0.5.zip
M5Atom ライブラリー ダウンロードサイトへのリンク
2)ソースコードの変更
ソースコードが長いので下記ページを開きながら参照して下さい。
行番号&注釈付きソースコードを別ページに開きます。
主な変更点
①12行目:Blynk APPから取得したauth codeを記入します。
スマートフォンとWiFのペアリング時に56行目のデバイス名「M5Stamp_BLE」が表示されるのでペアリングします。
デバイス名は任意なので好みの名称に変更出来ます。
②70~80行目:ESP32系のPWM出力の設定です。(arduinoのanalogWriteに相当)
ここでは、8ビット0~255のPWM信号を扱います。
注意:使用するマイコン M5 Stamp PicoとM5 Stack Atom liteでは使用GPIO番号が異なります。
③93~102行目:BLYNK_WRITE(V0)の設定
Blynk APPで設定したV0のボタンスイッチ(トグル)です。
走路が滑らかなフローリングの場合やカーペットやマットなどの使用条件により、モータの出力を切り替えています。
④104~167行目:BLYNK_WRITE(V1)の設定
ジョイスティックからのx、y信号の値 0~±255を前後進と左右旋回及び停止信号に変換しています。
使い易くするためにx、y方向共に0~±100の間を不感帯としています。
⑤183~197行目:PIDの調整
ここでは、私が試したkp、ki、kdの値を記していますが、個体差が有るので微調整が必要です。
時間が掛かりますが、一番安定する値を求めて下さい。
⑥199~228行目: MotorControl
ジャイロセンサーの傾斜角度及びPID制御により得たOutput値とBlynkコントローラーから受信して得た
Run_Speed値及びTurn_Speed値の合計値を、左右のモータを動かすモータドライバーへ出力します。
ArudinoIDE用txtファイルを添付しましたコピーして貼り付けます。
3)調整のポイント
①静止せずに前後何れか決まった方向に進む場合は、20行目のAngle_offsetの値を0から少し±に変更すると
僅かに前後に動くがほぼ静止するポイントが有ります。
この調整が面倒な方は、ジャイロセンサーの取り付け方法をシーソー式とし、傾きを僅かに変えることにより静止
ポイントを簡単に見付けることが出来ます。但し調整後に動かないよう固定する構造が必要です。
②前項の⑤に記したPID制御の設定値ですが、kp、ki、kd各々にポテンションメータを置き、A/D変換した値により
調節するのが最良ですが、今回は省略しています。
どうしても必要な方は、スマートフォンのBlynkAPPにスライダーを3個追加してその値を利用する方法も有ります。
但し、一度値を求めたらその後は必要なく、固定値に戻せばよいので興味のある方はお試し下さい。
③前項③に記した走路によるパワーの切り替えですが、これもBlynkAPPにスライダーを2個追加することにより
連続した出力の変更が可能です。興味のある方はお試し下さい。
4)コントローラーとオペレーション
近年幼児期からスマホやゲーム機に親しむ子供が多く、スマホのジョイスティックの操作などお手の物だと思います。
しかし、後期高齢者の私は工作が得意なのにオペレーションが下手で子供達のように上手く操作が出来ません。
このバランシングロボットの欠点は少しスピードを上げると転倒します。これを転倒しないようにジョイスティックを
操作するのが大変難しく、練習が必要と痛感しています。
5)超安定バランシングロボットのお勧め
今回は安価にバランシングロボットを作るのが主題で、初めてのバランシングロボット体験とプログラムの勉強には
適材ですが、もっと安定した高性能のバランシングロボットを希望される方にはjjRobot社のB-Robot Evo2が
お勧めです。キットも販売されていますが、使用するマイコンが技適認証外なので国内で使うことが出来ません。
そこで、技適マークが付いたマイコンを使って作ったのが、昨年に紹介しましたM5 Stack ATOM Lite を使用の
B-Robot Evo2 Paradise Modelです。 このBlogのカテゴリー「倒立振子型ロボット」にてご覧頂けます。
前回参照:現在このバランシングロボットに使えるステッピングモーターが通常1個1500円以上しますが
4個セットで400円で販売されています。残り僅かです!興味のある方にはラストチャンスだと思います。
高速でも転倒し難く、海外では自作したB-Robot Evo2を持ち寄り、専用コースでレース競技も行われています。
次回紹介予定のNew Evo2
New Evo2は、上記の1個約100円のステッピングモータを使った簡易型紹介用モデルです。
ホイールやホイールフランジも市販品なのでCNC加工機が無くても作れるように設計しました。

皆さまの参考になれば幸いです。
by Paradise
安価に作る倒立2輪ロボットの紹介 その4
新作の紹介
既製品のホイールを使った分と2台作りました。右側が昨年6月の作品(B-ROBOT Evo2 M5 Stack Atom Lite)です。
B-ROBOTページ参照:https://cncparadise.blog.fc2.com/blog-date-202006.html (抜群の安定性が特徴です)
お知らせ:B-ROBOTに使ったステッピングモーターが4個、400円、残り3セットがFA機器.COMにて販売されています。
新たに作られる方にB-ROBOTがお勧めです。 FA機器.COM:https://fakiki.com/products/detail/58887

その4 コントローラにBlynk Appを使う
Blynk Appのダウンロード
先ず、スマホがiPhoneの場合はApp Store、Androidの場合はPlayストアからBlynk Appをダウンロードします。
初めてBlynkを使う場合は、Create New AccountからemailとPasswordを入力してアカウント設定します。
プロジェクトの準備
①Create New ProjectをタップしてProject SettingsにてProject Nameを入力します。
②次にChoose DeviceのドロップダウンリストからESP32 Dev Boardを選択します。
③次にConnection TypeのロップダウンリストからBLEを選択します。
④一番下のCreateをタップすると先に入力したプロジェクト名のプロジェクトが開きます。
⑤プロジェクト名の右側のナットマークをタップすると新しいプロジェクトを開きます。
⑥丸+マークをタップするとWidget Box画面が開き、配置する部品が選べます。
⑦下の画像には出てませんが、右端の三角マークをタップするとプロジェクトがビジーとなります。
部品の配置と設定
最初、Widget Boxの電池マークは無料で使える2000エネルギーが表示されています。
ここでは、ジョイスティック(400)、ボタン(200)、BLE(0)の3つの部品を選びます。残り1400エネルギーです。
下の画像を参考に設定して下さい。トグルスイッチは走路がフローリングやカーペット等の種類により、パワーを
選ぶ為に設けています。 下の画像はタップすると拡大します。
プロジェクトに対し、登録したアカウントにAuth Codeが送られて来ます。 そのコードをプログラムに
記述する必要があるので大切に保管します。
動画をもう一度ご覧下さい。
B-ROBOT Evo2の動画を再掲載します。
次回はソフトウェアについて説明の予定です。
皆さまの参考になれば幸いです。
by Paradise
既製品のホイールを使った分と2台作りました。右側が昨年6月の作品(B-ROBOT Evo2 M5 Stack Atom Lite)です。
B-ROBOTページ参照:https://cncparadise.blog.fc2.com/blog-date-202006.html (抜群の安定性が特徴です)
お知らせ:B-ROBOTに使ったステッピングモーターが4個、400円、残り3セットがFA機器.COMにて販売されています。
新たに作られる方にB-ROBOTがお勧めです。 FA機器.COM:https://fakiki.com/products/detail/58887

その4 コントローラにBlynk Appを使う
Blynk Appのダウンロード
先ず、スマホがiPhoneの場合はApp Store、Androidの場合はPlayストアからBlynk Appをダウンロードします。
初めてBlynkを使う場合は、Create New AccountからemailとPasswordを入力してアカウント設定します。
プロジェクトの準備
①Create New ProjectをタップしてProject SettingsにてProject Nameを入力します。
②次にChoose DeviceのドロップダウンリストからESP32 Dev Boardを選択します。
③次にConnection TypeのロップダウンリストからBLEを選択します。
④一番下のCreateをタップすると先に入力したプロジェクト名のプロジェクトが開きます。
⑤プロジェクト名の右側のナットマークをタップすると新しいプロジェクトを開きます。
⑥丸+マークをタップするとWidget Box画面が開き、配置する部品が選べます。
⑦下の画像には出てませんが、右端の三角マークをタップするとプロジェクトがビジーとなります。
部品の配置と設定
最初、Widget Boxの電池マークは無料で使える2000エネルギーが表示されています。
ここでは、ジョイスティック(400)、ボタン(200)、BLE(0)の3つの部品を選びます。残り1400エネルギーです。
下の画像を参考に設定して下さい。トグルスイッチは走路がフローリングやカーペット等の種類により、パワーを
選ぶ為に設けています。 下の画像はタップすると拡大します。
ボタンとジョイスティックを選択 | BLEを選択 | 部品の配置 |
![]() | ![]() | ![]() |
ボタンの設定 ①ボタン名にPOWERと記入 ②Select Pinをタップして VirtualとV0を選択 | トグルスイッチとして使うので MODEをSwitct側に設定 ON/OFFに状態名を入力 | ジョイスティックの設定 VirtualとV1に設定 スイッチをMERGE側に設定 値を-255~255に設定 |
![]() | ![]() | ![]() |
記述する必要があるので大切に保管します。
動画をもう一度ご覧下さい。
B-ROBOT Evo2の動画を再掲載します。
次回はソフトウェアについて説明の予定です。
皆さまの参考になれば幸いです。
by Paradise
安価に作る倒立2輪ロボットの紹介 その3
その3 部品の製作と組み立て
完成画像 (全ての画像はクリックすると拡大します)

主なのパーツ
モータ、コントロール基板、モータドライバー、電池ボックス、ホイールから構成しています。
部品価格参考:M5 Stamp Pico 1個 825円(スイッチサイエンス)、Oリング1A-G65 1本107円(ヨドバシカメラ)
モータFM90 (秋月電子)1個 250円、単4 2個用電池ボックス(秋月電子)1個 50円
GY-521(MPU6050):250~450円(アマゾン)、MX1508:モータドライバー:約200円、(アマゾン)

ホイールについて
一番ネックになるのがホイールだと思います。 既製品が無いかと探したら、FM90の出力軸に合うスプライン形式
20T/4.8㎜の製品は60㎜が最大でした。 径が小さいと挙動が不安定になると思います。
参考:販売元:スイッチサイエンス(マイクロサーボ(20T/4.8mm)用 60×8mmホイール 2個セット 白、561円)
9月14日追伸:試しに上記ホイールを購入、テストの結果問題なく使えました。
先ずは、私が厚さ5㎜のアクリル板をCNC加工して作ったホイールの概略図を示します。
外周に幅3㎜、深さ2㎜の溝を加工し、タイヤにはOリング 1A-G65 1本107円を引き伸ばしながら嵌め込んでいます。
DXFファイルが必要な方は申し出て下さい。

組立図
厚さ2㎜のアクリル板を使い、モーターや電池ボックスを超強力両面テープを使って貼り合わせます。
私が使ったのは、3M Scotchのスーパー多用途粗面用 幅12㎜、厚み1.1㎜です。
モータドライバーMX1508は、取付穴が無いので前面のアクリル板に両面テープで貼り付けています。
単4タイプの電池ボックにスは、背中合わせのタイプが無いので、2個用を背中合わせに接着しました。

コントロール基板の回路図
ここでは、新しく発売されたM5 Stamp Picoを使いましたが、USBシリアルが実装されたM5 Stack Atom Liteの方が
USBシリアルモジュールが不要なので、新しく購入される方にはお勧めです。(性能的には同等です)。
M5 Stamp Picoとジャイロ基板を47X29㎜にカットしたユニバーサル基板に組み込みました。
尚、単4電池には、必ず1.2V出力のニッケル水素充電池を使います。電圧が高いアルカリ電池は不可です。

コントローラについて
動画では3種類のコントロールスタイルを紹介しましたが、夫々に特徴が有ります。専用のコントローラを使うのが
操作性に優れてベストです。 しかし、自作が難しいのでスマホアプリを使った方法が簡単でお勧めです。
BLE専用コントローラーに興味のある方は、以前の記事(第3章)を参考にして下さい。
特にBlynk APPの場合、androidとiPhoneの両方をサポートしているのが特徴です。
次回は、Blynk APPのインストールとWidget Boxからジョイスティックを選び、使い方を説明の予定です。
動画をもう一度ご覧下さい。
皆さまの参考になれば幸いです。
by Paradise
完成画像 (全ての画像はクリックすると拡大します)

主なのパーツ
モータ、コントロール基板、モータドライバー、電池ボックス、ホイールから構成しています。
部品価格参考:M5 Stamp Pico 1個 825円(スイッチサイエンス)、Oリング1A-G65 1本107円(ヨドバシカメラ)
モータFM90 (秋月電子)1個 250円、単4 2個用電池ボックス(秋月電子)1個 50円
GY-521(MPU6050):250~450円(アマゾン)、MX1508:モータドライバー:約200円、(アマゾン)

ホイールについて
一番ネックになるのがホイールだと思います。 既製品が無いかと探したら、FM90の出力軸に合うスプライン形式
20T/4.8㎜の製品は60㎜が最大でした。 径が小さいと挙動が不安定になると思います。
参考:販売元:スイッチサイエンス(マイクロサーボ(20T/4.8mm)用 60×8mmホイール 2個セット 白、561円)
9月14日追伸:試しに上記ホイールを購入、テストの結果問題なく使えました。
先ずは、私が厚さ5㎜のアクリル板をCNC加工して作ったホイールの概略図を示します。
外周に幅3㎜、深さ2㎜の溝を加工し、タイヤにはOリング 1A-G65 1本107円を引き伸ばしながら嵌め込んでいます。
DXFファイルが必要な方は申し出て下さい。

組立図
厚さ2㎜のアクリル板を使い、モーターや電池ボックスを超強力両面テープを使って貼り合わせます。
私が使ったのは、3M Scotchのスーパー多用途粗面用 幅12㎜、厚み1.1㎜です。
モータドライバーMX1508は、取付穴が無いので前面のアクリル板に両面テープで貼り付けています。
単4タイプの電池ボックにスは、背中合わせのタイプが無いので、2個用を背中合わせに接着しました。

コントロール基板の回路図
ここでは、新しく発売されたM5 Stamp Picoを使いましたが、USBシリアルが実装されたM5 Stack Atom Liteの方が
USBシリアルモジュールが不要なので、新しく購入される方にはお勧めです。(性能的には同等です)。
M5 Stamp Picoとジャイロ基板を47X29㎜にカットしたユニバーサル基板に組み込みました。
尚、単4電池には、必ず1.2V出力のニッケル水素充電池を使います。電圧が高いアルカリ電池は不可です。

コントローラについて
動画では3種類のコントロールスタイルを紹介しましたが、夫々に特徴が有ります。専用のコントローラを使うのが
操作性に優れてベストです。 しかし、自作が難しいのでスマホアプリを使った方法が簡単でお勧めです。
BLE専用コントローラーに興味のある方は、以前の記事(第3章)を参考にして下さい。
特にBlynk APPの場合、androidとiPhoneの両方をサポートしているのが特徴です。
次回は、Blynk APPのインストールとWidget Boxからジョイスティックを選び、使い方を説明の予定です。
動画をもう一度ご覧下さい。
皆さまの参考になれば幸いです。
by Paradise
安価に作る倒立2輪ロボットの紹介 その2
動画が出来ましたのでご覧下さい。
リモコンの方法を3種類試しました。スマホアプリのBluetooth2種とオリジナルのBLEコントローラの3種です。
ファームウエアを入れ替えることにより選べます。作るのが大変ですがオリジナルの専用コントローラが使い易いです。
次回は作り方を掲載します。皆さまの参考になれば幸いです。
by Paradise
リモコンの方法を3種類試しました。スマホアプリのBluetooth2種とオリジナルのBLEコントローラの3種です。
ファームウエアを入れ替えることにより選べます。作るのが大変ですがオリジナルの専用コントローラが使い易いです。
次回は作り方を掲載します。皆さまの参考になれば幸いです。
by Paradise
安価に作る倒立2輪ロボット その1
先月発売されたM5 Stamp Picoを使い、手持ちの安価な部品を集めて
倒立2輪ロボットを作りました。
ロボットの操作には、スマホアプリBLYNKのジョイスティックを利用しました。
DCモータを使った倒立2輪ロボットは、ステッピングモータを使った場合に比べて回路が簡単で軽く作れますが、
安定性はステッピングモータには及びません。

主要部品
M5 Stamp Pico:825円、GY-521(MPU6050):250~450円、MX1508:モータードライバー:200円、
FM90型DCモータ:250円2個、単四型電池ボックス2本用リード線タイプ2個、単4型ニッケル水素充電池4個、
その他手持ち部品少々の合計2000円余しです。
アクリル板:2㎜厚、大きさ52X22㎜X2、52X30㎜X1、52X20㎜X1の合計4枚です。

部品の組み立て
部品の組み立ては2㎜厚アクリル板の端材を使い、3M社の強力両面テープにて接着しています。
モータのスプラインに会った既製品のホイールが入手出来なかったので、5㎜厚のアクリル板を加工して外周に
3㎜幅のOリングを嵌め込んでします。モータとの接合にサーボモータ用のホーンを使用。 ホイール外径75㎜。

透明アクリル板を使ったのでモータとの接着が見えています。グレー色が両面テープ

次回から作り方とソフトウェアについて掲載予定です。動画も用意します。
皆さまの参考になれば幸いです。
by Paradise
倒立2輪ロボットを作りました。
ロボットの操作には、スマホアプリBLYNKのジョイスティックを利用しました。
DCモータを使った倒立2輪ロボットは、ステッピングモータを使った場合に比べて回路が簡単で軽く作れますが、
安定性はステッピングモータには及びません。

主要部品
M5 Stamp Pico:825円、GY-521(MPU6050):250~450円、MX1508:モータードライバー:200円、
FM90型DCモータ:250円2個、単四型電池ボックス2本用リード線タイプ2個、単4型ニッケル水素充電池4個、
その他手持ち部品少々の合計2000円余しです。
アクリル板:2㎜厚、大きさ52X22㎜X2、52X30㎜X1、52X20㎜X1の合計4枚です。

部品の組み立て
部品の組み立ては2㎜厚アクリル板の端材を使い、3M社の強力両面テープにて接着しています。
モータのスプラインに会った既製品のホイールが入手出来なかったので、5㎜厚のアクリル板を加工して外周に
3㎜幅のOリングを嵌め込んでします。モータとの接合にサーボモータ用のホーンを使用。 ホイール外径75㎜。

透明アクリル板を使ったのでモータとの接着が見えています。グレー色が両面テープ

次回から作り方とソフトウェアについて掲載予定です。動画も用意します。
皆さまの参考になれば幸いです。
by Paradise
M5 Stamp Pico Mateを使ってみました。 その2
スマホアプリを使い、M5 Stamp PicoでDCモータを動かす。
1)コントロール用スマホアプリについて
今回使ったandroid用無料アプリはBluetooth Serial ControllerでPlayストアにてダウンロードできます。
このシリーズには以前に紹介のお絵描きロボット(OSTR)に使ったWiFi TCP/UDP Controllerと使い方は同じで、
ボタンの配置や機能設定を自由にカスタマイズ出来るのが特徴です。

2)Bluetoothアプリを使ってDCモータを動かすテスト例
ここでは、M5 Stamp PicoにモータードライバーMX1508(一個200円)を介してDCギヤードモータFM90(一個250円)を
アンドロイドスマホのBluetoothアプリを使って動かします。

テスト回路の配線図

3)プログラミング
M5 Stamp Pico Mateには、出荷時にファームウェアUIFLOWがインストールされていて、UIFlowグラフィカルプログラミング
の他、Arduino、MicroPython、ESP32-IDFにてプログラミングが可能です。
ここでは、Arduino IDEを使ってDCモータを動かす簡単な例を記します。
モータを動かす他にPico本体に搭載のRGBカラーLEDの色が操作毎に変化するようにしています。
プログラムをコピーしてArduino IDEに張り付けます。マイコンボードへの書き込み設定は、ボードをESP32 Pico Kit又は
M5 Stack Atomを選びますが、Pico系は書き込み速度が速いとエラーが出る場合が有ります。
その場合はUpload Speedを下げて書き込みます。
#include "M5Atom.h"
//M5Stamp_Pico用が未だリリースされてないので同じPico系のM5Atomライブラリーを用いています。
#include "BluetoothSerial.h"
BluetoothSerial M5Stamp_BT;
int rxValue;
int M_IN1 = 26;
int M_IN2 = 18;
int M_IN3 = 19;
int M_IN4 = 25;
//extern const unsigned char AtomImageData[375 + 2];
uint8_t DisBuff[2 + 5 * 5 * 3]; //RGB collar LED
void setup() {
Serial.begin(115200);
M5.begin(true, false, true);
delay(10);
setBuff(0xff, 0x00, 0x00); //初期赤色
M5.dis.displaybuff(DisBuff);
M5Stamp_BT.begin("M5Stamp_BT"); //名称変更可能
Serial.println("Bluetooth Control");
pinMode(M_IN1, OUTPUT); digitalWrite(M_IN1, LOW);
pinMode(M_IN2, OUTPUT); digitalWrite(M_IN2, LOW);
pinMode(M_IN3, OUTPUT); digitalWrite(M_IN3, LOW);
pinMode(M_IN4, OUTPUT); digitalWrite(M_IN4, LOW);
}
void Forward() { //前進
digitalWrite(M_IN1, HIGH);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, HIGH);
}
void Backward() { //後進
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, HIGH);
digitalWrite(M_IN3, HIGH);
digitalWrite(M_IN4, LOW);
}
void Turnleft() { //左旋回
digitalWrite(M_IN1, HIGH);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, HIGH);
digitalWrite(M_IN4, LOW);
}
void Turnright() { //右旋回
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, HIGH);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, HIGH);
}
void Stop() { //停止
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, LOW);
}
void setBuff(uint8_t Rdata, uint8_t Gdata, uint8_t Bdata) //RGB collar LED
{
DisBuff[0] = 0x05;
DisBuff[1] = 0x05;
for (int i = 0; i < 25; i++)
{
DisBuff[2 + i * 3 + 0] = Rdata;
DisBuff[2 + i * 3 + 1] = Gdata;
DisBuff[2 + i * 3 + 2] = Bdata;
}
}
void loop() {
if (M5Stamp_BT.available()) {
rxValue = M5Stamp_BT.read();
//Serial.print("Received:"); Serial.println(rxValue);
switch (rxValue) {
case 'F': //Forward
Forward();
setBuff(0x40, 0x40, 0x40); //白色
break;
case 'B': //Backward
Backward();
setBuff(0x40, 0x00, 0x00); //赤色
break;
case 'L': //Turnleft
Turnleft();
setBuff(0x00, 0x00, 0x40); //青色
break;
case 'R': //Turnleft
Turnright();
setBuff(0x40, 0x00, 0x40); //紫色
break;
case 'S': //Stop
Stop();
setBuff(0x00, 0x40, 0x00); //緑色
break;
default:
break;
}
M5.dis.displaybuff(DisBuff);
}
delay(20);
M5.update();
}
動画をご覧下さい。
皆さまの参考になれば幸いです。
by Paradise
1)コントロール用スマホアプリについて
今回使ったandroid用無料アプリはBluetooth Serial ControllerでPlayストアにてダウンロードできます。
このシリーズには以前に紹介のお絵描きロボット(OSTR)に使ったWiFi TCP/UDP Controllerと使い方は同じで、
ボタンの配置や機能設定を自由にカスタマイズ出来るのが特徴です。

2)Bluetoothアプリを使ってDCモータを動かすテスト例
ここでは、M5 Stamp PicoにモータードライバーMX1508(一個200円)を介してDCギヤードモータFM90(一個250円)を
アンドロイドスマホのBluetoothアプリを使って動かします。

テスト回路の配線図

3)プログラミング
M5 Stamp Pico Mateには、出荷時にファームウェアUIFLOWがインストールされていて、UIFlowグラフィカルプログラミング
の他、Arduino、MicroPython、ESP32-IDFにてプログラミングが可能です。
ここでは、Arduino IDEを使ってDCモータを動かす簡単な例を記します。
モータを動かす他にPico本体に搭載のRGBカラーLEDの色が操作毎に変化するようにしています。
プログラムをコピーしてArduino IDEに張り付けます。マイコンボードへの書き込み設定は、ボードをESP32 Pico Kit又は
M5 Stack Atomを選びますが、Pico系は書き込み速度が速いとエラーが出る場合が有ります。
その場合はUpload Speedを下げて書き込みます。
#include "M5Atom.h"
//M5Stamp_Pico用が未だリリースされてないので同じPico系のM5Atomライブラリーを用いています。
#include "BluetoothSerial.h"
BluetoothSerial M5Stamp_BT;
int rxValue;
int M_IN1 = 26;
int M_IN2 = 18;
int M_IN3 = 19;
int M_IN4 = 25;
//extern const unsigned char AtomImageData[375 + 2];
uint8_t DisBuff[2 + 5 * 5 * 3]; //RGB collar LED
void setup() {
Serial.begin(115200);
M5.begin(true, false, true);
delay(10);
setBuff(0xff, 0x00, 0x00); //初期赤色
M5.dis.displaybuff(DisBuff);
M5Stamp_BT.begin("M5Stamp_BT"); //名称変更可能
Serial.println("Bluetooth Control");
pinMode(M_IN1, OUTPUT); digitalWrite(M_IN1, LOW);
pinMode(M_IN2, OUTPUT); digitalWrite(M_IN2, LOW);
pinMode(M_IN3, OUTPUT); digitalWrite(M_IN3, LOW);
pinMode(M_IN4, OUTPUT); digitalWrite(M_IN4, LOW);
}
void Forward() { //前進
digitalWrite(M_IN1, HIGH);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, HIGH);
}
void Backward() { //後進
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, HIGH);
digitalWrite(M_IN3, HIGH);
digitalWrite(M_IN4, LOW);
}
void Turnleft() { //左旋回
digitalWrite(M_IN1, HIGH);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, HIGH);
digitalWrite(M_IN4, LOW);
}
void Turnright() { //右旋回
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, HIGH);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, HIGH);
}
void Stop() { //停止
digitalWrite(M_IN1, LOW);
digitalWrite(M_IN2, LOW);
digitalWrite(M_IN3, LOW);
digitalWrite(M_IN4, LOW);
}
void setBuff(uint8_t Rdata, uint8_t Gdata, uint8_t Bdata) //RGB collar LED
{
DisBuff[0] = 0x05;
DisBuff[1] = 0x05;
for (int i = 0; i < 25; i++)
{
DisBuff[2 + i * 3 + 0] = Rdata;
DisBuff[2 + i * 3 + 1] = Gdata;
DisBuff[2 + i * 3 + 2] = Bdata;
}
}
void loop() {
if (M5Stamp_BT.available()) {
rxValue = M5Stamp_BT.read();
//Serial.print("Received:"); Serial.println(rxValue);
switch (rxValue) {
case 'F': //Forward
Forward();
setBuff(0x40, 0x40, 0x40); //白色
break;
case 'B': //Backward
Backward();
setBuff(0x40, 0x00, 0x00); //赤色
break;
case 'L': //Turnleft
Turnleft();
setBuff(0x00, 0x00, 0x40); //青色
break;
case 'R': //Turnleft
Turnright();
setBuff(0x40, 0x00, 0x40); //紫色
break;
case 'S': //Stop
Stop();
setBuff(0x00, 0x40, 0x00); //緑色
break;
default:
break;
}
M5.dis.displaybuff(DisBuff);
}
delay(20);
M5.update();
}
動画をご覧下さい。
皆さまの参考になれば幸いです。
by Paradise
M5 Stamp Pico Mateを使ってみました。 その1
スマホのBlueTooth APPにてDCモータを動かしてみました。
使用したDCモータは外観がSG90型サーボモータと同じですが、中身は単なる減速機付きモータです。
従って動かすにはDCモータ・コントローラーが必要です。(ここでは、MX1508を使用)
先ずは動画をご覧下さい。
USBシリアル変換モジュールについて
M5 Stamp Pico Mateには、ソースファイルの書き込みに必要なUSBシリアル変換部が無いので、市販のUSBシリアル
変換モジュールを接続して使います。
下の参考画像は以前から使っているUSBシリアル変換モジュールに手動書き込み操作用のタクトスイッチを追加して
M5 Stamp PicoのGPIOの配置に合わせ、本体横に差し込む簡単な書き込み用アダプターを作りました。
トランジスター回路を追加して手動操作が不要なアダプターも使っていますが、配線が簡単なSW式をお勧めします。

アダプターの配線図
ユニバーサル基板端材の両端に基板ソケットとプラグを取り付け、書き込みSWとリセットSW用のタクトスイッチ
及びM5 Stamp Picoの電源用3.3Vの3端子レギュレータユニットを配置しました。
書き込み方法は、WriteSWを押しながらResetSWを押すと書き込みモード(Download mode)となります。
書き込みが終わったらResetSWを押すと通常モードに戻ります。
注意:市販のUSBシリアル変換モジュールの多くには、GPIOの入出力電圧レベルを5Vと3.3Vに切り替えるSWが
付いていますが、SWを切り替えると出力端子のVcc電圧も変わるタイプが有ります。しかし、M5を動かすだけの
電流容量が無い機種も有るの注意が必要です。 その場合は、別途M5本体の5VとGND端子間に+5Vを加えます。

次回は、プログラムとスマホのBlueTooth APPの使い方を予定しています。
皆さまの参考になれば幸いです。
by Paradise
使用したDCモータは外観がSG90型サーボモータと同じですが、中身は単なる減速機付きモータです。
従って動かすにはDCモータ・コントローラーが必要です。(ここでは、MX1508を使用)
先ずは動画をご覧下さい。
USBシリアル変換モジュールについて
M5 Stamp Pico Mateには、ソースファイルの書き込みに必要なUSBシリアル変換部が無いので、市販のUSBシリアル
変換モジュールを接続して使います。
下の参考画像は以前から使っているUSBシリアル変換モジュールに手動書き込み操作用のタクトスイッチを追加して
M5 Stamp PicoのGPIOの配置に合わせ、本体横に差し込む簡単な書き込み用アダプターを作りました。
トランジスター回路を追加して手動操作が不要なアダプターも使っていますが、配線が簡単なSW式をお勧めします。

アダプターの配線図
ユニバーサル基板端材の両端に基板ソケットとプラグを取り付け、書き込みSWとリセットSW用のタクトスイッチ
及びM5 Stamp Picoの電源用3.3Vの3端子レギュレータユニットを配置しました。
書き込み方法は、WriteSWを押しながらResetSWを押すと書き込みモード(Download mode)となります。
書き込みが終わったらResetSWを押すと通常モードに戻ります。
注意:市販のUSBシリアル変換モジュールの多くには、GPIOの入出力電圧レベルを5Vと3.3Vに切り替えるSWが
付いていますが、SWを切り替えると出力端子のVcc電圧も変わるタイプが有ります。しかし、M5を動かすだけの
電流容量が無い機種も有るの注意が必要です。 その場合は、別途M5本体の5VとGND端子間に+5Vを加えます。

次回は、プログラムとスマホのBlueTooth APPの使い方を予定しています。
皆さまの参考になれば幸いです。
by Paradise
M5 Stamp Pico Mateが届く!
先週12日に発売の新製品 M5 Stamp Pico Mateが届きました。
M5 Stamp PicoはピンヘッダとGrove互換コネクタ、プラスティックカバーとシールにLレンチが付属したKitが
標準品です。 スイッチサイエンスにて価格は825円で購入しました。
M5Stamp PicoはEspressif ESP32-PICO-D4 Wi-Fiチップを搭載した切手サイズの小さな開発プラットフォームで、
UIFlowを使ったグラフィカルプログラミング、Arduino、MicroPython、ESP32-IDFでの開発が可能です。
機能的には以前から販売しているM5 Stack ATOM LiteからUSBシリアル変換部を省いた程度で、GPIOが12個
利用できますが、ソースの書き込みにはUSBシリアル変換モジュールが別途必要です。
私的には、WiFi又はBluetoothを利用したロボットへの組み込みが主なので、付属品無しの基板単体での販売
(500円程度)を望みます。
詳細はスイッチサイエンスのHPをご覧下さい。

皆さまの参考になれば幸いです。
by Paradise
M5 Stamp PicoはピンヘッダとGrove互換コネクタ、プラスティックカバーとシールにLレンチが付属したKitが
標準品です。 スイッチサイエンスにて価格は825円で購入しました。
M5Stamp PicoはEspressif ESP32-PICO-D4 Wi-Fiチップを搭載した切手サイズの小さな開発プラットフォームで、
UIFlowを使ったグラフィカルプログラミング、Arduino、MicroPython、ESP32-IDFでの開発が可能です。
機能的には以前から販売しているM5 Stack ATOM LiteからUSBシリアル変換部を省いた程度で、GPIOが12個
利用できますが、ソースの書き込みにはUSBシリアル変換モジュールが別途必要です。
私的には、WiFi又はBluetoothを利用したロボットへの組み込みが主なので、付属品無しの基板単体での販売
(500円程度)を望みます。
詳細はスイッチサイエンスのHPをご覧下さい。

皆さまの参考になれば幸いです。
by Paradise
![]() 良かったらclickして下さい! | ![]() 良かったらclickしてください! |