Web × IoT メイカーズチャレンジ 2017の前橋ハッカソンに参加しました

Monaca Education担当の岡本です。

総務省が『IoT 機器等の電波利用システムの適正利用のための ICT 人材育成事業』として実施している『Web × IoT メイカーズチャレンジ 2017』という学生や若手エンジニアを対象としたIoT デバイス開発のスキルアップ講習&ハッカソンがあることをご存じでしょうか?

私も先月知ったばかりなのですが、IoTについて学ぶために前橋ハッカソンに参加してきました。

Web × IoT メイカーズチャレンジ 2017の概要

学生や若手エンジニアを対象とした IoT デバイス開発のスキルアップ講習&ハッカソンとして今年は仙台・前橋・横須賀・鳥取・沖縄の全国5箇所で開催中です。前橋会場は昨年の12月に無料の予備講習「はじめての JavaScript 1DAY 講習会 for Web × IoT メイカーズチャレンジ」が開催されたり、今年の1月にはハンズオン講習会というものも開催されていました。

ハンズオン講習会に参加した方々が引き続きハッカソンに参加する流れなのですが私は

【追加募集!】Web×IoT メイカーズチャレンジ in 前橋 ハッカソン

という追加募集枠を使ってハッカソンから参加しました。

なお、前橋会場ではCHIRIMEN for Raspberry Pi 3という、RaspberryPi3 に接続した電子パーツをWebの技術で直接制御できるIoTプロトタイピング環境を使用しました。 Chirimenは『W3C Browsers and Robotics Community Group』と『CHIRIMEN Open Hardware』が標準化検討を進めている「Web GPIO API」や「Web I2C API」を使用することでブラウザから直接GPIOやI2Cを叩いてセンサーデバイスなどを利用できます。

0日目

IoT プログラミング環境 CHIRIMEN for Raspberry Pi 3 が届く

申し込みをしたら翌営業日にはハンズオン講習会で使われたIoTプログラミング環境一式が送られてきました。

ハッカソンの前日に最低限、GPIOだけサンプルを動かしてから当日に望むことができました。

中央情報経理専門学校と群馬大学の混成チームに途中参加

追加募集メンバーとして、中央情報経理専門学校生と群馬大学生の混成チームにアサインされました。そして事前にSlackというチャットサービスに招待され、企画の紹介などをうけました。

サカイ「招き猫に音を認識させて反応するプログラムを作りたいんです!」
オカモト「なるほど!」
サカイ「しかし、今試しているセンサーがうまく動かないのです!」
オカモト「そのままハッカソンの日を迎えるのは危険ですね、秋葉原でセンサーを買い込んでおきます」
サカイ「お願いします」

ハッカソン初日

八王子にある自宅を早朝に出て、八王子駅から新前橋駅まで八高線を経由して向かい、そこから徒歩で会場入り。

経費節約のため普通列車でのんびり向かいましたが、家から会場まで約4時間近く掛かりました。
まぁ、有料特急を使っても八王子からだと30分ぐらいしか早くならいのですけどね。

メンバー

  • オカモト:IT企業の会社員です。開発寄りの何でも屋。
  • ニシムラ:専門学校の先生です。デザイン寄りの何でも屋。
  • シミズ:専門学校の1年生です。プログラミングは最近始めました。
  • ワシオ:専門学校の1年生です。プログラミングは最近始めました。
  • サカイ:群馬大学・社会情報学部の生徒です。プログラミングは最近始めました。
  • 豊岡招き猫:高崎市豊岡町の伝統工芸品。紙でできており、また中は空洞です。

今回はプログラミング経験の浅い若者が多いチームでした。
大人組に関してもIoTは未経験。

今回のハッカソンで最終的にIoT作品が完成して発表もできたのはメンターの皆様のおかげです。

マインドマップでアイディア整理

私も途中参加だったので状況や今後のスケジュールを整理するためにマインドマップを書きました。

ノートパソコンの画面だと3人ぐらいが限界ですが、サブモニターを使ってデュアルディスプレイ表示(ミラーリング)すれば大人数でも画面がちゃんと見られるので、便利です。

サブモニターはChirimen用に借りていたモニターを活用させて貰いました。

とりあえず、しゃぶしゃぶ

チームビルディングを兼ねて昼からしゃぶしゃぶ!


※しゃぶ葉にて

マインドマップで大凡のタスクは見えてきたので、肉を食べて開発に備えます。

大人組は買い出し

追加購入すべき物品を求めてダイソーとヤマダ電機に寄りました。
若者組には先に会場に戻っていただき、こういった雑用は大人組が対応することにしました。

買ったもの

  • 自転車用のLEDライト(目玉用)
  • 座布団(招き猫の下に敷く)
  • パーティー用のモール(しっぽの代わり)
  • 小型スピーカー(猫が鳴く)

電子部品屋がなくても100均の製品をバラして代替できることがあります。今回は自転車のLEDを取り外して招き猫の目玉に使いました。

センサー動く!

大人組が買い出しに行っている間に若者3人がセンサーを動かすことに成功していました。

オカモト「すごいな!」
若者達「メンターが色々助けてくれました!」

私が買ってきたセンサーはアナログデータを扱うもののため、デジタル信号に変換するための装置などが必要だったようです。その辺のアドバイスをメンターの方が助けてくれたとのこと。

IoTの学習ではメンターの存在が大きいなと思いました。

19時終了・そして夜の開発へ

初日のハッカソンは19時で終わりました。

私は近くに宿をとっていたので作品にMonacaによるアプリやクラウドデータベースといった要素を含められるよう、ホテルでサンプルアプリの開発を行いました。一応、開発はサンプルまでに留めて作品への実装は若者達に託すことにしました。

2日目

朝9時ぐらいに集まって昨日の続きを実行。
お昼ご飯は食べに行く時間が惜しかったので、お菓子とか朝食の残りのパンで凌いで開発を続行しました。

今にして思えば、懇親会の開始時間が思ったより遅かったのでお昼はちゃんと食べておくべきでした。

モバイルアプリ化はMonacaとニフクラで瞬殺

今回は猫の音センサーのボリュームが閾値を超えるたびにニフクラのクラウドデータベース(ニフティクラウド mobile backend)に記録するようにしました。また、その値を参照するモバイルアプリをMonacaでサクッと開発。Monacaにはプロジェクト共有機能があるのでハッカソンイベントでは便利です。

猫に装置を内蔵できないトラブルが発生

バッテリーとラズパイとセンサー・その他ケーブルやブレッドボードを、猫の中にそのまま格納するとバランスが取れないことが判明。

急遽、私の私物ケースを加工して収納容器を作成することに。ドリルで穴を空けたりノコギリで蓋の一部をカットして、オリジナルのIoTケースを作成しました。

終了時間ギリギリでトラブルが発生し、それに対して知恵を絞って解決策を考えるのはハッカソンでは良くあることです。

発表準備~審査

経験の浅いメンバーが多かったので、審査の時にそなえて改めてマインドマップを作成。質問されたときにパニックになってしまわないように、自分たちが取り組んだ作品の目的や内容、技術的に工夫した点や苦労したことなどを書き出して頭の中を整理しました。

なお審査はパワーポイントを使ったプレゼンではなく、実機デモを交えた発表でした。

発表時に発生したトラブル一覧

  • スピーカーから音が鳴らない(スピーカーのスイッチがオフになっていた)
  • 座布団の中にケースが収まらない(付け焼き刃だったか)
  • ケースを逆に突っ込んでしまった(きっとパニックになったのでしょう)
  • スピーカーの音が小さくて分かりにくかった(発表用のマイクを近づけて解決)

まとめ

私自身が実作業にあまり関われなかったのが心残りですが、若者達がIoTデバイスの組み立てやセンサープログラミングの経験を積めたのは非常に良かった。

初日の午前中には自信なさげだった若者組が夕方頃には目を輝かせ活き活きと開発していたのは本当に驚いた。顔つきもだいぶ変わって、翌日には審査で楽しそうに発表をしたり懇親会でも積極的に話をしていたのは大変良かったです。

やはりハッカソンによる実践型の開発経験は人を成長させます。

Web × IoT メイカーズチャレンジ、良いイベントです。