Loading [MathJax]/extensions/tex2jax.js

2015年9月10日木曜日

GR-SAKURA HTTPサーバー GETメソッドでLED制御 (ハードウェア)

1.概要
HTTPサーバーとして動作しているGR-SAKURAボードに各種センサーやLEDを接続し、Webブラウザー経由でGR-SAKURAのセンサー情報を表示したりLEDのON/OFF制御を行う方法を紹介します。

2.GR-SAKURAとPC/LANの接続関係


3.GR-SAKURAと周辺部品との接続関係

4.ブラウザー表示とGR-SAKURA周辺部品の関係

2015年9月2日水曜日

GR-SAKURAのRTCを使う

GR-SAKURAボード上のRX63Nマイコンには、RTC(リアル・タイム・クロック)が搭載されています。
RX63Nには、腕時計にも使われている水晶発信子(32.768KHz)が接続されており、この発振パスルをカウントして正確な時刻を作ります。年・月・曜日とかの計算もハードウェアで行いますので、初期値をセットすれば、日付・時間を簡単に読み出すことができます。

下記に、GR-SAKURAボードとWebコンパイラ用のサンプルプログラムを添付します。

  1. //GR-SAKURA用 プロジェクトテンプレート(Ver V2.02)
  2. /* GR-SAKURA Sketch Template V2.02 */
  3. /* RX63N RTC Test Program */
  4. #include <Arduino.h>
  5. #include <RTC.h> //GR-SAKURAボードのRTCを使用する
  6. #define INTERVAL 100
  7.  
  8. // myRTCに日付・時刻の初期値をセットする。詳細は gr_common\core\RTC.h
  9.  
  10. RTC_TIMETYPE myRTC = {15, 12, 31, 2, 23, 59, 30};
  11. const char *WeekDay[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
  12.  
  13. void setup()
  14. {
  15.     Serial.begin( 115200 ); // シリアルモニタの通信速度
  16.     pinMode(PIN_LED0,OUTPUT);
  17.     pinMode(PIN_LED1,OUTPUT);
  18.     pinMode(PIN_LED2,OUTPUT);
  19.     pinMode(PIN_LED3,OUTPUT);
  20.     rtc_set_time(&myRTC); // RTCに初期値をセットしてRTCをスタート
  21. }
  22.  
  23. void loop()
  24. {
  25.     digitalWrite(PIN_LED0, 1);
  26.     delay(INTERVAL);
  27.     digitalWrite(PIN_LED1, 1);
  28.     delay(INTERVAL);
  29.     digitalWrite(PIN_LED2, 1);
  30.     delay(INTERVAL);
  31.     digitalWrite(PIN_LED3, 1);
  32.     delay(INTERVAL);
  33.     digitalWrite(PIN_LED0, 0);
  34.     delay(INTERVAL);
  35.     digitalWrite(PIN_LED1, 0);
  36.     delay(INTERVAL);
  37.     digitalWrite(PIN_LED2, 0);
  38.     delay(INTERVAL);
  39.     digitalWrite(PIN_LED3, 0);
  40.     delay(INTERVAL);
  41.  
  42.     rtc_get_time(&myRTC); // RTCレジスタ内容をmyRTCに読み出す
  43.  
  44.     Serial.print(myRTC.year);
  45.     Serial.print("/"); 
  46.     Serial.print(myRTC.mon);
  47.     Serial.print("/"); 
  48.     Serial.print(myRTC.day);
  49.     Serial.print(" ("); 
  50.     Serial.print(WeekDay[myRTC.weekday]);
  51.     Serial.print(")  "); 
  52.     Serial.print(myRTC.hour);
  53.     Serial.print(":"); 
  54.     Serial.print(myRTC.min);
  55.     Serial.print(":"); 
  56.     Serial.println(myRTC.second);
  57. }
  58.