Open15

プログラミング教材

kotaprojkotaproj

microbitでプログラミング教材を作る

  • 知り合いのプログラミング教室で使用できるプログラミング教材を作る
  • microbitを使用する
  • 動くものにする(DCモータ、
  • 教材として使える安定した動作を提供する

やること

  • いったん試作をつくって動作を確認する
  • microbitから下記を制御する
    • DCモータ x2を制御
    • サーボモータ x2を制御
kotaprojkotaproj

試作基板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の明るさも揺らぐ場合がある

https://twitter.com/tw_kotatu/status/1782393971903545647

  • この時の接続は下記の状態

調査1-Microbitの電源供給を別電源にする

  • Microbitへの電源供給を電池ボックスにする
    • 3Vで供給
  • これを実施すると、Microbitへのリセットがかからなくなった
    • 電源ラインの問題であると確信

調査2-電源ラインにコンデンサを追加

  • 3端子レギュレータのVin, Voutにコンデンサ追加
    • Vin側 : セラミックコンデンサ 10uF
    • Vout側 : セラミックコンデンサ 22uF
  • これを実施すると問題点の状態より頻度は下がる
    • ただし、解決はできていない

できることは???

  • 調査する内容
  • やれることは

参考文献

  • microbitの外部電源

https://qiita.com/nakatafu/items/7a956b8832503a75a31e

kotaprojkotaproj

試作基板1 - rev03の動作 - 調査

アドバイス - ノイズによるmicrobitのリセット

  • コメント
    • 基本的にはモーター等からのノイズでリセットがかかるのでは?
    • CPUのリセット端子と、CPUのGND間に最短で小容量(0.1μ程度)のコンデンサーを接続して見る
    • 効果が有るようであれば、大電流部分と制御部のグランド周りの接続を考える
  • やること
    • 小容量のコンデンサを購入する
    • microbitのリセット端子を調べる(引き出せるかどうか)
    • リセットピンとGNDにコンデンサを接続する
    • できるようであれば、オシロで波形を見る
  • 追記
    • 現象から見ると、リセット端子へのコンデンサー追加は効果無さそう
      • この場合は、通常使用するのは、積層セラミックコンデンサーで、温度特性は気にしなくて大丈夫
      • 単なるノイズとり
    • ↑のことから、優先度を下げる

知りたいこと

コンデンサの選定について

  • 供給している電圧がふらついているのではないかと考えている
    • ↑の記事の調査2にて、コンデンサを追加することで若干改善しているように見える
    • また、モータの起動のたびに、microbitのLEDの明るさ一瞬暗くなったり明るくなる
  • 聞きたいこと
    • これを調査するには、どのようなアプローチがあるのか
      • オシロで波形を見て、揺れるかどうかを見る
      • ほかにできることはあるのか
    • これが原因の場合、コンデンサはどのように選べばいいのか
      • 容量はどれくらい
      • セラミックコンデンサ?電解コンデンサ?
      • 波形をみれば、何がききそうかはわかるものなのか
  • ダイオードは必要でしょうか

アドバイス - 電圧低下の対策

  • コメント

    • cpuとモーターの電源が同じレギュレータ出力に接続していてモーターが回り始めるとレギュレータのロードレギュレーション又は電流容量の限界を超えて電圧が低下している様
      • ledの輝度が変化している事から
    • 対策としては、
      • レギュレータの電流容量の大きいのに変えるか、
      • レギュレータ出力にモーターのラッシュ電流が流せるだけの大容量の電解コンデンサーを付ければ
      • 改善が可能と思われる
    • どの程度の容量が良いかわかりませんが、試しに1000μ程度
      • レギュレータの出力をオシロスコープで見て電圧が低下が無ければokです。
    • あとレギュレータのin-outに接続しているダイオードはレギュレータの破損防止
      • 出力電圧が入力より高くなると破損する事があります
      • 特に出力側に大容量のコンデンサーをつけると破損の可能性が高くなります
  • 検討
    -電解コンデンサの対策を優先する

    • レギュレータの変更は、最終手段
      • 入手性/値段/基板の利用の点から変更への作業コストが高い
  • やること

    • 大容量のコンデンサを購入する(何種類か購入する)
      • 注文済み
    • ダイオードを購入する(ショットキーダイオード)
      • 注文済み
    • 出力側にダイオードをつける
    • オシロで波形を確認する
      • 現象の状況を確認する
          • これは調査2の状態で実施(最初の条件の場合、もっと悪いと思われる)
      • ダイオード後の波形を確認する
  • メモ

    • モータの動かし始めのときにVin, Voutともドロップしていることを確認
      • レンジを広く見たが、モータの動かし始めで必ずドロップが起きている
    • たまにサーボモータ側が動かないことがあったのは、
      • Vinがサーボの動作電圧に満たないことがあったと思われる
      • Vin側にも電解コンデンサをつける必要がある???
kotaprojkotaproj

調査 - アドバイス - 電圧低下の対策

  • 部品がそろったので再確認する
  • まず、セラミックコンデンサを外し、最初の状態を確認する

最初の状態

  • 結果
  • 所感
    • 広いレンジで見た場合、セラミックコンデンサがある場合より波形が汚い
    • 局所的に電圧があがったり、さがったりするところがある
      • これが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付近だったため、合っている???

データシートを確認する -

kotaprojkotaproj

調査 - ラッシュ電流の対策

上記の結果を受けてラッシュ電流について対策をする

アドバイス

  • レギュレータの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

ラッシュ電流の確認

  • 以下の条件で波形を確認した

    • 条件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の明るさの揺れが目視できると思われる
    • 部品の仕様
      • モバイルバッテリー : 最大3A出力
      • レギュレータ : 1.1A(typical)
      • モータドライバ : 2ペア対応、片CH 最大1.5A
      • レギュレータの能力が足りないということなのか

所感

  • そもそもの設計思想が間違っているのではないか?
    • サーボx2, DCモータx2(モータドライバあり), 評価ボード電源 を1つからとろうとするやり方
  • 現状の基板で仮に直せたとしても、極端な手付をするのは不格好である(1点ものではない)
    • 基板変更は、メカ的な点でも必須(基板の溝やコネクタ位置を修正したい)
    • そのため、電気的に良い設計であれば、一旦0にしてサイド基板作成に望むほうがよいと考えている
kotaprojkotaproj

調査 - Microbitの電源とモータを分離時の動作

  • 電源を分離して、Vin, Voutの状態を確認する
  • 下記の接続 + 電解コンデンサあり

確認内容

  • DCモータを停止、サーボモータのみを動作で確認
    • Vinが若干さがる(0.1V程度)がOKと思われる
  • DCモータのみ起動、サーボモータは停止で確認
    • Vin, Voutとも大きく揺れる
  • 本問題はDCモータの起動のみで発生すると確信できた
  • やはりレギュレータの出力電流を高くすることでしか解決できない???
kotaprojkotaproj
  • なぜ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出力のものを選ぶことはできない
kotaprojkotaproj
  • パワートランジスタを追加を確認

    • ブレッドボードで実験
    • TIP42C BJT バイポーラシリコントランジスタ PNP 100V 6A TO220 を使用
  • ダメ

    やれることめも
    ・1.5Vにして再確認
    ・別基板で確認

kotaprojkotaproj
  • todo整理
    • 上記に示す基板になるよう改修する
    • 差し込みの高さを変える
      • ラジコンとぶつからないように低くする
kotaprojkotaproj

回路の再検討の基板を書いて、pcb wayに発注。
基盤が来たらもう一回見る

kotaprojkotaproj

基板きたが、抵抗を入れ忘れ(参考にした回路図でいうとR2)
パターンをカットできないか検討する(次回の勉強会で実施)

kotaprojkotaproj
  • NGメモ
    • P10 右一列ついてしまう LED3とぶつかっているため、NG =>P11でとればできそう
    • P13 効いていない はんだ付けしてないっぽい
    • P14 効いていない はんだ付けしてないっぽい