表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
魔力ゼロですが、魔法はぜんぶコードなので問題ありません 〜前世プログラマーの少女、キーボードで異世界をデバッグする〜  作者: せい | 健康優良不良プログラマ
第1部 ④「水路を動かす」

この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
63/211

第63話 タイミングを計算する

翌日から、わたしと父は土間の新しい作業台を組み立てていた。


父が前日に切り出した木材を組み合わせて、いつもの工房の机より一回り大きい台を作った。脚は太い柱で、天板は分厚い板を二枚並べた構造。装置の試作と組み立てに使う台だった。


「ここに、水門の試作機を置く」


小さく頷いた。


「机の脇に、判断機構を置く」


頷いた。


二人で台を運んで、工房の隅に設置した。元の作業机との間に、ちょうど一人分の通路が残った。


◇◇◇


午後から、わたしは設計図を描き始めた。


父の引き出しから古い羊皮紙を一枚出してもらって、その上に炭の細い棒で、装置全体の構成を描いた。


——時刻測定の機構。

——水位測定の機構。

——判断機構(論理ゲート+穿孔布)。

——出力機構(水門の上下)。


四つの大きな部品。それぞれが独立して動いて、最後に一つの大きな装置として水路の脇に置かれる。


「お父さん」


「うん」


「時刻を測る方法は、置時計の振り子で十分」


「ふん」


「水位を測るのは、浮きを使う。水位が上がると、浮きが上がる。浮きの動きを歯車に変える」


父が黙って耳を傾けた。


「水位と時刻の組み合わせで、機械が判断する」


「判断、というのは」


「『朝の二刻に水位が三本目以下なら、水門を開ける』『水位が六本目以上なら、開けない』。そういう決まりを、機械の中に書き込む」


父がしばらく羊皮紙を眺めた。


「決まりは、どこに書き込むんだ」


「お母さんの織った布に」


父が眉をかすかに上げた。

それから、ゆっくり指で羊皮紙の上をなぞった。


「リナ。村の人にこれを話すなら、こう言うんだ」


父の指が、わたしの図の四つの部品を一つずつ叩いた。


「『時計が時を計る。浮きが水の高さを見る。布に書いた手順の通りに機械が縄を引く』」


「うん」


「『朝の決まった時間に、水が少ないと縄を引く。多いと引かない』。それだけだ」


頭の中で、自分が組み立てた仕組みが、父の言葉で一段薄くなって出てくるのが分かった。

時刻測定。水位測定。判断機構。出力機構。——その四つの言葉が、父の口の中で「時計」「浮き」「布の手順」「縄」に置き換わっていた。


(——お父さんは、村の言葉に翻訳できる人だ)


父はそれだけだった。けれど、こちらの説明を最後まで聞いていた。


◇◇◇


二日目。


わたしは古い水時計を取り出して、机の隅に置いた。あの夏にグスタフ工房で完成させた、家族の中だけで使う水時計。あれを応用すると、振り子時計より細かい時刻も測れる。


ただ、屋外で使うには、水時計より振り子時計の方が安定する。冬の朝の冷気で水が凍ったら、水時計は止まってしまう。


「お父さん、振り子時計を、一台組ませてください」


「ふん」


父が引き出しから時計部品の予備を取り出してくれた。ぜんまい・振り子・歯車・文字盤。父が普段、置時計の修理に使うのと同じ部品だった。


「リナの分は、文字盤は要らないか」


「うん。時間そのものは、人が見るためじゃない。機械が読むため」


父が短く息を吐いた。


「だったら、針も要らない」


「そう」


「時刻に応じて、別の歯車が回るだけでいい」


頷いた。


父の手で、半日で振り子時計の骨格が組み上がった。普段の置時計と違って、文字盤も針もない。代わりに、時刻に応じて回る『時刻の歯車』が、装置の上に剥き出しで取り付けられていた。


ぜんまいを巻いて、振り子を揺らした。

時刻の歯車が、ゆっくりと回り始めた。


(——時を刻む、機械の心臓)


◇◇◇


三日目。


水位センサーの設計に入った。


水路の脇に縦の管を立てて、その中に浮きを浮かべる。浮きの上端に細い糸を結んで、糸の反対側を歯車に巻き付ける。水位が上がると浮きが上がって、糸が引っ張られて、歯車が回る。


「お父さん、これでいい?」


父が浮きの試作を覗き込んだ。木の塊を削って作った、ただの浮き。水に浮かべると、ちゃんと上下した。


「糸が、ぴんと張ってないと、歯車が回らん」


「うん。錘を反対側に付ける」


父が頷いた。


「糸を引っ張る方向と、緩める方向が、両方とも歯車に伝わるように」


頭の中で前世の言葉が立ち上がった。


(——ロータリーエンコーダー)


(——軸の回転を、デジタル信号に変える)


(——前世なら、光学式や磁気式で精密に測る)


(——ここでは、歯の数で粗く測る)


歯車の歯の数を、水位の杭の傷と同じく『一本目』『二本目』『三本目』と六段階に分けた。一段階上がると、対応する歯が一目分だけ前に進む。


水位センサーが完成した瞬間に、簡単な試験をした。


浮きを上下させると、歯車がぐるぐる回る。水位の杭の傷一本分が、歯車一目分に対応する。


「動いた」


「ふん」


父が短く頷いた。


◇◇◇


判断機構の設計が、一番難しかった。


時刻の歯車(八つの値)と水位の歯車(六つの値)を入力にして、『今、水門を開けるべきか』『閉めるべきか』『そのままか』を出力する仕組み。


最初はシンプルなルールから始めた。


——朝の二刻(時刻の歯車が朝の位置)、かつ、水位が三本目以下(水位の歯車が三本目以下の位置)→ 水門を開ける。

——朝の二刻、かつ、水位が四本目以上 → 水門を開けない。

——時刻が朝の二刻以外 → 水位に関わらず、水門を閉めるか、そのまま。


これを論理ゲートで組み立てる。


AND ゲートを使って、『朝の二刻』と『水位が三本目以下』を同時に判定する。両方が成り立った時だけ、『水門を開ける』の信号が出力される。


XOR ゲートで、『水位が三本目以下』と『水位が四本目以上』を排他的に区別する。


これらの組み合わせを、ぜんまいで動く軸と歯車で物理実装する。


——前世なら、論理回路を半導体で組む話。

——ここでは、機械式論理ゲートで物理的に組む。


「お父さん、論理ゲートが、四つ要る」


「ふん」


「AND が二つ、XOR が二つ」


「グスタフのところに頼むか」


「お願い」


午後、わたしと父はグスタフの工房に行って、精密歯車をまとめて頼んだ。


グスタフは話を聞きながら、何度か頷いた。


「数が多いな」


「……ごめんなさい」


「礼はいい。だが、数日くれ。紅の月の九日の朝までには揃える」


「分かった。待つ」


それで決まった。


◇◇◇


判断機構の設計の最後に、わたしはエマの織った穿孔布をもう一段応用することにした。


毎日のスケジュールを布に書き込む。


布の縦糸を『時刻』に対応させて、横糸を『水位』に対応させる。藍色の目は『その時刻と水位なら水門を開ける』、生成色の目は『その時刻と水位なら開けない』を意味する。


『朝の二刻、水位三本目以下なら開ける』というルールが、布の上の藍色の目一つで表現される。

『朝の二刻、水位四本目以上なら開けない』というルールが、生成色の目一つ。

他の組み合わせも、すべて布の上の藍色/生成色で表現できる。


布を読み取り装置にかけて、論理ゲートが布の指示通りに歯車を回す。歯車の組み合わせで、水門の上下を決める信号が出力される。


(——これで、判断ルールを変えたい時は、布を変えるだけで済む)


(——機械の中身を組み直さなくていい)


(——前世なら、これは『ソフトウェア化』だ)


頭の中で、装置全体の概形が立ち上がっていた。


時刻測定(振り子時計)

水位測定(浮き+歯車)

判断機構(論理ゲート+穿孔布の読み取り)

出力機構(ぜんまい+ラチェット+縄巻き)


四つの大きな部品が、一本ずつ細い軸で繋がる。


ぜんまいを一度巻けば、最初の動力で振り子が揺れ始めて、時刻の歯車が回り始める。

浮きが水位を読み取って、水位の歯車を進める。

布を読み取り装置にかけると、時刻と水位の組み合わせから、論理ゲートが判断を出力する。

判断信号が出力機構のラチェットを動かし、縄巻き軸が回って水門が上下する。


(——前世なら、リアルタイム制御システム)


(——センサー、判断、アクチュエータの三段構造)


◇◇◇


三日目の夕方、振り子時計の試作が、ぜんまいの力で動き始めた。


机の上で、振り子が左右に小さく振れている。下の歯車が、ゆっくり、しかし確実に進んでいた。


「お父さん、時計が動いた」


「ふん」


父はドライバーを置いて、机のこちら側を覗き込んだ。


「これが、機械の心臓か」


「うん」


「動き続けるか」


「ぜんまいが切れるまで、一日と半日くらい」


父はそれだけ言って、振り子を眺めていた。


工房の窓の外で、紅の月の夕陽が、一日分の長さを終えようとしていた。机の上で、振り子時計の小さなチクタクという音が、その時間を刻んでいた。


(——これから何日かで、残りの部品も揃う)


(——時刻と水位と判断と出力が、全部繋がる)


(——その時、機械が、本当に水門を動かす)


声には出さなかった。


父が振り向いて、わたしの方を見た。


「リナ」


「うん」


「お前さんは、今日、もう帰っていい」


「お父さんも、もう帰る?」


「俺は、もう少しここにいる」


父はそれだけ言って、また自分の作業台に向かった。


工房を出ると、紅の月の夕方の空が、藍色から黒に変わっていく途中だった。


(——歯車が届くまでに、続きの作業を進めておく)


(——機械が、自分で時を測り始めている)


土間の戸を開けると、エマの作る粥の匂いがした。


■あとがき・解説


第63話は、リナと父アルベルトが工房の隅に新しい作業台を組み上げて、装置全体の設計図を描く回でした。振り子時計(時刻測定)、浮き+歯車(水位測定)、論理ゲート+穿孔布(判断機構)、ぜんまい+ラチェット+縄巻き(出力機構)——これまでに別々に作ってきた発明が、一つの大きな装置の四つの部品として配置されていきます。今回はその「既にある部品を組み合わせて、新しい役割を持たせる」という発想について、ゆるく書いていきます。


■この話で出てきた言葉


■「センサー・判断・アクチュエータ」——制御システムの三段構造


リナが設計した装置の全体像は、前世の言葉でいうと「リアルタイム制御システム」のいちばん古典的な構成と完全に同じものでした。


第一段は「センサー」——周りの様子を測る部品。リナの装置では、振り子時計が時刻を測り、浮きと歯車が水位を測る。第二段は「判断」——センサーから受け取った情報をもとに、何をすべきかを決める部品。リナの装置では、論理ゲートと穿孔布の組み合わせがこれを担う。第三段は「アクチュエータ」——判断結果に従って実際に世界を動かす部品。リナの装置では、ぜんまいとラチェットと縄巻き軸が水門を上下させる。


身近な例だと、家庭の温度調節機もこの三段構造で動いています。温度を測る部品センサー、設定温度と比べてヒーターを動かすか止めるかを決める部品(判断)、実際にヒーターを点ける部品アクチュエータ。前世のあらゆる自動制御の機械は、規模の大小はあれど、ほぼ全部この三段構造の上に乗っています。


■「ハードウェア記述の応用」——布で書かれたルールが、機械の振る舞いになる


第55話で触れた「ハードウェア記述」が、この回でさらに一段先に進みました。あの時の布は「計算式 1 + 1 = 10」を表していました。今回の布は「朝の二刻、かつ、水位が三本目以下なら、水門を開ける」という判断ルールを表しています。


布の縦糸を「時刻」、横糸を「水位」に対応させて、藍色の目で「開ける」、生成色の目で「開けない」を表現する。同じ装置のままで、布だけ差し替えれば判断ルールを変えられる——これは前世の言葉でいうと「ソフトウェア化」と呼ばれる発想の入口です。装置の中身ハードウェアはそのまま、振る舞いを決める指示ソフトウェアだけを取り替えられるようにする。


布の上に書かれているのは「計算」ではなく「判断ルール」になりました。同じ織機で同じやり方で織った布が、機械の中での意味だけを違える形で別の役割を持つ。エマの織機が、計算機の指示書と判断機の指示書を、別々の布として作り分けられる装置になっていた——これは大きな汎用化の一歩でした。


■「ロータリーエンコーダー」——回転を、段階に変える


リナが浮きの仕組みを設計しながら頭の中で呟いた「ロータリーエンコーダー」という言葉。あれは前世の世界で、軸の回転を機械が読める段階値に変換する部品の総称でした。


光学式のものは、軸に貼った縞模様を光で読み取って、回転位置を細かい数値として出力します。磁気式のものは、軸の磁石の向きをセンサーで拾って同じことをします。リナの装置では、これを歯車の歯の数という素朴な形で実装しました。浮きが一段階上がると、歯車が歯の一目分だけ進む。六段階の水位が、歯車の六目分の回転に対応する。


精度は前世の電子機器に比べたら段違いに荒いけれど、原理は完全に同じです。「連続的な物理量(水位)を、段階的な数値(歯車の歯)に置き換える」。判断機構の入力として使うには、これくらいの粒度で十分。荒さを承知の上で「粒度を選ぶ」のも、設計の一部です。


■「既存資産の組み合わせで、新しい機能を作る」


この回の本当に大事な所は、新しい部品を一切発明していないことです。振り子時計は父の置時計の応用。水位センサーは浮きと歯車の組み合わせ。判断機構は第41-43話で組んだ論理ゲートと第55話で織った穿孔布の応用。出力機構は第58話で形にしたぜんまい+ラチェット+縄巻きの応用。


前世のものづくりでも、新しい装置はだいたいこういう形で生まれます。完全に新しい部品を一から作るのは、ごくたまにしかない。普段は、既にどこかで動いている仕組みを四つや五つ集めてきて、それらを噛み合わせる軸と歯車を新しく設計する。「組み合わせの妙」が、設計者のいちばんの腕の見せ所になります。


夕方、振り子時計の試作機が、ぜんまいの力で初めて動き始める場面。机の上で振り子が左右に揺れて、下の歯車がゆっくり進む——文字盤も針もない、人のためじゃなくて機械のための時計。父が「これが、機械の心臓か」と短く確認してくれた一言が、この回の静かな締めでした。次の話もお楽しみに。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ