Large Display Size Middle Display Size Small Display Size
印刷用 概要 キーワード 著者

Lazurite Sub-GHz で無線通信をするには

IoTの試作用基板 Lazurite Sub-GHz で無線通信をするにはどうしたらいいでしょうか。

ここでは、無線通信する相手として 「Raspberry Pi 2Pi Gateway」 を使って説明します。


導入時において重要と思われる事柄が2件あります。このページの重要1へこのページの重要2へ



Lazurite Sub-GHz で無線通信を試すには

最初に LED のテストを行っておいてください。

Lazurite を使い始める (このページの前回分)

を読んで、Lazurite Sub-GHz の LED テストを行っておいてください。

その上で以下へ進みます。

他に機械が必要 (Raspberry Pi 2 と Pi Gateway など)

fig.
▲Lazurite Sub-GHz 単体では通信を試せない

Lazurite Sub-GHz には無線通信をする機能が備わっています。

しかし、Wi-Fi とは規格も周波数も違うし、似ている無線規格の ZigBee (2.4GHz) とは規格が少し違っていて周波数も違うので、それらとの通信はできません。

そのため、通信するには他に同じ周波数&規格で無線通信をするような機械が必要になります。



Sub-GHzの通信相手は、「Lazurite Sub-GHz 同士」、「Sub-GHz と Raspberry Pi + Pi Gateway」 などがありますが、ここでは 「Sub-GHzとRaspberry Pi + Pi Gateway」 の説明を行います。



▲Lazurite Pi Gateway

必要な機械 1


「Lazurite Pi Gateway」 (¥6,950ほど)

Raspberry Pi と通信するためのアダプタです。

920MHz の無線モジュールが付いています。

これを Raspberry Pi に装着することで、Raspberry Pi とLazurite Sub-GHzが920MHz帯で無線通信できるようになります。

Lazurite Pi Gateway の詳細 (開発元ニュースリリース)



▲Raspberry Pi 2

必要な機械 2


「Raspberry Pi 2」 (¥5,400ほど)

Pi Gateway は Raspberry Pi A+, B+, 2 に対応しています。

ピン数の合わない Raspberry Pi A, B には対応していません。

Raspberry Pi A+ は LAN コネクタが無く USB コネクタも 1つしかないので、その辺が心配で B+ か Pi 2 を選ぶことになります。B+ と Pi 2 は値段が 400円 程度しか違わないので Pi 2 を選ぶことになります。

しかし、十分に検討すれば、一番安い A+ でも OK かもしれません。

以降の説明は Pi 2 で行いますが、A+, B+ でもほとんど同じはずです。


かかる費用について

主役の Lazurite Sub-GHz の価格が 6,950円ほどするので ( Pi Gatewayと同額 ) 、以上のシステムは、3つの機械を合計して、20,000円 ほどとなります。

そして忘れがちですが、Raspberry Pi は microSD にOSイメージを書き込んで搭載する必要があります。書き込むOSイメージはPi Gateway専用のファイルが用意されていて、8GB以上の容量が必要とされています。

8GB 以上の microSDカード を持っていない場合は別途購入する必要があります。

microSD 16GB ¥1,100 (秋月電子通商) など

知っておいたほうが良いこと

通信速度

通信速度は数十 kbps ~ 数百 kbps です。音声や映像の送信には不向きです。

しかしもともとの目的であるセンサーデータの送信には十分です。

アンテナの長さ

波長とアンテナサイズは関係していて、920MHz は 2.4GHz と比べて、アンテナサイズは長くなるそうです。(2.4GHz のほうが小型化に向く)

電磁波と人体

Lazurite Sub-GHz や、920MHz という周波数に限ったことではありませんが、一昔前に携帯電話を耳に押し当てると、その電磁波が人体に悪影響を及ぼすのではないかと言われていた時期がありました。

業界にちょっと たずねたいですが、その心配はどこへ消えてしまったのでしょうか。猫の首輪に取り付けてGPSで迷い猫を見つける、というような IoT を考えたとき、猫は大丈夫でしょうか。

920MHz


920MHzは IoT で期待されている周波数で、IoT のためにいろいろメリットのある周波数です。(電波到達距離が長く、回折性も高い。つまり遠距離通信( 500mほど )が可能で障害物を回避するような性質があります)

同じ IoT で使われている 2.4 GHz は IoT 以外に、産業・科学・医学などの機器、無線LAN、Bluetooth、無線マウス・キーボード、そして電子レンジにコードレス電話など、いろいろな用途で使われています。

そのため 2.4 GHz は電波干渉が起きやすいという問題があります。

それに対し、920MHz は IoT 専用で、電波干渉が起きにくいです。

「920MHz と 2.4 GHz はそれぞれ、用途により向き不向きがある」と考えるのが良いみたいです。

このページの説明は、「Lazurite 関連ドキュメント」の補足です。

fig.
▲ 「Lazurite 関連ドキュメント」はここにあります。

Lazurite ホームページのダウンロードのページからダウンロードできる、「Lazurite 関連ドキュメント」 にも、このページと同様の説明があります。

「Lazurite 関連ドキュメント」 はダウンロードしたら top.html をクリックして開きます。

top.html の下のほうの、

小題 「Lazurite Pi Gateway」 の部分と同じことを行っています。

「Lazurite 関連ドキュメント」をメインとして、こちらを補足として読んでください。

それでは はじめましょう。


Raspberry Pi + Pi Gateway(受信機として使用) の準備

ハードウェアの組立て

組立はコネクタ同士で接続するだけです。

ただ、基板がむき出しなので注意して作業する必要があります。


▲Pi Gateway の裏側。電池のソケットがある。

Pi Gateway の裏側には電池のソケットがあり、「電池の用意が別途必要なのか??」 と心配になります。

これは内蔵の時計 ( Real Time Clock = RTC) 用の電池です。システム全体の電源が切られても、時計だけはこの電池で動作を続けることができます。

システムをお試しで使う間は必要ありません。

電池の型番は CR1220 です。



▲無線モジュールを接続した

では、Pi Gateway 本体と、Pi Gateway 同梱の無線モジュールを接続します。

コネクタはとても小さいです。

指で押したい部分にランドが密集していて、静電気が流れそうです。紙など絶縁体をはさんで押すと良いです。



fig.
▲Raspberry Pi  に Pi Gateway を装着した

Raspberry Pi に Pi Gateway を装着します。

microSD カードはこの裏にソケットがあるので後付けで OK。

写真だとゴツイ感じに見えますが、実際はタバコの箱サイズでコンパクトな印象です。


"むき出し基板"

私は以前、仕事で FPGA の"むき出し"の評価基板を使ったことがありまして、そのとき基板の半田面が不意に作業机の上に置いてあった何かの金属に 触れてしまい、短絡(ショート)して FPGA 基板が 1枚焼け落ちてしまったことがあります。たしかキュキュウッ!と一瞬変な音を出してた気がします。あれ?!っと思って…。"むき出し"は焼けてから後悔しても遅いんですよねぇ…。

Lazurite には Arduino 関連のケース、Raspberry Pi にはそのケースを検討してください。

または 3mm ねじの穴があるので、スペーサーを使って手ごろな大きさのプラ板に固定するだけでもいいと思います。

  

Raspberry Pi のための microSD ( OS ) を作成する

fig.
▲ Lazurite のホームページ

Lazurite のホームページにアクセス。

ダウンロードのリンクをクリックします。



fig.
▲ダウンロードのページ
専用のRaspbianのイメージファイルが置いてある

ここで使用しているのは Pi 2 なので、ページの下のほうの 「Lazurite Pi Gateway」 の真ん中のリンク 「Raspberry Pi 2用 Raspbian イメージファイル」 をクリックし、ダウンロードします。

A+, B+ の場合は、その上のリンクです。



fig.
▲Raspbianの ディスクイメージ ファイル

ダウンロードした ZIP ファイルを展開すると、このようなファイルが出てきます。

ディスクイメージと呼ばれるファイルです。

通常この種類のファイルは Windows の標準コマンドでマウントしたりディスクに書き込みしたりできますが、このファイルに限ってはそれができません。


fig.
▲イメージファイルを、microSDカードへ。
 (ファイルコピーではありません)

これからこのディスクイメージを microSD カードへ書き込みします。Raspberry Pi のためのディスクイメージ書き込みなので、Raspberry Pi の OS インストール時に使用される 「Win32DiskImager」 というソフトウェアを使用します。

そのソフトウェアをどこからダウンロードするかが、セキュリティの観点から言って大切です。

あやしいダウンロードサイトからダウンロードすると目的のソフト以外のウイルスも一緒にダウンロードしてしまうことがあります。



fig.
▲ Raspberry Pi のホームページ
 「Raspberry Pi Foundation」

正しいルートをご案内します。(2015/9/22現在)

Raspberry Pi のホームページの DOWNLOADS をクリック。

Raspberry Pi ホームページ



fig.
▲DOWNLOADS のページ

RASPBIAN をクリック。



fig.
▲ RASPBIAN のページ

installation guide をクリック。



fig.
▲ installation guide のページ

このページの下へスクロールする。



fig.
▲OSごとに書き込み方法が案内されている

Windows をクリック。



fig.
▲Windowsを使う場合の案内ページ

Sourceforge Project page をクリック。



fig.
▲有名なダウンロードサイト

図の赤い枠の Download ボタンをクリック。

フリーソフトのダウンロードのページでは、まったく無関係のダウンロードボタンが表示されていることがよくあります。

 悪意のある人が広告機能を利用して偽のダウンロードボタンを表示しているんです。
 その偽物をダウンロードボタンだと思ってクリックしてしまうと、高い確率でウイルスなどがダウンロードされてしまいます。

 そのため、正しいダウンロードボタンであることを十分に確認しなければなりません。
(でも、こういうのはもう、パソコンに詳しくない一般の人には無理な話ですね…)


fig.
▲ Win32DiskImagerを起動した

ダウンロード完了後の、インストール作業の説明はわりと単純だと思うので省略させてもらいます。

Win32DiskImager を起動し、Image File 欄に img ファイル、Device 欄に microSD のディスクドライブを指定します。

Write ボタンを押します。



fig.
▲”ディスクを上書きしますが良いですか?”

確認画面。Yes を押します。



fig.
▲数分で終わります。

書き込み進行中…



fig.
▲書き込み完了の画面。

書き込み完了。



fig.
▲出来上がったら、
 Raspberry Pi の microSD カードスロットへ。

OS イメージを書き込んだ microSD を Raspberry Pi へ差し込みます。

これで Raspberry Pi の起動準備ができました。


”モニターやキーボード等を接続”

"…"で囲んだ文字は 「Lazurite 関連ドキュメント」  からの引用です。

fig.
▲Raspberry Pi 起動準備完了の図

モニター、キーボード、電源を接続。

だれでもこんな感じになるかと思います。


Raspberry Pi 起動、セットアップ

fig.
▲Raspberry Pi 起動中

初めて電源を入れるとあっさり起動を始めます。Raspberry Pi はこの辺のあっさり具合が感動的ですね。

ディスプレイは、1920 x 1200 ですが、とくに設定することもなく表示されています。

ユーザー名 pi でログインします。

パスワードは raspberry です。

パソコンのキーボードと違って、文字が繰り返されやすいので気をつけてください。パスワードを rraspbberry のように入力しているかもしれません。

fig.
▲ sudo raspi-config 実行後の画面

login したら、sudo raspi-config を実行。

メニューから Expand Filesystem を実行。

この作業は 「Lazurite 関連ドキュメント」 にも載っています。



fig.
▲メニューの Expand Filesystem を実行した

実行するとこれだけ表示されます。



fig.
▲Finish ボタンを選択状態にするには←→キー

キーボードの左右キーで Finish ボタンを選択状態にできます。Enter キーで実行。

このあと再起動されます。


再起動しログインしたら、

sudo shutdown -h now

と入力してシャットダウンしておきます。

これで Raspberry Pi (受信機として使用) の準備は終わりです。

Lazurite Sub-GHz(送信機として使用) の準備

Lazurite IDE を起動、サンプルプログラムを読み込む

fig.

Raspberry Pi 2(上) 受信機として使用、
Lazurite Sub-GHz(下) 送信機として使用

受信機、送信機の2つの機械を並べると、いよいよという感じがします。

Lazurite Sub-GHz とパソコンをUSBで接続し、電源を供給します。

Lazurite Sub-GHz にはプログラムはまだ何も入れていないはずなので、Pi Gateway と通信を始めたりはしないでしょう。



fig.
▲ Lazurite IDE

Lazurite IDE を起動。

「Lazurite 関連ドキュメント」 にあるとおり、「Welcome_SubGHz」 というサンプルプログラム(送信プログラム)を IDE に読み込みます。


Sub-GHzモジュールの固有のアドレス を調べる

ここで 「マイコンボードに転送」 を行わないで、あなたのモジュールの固有のアドレスを調べます。

これはメーカーのドキュメントに記載がないようです。(2015/9/26現在)

これを行わないと通信ができません。


まずは、"C:\LazuriteIDE\examples\03.SubGHz\Welcome_SubGHz\Welcome_SubGHz.c" のバックアップを取ってください。

バックアップを取ったら、Welcome_SubGHz.c をテキストエディタで開いて、下記のマークした部分を追加してください。

この追加は、シリアルモニタに Sub-GHzのアドレスを表示する、という内容です。

/* FILE NAME: Welcome_SubGHz.c
* The MIT License (MIT)
*
* Copyright (c) 2015 Lapis Semiconductor Co.,Ltd.
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/


#define LED 26
	
	
	
	
	
	
// pin number of Blue LED
#define SUBGHZ_CH
	
	
36
	
	
	
// channel number (frequency)
#define SUBGHZ_PANID
	
0xABCD
	
	
// panid
#define HOST_ADDRESS
	
0xB132
	
	
// distination address

unsigned char send_data[] = {"Welcome to Lazurite Sub-GHz\r\n"};

void setup(void)
{
long myAddress;

SubGHz.init();
	
	
	
	
	
// initializing Sub-GHz

Serial.begin( 115200 );
myAddress = SubGHz.getMyAddress();
Serial.print("myAddress = ");
Serial.println_long(myAddress,HEX);
	


pinMode(LED,OUTPUT);
	
	
	
// setting of LED
digitalWrite(LED,HIGH);
	
	
	
// setting of LED
}

void loop(void)
{
// Initializing
SubGHz.begin(SUBGHZ_CH, SUBGHZ_PANID, SUBGHZ_100KBPS, SUBGHZ_PWR_1MW);
	
	
// start Sub-GHz

// preparing data
digitalWrite(LED,LOW);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// LED ON
SubGHz.send(SUBGHZ_PANID, HOST_ADDRESS, &send_data, sizeof(send_data),NULL);// send data
digitalWrite(LED,HIGH);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// LED off

// close
SubGHz.close();
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// Sub-GHz module sets into power down mode.

sleep(1000);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// sleep

return;
}

TAB
fig.
▲IDEの 「マイコンボードに転送」 ボタンを押す

マイコンボードに転送 コマンドを実行してください。

コマンドを実行すると、自動的にソースコードが再読み込み(変更反映)されて、そのうえでコンパイルされます。



fig.
▲マイコンへ書き込み中。

コンパイル後、Start upload... となるはずです。



fig.
▲成功、リセットして開始

その後、Success ML620Q504 reset と表示されるはずです。


fig.
▲いい機会なので基板からのシリアル経由でのデバッグプリントを体験しましょう。実は私は初めてでした。

ここで Sub-GHzモジュールの固有のアドレスを調べるために

ツールメニュー>シリアルモニタ

を開いてください。



fig.
▲デバッグプリント

アドレスが表示されます。これが Sub-GHzモジュールの固有のアドレスです。図の例では 「8FC5」です。

みなさんは何番になりましたか?



fig.
▲ちょっと大きすぎか

このように Sub-GHzモジュールにフセンなどシールでアドレスを書いておきましょう。小さいシールがあればベストですね。

ただ、ひょっとしたらセキュリティ上よくないかもしれませんので、もしも実用するときはよく検討してください。



fig.
▲同じように一方のSub-GHzのアドレスも知りたい。

Raspberry Pi に載せている Sub-GHzモジュールも同様に確認します。

Raspberry Pi と、Lazurite、 両者の電源を切ります。( USB コネクタを外します )

Raspberry Pi からモジュールを外して Lazurite へ載せ替えしましょう。



fig.
▲4つしか違わない値でしたが、たぶん同時期に購入したからでしょう…

Lazurite に USB コネクタを接続して電源を投入すると、シリアルモニタに同様にアドレスが表示されます。

こちらは 「8FC1」 です。



fig.
▲同様にアドレスをわかるようにしておく

両方のアドレスがわかりました。

各モジュールを元の機械に戻します。

次にソースコードを変更しましょう。


ソースコードにSub-GHzモジュールの固有のアドレスを記入する

"Welcome_SubGHz.c" の30行目の #define HOST_ADDRESS は 「Lazurite から見た相手先(受信機)」 のアドレスを指定しています。(現状では0xB132になっていると思います)

これを、Raspberry Pi (受信機として使用) に載せている Sub-GHzモジュールのアドレスに変更します。

/* FILE NAME: Welcome_SubGHz.c
* The MIT License (MIT)
*
* Copyright (c) 2015 Lapis Semiconductor Co.,Ltd.
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/


#define LED 26
	
	
	
	
	
	
// pin number of Blue LED
#define SUBGHZ_CH
	
	
36
	
	
	
// channel number (frequency)
#define SUBGHZ_PANID
	
0xABCD
	
	
// panid
#define HOST_ADDRESS
	
0x8FC1
	
	
// distination address


unsigned char send_data[] = {"Welcome to Lazurite Sub-GHz\r\n"};

void setup(void)
{
long myAddress;

SubGHz.init();
	
	
	
	
	
// initializing Sub-GHz

Serial.begin( 115200 );
myAddress = SubGHz.getMyAddress();
Serial.print("myAddress = ");
Serial.println_long(myAddress,HEX);
	


pinMode(LED,OUTPUT);
	
	
	
// setting of LED
digitalWrite(LED,HIGH);
	
	
	
// setting of LED
}

void loop(void)
{
// Initializing
SubGHz.begin(SUBGHZ_CH, SUBGHZ_PANID, SUBGHZ_100KBPS, SUBGHZ_PWR_1MW);
	
	
// start Sub-GHz

// preparing data
digitalWrite(LED,LOW);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// LED ON
SubGHz.send(SUBGHZ_PANID, HOST_ADDRESS, &send_data, sizeof(send_data),NULL);// send data
digitalWrite(LED,HIGH);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// LED off

// close
SubGHz.close();
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// Sub-GHz module sets into power down mode.

sleep(1000);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
// sleep

return;
}

TAB

マイコンボードに転送

Lazurite に USB コネクタを接続して電源を投入します。

IDEにて 「マイコンボードに転送」 コマンドを実行してください。

シリアルモニタを表示させて、載せているモジュールにメモしたアドレス値と、モニタに表示されたアドレス値が同じかどうか確認しておきましょう。


以上で Lazurite Sub-GHz(送信機として使用) の準備は完了です。

ソースコード中の "SUBGHZ_PANID" の PAN とは何か


ディレクトリのような考え方で説明
名称 ソースコード上 その値
920MHz帯 周波数帯
920MHz帯の中で具体的に「どの周波数」を使うのか
チャンネル SUBGHz_CH 36
1つのチャンネルをさらに複数の「グループ」に分けて使用
PAN SUBGHZ_PANID 0xABCD
そのグループに属する「各機器」
アドレス HOST_ADDRESS
(※相手先)
固有

920MHz帯をチャンネルで分割し、さらに PANID という識別子を使うことで 1つのチャンネルを同時に複数のグループで使用できるようにした、それが PAN (Personal Area Network) というものです。

参考 http://miqn.net/periph/85.html

Raspberry Pi に搭載する Sub-GHz のデバイスドライバのソースコード (/home/pi/driver/sub-ghz/drv-802154e.c) を見ると、この PANID が 0xABCD  となっているので、このソースコードの 0xABCD を変更してそのディレクトリで make を実行して再コンパイルをしない限り、PANID は 0xABCD で固定です。

こういうことがユーザー側でできるのはメーカーがオープンソースにしてくれたことの恩恵でしょう。

Raspberry Pi で受信する。

Raspberry Pi は現在電源が抜かれている状態だと思います。

USB コネクタを接続して電源を投入しましょう。

ユーザー名 pi でログインします。

Sub-GHz モジュールのデバイスドライバをインストール

受信プログラム SerialMonitor.rb を起動する前に、Sub-GHz モジュールのデバイスドライバを手動でインストールしておきます。

これはメーカーのドキュメントに記載がないようです。(2015/9/26現在)

これを行わないと通信ができません。


sudo insmod /home/pi/driver/sub-ghz/DRV_802154.ko

を実行します。

fig.
▲これから insmod を実行するところ。

このように実行します。

実行後何もメッセージがなければ正常です。

デバイスドライバのインストールができています。


これは Raspberry Pi を起動して、ログインしたら、毎回行ってください。


これが面倒な人は自動起動の設定を行ってください。方法はこのページの最後の方の 「おまけ - Linux環境づくり」 に掲載しています。

”rubyのフォルダに移動し、SerialMonitorを起動します。”

「Lazurite 関連ドキュメント」 のとおり、ruby フォルダへ移動し、SerialMonitor.rb (受信プログラム) を実行します。

fig.
▲非常にうれしい画面
  • Lazurite 側(送信機)のプログラムで 「相手先のアドレス指定」 が正しいこと。
  • Raspberry Pi 側(受信機)で Sub-GHz のデバイスドライバがインストールされていること。

この2点ができていれば、Raspberry Pi の SerialMonitor.rb で正しく受信が行われるはずです。



他にスクリプト言語 python でのサンプルもあるので忘れずに。
説明は割愛します。

補足: ドライバ/アプリケーション 更新用ファイル を適用する

fig.
▲Lazurite ダウンロードページ。

Lazurite ダウンロードページにて ドライバ/アプリケーション 更新用ファイル をダウンロードします。



fig.
▲ファイルを上書きするタイプの更新。

ダウンロードした ZIP を展開すると3つのフォルダができます。

この3つを USB メモリーへコピーしてください。





fig.
▲X Window System と呼ばれてます。

Raspberry Pi で startx と入力してデスクトップ環境を開きます。



fig.
▲初期の Raspberry Pi model A, B と比べて良くなった感じがする。Pi 2 は4コアCPUで処理速度も速い。

Raspbian のデスクトップ環境(X Window System)です。



fig.
▲ファイルマネージャー。Windows でいうところのエクスプローラー。

上部のタスクバーの 「引き出しのアイコン」 をクリックし、ファイルマネージャーを開きます。

/home/pi を表示させます。

driver, python, ruby の3つのフォルダがあることを確認します。



fig.
▲USBメモリーを差し込んだところ

USBメモリー を Raspberry Pi の USB コネクタに接続します。



fig.
▲差し込んだUSBメモリーについてどうするかと聞いてくる。

すると 「USB メモリーが挿入されたがどうするか」 というダイアログが出ます。Windows と同じですね。

Open in File Manager (ファイルマネージャーで開く) で OK します。



fig.
▲USB メモリーの中身が表示された

すると USB メモリーの中身が表示されます。

USB メモリーの中身も同じ3つのフォルダを確認できます。

私の場合は、Windows の Ready Boost の機能で使っていた USBメモリーだったためか、タイトルが READYBOOST になっていました。


fig.
▲Windows と同じ方法でファイルを上書きコピー

USB メモリーの中身の3つのフォルダを選択して、/home/pi へドラッグ&ドロップします。

これで更新完了です。

Ruby の SerialMonitor.rb や Python のアプリケーション、そして Sub-GHzのデバイスドライバが更新されたと思います。

ところで Windows ではない、有名な無料の OS って新鮮ですよね。


屋外実験

Lazurite Sub-GHz がどんな感じで通信をするのか屋外で距離を離して調べてみました。

***

fig.
▲データは Python 版のサンプルプログラム(Ruby版より高機能)で取得し、Excelでグラフ化しました。

実験結果はPDFかPNG画像でご覧ください。PDFのほうがきれいでおすすめです。

PDF版

PNG版


最後に

約 20,000円 かかる試作用システムですが、価値は大きいです。

500m程度離れたところ(500mは理論値で、実測は200m?)から通信ができるというのは、今まであまりなかった道具かもしれません。

年単位での駆動を見込めるというのも、アイデアが実用的になります。「乾電池で1~10日で終了」だと利用範囲も限られるでしょうから…。

初期導入で通信ができたなら、さっそく自宅の外へ1台を持ち出して、部屋の中から操作 (おもにセンサーをつなげて、その信号の受信) をしてみましょう。「これはなんだ?」 と思われて盗まれたりしないようご注意を…。実際、盗難は IoT の課題の一つらしいです。

おまけ

Linux環境づくり

Lazurite での作業効率アップのための、各種設定方法です。

どれも自分用のヘルプ文書なので、愛想のないページになっています。

それからよく使いそうな Linux コマンドです。

今回の作業で使うコマンド

  • sudo shutdown -h now
    シャットダウン
  • startx
    デスクトップ環境を起動する。
  • sudo insmod /home/pi/driver/sub-ghz/DRV_802154.ko
    Sub-GHzデバイスドライバをインストール
  • sudo rmmod DRV_802154
    Sub-GHzデバイスドライバをアンインストール
  • sudo ./SerialMonitor.rb
    (rubyディレクトリにて)受信アプリ起動
  • ls
    ディレクトリリスト
  • cd ruby
    ディレクトリ ruby へ移動
  • cd /
    一番上のディレクトリへ移動
  • cd /home/pi
    ユーザー pi の最初のディレクトリへ移動
  • cd ..
    現在の一つ上のディレクトリへ移動

その他基本的なコマンド

  • logout
    ログアウトし、ログイン待ちにする。
  • sudo reboot
    再起動する。
  • mkdir testdir
    ディレクトリ testdir を作成する。
  • rmdir testdir
    ディレクトリ testdir を削除する。
  • rm test.txt
    ファイル test.txt を削除する
  • rmdir --help
    rmdir の使い方表示。他のコマンドでも同様。使えないコマンドもある。
  • CTRL + C
    実行しているものを強制終了(中断)する。
  • SHIFT + PageUp, PageDown
    画面のバックスクロール
  • date
    日付と時刻を表示
  • date -s "09/22 23:11 2015"
    日付と時刻を設定
  • mv test.txt test2.txt
    test.txt を test2.txtに名前を変更する。
  • sudo startx
    root権限でデスクトップ環境を起動する。システム領域のファイルを編集することができる。

システムの状態を調べるコマンド

  • lsmod
    インストールされているモジュール(デバイスドライバ)のリスト。
  • lsusb
    USB機器のリストを表示する。
  • dmesg
    起動時にどんどん流れて見えなくなるメッセージと同等の内容を再表示できる。
  • dmesg | more
    dmesg実行時の表示について、1画面分表示したら止まる。スペースキーでもう1画面表示し止まる。他のコマンドでも同様。

画面表示するときその内容を絞り込んで表示

  • dmesg | grep usb
    dmesgの内容の中で、キーワード usb を含む行のみ表示する。(検索)
  • dmesg | grep -e usb -e Kingmax
    dmesgの内容の OR 検索。例は Kingmax製のUSBメモリーの情報のみ表示する。
  • dmesg | grep usb | more
    dmesgでキーワードusbを含む行のみ表示し、1画面ごとに止まる。
    (ただしキーワードの色付けはなくなってしまう)

そのほか

  • sudo service samba restart
    ファイル共有(samba)がインストールされているとき、それを再起動する。
  • /dev ディレクトリ
    デバイスをファイルみたいに並べている。
  • /proc ディレクトリ
    システム情報へのアクセスをファイルみたいに並べている。
  • /mnt ディレクトリ
    アクセス可能なディスクを並べている。
  • コマンドA | コマンドB | コマンドC
    左から右へ出力結果を流れ作業する。
    dmesg | grep usb | more はdmesgの表示内容を、grepが受け取り内容を絞る。それをmoreが受け取り1画面分ずつ表示する。といった具合。
  • ログインしたユーザーの /home/そのユーザー名 以下なら、mkdir や rmdir、rm、mv などのコマンドは自由にできる。しかしそれ以外の場所でそれらのコマンドを行うには権限が必要で、sudo mkdir などとする必要がある。しかしユーザーに root 権限がなければ、sudo mkdir などとしても実行できない。


ページ制作 homepage6047


ページの上端へ (もくじ開く)