2018年5月19日土曜日

錘式時計の自動巻き上げ機構

写真の棒テンプ時計は、1日に2回ほど錘を巻き上げる必要があり、結構面倒なので、これを自動化する機構を考えました。錘の紐をループにして、ゆっくり回るモーターで引っ張ります。





モータはAC100Vで1分間に1回転する仕様のものです。これに木製のプーリーを取り付け、紐をかけます。下にぶら下がっているボトルが錘の代用で、330㏄の水が入っています。この重さで紐とプーリーの摩擦を適度に調整します。



下の写真で木製プーリーは反時計方向に回転します。小さいアイドラは紐の引っ張り力を一定に保つ効果を持たせるために付けいています。なんらかの理由で引っ張り力が強くなると、モーターが時計回りに傾くので、モーターケースに固定されているアイドラが紐を右側押して、紐とプーリーの接触の長さが短くなり、引っ張り力が小さくなるという仕掛けです。アイドラの有り無しでの違いは検証してませんが、とにかく、1日2回の巻き上げをしなくて済むようになり、快適です。


2018年4月18日水曜日

棒テンプ時計の精度アップ Ver 2


メーカーフェア東京2018に出展します。



昨年のメーカーフェアでは、棒テンプの慣性モーメントを変えて往復回転運動の周期を調整するデバイスを紹介しました(リンクはこちら)。

今回は、棒テンプを吊っている糸の長さを変えることによって周期を調整する方式に変更しました。こうすることによって、デバイスは時計本体に固定されるので、ACアダプタから電源を供給できるようになりました。消費電流を気にしなくてよいので、WIFIでネットに接続してNTPから正確な時刻を取得します。またデバイスにWebサーバーを持たせ、タブレットなどのブラウザで履歴の確認やパラメータの変更ができるようにしました。


全体像です。本デバイスは時計本体の上部に固定され、赤外線センサーで棒テンプの回転を検出します。これより計算された時刻と、正しい時刻を比較し、誤差に応じて棒テンプを吊っている糸の長さを調整します。長さが長いときは棒テンプの周期も長くなり、短くなると周期も短くなります。


デバイスを上から撮った写真です。



デバイスを正面から撮った写真です。



周期調節部分の拡大です。吊り糸押さえより下の部分のみが捻じれるようにしてあります。吊り糸押さえを上下することにより、吊り糸の実効長を変化させ、棒テンプの周期を変えています。



回路図です。



タブレットで時刻誤差(秒)の履歴の一部を表示した写真です。109分前に8秒遅れ、60分前には11秒の進み、現在は4秒の遅れという履歴が読み取れます。棒テンプの周期が約4秒なので、現在のアルゴリズムではとびとびの秒数となります。最大15時間分の履歴が表示されます。



実験に使った棒テンプ時計は、ギヤが木製で、きちんとメンテナンスをしていなので、一日数分の誤差が生じ、これが毎日累積していく状態でした。この時計に本デバイスを取り付けて、自動調整を行った結果、一日の誤差は1分以内となりました。また時計の特性が大きく変化しない限り、原理的に誤差の累積はありません。

24時間のデータです。青が時刻の誤差(秒)です。


2018年3月20日火曜日

Improving Accuracy of Pendulum Clock





https://prague.makerfaire.com/makers-exhibits/
Maker of Merit prize won at Maker Faire Prague 2018!




Spring-powered pendulum clocks have accuracy of 10 seconds to a few minutes per day, and the inaccuracy accumulates every day.  The clock in the picture for this project is probably 50-year old and I could not get the accuracy better than 30 seconds per day.   We will see how it gets improved.


The period of pendulum swing cycle is
T = 2 * pi * sqrt( L / g )
where L is the length of the pendulum and g is the acceleration of gravity.
The idea of pendulum tuning is to add/subtract magnetic force to/from the gravity force and change the T.
 T' = 2 * pi * sqrt( L / (g + A/M) )
where A is the magnetic attraction force to the pendulum, and M is the mass of the pendulum.


Top view of the device.



Below is the side view.



Schematic diagram


The clock above should make 130 pendulum cycles per 147 seconds according to the gear train reduction ratio.  The time of the clock in seconds is
tc = C * 147 / 130
where C is the cycle count of the pendulum.
Every 60 seconds, tc is compared to the CPU time, and depending on the difference between the two, appropriate power is applied to the coil.
CPU time is calibrated every 5 minutes with NTP time server.


The device has web server function and any browser can access through WIFI connection.  The device status as well as the accuracy and coil power history for the last 15 hours can be displayed.  Below is a tablet screen showing a part of the accuracy history (in seconds).  In addition, device parameters can be modified with web browser.



Below is a graph showing time error and relative current on the coil for 26 hours.  A big delay on the left is because the pendulum was stopped for about 25 seconds during spring winding.  Other than that, the accuracy was within 2 seconds.



The latest hardware and software are here.




Click here to see another project for a wood foliot clock.  (in Japanese)



2017年11月8日水曜日

DRV8835を使った2輪倒立ロボの小改良

昨年作ったDRV8835利用の2輪倒立ロボの、その後の改良です。

赤外線受信素子を搭載し、テレビのリモコンで操縦できるようにしました。手持ちの東芝RegzaとLAPIOという液晶TVのリモコンのコードをデコードするようにしてあります。


モーターのPWM音が低周波でうるさいので、周波数を上げました。
このため、今まではモータードライバ用にProMiniの4,5,6,7番ピンを使っていましたが、8,9,10,11番ピンに変更し、
TCCR1B = TCCR1B & B11111000 | B00000001;
でPWM周波数を変更しています。


モーターからのノイズ対策を強化しました。それでもモーターに大電流がながれるとProMiniがリセットされてしまうことがあります。回路図です。



2017年8月7日月曜日

棒テンプ時計の精度アップ ー Gyro Sensor version

メーカーフェア2017で木楽らぼのブースに足を運んでくださった方々、ありがとうございました。また、改良のアイデアをくださった方がたにも感謝いたします。今後の開発に生かしたいと思います。同様の原理は振り子時計にも応用可能ですので、挑戦してみたいと思います。

テンプの回転検出のために磁気センサを使っていたのですが、ビッグサイトのメーカーフェア会場ではなぜか地磁気をうまく検出できず、急きょジャイロセンサに変更しました。





回路図です。



ソースコードです。ジャイロと磁気センサを#defineで切り替えられるようにしました。

最初の投稿はこちら

2017年6月21日水曜日

GR-ADZUKIで倒立振子ロボADZUMIN

MAENOH!さん作の倒立振子ロボに赤外線リモコンとサウンドを追加してパワーアップしました。



GR-ADZUKIに最小限の追加パーツで実現しています。
倒立振子は、GR-ADZUKI+ジャイロ加速度センサ(PU6050)+ダブルギヤ+車輪+電池。
赤外線モジュール追加で、リモコン操縦(NEC、家製協、SONYフォーマット)。
FETとスピーカー追加で、おしゃべり。
SDカード追加で、ランダムおしゃべりと音楽。
サーボ追加で、首振り。


回路図です。

 
ソースコード(v47)はこちら
古いソースコード(v41)はこちら
古いソースコード(v40)はこちら

「簡単な操作方法」(v47)はこちら(pdfです)
古い「簡単な操作方法」はこちら(pdfです)

倒立アルゴリズムの解説はこちら(pdfです)

サウンド用SDカードの追加方法はこちら
サウンドファイルの説明はこちら(pdfです)

(更新2017年8月6日、回路図にFETの型名を入れました)

(更新2022年11月1日、pdfへのリンク切れを修正しました)


2017年5月18日木曜日

Processingでm2xのデータをダウンロード

******************************
2020/4/19追記
2020年4月現在m2xは停止しています
******************************

最近流行りのIoTを試したみたいと思い、AT&Tのm2xを使ってみました。(無料で使えます)
m2xへのアップロードの例はネット上でいろいろ見ることができるので、ここでは、Processingを使ったm2xからのダウンロードを紹介します。

Processingのスケッチはここ


スケッチ内のfinalで宣言されている変数を適当に変えれば、動くはずです。
dataFile: PC内にcsv形式で保存されるファイルの名前です。


apiKey: m2xに登録されているPRIMARY API KEYです。
deviceId: m2xに登録されているDEVICE IDです。


stream: m2xに保存されているデータの名前(STREAM ID)です。




データファイルがない状態でスケッチを起動すると、dataFileで指定された名前のファイルがスケッチフォルダに作成され、m2xからストリームごとに一番新しいデータを1つずつダウンロードして、csv形式でファイルに保存して終了します。
データファイルがある状態でスケッチを起動すると、データファイルを読み込み、ストリームごとに、データファイルの最後のデータ以降のデータをm2xからダウンロードし、ファイルに追加します。最後にcsv形式のファイルを保存して終了します。
時刻はGMTです。