BeagleBone とラップトップをシリアル接続しようとしています。これは、Arduino とラップトップで以前に成功したセットアップに似ています。問題は、マシン間で信号が通過していることは明らかですが、出力が壊れているように見えることです。
BB は、TX および RX ラインで Bluesmirf Silver に接続されています。
シリアル通信を処理するクラスを Python で作成しました。これは、BB と Arduino の間で通信するときに問題なく動作するので、ピンやマルチプレクサ モードなどの設定をうまく処理できたと確信しています。
しかし、Bluesmirf を経由する場合、同じコードは機能しません。すべてを 19200 ボー 8-N-1 に設定すると、BB からラップトップに送信されるテキストは一連の 0xE0 文字として到着します。ボー レートを変更すると (もちろん、両端で変更するように注意しています)、ラップトップに表示される内容が変更されることがあります。ただし、ほとんどの場合、バイトは高い値を持っているように見えます。19200 では、送信されたバイト数が、送信された文字数より 2 ~ 3 バイト多いことが示されています。
Serial() (つまり、PySerial) を使用して self.serPort をシリアル ポートとして定義したので、次を使用してテキストを送信します (文字列 'sendStr' として渡されます)。
self.serPort.write(sendStr.encode('utf-8', 'replace'))
「utf-8」の代わりに「ascii」を使用してみました
同じプログラムで、同じ文字列を同じ方法で Arduino に送信すると、Arduino はそれをエコー バックし、すべて正常に動作します。私を悲しませているのは、Bluesmirf を経由するものだけです。
(記録として、ラップトップの MacBook Pro では、送受信に CoolTerm を使用しています。以前のセットアップでは、Arduino が Bluesmirf を介してラップトップと通信し、ラップトップは Processing スケッチを実行していました。私はそれを試しました。 BB セットアップと同じスケッチですが、それでも喜びはありません)。
何か案は?