Objective-C++
AI
IoT
TensorFlow

この記事はゆめみとQiitaのコラボ企画である「オフィスや自宅を快適にするIoT byゆめみ③ Advent Calendar 2018」 24日目のエントリです。


はじめに :golf:

はじめまして。:boy_tone1: 私は大阪で学生をしている者です。

最近、学部内でコンテストが行われていたので、そこに出展する作品を作りました。

この記事では、IoT,AIの知識0の状態から、1週間で友達と一緒に作り上げたプロダクト"Ai Locker"の完成までの道のりについて書きます。

【コンテストの概要】

テーマ: 未来のデスクトップ

詳細: 机の周りにあったらいいなと思うアイテムをMonoLab(大学内の工房)でつくる


Ai Lockerとは:question:

皆さんはをいくつもっていますか?

家の鍵、会社の鍵、倉庫の鍵、引き出しの鍵、ロッカーの鍵 :key: :key: :key:

少なくとも3個以上を毎日持ち歩いている人が多いのではないでしょうか?

そしていざ使う時、似た鍵がありすぎで、ドアの前でアタフタ:confounded:、、、なんてことも。。。

そこで僕たちが開発したのはリアルタイムピクチャパスワードを実装したAi Locker:robot:です。

お手持ちのスマホをかざすだけでロックが解除できます。

このロッカーを使えば、鍵の心配とはおさらば。:wave:

きっと、オフィスや自宅が快適になります。:thumbsup:

ペーパーレス、キャッシュレスの次はキーレスの時代が来ることでしょう!!!

(大風呂敷を広げました。ごめんなさい:bow_tone1:)

※ここからプロダクトの制作過程の話になります


Day1. アイデアソン :bulb:

まず、何を作るかすら、決まってなかったので、Yahoo! Japan OsakaさんのMix Leap Open Dayで、友達とアイデアソンをしました。

電源、Wi-Fi、ドリンク、お菓子だけでなく、アイデア出しの方法やUI/UXの話などをしてくださいました。本当にありがとうございます。:laughing:

またその時の話は別の記事に書いていますので、ご覧いただけると幸いです。 :smile:

アイデアソンでは

ブレインストーミングをして、



構想を練って、



アーキテクチャを考えた結果、

指パッチンをしたら、おかしが出てくる引き出しをつくることにしました!!


Day2. Lピカ & Lチカ(Arduino) :tools:

次の日、MonoLabにある電子工作キットで、Lピカ、Lチカをしました。



中学校の理科の授業のとき、乾電池と豆球をつないで光らせたことぐらいしか、電子工作をしたことがなく、LittleBitsやArduino、ブレッドボードなんて触ったこともなかったのですが、ググりながら試行錯誤し、指パッチン(マイクセンサー)をトリガーにライトを光らせるところまで、出来ました。

ただ、指パッチン以外(手を叩いても)でも反応してしまうことに気づきました。

そこで、指パッチンを判別するAIの分類器、finger-snapを探し出し、クローンしてみました。

:arrow_down:

成功。

マイク部分は電子工作ではなく、USBマイクを使うことにしました。


Day3. 計画 :arrow_upper_right:

アイデアソンはしたものの、具体的な計画にまで落とし込めてなかったので、必要な部品、技術を洗い出し、締め切りの20日までになんとか落とし込みました。:sweat_drops:

改めてみてみると、無茶苦茶な計画:scream:

バイトや授業がある中で、ハード過ぎるし、レーザーカッター使ったこともないし、DCモーターの制御なんかしたことないのによく、こんな短期間で出来ると思ったな、自分。

何より、一緒にやってくれてる友達にはマジで感謝:sob:


Day4. 買い出し :moneybag:

とりあえずモーターとベルコンが必要だと分かったし、買い出しに行きました。

いいサイズ感のものがあれば、引き出しは買おうと思ってたけど、無かったので結局作ることに。


Day5. レーザープリンタ & LINE bot

とりあえず、レーザーカッターを使ってみることに。illustratorのデータが必要だということが分かりました。illustratorは何回か使ったことがある程度でしたが、なんとかなりました。💦

LINE Beaconをラズパイにセットアップすることにも成功!このままトントン拍子で行くと思っていました。この時は、、、


Day6. 挫折 :sob: & 方向転換 :leftwards_arrow_with_hook: & TensorFlow Lite :tools:

サーボモーターの制御は上手くいったんですが、DCモーターはうまく制御ができず、よく調べてみると、モータードライバーが必要だと気づきました、あと残り1日、やってもたー。:sob: 内心、これは終わったなと思いました。

でも、幸運にもチーム開発だったので、僕がテンパってても、友達がちゃんと冷静に判断してフォローしてくれました。「作るもの変えよう!!」と。

これがきっかけとなって、もう一度アイデアを練り直しました。

そして、「引き出しのアイデアはそのまま使って、DCモータをでロックの部分を実装。LINEで解除できるIoT Locker」を作ることに。

完成の目処が立ったのですが、なんか、未来感薄いなと思い、AIというか、機械学習を使ってみることにしました。AIの知識はほとんど無かったんですが、必死にググって、TensorFlowLiteのデモアプリを見つけ、

Objective-C++の知識は0でしたが、ググりまくって、if文と文字列操作、アラートの出し方HTTPのGETリクエストをする方法を習得し、AI技術を使ったリアルタイムピクチャパスワードを実装しました。

Ai Lockerの最終的なアーキテクチャ図です

実物はこんな感じ

需要はないと思いますが、一応、GitHubにも公開してるのでよかったら見てください。

iOS APP

Raspberry pi


Day7. 動画撮影 :video_camera: & 資料作成 :bookmark:

提出資料と動画は前日に作っておくつもりだったんですが、疲れすぎて、寝落ちしてしまい、早朝5時ぐらいから家で撮影、編集しました。(笑)

撮影風景

提出資料

提出した動画はこんな感じになりました。

Vimoというアプリで動画編集を行いました。

Vimo iOS

Vimo Android


12. まとめと感想

Mix Leapのスタッフの方やMonoLabのスタッフの方はもちろんですが、チームのメンバーである友達に常にめちゃくちゃ助けてもらってもらってるな。ありがたいなー。と感じる一週間でした。:bow_tone1:

次回、何かチャンスが有れば、もっと余裕をもって計画して、面白いものをまたチームで作れたらなと思います。:muscle:

結果発表が楽しみです。:relaxed: