= TOPPERS/μKadecot = TOPPERS/μKadecotは、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル アプリケーションです。[[BR]] GR-SAKURAにECHONET Lite コントローラをWebアプリケーションとして実装しています。[[BR]] 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」をダウンロードしてください。 = ソフトウェアについて = 一般公開している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の時に点灯します。 == 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(GR-SAKURA.svg, 80%, center)]] == シーケンス == [[Image(ArduinoWebAPISequence.svg, 80%, center)]] ---- ※[=#kadecotlicense]「Kadecot」は株式会社ソニーコンピュータサイエンス研究所の商標です。