Open15
プログラミング教材
microbitでプログラミング教材を作る
- 知り合いのプログラミング教室で使用できるプログラミング教材を作る
- microbitを使用する
- 動くものにする(DCモータ、
- 教材として使える安定した動作を提供する
やること
- いったん試作をつくって動作を確認する
- microbitから下記を制御する
- DCモータ x2を制御
- サーボモータ x2を制御
試作基板1 - rev03の動作
見た目
前面 | 裏面 |
---|---|
主要部品
品名 | 役割 | Note |
---|---|---|
Microbit v2 | モータ制御、通信機能 | エッジコネクタ経由 2.5V入力 (動作 1.7-3.6V) |
SG90 x2 | サーボモータ | 5V入力 4.8 - 6Vで動作 |
DRV8835 | モータドライバ | DCモータ2系統制御 |
DCモーター FA-130RA-2270 x2 | DCモータ | 2.5V入力 1.5-3Vで動作 |
AMS1117-2.5V | 3端子レギュレータ 2.5V | 5V入力し、2.5Vを出力 |
モバイルバッテリ | 大元の電源 | 5V供給 |
問題点
- モバイルバッテリーから、Microbit,SG90,DCモータの電源を供給する
- DCモータの回転するタイミングで、Microbitにリセットがかかえる場合がある
- 下記の動画で、LEDが消灯しているのはMicrobitにリセットがかかっている
- 100%リセットがかかるわけではないが、LEDの明るさも揺らぐ場合がある
- この時の接続は下記の状態
調査1-Microbitの電源供給を別電源にする
- Microbitへの電源供給を電池ボックスにする
- 3Vで供給
- これを実施すると、Microbitへのリセットがかからなくなった
- 電源ラインの問題であると確信
調査2-電源ラインにコンデンサを追加
- 3端子レギュレータのVin, Voutにコンデンサ追加
- Vin側 : セラミックコンデンサ 10uF
- Vout側 : セラミックコンデンサ 22uF
- これを実施すると問題点の状態より頻度は下がる
- ただし、解決はできていない
できることは???
- 調査する内容
- やれることは
参考文献
- microbitの外部電源
試作基板1 - rev03の動作 - 調査
アドバイス - ノイズによるmicrobitのリセット
- コメント
- 基本的にはモーター等からのノイズでリセットがかかるのでは?
- CPUのリセット端子と、CPUのGND間に最短で小容量(0.1μ程度)のコンデンサーを接続して見る
- 効果が有るようであれば、大電流部分と制御部のグランド周りの接続を考える
- やること
- 小容量のコンデンサを購入する
- microbitのリセット端子を調べる(引き出せるかどうか)
- リセットピンとGNDにコンデンサを接続する
- できるようであれば、オシロで波形を見る
- 追記
- 現象から見ると、リセット端子へのコンデンサー追加は効果無さそう
- この場合は、通常使用するのは、積層セラミックコンデンサーで、温度特性は気にしなくて大丈夫
- 単なるノイズとり
- ↑のことから、優先度を下げる
- 現象から見ると、リセット端子へのコンデンサー追加は効果無さそう
知りたいこと
コンデンサの選定について
- 供給している電圧がふらついているのではないかと考えている
- ↑の記事の調査2にて、コンデンサを追加することで若干改善しているように見える
- また、モータの起動のたびに、microbitのLEDの明るさ一瞬暗くなったり明るくなる
- 聞きたいこと
- これを調査するには、どのようなアプローチがあるのか
- オシロで波形を見て、揺れるかどうかを見る
- ほかにできることはあるのか
- これが原因の場合、コンデンサはどのように選べばいいのか
- 容量はどれくらい
- セラミックコンデンサ?電解コンデンサ?
- 波形をみれば、何がききそうかはわかるものなのか
- これを調査するには、どのようなアプローチがあるのか
- ダイオードは必要でしょうか
アドバイス - 電圧低下の対策
-
コメント
- cpuとモーターの電源が同じレギュレータ出力に接続していてモーターが回り始めるとレギュレータのロードレギュレーション又は電流容量の限界を超えて電圧が低下している様
- ledの輝度が変化している事から
- 対策としては、
- レギュレータの電流容量の大きいのに変えるか、
- レギュレータ出力にモーターのラッシュ電流が流せるだけの大容量の電解コンデンサーを付ければ
- 改善が可能と思われる
- どの程度の容量が良いかわかりませんが、試しに1000μ程度
- レギュレータの出力をオシロスコープで見て電圧が低下が無ければokです。
- あとレギュレータのin-outに接続しているダイオードはレギュレータの破損防止
- 出力電圧が入力より高くなると破損する事があります
- 特に出力側に大容量のコンデンサーをつけると破損の可能性が高くなります
- cpuとモーターの電源が同じレギュレータ出力に接続していてモーターが回り始めるとレギュレータのロードレギュレーション又は電流容量の限界を超えて電圧が低下している様
-
検討
-電解コンデンサの対策を優先する- レギュレータの変更は、最終手段
- 入手性/値段/基板の利用の点から変更への作業コストが高い
- レギュレータの変更は、最終手段
-
やること
- 大容量のコンデンサを購入する(何種類か購入する)
- 注文済み
- ダイオードを購入する(ショットキーダイオード)
- 注文済み
- 出力側にダイオードをつける
- オシロで波形を確認する
- 現象の状況を確認する
-
- これは調査2の状態で実施(最初の条件の場合、もっと悪いと思われる)
-
- ダイオード後の波形を確認する
- 現象の状況を確認する
- 大容量のコンデンサを購入する(何種類か購入する)
-
メモ
- モータの動かし始めのときにVin, Voutともドロップしていることを確認
- レンジを広く見たが、モータの動かし始めで必ずドロップが起きている
- たまにサーボモータ側が動かないことがあったのは、
- Vinがサーボの動作電圧に満たないことがあったと思われる
- Vin側にも電解コンデンサをつける必要がある???
- モータの動かし始めのときにVin, Voutともドロップしていることを確認
調査 - アドバイス - 電圧低下の対策
- 部品がそろったので再確認する
- まず、セラミックコンデンサを外し、最初の状態を確認する
最初の状態
- 結果
- 所感
- 広いレンジで見た場合、セラミックコンデンサがある場合より波形が汚い
- 局所的に電圧があがったり、さがったりするところがある
- これがLEDの明るさがかわる原因と思われる
電解コンデンサ - 1000uFを追加する1
- やったこと
- Vout - GNDに1000uFの電解コンデンサを追加
- Vin - GND 何もしない
- 結果
- 所感
- 思ったよりきれいにならない
- また、LEDの明るさが変わるのは多々ある
- 1分ぐらいモータの起動を行ったが、2度リセットした
- 追加するところがあっているのか不安
電解コンデンサ - 1000uFを追加する2
- やったこと
- Vout - GNDに1000uFの電解コンデンサを追加
- Vin - GNDに1000uFの電解コンデンサを追加
- 結果
- 略(追加1とほぼ同じ)
- 所感
- 思ったよりきれいにならない
- また、LEDの明るさが変わるのは多々ある
- 1分ぐらいモータの起動を行ったが、1度リセットした
- 追加するところがあっているのか不安
- 電源オフ後に、コンデンサを外し2.5V付近だったため、合っている???
データシートを確認する -
-
https://pl-1.org/getproductfile.axd?id=594&filename=AMS1117+2.5.pdf
- 1.1A流せるので十分では???
- 見るところが足りない???
調査 - ラッシュ電流の対策
上記の結果を受けてラッシュ電流について対策をする
アドバイス
- レギュレータのin側がドロップしている様なので、モーターのラッシュ電流がかなり大きい様
- モーターの動きは若干鈍くなりますが、バッテリーの容量を上げるよりは簡単
- モーターのラッシュ電流を下げる為の抵抗器をモーターにシリーズに追加して見る
- 0.47Ω/1w程度で良いと思います。
- それでも電圧が低下するようであれば、下記を確認する
- 電圧が殆んど落ちない値がどの程度か又、
- その時のモーターの動作は問題ないか
- シリーズに入れる???
- モータードライバー出力(プラス側)とモーター間に入れる
- モーターの負荷変動が大きいので、少し少なくしてみてどうかの確認
方針
- ↑のアドバイスを受けて、根本的な対策の前にヒントになる箇所を探す
- ラッシュ電流を下げるために抵抗を追加する
- そのうえで、どこ程度にすれば安定して動くところをみつける
- 根本対策はそれから
やること
- 抵抗の購入
- 1Wの抵抗がなかったため、購入する
- 抵抗セット
- 0.1Ω,0.33Ω,0.5Ω,1Ω,1.5Ω,2Ω,2.7Ω,3.3Ω,3.9Ω,4.7Ω
- 抵抗のつける位置
やったこと整理
- 検証を効率化するために、やり方を変えた
- 今まで
- 本番用と同じように別のMicrobitから無線制御し、ターゲットを動作
- リモコン用Microbit -> ターゲットMicrobit
- 本番用と同じように別のMicrobitから無線制御し、ターゲットを動作
- 今回
- ターゲットに搭載されているスイッチでモータを制御
- ターゲットMicrobit
- ターゲットに搭載されているスイッチでモータを制御
- 今まで
ラッシュ電流の確認
-
以下の条件で波形を確認した
- 条件1:電解コンデンサあり/サーボモータなし/シリーズ抵抗なし
- 条件2:電解コンデンサあり/サーボモータあり/シリーズ抵抗なし
- 条件3:電解コンデンサあり/サーボモータなし/シリーズ抵抗あり 0.5Ω 1W
- 条件4:電解コンデンサあり/サーボモータあり/シリーズ抵抗あり 0.5Ω 1W
- 条件5:電解コンデンサあり/サーボモータなし/シリーズ抵抗あり 1.5Ω 1W
- 条件6:電解コンデンサあり/サーボモータあり/シリーズ抵抗あり 1.5Ω 1W
-
サーボモータのあり・なし
- DCモータの制御とサーボは、影響がないことを確認するため
-
条件1:電解コンデンサあり/サーボモータなし/シリーズ抵抗なし
- モータを動かすと、Vin, Voutともゆれる
- これは意図している(デバッグ環境を変えても変わらない)
-
条件2:電解コンデンサあり/サーボモータあり/シリーズ抵抗なし
- 基本的には、条件1の波形と同じ
- ただし、サーボのみを動かした場合、Vinのみがゆれる
-
条件3:電解コンデンサあり/サーボモータなし/シリーズ抵抗あり 0.5Ω 1W
- モータドライバとモータ+との間に追加
- あまり変わっているように見えない
- モータドライバとモータ+との間に追加
-
条件4:電解コンデンサあり/サーボモータあり/シリーズ抵抗あり 0.5Ω 1W
- 条件3と同じ
-
条件5:電解コンデンサあり/サーボモータなし/シリーズ抵抗あり 1.5Ω 1W
- 抵抗を変えても条件3と変わっているように見えない
- モータの回転は遅くなっている気はする
-
条件6:電解コンデンサあり/サーボモータあり/シリーズ抵抗あり 1.5Ω 1W
- 抵抗を変えても条件3と変わっているように見えない
- モータの回転は遅くなっている気はする
-
他に気づいたこと
- やり方(モータの動かし方)を変えたの影響
- 別に気づいた点として、条件1-6すべてで、Microbit前面のLEDの明るさが変わることがなかった
- 少なくとも明らかに暗くなるようなことはなかった
- おそらく無線通信を走らせている(Microbitの電源をより食う方向)のときに
- モータを動かすと、LEDの明るさの揺れが目視できると思われる
- 別に気づいた点として、条件1-6すべてで、Microbit前面のLEDの明るさが変わることがなかった
- 部品の仕様
- モバイルバッテリー : 最大3A出力
- レギュレータ : 1.1A(typical)
- モータドライバ : 2ペア対応、片CH 最大1.5A
- レギュレータの能力が足りないということなのか
- やり方(モータの動かし方)を変えたの影響
所感
- そもそもの設計思想が間違っているのではないか?
- サーボx2, DCモータx2(モータドライバあり), 評価ボード電源 を1つからとろうとするやり方
- 現状の基板で仮に直せたとしても、極端な手付をするのは不格好である(1点ものではない)
- 基板変更は、メカ的な点でも必須(基板の溝やコネクタ位置を修正したい)
- そのため、電気的に良い設計であれば、一旦0にしてサイド基板作成に望むほうがよいと考えている
調査 - Microbitの電源とモータを分離時の動作
- 電源を分離して、Vin, Voutの状態を確認する
- 下記の接続 + 電解コンデンサあり
確認内容
- DCモータを停止、サーボモータのみを動作で確認
- Vinが若干さがる(0.1V程度)がOKと思われる
- DCモータのみ起動、サーボモータは停止で確認
- Vin, Voutとも大きく揺れる
- 本問題はDCモータの起動のみで発生すると確信できた
- やはりレギュレータの出力電流を高くすることでしか解決できない???
- なぜDCモータを動かすだけでVinまでも振れるのか???
- DCモータの仕様を再確認
■主な仕様 ・定格電圧:1.5V ・無負荷回転数:9100rpm ・無負荷電流:0.2A ・定格負荷回転数:6990rpm ・定格負荷電流:0.66A ・定格負荷トルク[gf・cm]:6.0gf・cm ・定格負荷出力:0.43W ・停動トルク[gf・cm]:26gf・cm ・停動電流:2.2A ・端子部形状:ラグ ・軸径:2mm ・軸形状:丸 ・長辺:24.8mm ・短辺:20.1mm ・高さ:15mm
- 起動電流は、2.2Aとのこと。
- これが2つあるから、4.4Aになる
- 3端子レギュレータの出力1.1A、これがVinを振れる原因となる
- 3端子レギュレータを変える???
- 4.4A出力のものを選ぶことはできない
↓に記載されているを電源部を参考にする
NJM317
回路の再検討
- 上記を参考に回路を設計する
- トランジスタを追加する
- モータとmicrobitを分ける
トランジスタの候補
- ダーリントントランジスタ 2SB1432 100V10A
- トランジスタ 2SA1640 30V7A
- ダーリントントランジスタ 2SB1227 100V5A
-
パワートランジスタを追加を確認
- ブレッドボードで実験
- TIP42C BJT バイポーラシリコントランジスタ PNP 100V 6A TO220 を使用
-
ダメ
やれることめも
・1.5Vにして再確認
・別基板で確認
- todo整理
- 上記に示す基板になるよう改修する
- 差し込みの高さを変える
- ラジコンとぶつからないように低くする
回路の再検討の基板を書いて、pcb wayに発注。
基盤が来たらもう一回見る
基板きたが、抵抗を入れ忘れ(参考にした回路図でいうとR2)
パターンをカットできないか検討する(次回の勉強会で実施)
アクセサリを作る
IO Expanderを使えないか
通信関係の回路図
チップ抵抗をつけるコツ
- NGメモ
- P10 右一列ついてしまう LED3とぶつかっているため、NG =>P11でとればできそう
- P13 効いていない はんだ付けしてないっぽい
- P14 効いていない はんだ付けしてないっぽい