IEEE1888通信ボード(学習キット)マニュアル

Similar documents
IEEE1888 パルス計測装置 取扱説明書

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ


IEEE1888 開発キットの活用 電力管理システムを作る 慶應義塾大学 メディアデザイン研究科 秋山寛子

Arduino UNO IS Report No. Report Medical Information System Laboratory


TWE-Lite R 取扱説明書

8051 개발보드 메뉴얼

Studuino ライブラリ環境設定Windows編

Studuinoライブラリ環境設定Mac編

Arduinoで計る,測る,量る

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

電子13-06 エネメータ専用ソフト SAVER CAST for EneMeter Ver3.00設定方法.ppt

スライド 1

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

CommCheckerManual_Ver.1.0_.doc

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

HDLトレーナーサンプルプログラム説明書

EB-RL7023+SB/D2

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01)

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

AI1608AYUSB手順V3

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

商品番号 : UTS-422 USB-RS422( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-422 は RS-422 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS422 変換ケーブルです 最大 3Mbps

Taro-82ADAカ.jtd

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

MS5145 USB シリアル エミュレーション モードの設定

 

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

T A USB ドライバ インストール手順書 対応型式 :PHC-D08 PHE-3FB2 対応 OS :Windows 7(32bit,64bit) Windows 8(32bit,64bit) Windows 8.1(32bit,64bit) Windows 10(32bit,6

wdr7_dial_man01_jpn.indd

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

DJM-900nexus アップデート方法 for Microsoft Windows 7 A. 展開したファイルの内容を確認してください : 1. ダウンロードしたファイルを展開します ダウンロードしたファイルを右クリックし 表示されたメニューから すべて展開 を選びます 展開先を指定してファイル

2. WiFi 接続 1.1 GuruPlug Server 初期設定情報 記載の SSID が設定されているアクセスポイントが GuruPlug Server です PC を操作して GuruPlug Server のアクセスポイントに接続して WiFi 接続してください 接続に成功すると PC

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

XIMERA(Ver1

iCLR

Photo Sensor – 적외선 센서

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

Photo Sensor – 적외선 센서

目次 1. 概要 動作環境

5. 下の画面が表示されますので [Next>] をクリックします 6. License Agreement の画面が表示されますので 内容をご確認いただき 同意する場合は I accept the terms of the license agreement にチェックをして [Next>] をク

目次 各装置仕様... 2 各部の名称... 3 簡易操作手順... 6 データフォーマット... 7 無線設定... 8 無線設定変更手順... 9 Ethernet 設定 HYBRID ROUTER の追加機能について 制限事項... 15

Microsoft Word - SSL-VPN接続サービスの使い方

仮想 COM ポートドライバーインストールマニュアル 仮想 COM ポートドライバーをパソコンにインストールすることにより 対応するトランシーバーまたは USB インターフェースユニット SCU-17 を USB ケーブルでパソコンに接続し CAT 通信 TX 制御 ( PTT KEY FSK) U

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Taro-テキスト.jtd

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

PRONETA

Photo Sensor – 적외선 센서

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

ETCB Manual

仮想 COM ポートドライバーインストールマニュアル 仮想 COM ポートドライバーをパソコンにインストールすることにより FTDX3000 シリーズとパソコンとを USB ケーブルで接続して CAT 通信 TX 制御 (PTT KEY FSK) および ファームウェアのアップデートを行う事ができま

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

IWT323-DEV 2 接点無線 LAN リレー制御モジュール開発キット Rev IWT323 は無線 LAN を使って制御できるリレーモジュールです インターネットから交流 100V や直流 12V などを簡単に ON/OFF 可能です 各リレーの電流容量は 8A で

:30 18:00 9:30 12:00 13:00 17:00

Fortinet 社 FortiExplorer 操作マニュアル 株式会社ネットワークバリューコンポネンツ 第一版 Page1 Network Value Components Ltd. Copyright (c)2012 Network Value Components Ltd. All Righ

Microsoft Word - XOOPS インストールマニュアルv12.doc

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴う改訂 2018/01/22 ソフトウェア OS のバージョンアップに伴う改訂

USB シリアルケーブルインストールマニュアル ご使用上の注意 ( 必ずお読みください ) ご使用のパソコン, 機器によっては動作しない場合があります. USB シリアルケーブルの抜き差しはケーブルを持たず, 必ずコネクター部分を持ってください. 濡れた手で USB シリアルケーブルの抜き差しはしな

Microsoft Word - RC1504_インストールガイド_RevA2.doc

通信確保と衛星電話実習 ( 業務調整員 ) 参考資料 ワイドスター Ⅱ を活用したデータ通信に関する簡易説明書 第 1.0 版 平成 2 4 年 3 月株式会社 NTTドコモ関西支社法人営業部ソリューションビジネス部 Copyright 2012 NTT docomo Inc. All Rights

Microsoft Word - USB60F_Raspi_ doc

開発環境構築ガイド

Quad port LANカード(10GBASE-T) 取扱説明書

MS5145、MS7120,USB通信の設定

Arduino の勉強会 平成 23 年 1 月 5 日於 : 鳥取大学

Microsoft Word - SU1201MotorDriverSheildManual.doc

オートビュー

おことわり 本書の内容の一部又は全部を無断転載することは禁止されています 本機の外観及び仕様は改良のため 将来予告無しに変更することがあります 本書の内容について万一不審な点や誤りなどのお気付きの点がありましたらご連絡ください 本書に記載されている会社名 商品名などは 一般に各社の商標又は登録商標で

『テクノス』V2プログラムインストール説明書

PIC


取扱説明書[SH-04E]

InfoPrint 5577/5579 ネットワーク設定ガイド(第3章 Windows 98/Me環境で使用する)

BizBrowser SmartDevice Android開発用スタートアップガイド

PowerPoint プレゼンテーション

Microsoft Word - JPC40-M002:FineCut通信条件設定ガイド(Windows用 CGその他シリーズ)Ver100

Microsoft Word - xfinderマニュアル.docx

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

ホストプログラム操作説明書

SHOFU SureFile for DentalX Manual

GenieATM 6300-T / 6200-T シリーズ 1. 基本的な機器オペレーションのために 1-1. 機器への接続 機器への接続方法は 以下の 2 通りがあります シリアルポートを使用してログインする LAN 経由で Telnet または SSH を使用して仮想 Interface からロ

MS916 バッチ操作ガイド FW バージョン 0.52 向け バッチ操作の基本 MS916 のバッチ操作について バッチ操作では 読取ったバーコードデータはすべて 不揮発性のメモリ (1MB ROM JAN-13 約 50,000 件 ) に保存されます メモリに保存されたデータは任意のタイミング

DWR-P01DN Updater 取扱説明書 発 :2015/10/30

ホストプログラム操作説明書

Transcription:

IEEE1888 通信ボード ( 学習用キット ) ユーザーズ マニュアル 2013 年 03 月版 1. はじめに このマニュアルは,IEEE1888 通信ボード ( 学習用キット ) の使い方, プログラミング方法, ハードウェアの構成方法を記載しています. このマニュアルに従って作業を進めていくことにより, この通信ボードに関する一通りの知識を身に着けることができます. また, 組込みマイコンやデジタル回路についての知識があれば, さらに多様な応用に結び付けていくことができるようになります. なお,IEEE1888 通信ボードは Arduino をベースとしています. 2011 年 11 月版 (Arduino-0023 プラットフォーム向け ) からの更新内容 Arduino-1.0 プラットフォームに完全対応 Arduino Uno ブートローダを搭載 初期ファームウェアでコマンドライン接続設定可能に 正規の MAC アドレス付与 (OUI コード :B0-12-66) 2. キットの内容 IEEE1888 通信ボード, 学習用シールド 1, 台座,AC アダプタ,USB ケーブル,LAN ケーブル,DVD-R, 初期設定の情報が同梱されていることを確認してください. DVD-R には, Arduino IDE ( フォルダ名 : arduino-1.0) IEEE1888 通信ライブラリ ( フォルダ名 : FIAPUploadAgent) Time ライブラリ ( フォルダ名 : Time) arduino-0023 対応ライブラリ (FIAPUploadAgent, EthernetDHCP, EthernetDNS) が, 同梱されています. (*) Arduino-1.0 開発環境をお使いください (Arduino-1.0.x 系は注意が必要です ) 1 Arduino( 本 IEEE1888 通信ボードの原型となった組込みハードウェア ) の世界では, ボード 本体に接続する基板のことを, シールド と呼びます. - 1 -

3. 組み立てる まず,IEEE1888 通信ボードに台座を取り付けます ( 図 1). その後, 学習用シールドをコネクタに接続してください ( 図 2). これで組み立ては完了です. 台座台座 図 1: 台座の取り付け ターミナル ブロック 温度センサ DIP SW 照度センサ トグル SW USB シリアル通信用 ( プログラミング併用 ) LAN 接続 電源 (DC) 6V ~ 9V 図 2: 学習用シールドを搭載した様子 ( 完成図 ) - 2 -

4. 初期設定で動作を確認する DHCP( 動的ホスト設定プロトコル ) が有効なネットワークに接続し, 電源を入れれば, 初期設定情報に基づいて立ち上がります.LED インジケータが, 図 3 のように変化すれば成功です (LED インジケータの意味は表 1 の通りです ). 白青緑 図 3: 電源の立ち上げから成功までの LED 表示 ( 白 青 緑 ) 表 1: LED インジケータによるステータス表示の内容 LED の色 意味 白色青色緑色消灯 NTP による時刻情報の取得中サーバへのアクセスおよびアップロード処理中アップロード成功次の測定までの待機中 紫色サーバへの接続失敗 (TCP 接続失敗 ) 黄色 水色 赤色 HTTP 通信エラー IEEE1888 通信エラー その他のエラー 成功すると,fiap-sandbox サーバに計測データがアップロードされます. アップロードされ たデータは, 次の URL, http://fiap-sandbox.gutp.ic.i.u-tokyo.ac.jp/ - 3 -

から閲覧できます ( 図 4). 同封されている 初期設定の情報 を参照し, 該当するポイント ID を探してください. ポイント ID をクリックすると, アップロードされたデータのトレンドをグ ラフ ( あるいは一覧 ) 表示します ( 図 5). 図 4: 該当するポイント ID を探し, タイムスタンプが最新であるかどうかを確認する. 図 5: ポイント ID をクリックすると, 直近のトレンドが, 一覧表示される. 注意事項 DHCP が有効であっても,NTP が無いネットワークの場合は, 時計を合わせることができないため, 正常に動作しません. DHCP が有効であっても, 外部ネットワークとの接続に HTTP PROXY サーバを介す必要がある場合は正常に動作しません. 本キットは学習用のため, 観測される温度センサの値や, 照度センサの値は, 正確ではありません. 特に, 温度センサは高めの値を出力します. これはボード自身の発熱の影響を受けるためです. - 4 -

5. ファームウェアを変えずに使う : カスタマイズ設定編 本章は, 学習キットのファームウェアを変えずに, パソコンを使ってネットワーク設定等を変更する方法を解説します. 設定には, シリアル通信ターミナルソフトが必要になります. 本マニュアルでは,Putty を使う場合を想定します. 5.1.Putty のダウンロード http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html より, putty.exe ( 図 6) をダウンロードします. このソフトウェアは,5.3 節以降で使います. 図 6: putty のアイコン 5.2. 通信ボードとの USB 通信を確立する 通信ボードに電源を投入し,USB ケーブルでパソコンと接続してください ( 図 7). 図 7: 通信ボード ( 学習キット ) をパソコンと USB 接続する (AC アダプタも接続する ) - 5 -

USB を接続すると, パソコン側でデバイスドライバのインストールが行われます. そし て, しばらくすると デバイスを使用する準備ができました というポップアップメッセー ジが出現します ( 図 8) 2. 図 8: デバイスドライバーソフトウェアが正しくインストールされることを確認する その後, この通信ボードに対して,COM 番号が割り当てられます.(COM5 あるいは COM14 などと表現されます ). この COM 番号が実際の設定時に必要になります. COM 番号を調べるには, まず, デバイスマネージャー ( コントロールパネル システムとセキュリティ システム デバイスマネージャー と進みます) を開きます. そして, ポート(COM と LPT) のアイコンを開いて確認します. 図 9 の例では,COM22 であることがわかります. IEEE1888 通信ボード接続 COM ポート番号が COM22 であることがわかる 図 9: USB 接続し, デバイスマネージャーで COM ポート番号を確認する ( この例では COM22) 2 もしここで失敗した場合には,http://www.ftdichip.com/FTDrivers.htm から, 適切なバージョンのソフトウェア をダウンロードしてインストールしてください. - 6 -

3 画面が遷移する 5.3.Putty で接続する Putty を起動し, シリアル通信 (Serial) を選択し, 先ほど調べた COM 番号を入力します ( 図 10-a). その後, シリアル通信の詳細設定画面を開き, 図 10-b のように,9600bps, 8 ビット, ストップビット長 1, パリティ無, フローコントロール無に設定してください 3. その後,Open をクリックします. 1 シリアル通信モード (Serial) を選択 4 この内容を設定する 2 Serial 詳細設定を選択 5 Open をクリックして接続開始 (a) Serial 通信モードの選択 (b) シリアル通信の設定と接続開始図 10: Putty のシリアル通信設定接続に成功すると, 図 11 のような画面が表示されます ( 何も表示されない場合は Enter キーを押してみてください ). ネットワーク接続が無い場合は,DHCP や NTP リクエストに対し failure という結果が表示されます. 5.4. コマンドとパラメータ設定 学習キットのデフォルトのファームウェアには, コマンド機能とパラメータ設定機能があります. まず, コマンドとしては, conf: conf( 設定 ) モードに移行します ( データ送信は中断されます ) exit: conf( 設定 ) モードから離脱します ( データ送信が行われるようになります ) show: 現在の設定内容の閲覧 save: 現在の設定内容の保存 help または?: コマンド一覧, パラメータ一覧の表示 3 putty には, この設定を保存しておく機能もあります ( 本マニュアルでは割愛します ). - 7 -

が用意されています. 例えば,show と入力して,Enter キーを押すと, 図 12 のように, 現在の設定内容が表示されます ( 実際に表示される設定内容は図 12 と同じとは限りません ). Starting IEEE1888 Learning Kit が表示されれば成功! 図 11: IEEE1888 通信ボードへの接続に成功した様子 図 12: show コマンドによる設定内容の表示 一方, パラメータ設定は,conf コマンドを入力して設定モード (# による受付モード ) に 移行した上で, - 8 -

パラメータ名 = 設定値 <<Enter>> を入力することで行います. 例えば, パラメータとしては, IP: この機器の IP アドレス NM: この機器が接続されているネットワークセグメントのネットマスク GW: このネットワークのゲートウェイアドレスなどが用意されており,IP=192.168.11.55 などと入力することによって, その設定内容を更新することができます (MAC は読み取り専用パラメータなので設定変更できません ). なお, パラメータ値を変更したら,save コマンドを実行し, 通信ボード内部に設定内容を保存するようにしてください ( 図 13). 図 13: パラメータ値の変更と設定内容の保存 - 9 -

6. 新規ファームウェアを開発する : プログラミング環境の整備 Arduino IDEを使ってプログラムを作成 & コンパイルし IEEE1888 開発ボードにインストールします 200 行 ~1000 行の C, C++ のプログラムで IEEE1888 の GW ノードを実装できます IEEE1888 ネットワーク Ethernet Arduino 統合開発環境 (IDE) ターゲットボード名 : Arduino UNO 開発用 PC USB IEEE1888 開発ボード 各種センサ ( 例 : 照度センサ ) 各種通信媒体 ( 例 : ZigBee) 図 14: プログラミングのための環境設定 ( 全体像 ) プログラミング環境の設定は, 次の 4 つのステップで構成されます. (a) Arduino 統合開発環境 (IDE) のインストール (b) ライブラリの登録 (c) FTDI USB-Serial インタフェース ドライバのインストール ( オプション ) (d) ターゲットボード, シリアルインタフェースの設定 6.1.Arduino 統合開発環境 (IDE) のインストール DVD-R に含まれている Arduino IDE (arduino-1.0) を, 適当なディレクトリ ( 例えば C: Program Files arduino-1.0) にコピーしてください.Arduino IDE は,Arduino の公式ページ (http://arduino.cc/en/main/software) からも, ダウンロードすることができます. 2012 年 06 月現在,arduino-1.0.zip というファイルがダウンロードできるので, 上記のように適当なディレクトリに展開してください. arduino.exe へのショートカットを, デスクトップに作成しておくと, 便利です. (*) 特別な理由が無い限り Arduino-1.0 開発環境をお使いください (Arduino-1.0.x 系は注 意が必要です ) - 10 -

6.2. 必要なライブラリの登録 このボードの IEEE1888 通信対応化は, ソフトウェアによって実現されています. そのソフトウェアは FIAPUploadAgent という名前にライブラリ化されており, その設定を事前に施しておく必要があります. ライブラリの設定は,Windows の場合は, ドキュメントフォルダの Arduino フォルダに対して行います. ここでは,FIAPUploadAgent ライブラリの他に Time ライブラリの設定方法についても記載します.IEEE1888 通信は,FIAPUploadAgent ライブラリがあれば実現できますが, 時刻情報の管理に Time ライブラリがあると便利です. またネットワーク通信に DHCP や DNS 機能があると, 利便性がさらに向上します. ( 注 ) Arduino-1.0 プラットフォームでは,EthernetDHCP や EthernetDNS ライブラリの追加は不要になりました. FIAPUploadAgent ライブラリ (arduino-1.0 対応 ) Arduino 向けのオープンソースの IEEE1888 通信ライブラリ (WRITE クライアント専用 ) です. 同梱の DVD-R に FIAPUploadAgent というフォルダ名で含まれています. Time ライブラリ Arduino 上で, 時計を Unixtime で管理するためのライブラリです. このライブラリは, 同梱の DVD-R にも Time というフォルダ名で含まれていますが, オリジナルは http://www.arduino.cc/playground/code/time から入手できます. ライブラリは, フォルダとなって提供されているので, 入手後, それらをユーザ ドキュメントの Arduino フォルダの libraries フォルダ ( なければ作成のこと ) に配置してください ( 図 15). その後,Arduino を再起動すると, これらのライブラリは自動的に読み込まれます. 図 16 のように, メニューで,Sketch Import Library... と進み, ライブラリが登録されていることを確認して, 登録完了です. - 11 -

図 15: Arduino の libraries フォルダへライブラリを設定 登録したライブラリが出現する 図 16: ライブラリ登録の確認 6.3.FTDI USB-Serial インタフェース ドライバのインストール ( オプ ション ) IEEE1888 通信ボードを開発用 PC に USB で接続すると, ドライバのインストールが行われ ます. 成功すると, 図 17 のようにポップアップが出現しますが ( 初回のみ ), もし, そのように ならない場合は, 下記 URL にアクセスし,FTDI ドライバのダウンロードおよびインストール - 12 -

を行ってください (OS によって, インストールすべき内容は異なりますので具体的な指示は, この Web サイトに従って下さい ). http://www.ftdichip.com/ftdrivers.htm 図 17: ドライバのインストールに成功すること 6.4. ターゲットボードの選択とシリアルポートの選択 6.4.1. ターゲットボードの選択 Arduino IDE のメニューで,Tools Board と進むと, 図 18 のように, 様々なターゲットボードの種類が出てきます. ここでは, ターゲットボード名に Arduino Uno を指定してください (2011 年 11 月版では,Arduino Duemillanove でしたが,2012 年 6 月版より変更されました ). ここを選択する 図 18: ターゲットボードの選択 - 13 -

6.4.2. シリアルポートの選択ボードがパソコンに正しく接続されると USB シリアル通信インタフェースに対し,COM ポートが割り当てられます.Arduino IDE のメニューで,Tools Serial Port と進む ( 図 19) と,COM が出現するので, その COM を選択しておいてください. 図 19 の場合は,COM 10 になっています. 該当する COM 番号を選択する 図 19: 該当する COM を選択する 以上で, プログラミング環境の整備は完了です. - 14 -

7. ファームウェアを作成する : サンプルプログラムの書込み 7.1. 付属のサンプルプログラムについて サンプルプログラムは, ライブラリを設定したときに,Arduino IDE に同時に読み込まれています.IEEE1888 通信関係のサンプルプログラムは, 図 20 のように, メニューから File --> Examples と進むと,FIAPUploadAgent という項目が現れ, そこの FIAPsensorsCLI になります. サンプルコード 図 20: サンプルコードの読込み方法 FIAPsensorsCLI は FIAPUploadAgent を利用するプログラムで, 学習キット用のシールドを使う場合を前提に組まれています. コマンドラインインタフェース (CLI) を備え, プログラミング環境が無い人でも, 各種通信設定 (IP アドレスやポイント ID の設定など ) を行えるようになっています. なお,DHCP および DNS も有効にできます. 以下では,FIAPsensorsCLI を例に上げ, プログラムを書込む方法を記載します. まず, 図 20 を参考に,FIAPsensorsCLI のサンプルコードを読み込んでおいてください. - 15 -

7.2. ビルドとインストール パソコンと IEEE1888 通信ボードを接続し, 図 21 のように Arduino IDE のアップロードボタンをクリックします. ソフトウェアのビルドが実行され, 成功すると, 生成されたバイナリイメージが Arduino 本体に書き込まれます. 図 22 のように,Done uploading と表示されたら, ビルドおよびインストールが完了です. シリアルモニタの立上げ ビルドとインストール 図 21: ソフトウェアの書込みと動作確認方法 図 22: Done uploading -- 書込みが成功したことを示すサイン ファームウェア書込みが完了すると IEEE1888 通信ボードは自動的に再起動します. この際 に想定されたネットワークに接続されていれば, センサからの観測データを, サーバにアップロ ードします. - 16 -

図 21 に示す方法で Arduino IDE のシリアルモニタを起動すれば,5.4 節で述べた設定イン タフェースに接続することができます ( 図 23). 図 23: シリアルモニタの画面 - 17 -

8.IEEE1888 通信機能のプログラミング方法 ここでは IEEE1888 通信プログラミングの方法を述べます.Arduino IDE をオープンし, 次のように記述し, 必要なファイルをインクルードしてください. #include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> #include <FIAPUploadAgent.h> #include <Time.h> #include <Dhcp.h> #include <Dns.h> #include <EEPROM.h> IEEE1888 通信に限らず, ネットワーク接続を行うためには,SPI.h と Ethernet.h のファイルが必要になります.FIAPUploadAgent.h が IEEE1888(WRITE クライアント ) の通信ライブラリを参照します.Time.h をインクルードすることによって, 通信ボード上で,Unix timestamp での時刻管理が可能になります.EthernetUdp.h は, このボードを, ネットワーク上の NTP( 時刻 ) サーバと UDP 通信させ, 時刻同期を行うため使います.Dhcp.h を読み込んでおくと,DHCP サーバから IP アドレスを取得することができるようになります. また,Dns.h を読み込んでおくことで,DNS 解決を行うことができるようになります.EEPROM.h を使えば, ボード上の変数を, 不揮発性メモリに記憶しておくことが可能になります. IEEE1888 の通信を行うには, まず,FIAPUploadAgent のインスタンスを作成する必要があります. その作成方法は, FIAPUploadAgent FIAP; です. これは, どの関数にも属さないグローバル領域に書いておきます. 次に,setup 関数内で, FIAP.begin(... ); を実行しライブラリを初期化します. loop 関数内で, int ret=fiap.post(... ); を実行させることでサーバにデータを送信します. ここで,setup 関数や loop 関数は,Arduino が標準で装備している関数で,setup 関数は起動時に一度だけ呼ばれ,loop 関数はその後, 何度も呼ばれます. - 18 -

FIAPUploadAgent が提供するメソッドの種類と, その引数や返り値の意味定義は, 表 2 お よび表 3 を, ご参照ください. メソッド 名 表 2: FIAPUploadAgent の API 引数型意味 begin server_host const char* サーバのホスト名を指定 (HTTP ヘッダの Host パラメータに利 用 ) fiap-sandbox.gutp.ic.i.u-tokyo.ac.jp などへのポインタ server_path const char* IEEE1888 サービスを提供している HTTP サーバのパス server_port uint16_t サーバの TCP ポート番号 /axis2/services/fiapstorage などへのポインタ 通常は 80 (HTTP) を指定する fiap_id_prefix const char* ポイント ID の共通部分をプレフィックスとして指定する http://gutp.jp/arduino/demo/ などへのポインタ 戻り値 void 戻り値は無し post v struct サーバに送信するセンサデータ (fiap_element 構造体 ) の配列へ fiap_element* のポインタ ( 表 2 参照 ) esize uint8_t fiap_element 構造体の個数 戻り値 int サーバとの通信状態を応答 変数型意味 cid const char* 成功 : FIAP_UPLOAD_OK TCP 接続失敗 : FIAP_UPLOAD_CONNFAIL HTTP サーバエラー : FIAP_UPLOAD_HTTPERR IEEE1888 エラー応答 : FIAP_UPLOAD_FIAPERR 表 3: fiap_element 構造体 ポイント ID のポストフィックス ( センサごとに個別に指定される ) Temperature や Illuminane 等へのポインタポイント ID は, 表 1 の fiap_id_prefix と組み合わせて生成される value char* このポイントに結び付けられて送信される値 ( 文字列 ) へのポインタ year uint16_t 送信する値の時刻 ( 年の部分 ) month uint8_t 送信する値の時刻 ( 月の部分 ) 1 12 day uint8_t 送信する値の時刻 ( 日の部分 ) 1 31 hour uint8_t 送信する値の時刻 ( 時の部分 ) 0 23 minute uint8_t 送信する値の時刻 ( 分の部分 ) 0 59 second uint8_t 送信する値の時刻 ( 秒の部分 ) 0 59 timezone char* 送信する値の時刻 ( タイムゾーン表記 ) +00:00 などへのポイ ンタ - 19 -

9. 周辺装置とのインタフェース ( ハードとソフト ) 9.1. ハードウェア IEEE1888 通信ボードのピンコネクタ配置は, 図 24 に示す通り,Arduino Duemilanove や Arduino Uno と互換になっています ( 最近追加された IOREF, SDA, SCL 端子はありません ). ただし,pin10~13 は,TCP/IP コントローラで利用されているため, インターネット接続を行う場合は, これらのピンの利用には注意が必要です. また,pin0~1 は,USB シリアルインタフェースで利用しているため,USB シリアルポートを利用する場合は, これらのピンも注意して利用する必要があります. φ 2.1mm DC ジャック RJ-45 LAN コネクタ USB-miniB メス USB シリアルコントローラ FT232RL RESET 3.3V GND 5V GND VIN Analog In 0 / Digital 14 Analog In 1 / Digital 15 Analog In 2 / Digital 16 Analog In 3 / Digital 17 Analog In 4 / Digital 18 Analog In 5 / Digital 19 強制リセット TCP/IP コントローラ W5100 ATmega328P AVR マイコン 1 ISCP AREF GND Digital 13 Digital 12 Digital 11 Digital 10 Digital 9 Digital 8 Digital 7 Digital 6 Digital 5 Digital 4 Digital 3 Digital 2 Digital 1 Digital 0 図 24: IEEE1888 通信ボードのピン配置図 - 20 -

9.2. ソフトウェア 図 24 の各ポートへのソフトウェアでのアクセス方法 (API: Application Programming Interface) は, 各種用意されています (http://arduino.cc/en/reference/homepage を参照 ). 代表的なものとして, pinmode(...); // デジタルポートの入出力モードを指定 digitalread(...); // 指定したデジタルポートの HIGH/LOW 状態を取得 digitalwrite(...); // 指定したデジタルポートに状態 (HIGH or LOW) を設定する analogread(...); // 指定したアナログポートの電圧を AD 変換する (10 ビット ) analogwrite(...); // 指定したデジタルポートから PWM 波形を出力する (8 ビット PWM) Serial.XXX(...); // USB シリアルとの通信 (ATmega328P のシリアル通信モジュール利用 ) SoftwareSerial.XXX(...); // 汎用デジタルポートをシリアル通信ポートとして利用するなどがあります. 以下, これらの利用方法を記載します. 9.2.1. デジタル値の読み込み Digital 3 をデジタル入力ポートとして使用する場合, pinmode(3, INPUT); と,setup 関数内などで宣言しておけば, digitalread(3); // HIGH or LOW を返すと記述することで, そのポートの値 (HIGH or LOW) を読むことができます. 9.2.2. デジタル値の設定 Digital 4 をデジタル出力ポートとして使用する場合は, pinmode(4, OUTPUT); と, まず宣言しておきます (setup 関数内などで ). その後,LOW 出力をする場合は, digitalwrite(4, LOW); とし,HIGH 出力する場合は, digitalwrite(4, HIGH); のように, 記述します. - 21 -

9.2.3. アナログ値の読み込み Analog In 2 をアナログ入力ポートとして使用する場合は, analogread(2); // 0~1023 を返すのように記述します.AREF(= 通常 5V) の電圧に対する電圧比を,0~1023 で返します.1024 が AREF の電圧に対応します. 9.2.4. アナログ値 (PWM) の出力アナログ出力は, 正式には PWM 比 (0~255) でのデジタル出力となります.PWM 出力ができるのは,Digital 3, 5, 6, 9, 10, 11 です. analogwrite(3, 128); とすると,Duty 比 50% の PWM 信号を出力します. 9.2.5.USB シリアルとの通信 IEEE1888 通信ボードの Digital 0, Digital 1 は, それぞれ TX, RX として機能し, これらは 1kΩの抵抗を介して,FT232RL(USB シリアル通信チップ ) に接続されています. 従って, Arduino に標準装備されている Serial インスタンスを使って,USB シリアルとの通信ができます. まず, 通信速度の設定のため, Serial.begin(9600); を,setup 関数内などで宣言します. USB シリアルへの書出し方法 USB シリアルに書き出す ( つまり, 接続されているコンピュータに送り出す ) には, Serial.println( Hello World!! ); と記述します. (*) println メソッドは最終文字の後, 自動的に改行文字を出力します.print メソッドを使えば, そのような改行文字は出力されません. USB シリアルからの読込み方法 USB シリアルから送られてきた文字を読み出す ( つまり, 接続されているコンピュータから送られてきた文字を読み取る ) には, - 22 -

while(serial.available()){ char c = Serial.read();... 処理... } とします. 9.2.6. ソフトウェア シリアルの通信設定汎用の入出力ポートを使ってシリアル通信を行うために,SoftwareSerial ライブラリが標準で装備されています.Arduino-1.0 プラットフォームでの SoftwareSerial は, 従来版と比べて機能および性能が向上し,Serial とほぼ同じように使用することができます. 以下が, その使い方です. // XBeeReader 1.0 for Arduino 1.0 development platform #include <SoftwareSerial.h> // XBEE からの読取り用 // ピン番号の設定 ( ハードウェア依存 ) // XBEE シールド ( インタフェース拡張ボード Xbee 実装タイプ ) #define XBEE_TX 14 #define XBEE_RX 15 // Xbee モジュールとの通信シリアル SoftwareSerial xbeeserial=softwareserial(xbee_rx, XBEE_TX); // 初期設定ルーチン void setup() { // I/O 初期化 Serial.begin(9600); // USB シリアルとの通信速度を 9600bps に設定 pinmode(xbee_rx, INPUT); // RX を入力モードに設定 pinmode(xbee_tx, OUTPUT); // TX を出力モードに設定 xbeeserial.begin(9600); // XBee との通信を 9600bps で行う } // メインループ void loop() { while(1){ char c; while(xbeeserial.available()){ c=xbeeserial.read(); Serial.print(c); } } } // end of code - 23 -

10. シールドの回路設計 Arduino の世界では, ボード本体に接続する基板 ( ハードウェア アプリケーション ) のこ とをシールドと呼びます. ここでは, 簡単に, その回路設計の例を示します. 10.1. 学習用キットのセンサシールド このキットに付属してくる学習用キットのセンサシールドの回路構成は, 図 25 のようになっています. 第 7 章ファームウェアを作成する で紹介したサンプルコードである, FIAPsensorsCLI は, この回路構成を前提に組まれていました. 5V 5V 10k 10k 4 TOGGLE SW RESET 3.3V GND 5V GND VIN Analog In 0 / Digital 14 Analog In 1 / Digital 15 Analog In 2 / Digital 16 Analog In 3 / Digital 17 Analog In 4 / Digital 18 Analog In 5 / Digital 19 DIP SW 5V S9648-100 5V LM35DZ VOUT 5V VCC GND 300 300 B G 150 R C OSTA71AD-A 5V 300 AREF GND Digital 13 Digital 12 Digital 11 Digital 10 Digital 9 Digital 8 Digital 7 Digital 6 Digital 5 Digital 4 Digital 3 Digital 2 Digital 1 Digital 0 図 25: 学習用キットのセンサシールドの回路図 照度センサ, 温度センサの出力信号は, それぞれアナログ入力ポートに接続しています. また, フルカラー LED は,PWM 出力のポートに接続し, ソフトウェアにより様々な色や明るさを表現できるようにしています. トグルスイッチや,DIP スイッチの信号線は, 適当なデジタルポートに接続しています (pin 0, 1, 10~13 はすでに共同利用されているため避けています ). - 24 -

IEEE1888 通信ボード 10.2.ZigBee(XBee) モジュールの接続例 IEEE1888 通信ボードに ZigBee モジュールを接続することで,IEEE1888 と ZigBee の変 換 GW を実現することができます. その時に用いられる回路構成の例を図 26 に示します. SoftwareSerial により Digital 15 = RX Digital 14 = TX として使う 3.3V Digital 15 Digital 14 4.7k 10k 1 2 3 GND 10 Vcc DOUT DIN/CONFIG GND XBee ZigBee 無線 IEEE1888 通信ボードの信号線は 5V 出力なので分圧 図 26: ZigBee モジュール (XBee) の接続例 - 25 -

IEEE1888 通信ボード 10.3.RS232C ドライバの接続例 IEEE1888 通信ボードに RS232C ドライバを接続することで,IEEE1888 と RS232C の変 換 GW を実現することができます. その時に用いられる回路構成の例を図 27 に示します. 0.1u 0.1u 0.1u 0.1u 0.1u 1 2 3 4 5 6 7 8 C1+ V+ C1- C2+ C2- V- T2OUT R2IN Vcc GND T1OUT R1IN R1OUT T1IN T2IN R2OUT 16 15 14 13 12 11 10 9 5V GND Digital 16 Digital 17 ADM3202AN TX 3 2 RX Dsub 9 ピン ( オス ) GND 5 SoftwareSerial により Digital 17 = RX Digital 16 = TX として使う 図 27: RS232C ドライバの接続例 - 26 -

IEEE1888 通信ボード 10.4. パルス出力端子の接続例 IEEE1888 通信ボードに, 電力メータなどからのパルス出力信号を取り込むための, 回路構成例を図 28 に示します. この回路例は, オープンコレクタ出力 ( フォトカプラなど ) でパルス出力される機器へのインタフェース回路となっています ( パルス出力の形態に応じて, この回路は異なってきますので, 利用においては注意が必要です ). 立下りパルス信号 プルアップ抵抗 ( ソフトウェアでも設定可 ) 5V 0 1 1 7 3 1k Digital 2 GND 電力メータ オープンコレクタ出力 図 28: パルス出力信号とのインタフェース回路例 ここで接続している Digital 2 ポートは, 割り込み生成が可能なポートとなっています. 次の プログラムによって立下りパルスをソフトウェアで扱えるようになります ( もちろん, ピンの状 態をポーリングすることで立下りを検出する方法もあります ). void setup(){ Serial.begin(9600); // 0 = digital2; 1 = digital3; パルス検出 pulse_detect 関数を呼ぶ attachinterrupt(0, pulse_detect, FALLING); } void pulse_detect(){ Serial.println( Pulse Detected!! ); } - 27 -

10.5. シールドの実装方法について Arduino シールドの設計は自由自在です.Arduino のピン配置の関係で, 通常のユニバーサル基板は搭載しにくいですが,Arduino 向けのユニバーサル基板 ( 例えば, サンハヤト製の UB-ARD01) を購入すれば, 様々なシールドを実装することができます. しっかりした基板にしたい というご要望があれば, 本マニュアル末尾の連絡先までメールをお送りください. IEEE1888 の普及にとって重要な案件と判断されれば, 積極的に基板化を進めてまいります ( その際にプロトタイプが既にあるとスムーズです ). お問合せ先 技術的な内容 東京大学落合秀也 (ochiai@vdec.u-tokyo.ac.jp) 製造販売に関する内容 フタバ企画 (info@futaba-kikaku.jp) - 28 -

付録 A: IEEE1888 開発ボード外形図 3.9 8.3 15.0 68.7 20.32 1.27 ( 隙間 : 1.0) 20.32 2.96 8.28 19.33 3.20 7.5 8.26 9.2 2.0 4.5 φ3.5 4.1 18.0 16.0 φ3.5 53.7 38.5 21.6 φ3.5 φ3.5 1.6 10.8 13.0(+1.0) 8.9 14.0 10.80 15.0 17.15 2.3 1.0 3.5 15.24 2.54 ( 隙間 : 2.0) 15.24 4.1 7.3 単位 : mm IEEE1888 開発ボード外形図 2013 年 02 月 19 日 - 29 -