sophiaの書

探究記録

院試に対する不安を和らげるためには

院試は不安です。私が院試を受験したとき合否が分かるまではずっと不安でした。そこで不安を少しでも和らげようとしました。この記事では院試に対する不安を和らげるために私が行った方法を紹介します。加えて他の人が行っていた方法も軽く紹介します。

f:id:tlo_olb:20201228001337p:plain

不安の原因

院試に対する不安の原因はおそらく二通りあります。一つ目はもし不合格になったらと思うとつらいことです。二つ目はもし不合格だったらその次の年以降の先行きが見えなくて困ることです。それぞれについて説明します。

つらさによる不安を和らげる

自分の頑張りが報われないという事実に直面するとつらいですよ。そのような目に遭ったことがない人には分からないでしょうけどね。そのつらさに直面するかもしれない可能性がゼロではないので不安を感じます。

つらさによる不安を和らげる方法は四つ思いつきます。

  • 同じ年に院試を受ける友達を見つける
  • つらさをバネにして勉強に励む
  • 院試を受験することを秘密にする
  • 修士課程はその後の人生に影響しないと考えて割り切る

一番お薦めの方法は同じ年に院試を受ける友達を見つける方法です。私の場合、同じ研究室に所属する友達や同じサークルに所属する友達の中に院試を受ける人がいました。情報共有などの実用的な利点もありましたが、何よりも精神的に助けられました。一緒に勉強する約束をして毎日院試対策に励んでいたものです。同じつらさを持つ人が他にいれば心強いです。

二つ目はあまりお勧めしません。つらさをバネにする方法です。これは根性論なので悪い方法です。しかし私はこの方法を取ってました。集中して勉強している最中は不安を忘れます。

三つ目はもっとお勧めできません。しかし、もし院試を受けることを秘密にしておけば、不合格だったとしても他人から憐みの目で見られる可能性はなくなります。しかし秘密にする利点が無いとは言いませんが少ないです。むしろ欠点が多いです。私はこの方法を取りませんでした。

四つ目はお勧めします。どこの研究室に所属するかは就職にほとんど影響しないようです。私の先輩方は大学や大学院で関わった分野とは異なる分野の会社を志望して就職しています。たとえ第一志望の研究室に行けなかったとしても研究能力や論理的思考力は身に付きます。就職のためにはそれだけで十分です。また、博士課程で修士課程とは異なる研究室に移動することも可能なようですし、前例があります(方法は調べてないので分かりません)。私はこの事実に院試後に気付いたのでこの方法を取りませんでした。

先行きの不透明さによる不安を和らげる

私は院試のために浪人したくありませんでした。大学受験で浪人して精神的にしんどかったからです。世の中には志を遂げるために浪人をする人がいるようですが、私には無理でした。大学院でやりたいことはありましたが、浪人してまで目指したいことではありませんでした。それにお金の問題もありますからね。

私と同じ状況ではない人であっても、もし第一志望の研究室に合格しなかったときの行き先を用意しておくべきです。もしものときの行き先に実際に行くかどうかは院試が終わってから考えればよいです。院試後に選択肢が浪人しかない状況は避けるべきです。

選択肢を増やすための方法は五つ思いつきます。

  • 他の研究室を併願する
  • 院試対策と並行して公務員試験を受ける
  • 院試対策と並行して民間企業に向けた就活をする
  • 院試失敗後に就活する
  • 卒業年度を一年遅らせる

一つ目の併願については誰もが行うと思います。私もいくつか併願しました。

二つ目の院試対策と並行して公務員試験を受ける方法を私は取りました。最初は就活せずに院試対策に集中したかったのですが、親から公務員試験を受験するように言われたので受験しました。私は国家公務員採用総合職試験(大卒程度試験)と国家公務員採用一般職試験(大卒程度試験)を受験しました。受験料はかかりませんし、筆記試験の大半は院試用の知識と高校で習った内容の記憶で解けます。嬉しいことに、一度公務員試験に合格すればその効果は3年間続きます。つまりB4のときに公務員試験を受験して合格すれば、M2のときに試験を受けずに官庁訪問と呼ばれるジョブマッチングみたいな機会に参加できます(官庁訪問もジョブマッチングも経験したことないから官庁訪問をジョブマッチングと例えてよいのか不明)。ただし筆記試験にはパズルみたいな謎の問題が数多く出題されます。加えて面接もあります。そのため院試対策だけでは公務員試験に合格できません。私は院試対策をしっかりやってパズル対策を全くやらず面接対策をほんの少ししかやりませんでした。そのため筆記試験ではパズルを解かずに浮いた時間で他の問題を解きました。面接はぼろぼろでした。幸い総合職試験と一般職試験の両方に合格しましたが、好成績ではありませんでした。公務員試験はいいことばかりに見えますが、院試の結果が出る時期が遅いので官庁訪問の時期に間に合わないかもしれません。私は公務員試験だけ受けて官庁訪問に行っていないので詳細は分かりません。興味がある方はぜひ調べてみてください。

三つ目の民間就職を私はやっていないので詳細は分かりません。しかし私の知り合いは民間企業に就職しようとしたけど第一志望に受け入れてもらえなかったので院試を受けて大学院に進学しています。楽な方法ではありませんが選択肢としてありだと思います。

四つ目の院試失敗後に就活する方法もありだと思います。大学の就職支援センターに相談するとよいそうです。大学院入試合格発表後も求人募集中の企業に推薦応募できるそうです。私はこの方法を取ってないので詳細を知りません。興味がある方はぜひ調べてみてください。

五つ目の卒業年度を一年遅らせる方法を取ればもう一年学生という身分でいられます。一時的に休学すれば学費もあまりかからないらしいです(要確認)。所属研究室の教授に相談すれば良しなに取り計らってくれるでしょう。私はこの方法を取ってません。

さいごに

これから院試を受けようとしている方は今この瞬間に最善だと思える選択をすればよいと思いますよ。何が最善かは状況によって変わります。そのときどきで最善だと思った選択を続けていけば後悔しなくて済むのではないでしょうか。

タスク管理で頭の中をスッキリさせる話

この記事はWMMC Advent Calendar 2020 - Adventarの16日目の記事です。

昨日はジャッジ―さんの記事でした.ジャッジ―......強くなったな......

そしてMr. スさんの記事でした。内輪向けの話・マイクロマウスとAIの話(WMMC Advent Calendar 2020) - SUtealthLog

直リンクからしかMr. スさんの記事を見れないとのことだったのでリンクを貼っときます。WMMCのアドベントカレンダーに参加していただきありがとうございました。もしまた会ったら無駄話でもしましょう。

さて、それでは始めます。

概要図

概要図

やるべきことが多すぎる!

「よし、マウスを作ろう。」と思った時、あれもしなきゃ、これもしなきゃとやるべきことがたくさんありすぎて嫌になります。設計、部品選定、調査、組み立て、プログラミング、環境構築、部品入手、動作確認、パラメータ調整などなど。頭がパンクしそうです。そんなときにお勧めなのがタスク管理です。うまくタスク管理できればより多くのタスクをこなせるようになります。タスク管理の方法は色々ありますが、この記事では私が行っている方法を紹介します。

タスク管理でスッキリ!

私がタスク管理をするときの基本方針は四つあります。

  • 必要なタスクを全て書き出す
  • やるべきタスクに優先順位をつける
  • 一度に一つのタスクだけをやる
  • 終えたタスクを眺めて達成を得る

どの方針も重要です。

やらなければならないタスクが多いとき、全てのタスクを書き出して可視化するだけで結構頭がスッキリします。

全てのタスクにはやるべき順番があります。例えばプログラミングをしなければパラメータ調整はできません。しかしタスクの順番が分かりにくいこともあります。例えば部品選定が分かりにくいです。部品選定、動作確認の後に再度部品選定をやり直す場合があります。また、並行して二つ以上のタスクを行う場合もあります。例えば3Dプリンターでモーターマウントを作っている間に制御方法について勉強する場合です。しかしまずは3Dプリンターを起動して積層が開始してから制御方法について勉強するのであって、3Dプリンターを起動しながら制御方法について勉強するわけではありません。また、誰かに秋葉原で部品を購入してもらっているあいだに基板を設計するかもしれません。この場合は部品購入を友達にお願いしてから基板設計を行う必要があります。

一度に一つのタスクだけしかこなせないことを肝に銘じてください。そのタスクは具体的でなければなりません。例えば「調査」ではぼんやりしすぎています。ぼんやりしていると何をすればいいのか分からなくなり頭がモヤモヤしてしまいます。もっと具体的に「選定したモタドラのピン配置を調べる」などがいいです。ちなみに全てのタスクについて目的をもって取り組むといいです。例えば「選定したモタドラのピン配置を調べる」場合なら「動作確認」や「基板設計」が目的になります。ただし目的まで書き出していると面倒なので、頭の片隅に置いておく程度でいいと思います。

紙に書き出したタスクを終わらせて斜線で消すとき、結構スッキリするものです。この感覚が重要だと考えます。斜線で消したタスクがたまってくると自分が前進したことを実感できます。

Trelloを用いる

タスク管理を紙で行うと自由に書き換えにくいので結構ストレスがたまります。そこでアプリを使います。今回はTrelloというアプリを使います。このアプリはPCでもスマホでも使えます。直感的に操作できるので使いやすいです。無料でできる範囲でかなりたくさんのことができます。今回説明する操作の範囲内ではお金はかかりません。

使い方を簡単に説明します。今回はPCのウェブブラウザで作業を進めます。スマホでやる場合もほぼ同じ方法でできます。なお、この記事で説明する方法は202012月15日時点での方法です。

注:以下に出てくる画像には一部手を加えているので実際の画面とはほんの少しだけ異なる場合があります。

まずTrello用のアカウントを公式サイトで作ってください。メアドがあればあとはパスワードを考えるくらいの手間で作れると思います。

ログインしてください。

新しいボードを作成してください。その際、ボードが非公開となっているかを必ず確認してください。マウスは基本的に一人で作るのでボードをチームで共有したり全世界に向けて公開する必要はないはずです。ボード名は適当に決めてください。背景色も適当に決めてください。

ボード作成

ボード作成

するとこのような画面になります。

ボード画面

ボード画面

次にTo DoリストとDoingリストとDoneリストを作ります。ちなみにボードメニューは閉じました。

リスト追加

リスト追加

ここまででタスク管理のための準備が整いました。

ここからタスク管理を始めます。やらなければならないタスクを思いつくだけTo Doリストに書き込んでいきます。一つのカードにタスクを一つ書いて下さい。今回は適当に部品選定、部品購入、部品の動作確認、設計、基板発注、組み立て、プログラミング、調整、大会にそれぞれ対応する九つのカードを作りました。各自で都合のいいようにカードを作ってください。この作業がタスク管理の基本方針その1「必要なタスクを全て書き出す」に相当します。

カード追加

カード追加

大会の日にちは決まっているので、カードにその日にちを記入します。たぶん9月19日くらいに大会があるので9月19日と記入することにします。

大会カードをクリックします。すると次のような画面になります。

カードをクリック

カードをクリック

「期限」をクリックします。すると次のような画面になります。

期限をクリック

期限をクリック

カレンダーで大会の日付を選択します。

日付選択

日付選択

保存をクリックしてカレンダーの画面を閉じ、バツ印をクリックして拡大されたカードの画面を閉じます。するとカードに大会の日付が表示されます。

カードに期限が表示された

カードに期限が表示された

先にやるべきタスクが書かれたカードほど上に位置するように並べ替えます。基板を発注して届くまでのあいだにプログラミングを終わらせたくなってきたので、ドラッグ&ドロップで組み立てカードとプログラミングカードの位置を入れ替えます。

カード順入れ替え

カード順入れ替え

カード順の入れ替えがタスク管理の基本方針その2「やるべきタスクに優先順位をつける」に相当します。

いよいよマウスを作っていきます。今、To Doリストの一番上に部品選定カードがあるので部品選定に取り掛かります。ところが部品選定というタスクは具体的でないので、より具体的なタスクに細分化します。とりあえず部品選定カードをモタドラ選定カードと(その他の)部品選定カードに分割します。モタドラ選定カードをDoingリストに置きます。そのときTo Doリストに新たにカードを作ってからDoingリストにドラッグ&ドロップするなり、Doingリストに直接新しいカードを作るなりして下さい。

一度にやるタスクは必ず一つ

一度にやるタスクは必ず一つ

一度に一つのタスクをDoingリストに置くことと、そのタスクはできるだけ具体的にすることがコツです。もしかするとモタドラ選定を「モタドラとは何かを学ぶ」タスクと「他のマウスに何のモタドラが使われているか調べる」タスクと「諸条件を考慮して使用するモタドラを決定する」タスクに分割できるかもしれません。状況に応じて柔軟に対処してください。

Doingリストにカードを一つだけ置く作業がタスク管理の基本方針その3「一度に一つのタスクだけをやる」を可能にします。今は、モタドラ選定だけに集中しましょう。

モタドラ選定が終わったらモーターに興味が出てきたのでモーターを選定することにします。そのときのボードは次のようになります。Doneリストにモタドラ選定カードが、Doingリストにモーター選定カードが置かれています。

次のタスクに進む

次のタスクに進む

Doneリストにカードを置く作業でタスク管理の基本方針その4「終えたタスクを眺めて達成を得る」が可能になります。

あとは同じ作業の繰り返しです。

注意点としてタスク管理は柔軟に対応する必要がある点が挙げられます。例えばプログラミングが終わってないのに発注した基板が家に届いたとします。そのとき人によってはプログラミングを後回しにして組み立てを先にやるでしょう。組み立てをしようとしたらLEDを購入し忘れていたと気づき、先にLEDを発注するかもしれません。そのときLED発注カードが新たに発生し、Doingリストに置かれます。タスクは状況に応じて増減し、優先順位が入れ替わります。タスクの変化に対応してカードが増減し位置が変わります。

ボードやリストやカードを間違えて作ってしまった時、それらを削除する方法は各自で調べてください。

まとめ

タスク管理によって頭を整理するとだいぶ楽になるはずです。私はタスク量の多さに圧倒されると頭がモヤモヤしてやる気が出ず、マウス製作を一切やらないまま時間だけが過ぎていくことがよくありました。タスク管理がうまくできるようになって助かっています。

おしまい

クリスマスくらいはラボ畜にならないで早めに家に帰りましょう。去年、卒論で成果が一つもなくあせりまくっていた私でさえクリスマスには早めに家に帰りましたよ。

明日はXFA-27さんのイヤホン自作の話です。その自作イヤホンとはTwitterでときどき見かけるきれいなやつのことですよね?楽しみです。

Nullさんの虚無

この記事はMicro Mouse Advent Calendar 2020 - Adventarの9日目の記事です。8日目の記事はM_vi_o_laさんの「引っ越しました」でした。苦労してそうですが楽しそうでもありました。

それでは本題に行きます。

2020年の振り返り

2020年の振り返り

2020年の3月から4月にかけて私は熱心にマイクロマウスを作っていたようです。春休みが例年より長くて暇だったからやる気が出たんだと思います。

 それ以降はやる気がしぼんでしまったのでマイクロマウスを作ってません。

2021年にはクラシックマウスを作りたいです。せっかく買った1ク1クモーターを使わないまま放置するのはもったいないです。やる気が出なくてもハードだけは作ります。

この記事は以上で終わりです。これだけ?と思いましたよね。その通りです。この記事は短くて内容がないので、この記事のタイトルを「Nullさんの虚無」としました。

Micro Mouse Advent Calendar 2020の10日目の記事はb4rrAcud4さんの「2020年買ったもの」です。

この記事は12月11日に書いているので(9日目の記事なのに)、10日目の記事をすでに読みました。色々工夫していてすごいと思いました。

もしクラシックマウスから車のエンジン音がしたら

はじめに

この記事はWMMC Advent Calendar 2020 - Adventarの2日目の記事です。

昨日はジャッジ―さんの記事でした。ジャッジ―さんが元気そうで安心しました。

また、ジャッジ―さんは今回のAdvent Calendarの主催者でもあります。主催していただきありがとうございます。

私はあまりサークルに参加できてないのですが、少しはサークル活動しておこうと思いWMMC Advent Calendar 2020に参加してます。

それでは始めます。

卍 卍 卍 卍 卍 卍 卍

もしクラシックマウスから車のエンジン音がしたらどうなるか確かめた。

想像図

想像図

開発経緯

いつのことだったか忘れたが、Twitterを見ていたらトヨタの入社式と思われる動画が流れてきた。会場内で自動車のエンジンをふかして爆音を鳴り響かせていた。いいなと思った。そして私はこう思った。もしクラシックマウスから車のエンジン音がしたらどうなるか、と。

予想

クラシックマウスのような小さい機体から車のエンジン音のような爆音がしたらギャップ萌えしそう。

方針

エンジン音が記録されたオーディオファイルを再生する機能をクラシックマウスに搭載する。ただし音を鳴らしているときにクラシックマウスの走行を妨げないようにする。

必要な部品

・MP3デコーダ

今回は秋月電子通商にあるこちらのMP3デコーダーを使った。

akizukidenshi.com

マイコンと組み合わせて音を鳴らしたいとき、これを使うと私が知る限りで最も簡単に音を鳴らせる。

PCとUSB接続するとリムーバブルメディアとして認識される。鳴らしたい音が記録されたMP3ファイルまたはWAVファイルをコピペでMP3ボイスモジュールに書き込む。UART通信でMP3ボイスモジュールにコマンドを送れば音が再生される。

音の再生はMP3ボイスモジュールが行うので、音の再生中にマイコンではクラシックマウスの走行に関する処理だけを行えばよい。

色々な機能があるが、今回はオーディオファイル1個だけを再生するために必要な機能しか使わない。他の機能も試してみると面白いと思う。他の機能も試してみたい人は秋月電子通商のサイトでMP3ボイスモジュールについて調べることをお勧めする。

注意点が4点ある。1点目。MP3ボイスモジュールに開いているピンヘッダ用の穴の位置が中途半端である。ピンヘッダをはんだ付けしたあとブレッドボードに差し込みたいときは無理矢理押し込む必要がある。2点目。VCCピンとUSBの5V給電の配線が導通している。もしVCCピンに5V以外の電圧をかけているときにMP3ボイスモジュールをPCとつなぐとショートする危険がある。オーディオファイルをPCから書き込みたいときはVCCピンがどこにも導通してないことを確認すべき。3点目。8MBのオーディオファイルを保存できるようだが、実際には約4MBしか書き込めなかった。しかし音質を下げてオーディオファイルのデータ量を減らせば7分以上鳴らしっぱなしにできる。7分間分あればクラシックマウスの競技中に音を流し続けることができる。4点目。MP3ボイスモジュールを買うと一緒に4ピンのコネクタがついてくる。でも2ピンのコネクタはない。Digi-Keyで調べてみたが2ピンのコネクタは見当たらなかった。MP3ボイスモジュールにはピンヘッダが2列、2ピンのコネクタが1個、4ピンのコネクタが1個、USBポートが1個ついている。このうち2ピンのコネクタを利用することはできなさそうだ。でもUSBポートと2列のピンヘッダが使えれば問題なく音を鳴らせる。

・micro USB Type-Bが付いたUSBケーブル

PCとMP3ボイスモジュールを接続するときに使う。

・スピーカー

表面実装可能な小型のスピーカーではエンジン音のような低音を出せない。そのため大きめのスピーカーを使う必要がある。今回は秋月電子通商にあるこちらのスピーカーを使った。

akizukidenshi.com

このスピーカーは人からもらったスピーカーなので本当にこれかは自信がない。でもたぶん合ってる。他にもっといいスピーカーがあるかもしれない。

ステッピングモーターで動くクラシックマウス

ステッピングモーターで動くクラシックマウスは機体重量が少し変わっても制御に影響が出ない。ステッピングモーターで動くマイクロマウスを使ってもよい。今回は私の手元にステッピングモーターで動くクラシックマウスがあったためこれを使った。

理想的にはスピーカー以外から音が出ないほうがいい。でもステッピングモーターから出る音は大きい。でもスピーカーから出る音はもっと大きいので心配ない。

・段ボールとテープ

スピーカーを覆う入れ物を作るために必要。

・配線用の導線

部品を電気的につなぐために使う。

車のエンジン音の用意

YouTubeでエンジン音を流している動画を探す。気に入った動画があれば、そのURLをコピーする。FLVTOという少し怪しげなサイトに動画のURLを張り付ける。そこのサイトで動画の音声をMP3ファイルに変換し、ダウンロードする。

次にダウンロードしたMP3ファイルのデータ量を4MB以内に減らす。Audacityというソフトウェアを使う。Audacityをインストールする。MP3ファイルはステレオである必要がないのでモノラルにしてデータ量を減らす。そして音質を下げてデータ量を減らす。作業の途中でlame_enc.dllがないのでダウンロードしろとAudacityに言われる。Audacityの指示に従ってlame_enc.dllを使えるようにする。

データ量を減らしたMP3ファイルの名前を01.mp3にする。

MP3ボイスモジュールにオーディオファイルを保存

MP3ボイスモジュールをPCとUSB接続する。MP3ボイスモジュールには最初から色々音声ファイルが入っている。これらは今回使わないのでPCなど他の場所に移動する。先ほど用意した01.mp3をMP3ボイスモジュールにコピペする。MP3ボイスモジュールをPCからはずす。

ハードウェア製作手順

電気的な配線は次図のように行う。今回はマイコンから一方的にMP3ボイスモジュールに指示を出すのでUART通信用の配線は1本だけで済む。

配線図

配線図

スピーカーには入れ物が必要だ。入れ物がないと、スピーカーの裏側で鳴った音と表側で鳴った音が打ち消し合って、スカスカな音になってしまう。スピーカーの裏側で鳴った音がスピーカーの表側に回り込まないように入れ物で閉じ込める必要がある。今回は段ボールと両面テープで入れ物を作ってみた。本当はもっと硬い材料で作ったほうがいい。でも今回は製作の簡単さを重視した。段ボールの入れ物であっても結構効果がある。

スピーカー用の入れ物

スピーカー用の入れ物

スピーカー用の入れ物にスピーカーとMP3ボイスモジュールを取り付けて電気的に接続する。今回は接続にジャンパー線を使った。スピーカーは段ボールにテープで固定した。

スピーカーとMP3ボイスモジュールを入れ物に取り付けた様子

スピーカーとMP3ボイスモジュールを入れ物に取り付けた様子

MP3ボイスモジュールをクラシックマウスに電気的に接続する。今回はジャンパー線を使って接続した。

MP3ボイスモジュールをクラシックマウスに接続した様子

MP3ボイスモジュールをクラシックマウスに接続した様子

最後に入れ物をクラシックマウスにかぶせたら完成。

完成!

完成!

入れ物をかぶせたせいでクラシックマウスを操作するためのタクトスイッチを押せなくなってしまった。でも気にしない。また、クラシックマウスについたLEDの光が遮られて見えなくなってしまった。でも気にしない。そのうちなんとかするつもり。

プログラム

音楽再生開始関数play()と音量調整関数volume()を用意する。

void play(uint8_t track) {
  uint8_t play[6] = { 0xAA, 0x07, 0x02, 0x00, track, track + 0xB3 };
  for (int i = 0; i < 6; i++) {
    uart_send_char(play[i]);
  }
}
void volume(uint8_t vol) {
  uint8_t volume[5] = { 0xAA, 0x13, 0x01, vol, vol + 0xBE };
  for (int i = 0; i < 6; i++) {
    uart_send_char(volume[i]);
  }
}

void uart_send_char(char)関数は1バイトずつ送信する自作関数だ。計6バイト送信するようにfor文の部分を各自で書き換えなければならない。ちなみにuint8_tは符号なし8ビット変数の型だ。

次の2行では音量を指定し、1番目のオーディオファイルを再生するように指定している。この2行によって音が流れ始める。あとは放置。MP3ボイスモジュールが指定されたオーディオファイルを読み込んで音を再生してくれる。

volume(0x1E); //Volume settings 0x00-0x1E
play(0x01);

あとはいつも通りにクラシックマウスを走らせればいい。

結果

クラシックマウスから車のエンジン音がしたらとてもうるさい。しかしそのうるささゆえに目立つので、サークルの新歓や学園祭のときに客引きとして役立つかもしれない。もしかすると屋外で鳴らしたら音が散ってうるさくなくなるかもしれない。ちょうどいいうるささなのかもしれない。

小さい機体から爆音がしたらギャップ萌えするかどうかは人による。少なくとも私はギャップ萌えしなかった。うるさいだけだ。

低音を鳴らすのは難しいらしく、ときどき音が割れた。今回はオーディオ機器に関する情報収集が不十分なまま製作したからだ。きれいなエンジン音を聞きたければオーディオ機器に関する情報をもっと集めてスピーカーなどを改善する必要がある。しかし個人的にはこのままの音質でも許容範囲内にあると考えている。

最後に

実は昔からクラシックマウスにMP3デコーダーとスピーカーを取り付けて音を鳴らす人がいた。そのような人たちはおそらく同じ感想を持ったと思う。音が鳴るとテンションが上がるのだ。私もスピーカーからエンジン音を聞いたときテンションが上がった。そしてこれからどんなことができそうか色々考え始めた。低音をきれいに出せるように工夫してみようか。低音を諦める代わりに小型スピーカーを使ってみようか。色んな音楽を鳴らしてみようか。このようにやり方はたくさんある。他の人がどのようにして音を鳴らすか知りたい気がする。みなさんも音を鳴らしてみませんか!

おまけ:ちょっと歴史を振り返ってみる

こちらはWMMCのホームページの作品紹介のページだ。

www.waseda.jp

作品紹介のページを見ると、色々なものが作られてきたことが分かる。私は作品紹介のページを読んでびっくりした。斬新な発想力と、それを可能にしてしまった技術力がすごい。私も発想力と技術力を共に兼ね備えた人になりたい。

昔だけでなくここ数年間でもWMMCでは複数人が色々なものを作り出している。それらを見るたびに私は楽しませてもらっている。

おしまい

明日はぱわぷろ@ラボさんのブログです。この1年で買った物らの紹介とのことですが、何を買ったんでしょう。楽しみですね。

Go To 闇鍋

この記事は2019年3月に行われた闇鍋の様子を記録したものである。

暗闇に鍋の図

暗闇に鍋の図

皆さんも闇鍋をしたいですよね。その気持ち、分かります。でも闇鍋は密にならなければできません。今はCOVID-19の感染拡大防止に努めましょう。闇鍋ができるようになるまでもう少しがんばりましょう。

謝辞

闇鍋会を企画し高級食材をたくさん鍋にぶち込んでくれたJ氏。家を闇鍋会場として使わせてくれたM氏。当日急に参加させられたがよく分からない食材を用意してくれたS氏。だしを入れることで闇鍋をおいしくしようと試みた(が失敗に終わった)A氏。においをかいで臭そうな顔をしていたP氏。皆に礼を言わねばならない。とても楽しい闇鍋をありがとう。もう二度とやりたくないけど。

ルール

参加者の1人が素晴らしい企画書を作ってくれた。その企画書に則って闇鍋は作られた。企画書に書かれたルールを簡単に説明する。まず闇鍋に入れる食材は常識の範囲内で食べ物であること。そして食べ物を粗末にしないこと。つまり毒を入れてはいけない。人の家の中で開催するためにおいがきつ過ぎる食材は避けなければならない。また、最後は自分で食べなければならないことを考えて食材を選ばなければならない。

作り方

暗闇の中では視界が悪くなり火傷などの危険がある。危険を避けるために以下の手順で闇鍋を作った。

  1. 鍋に鍋の素を入れる
  2. 火をつけない状態で部屋の明かりを消す
  3. 1人ずつ順番に鍋に食材を入れる
  4. 鍋にふたをする
  5. 部屋の明かりをつける
  6. 吹きこぼれないか注意しながら煮込む
  7. 鍋が煮立ったら火を消す
  8. 部屋の明かりを消す
  9. 鍋のふたを開ける
  10. 食べる
  11. 茶碗一杯食べ終わったら部屋の明かりをつける
  12. 闇鍋の様子を目視で確認する

当日の様子

夕方に一度集合したあと、再び集まる時間を決めて各自が食材を購入しに色々な店に散らばった。中には事前に食材を集めていた人もいた。参加人数が多かったからか、食材が鍋に入りきらなかった。よって2回に分けて闇鍋を作った。

評価

臭い。まずい。

暗闇の中で食材を順番に鍋に入れているとき、他の参加者に対する信頼感は消え失せた。いったいこいつらは何をたくらんでいるんだろうと疑う気持ちで一杯になった。

闇鍋を煮込んでいるときにすでに部屋中に刺激臭が充満しており、食べる前から自分たちが何をしてしまったのか気づいて恐怖に震えた。

暗闇の中で正体不明の臭い物体を口に入れる恐怖は半端ではなかった。本能が拒絶反応を起こしたが、根性で食べた。

闇鍋を食べた後に食べた普通のごはんがとてもおいしく感じられた。

意外だったこと:量

まさか2回に分けて闇鍋を作らなければならないほど食材の量が多いとは思わなかった。みんな気合を入れ過ぎた。

意外だったこと:色

2回とも茶色になった。特に2回目はスライムカレーにより鍋を青くしようと試みた参加者がいたにも関わらず茶色くなった。

闇鍋1回目 スタッフがおいしくいただきました

闇鍋1回目 スタッフがおいしくいただきました

闇鍋2回目 スタッフがおいしくいただきました

闇鍋2回目 スタッフがおいしくいただきました

うんちは茶色である。よって闇鍋はうんちであると我々は結論付けた。しかしこの結論は稚拙であると言わざるを得ない。その場にいた参加者全員が学問を志す者であるにも関わらずこのような根拠に乏しい考察しか導けなかったことは反省しなければならない。

有意義な教訓も得られた。もしも闇鍋の色を茶色以外にしたいのであれば、着色料をかなり多めに入れる必要がある。

意外だったこと:におい

人の家で闇鍋を作るためにおいがきつ過ぎる食材は避けたにもかかわらず、闇鍋から刺激臭がした。その刺激臭が部屋中に立ち込めた。そして窓から刺激臭が流れ出した。近所迷惑である。

意外だったこと:味

参加者全員が工夫をこらして食材を用意した。しかし全ての食材の個性は闇鍋の中で混ざり合い、互いに殺し合い、かき消された。結果的に得体の知れぬ味になった。

意外だったこと:白

白い食材は暗闇の中で目立つ。白は恐ろしい色だ。

特にパン類はひどい。色が白っぽいため薄ら明かりの中でぼうっと光る。そして臭い汁を吸ってベチョベチョになる。

意外だったこと:酸味

暗闇の中で酸味は腐敗の味と区別がつかない。闇鍋を食べながら命の危険を感じた。

余談

飲むテンガを闇鍋に入れた参加者がいた。しかし、幸か不幸か闇鍋会場は淫夢にならなかった。

後日談

闇鍋会の後しばらく経ったある日に偶然立ち寄ったある店で私は南国風のハンバーガーを食べた。一口食べたとき、最初は何が起きているのか分からなかった。しばらくもぐもぐしていると突然あるものを思い出した。そう。闇鍋である。ソースの味がまさに闇鍋の味と同じであった。さすがに闇鍋の刺激臭はしなかったが、ほぼ闇鍋であった。食べ終わってから闇鍋会の他の参加者に報告した。他の参加者もこのハンバーガーは闇鍋であると同意した。ところがネットでそのハンバーガーの評判を調べてみたところ、おいしいと述べている人が大半であった。たしかに世の中には闇鍋を経験していない人の方が多いのでおいしく感じる人が多くても仕方がないと言える。残念ながら我々闇鍋経験者はその経験ゆえにそのハンバーガーをおいしく食べることができなかった。そのハンバーガーは闇鍋経験者と非経験者を選り分ける現代版の踏み絵と言えよう。

闇鍋は必然

よく考えてみると、私が闇鍋会に参加したのは必然だったようだ。私が小学生だったころ、ハリーポッターが大好きであった。給食の時間には魔法薬と称してお椀に牛乳を含む全ての料理を入れて混ぜてから食べていたものだ。かつて魔法薬を作って喜んでいた経験が約10年の時を経て私に闇鍋をさせたのであろう。ただし闇鍋がこんなにも臭くてまずいとは予想していなかった。私の記憶によると給食で作った魔法薬はおいしかったのだ。やはり過去の成功体験(おいしかった魔法薬)にいつまでも囚われ続け(て闇鍋を作)るのはよくないのである。

反省

我々が食べ物を粗末に扱っていた時に世界中でたくさんの人たちがおなかをすかせて苦しんでいたことを考えると涙が止まらない。

1回目の闇鍋に入れた食材

最後に鍋のレシピを紹介する。1回目の闇鍋には以下の食材を入れた。

  • 牛肉
  • ウインナー
  • はるさめ
  • あおさ(千葉県産)
  • ヨーグルト

2回目の闇鍋に入れた食材

2回目の闇鍋には以下の材料を入れた。

(筆者注:雪見だいふくスティックは食べ物ではないと突っ込まなければならない。)

  • サバの味噌煮
  • せんべい
  • ドーナツ
  • 本だし(味の素)
  • ミートソース
  • とろけるチーズ

恐ろしすぎて個々の食材についてコメントする気にはなれない。

VRで雲に乗り景色を眺める

雲に乗りたい

本物の雲に乗りたいという願いはかなわない。なぜなら物理的に不可能だからだ。雲は空気中に浮かぶ水や氷の粒だから人間の体重を支えられない。しかし、無理だからといって雲にのりたいという願いを諦めてよい理由にはならない。でも、もしも本物の雲に乗れたとしてもあまり嬉しくないかもしれない。落っこちるかもしれない恐怖を感じなければならないし、航空法のことを意識しなければならない。地上にいる人たちのプライバシーを尊重する必要があるからどこにでも飛んで行けるわけではない。上空は寒いだろうし、雲の中ではびしょ濡れになるだろう。どうやって雲から降りるか考える必要がある。何時まで雲に乗っていられるのか知るために時間を気にする必要がある。そんなのは嫌だ。もっと自由に何も考えず雲に乗りたいのだ。

のんびりと、ふわふわと、ぼーっとする

よく考えてみると、本物の雲に乗るよりも雲に乗った気持ちになるほうが大事なのではないかと思えてくる(筆者個人の見解です)。私にとって雲に乗るとは、のんびりふわふわ漂いながら目の前を通り過ぎてゆく景色をぼーっと眺めることだ。だったら本物の雲に乗らなくてもいい。

VRを使って雲に乗った気分になる

世の中にはVRという便利な道具がある。VRを使うと映像の中に入り込んだような気分になる。今回はVRを使ってあたかも雲に乗っているかのような気分になることにする。

ヘッドマウントディスプレイを被り雲に横たわる人

ヘッドマウントディスプレイを被り雲に横たわる人

VRで足りない分は想像力で補う

VRを使っても目と耳以外は雲に乗った気持ちになってくれない。VRでごまかせるのは目と耳だけだからだ(目と耳以外をごまかすVRがあるかもしれないけどよく調べてないから知らない)。そこで今回は布団を雲に見立てることにする。布団に寝っ転がりながらVRを体験する。ついでに扇風機でそよ風を吹かせる。

作り方の概要

今回は簡単のために音を扱わない。映像だけ作る。

今回はUnityの2019.4.7f1版を使ってVRを作る。2019版からAndroidアプリ用のapkファイルを作るのが簡単になったから2019版を使った。

ヘッドマウントディスプレイにはGoogle Cardboardを使う。Google Cardboardは家にあったから使った。

簡単のために雲は白い円盤とする。本物の雲を再現したいわけではなく、乗れる想像上の雲を作りたいので白い円盤で十分だと判断した。雲は視点の真下に配置する。

雲に乗りながら眺める景色はピラミッドとする。四角錐は作るのが簡単だからだ。UnityのProBuilderという機能を使って四角錐を作る。

雲はピラミッドの周りをゆっくり一周する。このときピラミッドの方を向き続けるようにする。

Unity上で作ったVRを実行した様子を下図に示す。図の中央付近に黄色いピラミッドが写っており、中央下部に雲の端っこが写っている。

雲とピラミッド

雲とピラミッド

Androidスマホで試す

Unityでapkファイルを作りAndroidスマホにインストールして試してみた。そのときのスクショを3枚示す。

VR体験中

VR体験中

雲の移動によりピラミッドを異なる向きから眺める

雲の移動によりピラミッドを異なる向きから眺める

雲の様子

雲の様子

感想

割といい感じだった。ただし雲に視界を遮られると嫌なので、雲を半透明にしたり穴だらけにしたりするなどの工夫が必要だ。欲を言えば、もっと色んな景色が見たい。ドローンに全方位カメラを取り付けて撮影した動画をVRに組み込むといいかもしれない(どうやって組み込むのか知らないけど)。またはGoogle Earth VRに雲を追加して乗るといいかもしれない(どうやって追加するのか知らないけど)。加えて、布団が硬かったのでもっとふわふわの布団が必要だ。敷布団ではなく掛布団に寝っ転がればいいかもしれない(夏だから分厚い掛布団は押し入れに仕舞っちゃったけど)。

あと雲とは関係ないけどVR製作過程で色々と不具合が多発して面倒だった。気軽に雲に乗れるようになってほしい。

六畳間に布団を4枚敷くとき、部屋に占める布団の面積を最大化する

以前合宿で部屋に布団を敷いていたとき、誰かが「この作業は布団の面積を最大化する問題に置き換えられるのではないか?」と言っていたので確かめてみた。

条件

そのときの部屋の大きさは覚えていないので、適当に六畳間とする。畳の寸法は団地間(85 cm×170 cm)とする。

また、敷き布団の大きさを測ってなかったのでここでは直置き用のシングルサイズ(100 cm×210 cm)とする。

計算量を減らすために布団の縁が部屋の壁と平行になるように布団を敷くことにする。

計算量を減らすために布団を20 cmずつずらして布団の面積を計算し、布団の面積が最大となるような布団の配置を探す。具体的には布団4枚についてx方向とy方向にそれぞれ動かすのでプログラムで八重ループを使う。

面積は図1に●で示した格子点の個数を数えて計算する。図1の場合は●が84個ある。●はそれぞれ20 cm×20 cmの面積と対応している。よって、図1では布団の面積は84×20×20平方センチメートルとなる。ただし図1において灰色で示した部分は無視している。布団の長辺210 cmは20 cmで割り切れないからである。なお、図1には縦置きと横置きの布団が2枚置いてある様子を示してある。格子点の個数はMATLABのunion関数とsize関数を用いることで簡単に求められる。

図1 面積計算法

図1 面積計算法

部屋の大きさは340 cm×255 cmである。布団を20 cmずつ動かすため必ずしも布団を部屋の隅まで動かすわけではない。布団配置決定のための八重ループに時間がかかるので、計算量を減らすためにこのような粗い評価をせざるを得ない。

結果

横置きの布団が4枚のとき、布団面積は67200平方センチメートルであった。この面積の値は上でも述べたように布団の一部を無視して計算した値である。図2にこのときの布団配置を示す。黒枠は六畳間を表す。左上の角が原点であり右方向にx軸を、下方向にy軸を取る。それぞれの布団の位置は布団左上の角の座標で表す。見やすさのために4枚の布団を赤、黄、緑、青で区別する。図2の場合、赤い布団の位置は(0 cm, 0 cm)、黄色い布団の位置は(0 cm, 100 cm)、緑の布団の位置は(120 cm, 0 cm)、青の布団の位置は(120 cm, 140 cm)であった。この布団配置が横置き4枚を今回の条件の下で動かし布団の面積が最大となる布団配置である。例えば緑の布団を青の布団に接するまで図2の下方向に動かしても布団の面積は変わらない。このように面積を変えずにある程度布団の位置をずらせるので、求めた布団配置は唯一の配置ではない。

布団を20 cmずつ動かして評価しているので布団を部屋の隅まで動かせてないことが図2から分かる。

図2 横置き4枚

図2 横置き4枚

横置きが3枚、縦置きが1枚のとき布団の面積は70400平方センチメートルであった。図3にこのときの布団配置を示す。図3の場合、赤い布団の位置は(0 cm, 0 cm)、黄色い布団の位置は(0 cm, 100 cm)、緑の布団の位置は(40 cm, 140 cm)、青の布団の位置は(240 cm, 0 cm)であった。

図3 横置き3枚、縦置き1枚

図3 横置き3枚、縦置き1枚

横置きが2枚、縦置きが2枚のとき布団の面積は72800平方センチメートルであった。図4にこのときの布団配置を示す。図4の場合、赤い布団の位置は(0 cm, 0 cm)、黄色い布団の位置は(40 cm, 140 cm)、緑の布団の位置は(100 cm, 0 cm)、青の布団の位置は(240 cm, 40 cm)であった。

図4 横置き2枚、縦置き2枚

図4 横置き2枚、縦置き2枚

横置きが1枚、縦置きが3枚のとき布団の面積は70400平方センチメートルであった。図5にこのときの布団配置を示す。図5の場合、赤い布団の位置は(0 cm, 0 cm)、黄色い布団の位置は(40 cm, 140 cm)、緑の布団の位置は(100 cm, 0 cm)、青の布団の位置は(240 cm, 0 cm)であった。

図5 横置き1枚、縦置き3枚

図5 横置き1枚、縦置き3枚

縦置きが4枚のとき布団の面積は70400平方センチメートルであった。図6にこのときの布団配置を示す。図6の場合、赤い布団の位置は(0 cm, 0 cm)、黄色い布団の位置は(40 cm, 40 cm)、緑の布団の位置は(140 cm, 0 cm)、青の布団の位置は(240 cm, 0 cm)であった。

図6 縦置き4枚

図6 縦置き4枚

考察

布団の面積が最大となったのは横置き2枚、縦置き2枚のとき(図4)であった。

今回の条件では布団の一部を無視して面積を計算した。同じ布団の配置で布団の一部を無視せずに計算し直してみる。横置き4枚のときは69600平方センチメートルである。横置き3枚、縦置き1枚のときは73100平方センチメートルである。横置き2枚、縦置き2枚のときは74600平方センチメートルである。横置き1枚、縦置き3枚のときは72100平方センチメートルである。縦置き4枚のときは73800平方センチメートルである。

よって布団の一部を無視せず面積を計算したとしても横置き2枚、縦置き2枚のとき面積が最大となる。

二番目に大きな面積との差は74600-73800=800平方センチメートルである。この値は布団一枚の面積210×100=21000平方センチメートルの800÷21000×100≒3.8%である。あまり大きな違いはないと言える。

また、今回は布団を20 cmずつずらして面積を計算したので雑な評価であり、今回の計算結果は本当の最大値ではない。

加えて、計算結果は布団と畳の寸法によって変わることに注意しなければならない。

よく考えてみれば、実際には六畳間に布団を4枚敷くとき部屋の床面積に占める布団の面積の割合を最大化しているわけではない。部屋の入り口付近には布団を敷かないようにしたり、荷物置き場を用意したり、布団の重なり合いをどの布団でも同じくらいにしたりしている。

単純に布団の面積を最大化するだけでは不十分である。

MATLABプログラムについて

横置きの布団が4枚のとき私のPCでMATLABプログラムを動かすのにかかった時間は117.901秒であった。部屋の対称性と布団の形が全て同じであることを利用して八重ループの回数を減らす工夫をしている。

同様にして、横置き3枚、縦置きが1枚のとき計算時間は398.045秒。

横置き2枚、縦置きが2枚のとき計算時間は202.037秒。

横置きが1枚、縦置きが3枚のとき計算時間は106.175秒。

縦置きが4枚のとき計算時間は23.338秒であった。