TweLite Neural Network 第1回環境設定
2021.02.27 / 2021.06.15更新
2021.06.15 モノワイヤレス株式会社様より、TWELITE_Stage_BIN_RasPi 1.0.6を提供いただきました。

YouTube でも紹介しています。画像をクリックすると再生できます。
今回は、大手SNS(ソーシャルネットワーキングサービス)に頼らずに情報を伝達・公開する手段を考察してみました。
第1回では、無線機能内蔵マイコン TWE-Lite(トワイライト)とラズベリーパイとの間でのシリアル通信を確立します。
■TWE-Lite-Dip(トワイライトディップ)
TWE-Lite(トワイライト)はモノワイヤレス株式会社から販売されている無線機能を内蔵したマイコンです。
IEEE802.15.4規格の2.4GHz帯を利用して通信します。技適も取得済みです。
TWE-Lite-Dip-WA
無線規格:IEEE802.15.4
送信出力:2.5dBm
受信感度:-95dBm
送信電流:15mA
受信電流:17mA
スリープ電流:0.1μA(ディープスリープ)
動作電圧:2.3~3.6V
動作温度:-40~85℃
電波認証:ARIB STD-T66(技適)
モノワイヤレス株式会社
発売日 2013/06/12
TWE-Lite-Dip には、Blue(1mW)と高出力タイプRed(10mW)の2種類の製品があります。
限界通信距離(障害物や電波ノイズが無い理想的な空間)はBlueで1Km、Redで3Kmになります。
実用的な通信距離はその1/3~1/4程度かと思われます。
マッチ棒のようなアンテナが付いているので、ここではマッチ棒基地局と呼ぶことにします。

このマッチ棒基地局をニューラルネットワークのように張り巡らせることにより、情報の伝達を行います。
これを、TweLite Neural Network(トワイライト・ニューラルネットワーク)と名付けました。
具体的なマッチ棒基地局はTWE-Lite-DIPとRaspberry Piが対になって構成されており、
ニューラルネットワーク上を流れるデータの監視制御および自らのコンテンツの発信を行います。
さらに、Raspberry Pi をGateway Server として活用することにより、遠隔地に存在するマッチ棒基地局とをインターネットを介して
ダイレクトに結び付けます。
また、基地局を持たない一般の方でも、Raspberry Pi をWEBサーバーとした情報の閲覧・投稿も可能です。
実現するためには多くの方の参加が必要になりますので、あくまで構想として捉えてください。
■TWE-Lite入門
基礎から説明するのは無理なので、下記のような書籍を参考にしてください。
※この書籍は現在の設定と異なっている箇所があります。
TWE‐Lite(トワイライト)ではじめるカンタン電子工作―「無線システム」が「つなぐ」だけで出来る! (amazon)
TWE‐Liteでの無線回路の基本からはじめます。パソコンと組み合わせて使う応用として、「音声合成LSIで喋らせる」「液晶モジュールに文字を表示する」例から、TWE‐LiteのマイコンのROMを書き換えて、「離れた場所のMIDI音源を鳴らす」「マトリックスLEDに文字を表示する」といった例まで紹介します。
■テスト環境構築
テストには2個の TWELITE DIP が必要です。
Raspberry Pi Zero WH を使用する場合は、
1つ目のTWELITEには、GPIO端子を用いて、UART接続、2つ目のTWELITEはUSB端子を用いて,USB-シリアル変換モジュールを介して接続します。

TWELITE R2 はTWELITE DIPなどのROM書換えに使用しますが、USB-シリアル変換としても利用できます。
TWELITE R2 (トワイライターR2) DIP/PAL/2525用USBアダプター
モノワイヤレス社の無線モジュール。
TWELITE DIP/PAL/2525に書き込まれたアプリの詳細設定(インタラクティブモード)や書き換えに使用します。
USBデバイスドライバ(FTDI)がWindows、Linux、Mac OS X、Android等の主要OSに対応しています。
USBコネクタはType-Cになっています。
■UART(Universal Asynchronous Receiver/Transmitter/ユーアート)の有効化
ラズベリーパイには、高機能なPL011とmini UARTの2つのシリアル通信機能があります。
$ ls -l /dev/serial*
lrwxrwxrwx 1 root root 5 1月 20 17:19 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 1月 20 17:19 /dev/serial1 -> ttyAMA0
初期状態では、Mini UARTがGPIO14,15にマッピングされています。
PL011に対してmini UARTには次のような機能制限があります。
・ブレークを検出できない
・フレームエラーを検出できない
・パリティビットを使えない
・タイムアウト割り込みを使えない
・DCD, DSR, DTR, RI信号がない
高機能なUART機能PL011をGPIO14,15にマッピングします。
$ sudo vi /boot/config.txt
# Enable UART
#enable_uart=1
dtoverlay=pi3-miniuart-bt, core_freq=250
$ sudo reboot
$ ls -l /dev/serial*
lrwxrwxrwx 1 root root 7 1月 30 11:07 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 1月 30 11:07 /dev/serial1 -> ttyS0
PL011 UARTがGPIO14,15にマッピングされ、高機能なUART機能が使用可能になります。
ちなみに、Raspberry Pi 4 では、PL011が4つ追加され、全部で5つあります。
■シリアルコンソールの無効化
/dev/ttyAMA0 や /dev/ttyS0 は、 consoleとししても使われているため、無効化しないと、オンチップのUARTを利用できません。
$ sudo vi /boot/cmdline.txt
console=serial0,115200 console=tty1 root=PARTUUID=c6941854-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
console=serial0,115200 という部分だけを削除します。
■シリアルライン監視の無効化
gettyが/dev/ttyAMA0や/dev/ttyS0を監視して、横取ろうとするので無効化します。
$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo systemctl disable serial-getty@ttyAMA0.service
$ sudo reboot
■シリアル通信のフロー制御
今回は関係ないのですが、シリアル通信のハードウェア・フロー制御も有効にしておきます。
$ sudo vi /etc/rc.local
....
gpio -g mode 16 alt3 ← 追加
exit 0
$ sudo sh /etc/rc.local
■TWE-Lite DIP ピン配置

■シリアル通信用配線
ラズベリーパイと、TweLite DIP を接続します。
| RasPi | - | TWELite |
| 3v3 [1] | - | [28] VCC |
| GND [6] | - | [1] GND |
| TXD [8] | - | [3] RX |
| RXD [10] | - | [10] TX |

TweLite DIP を基板上に配置して、配線を引き出しています。

あとで、TweLite R2 を使って、TweLite DIPへのROMの書き換えを行うので、TweLite DIPは基板にはハンダ付けしません。
TweLite DIP のピンを基板のスルーホールに通して後ろ側でそのピンをメスピンケーブルで基板上の端子と接続しています。
■超簡単!標準アプリ(App_Twelite)

工場出荷時には、超簡単!標準アプリ(App_Twelite)がROMに書き込まれています。
TweLiteに付属しているデジタルポート、アナログポート、シリアル、I2C端子にセンサー類を繋いで、TweLite同士での制御が可能です。
TWE-Lite Neural Networkにはこのアプリは使用しませんが、接続確認のために、アプリにアクセスしてインタラクティブ・モードに切り替えてみます。
TweLite とのシリアル通信には、PlatformIOのdevice monitorを使っていますが、minicomなどでも構いません。
$ pio device monitor -p /dev/ttyAMA0 -b 115200
--- Miniterm on /dev/ttyAMA0 115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
[ENTER] ← TweLiteとの接続直後になにも入力せずに[ENTER]キーを押します
※インタラクティブモードに切り替わらない場合には、+++と打ち込んでみてください。
?[2J?[H--- CONFIG/MONO WIRELESS TWELITE DIP APP V1-08-1/SID=0x81xxxxxx/LID=0x00 ---
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (18)
x: set Tx Power (03)
t: set mode4 sleep dur (1000ms)
y: set mode7 sleep dur (10s)
f: set mode3 fps (32)
z: set PWM HZ (1000,1000,1000,1000)
o: set Option Bits (0x00000000)
b: set UART baud (38400)
p: set UART parity (N)
---
S: save Configuration
R: reset to Defaults
インタラクティブモードでは、アプリの詳細設定を行うことができます。
[Ctrl]+[c]で抜けます。
■TWE-Lite ROMの書き換え
TWE-Lite出荷時には。「超簡単!TWE標準アプリ」がインストールされています。
これを「シリアル通信専用アプリ」に書き換えます。
シリアル通信アプリ(App_UART)
モノワイヤレスから提供されている「シリアル通信アプリ(App_Uart)」は、UART(シリアル)通信に特化したアプリケーションです。
シリアル通信アプリ(App_Uart)では、通信の用途や目的にあわせて、チャットモード、透過モード、書式モードがあります。
今回は透過モードを使用します。
詳細 → MONO WIRELESS 透過モード
左側のROMライター・TWELiteR2 に TWELite DIP を差し込みます。

TweLite の Type-CのUSB端子とラズパイをケーブルで接続します。
TWELITE STAGE(トワイライトステージ)ダウンロード
TWELITE STAGEはTWELITEを動作させるためのアプリのビルド、書換、設定、そして、データを表示する機能を統合した評価開発環境です。
TWELITE STAGE APPはTWELITE STAGE SDKに含まれています。まずはTWELITE STAGE SDKをダウンロードします。
Raspberry Pi版 TWELITE STAGE のダウンロード
2021.06.15 TWELITE_Stage_BIN_RasPi 1.0.6
バイナリ配布
https://github.com/monowireless/TWELITE_Stage_BIN_RasPi
ZIPダウンロード
https://github.com/monowireless/TWELITE_Stage_BIN_RasPi/releases
$ mkdir ~/TWELITE
$ cd ~/TWELITE
$ wget https://mono-wireless.com/download/stage/MWSTAGE-2020-12_raspi.zip
$ sudo apt install unzip
$ unzip MWSTAGE-2020-12_raspi.zip
ダウンロードしたファイルを解凍すると必要なファイルが一式入ったMWSTAGEというフォルダができます。
$ cd MWSTAGE
$ ls -l
drwxr-xr-x 2 pi pi 4096 12月 2 21:22 BIN
drwxrwxr-x 9 pi pi 4096 12月 4 12:39 MWSDK
drwxr-xr-x 4 pi pi 4096 12月 7 08:16 TWELITE_Stage
-rwxr-xr-x 1 pi pi 8698956 12月 7 08:15 TWELITE_Stage.run
-rw-r--r-- 1 pi pi 3840 10月 12 16:28 TWELITE_Stage.sav
drwxr-xr-x 4 pi pi 4096 12月 7 08:16 Tools
drwxr-xr-x 2 pi pi 4096 11月 20 18:24 log
-rwxr-xr-x 1 pi pi 1516 12月 4 16:53 readme-j.txt
$ cd ~/TWELITE/MWSTAGE/TWELITE_Stage/INSTALL/raspi
$ sudo ./set_udev_sudo.sh
### copy udev rule file 51-ftdi.rules.
'51-ftdi.rules' -> '/etc/udev/rules.d/51-ftdi.rules'
### reload udev rules.
$ cd ~/TWELITE/MWSTAGE
$ sudo ./TWELITE_Stage.run
TWELITE_Stage.run: libftd2xx/idtable.c:75: IdTable_add: Assertion `idt != ((void *)0)' failed.
TweLiteR2を認識できないようです。
Windows版によるROM書き換え
先に進めたいので、Windows10版を使います。
https://mono-wireless.com/download/stage/MWSTAGE-2020-12_win10.zip
解凍してできたMWSTAGEディレクトリの中の TWELITE_Stage.exe を実行します。

1:TWELITE R2 (R257N02A)の 1 を選択

2:アプリ書換 を選択

1: BINから選択

6: App_Uart_BLUE_L1304__V1-4-1 を選択

[ENTER]を押すとインタラクティブモードになります。
※ROM書き換えが完了すれば、TWELITE MWSTAGE を使わずに、UART接続などから、インタラクティブモードにはいって各種設定を行うこともできます。
その場合は接続超後に+++と打ち込むと、インタラクティブモードになります。
■TWELite通信設定
TWELiteの通院設定は、インタラクティブモードで行います。
Ref. インタラクティブモード
set Device ID([i]を押す)

Input Device ID (0:parent, 1-100: child) : 0 ← 親機を指定
TweLite Neural Network では、すべてのTweLite を親機に指定します。
set Channels([c]を押す)

Input Channel(s) (e.g. 11,16,21) : 13,14,15 ←3チャンネルを指定
チャンネル番号11~26の中から、最大3チャネルまで指定可能です。複数チャネルを指定すると、電波干渉の回避に役立ちます。
set UART mode([m]を押す)

Input : D ← 透過モードを選択
透過モードでは、エコーバックやプロンプト表示が無いため、ラズパイとの通信に適しています。
Option bits([o]を押す)

Input option bits: 00000100 ← 送信トリガー文字を有効にします。
設定ビットは16進文字での入力になります。トリガー文字を有効にすると、指定したトリガー文字が入力されるまで、送信が保留されます。
set Tx Trigger([k]を押す)

Input : 0A,24,0
0A : トリガー文字にLFを指定します。
24 : パケットサイズは1~80までが指定可能で、最小パケットサイズに24バイトに設定すると、入力バイト数が24バイトを超えないと、トリガー文字は有効になりません。
0 : タイムアウトを無効にします。
トリガー文字列が入力されるまで送信を保留し、トリガー文字列が来た時点でトリガー文字列も含めた形でパケット送信を試みます。
トリガー文字列を指定すると、タイムアウトは無効になります。
Ref.透過モード(D)
save Configuration
Sを選択して、設定を保存します。
終了

画面右上にマウスを移動すると[閉]表示が現れるので、そこをクリックして終了します。
これと同様に、もう1枚用意したTweLite DIP にも、ROMの書き換えを行います。
■TWELite同志での通信テスト


パソコン上でTeraTermを2つ立ち上げて、ラズパイと接続します。

この際、TeraTermの送受信時の改行コードをLFに設定します。
UARTとUSBにより、2つのTWELite DIPに接続します。
片方のTeraTermから、UARTにより、TweLite DIP に接続
$ pio device monitor -p /dev/ttyAMA0 -b 115200 --encoding Latin1 --eol LF
もう一方のTeraTermから、USBにより、TweLite DIP に接続
$ pio device monitor -p /dev/ttyUSB0 -b 115200 --encoding Latin1 --eol LF
文字エンコードを Latin-1、改行コードをLF(0x0A)に指定しています。
Latin-1は、ASCIIコードを8ビット拡張しています。

縦に2つ並んでいるTeraTermの上段が、TWE-Lite DIP にUART接続している画面、下段が、USB接続している画面です。
上段のTeraTermで文字を入力して、{Enter]を押して改行[LF]コードを送信すると、
下段のUSB接続している画面に入力内容が表示されます。
逆に下段で文字を打ち込むと、上段に表示されます。
TWELite では1回に送信できる最大バイト数は80バイトです。第2回では、80バイトを超える漢字を含む文字列の送受信を制御します。
■補足:USB-シリアル変換 FT232RL
TWELITEのROM書き換えの場合を除き、USBシリアル変換モジュールを使って、ラズパイとTWELITEを接続して利用することもできます。

◇FT232RL USBシリアル変換モジュール
定番のFT232を使用したUSBシリアル変換モジュールです。
・通信速度:300bps~460kbps
・256バイト受信バッファ、128バイト送信バッファ内蔵
・電源はホストからUSBで供給されます。
・仮想COMポートによりCOMポートとして使用できます。
・RS232CではなくTTL(CMOS)レベルでの変換を行います。
・4本のデジタルI/O
・USBミニB端子(miniB)
・基板サイズ:34x19mm
株式会社秋月電子通商
| FT232 | - | TWELite |
| 3v3 [19] | - | [28] VCC |
| GND [7] | - | [1] GND |
| TXD [1] | - | [3] RX |
| RXD [5] | - | [10] TX |
■参考文献
・ハードウェア技術者のスキルアップ日誌 - ラズパイでUART通信を行う
・Raspberry Pi3 や Zero Wで オンボードのシリアル (UART) を使う
・TWE-LITE用USBシリアル通信アダプタの自作
|
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
たいていのことは100日あれば、うまくいく。長田英知著
「時間がなくて、なかなか自分のやりたいことができない」
「一念発起して何かを始めても、いつも三日坊主で終わってしまう」
「色んなことを先延ばしにしたまま、時間だけが過ぎていく」
そこで本書では、そんな著者が独自に開発した、
まったく新しい目標達成メソッド「100日デザイン」について、
その知識と技術を、余すところなくご紹介します。
まんがで納得ナポレオン・ヒル 思考は現実化する
OLとして雑務をこなす日々に飽き足らず、科学者だった父が残した薬品を商品化すべく、起業を決意した内山麻由(27)。彼女はセミナーで知り合った謎の女性からサポートを得ながら、彼女と二人三脚でナポレオン・ヒルの成功哲学を実践し、さまざまな問題を乗り越えていく。
ヒル博士の<ゴールデンルール>に従い、仕事に、恋に全力疾走する彼女の、成功への物語。
今日は人生最悪で最高の日 1秒で世界を変えるたったひとつの方法 ひすいこたろう著
偉人の伝記を読むと、最悪な日は、不幸な日ではなく、新しい自分が始まる日であることがわかります。最悪な出来事は、自分の人生が、想像を超えて面白くなる兆しなのです。偉人伝を読むことで、このときの不幸があったおかげで、未来にこういう幸せがくるのかと、人生を俯瞰する視線が立ち上がるのです。
ご飯は私を裏切らない heisoku著
辛い現実から目を背けて食べるご飯は、いつも美味しく幸せを届けてくれる。
29歳、中卒、恋人いない歴イコール年齢。バイト以外の職歴もなく、短期バイトを転々とする日々。ぐるぐると思索に耽るけど、ご飯を食べると幸せになれる。奇才の新鋭・heisokuが贈るリアル労働グルメ物語!
【最新版Gemini 3に対応!】できるGemini (できるシリーズ)
Geminiを「最強の知的生産パートナー」として使いこなすための、実践的なノウハウを凝縮した一冊です。
基本的な操作方法から、具体的なビジネスシーンでの活用、日々の業務を自動化するGoogle Workspaceとの連携、さらには自分だけのオリジナルAIを作成する方法まで余すところなく解説します。
Rustプログラミング完全ガイド 他言語との比較で違いが分かる!
Rustの各手法や考え方を幅広く解説!
500以上のサンプルを掲載。実行結果も確認。
全24章の包括的なチュートリアル。
ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS…
全WEB媒体で効果バツグン!
カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術
小型で便利な Type-C アダプター USB C オス - USB3.1 オスアダプター
Type-C端子のマイコンボードをこのアダプタを介して直接Raspberry Piに挿すことができます。ケーブルなしで便利なツールです。
Divoom Ditoo Pro ワイヤレススピーカー
15W高音質重低音/青軸キーボード/Bluetooth5.3/ピクセルアート 専用アプリ/USB接続/microSDカード
電源供給USBケーブル スリム 【5本セット】
USB電源ケーブル 5V DC電源供給ケーブル スリム 【5本セット】 電源供給 バッテリー 修理 自作 DIY 電子工作 (100cm)
|