3

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 セットアップと同じスケッチですが、それでも喜びはありません)。

何か案は?

4

2 に答える 2

1

さて、あなたの問題は、BlueSMIRF モジュール自体の構成を省略したことが原因のようです。実際、コンピュータ側で指定するボー レートは実際には問題ではありません。任意のボー レートを使用でき、BeagleBone で使用されているものと同じである必要はないからです (ただし、ボー レートよりも高い場合)。十分に注意しないと、バッファ オーバーフロー エラーが発生する可能性があります)。

一方、Blue モジュールは、ローカル UART インターフェイス (BeagleBone にリンクされている) のボーレートが後者と同じになるように構成する必要があります。これを行うには、Roving Network のユーザー マニュアルのコマンド ガイドを参照してください (現在、ここで見つけることができます)。データシートによると、次のことが必要です。

(1) コマンドモードに入ります (電源投入後、最初の 60 秒以内にこれを行います。PC から Bluetooth モジュールへのすべての設定をリモートで行うことができます):

$$$(ASCII 13 & 10 文字は送信しないでください)

(2) 送信コマンド:

SU,19(ENTER を押します。つまり、ASCII 13 & 10 文字を送信します)

これにより、BeagleBone と同じように、BlueSMIRF の RN-42 モジュールが 19200 ボーに設定されます。表示されるエラーが表示されないようにする必要があります (コメントから推測できることから、おそらく BlueSMIRF ボーレートが 57.6 K に設定されていることが原因です)。

モジュールの設定が完了したら、モジュールをリセットする必要があることに注意してください。

于 2012-09-01T04:31:14.673 に答える
0

USB経由でBluetoothをどのように接続しましたか?次のようなコードを使用する必要があります。

import serial as s
device = "/dev/tty01"
s.Serial(device, 4800)

BBBのUSBポートの名前は何ですか? または、どのように BBB に USB ポートをリストしましたか?

于 2013-09-13T18:38:47.807 に答える