「007 スペクター」21世紀のボンドにスペクター
100万ポイント山分け!1日5回検索で1ポイントもらえる
>>
人気記事ランキング
ブログを作成
楽天市場
000000
HOME
|
DIARY
|
PROFILE
【フォローする】
【ログイン】
おびやまロボット研究所 ~マイコン電子工作と自作ドローン~
微弱無線モジュール
http://strawberry-linux.com/catalog/items?code=82003
http://strawberry-linux.com/catalog/items?code=82004
使ってみました。
まずは、Arduinoから、デジタル信号を周期的にON-OFFさせて無線で送信、
同じArduinoで受信してLEDを点滅させてみました。
目視だと問題なく点滅してる。
ただ、微妙にノイズが乗ってる感じがするかも。
次に、USB-シリアルポートを使ってシリアル信号を無線で送信、
Arduino側で受信うまくいかない、(削除)
何も送らなくても不規則な値のら列を受信し続けています。やっぱりノイズを適当に解釈して受信し続けているようです。
やはり、シリアルポートを直接使って送受信することはできないようです。
プログラムでノイズを判別して、誤り検出を含めてデータ送受信する必要がありそうで、ちょっと面倒ですね。
----------------------------------------------
昨日の続き。
素直に動かないのでオシロで信号を確認。
信号なしの場合、ミリ秒オーダーのノイズがひっきりなしに出てる。
これにシリアル信号乗せても判別できるはずがない。
おもいっきり速度を下げて300bpsで大文字の”U"、コードはバイナリで01010101を連続して送ってみると認識されたのがこちら↓
速度を倍の600bps以上に上げると、信号にこんな風に隙間が開く。(この間にノイズが入ったらダメになるかもしれない?)
1200bpsだと、信号の最初がなまって読み取れない。
つまり、300bpsまたは600bpsでソフト的に送り方を工夫してエラー処理を行えば送信できそうではある。
----------------------------------------------
プログラム作って送受信してみました。
アドレスとコマンドとして2バイトのデータを送るとして、アドレスとコマンドの和をチェックサムとし、ヘッダとデリミタをつけて送ります。
受信側ではデリミタを監視して、受信したらそこまでのデータのヘッダを探してその後の2バイト抜き取ってチェックサムが正しければOKとしました。
ノイズの影響で1度で確実に送れませんが、数回送れば受信できるので、これにて終了。
----------------------------------------------
参考URL
http://www.sparkfun.com/products/8945
http://strawberry-linux.com/images/tx-ask315.jpg
http://winavr.scienceprog.com/example-avr-projects/running-tx433-and-rx433-rf-modules-with-avr-microcontrollers.html
----------------------------------------------
Arduinoのスケッチ
送信側
byte hder, delim;
byte adr, cmd;
void setup()
{
Serial.begin(600); //
hder=0xff;
delim=0x00;
}
void loop()
{
adr=0x01;
cmd=0x02;
Serial.write(hder);
Serial.write(adr); // adr,cmd ともdelimと異なること!
Serial.write(cmd);
Serial.write(adr+cmd); // adrとcmdの和が255を越えないこと!
Serial.write(delim);
delay(1000);
}
----------------------------------------------
Arduinoのスケッチ
受信側
byte str[90]; // string buffer
int adr, cmd, sum;
byte hder, delim;
void recvStr(byte *buf)
{
int i = 0;
byte c;
while (1) {
if (Serial.available()) {
c=Serial.read();
buf[i] = c;
if (c ==delim ) break;
i++;
}
}
}
void setup()
{
Serial.begin(600);
hder=0xff;
delim=0x00;
}
void loop()
{
int cnt, i;
if (Serial.available() > 0){
recvStr(str);
i=0; cnt=0;
while(str[i]!= hder) i++; // char strに0xffを入れて比較に使うと-1になるので
adr=(int)str[i+1];
cmd=(int)str[i+2];
sum=(int)str[i+3];
if ((adr+cmd)==sum && sum!=0) { // adrもcmdも0の時があるので除外
Serial.print("adr:"); Serial.println(adr);
Serial.print("cmd:"); Serial.println(cmd);
}
}
}
ジャンル別一覧
出産・子育て
ファッション
美容・コスメ
健康・ダイエット
生活・インテリア
料理・食べ物
ドリンク・お酒
ペット
趣味・ゲーム
映画・TV
音楽
読書・コミック
旅行・海外情報
園芸
スポーツ
アウトドア・釣り
車・バイク
パソコン・家電
そのほか
すべてのジャンル
人気のクチコミテーマ
新製品発売情報・予約情報
あなたや周りの方の残りの人生を変え…
(2024-09-26 14:45:25)
携帯電話のこと
[ウイルスバスター クラウド]「お…
(2024-09-24 05:28:22)
楽天市場でショッピング! 楽天市場…
ほうじ茶チョコレートの美味しさに家…
(2024-09-27 11:00:12)
© Rakuten Group, Inc.
X
共有
Facebook
Twitter
Google +
LinkedIn
Email
Design
a Mobile Website
スマートフォン版を閲覧
|
PC版を閲覧
人気ブログランキングへ
無料自動相互リンク
にほんブログ村 女磨き
LOHAS風なアイテム・グッズ
みんなが注目のトレンド情報とは・・・?
So-netトレンドブログ
Livedoor Blog a
Livedoor Blog b
Livedoor Blog c
楽天ブログ
JUGEMブログ
Excitブログ
Seesaaブログ
Seesaaブログ
Googleブログ
なにこれオシャレ?トレンドアイテム情報
みんなの通販市場
無料のオファーでコツコツ稼ぐ方法
無料オファーのアフィリエイトで稼げるASP
ホーム
Hsc
人気ブログランキングへ
その他
Share by: