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プロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
Arduinoで学ぶ組込みシステム入門(第2版)
●Arduinoを使って組込みシステム開発を理解する
・ハードウェアやソフトウェアなどの基礎知識/
・設計から実装までを系統的に説明するモデルベース開発/
・Arduinoを用いた実際の開発例
最新 使える! MATLAB 第3版
◆◆すぐに「使える!」 全ページフルカラー!◆◆
・MATLAB R2022bに対応し、解説もより詳しく!/
・コマンド・スクリプトの例が豊富で、動かして学べる!/
・超基本から解説。これから使いはじめる人にぴったり!/
・全編フルカラー、スクリーンショットも豊富!
Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
1.システム構築をインフラから始めるには/
2.ネットワークを構築する/
3.サーバーを構築する/
4.Webサーバーソフトをインストールする/
5.HTTPの動きを確認する/
6.プライベートサブネットを構築する/
7.NATを構築する/
8.DBを用いたブログシステムの構築/
9.TCP/IPによる通信の仕組みを理解する
C言語は第二の母国語: 独学学生時代から企業内IT職人時代に培った、独立のための技術とノウハウ 平田豊著
学生時代から独学でプログラミングをはじめ、企業内でデバイスドライバを開発し、そして独立後もたくさんのアプリケーション開発や技術書制作に携わってきた著者。その筆者が大事に使い続ける「C言語」の“昔と今”について、気づいたことや役立つ知識、使ってきたツールなどについて、これまで記してきたことを整理してまとめました。
本書では、現役プログラマーだけでなく、これからプログラミングを学ぶ学生などにも有益な情報やノウハウを、筆者の経験を元に紹介しています。
1冊ですべて身につくJavaScript入門講座
・最初の一歩が踏み出せる! 初心者に寄り添うやさしい解説
・最新の技術が身につく! 今のJavaScriptの書き方・使い方
・絶対に知っておきたい! アニメーションとイベントの知識
・プログラミングの基本から実装方法まですべて学べる
図解! Git & GitHubのツボとコツがゼッタイにわかる本
ソフトウェア開発では欠かすことのできないGit、GitHub。
これからGit、GitHubを使いたいという入門者の方でも、実際に手を動かしながら使い方を学べます。
C自作の鉄則!2023 (日経BPパソコンベストムック)
メーカー製のパソコンはスペックが中途半端で、自分が本当に欲しい機種がない――。そう思っている人には、ぜひ自作パソコンをお薦めします。自作パソコンのパーツは進化が速く、しかも驚くほど種類が豊富。価格も性能も、幅広く用意されているため、満足度100%の“自分だけの1台”を手に入れることができます。
Interface 2023年6月号
特集:第1部 フィルタ設計 基礎の基礎/
第2部 係数アプリや波形観測アプリで合点!FIR&IIRフィルタ作り/
第3部 配布プリント基板で体験!マイコンで動くフィルタ作り
日経Linux 2023年5月号
【特集 1】 AI時代の最強フリーソフト ~ 25のやりたいを実現!
【特集 2】 AWS、Azureのうまみを無料で体感!面倒なことはクラウドに任せよう
【特集 3】 新しいRaspberry Pi Cameraで遊んでみよう
【特集 4】 Linuxで旧型PCを復活! 1kg切るモバイルPCを「ChromeOS Flex」でChromebook化
ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。
地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる!
地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開
Raspberry Piのはじめ方2022
本書は、ラズパイやPicoの買い方やインストール、初期設定といった基本から、サーバー、電子工作、IoT、AIといったラズパイならではの活用方法まで、1冊でお届けします。
ラズパイをこれから始める方向けに、全36ページの入門マンガ「女子高生とラズベリーパイ」も巻末に掲載。これを読むだけでラズパイがどんなものなのか、すぐに分かって触れるようになります。
ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。
Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。
専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。
本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。
攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。
ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS…
全WEB媒体で効果バツグン!
カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術
プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc.
世界のトップはなぜプログラマーなのか?
ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場!
高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。
DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。
作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。
Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。
この本では,ベイズ統計学のきほんをやさしく紹介していきます。
白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81
無水エタノールP 500mlx2個パック(掃除)
ケイバ(KEIBA) マイクロニッパー MN-A04
サンハヤト SAD-101 ニューブレッドボード
白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02
[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠
|