2020-11-29 2021-12-27
JPHacks2020 参加記
この記事は、僕の旧ブログ(はてなブログ)から移植した記事です!
今回の記事は長めです。せっかく来てくれたので最後のとこだけでも読んでください。
とても久しぶりです!気付けば B3 の後期にもなってしまいました。
アウトプットは大事だなって思うので、記事として書いていきます。
徹夜明けなのと長い文を書くのが久しぶりすぎるので日本語が小学生レベルですが、よろしくお願いします。
去年のリベンジだ
去年、ひょんなことがきっかけで web プログラミングを知り、またひょんなことがきっかけで JPHacks 2019 に 参加していました 。
ほぼ初ハッカソンで僕は全然力を発揮できず、最低限のプロダクトすら作れませんでしたね~。
今年もオンラインですが開催されてたので、 友達を誘って参加することにしました。
JPHacks 2020
テーマは、○○×Tech。 それと、”Technology for ourselves” みたいのもあった気がします。
毎度のように数時間 × 数日かけて何を作るかを話し合いました (Zoom + miro) 。様々アイデアを考え、最終的には「重さで在庫の残容量を測れるくん (IoT)」を作ることにしました。
デザインの人、フロントエンドの人、万能な人 2 人、ハードウェアの人(おれ) というチーム構成でした。テーマは発表されていて事前開発可なので、予選の二週間ほど前から制作物決め、進捗共有などを行っていきました。
予選通過まで
一週間前からは毎晩ミーティングを開き、進捗共有とタスク管理をしました。みんなのモチベーションをあげるには、これは大切なことだと思います。作りたいものを固め (Service design)、どうやって作るのかを決めて (System design) いきます。
今回は完全オンライン開催でしたが、会える圏内にいたのでたまーに集まって作業しました。DRIVE や 13labo を使いました。予選通過を当面の目標に建設的にタスクを消化できていたので、楽しく進められたと思います。
予選大会は 90 秒 の Pitch と、アピール動画、GitHub レポジトリ で審査が行われました。プレゼンは iPad のカメラを PC にミラーリングして生デモを試みましたが、ネットワークが少し遅くなってミラーリングにラグが発生し、テンパってる間に終わってしまいました。観測してた感じ生デモをしているチームは成功確率が低かったです。
決勝まで
そんなこんなで決勝進出を決めることができました。これで去年のリベンジ達成ですね、嬉しかったです。 合否の知らせがあってから本番までには 2 週間もの時間がありました (長い)。しかもメンバーのほとんどがテスト期間と被っていてスケジュールの調整が難しかったです。(などと濁しておりますが、僕は全然タスクを消費できなかったということです)
みんなで話し合って決めたことは、UI・UX の向上 (真剣に考えたよ) と、実用化を視野に入れた実装でした。
こんなフローチャートとかも考えました。 https://github.com/jphacks/A_2016/issues/93#issuecomment-727581165
決勝
運営の方も口を揃えて言っていましたが、レベルが高かったです。「これ大学の研究じゃん、ほんとにこの一か月で作ったの?」と思えるようなプロダクトばかりでした。(そして本当に一か月で作られている)
僕たちは airbnb で取った宿に前日から集まり、開発を進めました。どこをアピールして何を実装するのか、というのをワイワイガヤガヤやるのが楽しかったです。 徹夜はしたくないな~って思いながら参加したのですが、結局朝までもくもくとやっていました。僕は発表担当だったので少し寝ましたが…
発表は 8 分間でした。また発表は動画デモにしました。不測のアクシデントのリスクは低いし映像に合わせてペラペラしゃべればいいだけなので、精神的にとても楽でした。見てる方も楽なんじゃないかなと思いました。なかなか上手く行ったと思っています。
ハードウェア製作について
次は ### 結果 かなと思ったんですが、メモ程度に僕がしたことを先に書いておきます。
重さを測ってそれを定期的にサーバーに送る。単純なタスクです。「Arduino 重さ 計測」などとググればすぐ目当ての部品にたどり着けただろうに、見当もつかずはじめに圧力センサを買いました。通販で届くまでの間が暇だったので、ハードオフなどを巡って 300 円 の Wii-Fit ボードを見つけ、分解してみたりもしました。4 つ足に分解能が 0.5kg のロードセルがついていました。これ 4 つであんなに多彩なゲームが生まれるんだなあと感動しました。
圧力センサーは上下で板挟みにするかたちで重さを計測できると考え、プロトタイプ一号機を作りました。3D プリンターで筐体作りを手伝ってくれた ayumin に感謝です。Fusion360 初めて触りましたが簡単な形はすぐに作ることができました。データシートにも重さと比例した電圧出力をしますみたいなことも書いてあったのに、精度の問題でうまくいかずでした。タッチパネルに良く使われるみたいでした、最近の車のエアコン操作パネルとか。
ここでようやく真剣にググったわけですが。”ロードセル” という部品が良いことに気づきました。これは歪み(ひずみ)ゲージという、機械系でよく用いられる部品を応用したもので、繊細な歪みゲージの出力を増幅・補償したものです。重さに比例して抵抗が変化するらしいです。部品を買って筐体を設計して…みたいなことをしたかったのですが時間がありません。Wii Fit をハックしてた記事を見たのを思い出し、キッチンスケールで同じことをやることにしました。
メンバーと札駅を回って、いちばん安かったニトリのものを買いました。999 円でした。精度は ±2g って書いてましたね、家のキッチンにあったやつは 0.1g の精度って書いてたんですが、中身どれくらい違うのかが気になりました。(家のやつの中身は見れていない(破壊的分解になるため))
よくあるキッチンスケールは大体ロードセルを使っています。ロードセルからは 4 本の線が出ていて、電源 2 本、出力 2 本です。出力はマイコンで読み取るには微弱すぎたので、汎用オペアンプで差動増幅回路を組みました。写真右下ごちゃっとしたのがそれです。楽しかったです。
久しぶりにハードなものを作ってワクワクしてます pic.twitter.com/FsMtPK5SYC
— たかぴろ🌸 (@takapitech) November 5, 2020
それを ESP32 という Arduino 互換マイコンでサーバーにリクエストを送るということをしましたが、それはまた別の何かに書きます。
結果
上位 17%の予選を通過できましたが、特に賞はもらえませんでした。
16 チームが進んだ決勝で、名のついた賞は計 28 個あったので、何かもらえるかなと思っていた自分が甘かったようです。ただ一番になれなかっただけで、「使ってみたい!ほしい!」「面白かったよ!」「懇親会でさらに話を聞きたいと思った」などたくさんの賞賛のお言葉を頂けたので、爪痕を残せたようで嬉しかったです。
完成したものはこちらです。 https://ar-cana.netlify.app/
こだわりの UI です。ゲストでログインして見てみてください。
他に決勝に進んだチームはこんな感じです。→
https://jphacks.com/information/award-finalists2020/
ハッカソンって
どう立ち回ればいいのか、難しいですよね。
“技術的知見をたくさん得られる!” というモチベで今までやってきましたが、最近はどうやらそうではないと感じています。なぜなら、ハッカソンは「限られた期間ですごいプロダクトを作る」ことが高評価に繋がるし、そういう意図で開催されているものが多いからです。
ハッカソンは “新しいなにか” を作りださなければならず、「ユーザーの課題」「実現可能性」などサービス志向なノリも必要になってきたりします。アイデアを考える過程も非常に大切です。というかある程度ものを作れるようになってくるとアイデアゲーです。そういうものだったのです。
その度に全く新しい技術を学んでいては、アウトプットが追い付きません。プロダクト重視の場合は手持ちのスキルでサクッと作るのが楽な立ち回り方だと感じました。もちろん技術的にチャレンジがないと評価されずらいんですけどね、おれは “なにか動くものを作る” ということで精いっぱいだったということです。
ハッカソンは、チーム開発のノリを掴めるし、他の参加者と交流することで世界が広がってモチベーションになるし、プレゼンの経験を積むことができます。ビジコンではなくハッカソンである以上は動くものを作らなければならないので、制作物を就活でアピールすることもできます。また提供物やノベルティも楽しめます。最高でしょ?
ハッカソン引退!
今回参加したメンバーは、今春にスタートアップで起業 (残念ながらサービス閉鎖) したメンバー(+α)であり、これまで数々のチーム開発をしてきた頼れるメンバーたちでした。
就職する人がいるので 、このチームでイベント駆動開発をすることはしばらくないでしょう。
という感動的な話もありますが、僕個人としても 2020 年に既に 7 回ものハッカソンに月 1 を超えるペースで参加していました。つよつよになる!という思いでたくさん参加してきて、たくさんのものを得ましたが、学問の方が疎かになってしまいがちだし、徹夜開発でいのちを削るのはしんどいし(?)、自分の本当に勉強したいことにも手を付けたいなと思ってきてたので、とりあえず引退っていうことにしています。就活もしたいしね!
ということで運営やメンバーのみなさん本当にありがとうございました!!!以上です!またお会いしましょう~