らずらいと姫の挑戦日記(第8回)☆通信を確実に届ける方法☆
2016-05-24

今回は通信を確実に届けるための方法と、無線の規則をお知らせします☆
通信を確実に届けるための方法
今回は無線をより確実に相手に届けるための方法について勉強しましたので、その内容をお届けします。今までの説明の通り、無線と音声の会話は非常に似ています。
いっぺんに何人もの人が同時にしゃべっていたら、何を言っているかわからなくなってしまいます。また、相手とはなしをしているのに返事が無かったら不安になってしまいます。無線ではその辺りがルール化してコミュニケーションを取りやすくしていることがわかりました。今回はその内容について説明していきます。
①CCA(Clear Channel Assessment):
CCA(シーシーエー)というのは、周りに話している人がいないことを確認してから話す事です。Lazuriteでは128uA(0.000128秒)の間、電波が出ていないことを確認した後に、データの送信を始めています。
実際に誰かが話をしていたら、声を出さないのと一緒ですね!!
②ACK(Acknowledge):
ACK(アック)というのは正しく聞き取れた、ということを相手に送ることです。あいづちや返事と同じですね。このACKが正しく返ってきたら送信機は受信機にデータを届けることができたということになります。Lazuriteでは自動でACKを送信しています。話かけたのに応答がないと、本当に聞いてくれたのかどうか、話かけた人はわからないですよね。なので、受信側は「聞こえました」という返事を送ります。
ただし、ブロードキャストによって送信されたデータに対してはACKは返ってきません。
このように、CCAとACKのシステムがあって、通信を確実なものとしているんですね。
それ以外の無線のお約束
それ以外にもみんなで仲良く無線をつかえるようにいくつかのルールがありますので、ご紹介します。
①送信間隔:
電波を出したあとは、少し休んでから送信するというお約束です。ずーっと一人がしゃべっていたら周りの人はしゃべれなくなってしまいます。
②送信時間総和:
一時間あたりに電波を出してよい時間です。1台の送信機は1時間あたり360秒(10%)だけ送信できます。それ以上の時間は使用できません。
③送信時間:
連続して電波を出せる時間が決まっています。他の機器も電波を出す順番を待っているかもしれないです。
無線は、①~③の守らなければいけない規則がありますが、Lazuriteは大丈夫!!
規定外の設定が出来ないように、最初からシステムが組まれているそうです。
エラーの実験
人の会話もうまく成り立たないことがあるように、無線の通信も失敗する事があります。ここで、失敗例の実験したいと思います。
①CCAエラー:
周りに話している人がいないことを確認してから話そうとしたら、他の人が話はじめてしまったのでしゃべれかった…ということになります。LazuriteではCCAで送信ができないと最大20回CCAを繰り返して送信しようとします。CCAエラーになるというのは悪意のある電波が出ているような….
②ACKエラー:
話しかけられた人が電池切れなどの影響で寝ていた場合、「聞こえました」という返事を返すことが出来ません。それがACKエラーです。
実験
2台のLazuriteで、送信機側をプロジェクトのサンプル『Welcome_SubGHz』、受信機側を『Print_SubGHz』を開き、実行します。
●妨害波を出す(他の人と同時に話はじめた)→CCAエラー
●受信機側のLazuriteを切断(聞いていない)→ACKエラー
送信機側のシリアルモニタを確認してみると、正常に送信ができた時は、SUBGHZ_OKのメッセージが表示されていて、失敗したときはCCAやACKのエラーが表示されています。
『Welcome_SubGHz』のプログラム内の赤枠の部分が、「エラーの場合メッセージを表示する事」を意味しています。
エラーメッセージはここから呼び出してきてます↓↓↓
www.appliot.co.jp/lazurite-jp/contents/reference/subghz_msg.html
無線の世界は、色々と細かい取り決めやルールがありますが、Lazuriteならエラーの場合、メッセージが表示されるプログラムですし、規定外の設定も出来ないようになっているので、無線初心者でも安心して通信が出来ますね♪
次回は5月31日(火)に「らずらいと姫の挑戦日記(第9回)☆通信の距離☆」をお届けします。