私はPythonの世界に不慣れで、プログラミングスキルはかなり貧弱ですが、Pythonを使用してEEG回路からの出力を表示する方法を見つけようとしています(OpenEEG回路http://openeeg.sourceforge.netを使用) )
アナログ出力は、ADC (ATmega8 マイクロコントローラ内) を介して増幅および処理され、MAX232 によって RS232 に変換されます。
RS232 信号は次のとおりです。
バイト 1: 同期値 0xa5
バイト 2: 同期値 0x5a
バイト 3: バージョン
バイト 4: フレーム番号
バイト 5: チャネル 1 下位バイト
バイト 6: チャネル 1 上位バイト
バイト 7: チャネル 2 下位バイト
バイト 8: チャネル 2 上位バイト
. ..
バイト 9 ~ 16 は追加の電極チャンネル用ですが、最初の 2 つしか使用しないためデータは必要ありません
...
バイト 17: ボタンの状態 (b1-b4)
私はいくつかの基本的な PySerial 機能を持っていますが、受信データをバッファリングし、有用な値を 2 つのリアルタイム xy 波形 (時間対電圧) としてプロットすることで、受信データを利用する方法を理解する必要があります。
質問の更新:
PySerialの明らかな数行でコードを印刷していますが、意味不明です。データを、プロットできる値の形式に分解しようとしています。17 バイトのデータは、現在 256 フレーム/秒で受信されています。(2 つの) チャネルは、それぞれ 10 ビットのデータで構成されます (残りの 2 バイトを構成するために 6 つのゼロが含まれます)。それらは、0 から 1023 の可能な値を与える符号なしです。これらは、正と負としてプロットする必要がある値に対応するため、512 のバイナリ値はゼロ (マイクロ) ボルトのプロットに対応します....
受信ストリームを 8 ビット バイナリとして読み取り (不要なデータを取り除き)、必要な各チャネルから 2 つの関連するバイトを結合するにはどうすればよいですか (必要に応じて余分な 6 つのゼロを削除する可能性があります)。