2020年 4月 5日
| 【DIY】HAL9000自作【2001年宇宙の旅】
| ひる |
| 世の中パンデミックでとんでもないことになっていますが、外出自粛もこれ幸いと利用してここ3か月ほど家にこもってモノづくりをしていました。 スタンリー・キューブリック&アーサー・C・クラークの映画「2001年宇宙の旅」に登場するAI、HAL9000(のインターフェイス部分)です。
 1968年に公開された同作品は、名作映画として不動の地位を築き、定期的にリバイバルやリマスター等されていますが、 2年前の2018年は公開50周年記念ということで、初公開当時と同じ70mmフィルムでの上映が限定的に行われるなど、大々的なリバイバルが行なわれました。 元々この映画のファンで、20年以上前にアーサー・C・クラークの小説版も(続編3冊も込みで)読んでいるくらいなのですが、 科学者&小説家であるクラークの緻密な描写力や、キューブリックの完璧主義な映像美には興味あったものの、登場するメカやキャラクターとかにはそこまでのめりこんでいませんでした。
が、2018年のIMAXでのリバイバル上映(これはフィルムではなくデジタルリマスター版)に一緒に観に行った友人のバーマスターがやたらハマってしまい、 それ以降「2001年」グッズやらポスターやらを買い集め、さらには翌年(2019年)に発売されることになったHAL9000のプラモデルも予約していました。 海外製とはいえ、アマゾンで6000円台という割と高価格なプラモデルで、自分は当初まったく興味がなかったのですが、 春発売のはずが秋に延期されたりしているうちに、なんか興味がわいてきて、気づいたら自分も予約してしまっていました。
 結局めでたく発売されたのは11月末で、12月初めにようやく届いたのですが、大方は予想していたもののやはり海外キット、6000円の価格には見合わない内容で少し残念。 赤色LEDでHALの「目」は光るものの、回路はLEDとON/OFFスイッチと単9電池(今時・・・)だけという単純なもので、 キットの唯一のメリットとしては、映画で使われたプロップモデルの寸法やディテールに忠実なことくらいか。
 あまつさえ、今時のキットなら純粋なプラスチックではなく、複合素材(メタルやエッチングパーツとか)を使ったりしてくれてたら良かったのに、 全部スチロール樹脂でパーツがほぼ一体化されていて、塗り分けが必要という悲しいキットを手に、少し途方にくれました。
案の定バーマスターからも、自分では塗り分けできないので作って!とキットを託され、2個あれば1個失敗しても余裕と思いながら、とりあえずキットを完成させました。 ま、ぶっちゃけ塗装しただけですが。 最初はディテール面で一番残念仕様の「目」のレンズ(ただのクリアのドームパーツ)をどうにかしようと思いましたが、 (HAL9000の「目」は1960年代のNIKONの魚眼レンズで、当たり前だがただのドームではない) クリアパーツの改造は経験もなく、いじり始めたら完成しなくなるので、一旦はそのままで。
 年末にキット完成品をバーマスターに納付しましたが、このまま自分のキットも塗装で済ます訳にはいかない。 ていうか、もっとリアルなHALをバーに飾りたい。 そこでレンズとかのディテールアップもしかり、何よりただ赤く光るだけの回路ではなく、せめてHALの声で喋らせたいよねという構想を練って自作を決意しました。 それが正月休み中。まだ新型コロナウィルスが武漢だけだった頃。
まずディテールアップの面でやりたかったのは、先ほどから言っているレンズ部分。 NIKONの魚眼レンズの同型写真を元に、レンズは凸レンズ(実際は凹レンズ)でフォーカスリング部分に刻まれている文字(キットではデカール)をちゃんと彫りたい。 そしてスピーカーグリル部分。 キットではモールドだけで穴が開いてないのでドリルで開けたのですが、裏面に梁が走っていて綺麗に開けられず、さらにはモールドのメリハリがないのでもっと強調したい。 そして何より、外周のアルミベゼル部分。 プラのシルバー塗装では金属感が出ないし、一体パーツでは塗り分けも面倒なので、ここはホームセンターのアルミ板材で作りたい。
で、キットのディテールアップで済む部分はそれでも良かったのですが、せっかくなので全面的に手直したくなり、まずはMetasequoiaで3Dモデルを作ってみる。 フリーハンドでのディテールアップがほぼ無理なスピーカーグリルを作っていたら、なんかうまくいったので3Dプリンタで印刷してみたい。 ただし、自宅にあるちょっと古い3Dプリンタではうまく出来なそうだったので、まずは新型プリンタを買うことに。

 4万円ほどのFDM式3Dプリンタを購入し、スピーカーグリルを印刷してみると・・・思ったより綺麗に印刷できました。最新の3Dプリンタは凄い。 これならNIKONのレンズボディ部分(フォーカスリングの文字入りで)も作れるんじゃないか? しかし3Dモデルに文字入れすること自体やったことがなく面倒そうなので、こっちは後回しにしてレンズをいじってみることにしました。 外型そのものはキットのクリアドームで問題ないので、内側に透明樹脂を流し込んだら凸レンズになるじゃん?と単純に考え、エポキシのクリアレジンを買ってきました。 いきなりメインレンズに流し込んで失敗したらイヤなので、内部のサブレンズでテストすることに。
これ自体はうまくいったのですが、調べるうちにクリアレジンというのはいずれ黄変するらしいとのこと。 ただのクリアパーツでも日光にさらすと黄変することが多いですが、レジンは特にひどいらしい。 で黄変しにくいレジンを探していると、UVクラフトレジンというのが目に留まりました。 ネイルアートやら小物アクセサリDIYなどで最近メジャーになった(すなわち女子向け)、紫外線で固まるレジンです。(エポキシレジンは2液混合) 新しい素材を試したいということもあり、試しにUVクラフトレジンとUV-LED照射器を購入しました。
 が、結果から言うとこれこそちゃんとテストすべきだった。 いきなりメインレンズの内側にナミナミとUVレジンを注ぎ、UV-LEDを照射してみると・・・おおっわずか数分で固まっている!凄い・・・しかもちゃんと凸レンズになったよ。 ・・・満足してたら、実は硬化していたのは表面だけで中はドロドロのままだったため、しばらくすると内部に気泡ができ浮いてきて、表面をつついたら中身が流れ出してきました。 もう元には戻せずレンズパーツをダメにしてしまい・・・レンズ全体を自作せねばならない状態に。 まあでも、エポキシレジンもUVレジンもあるし、なんとかなるだろ・・・とこのときはそれほど問題と思ってなかったんですけどね・・・その後こんなに苦労するとは。
ちなみにHALのボイス回路はレースSIMコントローラ製作時に間違えて買って余っていたArduinoUNOで作ろうと思ったのですが、 Arduinoのメモリはせいぜい数百KBくらいしかなく、とてもボイスデータが入る余地はない。(8kbpsくらいの低音質なら出来るかも知れんが) ArduinoでMP3を鳴らす方法はないものかと調べると・・・ちゃんと方法はありました。しかも割と簡単な基盤追加で。 「DFPlayer Mini」というArduino用のアドオン基盤があり、これにはMP3デコーダ+D/Aコンバータ+スピーカアンプ+マイクロSDカードスロットが一体になったもの。 しかも超小型なうえに2個セットで700円くらいと激安。 基盤にアンプも内蔵しているので、あとは適当なスピーカーさえあれば音は鳴らせる。 ただし音量が手動調整できない(スクリプト内で調整はできるが)ので、別途アンプを付けることも可能ということで、 手持ちで使わなくなったPC用スピーカーを分解して、スピーカーと合わせて一応アンプ基盤も取り出しておきました。まあ結局使わなかったけど。
ちなみにボイス発声のタイミングとして理想的には、音声認識するスマートスピーカー方式ですが、 さすがにこれはArduino程度では設計できないし、ラズベリーパイ(まだ未経験)とかに切り替えたとしても音声認識はとんでもない技術力が必要なので、とても個人ではムリ。 となると単純な方法としてはボタンを押すとそれに応じたセリフをしゃべる方式か、前に立った時にセンサーで感知して勝手にしゃべる方式くらい。 当初はボタン方式を検討してましたが(ボタン余ってるので)、HAL9000本体にはボタン設置できないし、コントローラをつなぐのはダサいので、センサー方式にしました。 これまた人感センサーが3個セット激安でアマゾンにありました。
もちろんボイスに加えてLEDを光らせるのもArduinoにやらせれば電源一つで済むので、それも同時にプログラムします。 で、ただ「目」を光らせるだけでは芸がないので、背面に間接照明を付け、壁に設置したときにHALを幻想的に浮き上がらせる方法も検討。 さらに、表面も「目」だけではなく「HAL9000」のロゴも光らせたい。 オリジナルの「2001年」のときはロゴは一切光ってないので、この効果はウソになりますが、続編の「2010年」(キューブリック映画ではないがクラークの小説が元)では光っているのです。 「2010年」のHALはオリジナルと形状も含めてデザインがかなり違いますが、ロゴを光らせるアイデアは悪くない。 ということで、これも回路に組み込むこととして、回路設計とIDEのプログラミングをしました。
 回路設計なんて、電気の知識のない自分にはまったく不向きですが、Arduinoは本当によく出来ていて、意味の分からない抵抗とかダイオードとかは基本的に不要で、ただつなぐだけで良い。 残念ながらアドオンのDFPlayer Miniをつなぐには1個だけ抵抗が必要ですが、これはアマゾンの商品説明にも1KΩを1つここに繋げと指示があったので特に問題なし。 ただ、手持ちでは100Ωだかしかなく、電子部品を1個だけ購入とかは秋月とか共立電子とかに出向かないとダメなので(オンラインでは送料が高い)、 今後のためにと抵抗キットを購入しましたが、多分こんなにあっても使わんだろうな・・・
 なんだかんだでテスト基盤を組み立てて、プログラミングも試行錯誤しながら(いろいろググって)設計し、なんとか理想の動作をするようになりました。 ボイスはとりあえず「2001年」と「2010年」から実際にHALがしゃべっているシーンを切り出して、印象的なセリフ15種類をMP3化しましたが、 プログラムではただ単にランダムにSDカード内のMP3を再生してるだけなので、あとから追加してもほぼプログラム変更せずに対応できます。 もちろんただのMP3なので、セリフ以外の音楽とかでもなんでもいけます。
さて回路設計は完成しましたが、外装パーツがまだまだです。 ベゼル用に3o厚のアルミ平板を買ってきましたが、角の部分は正確に45度にカットしないとぴったり合わないため、フリーハンドでは難しい。 が、金属の精密切削工具は高いし、たった8か所の45度切断くらいなら治具を作ればフリーハンドでもなんとかなりそうと思い、せっかく買った3Dプリンタで治具も印刷しました。 3o平板がピッタリ入って動かないスリットに45度のレザーソー用スリットの付いた治具と、切断後に正確に45度でヤスリを当てられる治具。
 そもそもの本体フレームは当初5o厚の発泡プラ素材(何たらフォーム)で枠組を作ってみましたが、精密作業が超下手糞な自分には歪んだフレームしか作れない・・・ 結局これも正確に90度が出せる3Dプリンタで。 ただし、購入した3Dプリンタは以前よりは大きいものが印刷できるといえ、200mm四方程度が精一杯で300mmを超えるフレームは一発で作れないので、4分割方式です。 2分割ではなく4分割なのは、背面間接照明スペースのことと元キットよりアルミベゼルの厚みを薄く見せたいために2段構成にしたから。 映画のHALのインターフェイスは壁に埋まっていますが、実際に壁に埋め込むわけにはいかないので、映画同様薄く見せるにはこういう仕掛けが必要。
 さてこのDIYで一番難儀したのが、キットで一番残念だった魚眼レンズです。 当初行なって失敗した、UVクラフトレジン流し込みですが、一応固まったと思って触ってるときに気づいたのですが、明らかに本物はこんな単純な凸レンズじゃないと。 凸レンズだとしても内側も湾曲している薄いタイプか、または凹レンズかも知れない。 調べたところ、NIKON魚眼レンズの断面図が出てきたのですが、これは衝撃。 というか、本物の光学カメラがわずか2枚のレンズで構成されているはずがないことにさっさと気づけよと。スマホのカメラだって4,5枚のレンズ使ってるのに。
 この画像では凹レンズ4枚に凸レンズ1枚の計5枚構成に見えます。(奥にもっとあるようにも) さすがにこれを全部再現することはできないので、やはり完全再現ではなくそれっぽいカンジで作るしかない。 しかしただのドームパーツではレンズの歪みがなくてそれっぽく見えないので、なにがしかのレンズは必要。 ということで、まずは一番上のメインレンズだけは断面図と同様の凹レンズということで、型枠を作ることにしました。 エポキシレジンで作るならシリコン型とかになりますが、シリコン型による複製自体も未経験だし、せっかく3Dプリンタがあるので型枠を印刷してみました。
 エポキシだけでは黄変するらしいので、一番表面部分だけUVレジンを薄く塗って硬化させ、その後オスメス型を合わせてエポキシを流し込みました。 型の隙間からダラダラ樹脂が流れ出し、途中で何回か樹脂を足す必要があってうまくいってる気がしなかったのですが、とりあえず一晩放置。 硬化後型から取り出したところ(結局型枠は破壊する必要があったが)、予想どおり大失敗でした。 樹脂が流れ出して足りなくなってる部分に加え、気泡だらけ。 この後も何度か型枠の方法を変えて流し込み製法を試しましたが、何度やってもどんなに工夫しても(気泡を抜くために粘度を落としたり振動を与えたり・・・)細かい気泡は消えませんでした。 慣れない手法でいまさら努力するより文明の利器を利用しようということで、手流し方法は諦め3Dプリンタに解決を求めました。 もちろん、いまあるFDM方式では透明フィラメントを使ってもレンズが作れるほどの透明度は出ない(無理くり試してる人はいたが)。 となると別の方式である、光造形方式くらいしか知らない。(後で調べたらプロレベルでは他の方法を使ってレンズを作ってるみたい) で、レンズを作るために光造形式の3Dプリンタを購入。
 さあ、たかがHALのDIYのために何だか分からない状況になってきました。 セットで買った透明樹脂でレンズの印刷を試みますが・・・光造形のプリンタはさらに印刷面積が狭いので、直径90mm程度のHALのレンズすら寝かせて印刷できない。 そうするとFDMとは逆に天面側に造形物が貼り付く光造形方式では、サポート材をしっかり作らないと落下の恐れがあり、案の定はじめは何度やっても落下して失敗しました。 色々工夫してようやくレンズの造形に成功しましたが、形状が崩れたりたまに気泡が入ったり(手流しよりははるかにマシだが)、結構苦労します。 あまつさえ、造形したパーツを見てみると、最初から樹脂が黄色い。(黄変ではなく) 500g2000円台の安物レジンだからかとも思いましたが、調べると倍の値段の純正樹脂やさらに高価格な高級樹脂でも完全透明はない模様。 なぜなのかは分からないが、とにかく3Dプリンタ用の透明樹脂は透明ではないことが分かりました。(業務用とかは知らないが) これでは今までのエポキシ樹脂の黄変の心配以前の問題で(成形直後はエポキシもUVレジンも完全透明です)、途方にくれましたがあることを思いつきました。 手流しで失敗したクラフトレジンなら完全透明なんだし、これも光造形プリンタの樹脂と同じUVレジンなんだから、どうにかすれば使えるんじゃないの?と。 試しにそのままプリンタのバットにクラフトレジンを流し込んでテスト造形してみると、粘度がかなり強すぎて下のフィルムが破れそう。 そして細かい造形はムリということが分かったものの、一応ちゃんとデータの形に固まっている。(標準よりUV照射時間を多くしました) では粘度を落としてやればもう少しスムーズに、且つ細かい造形もある程度は行けんじゃないのということで、アセトンで希釈したものを使ってみました。 行けるじゃん!
 凹レンズバージョンと凸レンズバージョンを2種類モデリングし、それっぽく見えるほうを採用しようということで造形してみました。 造形自体はまあうまくいきましたが、そのままでは表面がマット状態のほぼ半透明でレンズにはならないため、研磨する必要があります。 しかも積層痕を消さないとダメなので、フツーの120〜1000番のヤスリに加え、超細かい耐水ペーパー(2000〜7000番)と超細かい研磨剤(7000〜9000番)を用意し、必死で研磨しました。 完全には積層痕が消えず、そもそも樹脂の流れが不均一な部分はどうやっても曇るのですが、なんとかレンズに見えるものが完成しました。 果たして、このレンズ製作だけでほぼ2か月、試行回数も十数回。失敗作の山が出来上がりました。 まあ一応それなりに解決して良かったけど、本物を作るのは難しいなあ・・・ 尚、レンズ構成が2枚だけな分インナーボディ形状もキットとは違い、それっぽく見えるようにモデリングしたものを使いました。
あと、後回しにしたフォーカスリングの文字入れですが、だいぶMetasequoiaの勘も取り戻してきたのと、メタセコで出来ないことをやるために以前から触るだけ触っていたAutodesk Fusionとかを駆使して、なんとか文字入れしたデータを作成。 印刷で再現されるか不安だったものの、FDM式のほうで印刷してみたら結構ちゃんと読めるものが出来ました。 ただ、白で墨入れすると文字が太くてオモチャっぽくなってしまったので、やはりこれも光造形で再印刷。 リング状で立てて印刷とかは歪む恐れがあるので、2分割で印刷したものを接着して使用。 ちゃんと接着面を工夫すればズレずに接着できたので、レンズを抑えるパーツとかも同じく光造形で。
 やはり、FDM式は強度のいるフレームやインナーパーツには良いですが、表に直接出る精密パーツには積層痕が目立ちすぎて使えないので、出来る限り光造形式でやります。 (スピーカーグリルはそもそも鋳造パーツのように梨地表面のようなのでFDMのままでOK) ホントはレンズ回りの円形メタルパーツもアルミで作りたいのですが、こればっかりは自作するのに最低限旋盤がいるし、もちろん未経験分野なのでうまくいくか分からんし、データ出力で金属加工したければCNC加工装置がいるし・・・と課題山積みなので諦めて、3DプリンタのPLA樹脂のシルバー塗装としました。
なお最大の勘違いをしていたのはフロントパネル部分です。 キットのエンボスモールドやググって調べた画像を元に、映画プロップモデルのフロントパネルは木製であると結論を出し、薄くて歪みが少なくて且つ木目が綺麗な素材として5o厚のアガチス材を使ったのですが、やはりこれを黒塗装しても綺麗な木目は出ない。 で、木目がエンボス加工されたカッティングシートで解決しようとしたのですが・・・確かに貼ってみたら結構カッコ良かったものの、完成まであと一歩という先週の段階で初めて気づきました。
 これは木目じゃない、というか木製じゃない。どう考えてもアルミ板にヘアライン加工したものです。 なんで今の今まで全然気づかなかったのか不思議ですが、ともかくそれを知るとまあまあ悪くないとはいえ木目シートではダメです。 で、改めてヘアライン仕上げのカッティングシートに貼り換えました。 究極には実際にアルミ板をヘアライン加工して塗装したいですが、諸々の穴開けも大変だし、ヘアライン加工自体フリーハンドのヤスリ掛けでは綺麗に出来そうにないので。
ちなみにロゴを光らせるのも一筋縄ではいきませんでした。 文字だけ(それも白いとこだけ)光らせるには複雑なマスキングが必要なので、まずはモデリングで裏から文字をエンボス加工し、文字以外を黒塗装して裏からLEDで照らしてみましたが・・・ロゴパネルそのもののアイデアはともかく、LED2個では光ムラが酷すぎる。 LEDを面で光らせるために、クリアパイプと光ファイバーの束を試してみましたが・・・そんな簡単に出来るもんではなく。 結局LEDテープという製品に落ち着きました。

 この状態でロゴを照らしてみると、綺麗に文字が光ってますが、よく見ると文字の周りにフレアみたいなのが。 ようするに、裏から彫り込んでいる文字の壁部分で乱反射した光がフレアを起こしている模様。これでは純粋に白い部分だけが光ってくれない。 で結局、ロゴパネルもややこしいことはせずにただの0.6o厚のクリアパネル(最初は塩ビ版でやったけど案の定まっすぐ切り出すのに失敗したのでこれも光造形で)に表は白デカールにIllustratorで作ったロゴを印刷したもの、裏は黒いカッティングシートで、カッティングプロッタで白文字部分のみを切り抜いたものを貼って完成。 (最初は表も白ステッカーだったが、シートが家のレーザープリンタと相性が悪く黒が真っ黒にならなかったためカルトグラフデカールにした)
 外装がほぼ完成したので、最後にArduino本体、DFPlayer Mini、人感センサー、各LEDライト、スピーカーを内部に配置し、配線を施し(一度目は配線が汚すぎたのでやり直し)、ついに完成しました。
 程良い明るさでLEDが光り、不気味な「目」も十分な再現度。 そして程良い感度で人を感知し、ボソボソしゃべる。 音量もちょうどよいレベルなので、ボリューム調整は不要なカンジ。 尚、もししゃべりすぎてやかましい時は、SDカードを抜いてしまえばしゃべらなくなる。 電源用に3mのUSBケーブルも用意し、壁掛け用フックも自作し(簡単に設置・装着できるけど触っただけでは落ちないレベルの)、オール完成。 そして昨日、実際にバーカウンターの奥に設置してきました。
 カッコ良すぎる。
そうそう、まだ作ってる最中の2月頃に、バーマスターからパーカーを貰いました。 「GU」で新たに発売された2001年パーカー。カッコいいし着心地いいし、使い勝手も良いので気に入ってます。
 3Dプリンタはいまや彼の意のままだが、さて次は何を作るかとなると、決心がつかないのだった。 だが、そのうち思いつくだろう。 | | | |
|