ワンウェイクラッチで時計を作る



(画像のクリックで動画が見られます)

◆機械式時計を作りたい

昭和の中頃までは、だいたいの家庭では茶の間の柱時計が時刻を知る主な手段でした。お父さんの腕時計や目覚まし時計もありましたが、いずれも電気を使わない純機械式でも結構正確な時刻を表示していました。とはいえ、次第に進み遅れが出てくるので、時々はラジオの時報で較正したりしていました。

機械式時計は、針を動かすための動力機構と、正確に時間を刻むための調速機構の2つから成り立っています。
動力機構はゼンマイバネに蓄えた力や、下げた錘にかかる重力などを動力として利用します。一方の調速機構は振り子の振動、ゼンマイバネの伸縮など等時性のある往復運動を利用して、針の進みを管理します。

振り子やゼンマイバネの往復運動を、針の進みという一方向の動きに変換するしくみが「脱進機」(escapement)です。
脱進機は13世紀のヨーロッパで発明されて改良が続き、18世紀に現在の形が固まりました。
「ガンギ車」という特殊な歯車が動力によって回転しようとするのを、往復する振り子やゼンマイバネに取り付けた爪(アンカー)で周期的に止めます。振り子が1秒で往復するようにしてあれば、ガンギ車も正確に1秒毎に回転し、これが秒針の動きになります。
振り子などには摩擦抵抗や空気抵抗がありますので、そのままでは次第に振動が減衰して止まってしまいます。この仕組みのすごいところは、動力で回っているガンギ車が、アンカーに動きを規制されつつも、逆にアンカーを推すことで振り子にエネルギーを供給していることです。動力がある限り振り子は動き続けて正確に時を刻むことができるわけです。
Chetvorno, CC0, via Wikimedia Commons

脱進機で秒針の動きさえできれば、歯車で60倍に減速して分針、さらに12倍に減速して時針を作り時計が実現できるわけです。
機械式の正確な時計の発明は、単に生活が便利になっただけでなく、現在時刻と天体の位置の関係から、何もない海上で正確に経度・緯度を知る天文航法の発展に繋がり、大陸間の交易を実現させました。GPSのある今でも、天文航法は船乗りの基礎基本の一つです。また産業革命で生まれた鉄道を、衝突せず安全に走らせるためにも、時計は必要不可欠なものになりました。

このように機械式時計には歴史的ロマンがあり、作ってみたいものですが、実際作ることで学ぶとなると、キモになるガンギ車とアンカーはかなり複雑な形状で自作のハードルが高いです。現在は3Dプリンタ用のデータも出回っていて、それを頂いてくる手もありますが、もう少し手軽に調速機構を実現できないものかと考えてみました。

◆タミヤの「ワンウェイクラッチ」

プラモやミニ四駆で有名なタミヤには、「工作シリーズ」というオリジナル工作のためのパーツシリーズがあります。
穴開きのボードにプラスチックのピンを刺すだけで、ギヤモーターなどを簡単に取り付けられ、小学生でも動く工作が楽しめるし、大人でもいろいろ試作に便利なシリーズです。

このシリーズに「ワンウェイクラッチ」という製品があるのです。


名前の通り一方向にだけ回転力を伝え、逆方向は空転するジョイントパーツで、歩行ロボットなどに応用されていますが、これを使うと往復運動を一方向の運動に変換できるのです。
あれ?往復運動を一方向に変換、って脱進機に応用できんじゃね?

◆サーボを振り子のかわりにする

ということで、これで調速機構を作ることにします。振り子をぶら下げるのも面白いのですが、振り子へのエネルギーの供給などの問題が出てきます。
ネコマ製作所は電子工作のプロジェクトですので、ここはサーボの往復運動を振り子のかわりに利用することにします。
マイコンを使えば、サーボを正確な周期で往復させることは難しくありません。さらにサーボは模型用のものでもかなりのトルクがありますので、調速機構を動力として兼ねてしまうことができそうです。
また、サーボは振り子とちがって、回転するタイミングをプログラムで自由に設定できます。例えば1分に一回動かせば、秒針を省略していきなり分針から作ることができます。

◆逆転防止機構

ワンウエイクラッチにサーボを接続するだけでは、逆方向の回転もクラッチごと回ってしまいます。逆方向の回転を阻止して、ワンウエイクラッチを空転させる必要があり、ちょうどガンギ車とアンカーの関係のような仕組みがいります。



そこで、サーボに上図のような歯車を取り付けることにしました。歯の間に弾力性のある棒が入るようにします。
サーボによって歯車が右に回転すると、棒は歯の曲線にそって曲がるため、歯車は抵抗なく右に回ります。
つぎにサーボが左に回転しようとすると、棒が歯の直線部分に引っかかって回転が止まりますが、ワンウェイクラッチが空転するため、サーボだけが左に回り、歯車は動きません。
サーボが繰り返し往復すると、歯車は右に回転し続けることになります。
実際に作ったものが下の画像です。棒(ストッパー)は試行錯誤した結果、ゼムクリップを伸ばしたものを使っています。
ゼムクリップは良質な鉄線で工作には色々役立ちます。

(クリックすると動画が見られます)


◆サーボの駆動

サーボの駆動はサーボ用のPWMが出力できるマイコンなら何でもよいかと思います。製作例の場合は1分ごとに一往復するようにプログラムしました。
製作した例の場合、歯車は12歯あるので、サーボの1往復で歯車を30度回転させます。サーボの回転角が30度丁度だと、ストッパーの遊びや摩擦があってうまく位置が決まらないので、45度程度回します。多めに回しても、逆回転で空転するときにストッパーの位置で止まるので問題ありません。

◆分・時の表示

分針に相当するものができたので、これを基準に時を表示する仕組みが必要になります。
製作例の場合は、サーボに接続された歯車は1分で30度回転しますので12分で一周します。同軸に12歯の歯車Aがあり、それに60歯の歯車Bが接続されています。
60分かけてサーボに接続された歯車Aが5周すると、噛み合っている歯車Bが1周するので、歯車Bを分表示に使用しています。



時表示には、歯車Bが12周(12時間)したときに1周する歯車Dを使います。そのために歯車Bと同軸の10歯の歯車Cと、120歯の歯車Dを噛み合わせてあります。
小学生でもわかる算数です。また時計は1分単位の60/12進法の加算器ともいえるので、これも一種の機械式計算機です。

多段に歯車を組み合わせたり、分針・時針を同軸にすれば時計らしくなりますが、一番簡単に作れて原理が見えやすいものにしてあります。

◆マイコンの使い方

・micro:bit

ワークショップモジュールを使うと簡単に接続できます。プログラムはMakecodeで簡単に作れます。
LEDディスプレイがあるので秒表示もできます。秒表示には、「micro:bit で2桁の数字をスクロール無しで表示するWhaleySansFont」が便利です。
とは言え、micro:bitをこれだけの目的で使うのは少々役不足というか、オーバースペックかも。
(写真はストッパー試行錯誤中のもので、プラスチックの板を使っています)



・Arduino

サーボの駆動だけであれば、Arduino付属のサンプルプログラム程度のもので大丈夫です。
作例では10秒刻みのLED表示や、テスト用の60倍速モードなどを入れています。


◆マイコンとサーボを使わない方法

前述したように、原理としてはワンウエイクラッチが周期的に往復運動できれば、どんな方法でもよいのです。
一つの例として、電磁ソレノイドでワンウエイクラッチを駆動する方法を試してみました。ソレノイドに周期的な電流を流して上下させ、金属棒で連動したワンウェイクラッチを動かします。
周期的な電流を発生させるにはマイコンを使えば簡単ですが、もっと単純な無安定マルチバイブレーター回路を使うこともできます。
無安定マルチバイブレータは方形波の発振回路で、一定周期でON/OFFを繰り返す用途に使えます。
作例は発振の出力をパワーFET Q3(2SK4017)のゲートに入力して、周期的にソレノイド L1を駆動しています。


無安定マルチバイブレータの周期はRCの時定数で決まります。上記の例だと、Q1側の周期T1は
T1=0.726*(RV1+R2)*C1
Q2側は対称な回路なのでR,C、周期も同じになり、全体の周期Tは
T=2*0.726*(RV+R)*C
になります。
上記の例では周期1秒のときのC=10μFにすると、R=70KΩくらいですが、RVでその前後に調整できるような値にします。
(参考)無安定マルチバイブレータの発振周波数はいくつ?

(画像のクリックで動画が見られます)

ソレノイドL1は「タカハ機工」のプッシュソレノイドCBS1240(8Ω)を使用しました。ソレノイドには逆起電力吸収用に、適当な整流ダイオードを入れてあります。
LEDは動作のタイミングを見るために入れてあるので、なくても支障はありません。

無安定マルチバイブレータの周期はRCとトランジスタの特性に依存するので、温度変化等で長時間同じ周期を維持するのは難しいと思います。この点ではクロックに水晶発振を使うマイコンにはかないません。
時計と言うよりは短時間のタイマー向きと思います。

◆ロジックICで作ったCPU「TTM8」を使ってみる

これもマイコンを使わない方法?ですが、ロジックICだけで作られているCPU「TTM8」を使ってみました。
TTM8は電子ライダーさんが作られ、「みやこ電子工房」で販売されている、CPUの内部構造を学ぶためのキットですが、8ビットのデータバスと8ビットアドレス空間、2つのレジスタ、スタックも使えるちゃんとしたCPUです。
16進のキーボードとメモリ内容を表示する7セグLEDで機械語を入力するという、往年のTK-80などを思い出す仕組みです。

(画像のクリックで動画が見られます)
ただしキーボードとLED以外のI/Oが全くないため、外部のデバイスを駆動するにはインターフェースから作る必要があります。
外部デバイス用にD0〜DFの16個のアドレスが用意されていますので、アドレスバスをデコードしてデータバスを読みだせば外部の装置で利用できます。
時計の駆動にサーボを使うにはプログラムでPWMを発生させる必要がありますが、簡単にするため、ここもソレノイドで試してみます。ソレノイドなら1ビットのON/OFFで動作できます。
インターフェースは最低限の構成です。アドレスは3ビットのデコーダー(74HC138)でアドレスバスの下位の3ビットを使えば8個のレジスタが選択できますが、この作例では1個で十分です
選択されたレジスタ(74HC273)も、データバスの最下位のビットしか見ないので、それだけをデータバス(D0)に結線します


CPUがアドレスD0に01を書き込むとソレノイドがON、00を書き込むとOFFになるので、ループで時間稼ぎをして、60秒に1回ソレノイドがONになるようなプログラムにしています。


◆歯車と躯体の製作

歯車と躯体は2.5o厚のMDFをレーザーカットしました。
歯車はFusion360に「SPUR GEAR」という歯車専用のアドインがあるので、これを利用します。作成したデータをSVGに変換してレーザー加工機のアプリケーションに持ち込めばMDFを切り出すことができます。







To be continued.