はじめに
こんにちは、HCB Advent Calendar 2021の10日目を担当する、kudokaiです。
今年は大学の仲間数人とチームを組み、U-22プログラミングコンテスト2021に出場しました。
最終審査進出はなりませんでしたが、事前審査を通りBEST37に残ることができました。
今回は、U-22プログラミングコンテスト2021で作った成果物について紹介します。
U-22プログラミングコンテスト2021について
1980年から経済産業省が主催している歴史あるコンテストで、今年で41回目の開催になります。
22歳以下を対象としたコンテストであり、プロダクト・テクノロジー・アイデアが評価軸になっています。
今年の開催形態はオンラインとオフラインのハイブリッド開催でした。
プロダクトのジャンルや使用技術を問わず、自由に作品を作ることができます。
今年は374作品が提出されたようです。
(スポンサー企業もかなり豪華でした!)
開発経緯
メンバー各々が作りたいプロダクト案を色々持ち寄り、議論を重ねてきました。
最終的には、オンライン状況下でも使用することができるプロダクトを開発すれば、実用性があり、ウケがいいのではという話に着地しました。
ユーザのニーズ、解決すべき問題、問題を解決するアプローチなどのプロダクトの根幹を固めてから開発に移りました。(この辺があやふやだと、メンバー間でプロダクトに対する認識の齟齬が生まれやすく、大きな手戻りが発生する可能性がある)
プロダクトについて
「Focus Box」というリモートワーカーの顔の情報から集中力の低下を検知し,作業場所の環境情報より集中力を阻害する要因の改善策を提案するプロダクトを開発しました。
リモートワーカーの集中度合いを瞬きの回数から、集中力を阻害する要因を温湿度とCO2濃度からそれぞれ評価しています。
それぞれの情報の収集方法として瞬きは、Webカメラから顔を検知し、一定時間における瞬きの回数を定期的に測定・記録しています。
温湿度・CO2濃度は、センサーモジュールを搭載したデバイスから情報を定期的に収集しています。
応募時にPVを作っているので、ご覧いただければと思います。
システム構成
-
Device
Raspberry Pi4 ModelB でユーザーの作業スペースにおける温湿度とCO2濃度を取得します。 -
Server
AWSのlambdaとAPIGateway、dynamoDBでユーザーやデバイス、取得した環境データを管理します。
対象のユーザーの作業環境がどのような状態か判定し、結果をフロントエンドに送信します。 -
Web
ユーザーの瞬きやServerから送られてきた結果からユーザーに休憩を促します。
僕が担当した部分
僕はデバイス作成をしました。
RaspberryにCO2センサと温湿度センサを接続し、室内環境データを取得し、データを送信する部分を実装しました。
Raspberry起動後は、Pythonを使ってセンサを制御し、データを加工し、室内環境データを記録したJsonファイルを吐き出してサーバへ送信します。
センサモジュールに付属されている仕様書の偉大さを知りました。(CO2センサはキャリブレーションが必要であることを知らず、異常値を吐き出し続けており、「この空間のCO2濃度やばくね?」みたいな会話をしばらくしてました...)
高校生以来の電子工作だったので、回路設計でつまずくこともありましたが、とても楽しかったです。
抵抗のカラーコードの読み方も忘れていたので、高校で使っていた教科書を引っ張り出して復習しながらやっていました。
ここでカラーコードの覚え方を載せているWebサイトのリンクを掲載しときますね。
抵抗のカラーコード(抵抗値)の読み方
黒い礼(0)服、小林(1)茶、赤いに(2)んじん....懐かしい!!
高校生の頃はテスト前に呪文のようにブツブツ言いながら頭に入れていました笑
最後に
僕は今年22歳なので最初で最後のU-22プログラミングコンテストでした。
小規模なハッカソン(インターンも含めて)には割と参加したことがあったのですが、今回のプロコンのような大規模なコンテストには出場したことがなかったため、いい経験になりました。
そして何より、37/374に残ることができて本当に嬉しかったです。
大学を卒業するまでの残り3ヶ月では、何かしらのコンテストに出場することが難しいと思うので、今回のコンテストで結果を出すことができて本当によかったです。
僕はハッカソンやコンテストの楽しさに取り憑かれているので、社会人になってもハッカソンには出てみたいと思ったり...