Successfully reported this slideshow.

TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?

20,650 views

Published on

2015/04/11に行われた「TOSHIBAxGUGEN FlashAirハッカソン -ユーザーズミーティング&アイデアソン」のプレゼンテーション資

Published in: Technology
  • Sex in your area is here: ♥♥♥ http://bit.ly/39sFWPG ♥♥♥
       Reply 
       
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/39sFWPG ❤❤❤
       Reply 
       
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
       
    Your message goes here

TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?

  1. 1. 2015-04-11 TOSHIBA x GUGEN FlashAir Hackathon FlashAirでなに作る? 土居 意弘@株式会社フィックスターズ 下記の画像素材を使わせていただきました!感謝!! ・BUFFALO製品写真ダウンロードサービス ・日経パソコン オンライン「テンプレート」コーナー ・Wikipedia Phil Hollenback - http://www.flickr.com/photos/phrenologist/164593940/ ・ICON HOIHOI ・http://www.toshiba.co.jp/p-media/flashair/
  2. 2. 自己紹介 土居 意弘 ど い むね ひろ 得意技: 開発者サイト FlashAir Developersの運営 FlashAirアプリの開発 FlashAirの変な使い方の開拓 映画アルマゲドンのテーマを熱唱すること 株式会社フィックスターズ ストレージ事業部 ディレクター TOSHIBA x GUGEN FlashAir Hackathon 2
  3. 3. 今日の話 TOSHIBA x GUGEN FlashAir Hackathon 3 FlashAirとは 実は超ミニマイコン 開発者情報公開中 ひろがるコミュニティ Peripheral HTTP Client SD / iSDIO SPI Wireless LAN HTTP HTTP Server SD Host Wireless LAN HTTP機器による PIO
  4. 4. FlashAirとは TOSHIBA x GUGEN FlashAir Hackathon 4 メモリ 無線LAN ウェブサーバ
  5. 5. もっとも基本的な使い方は・・ TOSHIBA x GUGEN FlashAir Hackathon 5 写真を撮ったら、シェア カメラに入れたFlashAirから、 スマホにデータを送る
  6. 6. 仕組みはこう TOSHIBA x GUGEN FlashAir Hackathon 6 1. ホスト機器が ファイルを書込み 2. クライアント機器 からデータを読込み SD I/F HTTP over WLAN
  7. 7. 他にもこんな風に使えます TOSHIBA x GUGEN FlashAir Hackathon 7 音楽をシェア 資料をシェア 動画をシェア
  8. 8. TOSHIBA x GUGEN FlashAir Hackathon 8 しかし、これはFlashAirが できることのほんの一部です
  9. 9. 実は超ミニマイコン!! TOSHIBA x GUGEN FlashAir Hackathon 9 メモリ 無線LAN ウェブサーバ + GPIO Luaインタプリタ
  10. 10. こんなことができます 無線 – APモードで起動 – STAモードで起動 – AP+STA同時起動 – 無線切断 – SSIDのスキャン HTTP – HTTPリクエストの発行 スクリプト – Luaスクリプト実行 PIO – SD端子のPIO制御 Webサーバー – ファイルのダウンロード – ファイルのアップロード – 標準HTMLのカスタマイズ – CGIによる情報取得 SD – 内蔵フラッシュメモリのファ イル読み書き その他 – 作業用SRAMの読み書き TOSHIBA x GUGEN FlashAir Hackathon 10
  11. 11. アプリ作成方法は3種類 制御する機器によってできることが違います (1) HTTPによる制御 (2) iSDIOによる制御 (3) Luaスクリプトによる制御 同時に使うことも可能 11 TOSHIBA x GUGEN FlashAir Hackathon Peripheral HTTP Client SD / iSDIO SPI Wireless LAN HTTP HTTP Server SD Host Wireless LAN HTTP機器による PIO プロトコル 接続
  12. 12. (1) HTTPによる制御 TOSHIBA x GUGEN FlashAir Hackathon 12 Peripheral HTTP Client SD / iSDIO SPI Wireless LAN HTTP HTTP Server SD Host Wireless LAN HTTP機器による PIO プロトコル 接続 スマホアプリなど
  13. 13. HTTPによる制御でできること 無線 – APモードで起動 – STAモードで起動 – AP+STA同時起動 – 無線切断 – SSIDのスキャン HTTP – HTTPリクエストの発行 スクリプト – Luaスクリプト実行 PIO – SD端子のPIO制御 Webサーバー – ファイルのダウンロード – ファイルのアップロード – 標準HTMLのカスタマイズ – CGIによる情報取得 SD – 内蔵フラッシュメモリのファ イル読み書き その他 – 作業用SRAMの読み書き TOSHIBA x GUGEN FlashAir Hackathon 13
  14. 14. コンテンツ閲覧アプリ TOSHIBA x GUGEN FlashAir Hackathon 14 HTTP通信でデータ取得 リスト情報もCGIで
  15. 15. Webサイトを作ってしまう TOSHIBA x GUGEN FlashAir Hackathon 15 写真を配信 (オレオレFlickr) 動画ストリーミング (オレオレYouTube) HTTP Live Streaming 形式でFlashAirに置く
  16. 16. Webサーバー設置の最小構成 TOSHIBA x GUGEN FlashAir Hackathon 16 AC adapter/ battery USB card adapter
  17. 17. センサーデータの記録と監視に TOSHIBA x GUGEN FlashAir Hackathon 17 センサー  マイコン  FlashAir  スマホ 照度センサー (CdS)
  18. 18. センサーデータの記録と監視に TOSHIBA x GUGEN FlashAir Hackathon 18 マイコン側 // 値を読む val = analogRead(0); // ファイルに書き込む myFile = SD.open( "test.txt", FILE_WRITE); if (myFile) { myFile.println(val); myFile.close(); } // ファイルを読み出す $.ajax({ type: 'GET', url: ‘test.txt’, datatype: 'text', success: function(data, dataType) { // グラフ書く drawCharts(data); // 2秒ごとに繰り返す setTimer(poll, 2000); }); スマホ側
  19. 19. Arduino + 照度センサ センサが計測した照度データ(テキスト) をFlashAirに格納。JavaScriptを使って、 タブレット側のブラウザでグラフ化して表示 さらに応用例 iRobot Create iRobot Create(教育用のルンバ型ロボ) の動作情報をFlashAirに格納。 タブレットで表示し、デバッグに活用。 ※京都大学 高瀬准教授・細合様ご協力 TOSHIBA x GUGEN FlashAir Hackathon 19
  20. 20. CGIで端子のH/L出力を制御 Pin SD 1 CD/DAT3 2 CMD 3 VSS1 4 VDD 5 CLK 6 VSS2 7 DAT0 8 DAT1 9 DAT2 ビット割当 CMD : 0x01 D0 : 0x02 D1 : 0x04 D2 : 0x08 D3 : 0x10 SDインターフェイス端子を、汎用I/O信号 端子として利用できます!(FW2.00.03~) SDカード端子 マニア垂涎!! TOSHIBA x GUGEN FlashAir Hackathon 20
  21. 21. 応用例1:遠隔 L チカ TOSHIBA x GUGEN FlashAir Hackathon 21 電源 LED FlashAir ※ Lチカ=LEDチカチカの略。電子工作のHello World
  22. 22. 点灯、消灯の方法 TOSHIBA x GUGEN FlashAir Hackathon 22 http://flashair/command.cgi?op=190& CTRL=0x02&DATA=0x02  H  点灯 http://flashair/command.cgi?op=190& CTRL=0x02&DATA=0x00  L  消灯 ブラウザで次のURLにアクセス
  23. 23. 応用例2:遠隔クレーンゲーム TOSHIBA x GUGEN FlashAir Hackathon 23
  24. 24. しくみ TOSHIBA x GUGEN FlashAir Hackathon 24 某アンパン顔のキャラ クタの子供用クレーン ゲームを改造 専用アプリで 無線LAN経由 でCGI発行 FlashAirが各ボタンの信 号をON/OFFする
  25. 25. (2) iSDIOによる制御 TOSHIBA x GUGEN FlashAir Hackathon 25 Peripheral HTTP Client SD / iSDIO SPI Wireless LAN HTTP HTTP Server SD Host Wireless LAN HTTP機器による PIO プロトコル 接続 Arduinoなど
  26. 26. iSDIOによる制御でできること 無線 – APモードで起動 – STAモードで起動 – AP+STA同時起動 – 無線切断 – SSIDのスキャン HTTP – HTTPリクエストの発行 スクリプト – Luaスクリプト実行 PIO – SD端子のPIO制御 Webサーバー – ファイルのダウンロード – ファイルのアップロード – 標準HTMLのカスタマイズ – CGIによる情報取得 SD – 内蔵フラッシュメモリのファ イル読み書き その他 – 作業用SRAMの読み書き TOSHIBA x GUGEN FlashAir Hackathon 26
  27. 27. ArduinoからSSIDスキャン TOSHIBA x GUGEN FlashAir Hackathon 27 void iSDIO_scan(uint32_t sequenceId) { memset(buffer, 0, 512); uint8_t* p = buffer; p = put_command_header(p, 1, 0); p = put_command_info_header(p, 0x01, sequenceId, 0); put_command_header(buffer, 1, (p - buffer)); printHex(buffer, (p - buffer)); card.writeExtDataPort(1, 1, 0x000, buffer); } void iSDIO_showScanResult() { card.readExtDataPort(1, 1, 0x200, buffer); uint8_t* p = buffer + 24 + 4; uint8_t num = get_u8(p); Serial.print(F(“# of SSIDs: ")); Serial.println(num); p += 3; for (uint8_t i = 0; i < num; i++){ printString(p, 32); p += 44; } } ※擬似コードです スキャン命令の 発行 スキャン結果の 取得
  28. 28. 応用例:電車模型 TOSHIBA x GUGEN FlashAir Hackathon 28 • 操作に加えて、在線情報フィードバック • 共有メモリを使って大容量の制御情報の やりとりを実現
  29. 29. (3) Luaスクリプトによる制御 TOSHIBA x GUGEN FlashAir Hackathon 29 Peripheral HTTP Client SD / iSDIO SPI Wireless LAN HTTP HTTP Server SD Host Wireless LAN HTTP機器による PIO プロトコル 接続 Luaスクリプト
  30. 30. Luaスクリプトによる制御でできること 無線 – APモードで起動 – STAモードで起動 – AP+STA同時起動 – 無線切断 – SSIDのスキャン HTTP – HTTPリクエストの発行 スクリプト – Luaスクリプト実行 PIO – SD端子のPIO制御 Webサーバー – ファイルのダウンロード – ファイルのアップロード – 標準HTMLのカスタマイズ – CGIによる情報取得 SD – 内蔵フラッシュメモリのファ イル読み書き その他 – 作業用SRAMの読み書き TOSHIBA x GUGEN FlashAir Hackathon 30
  31. 31. Luaとは?? TOSHIBA x GUGEN FlashAir Hackathon 31 Luaは、パワフルで、高速で、軽量で、埋め込み可能な、スクリプト言語です。 Luaは、シンプルな手続き型構文をと強力なデータ記述構造を、連想配列と拡張 可能なセマンティクスを用いて組み合わせています。 Luaは動的型付けであり、 レジスタベースの仮想マシン向けのバイトコードを解釈することによって実行 されます。 また、インクリメンタルガベッジコレクションによる自動メモリ管 理を備えており、 設定、スクリプティング、ラピッドプロトタイピングに最適 です。 - lua.org (翻訳:土居) (1) 少ないコンピュータ資源でも動く (2) Cプログラムと容易に連携できる ゲーム、AI、ルータ、などに採用されている
  32. 32. FlashAirのLua 使えるライブラリ – Lua基本ライブラリ – LuaFileSystem – CJSON – FlashAir独自機能 使えないライブラリ – コルーチン操作 – OS機能 – 数学機能 – デバッグライブラリ 32 TOSHIBA x GUGEN FlashAir Hackathon
  33. 33. LuaからHTTPリクエスト TOSHIBA x GUGEN FlashAir Hackathon 33 result = fa.HTTPGetFile( "https://flashair-developers.com/ images/assets/flashairLogo_office ial_small.png", "logo.png") if result ~= nil then print("Success! File downloaded.n") --process the file else print("Failure! File failed to download...n") end リクエスト実行 結果はファイル に保存されます
  34. 34. 応用例:天気を教えてくれるロボット TOSHIBA x GUGEN FlashAir Hackathon 34 • Luaで、天気予報を取得し、 音声データを切り替え https://www.youtube.com/watch?v=vnTzDswDw5Q
  35. 35. iSDIOとLuaスクリプトの比較 iSDIOによる制御 長所 – FlashAirの全ての機能を利用 可能 – 外部マイコンとの組み合わ せで、多様なシステム設計 ができる – SDホスト機器からのファイ ル読み書きと整合性がとり やすい 短所 – 制御用マイコンが別に必要 – コーディング量が多い Luaスクリプトによる制御 長所 – FlashAir以外にマイコン不要 – コーディング量が少ない 短所 – あまり大仕事はできない • メモリが少ない • 実行も速くはない – 利用できる機能はiSDIOのサ ブセット – SDホスト機器からのファイ ル読み書きに注意が必要 TOSHIBA x GUGEN FlashAir Hackathon 35
  36. 36. 共通する注意事項(1) ファイルアクセスの不整合 – SDカード上のファイルシステムを管理(FAT管 理)するのは、ホストの責任です • PCから書くときはPCがFATを更新 • FlashAirが書くときはFlashAirがFATを更新 – デジカメやWindows/MacOSのようなリッチなOS は、FATをキャッシュしています • FlashAir(Lua or CGI)から書き込みをすると、PCは変 更を知るすべがありません – そのため、PC/デジカメとFlashAirからのファイル 書き込みを混在させると危険です • 最悪の場合はファイルシステムが壊れます – SDホストがいる環境ではFlashAirから書かないよ うにしましょう 36 TOSHIBA x GUGEN FlashAir Hackathon
  37. 37. 共通する注意事項(2) 時計がない – バッテリーバックアップがないため、時刻を 自力で記憶できません – 代替策:HTTPで取得するのが一番手軽 メモリが少ない – あんまりメモリはありません。ビッグなこと はさせないように気を付けましょう 機能網羅的ではない – ハッシュ:MD5のみ(SHA1やSHA256は非対 応) – 通信プロトコル:HTTP、HTTPS、FTP 37 TOSHIBA x GUGEN FlashAir Hackathon
  38. 38. TOSHIBA x GUGEN FlashAir Hackathon 38 面白そう!! どこに行けば情報が得られるの?
  39. 39. API情報公開中 TOSHIBA x GUGEN FlashAir Hackathon 39 flashair-developers.com
  40. 40. 開発者情報サイトあります TOSHIBA x GUGEN FlashAir Hackathon 40 API リファレンス チュートリアル ステーションモード、アップロード 上級者向け情報 デベロッパーフォーラム
  41. 41. 開発者情報サイトあります TOSHIBA x GUGEN FlashAir Hackathon 41 flashair-developers.com ハイフン必要 複数形
  42. 42. ひろがるコミュニティ FlashAir Developersを通じて、 コミュニティによる応用が 広がっています! 42 TOSHIBA x GUGEN FlashAir Hackathon
  43. 43. コミュニティによるアプリ TOSHIBA x GUGEN FlashAir Hackathon 43 X あ A 17 15 7 7 7 2 25 1 2015-04-10現在
  44. 44. コンテストから生まれた作品 TOSHIBA x GUGEN FlashAir Hackathon 44 うちわ over WiFi (豊田 将平氏) リアルタイム入退室ログ 今北ちゃん (ウェブペイ曾川景介氏)
  45. 45. 基板ぞくぞく登場 TOSHIBA x GUGEN FlashAir Hackathon 45 FlashAir GPIOを 便利に使う基板 (じむ) 『Airio』 FlashAir GPIOで Lチカする基板 (余熱@れすぽん)
  46. 46. 同人誌できました TOSHIBA x GUGEN FlashAir Hackathon 46 展示作品の作り方 メーカー開発者の裏話 ・・など
  47. 47. FAQ その1 対応カードはどこで買えますか?  全国の家電量販店で買えます! 対応させるFWはどこで入手できますか?  市販品そのままでOKです! API利用料とかあるんじゃないですか?  カード買うだけです! 作ったモノで稼いでもいい・・?  大歓迎! やっぱりいろいろ制限あるんですよね?  悪いこと以外はなんでもやっちゃって! 47 TOSHIBA x GUGEN FlashAir Hackathon
  48. 48. FAQ その2 W-02でLuaは動きますか?  動きません W-02はFWアップデートできますか?  Luaは動くようになりません マニュアルが英語 or 中国語でした  並行輸入品です  国内でサポートはうけられませんが、 中身は同じなので遊ぶにはいいかも 48 TOSHIBA x GUGEN FlashAir Hackathon
  49. 49. FAQ その3 外国でも使えますか?  使えます! 世界80ヶ国の無線認証取得済み! FlashAirを使った製品は作れますか?  作れます!OEMカードもあります 49 TOSHIBA x GUGEN FlashAir Hackathon
  50. 50. 最後に・・・ FlashAirよりも高性能なボードはたくさんあ ります – らずぱいとか、えじそんとか、えんべっどとか でも、FlashAirにはこんないいところがあり ます – OSインストール不要 – TCP/IPを代理実行してくれる – SDスロットがあれば昔の機器も無線対応に 何事も適材適所ですね 50 TOSHIBA x GUGEN FlashAir Hackathon
  51. 51. TOSHIBA x GUGEN FlashAir Hackathon Enjoy !! 51 ご清聴ありがとうございました
  52. 52. TOSHIBA x GUGEN FlashAir Hackathon 52 Q?

×
Save this presentation