見出し画像

JPHACKS2023優勝した話-KaizenSprint-


共有機能って本当に要るの?

AwardDay進出を受け、我々のチームは再結集して本格的なプロダクト改善に取り組むことになる
まずは今後の方向性について打ち合わせすることになった
自分たちのテーマが非常にニッチであることはわかりきっているので、どれだけ革靴好きに刺さるかが重要と考えた
ここでは革靴大好きTokuさんが大活躍である

私のような革靴を靴としか見ていない人間にとっては、想像もつかなかった領域だが、Tokuさん曰く革靴とは”育てるモノ”なのだそうだ
履き潰して使えなくなったら次を買うのではなく、大事な一足を大切に大切に扱って履けば履くほど出てくる「味」を楽しむ
このためにメンテナンスをすることが大事な作業であり、その支援となるサービスを提供したい、ということであった

この思いを実現するために欲しい要素を考えていった
T「革靴好き同士でどれぐらい自分の靴を育てたか共有したいんすよ。何時間ぐらい履いたか、とか」
「それはセンサセットした日イコール靴を履いた日だから、朝、靴を履く時間は大体一定と仮定したら、センサの起動時間で何時間履いたか大体記録できるんじゃない?」
T「靴を履いた日の天候知りたいですね。雨の日とか汚れるし」
M「革靴の乾燥具合をデータベース化したらデータサイエンスができないだろうか?」
「好事家は何足も革靴を持っているだろうからそれぞれ個々に記録したいよね」
という風な会話の末に次の機能を追加することで話がまとまった

  • センサの起動きっかけで、靴の履いた時間を計算し、天気APIから今日の天気をとってきて靴を履いた時間と共にGoogleカレンダーに反映させる(Googleカレンダーは共有機能があるので、好事家コミュニティを形成可能だろう)

  • 靴が乾燥完了するまでの外気と靴内の温湿度変化を示す曲線グラフ

  • 記録対象の靴選択を可能にする

  • これらの機能をLINEリッチメニューで実現する

この方針を決めたのと、サーバーサイドをMottyさん、フロント周りをTokuさんが担当してくれるという割り振りができたおかげで、ここから私はハードウェア関係に注力することができたのだ

救世主はBOOTHにいる

ハードウェアの戦いは熾烈を極めた
ちょうど良い乾燥開始判定の閾値と乾燥完了判定の閾値、およびブロワファンの回し方の最適解を探さなければいけない
これは実験ベースで探っていくしかないのだが、まず実験をするには革靴を数時間履き続けなければいけない
私はまずGUに行って部屋ばき用の革靴を買った
部屋ばき用の革靴はパワーワードすぎると思いながらニチャついた笑顔でレジに並んだのを覚えている
実験のために靴を履いたまま寝て朝起きて靴を脱いで実験したこともあった
ちなみに寝ているとき、靴はほとんど蒸れないという知見を得て、これは失敗に終わる
この世にまた一つ新たな無駄知識が増えた

こんな実験を繰り返すううち、センサーユニットが少し変な動きをしていることに気づいた
温湿度センサとしてはENV III Unitが靴内の温湿度、ENV Hat IIIが外気の温湿度を計測するのだが、靴に設置していない時でも必ずENV Hat IIIの温度が ENV III Unitより数度高いのだ
どっちも外気に当たっているときであれば計測された数値はほとんど同じでなければおかしい
不審に思いながらも開発を進めていく中である仮説に行き着いた
「あれ?これHatの方、M5 StickC Plus本体の温度の影響受けてね?」
調べたら同じ症状の人を見つけることができ、そこで確信に至る「これはM5 StickC Plusの構造不具合である」
終わった
M5 StickC Plusは電源入れた直後からちょっとずつ温まっていき、Hatの温度計に影響を与える
動作の安定性に不安は残るが、内部的に一定の温度差を埋める処理を入れるか、
見た目は悪くなるが、延長ケーブルを作ってだらんと垂れたような格好にするしかない
こだわってきた見た目を崩すか、動作の不安定性を残すか悩みながら他の解決策を探してインターネットの海をさまうことにした

すると、捨てる神あらば拾う神ありとはよく言ったもので神はBOOTHにいた
「きっと何かの役に立つでしょ!?」

あなたが…神か…
魅神照の気持ちがはっきりわかった
ピンヘッダで物理的にM5 StickC PlusからHat本体を引き離しつつ、見た目を損なわない構造
こんな素晴らしいものを作った人がこの世に存在しているだなんて、信奉する以外に道はない
ありがとう!優勝はあなたのおかげと言って過言ではない!!
メッセージでの即日発送の頼み込みに快く対応していただき、本当にありがとうございました!!

最後の調整

BOOTHに現れた神のおかげで完全体となったセンサーユニット

M5 StickC Plus本体からの熱影響を受けないことの動作確認を終えた時はまさに天にも昇るような気持ちだった
ファンにブロワ型を採用したおかげか、靴が乾燥するまでの時間はHackDay時の半分程度にまで短縮することができ、着実にハードウェアとしての完成度が上がっている事を実感しながら作業していた
また、ピンヘッダの副作用として、偶然ではあるが5V,GND,信号線を新規に獲得できた
そうDHT22を追加で増設できるのだ
このおかげで、両足の靴で右足→センサーデバイスユニット設置、左足→温湿度センサのみという構成を実現でき、比較実験が非常にやりやすくなった
さらに、Mottyさんがセンサーユニットからの取得データをリアルタイムでグラフ化してくれるツールを開発してくれたため、(実験のために靴は履かないといけないものの)データ取りと分析の効率が格段に上がった

しかし実はずっと懸念していたことがある
ファンの回し方である
ブロワ型のファンで一気に空気を革靴内に送り込むと、勢いよく湿気を追い出すことができるものの、革靴を急激に冷やすことは型崩れの原因になるため、人の熱で温まった革靴に出力全開でずっと外気を吹き込むのは果たして最適なんだろうか
ブロワの出力全開で空気を吹き込むと革靴内の湿気は一気に抜ける
他方で、革靴内の温度はブロワで一気に吹いても最初はあまり下がらず、下がり始めると急激に下がるような動きをする
これは何回かの実験を通して明らかになったことである
私はこの性質を利用してまずブロワをフルに使って一気に湿気を抜き、湿度が下がったらブロワの出力を抑え、ゆっくり温度が下がるような設定を探した
結果としてまだ完全に最適解を見つけたとは言い難いが、効果のあるセッティングを見つけることができた

時を同じくしてMottyさん、Tokuさんのサーバーサイドおよびフロントエンドもほぼ完成状態となり、あとは前乗りしての前日最終確認と、Award Dayでのプロダクト披露を残すばかりとなった
となれば良かったが、それで済むわけがなかった

この記事が気に入ったらサポートをしてみませんか?