- 2月8日
有ると思って探したが見つからなかったステッピングモータが2つ見つかった。
「SPG20-1308」と「SPG20-1362」のギヤ付きで、最終的な軸の回転は、
1ステップ0.5度の1周720ステップの物と1ステップ1度の1周360ステップが有った。
これのどちらかを使う様にしたい。
- 3月6日
回路図を書き始めたが、GLCDにハイサイドスイッチを入れようと思ったが、
以前のGLCDの明六つ時計ではCR2477で1年は使えたので、
今回も同程度を考えるとハイサイドスイッチは無くても良いと思える。
どうしても電流が多い時に追加する事とする。実験は必要
CPUの電源と同じなので、P-chのMOSFETと抵抗でも良さそう。
- 3月7日
P-chMOSFETで使えそうな物は、取りあえず秋月のSMDで考えると
SSM3J332R(東芝)、DMG3415U、AO3415A、辺りだろう。
回路図には、P-chのMOSFET(DMG3415U)を入れた。
- 3月8日
回路図(旧1)に反射型のフォトセンサー(フォトリフレクタ)を(RPR-220)を入れた。
- 3月10日
反射型のフォトセンサー(フォトリフレクタ)(RPR-220)の実験をしたい。
GLCDの電源ON/OFFも実験したい。P-chMOSを入れるのと、ポートからのソース電流で賄えるか?
今日明日という訳では無いが、以下の物を購入して実験をしたい。
- 反射型のフォトセンサー(RPR-220)2個
- 反射型のフォトセンサー(LBR-123F)2個
- P-chMOS(DMG3415U)1パック
- I/Oエキスパンダー(MCP23017)2個(今回は関係ないがチェックしてみたい物)
- SOT23変換基板 金フラッシュ(型番:AE-SOT23)5個
- SOP8(1.27mm)DIP変換基板 金フラッシュ(型番:AE-SOP8-DIP8)1パック
- 3月20日
反射型フォトセンサー(フォトリフレクタ)等を秋月に注文した。混んでいるみたいで、今週中に来れば幸運みたい。
- 3月22日
秋月から注文した物が届いた。
- 6月3日
ブレッドボード上で、反射型フォトセンサー(フォトリフレクタ)を動かす回路図を書いて、
実験をする事にする。
出来れば、グラフィックLCDの電源をCPUからのポート出力電流で賄えるかのテストもしたい。
- 6月8日
反射型フォトセンサー(フォトリフレクタ)を動かすブレッドボードを組んだ。
CPU部の基板(CR2使用)が動かなくなった(間違えてmega64で書き込んでしまった) ので、
別のCPU基板(単四電池使用)に替えたが、5V動作になってしまう。
取りあえず、反射型センサー(RPR-220)の動作確認のプログラムを書いたが、思った様に動いていない
-->フォトトラ側のコレクター抵抗が小さかった。100kΩに変更したら、思ったような動作になった。
一応良さそうだが、電源が5Vなので、3Vでどうなるか確認が必要。多分大丈夫だと思う。
太陽光、白熱電球などの光が入ると、反射したみたいになる。なので使い難い様な感じ。
反射板との距離は20mmぐらいでも認識する。全体に感度が有り過ぎる感じ、コレクタ抵抗が大きすぎるのかもしれない。
- 6月10日
反射型センサーをLBR-123Fに交換しての動作確認をした。
思った様に動いた。
反射板との距離は5mmぐらいで、離れるとダメ。太陽光でも反応するが、RPR-220よりは感度が低い感じ。
太陽光などの他の光の影響を考えると、LEDには目一杯流して、コレクタ抵抗を小さくすれば、
他の光の影響を少なくなる。どの程度にするかは、実際の配置で変わってくるだろう。
- 6月16日
CPU部の基板(CR2使用)のCPUを交換して、動く様にした。
交換しなくても、方法は有ったかもしれないが、交換するのが今の所一番簡単だった。
CPU部を交換して、3V電源で動かして、動作を確認した。5Vの時と同じ様に動作はしたが、
反射板の移動に対する動作の切れがちょっと鈍い感じがする。
しかし、RPR-220も、LBR-123Fも、基本的な動作としては問題が無い。
- 6月17日
16日までの実験結果から、反射センサーは LBR-123Fを基本として、
スペース的に入るようならば、予備としてRPR-220もパターンは作っておきたい。
両方共、太陽光には反応するので、遮光する必要が有るが、その時、RPR-220を使うと
遮光板(箱?)までの距離を大きく足る必要が出てくる。
LBR-123Fの方が、距離を小さく出来るので、全体も小さく出来るだろう。
- 7月2日
CPU部の基板(CR2使用)のCPUを交換してから、
その基板の全信号の接続チェックをしたなかったので、あらためて行った。
ポート信号にはLEDだけをGND間に接続して、入力ポート動作の内部プルアップ抵抗で点灯させる事にした。
ACD6とADC7は半固定抵抗を接続して、そこのA/D変換値をLEDに表示をする方式にした。
基本的に元々のこのCPU基板のチェックプログラムを少し変更して、LEDの点灯を内部プルアップを使う事にした。
プログラム、チェック動作用のブレッドボード
- 7月12日
LBR-123Fを追加した
回路図(旧2)を書いた。
基板図も一応書いたが、部品番号などの位置の整理が出来ていない。電気的には繋がった感じ。
- 7月16日
・1.27mmピッチのジャンパーを使っている所を、2.54ピッチに変更したい。
-->2つ変更した。
・006P電池のケースを基板に取り付けたい。
-->スペース的には入りそうだが、部品配置を全面的に変えないとダメ。
取りあえず 006Pのライブラリーは作った。
基板図の部品配置をやり直して、配線もやり直す事にする。
(今日の時点のバックアップは取っておく)
- 7月17日
006Pを追加した回路図を書いた。
基板図も一応書いたが、まだ細かい所が出来ていない。電気的には繋がった感じ。
- 7月19日
基板図が出来た。
ガーバーファイルも出来た。
- 7月22日
部品表も書いた。
- 2024年7月24日
ElecrowにPCBを注文した。
午後には「in-production」になった
- 2024年7月29日
Elecrowから発送したとメールが来た。
配送状況を調べたら、既に、佐川急便で配達中になっている。
速すぎる(メールが遅い?)
夕方には荷物が配達された。
(いつもの宅配便みたいな伝票は貼っていなかった)
基板(表、裏)
- 2024年8月7日
在庫部品を調べ、足りない物を、「秋月」、「マルツ」、「ヒロスギネット」に注文した。
「廣杉計器」は個人で注文できなくなったので、「ヒロスギネット」になったが、比べると結構高い。
- 2024年9月1日
部品を取り付け始めたが、「DMG3415」と書く所が「DMG3514」となっている。
回路図を描く時の間違いで、ライブラリの名称も間違ったみたいだ。
モーター用のコネクタを取り付け面が間違っているみたい。
モーターからのコネクタが付けられないし、文字盤と干渉しそうな気がする。
今の位置だと裏から表側にモーターの線を通す所が無いので、
穴を空けるか、モーターの出っ張りを逃げている部分を広げて通す事になりそう。
取りあえず、電気的に動作する所までは組み立てて、ソフトの作成までやりたい。
しかし、実際の時計の形にするかは保留とする。
- 2024年9月8日
文字盤取付用の穴が、電池ボックスと干渉するので、
2か所の穴をサラねじ用に加工した。
表側から裏側へモーター用の線を通す穴(半円)を作った。
基板側のコネクタは止めて、線を直接コネクタパターンに半田付けする。
その時の線の繋げ方だが、基板上に書いて有る色は違っている。
しかも、コモンに接続する9Vが1本足りない。
そして、ドライブ信号の順番も、励磁順から見るとわかりにくい順番になっている。
この順番はソフトでは、配列テーブルで動かしていくので、分かりにくいだけで、おかしな動きにはならない。
基板を作り直す時に、回路図を書き換えて、コネクタの番号が、モーター側と一致する様にした方が分かり易い。
モータ接続コネクタのメモ
反射センサーは、位置が決まらないのでまだ取り付けていないが、
その他の部品は取り付けた(表、裏)
- 2024年9月16日
CR2を入れたら、緑LEDが点灯したので、電源系統は大丈夫だろう。
6Pの書き込みコネクタにISPを接続て、シグネチャーが読めた。
ヒューズビットも読めたので、あとは、プログラムを書いて確認する事になる。
- 2025年4月17日
プログラムは PICの「16F1847」で作った「明六つ暮六つ時計」を元に、
CPUを「mega328」に、RTCを「RX8900」にする。
プログラムとしての基本的な動作は同じはず。
まずは、PICのプログラムをmega328で動くように修正をする所から始める。
mega328のLCD版も参考にする。
まだ、全然エラーばっかりで ビルド出来ない
I/Oが全然違うのと、今回考えている動作と違う所が有るので、
メイン的な所は作り直し、中間のステッピングモータを動かす所は I/Oを修正してPICの物を使う事にする
LCD表示やRTCアクセスやスイッチ入力やLED関係は 他のmega328の動いているファイルを持ってきて
使う事にしたい。
取りあえず、そう言う方向でソースを書いてみたい
今回考えているメイン的な動きは、
-
スイッチを使って、手動で基準点までステッピングモータを動かしてから
現在時刻によってステッピングモータを動かし、該当の位置まで指針を持って行く。
-
現在時刻をLCDに表示して、スイッチを使って、現在時刻の修正をする。
-
上記の2つの動作は電源ON時にスイッチが「押されている/押されていない」で区別し、
その動作に入ったら抜ける時は 電源OFFする。
この様な動きが実現できれば良いはず。
但し、現在時刻の該当位置までモータを動かす動作は、最初は頑張って動かして良いが、
1度該当位置まで移動した後は、1分毎に現在時刻の該当位置を計算して、
違っていた時だけ動かす。
1分毎の処理はRTCからの信号で割込み、そのタイミングで行う。
割込みが入るまではスリープして 消費を抑える。当然LCD表示は行わない(LCDの電源は切る)
現在時刻の修正は、消費電流を抑える事は考えず、普通に動かす。
- 2025年4月20日
まだ、プログラムは途中だが、取りあえずビルドをしてCPUに書き込んだ。
最初のLED点滅は出来たので、書込みとLEDのチェックはOKとする。
書込み中継治具の電源は5Vなので、外部から3Vを入れる事にした。
LCDもVCCのON/OFFはハード的には出来ている。
但し、OFFしても完全に抜けるまで結構時間が掛かりそう。
なので、VCC-GND間にある程度の抵抗を入れて、電流を流す必要が有るかもしれない。
スリープ状態の時に入力端子に電圧が掛からない方が良いと思う。
LCD表示も出来ている。
但し、スイッチが上手く読めていないみたい。
押されっぱなしの感じ。内部プルアップ忘れ?
-->プルアップの設定をしたら、スイッチ入力が出来た。
モード選択も出来て、EEPROMの読み書きも出来た。
一度電源OFFしても、
再度ONで設定したモードの表示(ちょっとおかしな表示だが)が出来た。
RTCの読み書き、モーター動作が未確認
- 2025年4月21日
RTCの読み書きはOK。
コンデサの停電補償時間も正確にはわからないが5分ぐらいはOK。
1秒割込みは確認できた。1分割込みも確認できた。
- 2025年4月22日
モーターが動かない。
パルスを出しているつもりなのだが、モーターが動かない。
直接動かない事には関係ないが、電池で動作させたい時に、電源スイッチが無いの信号をチェックしたいとか
一度電源を切って、オシロのプローブを取り付けたい時に いちいち電池を外さないと行けないので
すごく不便。デバッグ効率が悪い。もし、基板を作り直すのならば、スイッチがジャンパーを追加したい。
取りあえず、現状の解決策として、3Vの外部電源にスイッチを
追加した物をCR2ホルダの基板部分に半田付けした。
今日はここまで
- 2025年4月24日
ステッピングモータのポートを出力にし忘れていた。
これで動くかと思ったが、まだ動かない。
軸に指を当てると振動はしているので、出力はしているだろう。
電流(ON時間)が足りないか、ONする相の順番が間違っているか?
-->電流が足りなかったみたい。実験用電源を使って9Vを入れたが、
電流制限を300mAにしていた。これを500mAにしたら動き出した。
この電流値だと 006Pで出せるかどうか? 大きなコンデンサをパラに入れないとダメかも?
定常的な電流は100mA位なのだが、瞬間的には結構電流が流れるみたい。
機械的な基準点を探す動作は、ソフト的には動いた。ハード的にはセンサー部分とか まだ完全でない所も有る。
次は論理的な基準点を決める所は、まだ思った様に動いていない。特に表示
- 2025年4月25日
機械的な基準点を決める為のセンサーの問題が有った。
その位置が指針から距離が離れている為、センサーの真上に来ても反応しなかった。
確かに以前実験した時は、5mm位で反応していた。
取り付けを基板ピッタリに付けてしまった為、離れすぎてしまった。
ピッタリで取り付ける方が楽なので、RPR-220を付けてみた。
しかし、近くで反応しないので上手く動作してくれない。
取りあえず、BR-123Fに戻して、6mm位浮かして取り付ける事にした。
これで何とか指針の距離でも反応するだろう。
6mmと言うのは文字盤の裏ギリギリになるが、
まだ指針は取り付けていないので、6mmに関してはもう少し調べてみる必要が有るだろう。
- 2025年4月26日
いい加減な物だが、白いシールを張った指針を作って動かしてみた。
一応は思った通りセンサーの所で止まる動作をしたが、CWでは無くCCWの回転になっていた。それと1周が360パルスだった。
これはソフトで設定を変えるだけなのですぐ出来るはず。
今日はここまで
- 2025年4月27日
CWにした。1周360パルスにした。
- 2025年4月28日
機械的なセンサー検知基準点から、中心部へのオフセット値と論理的な基準点(明六つのポイント)の位置を決めるモードは出来た。
実際の明六つ時計の動作は、センサー基準点を見つけ、そこから論理的な基準点(明六つのポイント)の位置まで動かし、
現在月日と時刻から明六つ時計の位置を計算して、そこまで動かす事になる。
1分毎の割込みで、現在月日と時刻から明六つ時計の位置を計算して、そこまで動かす事になるが、
現在の位置が計算した位置と同じ時は動かさない。
動かした位置が機械的なオフセット値の時は、センサーで検知して基準点かどうか判断する。
基準点で無い時は基準点(オフセット位置)まで動かす。そして、確認した事のフラグを立て、もう一度計算した時のセンサー検知はしない様にする。
そのフラグは、10パルス位動いたら、クリアする。
これで、パルスに反応しないで位置がずれた時に補正が効くはず。但し、この補正は毎日は行わないで、10日に一回ぐらいやれば良いだろう。
実際の明六つ時計の動作は、まだ出来ていない。
実際の006P電池にして動作を確認した。
動作確認は出来たが、この電池ホルダは使い勝手が悪い。特に取り外しが難しい。力任せに外す感じになる。
これだったら普通の電池スナップで、固定は穴を空けて基板に縛り付けた方が楽だ。
今日はここまで
- 2025年4月29日
006Pは電池ボックスを外して、電池スナップ+タイロック固定に変更する。
やってみたら、手持ちのタイロックが短いのと、
斜めに2本で止める事になるので穴が小さかった。
なので、取りあえずはラッピング線を使って固定した。
- 2025年5月6日
機械的基準の10日に1回の補正を除き、プログラムはCPUに書き込んだ。
何となく動いているが、本当に正確な位置かどうかは まだハッキリしない。
消費電流を測っていないので、スリープになっているかもわからない。
- 2025年5月7日
モード選択の表示順を変更して、「時計設定」->「機械的な基準点、論理的な基準点の設定」->「明六つ時計」にした。
電源ON時に、RTCの動作が止まっている時は、現在の指定動作に関係なく、「時計設定」をする様に変更した。
- 2025年5月9日
通常の明六つ時計動作の時の電流を測ってみた。CR2の3Vが約3mA流れる。
これでは10日ほどしか動作できないので、これを365日程度に延ばさないとまずい。
約30分の1にする必要が有るが、対策としては以下のような物が考えられる
-
LCD表示を止める。
-
使わない機能を止める。(シリアルとか)
と言うか、使う機能だけ活かす。
-
動作クロックを下げる。
これで、どの程度消費電流を減らせるか?
減らせなければ、電池を大きくする必要が有る。
CR2を止めて、単3型リチウム電池(単4型?)を2本使う等
単3リチウム乾電池は、高負荷では3000mAhと言われています。
(3000mAhならば今の状態で41日ほど動作可能)
低電流負荷では、あまりメリットが無いと言われていますが、
以前、田んぼの水温計を作った時の実績から考えると
アルカリ電池の2倍ぐらいは有ると思われる。
何割か増しならば、CR123にする手段もある。
どちらにしても、基板上の実装は無理になる。
- 2025年5月10日
デジタルテスターで電流を測ったら約3mAは3.11mAだった。
LCD表示を止めたら、2.99mAになった。
112uA減った。まだまだ多すぎる。仮にLCD表示を有りに戻した。
現在、パワーセーブでスリープに入るが、パワーダウンでスリープに入らないとまずいような気する。
- 2025年5月12日
パワーダウンでスリープに入る様にしたら、LCD表示有りで2.16mAになる。
こちらの方が電流は少ない。
なお、電源ON時のみどりLEDを点灯させても、2.17mAで10uA 位しか変わらない。
今の所、大きな違いは無いが、1年間で考えると90mAh位になる。
CR2の容量の一割なので、CPU回りでなかなか減らない時は、これも止めた方が良いだろう。
LCD表示なしで、電力削減を全て有効にした。2.10mAになる。
ISPを外すと2.08mA。動作が少しおかしい。
まだまだ、電流が多い。どうすれば良いか?
取りあえず、電力削減は元に戻す
- 2025年5月13日
まだまだ、消費電流が多い。原因は何か?
CPU以外の電流が大きいとすると(LCDは110uA位で確認済み)
-
RTC(RX8900)の電流?
-->色々な条件で消費電流は違うが、最大でも95uA、
今の使い方に近い物だと1.5uA(多分)
なので、RTCが原因ではない。
-
プルアップ抵抗(IIC)の電流?
-
機械的な基準点センサーの電流?
- 2025年5月14日
まだまだ、消費電流が多い。原因は何か?
-
プルアップ抵抗(IIC)の電流?
-
機械的な基準点センサーの電流?
-->基準点センサーの使用終了の関数は用意して有るが、使っていない。
使った所、約60uAまで電流が減った。
状態としては、「LCD表示は無」、「電力削減レジスタの操作は無」
これで、動作を続けてみる。
一応泥状に動作は続けている。デジタルテスターでは40uAになっているが、本当か?
アナログテスターだと60uAレンジでギリギリ振り切れる。
70uAとしたら、456日使える事になるので、電流的にはOKだろう。
他に電流が流れるのは1分に一度スリープから抜けた時の電流がどの位影響するか?
機械的基準まで動かす時の電流が5mAから多くても10mA位なので、
10mAとして計算すると、その動作時間はLEDの光が分かるように100mSタイマーを
入れているので、100mSと考えて、10mA掛ける(0.1秒÷60秒)になる。
10mA÷600=0.016mAになる。
つまり、スリープ状態の70uAに16uAを足せば、平均の電流値になるので、86uAになる。
そうすると800mAh÷86uA=9302h(387日)で1年は使える事になる。
電力削減レジスタを設定すればもう少し減らす事は出来ると思う。
- 2025年5月15日
昨日の約70uAの動作では電源LEDを点灯させていた。
それをやめてみたら、デジタルテスターの電流計では0.00になってしまった。
この状態だと本当に動くのか心配になるので、数時間後に指針の位置を確認する。
-->3時間後に指針は動いていたのでOK。
電力削減レジスタでタイマー関係、SPI、UART0を無効設定にした。
どの程度削減できたか、アナログテスタの電流計で測ろうとしたが、
電圧降下が起きるのか 最初の機械的基準サーチの所で止まってしまう。
諦めて、動作電流は70uAと考える。
電力削減レジスタは設定する。
何日か毎に、機械的基準点と現在の位置の確認をしようと思う。
大雑把には決まっているが、どの様なコードを書くかが決まっていない。
毎日はやらなくて良いと思う。1~2週間ごと辺りで良いと思う。
やり方としては、絶対値でゼロポイントまで動かした時に、
そこが機械式基準点センサーのA/D値が有るレベル以下で有る事を確認する。
レベル以下で無かったら、レベル以下になるまで1ステップづつ動かす。
動作確認をしていて、欲しくなった機能は、通常動作時にスイッチを押したら、
現在の月日時刻と何ステップ目かを知りたい。つまり、デバッグ表示の項目を知りたいと言う事になる
難しければ、無理して入れる必要は無い。
後どうしても必要ななのは、文字盤と指針(反射板付き)となる。
文字盤は印字できるCD(DVD)を利用してプリンタで印刷してから、
取付穴をボール盤であける。指針は厚手のプリンタ用紙に印刷をして作り、モータ軸に取り付ける。
取り外しを考えたら、バネ止めとか、ねじ止めだが、構造が難しくなりそうなので、接着で良いだろう。
セメダインCみたいな物で、ちょっと力を加えたらポリっと外れる物
- 2025年5月17日
何日か毎に、機械的基準点と現在の位置の確認は、
10日毎の2の日に、機械的基準点+オフセットの位置の時に行う。
プログラムは書いたが、まだ、CPUに書き込んでいない。
なお、1周してもセンサーが見つからない時は、エラーとする。
そして、1分毎の割込みでLEDを1秒間速く点滅させるだけで、
モーターは動かさない事にした。
- 2025年5月18日
9V(006P)の電流を測る事にした。
9Vに0.1Ω(0.2Ωを2個)を直列に入れ、モーターが動いた時の電圧をオシロで見た。
結果は約1.5mVになった。つまり1.5mV÷0.1Ω=15mAとなる。
この15mA流れる時間が約5.5mS。
一日で360パルス(一周分)するので、15mA×5.5mS=82.5mAS(秒)になる。
mASをmAHに直すと、1時間は3600秒なので3600で割れば mAHの単位になる。
なので、82.5mASは 約23uAhになる。
これが1年間(8760時間)なので 23uAh×8760=201.48mAhになる。
006Pの容量がマンガンで300mAh、アルカリで500mAhなので 1年半から2年半ぐらいは大丈夫となる。
- 2025年5月21日
006Pの電池がどの位持つかの計算がちょっとおかしいように感じる。
まだ、ハッキリしないが、アルカリ006P(500mAh)を使うとして計算したい。
1時間当たりの平均電流を求め、その値で電池の動作継続時間を求める。
それは時間数単位なので、日数に換算して判断をする。
-
まず、1時間当たりの平均電流を求める。
1日は360ステップなので1時間は360÷24=15ステップになる。
つまり、1時間に15回5.5mS間15mAの電流が流れると言う事になる。
なので 1時間の間に 15×5.5mS=82.5mSの時間15mA流れる事と
同等になる。
と言う事は 1時間の平均電流は 15mA×(82.5mS÷3600S)=約23uAになる。
(3600は 60分×60秒=3600秒の事)
-
次に動作継続時間を求める。
450mAh÷23uA=約16565hになり、
日数に変換すると約815日になる。
結局 5月18日の計算と大きな違いはないみたい。
何にしろ、1年以上は電池が持つはず。
0.1uA単位が測れるデジタルテスターを購入した(KEW1012)。
それで、通常動作時の3V電源の電流値を測ってみた。
電源LED(緑LED)を点灯した時は約106.2uA。
点灯させない時は約82.5uA。
精度的には±4digt位は有るようだが、点灯させない時は83uAと考えれば問題ないだろう。
5月14日の計算では70uAとして、1分に1回の動作分を16uAとして 70+16の86uAとしていたが、
今日の電流値で考えると83+16=99uAとなる。
そうすると850mAh(パナソニックのCR2)÷99uA=8585h(357日)で1年にちょっと足りない事になる。
電力削減レジスタを設定して、10uA位減らしたいが、全てが850mAhピッタリと言う事は無いと思うので
このままでも、多分ギリギリ1年は動作できると思う。(秋月で販売している物は公称1000mAh)
なので、まだ、電力削減レジスタはいじらない事にする。
- 2025年5月23日
約10日に1回機械的基準点を確認するプログラムをCPUに書き込んだ。
通常動作は、問題ない。 まだ、基準点確認動作は確認していない。
- 2025年5月26日
基準点確認動作が動いていない。リクエストはでている。但し358(357?)度で出た。
5月2日4時13分から動かした。
リクエストは動かした時点(5月2日なので)で立っているのでOK。
機械的オフセットが「1」なので、現在位置が1に移動が終わった時に、
確認動作が入り、終わった所でリクエストが2になる筈だが、ならない。
現在位置が「4」になるまで動かしたが、リクエストは「1」のままで「2」にならない。
何故か? 今日はここまで
- 2025年5月27日
日にちが3日になったらリクエストは「0」になったので、リクエストの操作は良い。
機械的オフセットが「1」では無く「13」になっていた。
表示の時、3桁目がLCD表示範囲から外れたいたので1の様に見えてしまった。
昨日は現在位置が「4」までしか見なかったが、「13」まで見ていたら、確認動作がうごきだしたと思う。
表示位置を動かして3桁目まで見える様にした。
また、機械的オフセットのデフォルト値が「13」は違いすぎるので、「2」に変更した。
ビルドが出来た。まだ書き込んでいない
CPUに書き込んで、動作を確認した。
ズレていない時と、ズレている時の補正で来た時、出来なかった時動作(エラーで1分毎のLED点滅)、を確認した。
これで、ソフト的な動きは出来た事にする。
但し、この後も表示とか細かい修正は有るかもしれない
- 2025年6月2日
連続動作をさせていたが、本日の3時54分の機械的な位置が2でで止まっていた。
1分割込みが入った時の動作が、LEDの速い点滅で、指針を動かしていなかった。
機械的基準点+オフセットの位置なので、その確認動作が360回動かしても完了しなかったことになる。
リセットをしたら、正常に動作して、現在の時刻に相当する位置まで指針は動いた。
その時、センサーのA/D値で位置を確認する動作が無いような生かしたので、
多分止まっていた位置のままで、センサ位置が確認でたのだとと思う。
と言う事は、市場動作中の止まっていた位置で、
機械的基準点+オフセットの位置の確認動作はできたハズだと思う。
なぜ、完了しなかったのかわからない。
よくわからないので、日付を6月1日に戻して、明日の明六つの時動きを一度確認してみる事にする。
朝の3時50分頃になる
- 2025年6月3日
3時50分頃は見落としたが、4時50分頃には12ステップ進んだ所で動いていた。
見ている時も数分経過すれば、指針が動いていた。
今の所、なぜ機械式基準点の確認動作がエラーになったかわからない。
現状では正常に動いていると考えると、エラーが出た時は何が悪かったかになる。
例えば、A/Dが正常に働かなくて、値が閾値(200)以下にならなかったので、
1周(360ステップ)動いて、元の位置で止まりエラーになった。
この考えは、A/Dの異常も有るが、反射板が上手く反射できない時でも、同じ状態になるだろう。
なので機械式基準点確認で LCD表示に、A/D値の最小値と最大値の、移動したステップ数を表示させたい
-->ソースは書いてビルドは出来た。まだ、CPUに書き込んでいない
- 2025年6月4日
CPUに書き込んで動作をかくにんした。
その時、センサーを足の短い物(以前使っていた物)に交換したが、
位置決めが難しい。センサーから反射板の距離が遠いとA/D値が下がらないので、
ハンダ付けをやり直す事になった。それと反射板(指針)の取り付け方が難しくて、
浮き上がると距離が開いてしまうので何度か調整をした。
この様な事から、6月2日にエラーで止まってしまった件は、反射板の微妙な位置ずれが有ったかもしれない。
文字盤にはセロテープで補強が有って、すこし盛り上がっているいる所も有るので、そこで反射板が動いてしまうと
A/D値が下がらなかったかもしれない。
現在のプログラムで連続運転をしてみる事にする。
但し、明六つの時刻に起きるのはきついので、6時間遅らす事にする。
- 2025年6月6日
5月18日の0Vのモーター電流を測る時に、0.1Ωで1.5mVなので15mAとしたが、
10:1プローブだったので、15mVと言う事になる。
セッティングが間違っていて画面表示が10分の1になっていた。
その為、電流は10倍の値、つまり150mA流れている事になる。
006Pの計算をやり直す。
-
まず、1時間当たりの平均電流を求める。
1日は360ステップなので1時間は360÷24=15ステップになる。
つまり、1時間に15回5.5mS間150mAの電流が流れると言う事になる。
なので 1時間の間に 15×5.5mS=82.5mSの時間150mA流れる事と
同等になる。
と言う事は 1時間の平均電流は 150mA×(82.5mS÷3600S)=約3.4uAになる。
(3600は 60分×60秒=3600秒の事)
-
次に動作継続時間を求める。
450mAh÷3.4uA=約130909hになり、
日数に変換すると約5454日になる。
これなら 余裕をもって10年以上も動作できる。本当か?。
- 2025年6月10日
表示の感じを知る為に、仮時刻表示板を作ってみた。
思っていた感じと大きな違いは無かったが、指針の形に一工夫必要な気がした。
指針のとがった所と、センサーの反射板の所を一体にして、
楕円を半分にしてモーター軸へ延びる棒との接続をなだらかにする感じでどうだろうか。
この表示板を取り付ける時に今の指針を外したのだが、サイド取り付ける時に
センサーの反応が弱くなってしまった。このセンサーの取り付け位置はやはり難しい。
表示板と面一にしないと、センスが相当難しい。
規格上に距離のパラメータは出ていないが、左右にずれた時の感度のグラフが有り、
その時の距離が1mmで規定しているので、1mm辺りが一番良いのだろう。
コレクタ抵抗を増やすか、赤外LEDの電流を増やす事を考える必要が有りそう。
安定性を考えたら、赤外LEDの電流を増やすのが良さそう。
現在計算上は220Ωで約8mA流しているが、100Ωにすれば18mAになる。
CPUポートの電流は20mAなので流せなくはない。
赤外LEDの電流も50mAまで流せるので問題は無い。
コレクタ抵抗は現在47kΩなので、これ以上大きくはしたくない。
LEDの電流を増やす方向で考えたい。
- 2025年6月12日
明六つの時刻の機械的基準点+オフセットの位置の確認動作を見たが、何も動かずに終わってしまった。
しかし、A/D値の最大値と最小値が更新されていない。
「おかしい!」と思ったが、これはプログラム的に1回目でA/D値がOKの時は最大値、最小値に値を入れていなかった。
その後も時計としての動作は動いているが、ちょっと位置が違うみたいに見える。
なので、一度この時点(論理上はステップ7の位置)でリセットスイッチを押して、
最初から動かして同じ位置に来るかを確認したい。
ちょっと位置がずれている。見た目で2,3ステップズレている感じ。
本当に明六つの時刻の機械的基準点+オフセット位置の確認動作が実行されたか疑問になる。
1回目でA/D値がOKの時も最大値、最小値に値を入れる様にした。
数値の表示位置を少し動かして、最大値、最小値は4桁表示にした。
ビルドをして、CPUに書き込んで、機械的基準点+オフセット位置の確認動作で
指針が動かない時も、動いた時も 最大値、最小値の表示を確認した。
- 2025年6月14日
今まで動かして来て感じた事(ソフトの範囲)
-
電源時のスイッチ入力でモード変更画面に移る動作が面倒。
スイッチが2つ有り、モードが3つなので
・何も押されていなかったら「通常の時計動作」
・セレクトスイッチが押されていたら「時計設定」
・セットスイッチが押されていたら「機械的基準点+オフセットの位置の調整」
の様に、直接各モードに移りたい。
-
電源ON時のLED点滅が長すぎる。
動作が安定しない時のチェックとしては良いのかもしれないが、
1秒周期5回(5秒間)は長い。 半分ぐらいにしたい。
-
各モードに入った時のスクロール一周は、時間的に長く感じる。
通常の時計動作ではこれで良い。
他のモードでは特に長く感じるので、
替りにモードタイトルをスイッチが離されるまで表示し、
離された後に1秒ぐらい表示すれば良いと思う。
- 2025年6月16日
6月15日のソフト上の変更したい所に変更処理
-
・何も押されていなかったら「通常の時計動作」
・セレクトスイッチが押されていたら「時計設定」
・セットスイッチが押されていたら「機械的基準点+オフセットの位置の調整」
の様に、変更した。
-
1秒間隔点滅を0.5秒点滅に変更した。
-
「時計設定」と「機械的基準点+オフセットの位置の調整」のスクロール一周は止め、
替りにモードタイトルをスイッチが離されるまで表示し、
離された後それぞれの動作表示に移行する様にした。
修正後のプログラム。
- 2025年6月18日
指針を作ってみた
- 2025年6月22日
日時を1日間違えていて、明六つの時刻の機械的基準点+オフセットの位置の確認動作を見られなかった。
10時頃の指針の位置に大きな誤差は無かったので、動作的には良しとする。
- 2025年6月23日
CDに印刷する為の時刻表示板を作った。
まだ、印刷はしていない。
- 2025年6月24日
CDに印刷する為に少し修正し物(jpeg)を印刷した。
(元psdファイル)
実際の印刷したCD
- 2025年6月26日
CDを穴あけ加工をした時、どうしても手で押さえた為、インクが指に付き、
それが白い所についてしまった。
見栄えが悪いがこのまま進める事にした。
- 2025年6月27日
CDの文字盤を取付けた。
指針の接着はしていないが、基本的な動作は確認できた。
- 2025年6月28日
機械式基準点の精度の為、指針の裏側の白面積を狭くした。
黒サインペンで白範囲を狭めた。
- 2025年6月30日
006Pの固定方法を検討してみた。
昼間部分の文字盤取付ネジ2つに、15mm長位の3Mスペーサを取り付け、
その2つに板を渡して、その板で006Pを抑える方式にしたい。
板は、アルミにするか、アクリルにするか、うまくたわむ物だと良いのだが、
どうだろうか?
今の箱をどうするか検討をした。
取りあえず、2枚のアクリル板(透明板)で挟み、その間隔はスペーサで繋ぐ事にする。
透明板はダイソーのフォトフレームにちょうど良いのが有ったので、それを購入した。
この板にはM5用の穴が4つ空いているので、M5のスペーサーとM5のビスで固定する事にする。
M5のビスは有るが、うまい長さのスペーサーが手持ちではない。スペーサーだけ購入する事となる。
試しで、M3とワッシャで雰囲気を見るのも良いかもしれない。
まずは、基板取り付け穴(M2用)を空ける必要が有る。
- 2025年7月2日
前日(7月1日)に9Vを3時間ほど切って、指針の動作を停止させた。
本日(7月2日)の5時頃に指針を見たら、正常な位置に戻っていたので、
明六つの時刻の機械的基準点+オフセットの位置確認動作は正常で、あらためて良しとする。
6月30日に検討した006Pの固定方法に決めた。
(文字盤を止めるビスにスペーサを取り付ける方法)
M3スペーサーで取りあえず組み立てた。
今の所は、ここまでで終わりとする。
今後は、回路、基板を手直しした物で進めたい。
- 2025年7月3日
今回組み立てた物は、プログラムがデバッグ表示を行う様になっている。
実際の動作では、デバッグ表示をやめないと電池の消耗が大きいので1年は持たない事になる。
プログラムを書き換えるのは面倒なので、
電源ON時のスイッチ操作でデバッグモードのモード変更をする画面に行き、
そこで、デバッグモードと通常モードの切り替えが出来る様にしたい。
これは、次の回路、基板を手直しした物で実現できれば良いと思う。
組立上の問題だが、縦置きにすると指針が少し浮き加減になる様で、
機械式基準点の見地が出来ない事が有る。
この次の基板組み立てでは、センサーの半田付けを文字盤を取り付けた後にした方が良いと思う。
一つのピンだけハンダ付けする仮付けで進めても良いと思う。
指針の形、材質を変えるのも有りだと思う。
以前にも書いたが、センサーのLED電流制限抵抗を小さくする事も有りだと思う。
- 2025年7月5日
取扱説明書を書いた。