無線モジュールでモールス信号
お疲れ様です。高橋です。
無線モジュールnRF24L01Pを使った、なんちゃってモールス信号機を作りました。使った、とは言いません。作った、とだけ言います。理由は後述。。
作る上でとても参考になったのが、たまささんのnRF24L01モジュールで無線通信というサイトです。今回の実験は、いつも以上にほとんど丸パクリです。
作り方
モジュールの調達
まずは、無線モジュールをクライアント側、サーバ側、それぞれ1個ずつ、合計2個準備します。
nRF24L01Pを使った無線モジュールが、aitendoでは1個390円で売っています。
このモジュールは8本のピンが出ています。どの位置のピンがどの役割なのかがわからなかったので、ググってみると、下記のような感じです。
って事はこんな感じです。
結線
クライアント側(ボタンを押す側)の回路図
サーバ側(ピエゾスピーカー側)の回路図
いい感じに線を繋げます。
こんな時のために、リボン型のメスーオスケーブルがあると、非常に便利です。
aitendoだと、ECサイトでは380円~580円とかで売られていまますが、実店舗に行くと100円とかで短い奴が売ってるので、大変ステキです。
必要ライブラリの調達
Arduino公式のココにあるMirf.zipをダウンロードします。
解凍すると「aaronds-arduino-nrf24l01-914e46a」というディレクトリが作成されますが、必要なのは、その中にある「Mirf」というディレクトリです。Arduinoの「ライブラリをインストール」で、「Mirf」ディレクトリごとインストールします。
スケッチ作成
クライアント側のスケッチ。タクトスイッチを押すと20が送信され、離すと10が送信されます。
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
const int buttonPin = 2;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"serv1");
Mirf.payload = sizeof(unsigned long);
Mirf.config();
}
void loop() {
const byte buttonOpen = 10;
const byte buttonClose = 20;
byte sendData[Mirf.payload];
if (!Mirf.isSending() && Mirf.dataReady()) {
Mirf.getData(sendData);
Mirf.setTADDR((byte *)"clie1");
int val = digitalRead(buttonPin);
if (val == HIGH) {
sendData[0] = buttonOpen;
} else {
sendData[0] = buttonClose;
}
Mirf.send(sendData);
}
}
サーバ側のスケッチ。20を受け付けるとピエゾスピーカーに442Hzを流し、10を受け付けると音を止めます。
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
const int speakerPin = 2;
void setup(){
pinMode(speakerPin, OUTPUT);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1");
Mirf.payload = sizeof(unsigned long);
Mirf.config();
}
void loop(){
const byte buttonOpen = 10;
const byte buttonClose = 20;
unsigned long time = millis();
byte recvData[Mirf.payload];
Mirf.setTADDR((byte *)"serv1");
Mirf.send(recvData);
while(Mirf.isSending()) {
}
while (!Mirf.dataReady()) {
if ((millis() - time) > 1000 ) {
return;
}
}
Mirf.getData(recvData);
if (recvData[0] == buttonOpen) {
noTone(speakerPin);
} else {
tone(speakerPin, 442);
}
delay(100);
}
全体シーケンスは下記のような感じ。
これで、クライアント側のタクトスイッチを押していると、押している間、サーバ側のピエゾスピーカーから442Hzが流れるはずで、スイッチを離すと音が止むはずです。
使わない理由
- 日本国内で無線を何らかの形で使い、発信する場合、「無線局」となる。
- 無線局になるには免許及び登録が必要となる。
- 例外として、ラジコンやワイヤレスマイク等の微弱電波がある。
- 微弱電波とは下記の通り。(総務省HPより引用)

- 今回買った2.4GHz帯だと、35μV/mの電界強度以下であれば、免許はいらない。
- 免許はいらないが、微弱電波(35μV/m以下)である事を証明する必要がある。
- 証明するため、結局は技適マークが必要。
以下は、総務省 電波利用ホームページより引用。
技適マークが付いていない無線機を使用したらどうなりますか?
一部の無線機を除いて、技適マークが付いていない無線機を使用すると、電波法違反になる恐れがあります。
また、技適マークが付いていても無線局を開設するためには総務大臣の免許を受けなければならない無線機(アマチュア無線、パーソナル無線など)がありますので、使用には十分ご注意下さい。
(免許を受けずに無線局を開設若しくは運用した場合は電波法違反となり、1年以下の懲役又は100万円以下の罰金の対象となります。また、公共性の高い無線局に妨害を与えた場合は、5年以下の懲役又は250万円以下の罰金の対象となります。)
所感
前時代的な法律のせいで、のびのびと実験できず、若干のストレス。総務省のwebサイト 不法無線局の特徴・影響・障害事例を見てみると、摘発事例はほとんどが下記のような感じで、個人利用の微弱電波利用については問題が無いように思える。
技適対応のモジュールだと、有名どころでは東京コスモス電機(TOCOS)のTWE-Lite DIPなんかがありますが、aitendoで1,500円します。日本語マニュアルが豊富で、高機能ですが。
以上、よろしくお願い致します。
関連記事
-
-
クオーツ時計を100倍速&リバースモード付きに改造してみた。
お疲れ様です。高橋です。 今日、奥さんから壊れた時計を貰いました。電池を入れ替え …
-
-
FM音源 FB-01の動作試験
お疲れ様です。高橋です。 先日、会社の大大大先輩からFB-01を貰ったので、本日 …
-
-
100均で買ったボリュームコントロール付きステレオ延長コードを、バブ型スピーカーに搭載してみた。
お疲れ様です。高橋です。 先日作ったバブ型スピーカーですが、実は裏側がとても汚い …
-
-
YMZシールドの基板設計
お疲れ様です。 前に基板化したYMZ294をさらにシールド化したい事をPOSTし …
-
-
USBやDCジャックからの5Vを3.3Vにする物を作った
お疲れ様です。高橋です。 前にesp8266の動作試験を行った時、とても面倒だと …
-
-
YMZシールドの作成 #1
お疲れ様です。高橋です。 実体配線図を書き起こしておいたYMZシールドの半田付け …
-
-
猫×おもちゃ×動画×アプリ
お疲れ様です。高橋です。 金魚水槽 先日フラフラとネットサーフィンしていて目に入 …
-
-
Arduino+EEPROM+YMZ294で曲の抜き差し
お疲れ様です。高橋です。 I2Cの256KBitなEEPROMに曲データを書き込 …
-
-
Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験
お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …
-
-
耳コピを簡単にするミキサー構想
お疲れ様です。高橋です。 私が普段耳コピをする時は、iPhoneで音楽を鳴らしな …
- PREV
- 遅刻の言い訳アプリのDL数が急増した原因
- NEXT
- ファイナルファンタジー2 戦闘テーマ1







