NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

無線マイコンの使い方(TWE-LITE)無線マイコンとは編

イメージ 1
超簡単!無線マイコンモジュールTWE-LITE DIP

 マッチ棒がトレードマークのTWE-LITE DIP(トワイライト・ディップ)は、趣味の電子工作やDIY等で無線通信を簡単に使用できる様に開発されたモジュールです。
 初期状態で単純なアナログやデジタル信号であればプログラムの設定変更無しにいきなり無線通信できちゃいます!
 そんな簡単便利な無線マイコンモジュールを使ってみました
 

1. IoTと無線通信

1.1 IoTとは?
 最近話題のIoT(アイオーティー、Internet of Things、モノのインターネット)とは、パソコンやプリンター等のIT関連機器とは異なり、従来はインターネットに接続されることが無かったモノをインターネットに接続する事を言います。

1.2 無線通信規格の色々
 IoTに使用される無線通信には「Wi-Fi」・「Bluetooth」・「ZigBee」等、表1に示す様な各種規格が有り、それぞれの特徴に応じて使い分けられています。
 
表1:主な無線通信規格と性能
\ ZigBee Bluetooth Wi-Fi
読み ジグビー ブルートゥース ワイファイ
IEEE規格名 IEEE802.15.4 IEEE 802.15.1 IEEE 802.11ac
帯域 2.4GHz 2.4GHz 5GHz
通信距離 数百m~数km程度 数mから数十m程度 数m~数百m程度
同時使用可ch数 16ch 79ch 実質3ch(11ch)
通信速度 最大250kbps 最大24Mbps 最大6.9Gbps
電力消費 極小(1.5μA~30mA)
※2016.09.06 NOBのArduino日記!調べ

1.3 ZigBee
 IoTによってモノが入出力する情報量は少ない事が多く(ドアの開閉、電灯のON・OFF、気温・湿度等の観測装置等)、また全てのモノが電源に接続されているわけではない事からコイン電池程度で年単位で動作し続ける低消費電力、また長い通信距離等の要求が有ります。
 これら「少ない通信量」・「低消費電力」・「長い通信距離」条件に対して表1の中で「ZigBee」が最も適している無線通信規格と言えます。
 

2. TWE-LITE

2.1省エネ性能
 TWE-LITE無線通信規格ZigBeeを採用している事から省エネな無線マイコンです。設定(60秒毎通信)によってはCR2032コイン電池1個(3V,220mAh)で計算上16年も通信し続けてくれます!

2.2 通信距離
 また通信距離についても表1に示す主な無線通信規格の中では最も長く、専用のアンテナ(TWE-AN-022)を使用する事で最大4kmを超える通信が可能(間に中継局を3つ入れられるので理論上16km以上?)です!

2.3 外観
 TWE-LITE DIPの外観及び寸法は図1の通り親指サイズで非常にコンパクトです。
 写真中央の15mm角のチップがTWE-LITE本体で、さらに小さく作りたい方用にこのチップ単体でも購入可能です。
 このチップの中に無線機能に加え32ビットのRISCマイコンを内蔵している事から外部に制御用のマイコンが不要と言う大きな利点が有ります。
イメージ 3イメージ 2
図1:製品外観及び寸法(SDS)

2.4 種類
 またTWE-LITE DIPには使用されるアンテナ別に表1に示す3種類が市販されています。他にもチップ単体のTWE-LITE・USB端子を備えたMoNoStick・加速度センサーを備えたTWE-LITE-2525A等バリエーションが豊富です。
 
表2:TWE-LITE DIPの種類
項目 アンテナ型番 最大通信距離 外観
2次元マッチ棒アンテナ 基板に実装 約0.5km 図1左
マッチ棒アンテナ TWE-AN-4208 約1km 図1右
UFLコネクタ版 TWE-AN-022等 約4km 各種UFLアンテナ
 

3. プログラム

 TWE-LITEは無線機能を持ったマイコンですので、マイコンには勿論プログラム(アプリ)を書き込むことが可能です。
 
3.1 公開アプリ
 モノワイヤレス株式会社様のサイトで表3に示す6種類のアプリが無償で公開されています。 ※東京コスモス電機㈱さんから変わった様です。
 個人的にはこの中でシリアル通信アプリとRCアプリに興味津々です!
 これが有れば、それこそなんでもラジコンの送信機に出来そう・・・初代ゲームボーイをラジコンの送信機にしたらカッコ良さそうです
 
表3:TWE-LITE用アプリ
項目 内容
超簡単!TWEアプリ TWE-LITEに標準インストールされているアプリです。
デジタル4ポート、アナログ4ポート、シリアル、I2Cを
使用出来るオールインパッケージな反面、処理速度や
応答性、省電力性は低い。
無線タグアプリ 超省電力センサータグ向けアプリです。電池での長期
稼動やTWE-EH(環境発電)での稼動を考えた低消費
電力を追求しています。コイン型電池で動作可能です。
リモコン通信アプリ リモコン通信に特化したアプリです。最大12ポートの
オン・オフ制御を行えます。TWE-LITEをリモコンとし
て使用する際に最適なアプリです。ボタンの長押しや
親機と子機のペアリング等に対応しています。
シリアル通信アプリ UARTシリアル通信に特化したアプリです。透過的な
データ通信とコマンドベースのデータ通信の両方に対応
しています。パソコンやマイコンにUARTシリアル接続を
してTWEシリーズを制御する場合に最適なアプリです。
RCアプリ RC(ラジオコントロール)に特化したアプリです。
サーボモーターの制御やDCモーターの回転スピードや
正逆転制御が行えます。
アナログ通信アプリ オーディオ・アナログ信号通信に特化したアプリです。
最大8Khzのサンプリングレート(標本化周期)で
アナログ入力しこれをADPCM圧縮し(非圧縮伝送も可能
最大4Khz)無線伝送し、PWM 出力します。
モノワイヤレス株式会社様のページから一部引用させて頂きました
 
3.2 自作アプリ⁉
 TWE-SDKと言うソフトウェア開発環境が無償で提供されており、無線マイコンに書きこむアプリを自作する事も可能との事です。
 TWE-LITEでLチカするプログラム例(図3)が紹介されておりました。

イメージ 4イメージ 5
図2:ToCoNet SDK マニュアル (2014-06) のP82,83動作フロー
 
/*
   Test01.c
   TWE-Lite のデジタル出力 4 (DO4) ポートの Lo, Hi を一定周期でトグルする
   いわゆる "Lチカ" 用
   ネットワーク通信は行わない
   2015 KLab Inc.
*/

#include <AppHardwareApi.h>  // NXP ペリフェラル API
#include "utils.h"           // ペリフェラル API のラッパなど
#include "ToCoNet.h"

#define DO4  9 // デジタル出力 4

// ユーザ定義のイベントハンドラ
static void vProcessEvCore(tsEvent *pEv, teEvent eEvent, uint32 u32evarg)
{
  // 1 秒周期のシステムタイマ通知
  if (eEvent == E_EVENT_TICK_SECOND) {
    // DO4 の Lo / Hi をトグル
    bPortRead(DO4) ? vPortSetHi(DO4) : vPortSetLo(DO4);
  }
}

//
// 以下 ToCoNet 既定のイベントハンドラ
//

// 割り込み発生後に随時呼び出される
void cbToCoNet_vMain(void)
{
  return;
}

// パケット受信時
void cbToCoNet_vRxEvent(tsRxDataApp *pRx)
{
  return;
}

// パケット送信完了時
void cbToCoNet_vTxEvent(uint8 u8CbId, uint8 bStatus)
{
  return;
}

// ネットワークイベント発生時
void cbToCoNet_vNwkEvent(teEvent eEvent, uint32 u32arg)
{
  return;
}

// ハードウェア割り込み発生後(遅延呼び出し)
void cbToCoNet_vHwEvent(uint32 u32DeviceId, uint32 u32ItemBitmap)
{
  return;
}

// ハードウェア割り込み発生時
uint8 cbToCoNet_u8HwInt(uint32 u32DeviceId, uint32 u32ItemBitmap)
{
  return FALSE;
}

// コールドスタート時
void cbAppColdStart(bool_t bAfterAhiInit)
{
  if (!bAfterAhiInit) {
  } else {
    // ユーザ定義のイベントハンドラを登録
    ToCoNet_Event_Register_State_Machine(vProcessEvCore);
    vPortAsOutput(DO4);
  }
}

// ウォームスタート時
void cbAppWarmStart(bool_t bAfterAhiInit)
{
  return;
}

図3:TWE-LITEでLチカプログラム
DSAS開発者の部屋より引用させて頂きました
 

4. まとめ

  プログラム動作フロー中最後の「// ユーザ定義のイベントハンドラ」でLチカしている様ですが見慣れない関数がいっぱいで良く分かりません。
 マニュアル(206ページ)をさっと見てそっと閉じました
 やはり専門家が作られたアプリが間違いないですね!
 と言う事で次回は「超簡単!TWEアプリ」を使って無線で離れたLEDをチカチカしてみたいと思います
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【無線マイコンの使い方】目次に戻る