読者です 読者をやめる 読者になる 読者になる

kdenologue

たまに何か作ります。

HackDay 2017 に出場して受賞してきた話 #hackdayjp

技術

f:id:kden:20170206225538j:plain

hackday.jp
Yahoo! JAPAN が主催している全国規模のハッカソンイベントに参加してきました!そして、ありがたいことに賞をいただくことができました!!!

このイベントは、プログラミング等を用いて何か作品・プロトタイプを作ろう!という趣旨で行われています。開発時間は24時間ぶっ通しで、土曜日の昼12時に始まり日曜の昼12時が開発終了のタイムリミットでした。まあ基本徹夜ですね。

そして、この大会の学生部門に参加してきました。この学生部門は、2016年に全国各地で行われたHackUというまあ大体同じ内容のハッカソンにて受賞したチームが参加しています。学生部門は、地方予選を勝ち抜いた競合同士の戦いになっていると言えるでしょう。
hacku.yahoo.co.jp
だいたい同じと言いましたが、HackUでは開発時間が数週間あり参加対象が学生である点が違いますね。あと学生部門には開発テーマが課されていて、HackUでは「自動○○ ~世の中のモノ・コトを自動化してみよう~」、HackDayでは「日本をHAPPYに ~私たちができる課題解決~」でした。とは言うものの、「何かを自動化して日常に潜む課題を解決する、そうすればハッピー」みたいなムーブにすればでハッカソン的にも良い流れなのではないでしょうか(暴論)。ちなみに、学生部門で出場しているということは、HackUでも受賞していることになりますが、僕のいるチームはは東京大会で「最優秀賞」「HappyHacking賞*1」のダブル受賞をしています:D

そういった雰囲気のハッカソンなので、とにかく愉快で面白い、でもちゃんと実用的な部分も備えたアイデアを実現しようと各チーム開発を進めている印象があります。発表は面白いし、「あーほしいわこれ」となることも多々。素直に技術力を尊敬することも。何でもアリで評価されるのは「使ってみたくなる楽しさがあって」「技術的にも凄くて」「創意工夫にあふれている」ものという、至極MAKER的なイベントなわけです。

せっかくなので、そんなイベントに参加したレポート的なものを書いてみようと思います。主に自チームや自分が担当したことについて話そうと思います。


チーム紹介

・チーム名:UEC InSilico
・なりわい:2016年3月に大学内で行われたHackU(上の大学Ver.)に出ることを目標に集まったメンバー の中の数人、サークルの知り合いや知り合いの強い知り合い
・主経歴:2016/9 HackU 2016 東京会場 「最優秀賞」「HappyHacking賞」受賞
・今回参加メンバー:M1、M1、B4(欠席)、B3、B2(僕)
id:budouchaさんのHackDay 2017に参加した話 #hackdayjp - いまにいたる
id:kinmemodokiさんのHackDay2017に行った - きんめもも参考にしてみるといいかもです。

作ったもの

まず、何を作ったかかんたんに書いておきましょう。作品名は「TOKICHIRO」で、かんたんに言うと「IoTハンガー」です。特徴は以下の通り。
1. iPoneに「沖縄で15時」など予定を話しかける
2. 現地の気温に適した服装が掛かってるハンガーが、ハンガーラックの中央に出てくる。
3. 選ばれなかった服は、ハンガーラックの端へ自分で移動して捌ける。
4. 中央(取りやすい位置)に残った服を羽織って出かける。
5. ユーザーは、服をハンガーに掛けるだけで、保温性はハンガー側で検知するので、基本的に設定は不要。
というものです。

仕組み

僕はハードウエア(ハンガー)担当だったので、実はインターネットの向こう側で行われていることはよくわかっていないのですが^^;
サーバーは音声認識で得られた「場所」と「日時」をお天気APIに突っ込んで、温度情報を取得した後、適切な服を選択。アクセスしてきたハンガーに対して「○番のハンガーに掛ってる服が選ばれたよ」と知らせる。
ハンガーは温度センサと発熱シートを搭載していていて、服の性能を測定。例えば、薄い服だと発熱シートの温度上昇が弱く、暖かい服は温度上昇が強いと言った雰囲気です。そして、サーバーで情報の変更があれば、動いたり光ったりします。

事前準備

企画検討・資材調達・開発環境の準備は事前に行うことが認められています。今回は、チームの先輩のアイデアで、「適切な服装を手間なくレコメンドしてほしい」が解決したい目標となりました。最初は「服の重さ」でその服が分厚いかどうかを判定する予定でしたが、話し合いのうちに「温めて温度見れば何かわかるだろう」という話に。

当日 1日目

12時に開発開始。サーバーやアプリ側は、だいたい方針が決まっている(ように見えた)一方、ハンガーはさてどうしたものかという状態です。とりあえずハンガーとハンガーラックを14時ごろに調達。必要な電子部品をリストアップし、14時半頃に買い出しに行きました。ブレッドボードとかジャンパワイヤとかも必要量はここで買ってるので、事前の準備不足が伺えますw

しばらくハンガーに載せるモーター、基板、iOSアプリ、お天気サーバーに分かれて開発。センサとモーターが動かないとか、モーターの位置に悩むとかが一日中続きました。

f:id:kden:20170207003453j:plain
はんだ付け。

当日 2日目

午前0時、絶賛開発中。悩み続けると解決策も見え始めるのでしょうか、悩んでいる部分がぼちぼち解決しはじめます。ただ、解決しても想定通りの動きかどうかはまた別だったりするのが酷な話で、僕の場合モーターを回す部品の選定に失敗していたので、強く回りませんでした。部品屋は開いてないので方針変更する他なく。

f:id:kden:20170207013156p:plain
可愛いと評判だった(?)ロゴやハンガーの猿は午前3時くらいに決まってきました。「発熱して保温性を試すなら、事前に服も暖められるんじゃない?」「秀吉か」「その時期は木下藤吉郎だな」「作品名とうきちろうでいい気がしてきた」「ロゴは猿xハンガーだな」

ハンガーはと言うと、試作は一個雑にできていたのですが、台数が必要なために複数作成をしなければなりませんでした。配線を手伝ってもらいつつ、プレゼンを意識して仕様を削ったり簡略化したりという工夫もしています。

陽も昇り、外は明るくなっても向かう先はハンガーラックです。量産したものがうまく動かず非常に苦労しました。登壇デモのために必要最低限な部分はカバーしつつという感じです。

そんなこんなで完成したものがこちら。
f:id:kden:20170207200345j:plain
f:id:kden:20170207200511j:plain
f:id:kden:20170206225859j:plain
ハンガーとしての機能を保ちつつ、取得した情報次第で指示があれば上についたモーターでハンガーごとウイーンと動くIoTハンガーが完成したのでした。

プレゼン

先輩が事前に練りに練ったプレゼンです。優れていても、伝わらなければ意味がないということで、結構精査するのがチームとしての方針です。まあうまいプレゼンを目指せば結果的にちゃんと伝わって評価も上がりやすいですよね多分。

デモでの動作は確実に・・・!ということで、本番会場でも動作確認を何度かしています。特に無線LANを使ってるので、混線とか切断とか怖いですよね。僕は危機意識低いみたいなので、「念のため」を意識している先輩方には頭が上がりません。

そういう事前準備もあり、プレゼンは上々、ハンガーもちゃんとウイーンと動きました。動いた瞬間に審査員の村上さんが爆笑しててよかった。

作品展示

プレゼンと並行して作品展示が行われます。プレゼンで気になったところに見に行ったり、見に来てくれたり。説明聞いて関心してもらえるとうれしいですね。やっぱり伝えるというのは大切だなぁと実感します。開発中は心に余裕が無いので、他のチームの様子を気にするのはこの時間くらいでした・・・もっと交流すればよかったかも。

表彰式

学生部門でチーム名を呼ばれ、受賞です!!!流石に震えました。顔がひきつってたかも。なんかもう特に書くことないです。よかった、伝わった、評価された、という気持ちでした。ところで無重力体験できるってマジ???

感想

様々なチームの多種多様な着眼点が見れてとても楽しいです(小並感)。プロダクトの目標が面白いものですから、見てるこっちも楽しいんです。例えばビジネスアイデアハッカソンだったら、感心こそすれど、こんなに発表に笑いが生まれることはないでしょう。

それに、みんな思い思いの目標をガッツリ時間取って作る環境、いいですよね。ちなみに軽食や飲み物は会場に用意されました。何かに時間をかけるというのは製作の上で必要なことですが、さあやるぞ!から始まり数十時間後にお疲れ様でしたー、な短期集中というのはメリハリがあって気持ちのいいものです。

僕の居たチームとしては、結構各メンバーの手持ちスキルを活かしつつプロダクトが作れてよかったのではないでしょうか。広い意味でのIoTっていいですよね。

反省

僕が使った技術は、自分の延長線にあるもの・あったものなので新しさという点では難色アリかと。イベントのために新しいことを始めるというのはきっかけとして良いものですが、あまり機会を活かせていません。無理して僕がどこぞのAPIを叩いたりネイティブアプリを作る必要がないのはいいことですが。

あと、「センサとかモータードライバとか超余裕やろw」と正直思っていたのですが、全然そんなことはなくてしんどかった。慢心はだめですねぇ。デモ機に機能をちゃんと実装できなかったのは、悔しいし、口だけみたいな状況になっていて肩身が狭い。でもまあこれが今の自分の実力ってことなんでしょう。

もっと言えば、記事書いてても思うのが、結構自己中だなって。もっと気を使ったり周り見たり気楽に参加したら別の楽しみがあったかも。

その後

チームメンバーは疲れたので後日打ち上げとして当日は速やかに帰りました。。。。


とまあ長々としましたが参加レポート的なものはこんな感じです。何か役に立つのかはさておき、記録として残しておこうと思います。無重力体験、できたら報告しますね。

技術的な話とか、HackUの話とかは、気が向いたら書きます。

*1:参加者投票賞