【PPM2018】Xbeeセンサダイレクト遅すぎて精度悪い<CPUを追加>

昨日、Xbee APIモードで受信プログラム動作したのですが、本日は、CPUを変えたり4M変動を与えたら、XBEEからのパケットのシリアル受信データが規定数読み込まなくなって、心拍データが拾えなくなりました。デリミタが0x7eなので、直前の3文字を抜き取ればいいのですが、どうも読み飛ばしが発生してます。
XBEEの送受信で化けているのかと思ってXCTUでモニタするとなんと仕様通りにパケットフレームがでていました。
マイコン側の受信処理が原因だと分かったのですが、もっと、根本的な点に気づきました。XBEEの最高周期が40msecと遅い点です。これで心拍数の波形を転送してマイコンで処理すると

100bpmでの誤差を計算すると±7bpmも発生します、
心拍数があがるほど誤差が大きくなりますので、これはまずいということで、XBEEダイレクトをやめて、ヘルメットにもCPUと
XBEEと電池を装着しなければならなくなりました。

●親機用子機用CPU選び
過去に触ったことがあるCPUで在庫が複数個あるものをあげてみるとどれも一長一端で選択にまよいます。

 在庫CPU メリット デメリット
子機用 LPC81010個 超小型
低電力
機能最小
プログラムサイズ制限
書込みしにくい
子機用 ATMEGA
328PU
(内臓8MHz)3個
超小型
単体で動作
低電力
機能はArduino Uno
書込みが面倒
子機用  Arduino
mini2個
 小型
単体動作
 USB無い
書込みにIF必要
子機用  Arduino
nano 互換機3個
 小型
単体動作
 中華ドライバが必要
で書込み環境面倒
子機用  Arduino
Pro Micro2個
 小型
単体動作
USB付
HID機能付き
 RESETスイッチを毎回押しながら書き込まないとならない
子機用  LPC8242個(1個故障)  小型
高機能
高価格
壊れやすい
子機用  LPC 11U351個  小型
低電力
シリアル1chしかないのでデバッグが大変
子機用  TY51822r3  小型
低電力
BLE付
mbedバージョン違いで動作しない
親機用 NUucleo
L432KC2個
中型
高性能
使い勝手よい
ポート数少ないのでXbeeとBlueToothを使うとUSBシリアルデバッグできない
親機用 LPC17692個 LPC1768コンパチだが大きい安い、シリアル3ポートある点が好ましい でかい、電力大
親機用 Nucleo
F3032個
小型
高性能
シリアルポートが3個ある
ピン数がすくない
親機用 Nucleo
F446RE2個
シリアルポートがたくさんあるので計測用CPUとしては最適 電力食うでかい

●選定
順番として、
■子機
ヘルメットCPUは、電池寿命なので
ATMEGA 328PUでトライしてだめだったら
Arduino miniだめだったらLPC11U35

■親機
F303Kで3ポートシリアルが動作すれば決まり
だめならLPC1969にトライしてだめならNucleo F446REと
バカでかくなります。

カテゴリー: Xbee

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です