ラベル WristWatch の投稿を表示しています。 すべての投稿を表示
ラベル WristWatch の投稿を表示しています。 すべての投稿を表示

2024年10月6日日曜日

マイコン時計 静音化の検討

現状のHWでは稼働時(回転させて時間を見る時)に騒音が大きいという問題があります。これは主に駆動部のギヤから発生しています。モーターを横置きにしているため回転方向を90度変換する必要があり、そこにクラウンギヤを使用しているためです。一方でベルト(輪ゴム)とプーリによる駆動、ベアリングの回転音はほとんどなく静かです。

何故モーターが横置きなのかといえば、扁平な形状(円筒の高さが低い)のDCブラシモーターで安価に入手できるものがなかったためです。ブラシレスDCモーターであればこれに合う形状をしたものが多くあり、これを使うことを考えます。

電気電子機器の冷却用に使われるDCファンがドライバ込みでパッケージ化されており使えるかもしれないと思いましたが、トルクが十分でなかったので不採用としました。

ドローン(航空機)用の小さい3相ブラシレスDCモーターで使えそうなものがあったので、購入して試してみました。

出力、寸法共に良さそうなので、これで次のバージョンを設計します。 

上の実験では市販のドライバ基板(R/C用ESC)を用いました。性能自体は良いのですが、安全のため電源ON後は一旦スロットルをアイドルに入れてからしか回らず、またそれを知らせるためにしばらく回らずモーターから(回転子またはコイルの振動により)音を出す機能が入っています。時計に使うには不便ですので、DCブラシレスモーター駆動回路も適当なドライバICと共に自作回路基板に載せることにします。

2024年2月11日日曜日

マイコン時計 腕時計バンドの装着

 「腕時計」として使うためのバンドを付けました。

(なお、テスト段階では通常の腕時計の上に両面テープで貼り付けるという方法を取っていました。)

なるべく工作が簡単な方法ということで、本機では2つの穴を開けたABS板にベルトを通す方式としました。


2024年2月4日日曜日

マイコン時計 基板製作

回路基板です。

8割方の設計を決めた後に急いで1回目を作り、それを用いて実機を動かしながらソフトウェア開発を進め、実現可能性を検証しました。その後修正を入れて2回目のものを作りました。良い感じに仕上がったと思います。

  • ATtiny404
  • フォトインタラプタ
  • RTC
  • RTC用のバックアップ電池
  • LiPo充電用IC
  • PWM対応1象限DCブラシモータードライバ(MOSFETとダイオード)
  • USART用コネクタ(秋月AT-234X用のピン配置)
  • UPDI用コネクタ(秋月AT-234X用のピン配置)
  • 充電用USB-Cコネクタ

    基板はL字に組み合わせることで省スペース化を図っています。下の基板には回転部の原点を検出するフォトインタラプタが付いており、検出用に隙間に収めるようになっています。

    基板を直角に接するように組むためには、秋月のキットに付属しているL字ピンヘッダの余りを改造して再利用しています。

    2023年12月17日日曜日

    マイコン時計(仮称)製作開始

    前の記事と順番が前後しますが、マイコンを使った時計の製作を開始しました。詳細は未だ伏せておきますが、実用になるものを目指しています。

    まずは、回転駆動部分を試作しました。240~1800rpm程度の回転速度で、できるだけ小さくしたいので自作しました。左は比較用のタミヤのミニモーター標準ギヤボックスです。

    ATtiny204 フォトインタラプタの長周期パルス信号の周期計測

    現在製作中のマイコン時計(仮)ではATtiny204を使用し、フォトインタラプタで駆動部の回転周期を計測する部分があります。この機能の実現のためにマイコンの周辺機能をいくつか組み合わせた事例として記録しておきます。

    以下、21.のような数字および太字はATtiny204データシートの章番号と周辺機能の名前を指します。

    概略


    タイマー・カウンタBにインプットキャプチャ機能があるのでこれを使います。--> 21. 16-bit Timer/Counter Type B (TCB)

    H8などではタイマーユニットへの外部入力は専用に割り当てられている端子がありますが、最近のAVRではイベントシステム( → 14. Event System (EVSYS))を介しての入力となります。 Figure 21-1. Timer/Counter Type B Block Diagramにも、入力がEvent Systemとあります。

    更にフォトインタラプタのアナログ出力を直接つなげるように、アナログコンパレータを使います。 → 28. Analog Comparator (AC)

    VREFとAnalog Comparatorの設定

    • 非反転(positive)入力: 入力ピン
    • 反転(negative)入力: 内部VREF
    • ヒステリシス: 50mV

    アナログコンパレータは2つのアナログ信号の電圧を比較するものですが、今回は1本の入力を閾値で2値化したいだけなので、一方の入力に内部リファレンス電圧を使います。

    18. Voltage Reference (VREF) CTRLAの「Bits 2:0 – DAC0REFSEL[2:0] AC0 Reference Select」について、「DAC」ですがこれは単独に使うD/Aではなくアナログコンパレータに接続されているD/Aということのようで、ここでNegative入力に使う電圧を選択できます。

      VREF.CTRLA = VREF_ADC0REFSEL_1V1_gc;
    
      // Positive input = AINP0, Negative input = voltage reference
      AC0.MUXCTRLA = AC_MUXNEG_1_bm;
    
      AC0.CTRLA = AC_HYSMODE_50mV_gc | AC_ENABLE_bm;
    

    イベントシステムによるACとタイマーの接続

    event channelにイベントソースを割り当て、userに提供するevent channelを選択するという2段階になっています。 参照: Figure 14-1. Block Diagram

    アナログコンパレータの出力はasynchronous generatorになることができ、TCB0はasync userの0番として固定されています。

    event channelとしてasynchronous channel の0番を使って接続するとこのようになります。

    async channel 0 ← AC output
    TCB0 ← async channel 0

    EVSYS.ASYNCCH0 = EVSYS_ASYNCCH0_AC0_OUT_gc;
    EVSYS.ASYNCUSER0 = EVSYS_ASYNCUSER0_ASYNCCH0_gc;  // TCB0
    

    タイマーの設定

    Figure 21-5. Input Capture Frequency Measurement

    まずクロックソースを設定します。ここで時間分解能と計測可能な周期の最長が決まります。1秒間に10回程度の周期を想定しているので、最大で1秒程度の時間が計れれば良いでしょう。

    TCB自体のプリスケーラでは2分周までしか設定できませんが、TCAと同じクロックソースを使うモードがあります。今回は周期の長い信号を計測したいので、これを使います。TCAのクロック分周器であれば、最大1024分周までがサポートされています。64分周とすると、0.0192ms分解能で約1.3秒まで計測できます。(periperal clock 3.33MHzの場合)

    TCAの設定について(20. 16-bit Timer/Counter Type A (TCA))、16ビットタイマーを2個8ビットに分けて使うsplit modeと区別する意味で、「シングルモード」という指定になります。

    TCA0.SINGLE.CTRLA = TCB_CLKSEL_DIV64_gc | TCA_ENABLE_bm;

    TCAは他の機能はまだ使わず、カウンタを回すだけなのでこれだけです。

    TCBの設定

    TCB0.CTRLA = TCB_CLKSEL_CLKTCA_gc;
    TCB0.CTRLB = TCB_CNTMODE_FRQ_gc;

    以上で、TCB0.CCMPに周期が取得されるようになります。

    Make Faire Tokyo / Seoul 2026

    Maker Faire Tokyo 2026および Maker Faire Seoul 2026に出展しました。 Tokyoではテーブルホッケーロボットとインタラクティブ・ペンプロッタを展示しました。これは3年前とほぼ同じ構成でほぼ同じ(修繕・調整して操作ボタンがついた)でしたが...