= TOPPERS/μKadecot = TOPPERS/μKadecotは、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル アプリケーションです。[[BR]] GR-SAKURAにECHONET Lite コントローラをWebアプリケーションとして実装しています。[[BR]] [[Image(source:/uKadecot/wiki/uKadecot.svg, 80%, center)]] Webアプリケーションは、WebサーバとWebブラウザの間で通信が必要になりますが、[http://kadecot.net/ Kadecot]^[#kadecotlicense ※]^のWebAPIと互換性を持たせているので、Kadecotアプリが使用できます。[[BR]] また、GR-SAKURAのGPIOを操作するWebAPIも追加し、WebアプリケーションからGPIOを操作できるようになっています。 = ダウンロード = ソースコードは[http://dev.toppers.jp/trac/contrib/browser/uKadecot こちら]にあります。trunkの行の「Size」列にある↓をクリックすると、zipファイルでダウンロードできます。[[BR]] 書き込みイメージは[http://dev.toppers.jp/trac/contrib/browser/uKadecot/trunk/csp/flash/ こちら]にある「ukadecot_YYMMDDhhmmss.mod」をダウンロードしてください。 = 使い方 = 使い方についての動画があります。下記を参照してください。[[br]] 1.[https://youtu.be/_QAuYEStkZA 書き込みツールインストール編][[br]] 2.[https://youtu.be/0If9QWLXZUg μKadecot書き込み編][[br]] 3.[https://youtu.be/m8NLTSEmMEY ECHONET Lite機器操作編][[br]] 4.[https://youtu.be/LOgbiKMXgl0 Arduino互換ピン編][[br]] 5.[https://youtu.be/bZUMz2qr_VU シリアルコンソール編][[br]] = ソフトウェアについて = 一般公開しているTOPPERS/ECNLは、TOPPERS/ASPとTINETを使用していますが、このアプリケーションはTOPPERS/SSPと[https://github.com/adamdunkels/uip μIP]を使用しています。[[BR]] また、このアプリケーションではDHCPクライアントを実装し、起動時にIPアドレスを取得します。 Kadecot APIはWebSocketを使用しJSONでメッセージをやり取りする[http://wamp.ws/ WAMP]が使われていますので、μIPのサンプルのWebサーバにWebSocketを必要最小限ですが実装しています。[[BR]] HTTPメッセージヘッダを解釈するため[https://github.com/joyent/http-parser http-parser]を使用し、WebSocketのヘッダ情報を取得しています。[[BR]] Webサーバのファイルシステムに[http://elm-chan.org/fsw/ff/00index_p.html FatFS]を使用し、GR-SAKURAの1MByteのROMの一部にファイルシステムのデータを持つように実装しています。[[BR]] WebSocketで通信されるのはJSONフォーマットなので、[https://github.com/mnunberg/jsonsl JSONSL]を使用しWAMP形式のメッセージを解釈しています。[[BR]] WebAPIからの要求はECHONET Lite電文に置き換えられUDPで送信します。また、応答のECHONET Lite電文はKadecot APIで置き換えられWebアプリケーションに応答するようになっています。 GR-SAKURAの4つのLEDは以下のように使用しています。 * D1:LANのリンク処理時に点灯します。 * D2:LANで送受信があった時に点灯します。 * D3:DHCPサーバからIPアドレスを取得している時に点灯します。 * D4:ECHONET Lite機器としての動作状態プロパティがONの時に点灯します。 初期状態では、Pin0とPin1はシリアル通信ポートとなっています。 起動時に以下のような表示が出ます。 {{{ TOPPERS/SSP Kernel 1.3.0 for GR-SAKURA (Jun 14 2015 , 21:26:53) Copyright (C) 2010 by Meika Sugimoto Copyright (C) 2010 by Naoki Saito Nagoya Municipal Industrial Research Institute, JAPAN Copyright (C) 2010 by Witz Corporation, JAPAN Copyright (C) 2011 by Meika Sugimoto Copyright (C) 2013 by Mitsuhiro Matsuura mac_addr 12:34:56:78:9A:B8 default ip_addr xx.xx.xx.xx, netmask xx.xx.xx.xx, gateway xx.xx.xx.xx }}} DHCPから取得したIPアドレスが表示されますので、そのIPアドレスにポート41314を指定して、Webブラウザに入力するとコントローラ画面が表示されます。[[br]] {{{ http://xx.xx.xx.xx:41314/ }}} [[Image(ECNLCtrl1.png, 40%)]] [[Image(ECNLCtrl2.png, 40%)]][[br]] ※上の画像では{{{http://localhost:41314/}}}となっていますが、{{{http://xx.xx.xx.xx:41314/}}}となります。[[br]] [[br]] コントローラ画面の「Kadecot App list」を押すと、Kadecotアプリのリストが表示され「Hexflick」や「Kadeckly」が使用できます。[[br]] [[br]] [[Image(source:/uKadecot/wiki/KadecotApps.svg, 80%, center)]] [[br]] KadecotアプリはインターネットからダウンロードされWebブラウザ上で実行されます。KadecotアプリはWebSocketでμKadecotと接続し、ECHONET Lite機器をWebブラウザーで操作することができるようになります。 == Arduino互換ピン向けWebAPI == Arduino関数の一部をWebAPIとして実装しています。 === GPIOの入出力設定 === ||Arduino関数:||||pinMode(pin, mode)|| ||WAMP Procedure名:||||com.sonycsl.kadecot.arduino.pinMode|| ||||||引数:|| || ||pin:||ピン番号(0~13)|| || ||mode:||INPUT、OUTPUT、INPUT_PULLUP|| ||||||WAMP ArgumentsKW:|| || ||||{"pin":13,"mode":"OUTPUT"}|| ||||||戻り値:|| || ||||なし|| ||||||応答 WAMP ArgumentsKW:|| || ||||{}|| === GPIO出力 === ||Arduino関数:||||digitalWrite(pin, value)|| ||WAMP Procedure名:||||com.sonycsl.kadecot.arduino.digitalWrite|| ||||||引数:|| || ||pin:||ピン番号(0~13)|| || ||value:||HIGH、LOW|| ||||||WAMP ArgumentsKW:|| || ||||{"pin":13,"value":"HIGH"}|| ||||||戻り値:|| || ||||なし|| ||||||応答 WAMP ArgumentsKW:|| || ||||{}|| === GPIO入力 === ||Arduino関数:||||digitalRead(pin)|| ||WAMP Procedure名:||||com.sonycsl.kadecot.arduino.digitalRead|| ||||||引数:|| || ||pin:||ピン番号(0~13)|| ||||||WAMP ArgumentsKW:|| || ||||{"pin":13}|| ||||||戻り値:|| || ||pin:||ピン番号|| || ||value:||HIGH、LOW|| ||||||応答 WAMP ArgumentsKW:|| || ||||{"pin":13,"value":"HIGH"}|| === アナログ入力 === ||Arduino関数:||||analogRead(pin)|| ||WAMP Procedure名:||||com.sonycsl.kadecot.arduino.analogRead|| ||||||引数:|| || ||pin:||ピン番号(14~19)|| ||||||WAMP ArgumentsKW:|| || ||||{"pin":19}|| ||||||戻り値:|| || ||||0から1023までの整数値|| ||||||応答 WAMP ArgumentsKW:|| || ||||{"pin":19,"value":1023}|| === PWM出力 === ||Arduino関数:||||analogWrite(pin, value)|| ||WAMP Procedure名:||||com.sonycsl.kadecot.arduino.analogWrite|| ||||||引数:|| || ||pin:||ピン番号(0~7)|| || ||value:||0から255までの整数値|| ||||||WAMP ArgumentsKW:|| || ||||{"pin":7,"value":123}|| ||||||戻り値:|| || ||||なし|| ||||||応答 WAMP ArgumentsKW:|| || ||||{}|| [[Image(source:/uKadecot/wiki/GR-SAKURA.svg, 80%, center)]] == シーケンス == [[Image(source:/uKadecot/wiki/ArduinoWebAPISequence.svg, 80%, center)]] ---- ※[=#kadecotlicense]「Kadecot」は株式会社ソニーコンピュータサイエンス研究所の商標です。