GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
Scratch V1.4 のセンサーボードをGR-KURUMIで代用することができました。次のステップとしてSNシールド+KURUMIをScratchにつなげたいと思います。
Zigbee ATモードにて、Serial2.print を使えば USB-Serial でそのままつながると考えます。
このリンク資料にある、lib_KurumiEyes を使ってSNシールドを初期化すると、これまでSerial2.print でつながっているZigBeeと通信ができなくなるのですがどうすればようでしょうか?
/*
Test Zigbee Module with GR-KURUMI and KURUMI-EYE ShieldTest Zigbee transfer in Zigbee AT Mode.
*/
#include <Wire.h>#include <SPI.h>#include <RLduino78.h>#include <KurumiEyes.h>#include "xbee.h"
#define LED_R 22#define LED_G 23#define LED_B 24#define OFF 1#define ON 0
unsigned long myLastTime = 0; // for millis();int toggle = 0; // for ON and OFF
XBee xbee = XBee(); // Define my XBee classKurumiEyes kurumi; // Define my KurumiEye shield Class
int pin5 = 0; //XBee Module Reset Low active
void setup(){
pinMode(LED_B, OUTPUT); pinMode(LED_R, OUTPUT); digitalWrite(LED_B, OFF); digitalWrite(LED_R, OFF);
// kurumi.begin(); //Initialize my KurumiEye shield ここを実行すると Serial2 と通信ができない。
Serial2.begin(9600); // Use ZigBee AT-mode instead for now Serial.begin(9600); Serial.println("TEST"); Serial2.println("Are You Ready ?");}
void loop(){ if (millis() - myLastTime > 1500) { myLastTime = millis(); if ( toggle == 0 ) { toggle = 1; digitalWrite(LED_B, ON); Serial2.println(kurumi.getTemp(),2); } else { toggle = 0; digitalWrite(LED_B, OFF); Serial2.println("-----"); } } if(Serial.available()) { char c = Serial.read(); Serial2.write(c); }
if(Serial2.available()) { char c = Serial2.read(); Serial.write(c); if (c == 'e') { digitalWrite(LED_R, OFF); } if (c == 'r') { digitalWrite(LED_R, ON); } }
}
> Serial2.println("Are You Ready ?");
ここでXBeeへの通信ができる、できないを判断しているのかとは思われますが、XBee自体も通信できるまでに色々必要な処理がありますので、せめてASSOC LEDが点滅を開始してから通信を始めたらどうなるでしょうか?
早々の書込みありがとうございます。
ZigBee Router は、あらかじめX-CTUで決め打ち設定(動作モード: ATモード、通信相手ID: Coordinator) しています。XbeeをデフォルトSeria2で使います。
気休めで、下記のクラス宣言してますが、全く使っていません。
XBee xbee = XBee(); // Define my XBee class
kurumi.begin() ;
をやって電源を入れたまま、上記をコメントにして再度書き込むいと、前のSNシールドのレジスタ設定が残っていますので
Serial2.println(kurumi.getTemp(),2) が 動作し、PCで温度データが読めています。
kurumi.begin() で、Serial2 が無効化されているか、XigBee リセットの辺があやしいのでしょうかね?
じゃあSPI.begin()のところじゃないかな?
SSが出力設定にされている。
前にそこで動かなかった件をOKAMIYAさんに連絡した気がする。
しかし
kurumi.begin();
の後に
Serial2.begin(9600);
なら動きそうな気がするけれど、なんでかなぁ?
chobican 付き合っていただいてありがとうございます。
動きました。 原因は、上記 ピンクライン
int pin5 = 0; // Xbee Module Low active
が、悪さしていました。 リンク資料にも、この命令文があり、そのまま放置したのが原因でした。