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 メイカーズチャレンジ、良いイベントです。

静岡県立島田商業高校の3年生(就職予定)にインタビューしました


地域課題をアプリ開発で解決する取り組みを行っている『静岡県立島田商業高等学校』の3年生がオープンソースカンファレンス2018 Hamanakoに出展してブースを出されていたので、急遽インタビューを申し入れました。

インタビューには県内でIT企業への就職が決まっている『松浦さつき』さんにご協力いただきました。

学校で学んだことは社会で役に立ちそうですか?

岡本「静岡県立島田商業高校の情報ビジネス科では、オープンデータやRESASの活用やフューチャーセンターによる地域課題の発見など、実践的な取り組みを色々と行っていますが、学校で学んだことは社会で役に立ちそうですか?」
松浦「まだ社会に出ていないので実際に役立つかどうかはわかりません。」
岡本「失礼いたしました」

情報ビジネス科に入学した理由は?

松浦「中学校の先生が、”これからはロボットや人工知能が発達していくことで人間の仕事が奪われていく”と言ってたので、ロボットや人工知能を活用する側に回りたいと思って情報ビジネス科に進みました。」
岡本「なるほど。ではプログラミングなどを本格的に始めたのは高校からなのですね。」
松浦「はい。」
岡本「何が一番大変でしたか?」
松浦「全部大変でした。」
岡本「そ、そうですか。」
松浦「楽しいけど辛い、という感じでした。」
岡本「楽しかったならよかったです。そんななかで一番マシだったのは何ですか?」
松浦「資格対策の方がちょっと楽だったかもしれません。」
岡本「資格と言えば、iパスとかはやっぱり取るんですか?」
松浦「2年生の時に取りました。」
岡本「なるほど。やっぱりプログラミングは大変?」
松浦「1年目は大変でしたが、もう慣れました。」
岡本「よかった。」

自宅でプログラミングしますか?

岡本「自宅ではプログラミングしますか?」
松浦「しましるの開発では自宅からも行いました」
※ 『しましる』は島田商業が開発したアプリ作品の一つ、詳細はこちらを参照
岡本「Monacaなら自宅からでも開発の続きができるので便利でしょう?」
松浦「はい、便利です。」
岡本「よかった。私が学校の先生に売り込むときにそう言って勧めているから、確認できてよかったです。」

チームの決め方について

岡本「アプリ開発のチームってどうやって決めたのですか?」
松浦「最初クラスを半分に分けて、担当の先生も分かれたので先生によって決め方が違いました。」
岡本「なるほど」
松浦「私たちのグループは、プログラミングが得意な人がまずリーダーとして選出されました。」
岡本「ふむふむ。」
松浦「リーダーが5人選出されて、そのあとリーダーがメンバーにしたい人を仲間に入れてチームを作ります。」
岡本「チームが先で、そのあとで課題を探して決めたんですね。」
松浦「はい。」

プログラミングに取り組んだ時間

岡本「3年生では、何時間ぐらいプログラミングに取り組みましたか?」
松浦「週4回の授業で各1時間、それと部活や土曜日にもやるので毎週10時間はやりました。」
岡本「年間で考えると夏休みや試験期間を抜く必要があるから、40週と考えて400時間ぐらいかな?」
松浦「恐らくそれぐらいです」
岡本「いいですね、それぐらい取り組める時間があるのは。」

春からの社会人生活について

岡本「春からIT業界で働くことについては、ドキドキですか?ワクワクですか?それともギラギラですか?」
松浦「ギラギラって…」
岡本「IT業界で一旗揚げて成功者になりたいとか」
松浦「ちょっと、そういうのはないです。どちらかというとドキドキです。」
岡本「そうですか。まぁ、せっかくOSCの会場でブース出されているのですから業界の先輩方に後であいさつ回りをしましょう。」

※インタビューの後、静岡で活動しているコミュニティーや企業にあいさつ回りを実施しました。

※ ピンクの服の方は『WordBench しずおか』の『遠藤 進悟』さん

まとめ

プログラミングやコンピューターを学ぶ上で、用語が多かったりはじめて学ぶことが多いのはやはり課題だなと思いました。これから学ぼうと思った人が段階を踏みながら学べるようにしていきたいと改めて思いました。

また、学んだことが実際に社会で役立つかどうかは、現時点ではわからないので島田商業高校のOBにもお話を伺いたいと思いました。松浦さんにはOB会の立ち上げをお願いしたので、OB会が立ち上がったらインタビューないしアンケートを取りたいなと考えています。