読者の方限定のプレゼント企画あります! - DevWire (2017/2/27)


Index
Hot Topics
IoT や AI は、流通業でも常識になりました。本当? と思ったらリテールテックへ!
流通ときたら製造でしょ。Factory Annex が帰ってきました!
DevWire 読者の方限定! オリジナル グッズが当たるアンケート開催!
Azure IoT Gateway SDK を使ってみる
DevWire のバック ナンバーをご紹介
正規販売代理店 情報
セミナー・トレーニング情報
Column
これからのクラウド技術のトレンドは FPGA
今岡工学事務所 代表 今岡 通博
ほっとひと息
「楽しませる AI」DevWire 編集部 加藤 大輔
Hot Topics
IoT や AI は、流通業でも常識になりました。
本当? と思ったらリテールテックへ!
「3 月」と聞くと、うれしいことと嫌なことがあります。うれしいことは、流通業における最新情報システムを一挙にみることができるリテールテック JAPAN 社外サイトへ が開催されることです。今年も 3 月 7 日 (火) から 10 日 (金) まで、東京ビッグ サイトで開催されます。嫌なことは、スギ花粉のピークが訪れることです。
花粉に負けてなんかいられません。流通業界に何が起こっているのか、この目で確かめねば! ということで、皆さまもぜひ、お出かけください。新しいものがたくさん見れるリテールテックですが、マイクロソフトのブースは、さらに一歩先を進んでいます。昨年は「IoT で実現するおもてなし」をテーマにいろんなソリューションをパートナーさんと一緒に展示いたしましたが、今年は IoT に加えて AI やコグニティブも登場しています。AI と言えばロボットを思い浮かべる方もいらっしゃるかと思いますが、今年はたくさんのロボットが見られますよ! また、マイクロソフトが最近、発表したウワサのアレが展示されているそうです。アレは流通業のお客様からもたいへん多くお問い合わせをいただいております。え? アレじゃわからない? 答えは・・・「Microsoft HoloLens」です! ブース内で HoloLens のセッションもあるので、ぜひ、見にきてくださいね。近未来を感じることができるマイクロソフト ブースへぜひ、お立ちよりください。

リテールテックと併せて開催されるのが、OPOS 協議会、.NET 流通システム協議会が主催する「スマーター・リテイリング・フォーラム 2017」です。今年も豪華な講師陣で満席が必至です。新しい流通業の標準規格をご紹介する協議会のセッションはもちろんですが、デジタル変革で成功された丸井様、ローソン様のダブル基調講演、そしてパルコ様を特別講演としてお迎えします。その他にも流通業のテクノロジ最前線の情報を聴講することができます。

13:00-13:05 開会のご挨拶
13:05-13:35 「マイクロソフトが支える流通業のデジタル トランスフォーメーション」
日本マイクロソフト 流通業担当 プリンシパル・ソリューション・スペシャリスト
白鳥 達也
13:35-14:15 基調講演
「企業価値向上にむけた丸井グループ IT 戦略」
株式会社 丸井グループ 専務執行役員
佐藤 元彦 氏
14:15-14:55 「標準仕様最新 Update ~ OPOS ロボット IF/電子レシート仕様など~」
OPOS 技術協議会 技術部会長 NEC プラットフォームズ株式会社 五十嵐 満博 氏
.NET 流通システム協議会 技術部会長 東芝テック株式会社 三部 雅法 氏
経済産業省 商務情報政策局 商務流通保安グループ 流通政策課/物流企画室 係長 加藤 彰二 氏
14:55-15:10 休憩
15:10-15:50 基調講演
「ローソン次世代コンビニを実現するテクノロジ活用
~ AI、ロボティックス、カメラ・センサー、RFID ~」
株式会社 ローソン 執行役員 業務システム統括本部 副本部長 兼 次世代 CVS 推進本部 副本部長 兼
株式会社ローソンデジタルイノベーション 代表取締役社長
白石 卓也 氏
15:50-16:20 「VR が加速する Future Retail の世界 (仮)」
Avanade 株式会社 デジタル IoT リード ディレクター
星野 友彦 氏
16:20-16:50 「流通業における AI 活用の可能性と勘所
~ AI ×ビッグ データが切り開くビジネス イノベーション~ (仮)」
株式会社 三菱総合研究所 ICT イノベーション事業本部マーケティング イノベーション グループ リーダー
篠田 徹 氏
16:50-17:30 特別講演
「PARCO が進める IoT とデータ活用」
株式会社パルコ
WEB/ マーケティング部 部長 野中 健次 氏

スマーター・リテイリング・フォーラムのお申し込み、詳細はこちらから。

リテールテック JAPAN の事前登録、詳細はこちらから。 では、3 月に会場でお会いしましょう!

流通ときたら製造でしょ。Factory Annex が帰ってきました!
今月の DevWire は、流通業特集か・・・と少しがっかりしてしまった製造業の皆さま、そんなことはありません。製造業向けイベントもしっかり開催されます。昨年、4 都市 (東京、大阪、名古屋、福岡) で開催された Factory Annex が、また、帰ってきます。

(昨年の実施風景)
昨年の実施風景

そんなイベント知らないよ。という方に少しご紹介させてください。Factory Annex は、日経BP社主催のデジタル テクノロジ専門イベントの中の Factory 2017 において、産業 IoT 実践セミナーとして併設されます。パソコンを持ち込んでいただくことで、産業 IoT を実践する過程を体感できるセッションも含まれています。さらには、セミナー終了後、講師とお話いただける「アスク・ザ・スピーカー」の時間も設けています。

前回、どの開催地でも大好評であったことから、再び開催をすることになりました。東京と大阪についてはお申し込み受付中です。詳細、お申し込みは日経 BP 社のイベント ページから「Factory Annex 社外サイトへ」のセクションで登録をお願いします。

DevWire 読者の方限定! オリジナル グッズが当たるアンケート開催!
DevWire 読者の方限定! オリジナル グッズが当たるアンケート開催! アンケートにお答えいただいた方の中から抽選で 10 名様に、マイクロソフト ロゴ入りのモバイル バッテリー (非売品) をプレゼント!

選択式の簡単なアンケートで、所要時間は約 5 分!
アンケートはこちらから。

ぜひご参加ください。

Azure IoT Gateway SDK を使ってみる
Windows Embedded MVP "株式会社デバイスドライバーズ代表取締役社長 日高亜友さん" から Azure IoT Gateway SDK について執筆していただきました。今回は「後編」になります。
前回に引き続いて昨年 11 月に正式リリースされた Azure IoT Gateway SDK を解説します。Azure IoT Gateway SDK の概要と準備する機材やソフトウェア、環境については先月号を参照してください。今回は下記参考文書にしたがって SDK に含まれる ble サンプル コードを動作させます。しかし本原稿を書いている間に、GitHub 上の SDK のソース コードと下記参考文書の内容がそれぞれ個別に不定期で更新されるため、記載の手順通りに作業が正しく進まない場合があることを確認しました。ご注意ください。
Azure IoT Gateway SDK - Linux を使用した物理デバイスで D2C メッセージを送信する 社外サイトへ
前回は必要機材と参考 URL、開発環境であり動作確認である Raspbian のインストールまで説明しました。今回使用する開発環境は図 1 となります。Raspberry Pi3 と Windows PC はルーターを経由して有線 LAN でインターネット上の Azure に接続します。また Windows PC は Azure の設定とモニターを行うほか、ローカル ネットの Raspberry Pi3 にリモート ログインして開発作業を行います。

図 1: Raspberry Pi3 と Windows PC はルーターを経由して有線 LAN でインターネット上の Azure に接続
図 1: Raspberry Pi3 と Windows PC はルーターを経由して有線 LAN でインターネット上の Azure に接続

今回の作業は次のとおりです。

1. BlueZ 5.37 のインストール
2. ble SensorTag 動作確認
3. IoT Hub の作成とデバイスの追
4. Azure IoT Gateway SDK のビルドと起動
5. Device Explorer を使用した操作
6. オプション項目

1. BlueZ 5.37 のインストール
Raspberry Pi 3/Raspbian の IoT Gateway SDK のインストール作業はクロス コンパイルが必要な Intel Edison へのインストールとは異なり、Raspbian 上でソース コードからビルドするセルフ コンパイルで行います。しかしながら、Raspberry Pi 3/Raspbian 最新版の Bluetooth スタックは、デバイス認識不良が発生するため、BlueZ 5.37 をインストールする必要があります。今回はターミナル エミュレーターの Tera Term を使用して Windows から Raspberry Pi 3 に SSH でログイン後、参考文献の「BlueZ 5.37 をインストールする」の 1 番から 8 番の手順にしたがってコマンドを入力してビルドを行いました。

説明項目 9 の設定ファイルの編集は、テキスト エディターを起動してファイルを編集した後で、保存します。
編集後の bluetooth.service ファイルは下記となります。

[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)

[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/local/libexec/bluetooth/bluetoothd -E
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1

[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service

テキスト エディターは Raspbian 標準の nano のほか、Linux でよく使われる vi や emacs (要インストール) が利用できます。

2. ble SensorTag 動作確認
「Raspberry Pi 3 デバイスから SensorTag デバイスへの接続を有効にする」の手順にしたがって操作し、SensorTag の動作を確認します。以下に入力するコマンドと解説を示します。$ マークと # マークはプロンプトを示します。

$ sudo apt-get install rfkill
「rfkill is already the newest version.」と表示されれば OK です。

$ sudo rfkill unblock bluetooth
$ bluetoothctl --version
5.37 と表示されます。

$ sudo systemctl start bluetooth Warning: Unit file of bluetooth.service changed on disk, 'systemctl daemon-reload' recommended.という警告が表示されるので次のコマンドを入力します。
$ sudo systemctl daemon-reload

次のコマンドで bluetooth シェルを起動するとコントローラーのアドレス情報が表示されます。

$ bluetoothctl
[NEW] Controller B8:27:EB:48:09:5A raspberrypi [default]

scan on コマンドを入力後 scan on コマンドを入力して Bluetooth デバイスをスキャンします。

# power on
Changing power on succeeded
# scan on
Discovery started
[CHG] Controller B8:27:EB:48:09:5A Discovering: yes

SensorTag CC2650STK「小さいボタン」説明画像 この状態で SensorTag CC2650STK の「小さいボタン」を 1 秒ぐらい押すと SensorTag デバイスが検出されて画面表示されます。

[CHG] Device A0:E6:F8:AF:00:83 RSSI: -57
[CHG] Device A0:E6:F8:AF:00:83 TxPower: 0
[CHG] Device A0:E6:F8:AF:00:83 ManufacturerData Key: 0x000d
[CHG] Device A0:E6:F8:AF:00:83 ManufacturerData Value: 0x03
[CHG] Device A0:E6:F8:AF:00:83 ManufacturerData Value: 0x00
[CHG] Device A0:E6:F8:AF:00:83 ManufacturerData Value: 0x00
[CHG] Device A0:E6:F8:AF:00:83 RSSI: -66

この例では SensorTag デバイスの MAC アドレスが A0:E6:F8:AF:00:83 であることがわかります。MAC アドレスは各 SensorTag で異なります。

次の様に MAC アドレスを指定して connect command を入力した後、list-attributes コマンドで設定を表示させます。

# connect A0:E6:F8:AF:00:83 (scan on で表示されたデバイスの MAC アドレス)
Connection successful
[NEW] Primary Service
/org/bluez/hci0/dev_A0_E6_F8_AF_00_83/service0009
Device Information
(以下長いメッセージのため省略)

# list-attributes
Primary Service
/org/bluez/hci0/dev_A0_E6_F8_AF_00_83/service0009
Device Information
(以下長いメッセージのため省略)

# quit
終了します。

注意点としては、SensorTag は 5 分間程度使用しないと緑色 LED の定期的点滅が消えて、電源が切れてしまうことです。その様な場合はもう一度「小さいボタン」を押して電源を入れます。
また原因不明ですが BlueZ スタック動作不良により list-attributes コマンドで何も出力されない場合がときどきあります。その様な場合は
$ sudo systemctl restart bluetooth
を入力して bluetooth サービスを再起動するか、または
$ sudo shutdown -r now
を入力して Raspberry Pi 3 を再起動して、必ず bluetoothctl の list-attributes がメッセージ出力することを確認してから次に進んでください。

3. IoT Hub の作成とデバイスの追
続いて参考資料の「BLE Gateway サンプルの実行 - IoT Hub に 2 つのサンプル デバイスを構成する」の項を参照して IoT Hub を作成した後、SensorTag_01 などという名前のデバイスを追加します。デバイス名は自由な名前に設定できます。

IoT Hub の作成は Web ブラウザから Azure ポータルにログインして行います。この資料からリンクしているページ「Create an IoT hub using the Azure portal」は英語版でわかりにくいのですが、代わりに次の Microsoft Docs「Azure IoT Hub の使用 (.NET)」の前半部分を参照するとわかりやすいです。
Azure IoT Hub の使用 (.NET)

IoT Hub を作成した後は、Device Explorer をインストールしてデバイスを追加作成します。原稿を書いている間に参考資料の「デバイス エクスプローラーと iothub-explorer ツール」のリンクが切れてしまいましたので、代わりに日本マイクロソフト株式会社のエバンジェリスト太田寛氏が作成した IoT Algyan 勉強会資料の次の文書の 30 ページと 31 ページを参考にして作成してください。
IoT ハンズオン資料 Ver3、Win10IoTCore + センサー

Device Explorer は以下から入手します。
Device Explorer 入手リンクの掲載ページ
直リンク

また Raspbian 上で動作する iothub-explorer を使用して同様にデバイスの追加ができます。iothub-explorer のインストールには次のとおり事前に npm のインストールが必要です。
$ sudo apt-get install npm
$ sudo npm install -g iothub-explorer

4. Azure IoT Gateway SDK のビルドと起動
参考文書の「Raspberry Pi 3 デバイスで Azure IoT Gateway SDK をビルドする」の手順にしたがってコマンドを入力します。

$ cd ~
$ git clone --recursive https://github.com/Azure/azure-iot-gateway-sdk.git
の実行で警告が出る場合がありますが、問題ありません。時間がかかります。その次の
$ cd azure-iot-gateway-sdk
のコマンドはそのまま実行しますが、
git submodule update --init -recursive
のコマンドは必要なく、エラーとなる場合があるので実行しません。
その次の
./tools/build.sh --skip-unittests
はソース コードのオプションが変更になったため次の様にオプションなしで実行します。
$ ./tools/build.sh
このビルドの実行にも時間がかかります。

続いて「Raspberry Pi 3 で BLE サンプルを構成して実行する」にしたがって作業します。
ここではエディターを使用して samples/ble_gateway/src/gateway_sample.json ファイルをテキスト エディターで修正します。編集の説明が複数に分かれていますが、すべてこのファイルの修正です。修正項目は次のとおりです。

"IoTHubName": "<<Azure IoT Hub Name>>",
"IoTHubSuffix": "<<Azure IoT Hub Suffix>> ",
"macAddress": "AA:BB:CC:DD:EE:FF",
"deviceId": "<<Azure IoT Hub Device ID>>",
"deviceKey": "<<Azure IoT Hub Device Key>>"
"device_mac_address": "<<AA:BB:CC:DD:EE:FF>>",
"filename": "<</path/to/log-file.log>>"

"<</path/to/log-file.log>>"はログ ファイル名です。"log.txt" に書き換えます。他の項目は環境に応じて設定します。注意点としては、MAC アドレスを入力する場所が 2 か所ありますが、どちらにも scan on で表示されたデバイスの MAC アドレスを記述します。

コンソール画面に SensorTag が温度を送信しているようすが表示されます。 ファイルの編集が終わった後は、次のコマンドを実行して Azure に接続します。コンソール画面に SensorTag が温度を送信しているようすが表示されます。

$./build/samples/ble_gateway/ble_gateway ./samples/ble_gateway/src/gateway_sample.json

5. Device Explorer を使用した操作

Device Explorer を起動して Data タブを開け、「Monitor」ボタンをクリックすると IoT Gateway が SensorTag の温度センサー データを中継して Azure IoT Hub に送るようすをモニターできます。 Device Explorer を起動して Data タブを開け、「Monitor」ボタンをクリックすると IoT Gateway が SensorTag の温度センサー データを中継して Azure IoT Hub に送るようすをモニターできます。

次に Device Explorer を使用して外部から SensorTag を操作します。参考文書の「C2D メッセージの送信」部分です。送信作業は Device Explore の「Message To Device」タブを開いて行います。参考文書の説明がわかりにくいのですが、「Message To Device」タブの「Message」テキストに JSON メッセージを張り付けた後「Send」ボタンを押すことで Azure に対してメッセージ送信を行うことができます。ただしこの「Message」欄には改行コードが入力できないため、下記のように各 JSON メッセージをメモ帳にコピーして改行コードを外しておく必要があります。

「Message」欄には改行コードが入力できないため、下記のように各 JSON メッセージをメモ帳にコピーして改行コードを外しておく必要があります。
メッセージ送信を行う場合はまず準備として、参考文書にある「1 すべての LED とブザーをリセットする (オフにする)」「2 I/O を "リモート" として構成する」の JSON コマンドを続けて送信します。その後「赤色の LED をオンにする」「緑色の LED をオンにする」「すべての LED とブザーをリセットする」のメッセージを送信すると SensorTag がメッセージ内容に応じて動作します。

6. オプション項目
簡単な解説でしたが、IoT Gateway SDK のサンプルにより Raspberry Pi 3 と SensorTag CC2650STK を使用して、Bluetooth センサーを Azure IoT Hub に接続する Gateway を容易に開発できるのが理解頂けたでしょうか。

前回紹介した MVP Summit 2016 IoT Workshop のドキュメントには、Bonus Challenges として次のような課題も用意しています。余力があれば試してみてください。

・ Manually Batching Messages
・ Compress Batched Messages
・ Implement an IoT Hub Writer
・ Create an Azure Function to Decompress & Shred Messages
・ Create an Azure Stream Analytics Query
・ Create a Power BI Dashboard

本稿はここで終わりですが、機会があれば非サポートの他のコントローラーボードへの移植や SDK の改造にも挑戦してみたいと思います。

DevWire のバックナンバーをご紹介
DevWire のバックナンバーをご紹介 とっても役に立つ、みんな大好き DevWire のバック ナンバーです。

DevWire バック ナンバー サイトはこちら

【正規販売代理店 情報】
アドバンテック株式会社 統合 IoT ソリューション 社外サイトへ
IoT 産業の発展を促進するため、マイクロソフトとの協力のもと WISE-PaaS IoT ソフトウェア プラットフォーム サービスを開発。お客様が迅速に IoT アプリケーションを構築できるオールインワン SRP (ソリューション レディ パッケージ) サービスをワンストップで提供していきます。
【セミナー・トレーニング情報】
セミナー・トレーニング情報 多くのセミナー、トレーニングを開催しております。
ぜひご活用ください。

●アヴネット株式会社 トレーニング 社外サイトへ
●岡谷エレクトロニクス株式会社 セミナー/トレーニング情報 社外サイトへ
●東京エレクトロン デバイス株式会社
トレーニング 社外サイトへ セミナー・イベント 社外サイトへ
●菱洋エレクトロ株式会社 イベント・セミナー情報 社外サイトへ

Column
これからのクラウド技術のトレンドは FPGA 今岡工学事務所 代表 今岡 通博
このコラムの読者である Azure に関わっておられる利用者やエンジニアの皆さんに、いきなりこのお題を投げかけてもいささか唐突に受け止められるかもしれません。しかし現在さまざまなクラウド サービス ベンダーが FPGA を用いることにより、さまざまなブレークスルーを達成していることは事実です。Microsoft も例外ではありません。そこで今注目されている FPGA とは何か。また FPGA を用いることでどの様なことが達成されるのかについて、何回かに分けてお話ししていければと思います。
FPGA とは Field Programmable Gate-Array の略で、深層学習や AI の分野ではインテル系や ARM 系の CPU あるいは GP-GPU などと比較されることが多く、前者同様半導体デバイスの一種です。FPGA 自体の話は次回以降に折を見て話しますが、他の半導体デバイスと根本的に異なる点は半導体デバイス自体の機能をハードウェア的にユーザ側で自由に書き換えられる点にあります。CPU や GP-GPU がプログラムを書き換えることによって機能を実現するのに対して、FPGA はハードウェア自体の構成 (回路) を書き換えることにより所望の機能を実現します。この機能を利用してクラウド サービスにおいてもさまざまな応用が可能となります。
たとえば Microsoft の場合であれば Catapult プロジェクトで開発および実証実験および運用が行われています。その成果のひとつとして 2016 年 9 月 26-30 日に開催された Microsoft Ignite Conference のキーノート (英語) 社外サイトへでは、4 つの FPGA が搭載された 1 台のサーバによって、1440 ページのロシア語の小説「戦争と平和」を 2.6 秒で翻訳したことをデモンストレーションで示しました。1 台の 24 コア CPU サーバでは、19.9 秒もかかりさらに 60 ワットも余分な電力が消費したのに比べ、非常に高い消費電力あたりのパフォーマンスをたたき出した結果でした。また Being の検索エンジンとして数年前から FPGA が利用されていることは有名な話です。

Catapult FPGA Accelerator
Catapult FPGA Accelerator :出典 (英語サイト)

日本では昨年の 11 月に開催された Microsoft Tech Summit 2016 の基調講演で榊原 彰 氏 (日本マイクロソフト株式会社執行役員 最高技術責任者) によりこの時のデモの模様がビデオで紹介されました。会場にいらした皆さんは FPGA による圧倒的なパワーに目を見張ったのではないでしょうか。こちらのページでこの時の模様が基調講演のアーカイブ映像で配信中です。現在 youtube あるいは channel9 でご覧になれます。
今後、Azure において Web アプリの開発者であっても FPGA テクノロジを避けて通れない時代になるかもしれません。

ほっとひと息
「楽しませる AI」DevWire 編集部 加藤 大輔
以前に「プロ棋士と将棋ソフト」というタイトルで、将棋ソフトがプロ棋士よりも強くなった。という記事を書きました。ソフトが強くなった原動力は、マシーン ラーニングです。なんと 1 日 20 万局以上の対局をソフト対ソフトで行い、どのような手が勝ちにつながるのか? 負けにつながるのか? を分析、学習しているそうです。。。強くなるわけですね。
「強い AI」をどこまでも強くする研究がある中、「楽しませる AI」を研究している方もいます。北陸先端科学技術大学院大学では、人間との対局でいい勝負をして最後には負けるというコンセプトで研究しているそうです。人間の強さに合わせてくれて、負け方が露骨にならないようにするための研究なんだそうです。いわゆる接待将棋です。
「AI」というと、人間が理解できないところまで到達してしまうことに怖さを感じることがありますが、「楽しませる AI = ほどよく弱い AI」であれば親近感が湧きますよね。
Windows Embedded DevWire に関するお問い合わせはこちら:
kkoedadmin@microsoft.com

Comments (0)

Skip to main content