新卒同期5人でHackDayのハッカソンに参加してみた
みんなのウェディング Advent Calendar 2017 の 16日目の記事です。
今回は先日会社の同期5人で参加してきたHackDayについて書いていこうと思います!
▼HackDay ってなんだ?
HackDay とは、Yahoo!JAPAN 主催のクリエイターフェスです。
ハッカソンだけでなく、展示ブース、ステージ、参加型コーナーなどが集まっていて、クリエイターではない一般の方でも無料で入場することができます。
最新の技術や話題のテクノロジーが盛りだくさんのイベントです。クリエイターの皆さんにはたまらないイベントですね!
hackday.jp
▼なぜハッカソンに参加しようと思ったのか
同期のS君が誘ってくれて面白そうだったからです。
優勝して何としても豪華商品をゲットしたい!なんて微塵も思っていませんでした。
なのでアイデアを考える以外は、ほとんど何の準備もすることなく当日突っ込みました(笑)
▼つくったもの
プロダクト名:マシュマロ投げたろか マシュマロを投げてくれます
詳しくはこちらの発表動画をご覧ください。
ちなみに普段はRailsを使ったアプリケーション開発しかやっていないので未知の分野でした。ラズパイ(Raspberry Pi)とか初めて使いました(笑)
仕組みを簡単に説明すると、ラズパイ上でhttpサーバを立てて、GPIO(General Purpose Input/Output)をRubyで叩くことで、マシュマロ投げたろかを発火させています。基本動作は
- ターミナル状で
feedme
というコマンドを実行します - 指定した角度だけ回転します
- すごい勢いでマシュマロを投げます
これだけでは寂しいなということで、以下の機能を追加することにしました。
- 当日にノリで購入したGoogle Home miniを使って音声入力に対応させる
- 同期が持参したリープモーションを使ってジェスチャー入力に対応させる
- ある特定の人の居場所を認識して回転させる(間に合いませんでした)
その中でも、僕が関与した部分についていくつかピックアップして軽く解説していこうと思います。
回転の部分
考え方としては角度(θ)を入力した時に、ある時間(t秒間)だけ電気を流す
という風に考えました。
実際に実装したコードはこんな感じです。
class Mecha include Math # PERIOD と RADIUS は測定した値を突っ込みます PERIOD = 3.68 RADIUS = 0.12 SPEED = 2 * PI * RADIUS / PERIOD def self.rotation_time(degree) degree_rad = PI / 180 * degree second = RADIUS * degree_rad / SPEED end end
#rotation_time
を呼び出した時に、角度degree
を渡して、電気を流す時間second
の値を返します。
普段業務でも書いているRubyでシュッと書きました。
Google Home miniでの音声入力部分
流れとしては
- Google Home mini に話しかける
- 話しかけた内容が slack のチャンネルに投稿される
- ある内容がslackに投稿された時に、ラズパイ側で
マシュマロ投げたろか
を起動させる
僕がやった部分は、Google Home に話しかけて、それをslackに投下させるところまでを設定しました。 難しそうな感じがしますが、実はIFTTTと連携させることですごく簡単に設定することができます。
①IFTTTに登録します
②Services 一覧からGoogleAssistantを選びます
③Applet 一覧から Send a note on Slack by voice を選びます
④設定します
$
の部分がスラックに投稿されます
$
の内容によってラズパイを発火させて、マシュマロ投げたろか
を起動させます
完成です
Google Homeで食べ物投げてっていうとマシュマロ投げてくれるの作った! #hackday pic.twitter.com/pXoGsgYDwD
— かずま (@kazumalab) 2017年12月10日
こんな感じでエンジニアでなくても簡単に設定できちゃいます。Google homeをお持ちの方はIFTTTを使っていろいろ改造してみると面白いと思います!!
おまけ:設定するとツイッターでも呟けちゃいます
わっしょい by google home
— じゃる (@hr_0118_hungry) 2017年12月9日
▼感想
ハッカソンは楽しいし、初めてでも何とかなる
個人的にはハッカソン初出場だったので、かなりビビっていました。かつ今回はラズパイを使ったり、回路を組んだり、はんだごてを使ったり、普段滅多にやらないことが目白押しだったのでとてつもなく不安でした。ただ振り返ってみると、そんな状況でも圧倒的に不安より楽しみの方が大きかったなと感じました。
それに結局何とかなったので何事もやればできるなと。できる・できないではなく、やる・やらないだと思います。
同期最高
同期最高ですね。
このメンバーだったから何とかなったってのはあるかもしれません。
というわけで、興味の湧いた方はぜひハッカソンに出てみてください!
ご覧いただきありがとうございました!!
明日は@kiyokuroさんです。
〜〜みんなのウェディングでは一緒に働く仲間を募集中!〜〜
本番環境でがんがんAWSのサービスを触りたい!チームでサービスをもっと成長させてみたい!そんなエンジニアやデザイナーの方は、ぜひお気軽に遊びに来て下さい!
濱口に直接ご連絡いただいても大丈夫です!
月1ペースでボードゲーム会もやっています🐺