HOME | Raspberry Pi | 時事 | ビジネス書籍紹介 | 2022-12-01 (Thu) Today's Access : 89 Total : 559764. Since 10 Sep. 2019

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プロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2020.04.24 Twitter-LINE連携によるビジネス活用
2021.02.27 TweLite Neural Network 第1回環境設定
2021.07.24 形態素解析 TreeTagger


Interface 2022年12月号
◎実用レベルのデータ・サーバを個人で作れる時代 ☆特集 [AWS/ブロックチェーン/Docker]IoTデータ・サーバ入門
◎モニタリングはもちろん異常検知や画像認識,外部装置駆動まで!


日経Linux 2022年11月号
【特集1】「Ubuntu 22.04 LTS」リリースの今こそ! Windowsを捨てない!Linuxへの引っ越し術
【特集2】話題のChromeOS Flexなど8種を厳選! 軽量Linux TPO別 選択&活用術
【特集3】 Linuxで旧型PCを復活! ファンレスの静音・小型PC「Ubuntu Server 22.04 LTS」でオンラインストレージサーバー化
【特集4】 個人なら無料で使える! Red Hat Enterprise Linux 9を触ってみよう


トランジスタ技術 2022年11月号
★特集◎科学の魅力をとことん追求!計測,パワー応用技術 ☆実験サイエンス!超音波×エレキの世界


ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。

地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる! 地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開

ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。 Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。 専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。 本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。

攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。

ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS… 全WEB媒体で効果バツグン! カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術

プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc. 世界のトップはなぜプログラマーなのか?

Arduino Nano 33 IoT


サンハヤト モジュール MM-TXS01


ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場! 高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。 DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。 作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。

DIPスイッチで動作電圧を3.3Vと5Vに切り替えられるUNO互換ボード
KEYESTUDIO Plus Board for Arduino UNO R3 with Type-C USB Cable, 3.3V 5V 1.5A Output Current, More Powerful Controller Board USB-シリアルチップ:CP2102 / 動作電圧:5Vまたは3.3V(DIPスイッチ制御)/ 外部電源:DC 6-15V(9V推奨)/ デジタルI / Oピン:14(D0〜D13)/ PWMチャネル:6(D3 D5 D6 D9 D10 D11)/ アナログ入力チャネル(ADC):8(A0-A7)/ DC出力機能の各I / Oポート:20 mA / 3.3Vポートの出力能力:50 mA / フラッシュメモリ:32 KB(うち0.5 KBはブートローダーによって使用されます)/ SRAM:2 KB(ATMEGA328P-AU)/ EEPROM:1 KB(ATMEGA328P-AU)/ クロック速度:16MHz / オンボードLEDピン:D13

Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。 この本では,ベイズ統計学のきほんをやさしく紹介していきます。

白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81


サンハヤト TTW-203 テストワイヤ
ブレッドボードとスルーホール間の接続に便利なワイヤですブレッドボード用のオスピンと基板のスルーホール用のバネ性のある端子を組み合わせたテストワイヤです

無水エタノールP 500mlx2個パック(掃除)


ケイバ(KEIBA) マイクロニッパー MN-A04


熱収縮チューブφ1.5
印字無しで綺麗☆ シュリンクチューブ 絶縁チューブ 防水 高難燃性 収縮チューブ (2m, ブラック(黒))


サンハヤト SAD-101 ニューブレッドボード


白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02


【Amazon.co.jp限定】エーモン 電工ペンチ 全長約255mm (1452)


[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠


Copyright © 2011-2022 Sarako Tsukiyono All rights reserved®.