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

皆さんも闇鍋をしたいですよね。その気持ち、分かります。でも闇鍋は密にならなければできません。今はCOVID-19の感染拡大防止に努めましょう。闇鍋ができるようになるまでもう少しがんばりましょう。
謝辞
闇鍋会を企画し高級食材をたくさん鍋にぶち込んでくれたJ氏。家を闇鍋会場として使わせてくれたM氏。当日急に参加させられたがよく分からない食材を用意してくれたS氏。だしを入れることで闇鍋をおいしくしようと試みた(が失敗に終わった)A氏。においをかいで臭そうな顔をしていたP氏。皆に礼を言わねばならない。とても楽しい闇鍋をありがとう。もう二度とやりたくないけど。
ルール
参加者の1人が素晴らしい企画書を作ってくれた。その企画書に則って闇鍋は作られた。企画書に書かれたルールを簡単に説明する。まず闇鍋に入れる食材は常識の範囲内で食べ物であること。そして食べ物を粗末にしないこと。つまり毒を入れてはいけない。人の家の中で開催するためにおいがきつ過ぎる食材は避けなければならない。また、最後は自分で食べなければならないことを考えて食材を選ばなければならない。
作り方
暗闇の中では視界が悪くなり火傷などの危険がある。危険を避けるために以下の手順で闇鍋を作った。
- 鍋に鍋の素を入れる
- 火をつけない状態で部屋の明かりを消す
- 1人ずつ順番に鍋に食材を入れる
- 鍋にふたをする
- 部屋の明かりをつける
- 吹きこぼれないか注意しながら煮込む
- 鍋が煮立ったら火を消す
- 部屋の明かりを消す
- 鍋のふたを開ける
- 食べる
- 茶碗一杯食べ終わったら部屋の明かりをつける
- 闇鍋の様子を目視で確認する
当日の様子
夕方に一度集合したあと、再び集まる時間を決めて各自が食材を購入しに色々な店に散らばった。中には事前に食材を集めていた人もいた。参加人数が多かったからか、食材が鍋に入りきらなかった。よって2回に分けて闇鍋を作った。
評価
臭い。まずい。
暗闇の中で食材を順番に鍋に入れているとき、他の参加者に対する信頼感は消え失せた。いったいこいつらは何をたくらんでいるんだろうと疑う気持ちで一杯になった。
闇鍋を煮込んでいるときにすでに部屋中に刺激臭が充満しており、食べる前から自分たちが何をしてしまったのか気づいて恐怖に震えた。
暗闇の中で正体不明の臭い物体を口に入れる恐怖は半端ではなかった。本能が拒絶反応を起こしたが、根性で食べた。
闇鍋を食べた後に食べた普通のごはんがとてもおいしく感じられた。
意外だったこと:量
まさか2回に分けて闇鍋を作らなければならないほど食材の量が多いとは思わなかった。みんな気合を入れ過ぎた。
意外だったこと:色
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に組み込むといいかもしれない(どうやって組み込むのか知らないけど)。または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関数を用いることで簡単に求められる。

部屋の大きさは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から分かる。

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

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

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

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

考察
布団の面積が最大となったのは横置き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秒であった。
クラシックマウス用の迷路で鬼ごっこ
この記事の内容
大きさが16×16の格子状で未知の迷路(クラシックマウス用)内で、2台のロボットが鬼ごっこできるかシミュレータで確かめました。逃げる方の逃げ方を適当に決めたせいか、鬼が勝ちました。
きっかけ
以前、私たちが迷路を広げて各自のクラシックマウスを走らせていたことがありました。迷路内を複数のクラシックマウスが走り回っている様子を見て、誰かがクラシックマウスに鬼ごっこをさせられたら面白そうだと言いました。私は複数のクラシックマウス間で互いの現在地を教え合う機能さえ追加すれば鬼ごっこができると思いつきました。クラシックマウス同士が互いの位置を分かっていれば、逃げる側(子)はどこから逃げればよいか分かりますし、追う側(鬼)はどこを目指せばよいか分かるからです。また、鬼が子の隣に来たら鬼の勝ちだということにすれば、「つかまえた」判定もできるようになります。そこで、この思いつきで鬼ごっこができるかどうかを確かめます。まずはシミュレータ上で鬼ごっこを試します。
やり方
他の人が作ってくれた迷路探索シミュレータを使います。これを使えば簡単に鬼ごっこを試せます。私は画面の中の迷路にクラシックマウスを2台同時に登場させ鬼ごっこをさせる機能を追加するだけで済むので楽です。シミュレータのプログラム内では2台の位置を記録する変数をグローバル変数として宣言しているため、お互いの位置が分かるようになっています。
画面の中で子は赤い四角で、鬼は青い四角で表します。子だけが知っている(子が実際に通ったところの)壁は赤で、鬼だけが知っている(鬼が実際に通ったところの)壁は青で、両方が知っている(迷路外枠と両者が通ったところの)壁はピンク色で表します。
ルールは次のようにします。子は迷路の左下の角の区画から、鬼は右上の角の区画から出発します。両方とも同時に動き始めます。鬼が子の隣の区画に来たら鬼の勝ちです。鬼が子をつかまえるまで鬼ごっこは続きます。
両者の作戦は次にようにします。
鬼は子がいる区画に向かって動きます。
子は鬼から逃げます。逃げ方は私が適当に決めました。子は迷路の右上の角の区画、右下の角の区画、左下の角の区画、左上の角の区画のどれかに向かって動きます。その4つのうちどれを選ぶかは鬼の位置によります。鬼が迷路の右上のどこかにいたら子は右下の角の区画を目指します。鬼が迷路の右下のどこかにいたら子は左下の角の区画を目指します。鬼が迷路の左下のどこかにいたら子は迷路の左上の角の区画を目指します。鬼が迷路の左上のどこかにいたら子は右上の角の区画を目指します。
結果
子(赤い四角)の逃げ方が下手過ぎて鬼(青い四角)につかまってしまいました。



動画も載せときます。
2台走らせてみる pic.twitter.com/Ab9UmX3F9d
— sophia (@tlo_olb) June 13, 2020
まとめ
クラシックマウス用の迷路で鬼ごっこができます。
これはクラシックマウス?
同じ迷路内を同時に走るクラシックマウスをまとめてクラシックマウスと呼ぶことはできません。つまり、迷路を走るロボットは1台でなくてはクラシックマウスと呼べません。なぜならマイクロマウスクラシック競技規定の2文目に次のように書いてあるからです。
"A robot participating in this contest is termed Micromouse."
日本語訳「ここに出場するロボットをマイクロマウスと呼ぶ。」
注:クラシックマウスは昔マイクロマウスクラシック競技という名前だったので、競技規定ではクラシックマウスをマイクロマウスと呼んでいるのでしょうね。
この不定冠詞によって、クラシックマウスは1台であると分かります。
マイクロステップ駆動の音
概要
ステッピングモーターを1-2相励磁により動かしたときの音とマイクロステップ駆動により動かしたときの音を耳で聞いて比べました。マイクロステップ駆動では音が小さいけれど音がしなくなるわけではないことを確かめました。
はじめに
ステッピングモーターを動かすと音が鳴ります。以前ステッピングモーターを鳴らしていた時になぜ音が鳴るのか疑問に思いました。また、マイクロステップ駆動では音がどうなるか気になりました。そこで今回試してみました。
方法
オリエンタルモーターのPKE243A-Lという駆動方式が2相ユニポーラのステッピングモーターを使いました。私のクラシックマウスに使われているものです。今回はクラシックマウスにくっつけたまま実験しました。(私は今のところクラシックマウスだけにしかステッピングモーターを使ってないので、クラシックマウスにくっついたステッピングモーターについて実験します。)
EIC4133というモータードライバー(以下モタドラと略す)を使いました。これはSLA7078MRというモタドラと同じように使えるものです(たぶん)。EIC4133はステッピングモーターと一緒に箱の中に入っていました。
ステッピングモーターを1-2相励磁とマイクロステップ駆動により動かしました。モタドラへ入力するパルス信号の周波数は1-2相励磁とマイクロステップ駆動とで同じにしました。ステッピングモーターが出す音を耳で聞き、その高さと大きさを主観的に比べました。
1-2相励磁はMode F固定としました。また、モタドラの仕様でマイクロステップ駆動はW1-2相励磁、2W1-2相励磁、4W1-2相励磁の3種類あります。今回は三つとも試してみました。つまり、今回試した駆動方式はMode F固定とした1-2相励磁とマイクロステップ駆動のW1-2相励磁、2W1-2相励磁、4W1-2相励磁の計4種類です。
注:これらの専門用語に関する説明はこの記事では省略します。
結果
音の高さはどの駆動方式でも同じでした。
音の大きさは1-2相励磁、W1-2相励磁、2W1-2相励磁、4W1-2相励磁(後ろ三つがマイクロステップ駆動)の順に小さくなっていきました。つまり1-2相励磁が一番大きな音を出し、4W1-2相励磁が一番小さな音を出しました。
4W1-2相励磁でステッピングモーターを動かすとだいぶ音が小さかったです。しかし無音とは言えないくらいの大きさの音が鳴っていました。
1-2相励磁でステッピングモーターをゆっくり回したときテッピングモーターが震えました。一方でW1-2相励磁、2W1-2相励磁、4W1-2相励磁(三つともマイクロステップ駆動)でゆっくり回したときは震えませんでした。なお、1-2相励磁でステッピングモーターを速く回したときはステッピングモーターが震えませんでした。(もしかしたらステッピングモーター単体で実験したら震え方が変わるかもしれません。)
なお、ステッピングモーターが回る速さは1-2相励磁、W1-2相励磁、2W1-2相励磁、4W1-2相励磁の順に遅くなっていきました。モタドラに入力するパルス信号の波一つ分で回る角度が1-2相励磁、W1-2相励磁、2W1-2相励磁、4W1-2相励磁の順に小さくなるからです。
考察
参考文献に書いてありましたので紹介します。
ステッピングモーターは、入力パルスに対して1ステップずつ同期しながら回転しています。
そのため、1ステップごとにオーバーシュートとアンダーシュートを繰り返し、減衰振動をした後に所定の位置で停止しています。
この減衰振動が低速での振動・騒音の原因となる場合があります。ステップ角を細かくすることで、この減衰振動を小さくすることができます。
そのため、マイクロステップ駆動は低速域での振動や騒音の低減に効果的です。
マイクロステップ駆動が低速域での振動(ゆっくり回したときの震え)に効果的であることは今回の実験でも確かめられました。
今回はどの駆動方式でも同じ高さの音が鳴りました。これはモタドラに同じ周波数のパルス信号を入力しているからです。その場合、どの駆動方式でもステッピングモーターの回転軸が単位時間あたりにカチッと動く回数が同じになります。同じ速さで回転軸がカチカチ鳴るので同じ高さの音が出ます。厳密には音色が違うかもしれませんが、耳で聞いただけではあまり音色の違いがありませんでした。
1-2相励磁、W1-2相励磁、2W1-2相励磁、4W1-2相励磁の順に音が小さくなっていきます。これはW1-2相励磁、2W1-2相励磁、4W1-2相励磁の順に回転軸の動きが滑らかになっていくからです。言い換えると、回転軸がカチッと1回動く大きさが小さくなっていくからです。回転軸がカチッと動く大きさが小さくなればそれだけ回転軸の震えが小さくなります。回転軸の震えが小さくなればそれだけ音が小さくなります。
ステッピングモーターはコイルを不連続に励磁して回すモーターであるため、回転軸の震えはなくならず、音は消えないようです。(不連続でなくなったらもはや「ステッピング」とは言わないのでは?)
まとめ
ステッピングモーターをより滑らかに回せば音がより小さくなります。ただし音はなくなりません。
参考文献
2-5. マイクロステップ駆動の動作原理|WEBセミナー|セミナー・技術情報 |オリエンタルモーター株式会社
2020年5月16日閲覧
研究発表の練習相手の製作
研究発表をするときに聞き手の様子を見て聞き手に合わせた話し方ができるようになりたいので、練習方法を考えました。
なんで研究発表が苦手なんだっけ?
私は研究発表がとても苦手です。ですが、聞き手の様子を見て聞き手に合わせた話し方ができるようになりたいと思っています。目標だけは高いんです。だから研究発表の練習について考えているわけです。
苦手を克服するために、まずは研究発表が苦手な原因を明らかにする必要があります。そしてそれぞれの原因に対して解決策を考えます。ちょっと考えてみたら次のような原因と解決策が思い浮かびました。
1つ。成果がないので発表することがない。
成果がまだなくてもうまくいく見通しとその根拠を示せれば良いらしいです。(それすらなかったらどうすればいいんでしょうか)
1つ。研究発表の練習をほとんどしたことがない。
研究発表の練習を始めても、練習自体がしんどいのですぐに止めてしまうんですよね。とか言い訳してないで練習しろ。
1つ。研究発表のやり方を知らない。
知らないことはできなくて当然なので調べます。
1つ。スライド作りが下手すぎて発表しにくい。
スライドの作り方について調べます。聞き手にとってだけではなく、私自身にとっても分かりやすいスライドを作るように心がけます。
1つ。研究発表の練習をしたあとにスライドを改良してない。
声に出して研究発表の練習をすると、スライドを作っているときには気づかないようなことにも気づけます。研究発表の練習をして気づいた点を踏まえてスライドを作り直し、また研究発表の練習をすることを繰り返します。スライド作りと研究発表の練習は同時並行で行うと良さそうです。
1つ。研究内容に関する理解が甘い。
研究発表以前の問題なので研究を頑張ります。
1つ。慣れてない硬すぎる言葉遣いで話してしまうためよく噛んでしまう。
無意識のうちにやってしまっているようなのですが、緊張のせいか慣れない言葉遣いをしてしまうようです。もっと簡単な言葉遣いで話すように意識します。
1つ。研究発表の話し方に慣れてない。
普段のおしゃべりでは話が行ったり来たりしますし、全てを話さなくても聞き手が察してくれたりします。噛んでしまっても特に問題は起こりません。ところが研究発表では初めから終わりまで流れるように話す必要があります。ぶっつけ本番でアドリブで研究発表しようとすると、流れるような話し方に慣れてないのでうまくいきません。流れるような話し方に慣れるためには練習が必要です。
1つ。話している間は言葉とスライドに集中していて聞き手の様子に注意を払う余裕がない。
自分の研究発表で頭が一杯になってしまい、聞き手を置き去りにしてしまいます。聞き手の様子に注意を払う余裕が持てるくらいに研究発表に慣れておく必要があります。練習あるのみです。
1つ。聞き手の顔や目を見て話すのが苦手である。
少しづつ慣れていくしかないでしょうね。
目標を分析
ここでいったん最初に掲げた目標である「研究発表をするときに聞き手の様子を見て聞き手に合わせた話し方ができるようになりたい」を3つに分解してみます。
- 研究についてスライドを使いながら声に出して説明できる。
- 聞き手の様子が分かる。
- 聞き手に合わせた話し方ができる。
1つ目に関してはとにかくたくさん練習して慣れるのが一番早くて確実でしょう。
2つ目はとても苦手なのでなんとかしなければなりません。聞き手の顔や目を見て話すことが苦手な私にとってはとても難しいです。
3つ目は1つ目と2つ目ができるようになればすんなりできるようになると思うので気にしないことにします。
練習相手を作ってみた
ここからは私にとって重要な「聞き手の様子が分かる」ようになるための練習方法について説明します。1人で発表練習しても聞き手の様子が分かるようにはなりません。でも練習のたびに誰かを呼ぶのは面倒です。そこで人間ではない練習相手を作ることにしました。今回作った練習相手はコイツです。

パソコンの前に練習相手を描いた紙をぶら下げています。顔と目が付いており、描きやすいのでコイツを描きました。ぬいぐるみのほうが立体感があって良かったのですが、あいにく手元になかったので絵を代わりに使います。
コイツには顔も目もついているので、聞き手の顔と目を見て話す練習になるでしょう。
研究内容について何も分かってなさそうなコイツに分かってもらえるように練習すれば、分かりやすい研究発表ができるようになるかもしれません。
評価はこれから
練習相手がいる状態で研究発表の練習をしたら上達するのかはまだ確かめてません。これから自分で試してみます。2年後の修論発表までにうまくなれるといいな。
最適な練習相手とは
今回作製した練習相手が最適な練習相手だとは私は考えていません。なぜなら、練習では本番より負荷をかけたほうがよいと思うからです。厳しい環境で行う研究発表の練習はスポーツにおける高地トレーニングと同じです。本番が楽に感じられるようになるでしょう。私が考える厳しい環境での練習とは、動く美少女キャラクターの前で練習することです。画面の中でキャラクターを動かす技術はすでに存在するので、画力とやる気と時間さえあれば実現可能です。動く美少女キャラクターは人型ですし目線が動きますので、今回作製した練習相手より本番の聞き手に近いです。それに動く美少女キャラクターの目の前で練習したら緊張すると思います。緊張にさらされながら練習すれば力がつくと思います。
残念ながら私には美少女キャラクターを描く画力がありません。ゆえにこの案は没です。
まとめ
研究発表での目標を掲げました。
研究発表が苦手な原因をいくつか考えました。
研究発表の練習で使う練習相手を作製しました。
練習相手がいればあればうまくいくのかはこれから確認します。
赤外線リモコン受信モジュールがヘルメットに見える
赤外線リモコン受信モジュールを見たとき、私は潜水服や宇宙服のヘルメットを連想しました。そのため赤外線リモコン受信モジュールに頭以外を取り付けて人型にしてみました。ついでに赤外線リモコン受信モジュールの動作確認をしました。
使用するもの
1.今回はこの赤外線リモコン受信モジュール(OSRB38C9AA)を使います。
2.この赤外線リモコン受信モジュールに入力する信号は秋月電子通商で売っている赤外線リモコン(オプトサプライ赤外線リモコン)により生成します。
3.頭以外はポリウレタン銅線を使って作ります。手元にあったのでこのポリウレタン銅線を使いましたが、線が太くて曲げにくく、作業がしにくかったです。そのためこれより細いポリウレタン銅線を使うべきです。
4.その他マイコンやブレッドボードなど必要なもの。
作業手順
まず、図1のように赤外線リモコン受信モジュールを用意します。図1において上側の部分が受光部です。今回はこの部分が頭部になります。下側の三本足は左から順に出力端子、GND、電源です。
赤外線リモコン受信モジュールをじっと見つめていると、潜水服や宇宙服のヘルメットに棒が3本突き刺さっている様子に見えてきます。未来の生き物のようにも見えてきます。

次に赤外線リモコン受信モジュールにポリウレタン銅線を巻きつけて頭以外を作ります。ポリウレタン銅線はぴかぴかしていてきれいですし、絶縁されているので赤外線リモコン受信モジュールに直接巻き付けてもショートしません。赤外線リモコン受信モジュールはただの飾りではなく、本来の用途である赤外線リモコン受信モジュールとして使用したいので、3本の端子が巻き付けたポリウレタン銅線から突き出した状態にしなければなりません。
図2に頭部と頭以外を前から見た様子を、図3に頭部と頭以外を後ろから見た様子を示します。


次に巻き付けたポリウレタン銅線から突き出している3本の端子をブレッドボードに突き刺します。そして同じブレッドボードにマイコンや電源などに必要な回路を構成します。図4に配線後のブレッドボードの様子を示します。
赤外線リモコン受信モジュールや赤外線リモコンの商品名を検索すると、先人たちが使い方を分かりやすく説明してくれているブログがいくつか見つかります。必要な回路に関する詳細はそれらのブログを参考にしましょう。秋月電子通商のホームページからダウンロードできるデータシートも参考になります。私も先人たちのブログやデータシートにお世話になりました。

次にマイコン用のプログラムを作成します。私が今回作成したプログラムの概要を簡単に説明します。言葉だけで説明しても分かりにくいでしょうから読み飛ばしてください。
赤外線リモコンのボタンを押したら出力される赤外線の信号が赤外線リモコン受信モジュールに入力されます。すると赤外線リモコン受信モジュールから電気信号が出力され、その電気信号がマイコンに入力されます。マイコンは外部割込みにより関数を呼び出し、その関数内で電気信号1つ分すなわち赤外線リモコンのボタンを1回押したら出力される赤外線の信号に相当する電気信号を読み取り、関数を抜けます。ここで、外部割込みにより呼び出される関数を受信関数と呼ぶことにします。電気信号1つ分は複数のパルス波で構成されており、受信関数内でそれらの時間的な長さを計ります。その際にある工夫をしています。その工夫とはタイマ割り込みと符号なし32bit整数のglobal変数のインクリメントです。タイマ割り込みで0.1msごとに関数を呼び出し、その関数の中で符号なし32bit整数のglobal変数をインクリメントします。するとそのglobal変数は10kHzで+1されていきます。その程度の速さでインクリメントしているだけでは符号なし32bit整数はなかなかオーバーフローしません。今回はその符号なし32bit整数のglobal変数を0.1ms刻みの時計として使います。ここでタイマ割り込みにより呼び出される関数を時計関数と呼ぶことにします。最後に、電気信号1つ分をマイコンが認識したら、赤外線リモコンのどのボタンが押されたのか判別し、シリアル通信でパソコンに送信します。パソコンではターミナルにどのボタンが押されたかを表示します。受信関数と時計関数の割り込み優先度は時計関数を1番目、受信関数を2番目に設定します。
このプログラムを書くのはとても大変でした。しかし、外部割込みなどの洒落たことをしなければ先人たちの知恵を借りるだけで済みます。そもそも外部割込みをしようがしまいが結果は変わらない気がするのでやらなくてよかったかもしれません。
プログラムを書く段階でも先人たちのブログに大変お世話になりました。
結果
最後に、必要なプログラムをマイコンに書き込んで実行します。図5にターミナルにどのボタンが押されたかを表示している様子を示します。このときはAボタン、Bボタン、上矢印ボタン、白ボタン、右矢印ボタン、下矢印ボタン、左矢印ボタンの順に赤外線リモコンのボタンを押しました。うまくマイコンで識別できています。

まとめ
- 面白い見た目の電子部品がある。
- 赤外線リモコン受信モジュールの動作確認ができた。
- 外部割込みプログラムが書けた。
おまけ
ちなみに、Twitterで誰かがツイートしてましたがLEDはくらげに見えます。もちろん足が2本しかないLEDはくらげには見えにくいです。しかし足が多いとくらげに見えやすくなります。例えば足が4本あるRGBフルカラーLEDはどうでしょうか。