デザイン会社 btrax > Freshtrax > 【アメリカと日本でハッカソン参...
【アメリカと日本でハッカソン参加してみた】IoTトレンド Webの開発者も続々と参入する理由とは?
btraxの社内エンジニアが、昨年10月にサンフランシスコでスタートアップが主催するハッカソンに、3月7日、8日に日本滞在中にOpen Hack Day Japan 3に参加した。
日米のハッカー達と一緒にIoTの開発を行うことで技術面からIoTのトレンドが見えてきた。
これまではWebサイトやスマートフォンアプリを作っていたディベロッパーが続々とIoTの開発に取り組むようになっている。なぜこのような流れが起こっているのか、参加者本人の感想と共に、日米のハッカソンのレポートとともに解説する。
■アメリカ
Tessel + PubNub IoT Hackathon @San Francisco
アメリカで参加したのは、btraxオフィスから徒歩10分程度のPubNubというmBaaS (Mobile Backend as a service)のスタートアップのオフィスで2014年10月に開催された。Tesselというマイコンボードと組み合わせて、短時間でIoTを作るというハッカソン。
mBaaSとは、スマートフォンアプリでよく利用される汎用的な機能をクラウドから提供するサービスである。クラウド上に用意された機能をAPIで呼び出すだけで利用できるので、サーバー開発・運用不要で開発が短時間で行えるメリットがある。
BaaS系のサービスには、Facebookに買収されたParseやGoogleに買収されたFirebaseなどの競合がおり、PubNubは日本では知名度がないが、リアルタイム通信が簡単に実装できる点を売りにしている。 mBaaSはモバイルアプリだけでなく、IoTの開発にも利用ができ、最近ますます盛り上がってきている分野だ。
Tesselは日本であまりなじみはないが、Raspberry PiやIntel Edisonと同じようなマイコンボードとイメージしてもらってよい。専用のmicroSDカード、RFID、サウンド、Bluetooth、モーター制御、リレー、温度・湿度などのモジュールをソケットに挿入していくだけで機能を拡張していくことができ、Webの開発で用いるJavascript(Node.js)というプログラミング言語を用いて開発できるのが特徴だ。
このようなハッカソンは、サンフランシスコでは数多く開催されている。今回はEventbriteという様々なイベントが掲載されているサービスを用いて、検索して見つけた。サンフランシスコ、シリコンバレーでEventbriteはものすごく役に立つので、訪れることがあればぜひ使ってみてほしい。イベント詳細は次のページで閲覧できる。
Tessel + PubNub IoT Hackathon @San Francisco | Eventbrite
イベントスケジュール: 9amから6pmまで
見知らぬ人とチームを結成し、開発を完了し、プレゼンできる状態にするまでをわずか6時間。参加者は総勢50名程度、10チームほどが結成された。途中で軽食や飲み物も振る舞われた。
なお、ハッカソンには、事前にチームを組んでから登録するものや、当日集まってチームを結成するもの、開発時間も今回のような短い物から、数日間に渡るものなど様々な形態がある。
9:00 – 受付、軽食タイム
10:00 – TesselとPubNubの紹介
10:30 – チーム結成、開発スタート
12:30 – ランチ提供
14:30 – アイスクリームの提供
16:30 – 開発完了
16:45 – プレゼン大会
17:30 – 結果発表
18:00 – 終了
チーム結成: 5人で1チーム
1人や2人で参加している人が多く、ほとんどチームがその場でチームを結成していた。1人で参加したが、たまたま同じテーブルに座っていた5人でチームを組むことになった。メンバーは2人がエンジニアであったが、1人はデザイナー、1人は企画職であった。
エンジニアの2人にどのような仕事をやっているか聞いたところ、普段の仕事はWebのサイトやアプリケーションの開発であり、IoTやマイコンの経験があるわけではない。実際に、彼のGitHubのリポジトリを見ても、JavaScriptやPythonというプログラミング言語を使ったWeb開発ばかりだった。
私もこのときは、Androidの開発をメインに行っていた。十数年前、高校生のときに趣味でラジオなどの電子工作や、マイコンを使った簡単な電子工作を行った経験はあるが、その時に使っていたマイコンはTesselと比べるとかなり貧弱であるし、インターネットにもつなげなかった。このハッカソンが、初めてのIoTの開発となった。
ブレスト: スピード命
6時間しかないため、急いで企画を行う。かなりのスピード感が要求されるが、これがハッカソンの醍醐味だ。5人でディスカッションを行ったが、自然とリーダー役が現れ、時間を意識してスムーズに議論は進む。1人が出したアイデアを基本に、みんなが意見を出し合って固めていくような流れとなった。
まとまったアイデアは、マイクモジュールで大きな音を検知した瞬間に写真を撮影し、温度、湿度、光の強さに応じて写真の色合いを加工し、撮影された写真はインターネット上に即時に投稿され、Webブラウザからギャラリーとして閲覧できるというものだ。写真の色合いは、例えば、暖かければ色味を暖色に、寒ければ寒色に加工するといった具合である。
開発: 役割に応じて分担
TesselとPubNubともに使い方はものすごく簡単で、戸惑うことはない。システム構成をみんなで相談して決めて、各自に分担して開発を進めていく。マイクで音の検知を行うところは君、カメラで撮影する部分は君、画像を加工する部分は君といったように分担を分けて開発を行う。
カメラモジュール、温度モジュール、マイクモジュールを使った。Tesselの本体にパチパチとはめていくだけだった。ハードウェアの実装はたったこれだけで、すぐに終わった。
短時間で完成したデバイス
次に、Node.jsでソフトウェアの開発を行う。Node.jsはWebで使われるプログラミング言語であり、戸惑うことも無い。普段慣れ親しんだ構文を使って、センサーの入力情報を扱うことができるため、Webの開発を行っているのと感覚はほとんど変わらなかった。ただ、実際に動きが伴うので、プログラムが動いたときの感動はいつもよりも大きい。 分担して開発したプログラムを統合し、それが実際に動作して、撮れた写真がPCブラウザ上に表示されたときには歓声があがった。
発表会: 3分間のデモピッチ
発表は1チーム3分間ほどで行う。スライドは用いずデモを行いながら、エンジニアは自分が開発した部分をどのように実装したかの紹介を行った。英語が多少分からないところがあっても、プログラムを見ればだいたいのことは分かる。
優勝チームのデモの様子 リアルタイムにインターネットにつながるオモチャのボール
開発時間が短いのにもかかわらず、どのチームもしっかり動いているものを作っており、レベルの高さに驚いた。当日集まったほとんどIoTの開発経験のないWebディベロッパーが、短時間で見る人を楽しませるようなものを作れてしまうことに感動した。
このハッカソンに参加する前は、マイコンでプログラミングするためには、Webの開発で使わないような、少し古い原始的な言語か、マイコン専用の言語を使わなければならず、学習が必要になってしまうというイメージが強かったが、そのような思い込みが解消された。
■日本
Open Hack Day Japan 3 @Tokyo
「Hack Day」とは、24時間という限られた時間内で自由にアイデアを創造、実際に開発する、世界各国のYahoo!で開催されている開発イベントだ。中でも、「Open Hack Day」とは、Yahoo! JAPANが主催している、社員以外も参加できるHack Dayだ。開発時間は24時間で、今回の発表チーム数は81チーム、発表チーム参加者数は325名。ちょうど日本滞在中に開催されたので、友人が誘ってくれて参加することになった。
スケジュール: 2日間24時間
開発を24時間ぶっ続けで行い、開発終了わずか1時間で発表会。デモが動かないと発表ができないという非常に厳しいハッカソンだ。
3/7 11:00 – 受付
3/7 12:00 – 開発開始
3/8 12:00 – 開発終了
3/8 13:00 – 発表開始
3/8 17:00 – 作品展示
3/8 18:00 – 授賞式
詳細は、Open Hack Day Japan 3 公式サイト
チーム結成: Rubyの女神と同チーム
事前に、チームを結成して申し込むことになっている。今回のチームは、くら、岡パイ、Rubyの女神として有名なギーク寄りな女優の池澤あやかさん。
くら、岡パイはWebのプラットフォーム技術の優秀なエンジニアで、高度な信頼性とセキュリティが求められる大規模システムの開発を行っている。長期的に運用される信頼性の高い大規模システムの保守・開発の業務ではなかなか新しい技術を試したり、取り入れることは難しい。2人はハッカソンにも積極的に参加して、意識的に新しい技術やトレンドに触れているそうだ。
池澤あやかさんはRubyの女神として有名だが、電子工作も得意だ。今回は完全にプライベートで参加されており、本当にプログラミングや電子工作が好きなようで、当日は大きな電子部品の詰まったカバンを持ってきてくれた。あまりに自然に溶け込んでいたので、本人ではなくそっくりさんと思っている参加者もいたようだ。
企画: リア充向けIoTタオル
Open Hack Dayは何を作るかは完全に自由だ。マイコンを使ったIoTを作ろうということだけは決めていたが、中々決められず、結局、前々日に集合してブレストを行った。実際にプロダクトとしてどこかの会社が作りそうなものをテーマにしても面白くないので、お風呂をテーマにした。お風呂に唯一持ち込める、タオルをインターネットに接続し、男湯と女湯でコミュニケーションをする案に決定。
男湯でタオルを頭の上にのせて湯船につかっている時に、頭を振ると女湯の彼女や奥さんのタオルが鮮やかに光り、「Yu!」と声がでる。頭を何回か振ると、「そろそろ出るよ」などに変化する、楽しいデバイスだ。前日に秋葉原にLEDなどの電子パーツを購入しにいき、事前に準備しておいた。
開発: Intel Edisonを利用
24時間ぶっ続けで開発を行う。技術的に今回のプロダクトを簡単に説明すると、加速度センサで頭を振っていることを検知すると、相手のデバイスへ信号を送る。相手のデバイスは信号を受け取るとLEDが光り、音が鳴るというもの。通信はリアルタイムで行われる。
池澤あやかさんがIntel Edisonを使ったことがあることと、Intelさんが協賛しているので無償で借りられ、さらに実際に動く物を作ればそのまま頂けるということだったため、Intel Edisonを使うことに決定。Intel Edisonとは、2014年の10月にIntel社から発表された、SDカードとほぼ同じ大きさのマイクロコンピュータである。開発方法も、普段あまり触らないものに触れたいということで、新しいものを積極的に採用していった。
開発中の様子
電子回路を頭にのせてテスト中
開発は過酷だが、協賛企業さんが、様々な差し入れをしてくれるのも魅力の1つ。休憩用のカフェルームも用意されている。
OFFICE DE YASAIさん
レッドブルガールも登場。左から、池澤あやかさん、くら、レッドブルのお姉さん、岡パイ、私
深夜になると帰宅する人もいるが、多くの参加者は徹夜で開発。会場は異様な熱気に包まれていた。正午スタートなので、ちょうど深夜に開発の山場が来ることが多い。本当に完成するのかと不安になりながらも、なんとか乗り切った。
慣れない開発で、途中いろんなトラブルが発生しながらも、なんとか24時間で開発を完了した。ここまで長い開発だと、終了時には大きな達成感がある。理想は完全防水、LEDもタオルの繊維に織り込む軽量デバイスだったのだが、いろいろあって少し大型になってしまった。
完成したプロダクト
プロダクトのデモ動画
発表: 80を超えるチームが90秒でデモ
開発終了の1時間後から発表が開始される。発表は1チームわずか90秒。80を超えるチームの発表が4時間で行われる。わずかな時間の中でスピーディーに発表が行われるだけでなく、デモを盛り込むチームが多いので躍動感がすごい。
私たちも無事にデモも入れた発表を行うことができ、その様子はYahoo! Japanの公式 Facebookページでも紹介された。(池澤あやかさんの効果)
photo by Yahoo! Japan
他チームの発表はレベルが高いものばかりで、「本当に24時間で作ったの」と驚くものも多かった。Yahoo! JapanはWebサービスやアプリを開発する会社であるため、昨年まではWebサービスやアプリの作品が多かったが、今回はほとんどのチームがIoTを作っており、日本のハッカー達もIoTに取り組んでいることが実感できた。
4時間を超える発表の後、作品展示が行われ、他の発表者の作品もじっくり見ることができ、気になった作品の開発方法も聞くことができた。発表の様子は、いくつか記事になっているので、ぜひ読んでほしい。
- 89チーム350人のハッカソンの90秒爆速プレゼンがスゴイ!【Yahoo! Open Hack Day 3】 #openhackday
- 今日、六本木のYahoo!でIoTなハッカーの熱い戦いが! #openhackday
- 男湯と女湯をつなぐ未来タオルほかビックリ発明11連発:Open Hack Day Japan 3
また、池澤あやかさんも週アスPLUSの連載コーナーで今回の参加レポートを書いているので、興味のある方はぜひ。
池澤あやかの自由研究:初めてのハッカソン“Open Hack Day Japan 3”に参加しました!
Web開発者が簡単にIoTを作れる理由とは
以上の日米のハッカソンの体験レポートから、Webの開発者でもIoTのプロトタイプが簡単に作れることと、大きな関心を持ち始めていることがお分かりいただけたと思う。その理由をまとめると、次の3つが挙げられる。
1. 電子回路が単純化
Raspberry Piなどのマイコンを用いない電子工作だと、2つのLEDを点滅させるだけでも、抵抗、コンデンサ、トランジスタなどの電子部品の基礎知識と、オームの法則、コンデンサの発振回路など頭がいたくなるような物理の方程式を解き、モーター用IC、オーディオ用ICなどの無数のICの使い方を理解しながら回路設計を行う必要がある。これらは電子工学の分野であり、情報工学を学んだプログラマにも簡単にできるものではない。
しかし、マイコンを用いたIoT開発であればピンからの出力は簡単に操作できるし、温度や加速度などのセンサー、カメラなどがモジュール化しており、各モジュールをマイコンに接続していくだけでよい。電子回路がかなり簡略化されることで、簡単なものなら電子回路の知識がほとんどいらなくなった。半田ごても、2つのハッカソンではほとんど使用していない。
2. マイコンが進化。Webの開発環境とほぼ同じに 使いなれた言語で開発が可能
昔からマイコンはあったが、性能が貧弱なために、Web開発で用いられるLinux系のOSを搭載されていなかった。プログラミング言語も、Webの開発で使うではなく新たに覚える必要がある。しかし、Raspberry PiやIntel EdisonはLinux系のOSが搭載されている。そのため、扱いはWebの開発環境とかなり似ているし、プログラミングもJavaScript(Node.js)やPython等のWeb系の言語でも開発することができる。
例えば、IoT間でリアルタイムに情報をやりとりしたいというときには、リアルタイムチャットのWebサービスの実装とかなり近い方法で実装ができる。また、写真を撮影し、画像認識をするというようなプロダクトがYahoo! JapanのOpen Hack Day Japan 3でもあったが、これもWeb開発で使う技術とほぼ同じもので実装ができてしまう。もちろん、製品としての品質が求められる場合は、消費電力など無数の条件を考えなければならないが、プロトタイプであれば十分だ。
Raspberry Piはディスプレイの接続、ブラウザでのインターネット利用も可能。【btrax社内でも開発中】誰でもIoTが自作可能なラズベリーパイ驚きの海外事例7選より
3. 新しいもの好きのハッカーたちは、すでにスマホに飽きている
Web開発者の中でも、新しいもの好きのハッカー達は、アプリやサービスが出尽くしてきた感があるスマホに飽き始めている。また、Web開発、スマホアプリ開発を始めた頃には、簡単なプログラムを書くだけでも誰でも感動したと思うが、慣れてくると段々そういった感動が失われてくる。
IoT間の開発は、これまでWebやアプリを開発してきたエンジニアにとっては未知の領域であり、通信してLEDが光るだけというようなすごく簡単なものが動いただけでも感動し、プログラミングを始めた頃の感動を思い起こさせてくれる。実際に、目を輝かせながら開発を行っているエンジニアも多かった。
IoTに興味があるが、難しそうだからと躊躇しているエンジニアも、ぜひRaspberry PiやEdisonなどを使って開発してみてほしい。今後、世界中を驚かすようなIoT製品が、Webのディベロッパーから生み出されるかもしれない。
btraxではIoTプロトタイプを開発中!スタッフ、インターンも募集中
btraxでは、IoTデバイスの市場調査、UX研究を目的に、IoTプロトタイプを開発している。現在進行しているのは、社内に取り付けられたミラーボールをインターネットに接続し、様々なツール(Google Apps連携、Slack連携など)から遠隔で操作するプロジェクト
photo by Yahoo! Japan
CES 2025の革新を振り返りませんか?
私たちは1月11日(土)、btrax SFオフィスで「CES 2025 報告会: After CES Party」を開催します!当日は、デザインリーダーたちがCES 2025での注目トピックスや最新トレンドを共有します。ネットワーキングや意見交換の場としても最適です!