「電子工作」カテゴリーアーカイブ

電子工作の紹介ページです。Arduino や ESP32 、M5Stack などのマイコンや電子部品を使って様々な物を製作しております。

SHISEIGYO-1 Walker Jr. ヒザ爆誕

すき 0
0

前回は1個のリアクションホイールでバランスする小型の2足歩行ロボット”SHISEIGYO-1 Walker Jr. “の誕生を報告いたしました。

SHISEIGYO-1 Walker Jr. ヒザ爆誕

今回は足について更に検討してみましたので報告いたします。

 

リンク機構

足の検討に際しまして、まずリンク機構について学習しました。
CADソフトFusion360で機構を構成し動作を確認します。

上はオーソドックスな平行四辺形型のリンク機構動作を試したものです。
上辺を水平に固定すれば、縦の辺をどの角度にしても下辺は水平を保っています。

図らずも前回作製した SHISEIGYO-1 Walker Jr. の足はこの機構を使用しており、
長辺2つをサーボで動かしている格好となっております。


ロボット犬 Mini Pupper の足もこの機構の変形版であることが分かります。

平行リンク機構

更に辺を追加した平行リンク機構の動作は以下の通りです。

上辺を水平に固定すれば、残りの横の辺は水平を保持します。
更にヒザのような機構がうまれ下部の辺の角度も変えることで人間のような足の動作ができております。

差動駆動型リンク機構

平行リンク機構では下腿の角度を変えるにはヒザより下にモータを配置する必要があります。
以下の差動駆動型リンク機構を用いれば、上部にモータを配置することが可能となります。

差動駆動型リンク機構は上部にモータを2つ配置して、大腿と下腿を制御できる素晴らしい気候であることを学びました。

参考

平行リンク機構による足

ここでは平行リンク機構を用いでSHISEIGYO-1 Walker Jr.の足を再構築しヒザのある歩行を目指します。

 

足上部の大体の辺2本をサーボで動かし、下腿は直角固定で動かしてみます。

平行リンク機構の採用でヒザができました!生命感が少し増したようにも感じます。
前回に比べ足が長くなり高くなったのでフライホイールは2枚重ねにしてトルクを向上しています。

しかし下腿は直角で固定しましたので足を後方に下げた際に逆関節になってしまいます。

より生物らしい歩行を目指すのであれば、差動駆動型リンク機構を導入する必要がありそうです。

引き続き検討を進めます。

 

SHISEIGYO-1 Walker Jr. 爆誕

1
0

これまでリアクションホイールでバランスする2足歩行ロボットを3体ほど製作してきました。

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

この度、4台目の製作を実施いたしましたので報告させていただきます。

 

コンセプト

今回は足を小さく構築して、安定度を向上し素早い歩行を目指します。

 

足用のサーボモータにはFEETECH のミニサーボを採用しました。

製作

コントローラとIMUセンサはこれまでのSHISEIGYO-1 Walkerと同様にESP32とMPU6050を採用します。

ミニサーボFT1117Mを4個使用して足を構築します。

 

倒立動作

3Dプリントした足をサーボアームに固定。片足を2つのサーボを使用して構成します。

取り付けた足での倒立動作を確認いたしました。

歩行検討

サーボ角度をざっくり指定して歩行を試しました。それなりに歩けています。

 

歩行の可能性が確認できましたので、足の角度を正弦波形でスムーズに動かしてみます。
若干バランスが悪いですが立派に2足歩行ができています。

 

更にLiPoバッテリを搭載し、電源コードなしでの動作を実現しました。

SHISEIGYO-1 Walker Jr.

SHISEIGYO-1 Walkerの4号機として ここまで作ってきましたが 仕上がりが思いのほかこじんまりしたので、
セカンドブランド 『SHISEIGYO-1 Walker Jr.』を立ち上げることにしました。

足を小さく作ることができましたので、安定度も高く素早い動作も可能です。

足再検討

歩行動作の更なる安定を目指して、足の形状を変えてみます。

足幅を長くしました。

 

断面はエッジを立てています。

 

これにより、更に安定度が増し歩幅を大きくとることが可能になりました。

 

おわりに

ここでは新しいコンセプトのSHISEIGYO-1 Walkerの製作に取り組み、
SHISEIGYO-1 Walker Jr.がこの度 誕生いたしました。

これまでのSHISEIGYO-1 Walkerとは異なるフォルムと動作を実現でき大変良かったです。

(仕上がりが想像よりも地味であったため 完成時に少し心が折れたのはナイショ)

次の記事

SHISEIGYO-1 Walker Jr. 爆誕

ロボットの目の考察

1
1

ソニーが開発中のエンタテインメントロボットpoiq (ポイック) のまばたきが
まるでメカシャッターが組み込まれているかのように動きが素晴らしいです。

 

個人的にロボットの目は自発光ではない方が良いと考えておりましたが、
poiqの目の表現には大変驚かされました。

黒いスモークのカバーの直下に立体的な構造の目が配置され、内部で目の位置が動いたりまばたきして様々な表情を見せてくれています。

恐らくまばたきはディスプレイの画と調光のみで表現されいるのであろうと思い検証してみました。

 

検証実験

poiqの目の動作の謎に迫るべく、円形ディスプレイに目の画を表示して可変抵抗でまばたき動作やバックライト調光できるようにいたしました。

 

円形ディスプレイはGC9A01を使用しESP32でコントロールしています。

 

目の淵の立体構造は薄い すり鉢状の治具を3Dプリントしました。
円形ディスプレイの淵の白色の反射材としての機能も期待しております。

実験

円形ディスプレイ上にすり鉢立体治具を載せて、さらにハーフミラーフィルムを貼ったプラ板をかぶせて実験してみました。

 

ディスプレイに黒まぶたを表示するだけではバックライトの光が漏れるので、バックライトの調光も重要であることに気づきました。

以下はまばたきとバックライト輝度を連動させたものです。


かなりpoiqのまばたき動作に近づけました。

考察

poiqの目のまばたき表現がディスプレイの画と調光のみで表現されていると仮定し、簡易環境での検証を進めました。

ディスプレイの画とバックライトの調光と立体治具でなかなか良いまばたき表現が実現されましたので、
仮定は大きくハズしてはないと考えます。

ここではハーフミラーフィルムを使用しましたが、poiqでの黒スモークカバーを用いて目を閉じた際に真っ暗になり目の機構自体が見えなくなることも重要な要素であるとわかりました。

すり鉢状の立体機構も観る方向で目の見え方が変わり、表現の幅を広げています。
本実験では立体治具をディスプレイの反射材としても利用しましたが、poiqの場合はLEDを内蔵している可能性もあります。

上記に加えてpoiqでは目の表示がアニメーションで動き、目の機構自体もカバー内部でグングン動くので更に表現の幅が拡がっているのです。

 

ディスプレイ表示

今回の検証をするにあたってディスプレイにまばたき表示をする必要があったのですが、ちょっとてこずったのでここに記録します。

単純に目とまぶたの黒を重ねて表示しようとするとチカチカしてしまいます。

 

目とまぶたを重ねた画を作ってからディスプレイに表示したいのですが、
今まできちんとディスプレイ表示について学習してこなかったので今回(泣く泣く)勉強しました。

スプライト描画

ディスプレイで絵を重ねた際のチカチカ改善にはスプライト描画なるモノが必要であるという知識はありました。

以前 M5Stack Core2での表示を作りこんだ際に画像のチカチカを @TobozoTagadaさんに修正してもらったことがありました。

この修正時にコードを読み込んでスプライト描画を自分でも理解すればよかったのですが、おかげさまで動いたからいいやと放っておいたツケがまわってきた次第です。。

 

ディスプレイ表示には LovyanGFX を用いて以下の記事を参考に勉強しました。

 

スプライト描画によって無事にまばたき表示ができました。


目の画像はjpegをバイナリでコードに取り込んでsprite2に描画して、sprite1に描画した60×60の黒四角を拡大してsprite2に重ねて描画します。
黒四角の上下の位置は可変抵抗の値で可変にしました。
最終的にsprite2をLCDに表示します。

これによって絵を重ねた際のチラつきはなくなります。
保持できるスプライト描画のメモリには限度があるようでまぶたの黒四角サイズを240×240にすると動作しなかったので拡大表示を利用しました。

この辺のメモリサイズのことも勉強必要ですが、今回はこれ以上詰め込むと頭が爆発しますので今度にします。

 

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

0
0

2021年9月21日から本格運用を開始しましたベランダ太陽光発電 気象観測システムが遂に1周年を迎えました。

まだまだ元気に動いておりますよ。

 

構成おさらい

ベランダ太陽光発電 気象観測システムの構成は以下の通り。
マイコン Arduino MKR WiFi 1010に気圧センサ、温湿度センサとLiPoバッテリ、ソーラパネルを接続したのみです。

Arduino MKR WiFi 1010にはパワーマネージメントIC BQ24195Lが搭載されており、LiPoバッテリを接続してマイコンへの給電電圧生成やLiPoバッテリのチャージをコントロールします。

BQ24195Lの入力電源の定格が22Vと高い値であったことに着目し、ソーラパネルによる運用ができるのではと考え本運用が開始されました。

(Arduino MKR WiFi 1010のオフィシャルVin最大定格は6Vです。
実施の際は自己責任で宜しくお願い致します。)

部品

  • Arduino MKR WiFi 1010
  • 温湿度センサ SHT31
  • 大気圧センサーモジュール BMP280
  • LiPoバッテリ 1200mAh
  • 8W ソーラパネル

1年間のデータ

気温

札幌の年間の気温差はかなり広いですね。。

湿度

気圧

バッテリ電圧

LiPoバッテリ電圧も低下し続けることはなく、ソーラパネルより充電され電圧を保てています。

2022年6月末に急激に電圧が下がっていますが、こちらは風でソーラパネルが倒れていることに4日ほど気づかず電圧が低下してしまいました。
パネル設置し直したのちに正常に充電がされています。

ソーラパネル電圧

我が家のベランダは東向きで1日の日照量がそれほど多くないですが、無事に1年間動き続けてくれました。

思い出

1年間いろんなことがございました。

トンガ火山噴火

2022年 1/15~1/17トンガ火山噴火による衝撃波を気圧計で観測しました。
これには大変驚きましたし、思わぬ形で地球が丸であることを実感しました。

雪にも負けず

札幌は雪も多いので大変です。。。
こまめに除雪しますが、白いためか意外と全く発電されなということはなく電圧はそれなりに出るので気づきにくい。

パネルが2個ありますが本システムは右で、
左はコチラ☟

USB充電ステーション ーベランダ太陽光発電所への道8ー

温湿度センサ変更

温湿度センサは何種類か変更しております。
2022年4月にも変更しました。

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

データ取得頻度変更

2022年6月にはデータ取得頻度を10分→3分に変更しました。
バッテリ電圧低下も問題なく運用できております。

台風

台風が接近するとグングン気圧が下がる様子が観測されます (2022年9月)。

おわりに

簡素な構成で開始した本ベランダ太陽光発電 気象観測システムですが、無事に1年間元気に動いてくれました。

まだまだ元気に動いてくれると思うので引き続き気象データを楽しみたいと思います。

DCモータで点倒立 SHISEIGYO-2 DC  ーリアクションホイールへの道52ー

2
0

以前、ミニ四駆のDCモータを用いて1軸の姿勢制御モジュール SHISEIGYO-1 DC を製作いたしました。

SHISEIGYO-1 DC の製作レシピ

 

ここではミニ四駆 DCモータを用いての2軸 姿勢制御モジュールを製作し点倒立を目指しました。

 

構成

構成は単純にSHISEIGYO-1 DC のモータ駆動部を2倍にしただけです。
ホイールが倍になり制御ピンが増えたのでコントローラにはM5Stack Core2 を採用しました。

モータドライバDRV8835はモータを2個駆動できますが駆動能力向上のためにモータ1個に対してドライバ出力をパラにして使用しています。

モータの回転は磁気エンコーダで検出します。

部品

筐体ベース組立て

筐体は3Dプリンタで製作しました。

 

M5Stack core2 はM5Stack Japan Creativity Contest 2021 の景品の金ぴかのモノを使用します。実にゴージャスです。

制御コードは以前ブラシレスモータで製作したSHISEIGYO-2のものをベ-スにDCモータ用にカスタマイズしました。

 

モータとエンコーダを3Dプリントした筐体に固定

 

電気結線

モータドライバやエンコーダをブレッドボードを使用しつつマイコンに接続してピン配を検討します。

 

使用ピン決定後にはんだ付け。
結線にはM5Stack用BUSモジュールを用いました。

 

 

 

倒立動作確認

いよいよ倒立動作を目指します。

倒立時のモータの制御パラメータは以前のSHISEIGYO-2の時と同様にCore2のタッチパネルで調整します。

辺倒立

以下のような三角柱の治具を3Dプリントして、まずは辺倒立動作を確認します。

 

X軸 OK

 

Y軸 OK

点倒立

各軸での辺倒立が確認できましたので、三角柱を点倒立用の棒に変えて倒立動作を目指します。

 

だいぶ いい感じに

 

点倒立達成!!


比較的大きなCore2を載せてDCモータで2軸での点倒立の実現には若干の不安がありましたが無地に達成することができました。

 

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

4
2

前回はSHISEIGYO-1 Walker 参 の歩行動作の実現を確認できました。

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

SHISEIGYO-1 Walker 参はリアクションホイールでバランスをとり、格安シリアルサーボLX-244で構成された足で歩行します。

 

バッテリ内蔵

高トルクのシリアルサーボLX-244で足を構成しましたので、念願だったバッテリ搭載を実施しました。

構成

部品

動作

無事にバッテリ搭載できました。
電源コードなくなって快適♪

歩行

バッテリ内蔵でコードレス化に成功したのでどこまでも歩けるはずですが、
なかなかスピード出せず安定性含めて調整が必要です。

もっとサクサク歩けるようにして一緒に散歩行きたいな。

SHISEIGYO-1 Walker 参 を実現させたい俺5 ー歩行検討3ー

0
2

だいぶ期間があいてしまいましたが、シリアルサーボLX-244で足を構築しリアクションホイールでバランスをとる二足歩行ロボット”SHISEIGYO-1 Walker 参” の歩行検討を実施いたしました。

前回は歩行動作の自動化を目指し歩行動作をプログラミングしましたが上手くいかず、サーボのギアに若干遊びがあるためではないかと結論付けました。

SHISEIGYO-1 Walker 参 を実現させたい俺4 ー歩行検討2ー

 

前回のおさらい

前回は歩行の自動化を試みましたが、機体の振動が大きく実現できませんでした。

 

シリアルサーボLX-244には若干ギアの遊びがあり、これが振動の原因でないかと考えました。

ギアの遊び低減検討

前回の段階でバネでギアの遊びの低減する方法のアドバイスをいただいておりましたので 試してみました。


ちょうどよいバネをダイソーで見つけました。

 

このバネを機体の股関節2か所に3Dプリントした治具を用いて固定しました。

 

この状態で歩行を試してみたのですが大きな改善はなく、そもそも股関節のロール軸サーボを固定する土台の強度が弱いことに気づきました。

股関節強度改善

ロール軸サーボの固定があまいことが判明しましたので、バネは取り外して3Dプリントした板治具で強化しました。

 

前面と裏面に治具でねじ止め固定しました。倒立が非常に安定しました♪


サーボの問題ではなく単純に私の作りこみがあまいだけでした。
サーボを疑ってしまい申し訳ございませんでした (m´・ω・`)m ゴメン…

歩行検討

股関節サーボの固定を強化し倒立が安定したので、早速歩行動作を実施しました。

見事に一歩踏み出せました!!

 

もう一方の足でも踏み出せました!!

おわりに

ついにSHISEIGYO-1 Walker 参 の歩行動作が実現できました!

当初はシリアルサーボLX-244のギアの遊びで歩行動作は無理だと思っていましたが、単純に作りこみがあまいだけでした。。。
当たり前ですがロボットは頑丈に作らないといけませんね。
いずれ金属加工なども検討したいものです。

しかし、ここでは大きな進捗を得ましたので、次に向けて頑張りたいです。

歩行動作の最適化やバッテリ内蔵など検討いたします。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

SHISEIGYO-1 Walker 参 を実現させたい俺4 ー歩行検討2ー

0
0

前回はシリアルサーボLX-244で構築した足の形状を検討し、遠隔で足の位置を手入力で指定しながら足を交差させての一歩を踏み出すことができました。

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

 

ここでは手動による足座標指定ではなくシーケンスをプログラムしての歩行を目指します。

 

 

歩行シーケンス検討

以下は手動で足座標指定して歩行の一歩を踏み出した動画です。

 

ここでは歩行動作のシーケンスを組んで自動で歩くことを目指しました。

足を前方に出すまでは非常にスムーズに実現できました。

しかし。。。

足を前に出した次は出した足を下げる動作に入ります。

 

 

足を閉じる際に機体が震えてリアクションホイールによるバランスの保持が難しい状態になってしまいます。。。

 

要因考察

動作中に機体が震えてバランスを崩す現象はたびたび起こりなかなか歩行動作の実現ができない状況です。

要因としまして
若干サーボのギアに遊びがあり動いてしまうために、特定の姿勢で機体が震えリアクションホイールでのバランス保持が難しいためであることがわかりました。

 

 

シリアルサーボLX-244は低価格ではありますが高トルクで指定角度への移動精度も高く歩行動作実現が 可能であると考えたのですが、大きな壁にぶち当たってしましました。

 

おわりに

ここでは歩行動作の自動化を目指しましたがサーボの機械的精度のために実現には至りませんでした。

サーボギアの遊びによる振動をどうにかしないといけないわけですが、SHISEIGYO-1 Walker 初号機で使用したサーボKRS-3301 ICSではサーボ停止時の振動は無かったので、
このシリーズのサーボで高トルクの製品を採用すれば解決する可能性はあります。
しかし、非常に高額となってしまいます。

 

バネによる補助のアドバイスをいただいたので次回はコチラを検討したいと思います。

 

それではまた。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺5 ー歩行検討3ー

SHISEIGYO-1 Walker 参 を実現させたい俺3 ー歩行検討1ー

0
0

前回はシリアルサーボLX-244で2足を構築し、リアクションホイールによる自立動作を確認しました。

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

ここからはついに歩行に向けて検証進めたいと思います。

 

 

足の形状検討

歩行検討の前に更なる安定性向上を目指し、足先の形状を再検討しました。

 

足自体の高さを低くし幅広くして、傾いた際にフレームが接触しないようにしました。

動作確認

新しい足によって主に高さ低減のために安定性が向上し以下のように、かなり高速に前後の重心移動ができるようになりました!

この時点でシリアルサーボLX-244の精度とトルクには大きな問題はないことを確信いたしました。

 

歩行検討

遂に歩行にむけて検討を開始します!

まずはBLEを介してコントローラのESP32と通信して、地道に足座標を指定して動作確認します。

かなり道のりは険しそうです。。

足形状再検討

歩行検討の際に足を交差させるときに接地してる足を下げるとバランスを崩して前方に転ぶので足先を長くすることにしました。

歩行検討

新しい足で歩行動作を検討しました。

 

足の交差に成功し、一歩踏み出すことができました!!
以下は10倍速動画です。

おわりに

ここでは足の形状の検討を実施して安定性を向上し、足を交差させての一歩を踏み出すことができました。

次は手動によるものではなくシーケンスをプログラムしての歩行を目指します。
なるべく早い周期での歩行を目指したいと考えております。

それではまた。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺4 ー歩行検討2ー

SHISEIGYO-1 Walker 参 を実現させたい俺2 ー倒立実現ー

0
0

前回はシリアルサーボLX-244を用いて片足動作を確認しました。

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

 

精度も良くSHISEIGYO-1 Walker の実現に使えそうと判断しましたので、ここでは更に検証を進めます。

 

 

両足構成

シリアルサーボLX-244を追加購入し、片足4つずつ計8個のサーボを用いて両足動作を確認しました。

前回同様に専用のコントローラを介してArduino UNOで制御しています。

力強く非常にスムーズでいい動きです。

 

リアクションホイールも搭載してみました。
こちらはESP32で直接 シリアルサーボLX-244を制御しています。

サーボのトルクも十分で全く問題ないようです。

 

リアクションホイールによる倒立

足先をかまぼこ状にして、倒立動作を確認します。

 

倒立動作を確認しました。しかし若干安定度に欠けます。

 

フライホイールを2枚から3枚に増やしてみました。

 

重心前後運動

倒立の安定度確認や足の構成の調整チェックを重心の前後移動動作で実施しました。
もろもろ調整しつつ動作確認。

 

足の形状や取り付け位置を調整して安定して重心移動ができるようになりました。

 

おわりに

無事にリアクションホイールによる倒立で重心移動まで確認できました。
シリアルサーボLX-244の動作精度には全く問題がないと現状では考えております。

ここからは歩行に向けて検証進めたいと思います。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺3 ー歩行検討1ー

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

0
0

これまで2機種のリアクションホイールによってバランスする2足歩行ロボットを製作してきました。

初代のSHISEIGYO-1 Walker は歩行には成功しましたが使用したシリアルサーボ(KRS3301)のトルクが十分でなく、重心が低くゆっくりとした動作となりました。

 

二代目のSHISEIGYO-1 Walker 弐 は高トルクのPWMサーボ (RDS3218) を採用し素早い動作が可能となりましたが、サーボの動作角度の精度が低く足を交差させる歩行は断念しました。

 

いつかは高トルクで高精度のサーボモータを入手し完全版のSHISEIGYO-1 Walker 参 を実現したいと考えておりました。

近藤科学のシリアルサーボではKRS2572が高トルクであり、恐らく精度も高いと思われます。

但し、非常に高額です。。。

 

SHISEIGYO-1 Walker 参 の実現はしばらく難しいと考えておりました。
しかし先日 高トルクで低額のシリアルサーボを見つけましたので、ここではそのサーボの精度を検証してみましたので報告いたします。

 

 

シリアルサーボ LX-224

以下のシリアルサーボ LX-244を購入しました。トルクも十分で価格もPWMサーボと変わらないです。

サイズはPWMサーボ RDS3218 と同じです。

 

専用のコントローラも購入しました。

 

動作はコントローラと専用ソフトを使用して割と簡単にできました。サーボIDを割り当てたり、動作のシーケンスも組むことができました。

 

精度比較

LX-244の動作精度を PWMサーボ RDS3218 と比較してみました。

シリアルサーボ LX-244のほうは明らかに制動がかかっており精度もバッチリのようです。
上の実験ではLX-244の動作速度を最速で実施しているので若干オーバーシュート気味です。これは動作速度の調整で改善できそうです。

動作精度もさることながら各種パラメータを取得できることもシリアルサーボの魅力ですね。

 

片足構築

LX-244を3個使用して足を構築しました。
制御は専用コントローラにArduino UNOから信号を送って実施しました。

マイコンからの制御は以下を参考にしました。

 

屈伸動作

力強く割と滑らかな動作が実現されました。

 

コレはSHISEIGYO-1 Walker 参 の実現も夢ではないかもしれません。
引き続き検証進めます。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺3 ー歩行検討1ー

クローズドループ正弦波駆動 その2 ーブラシレスモータ駆動への道6ー

0
0

前回は磁気エンコーダを用いたクローズドループ正弦波駆動で位置指定による回転追従動作を確認いたしました。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

 

ここではクローズドループ正弦波駆動による回転速度を指定した回転動作を目指します。

 

 

クローズドループ正弦波による回転

以下が理解しやすい図でした。

 

正弦波の振幅を上げて回転トルクをあげて回転位置をフィードバックして正弦波の周期を制御します。

矩形波駆動の時にも参考した書籍も上図と同じフローでの正弦波駆動が紹介されていました。

 

コレを参考に磁気エンコーダでロータ位置を検知しつつ正弦波の振幅を調整してみたのですがうまく回転できませんでした。

エンコーダから回転スピード算出して正弦波周期を変えたり、エンコーダ値を正弦波の位相に対応させてフィードバックなどいろいろ試しましたがダメでした。

 

勉強

どうしてもうまくできないのでリフレッシュと理解を深めるために書籍を購入しました。

こちらの書籍の正弦波駆動も正弦波の振幅調整で回転速度制御が紹介されていましたが、正弦波の印可が半波のみで実施されていました。

全波 vs 半波

正弦波の印可方法は全波が良いのか半波が良いのか比較してみました。
全波と半波の正弦波をブラシレスモータの3相に120°位相をずらして印可します。

 

全波印可の方が明らかにスムーズにまわっています。半波は矩形波駆動とあまり変わっていない印象を受けました。

ここでは全波印可を採用します。

 

検討

書籍の方法がうまくいかないため別手法を考えます。
書籍によって使用しているモータやエンコーダの仕様が異なるので仕方のないことかもしれませんが
今さらモータ学習用キットを購入するのもシャクなので、独自に方法を探ります。

前回の位置指定を応用して、位置の指定を周期的に可変させて回転動作を保つ方法を検討しました。

 

可変抵抗で回転速度指定し、コントローラで回転位置をループで制御して回転させています。

正弦波の振幅は所望回転位置とエンコードの値の差でのP制御で自動で決定します。
高速になると差が大きくなるので必然的に振幅が上昇します。

起動時にオープンループで回転させてエンコーダのオフセット検出して、後のクローズドループ制御に利用しています。

上の動画ではエンコーダ1周の値を7分割して正弦波を生成している(使用しているブラシレスモータの極数が14 [7ペア])ため、負荷かかって周期がずれてもそのまま回転してエンコーダとの差で振幅上昇して過電流が流れる問題がありました。こちらは改善が必要です。

 

クローズドループ正弦波駆動による回転

先ほどの機構を改善してさらにBlynkアプリでBLEで回転を制御できるようにしました。

構成

構成は前回と同様です。

 

Arduinoコード

 

最新版のBlynkではBLEが使用できないので、以前のバージョンのBlynkレガシーを使用してBLE通信しています。

疑似正弦波を生成するためにドライバ駆動ピン(IO25~27)はledcWriteを用いて20kHz PWM出力します。分解能は10ビット(0~1023) (L. 72-80)。

モータの回転位置rotData をデュアルコアのcore0で検出しています。
1周の分解能を14bitから9bit (512)にしています (L. 46)。

可変抵抗でモータの位置period を0~511で指定します  (L. 67)。

起動時に1周期分オープンループで回転させて位相のオフセットを導出します (L. 97-120)。
正弦波1周期はエンコーダの1周の分解能 512/7≒73としています(使用しているブラシレスモータのロータの極数は14 [7ペア])。

位相のオフセット導出後はクローズドループで回転し続けます (L. 122-158)。
オフセットを加味した指定の回転位置 iとエンコーダによる実際の位置の差diff を導出し (L. 123-126)、正弦波の振幅を係数Kをかけて算出します(L. 128, 129)。

エンコーダの値は7分割して使用しています(512/7≒73)。
これによって正弦波の周期からモータ回転がずれても過電流が流れることを回避しています。

U相はオフセットを加味した指定の回転位置 iとして、
V相とW相はそれぞれ120°づつ位相をずらします (L. 131-137)。

位相と振幅に従って正弦波を生成します (L. 140-146)。

ループのディレイ時間periodによって回転速度を制御します (L. 148)。

BottunStateによって正転/逆転を判断し。指定する回転位置 iのインクリメント/デクリメントを判断します (L. 150-157)。

Blynkアプリで、モータ回転方向BottunStateと回転速度period、正弦波振幅のPs制御係数KをBLEで受信します (L. 51-62) 。

 

おわりに

ついに若干変則的ではありますがクローズドループ正弦波駆動による回転制御を実現できました。

いろいろやってみた結論としては回転位置の検出及びフィードバックにはロータの磁極自体をセンスするホール素子の使用がベストと気づかされた。

しかしロータの磁極数や位置はモータによって異なるので、磁気エンコーダと後付け磁気センサによる方法は汎用性は高くなるとも言えます。

正弦波駆動によって低速回転をマスターできたので今後応用を考えたいと思います。

クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー

0
0

 

前回はオープンループでのブラシレスモータ正弦波駆動を確認しました。
矩形波駆動では出来なかった低速回転が実現され大変満足した次第です。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

 

ここからはセンサを用いてモータの回転位置をフィードバックしたクローズドループ正弦波駆動に挑戦したいと考えております。

 

 

オープンループ正弦波駆動 BLE制御

クローズドループにとりかかる前に復習をかねて、BLEで回転速度や正転・逆転切り替えをできるようにしました。

正弦波駆動によってセンサレス矩形波駆動では実現できなかった低速回転が実現されています。

最新版のBlynkではBLEが使用できないので、以前のバージョンのBlynkレガシーを使用してBLE通信しています。

 

磁気エンコーダ

クローズドループに向けてモータの回転位置を把握するために磁気エンコーダ AS5048 を購入したしました。

 

AS5048はインターフェースがSPIで付属の磁石の回転を1周 14 bit (16384)でエンコードします。

 

付属の磁石は面の上下が磁極になっていました。
以下では磁石の磁場をマグネットビューアシートでみています。

 

 

専用の磁気エンコーダケースを設計し3Dプリントしてロータに磁石をつけてブラシレスモータと一体化しました。

 

ブラシレスモータは以下を使用。極数は14。

エンコーダ動作

エンコーダの電源とSPI配線をESP32に接続して、動作確認しました。

以下は手回し。

 

AS5048のライブラリとして以下を使用しました。
 https://github.com/eborghi10/AS5048A

 

オープンループで回して、エンコーダ値を見てみました。

エンコーダ値が1巡 (モータが1回転) する間にブラシレスモータのu, v, w相にはそれぞれ7周期の正弦波が印可されています。

これはロータの磁石が14個 (7ペア)のモータを使用したためです。

 

クローズドループ検討

矩形波駆動の時のように速度を指定して回転させる制御を実施したかったのですが現状うまくいっておらず勉強中のため、ここではモータの回転位置を可変抵抗で指定してモータを動かしてみました。

構成

前回のものに磁気エンコーダ  AS5048 を追加した構成となります。

 

Arduinoコード

 

疑似正弦波を生成するためにドライバ駆動ピン(IO25~27)はledcWriteを用いて20kHz PWM出力します。分解能は10ビット(0~1023) (L. 44-52)。

モータの回転位置rotData をデュアルコアのcore0で検出しています。
1周の分解能を14bitから9bit (512)にしています (L. 32)。

可変抵抗でモータの位置period を0~511で指定します  (L. 67)。

指定した位置とエンコーダによる実際の位置の差diff を導出し (L. 71)、その正負によって回転させるための正弦波のU相の位相のインクリメント・デクリメントを決定します(L. 73-77)。
V相とW相はそれぞれ120°づつ位相をずらします (L. 79, 80)。

正弦波の振幅は回転位置の差diffに比例させて定めます(P制御) (L. 86, 87)。
比例係数Kはもう一方の可変抵抗で調整できるようにしました (L. 68)。

上位の位相と振幅に従って正弦波を生成します (L. 89-95)。
正弦波の周期はモータが1周(分解能512)する間に7周期となるようにしています。

動作

動作は以下の通り、可変抵抗で指定した位置にモータが移動します。
手でずらしても指定の位置に戻ります。

比例係数Kは2.5ほどで安定動作しました。

参考

 

おわりに

ここでは磁気エンコーダを用いたクローズドループ正弦波駆動で位置指定による回転追従動作を確認いたしました。

回転速度を指定した回転動作は現在猛勉強中ですので、後日できましたら報告したいと考えております。

次の記事

クローズドループ正弦波駆動 その2 ーブラシレスモータ駆動への道6ー

オープンループ正弦波駆動 ーブラシレスモータ駆動への道4ー

0
0

これまでは矩形波駆動によるブラシレスモータ制御を勉強し
前回は回転速度指定によるセンサレス クローズドループ矩形波制御を実現しました。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

 

ここからはブラシレスモータの正弦波駆動について学びます。

 

 

疑似正弦波

正弦波駆動の下準備としまして、まずはESP32で正弦波出力の生成を確認しました。

正弦波を直接出力できませんので、PWMのデューティを時間で変化させて疑似的に正弦波を実現させます。

以下がESP32による疑似正弦波出力の様子です。

可変抵抗を2個接続して正弦波の周期と振幅も変えれるようにしました。

 

Arduinoコードのコア部は以下のような感じ

2個の可変抵抗で正弦波の周期 period と振幅 ampを指定して、正弦波の周期を48分割してPWMのデューティを計算してledcWriteで出力しています。

コレを位相を120°ずらして3出力にしてドライバ駆動すればモータを回せるはずです。

 

ドライバ基板作製

これまでの正弦波駆動ではパワトラ駆動にはハイサイドとローサイドの入力を指定できるプリドライバIC IR2101を採用していましたが、正弦波駆動のために1入力でハイサイドとローサイドの信号を内部でデッドタイム込みで生成してくれる IR2302 を採用いたしました。

ドライバのNMOSには 2SK4017 を用いました。

1chの構成は以下の通りです。1入力でドライバ駆動できます。

 

まずは1ch分を作製しました。

 

コレに先ほどのESP32による疑似正弦波を入力します。

 

問題なくドライバ出力が確認できましたので残りの2chも作製し、ドライバ完成です。

 

ESP32で位相を120°ずらした3信号を入力して出力を観測しました。出力は抵抗で1/3に分圧して観測しています。
問題なく疑似正弦波が出力していますが、使用したADALM2000のオシロではサンプリングが間に合わず平滑化され正弦波に観えています。

 

オープンループ正弦波駆動

ドライバもできたのでいよいよ正弦波駆動を実施します。

構成

構成は以下の通りです。

 

Arduinoコード

 

疑似正弦波を生成するためにドライバ駆動ピン(IO25~27)はledcWriteを用いて20kHz PWM出力します。分解能は10ビット(0~1023) (L. 20-28)。

可変抵抗で正弦波の周期と振幅を設定します (L. 32, 33)。

疑似正弦波を48分割して120°位相をずらして出力します (L. 37-46)。

動作

まずは振幅Maxで動作確認しました。
無事にモータの回転を確認できました。低速回転もできていますが遅すぎると停止します。

 

正弦波の振幅を小さく調整するとかなり低速でも回転できました。

 

おわりに

オープンループでのブラシレスモータ正弦波駆動を確認することができました。
矩形波駆動では出来なかった低速回転が実現され大変満足です。

以下では可変抵抗で回転位置を指定して動作させました。
センサレスなので絶対位置の精度は高くないはずですが、それなりに動いたので驚きました。

 

次回はセンサでフィードバックをかけてクローズドループでの正弦波駆動を楽しみたいと考えています。

今回は高速回転ができませんでしたが、センサ導入でできるようになるのでしょうか?
今のところ なんとなく正弦波駆動は高速回転に向かないような気がしています。
コントローラの速度にも依存するかもしれませんね。

引き続き勉強進めます。

次の記事

クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー

センサレス クローズドループ矩形波制御 その2 ーブラシレスモータ駆動への道3ー

0
0

前回 ESP32をコントローラとしてセンサレス クローズドループ矩形波制御を実現しました。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

ここでは更に検討進めましたので報告いたします。

 

 

オンデューティ指定

前回はモータの回転を駆動するドライバのハイサイドトランジスタのPWMオンデューティを指定して制御しました。

この方法では以下のようにモータの負荷によって回転速度は変わってしまいます。

 

そこでここではモータ回転速度を直接指定してのモータ制御を目指します。

またせっかくESP32を使用しているのでBLEで回転速度や正転・逆転切り替えができるようにしました。

 

最新版のBlynkではBLEが使用できないので、以前のバージョンのBlynkレガシーを使用してBLE通信しています。

 

回転速度指定

回転速度を指定して実際の回転速度と比較してドライバのオンデューティを制御します。

回転速度には以下の誘起電圧から検知される各モータ位置ステートの平均時間を用いました。

 

回転速度からオンデューティの算出には以下の書籍の5.5.11 回転数制御の節のPI制御の原理を参考にいたしました。

 

以下でオンデューティ$D_{ON}$を定め、係数$K_P, K_I$を動作させながら調整しました。

$$D_{ON} = K_P × (実測回転速度 – 指定回転速度) + K_I × \sum{(実測回転速度 – 指定回転速度) }$$

 

動作

BLEで回転速度を指定して、モータを回転させています。
負荷を与えてもドライバのオンデューティを変えることで回転速度を保っています。

 

Arduinoコード

 

前回のオンデューティ指定版と異なる点はBlynkレガシーによるBLE通信の導入と
回転速度からオンデューティを算出する機能です。

L. 149~155で指定回転速度 rotSpeedと実測回転速度 rotTimeAve を比較してPI制御でオンデューティvolPWM を算出しています。

 

おわりに

ここでは回転速度指定によるセンサレス クローズドループ矩形波制御が実現できました。

回転速度の正確性や応答性は別途評価用に外部エンコーダを導入して確認したいと考えております。

書籍で原理を学習し、実機を組んで原理に基づいてプログラミングすることでブラシレスモータについての理解がかなり深まりました。

今後は別の制御方法についても検証し理解をさらに深めたいと思います。

次の記事

クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー

センサレス クローズドループ矩形波制御 その1 ーブラシレスモータ駆動への道2ー

0
0

前回はブラシレスモータをいじくりつつ、駆動ドライバ基板を製作して矩形波駆動でいわゆるオープンループ制御でのモータ回転を楽しみました。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

 

ここではモータの回転をセンサレスでフィードバックするクローズドループ矩形波制御での駆動を目指します。

 

 

参考書籍

ここからは以下の電子書籍を参考に進めます。Kindle Unlimitedメンバーでしたら無料で読むことができます。

ブラシレスレスモータの制御方法が各種紹介されPICマイコンでの実例が記載されております。
原理説明も明確になされているのでかなり理解が深まりました。

書籍のChapter8 センサレス 制御(120 °通電方式) を参考に回転制御の実現を目指します。

 

モータ誘起電圧

ここではエンコーダなどの外部センサを用いずに回転位置を把握しながらの矩形波回転制御を目指します。

モータは前回に引き続き以下のセンサのないものを使用します。

 

センサレスの場合はブラシレスモータが回転したときに発生する端子の誘起電圧から回転位置を読み取る必要があります。

参考書籍のブラシレスモータ誘起電圧観測回路を製作し、実際の回転時の発生する電圧を観てみます。
以下が製作した誘起電圧観測用フィルタ回路です。

$v_u, v_v, v_w$でモータ端子の誘起電圧を観測します。

実動作時にはドライバによるPWMオン電圧がモータ端子には印可されますので、誘起電圧はフィルタを介して観測します。
参考書籍にならってフィルタのカットオフ周波数は1.78kHzとしました。
モータ回転制御時のPWM周波数は20kHzとしますので十分スイッチングの影響はカットされるはずです。

$v_n$は各端子間を抵抗で分圧してモータコイルの中間の電圧(中性点電圧)を観測します。

 

モータを電動ドライバで回してフィルタ回路を介して誘起電圧を観測してみました。

 
以下が観測波形。それぞれ120°位相が異なる電圧が観られました。

 

回転位置検出

次にモータに前回製作した駆動ドライバを接続した状態(電源はOFF)で電動ドライバでモータを回して、
誘起電圧$v_u$と中性点電圧$v_n$を観ました。

誘起電圧$v_u$と中性点電圧$v_n$と一致する点がコイルが永久磁石による磁束と直行せずに電磁誘導が起きない位置にあることを示しており、更にモータ端子の誘起電圧が$v_n$より大きいか小さいかでモータの位置を分類することができます。

 

フィルタ回路の出力をESP32のアナログ入力ピンに接続して、各誘起電圧と中性点電圧$v_n$を比較することでモータの回転位置を1周6分割で把握することができました。

 

各誘起電圧が中性点電圧$v_n$より大きければ1を出力し、各状態を分類することで6つの位置ステートに分けれました。

中性点との比較にはヒステリシスのあるコンパレータなどは用いず、ESP32アナログピンによるanalogReadで実施しました。
若干ノイズ的な比較出力もありますが$v_u > v_n、v_v < v_n、v_w > v_n$ならモータ位置①などと明確な場合分けによって6分割できました。
ステートの時間を観測すれば回転速度も把握できることになります。

以上、誘起電圧と中性点電圧比較によってモータの位置と回転速度を把握できるようになりました!

センサレス クローズドループ矩形波制御

いよいよモータ位置と回転速度に基づいて制御を実施します。

構成

ここでの駆動システムの構成は以下の通りです。

スイッチでモータの正転・逆転を変えれるようにしました。
またここではモータの回転速度ではなくドライバのハイサイドON時の20kHz PWMデューティを可変抵抗で指定するようにいたしました。
 

動作

制御の詳細説明の前に動作をご覧ください。

無事に回転制御できました!

可変抵抗による速度制御やスイッチによる正転・逆転切り替えも動作しました。

 

以下は動作時の誘起電圧$v_u$と中性点電圧$v_n$です。
スイッチングノイズの影響を受けておりますが、電動ドライバでモータを動かしたときと同様の波形で制御出来ております。

Arduinoコード

ESP32用に制作したプログラムを元に制御方法説明します。

 

モータ回転時の誘起電圧を検出できないと回転位置の把握ができないため、
コントローラ起動時にモータを少し回して誘起電圧を発生させています (L. 185-201)。

デュアルコアのcore0でモータの位置と速度を算出しています (L. 43-141)。
モータの位置ステートの切り替わり時にIO14をHIGHに立ち上げてIO12でそれを受けて割り込みでドライバを駆動するようにいたしました (L. 159)。

駆動するためのドライバのトランジスタON/OFFステートはスイッチ(IO39)のH/Lで正転用・逆転用に切り替えています (L. 80-116)。

回転速度rotTimeAve は各位置ステートの時間の平均で割り出しています (L. 128-136)。

ステートの切り替えの割り込みでドライバ駆動関数rot() (L. 210-263)が呼ばれます。
rotTimeAveの半分待った後 (L. 216) に位置ステートと正転/逆転に基づいたトランジスタON/OFF設定が実行されます。
位置ステートの時間の真ん中でモータが駆動して次の位置ステートに移行し回転が継続されます。

トランジスタのハイサイドONはledcWriteを用いて20kHz PWMで印可します。分解能は10ビット(0~1023)でオンデューティ設定します (L. 161-171)。
オンデューティは可変抵抗(IO13)で設定するようにしました (L. 224)。

 

おわりに

センサレス クローズドループ矩形波制御が実現できました。
モータの誘導起電力で回転位置や速度を判定しているため、低速では起電力が小さくモータを駆動できませんでした。

 

またここではモータを駆動するドライバのハイサイドトランジスタのPWMオンデューティを指定して制御しましたが、この場合モータの負荷によって速度は変わってしまいます。

次回は回転速度を指定するようにして、実回転速度からPWMオンデューティをコントロールするようにしたいと思います。

次の記事

センサレス クローズドループ矩形波制御 その2 ーブラシレスモータ駆動への道3ー

Arduino MKR WiFi 1010 ベランダ太陽光発電 温湿度センシング検討

0
0

2021/9/22からベランダに設置している、太陽光発電 気象観測システムが止まることなく無事に北海道の厳しい冬を越すことができたことを前回報告させていただきました。

RaspberryPi サーバ & WordPress ブログ を XSERVER に サーバ移転

 

長い冬が終わり気温が上がってきまして、ずーっと保留にしてきた比較的気温が高い時に発生する温度と湿度の値の跳ね上がり現象が現れ始めました。

 

腰を据えてこの問題と向き合いましたので報告いたします。

 

温湿度センサ交換

これまで温湿度センサはDHT11からDHT22にかえて運用してきましたが、いずれも値の跳ね上がり現象が発生しています。

Arduino MKR WiFi 1010 をソーラで楽しむ 3 -温湿度センサ変更-

新温湿度センサ SHT31

凝りもせず再び温湿度センサを変えてみました。

https://github.com/adafruit/Adafruit_SHT31

 

 

しかし、結果は変わらず日中に値が上昇する結果となりました。。。

ということは日中お弁当箱の中は確実にこの温度になっているということです。

 

お弁当箱 加工

お弁当箱を百葉箱のように通気性がよく直接日光が当たらないように工夫しました。
側面に穴を複数開けて、フタにプラ板で天井を設けました。

あっさり解決しました。。w

屋根が効いたようです。早く気づけよという話ですね。。。

温湿度センサのDHT11とDH22  疑ってごめんなさい 😥

 

引き続き運用続けます。

追記

2022/6/1 データ取得頻度変更

 

データ取得頻度を10分から3分に変更しました。
消費電力は増えますが問題なく太陽光発電で運用できています。

次の記事

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

ブラシレスモータ駆動への道 爆誕

0
0

以前、デジタルおかもちをブラシレスモータを使用して製作しました。

デジタルおかもち

 

デジタルおかもちは要するに1軸のジンバルのようなもので2軸にも挑戦したいと思ったのですが、使用しているモータが重たいのでさすがに2個搭載は厳しいものがございます。

ちなみに使用したモータは自作の姿勢制御モジュールに使用しているものです。
ドライバとコントローラ内蔵で制御はデジタル信号だけで実施できるので非常に便利なモータです。

スマート靴占い 『 IしたoTんきになぁ〜れ 』

 

将来的に2軸のジンバルを自作してみたいので小型のブラシレスモータを自由自在に制御してみたいと強く思いましたので、ここに”ブラシレスモータ駆動への道”の開設を宣言します。

 

 

ブラシレスモータいじり

まずは小型のブラシレスモータと各種コントローラを購入して、自身とブラシレスモータとの距離を縮めることにいたしました。

センサのない3端子のみの小型で軽いブラシレスモータを2種類 購入しました。

コントローラ①

ESCを購入してブラシレスモータを回転させてみました。

 

PWM入力でモータ速度を制御できます。
ツマミ付きのPWM出力するコントローラも付属され、
50Hz 5%~10%のPWMを出力します。

無事にブラシレスモータを回転させることができましたがESCが何をしているか分からず(分解すればいいのだが。。)、回転方向も変えれず一方方向のみです。

コントローラ②

回転方向を変えれるコントローラも購入し試してみました。

 

問題なく動作しましたが回転方向の切り替え応答が遅かったです。

 
参考: Brushless Motor Controller Board

 

試しにこのコントローラを用いてIMUセンサ MPU6050で回転を制御する1軸ジンバルにしてみましたが
応答が遅くてダメダメでした。。

手動

乾電池を使用して手で印可方向を変えながらモータを回してみました。

 

手で印可方向を変えるのは大変なので、3Dプリンタで治具を製作しました。
単4電池がすっぽり入る円形の容器を出力し、フチに銅箔テープで3分割した電極を設けました。
電極とブラシレスモータの端子を3対接続して、中で電池を回せば先ほどの手動での作業が容易にできます。

 

電池の回転方向や速度に応じてブラシレスモータも回転しています。
要するにこの電圧印可方法をコントローラで自動化してあげればよいということが実感されました。

 

この道の目標

ブラシレスモータの回し方を実感としても理解できましたので、コントローラの自作を目指します。
現状以下のように段階を経て理解を深め良いコントローラの完成を目指します。

  • モータ駆動ドライバの実現
  • 簡単な矩形波駆動でモータの回転を確認する
  • センサレスでの回転速度制御実現
  • 正弦波駆動やベクトル制御など他の制御も学習する

 

駆動ドライバの製作

ブラシレスモータのコントローラ自作に先立ってまずはモータを駆動するドライバを製作します。

市販コントローラの検証

以下のコントローラのドライバ部を参考に検証します。

 

ドライバ のローサイド、ハイサイドは意外にも共にNch MOSFET (NCE6990) が使用されていました。

 

前段にはIR2101というICが載ってブートストラップでハイサイドトランジスタを 駆動していました。

ドライバ製作

検証したコントローラの部品をとって駆動基板を製作します。

1ch

まずは1ch分のMOSFETとIR2101をとって改めて基板に実装してみました。

ゲート抵抗 (100 ohm)やブートストラップのダイオードとコンデンサもそのまま移植しました。

 

駆動ICのIR2101の入力を制御して出力波形を観測しました。
ドライバの電源は12V、入力にはATOM LiteのIO出力(0-3.3V)を使用しました。

 

問題なく動作しました。
両サイドのトランジスタがONしないように1usecのデッドタイムを設けています。

 

3ch

同様に残りの2chも部品をとって3chの駆動基板を完成させました。

3ch分のハイサイド、ローサイド駆動用入力ピン6個と3個の出力ピンと電源(12V)・GNDピンがございます。

 

矩形波駆動

作製したドライバ基板を用いてブラシレスモータを回してみます。

駆動方法は矩形波駆動を用います。ちょうど先の動画の乾電池をくるくる回した方法を自動化するイメージです。

 

矩形波駆動は以下のように6個の印可ステートを順に変えてモータを回します。
このステートの変え方を逆にすればモータは逆転します。

参考: 矩形波駆動とは

動作

ATOM Liteの6個のIOをもちいて3chのハイサイド、ローサイドのトランジスタを上記の矩形波駆動のステートでON/OFFさせました。
ATOM Liteのボタンを押すと逆転します。

各ステートの時間は10usecで駆動しました。
かなり電流が流れるので回転はしていますが振動して元気ですww

 

PWM駆動

ハイサイドのオンをフルオンではなくPWM デューティ 12.5% (20kHz)にして電流低減を図りました。

電源電流も減って回転も落ち着きました。

自動での回転速度追従や負荷に応じたPWM制御などできるようになりたいです。

Arduinoコード

 

おわりに

ブラシレスモータをいじくりつつ、駆動ドライバ基板を製作して矩形波駆動でモータ回転を楽しみました。

徐々に学習を進めて この道の目標を達成しつつ ブラシレスモータのコントローラを完成させたいと考えています。

ここではいわゆるオープンループ制御を楽しみましたので
次回はモータの回転をセンサレスでフィードバックしての回転速度制御を目指します。

次の記事

クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー

ネーデルガンダム大地に立つ!!

0
0

以前にリアクションホイールでバランスする二足歩行ロボットを製作しました。

シリアルサーボで足踏み -シリアルサーボと距離を詰めたい俺4-

 

その際にネーデルガンダムのようだという感想をチラホラいただきました。

 

指摘を受けるまでは全く知らないガンダムでしたが せっかくの縁ですし、
先日ガンプラ製作の基本を学びましたので ネーデルガンダムを作ってみようと思い立ちました。

ガンプラへの道 爆誕

 

 

ネーデルガンダム

ネーデルガンダムとは機動武闘伝Gガンダムに登場するオランダの風車のような形状のガンダムです。

 

嘘みたいなガンダムですが、ちゃんとした公式キャラクターのようです。ウケる

 

確かにボディ前面の風車がリアクションホイールのようにみえますねww

 

SHISEIGYO-1 DC

リアクションホイールで倒立するネーデルガンダムを製作します。

機構にはSHISEIGYO-1 DCを使用することにしました。

 

ミニ四駆で使用するダブルシャフトモータを使用していますので、軽くて模型に適応しやすいと考えました。

 

製作

ネーデルガンダムは模型キット化させていないようで(されていても買わないが。。。)、自作する必要があります。

SHISEIGYO-1 DC を機構として採用しホイール位置をそれほど高くできないのでSDっぽいフォルムにしようと考えました。

3Dプリンタ、プラ板、ガンプラの混交で製作しましたので報告いたします。

頭部

特徴的な形状の頭部はCADで設計し3Dプリンタで出力しました。
頭部外装、マスク、あごをデザインしてプリントしました。

 

ヤスリで3Dプリントの積層痕を削って整形し、マスクとあごは油性ペンで塗装しました。
目はプラモデルのランナーを削ってマスクに接着しました。
アンテナはプラ板を切って製作しました。

3DプリントPLAフィラメントによる出力品は非常に硬くてヤスリがけが大変でした。。

ちなみに目のグリーンは長男くんのエントリーグレードのνガンダムの目のゲートのタグを使用しました。