第63話 タイミングを計算する
翌日から、わたしと父は土間の新しい作業台を組み立てていた。
父が前日に切り出した木材を組み合わせて、いつもの工房の机より一回り大きい台を作った。脚は太い柱で、天板は分厚い板を二枚並べた構造。装置の試作と組み立てに使う台だった。
「ここに、水門の試作機を置く」
小さく頷いた。
「机の脇に、判断機構を置く」
頷いた。
二人で台を運んで、工房の隅に設置した。元の作業机との間に、ちょうど一人分の通路が残った。
◇◇◇
午後から、わたしは設計図を描き始めた。
父の引き出しから古い羊皮紙を一枚出してもらって、その上に炭の細い棒で、装置全体の構成を描いた。
——時刻測定の機構。
——水位測定の機構。
——判断機構(論理ゲート+穿孔布)。
——出力機構(水門の上下)。
四つの大きな部品。それぞれが独立して動いて、最後に一つの大きな装置として水路の脇に置かれる。
「お父さん」
「うん」
「時刻を測る方法は、置時計の振り子で十分」
「ふん」
「水位を測るのは、浮きを使う。水位が上がると、浮きが上がる。浮きの動きを歯車に変える」
父が黙って耳を傾けた。
「水位と時刻の組み合わせで、機械が判断する」
「判断、というのは」
「『朝の二刻に水位が三本目以下なら、水門を開ける』『水位が六本目以上なら、開けない』。そういう決まりを、機械の中に書き込む」
父がしばらく羊皮紙を眺めた。
「決まりは、どこに書き込むんだ」
「お母さんの織った布に」
父が眉をかすかに上げた。
それから、ゆっくり指で羊皮紙の上をなぞった。
「リナ。村の人にこれを話すなら、こう言うんだ」
父の指が、わたしの図の四つの部品を一つずつ叩いた。
「『時計が時を計る。浮きが水の高さを見る。布に書いた手順の通りに機械が縄を引く』」
「うん」
「『朝の決まった時間に、水が少ないと縄を引く。多いと引かない』。それだけだ」
頭の中で、自分が組み立てた仕組みが、父の言葉で一段薄くなって出てくるのが分かった。
時刻測定。水位測定。判断機構。出力機構。——その四つの言葉が、父の口の中で「時計」「浮き」「布の手順」「縄」に置き換わっていた。
(——お父さんは、村の言葉に翻訳できる人だ)
父はそれだけだった。けれど、こちらの説明を最後まで聞いていた。
◇◇◇
二日目。
わたしは古い水時計を取り出して、机の隅に置いた。あの夏にグスタフ工房で完成させた、家族の中だけで使う水時計。あれを応用すると、振り子時計より細かい時刻も測れる。
ただ、屋外で使うには、水時計より振り子時計の方が安定する。冬の朝の冷気で水が凍ったら、水時計は止まってしまう。
「お父さん、振り子時計を、一台組ませてください」
「ふん」
父が引き出しから時計部品の予備を取り出してくれた。ぜんまい・振り子・歯車・文字盤。父が普段、置時計の修理に使うのと同じ部品だった。
「リナの分は、文字盤は要らないか」
「うん。時間そのものは、人が見るためじゃない。機械が読むため」
父が短く息を吐いた。
「だったら、針も要らない」
「そう」
「時刻に応じて、別の歯車が回るだけでいい」
頷いた。
父の手で、半日で振り子時計の骨格が組み上がった。普段の置時計と違って、文字盤も針もない。代わりに、時刻に応じて回る『時刻の歯車』が、装置の上に剥き出しで取り付けられていた。
ぜんまいを巻いて、振り子を揺らした。
時刻の歯車が、ゆっくりと回り始めた。
(——時を刻む、機械の心臓)
◇◇◇
三日目。
水位センサーの設計に入った。
水路の脇に縦の管を立てて、その中に浮きを浮かべる。浮きの上端に細い糸を結んで、糸の反対側を歯車に巻き付ける。水位が上がると浮きが上がって、糸が引っ張られて、歯車が回る。
「お父さん、これでいい?」
父が浮きの試作を覗き込んだ。木の塊を削って作った、ただの浮き。水に浮かべると、ちゃんと上下した。
「糸が、ぴんと張ってないと、歯車が回らん」
「うん。錘を反対側に付ける」
父が頷いた。
「糸を引っ張る方向と、緩める方向が、両方とも歯車に伝わるように」
頭の中で前世の言葉が立ち上がった。
(——ロータリーエンコーダー)
(——軸の回転を、デジタル信号に変える)
(——前世なら、光学式や磁気式で精密に測る)
(——ここでは、歯の数で粗く測る)
歯車の歯の数を、水位の杭の傷と同じく『一本目』『二本目』『三本目』と六段階に分けた。一段階上がると、対応する歯が一目分だけ前に進む。
水位センサーが完成した瞬間に、簡単な試験をした。
浮きを上下させると、歯車がぐるぐる回る。水位の杭の傷一本分が、歯車一目分に対応する。
「動いた」
「ふん」
父が短く頷いた。
◇◇◇
判断機構の設計が、一番難しかった。
時刻の歯車(八つの値)と水位の歯車(六つの値)を入力にして、『今、水門を開けるべきか』『閉めるべきか』『そのままか』を出力する仕組み。
最初はシンプルなルールから始めた。
——朝の二刻(時刻の歯車が朝の位置)、かつ、水位が三本目以下(水位の歯車が三本目以下の位置)→ 水門を開ける。
——朝の二刻、かつ、水位が四本目以上 → 水門を開けない。
——時刻が朝の二刻以外 → 水位に関わらず、水門を閉めるか、そのまま。
これを論理ゲートで組み立てる。
AND ゲートを使って、『朝の二刻』と『水位が三本目以下』を同時に判定する。両方が成り立った時だけ、『水門を開ける』の信号が出力される。
XOR ゲートで、『水位が三本目以下』と『水位が四本目以上』を排他的に区別する。
これらの組み合わせを、ぜんまいで動く軸と歯車で物理実装する。
——前世なら、論理回路を半導体で組む話。
——ここでは、機械式論理ゲートで物理的に組む。
「お父さん、論理ゲートが、四つ要る」
「ふん」
「AND が二つ、XOR が二つ」
「グスタフのところに頼むか」
「お願い」
午後、わたしと父はグスタフの工房に行って、精密歯車をまとめて頼んだ。
グスタフは話を聞きながら、何度か頷いた。
「数が多いな」
「……ごめんなさい」
「礼はいい。だが、数日くれ。紅の月の九日の朝までには揃える」
「分かった。待つ」
それで決まった。
◇◇◇
判断機構の設計の最後に、わたしはエマの織った穿孔布をもう一段応用することにした。
毎日のスケジュールを布に書き込む。
布の縦糸を『時刻』に対応させて、横糸を『水位』に対応させる。藍色の目は『その時刻と水位なら水門を開ける』、生成色の目は『その時刻と水位なら開けない』を意味する。
『朝の二刻、水位三本目以下なら開ける』というルールが、布の上の藍色の目一つで表現される。
『朝の二刻、水位四本目以上なら開けない』というルールが、生成色の目一つ。
他の組み合わせも、すべて布の上の藍色/生成色で表現できる。
布を読み取り装置にかけて、論理ゲートが布の指示通りに歯車を回す。歯車の組み合わせで、水門の上下を決める信号が出力される。
(——これで、判断ルールを変えたい時は、布を変えるだけで済む)
(——機械の中身を組み直さなくていい)
(——前世なら、これは『ソフトウェア化』だ)
頭の中で、装置全体の概形が立ち上がっていた。
時刻測定(振り子時計)
水位測定(浮き+歯車)
判断機構(論理ゲート+穿孔布の読み取り)
出力機構(ぜんまい+ラチェット+縄巻き)
四つの大きな部品が、一本ずつ細い軸で繋がる。
ぜんまいを一度巻けば、最初の動力で振り子が揺れ始めて、時刻の歯車が回り始める。
浮きが水位を読み取って、水位の歯車を進める。
布を読み取り装置にかけると、時刻と水位の組み合わせから、論理ゲートが判断を出力する。
判断信号が出力機構のラチェットを動かし、縄巻き軸が回って水門が上下する。
(——前世なら、リアルタイム制御システム)
(——センサー、判断、アクチュエータの三段構造)
◇◇◇
三日目の夕方、振り子時計の試作が、ぜんまいの力で動き始めた。
机の上で、振り子が左右に小さく振れている。下の歯車が、ゆっくり、しかし確実に進んでいた。
「お父さん、時計が動いた」
「ふん」
父はドライバーを置いて、机のこちら側を覗き込んだ。
「これが、機械の心臓か」
「うん」
「動き続けるか」
「ぜんまいが切れるまで、一日と半日くらい」
父はそれだけ言って、振り子を眺めていた。
工房の窓の外で、紅の月の夕陽が、一日分の長さを終えようとしていた。机の上で、振り子時計の小さなチクタクという音が、その時間を刻んでいた。
(——これから何日かで、残りの部品も揃う)
(——時刻と水位と判断と出力が、全部繋がる)
(——その時、機械が、本当に水門を動かす)
声には出さなかった。
父が振り向いて、わたしの方を見た。
「リナ」
「うん」
「お前さんは、今日、もう帰っていい」
「お父さんも、もう帰る?」
「俺は、もう少しここにいる」
父はそれだけ言って、また自分の作業台に向かった。
工房を出ると、紅の月の夕方の空が、藍色から黒に変わっていく途中だった。
(——歯車が届くまでに、続きの作業を進めておく)
(——機械が、自分で時を測り始めている)
土間の戸を開けると、エマの作る粥の匂いがした。
■あとがき・解説
第63話は、リナと父アルベルトが工房の隅に新しい作業台を組み上げて、装置全体の設計図を描く回でした。振り子時計(時刻測定)、浮き+歯車(水位測定)、論理ゲート+穿孔布(判断機構)、ぜんまい+ラチェット+縄巻き(出力機構)——これまでに別々に作ってきた発明が、一つの大きな装置の四つの部品として配置されていきます。今回はその「既にある部品を組み合わせて、新しい役割を持たせる」という発想について、ゆるく書いていきます。
■この話で出てきた言葉
■「センサー・判断・アクチュエータ」——制御システムの三段構造
リナが設計した装置の全体像は、前世の言葉でいうと「リアルタイム制御システム」のいちばん古典的な構成と完全に同じものでした。
第一段は「センサー」——周りの様子を測る部品。リナの装置では、振り子時計が時刻を測り、浮きと歯車が水位を測る。第二段は「判断」——センサーから受け取った情報をもとに、何をすべきかを決める部品。リナの装置では、論理ゲートと穿孔布の組み合わせがこれを担う。第三段は「アクチュエータ」——判断結果に従って実際に世界を動かす部品。リナの装置では、ぜんまいとラチェットと縄巻き軸が水門を上下させる。
身近な例だと、家庭の温度調節機もこの三段構造で動いています。温度を測る部品、設定温度と比べてヒーターを動かすか止めるかを決める部品(判断)、実際にヒーターを点ける部品。前世のあらゆる自動制御の機械は、規模の大小はあれど、ほぼ全部この三段構造の上に乗っています。
■「ハードウェア記述の応用」——布で書かれたルールが、機械の振る舞いになる
第55話で触れた「ハードウェア記述」が、この回でさらに一段先に進みました。あの時の布は「計算式 1 + 1 = 10」を表していました。今回の布は「朝の二刻、かつ、水位が三本目以下なら、水門を開ける」という判断ルールを表しています。
布の縦糸を「時刻」、横糸を「水位」に対応させて、藍色の目で「開ける」、生成色の目で「開けない」を表現する。同じ装置のままで、布だけ差し替えれば判断ルールを変えられる——これは前世の言葉でいうと「ソフトウェア化」と呼ばれる発想の入口です。装置の中身はそのまま、振る舞いを決める指示だけを取り替えられるようにする。
布の上に書かれているのは「計算」ではなく「判断ルール」になりました。同じ織機で同じやり方で織った布が、機械の中での意味だけを違える形で別の役割を持つ。エマの織機が、計算機の指示書と判断機の指示書を、別々の布として作り分けられる装置になっていた——これは大きな汎用化の一歩でした。
■「ロータリーエンコーダー」——回転を、段階に変える
リナが浮きの仕組みを設計しながら頭の中で呟いた「ロータリーエンコーダー」という言葉。あれは前世の世界で、軸の回転を機械が読める段階値に変換する部品の総称でした。
光学式のものは、軸に貼った縞模様を光で読み取って、回転位置を細かい数値として出力します。磁気式のものは、軸の磁石の向きをセンサーで拾って同じことをします。リナの装置では、これを歯車の歯の数という素朴な形で実装しました。浮きが一段階上がると、歯車が歯の一目分だけ進む。六段階の水位が、歯車の六目分の回転に対応する。
精度は前世の電子機器に比べたら段違いに荒いけれど、原理は完全に同じです。「連続的な物理量(水位)を、段階的な数値(歯車の歯)に置き換える」。判断機構の入力として使うには、これくらいの粒度で十分。荒さを承知の上で「粒度を選ぶ」のも、設計の一部です。
■「既存資産の組み合わせで、新しい機能を作る」
この回の本当に大事な所は、新しい部品を一切発明していないことです。振り子時計は父の置時計の応用。水位センサーは浮きと歯車の組み合わせ。判断機構は第41-43話で組んだ論理ゲートと第55話で織った穿孔布の応用。出力機構は第58話で形にしたぜんまい+ラチェット+縄巻きの応用。
前世のものづくりでも、新しい装置はだいたいこういう形で生まれます。完全に新しい部品を一から作るのは、ごくたまにしかない。普段は、既にどこかで動いている仕組みを四つや五つ集めてきて、それらを噛み合わせる軸と歯車を新しく設計する。「組み合わせの妙」が、設計者のいちばんの腕の見せ所になります。
夕方、振り子時計の試作機が、ぜんまいの力で初めて動き始める場面。机の上で振り子が左右に揺れて、下の歯車がゆっくり進む——文字盤も針もない、人のためじゃなくて機械のための時計。父が「これが、機械の心臓か」と短く確認してくれた一言が、この回の静かな締めでした。次の話もお楽しみに。




