Arduino-Webオシロスコープ(サポートトリガー)
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
初心者の方は、Arduino-Wifiについて詳しく知ることができます。
デモンストレーション
機能
- 6チャンネルをサポート
- 単一のトリガー、複数のトリガーをサポート
- 選択可能なトリガーモード:下降、上昇、下降、上昇
- 設定可能なトリガー値
- Webノブを使用して時分割を調整する
- ウェブノブを介して各チャンネルの分圧を調整する
- Webノブを使用して各チャネルの表示オフセットを調整する
- タップまたはクリックして設定領域を表示/非表示にします
- クロスプラットフォームでの作業:ウィンドウ、Linux、iOS、Android ...(Webの特性のため)、Webブラウザを備えています
ユーザーインターフェイス <図>
仕組み
WebオシロスコープはPHPoC上のWebシリアルモニターを変更したものであるため、最初にWebシリアルモニターがどのように機能するかを説明します。
PHPoCシールドには、「Webシリアルモニター」と呼ばれる組み込みのWebアプリがあります。 ArduinoIDEのシリアルモニターに似ています。 ArduinoIDEのシリアルモニターの違いは次のとおりです。
- Arduino IDEのシリアルモニター: USBケーブルを介してarduinotxピンからデータを読み取る。
- PHPoCシールド上のWebシリアルモニター: インターネット経由でarduinotxピンからデータを読み取る
詳細には、PHPoCシールドはSPIを介してArduinoと通信します。ユーザーがWebブラウザからWebシリアルモニターにアクセスする場合。ページがロードされた後、ページはPHPoCシールドへのWebSocket接続を確立します。このとき、PHPoCシールドはArduinoにスタックされ、Arduino TXピンからデータをキャプチャし、このデータをWebSocketを介してWebブラウザのWebシリアルモニターに送信します。 Webシリアルはデータを受信し、Webに表示します。
これにより、ユーザーはPC上のデータだけでなく、モバイルやWebブラウザをサポートするデバイス上のデータも見ることができます
それでは、Webオシロスコープがどのように機能するかを見てみましょう。
Webオシロスコープは、最後の部分を除いて、Webシリアルモニターと同じように機能します。
Webオシロスコープは、生データをWebに表示する代わりに、データをグラフ上に視覚化します。他の機能が追加され、ユーザーがUIを調整してトリガーを実行できるようになります。
Arduinoから送信されるデータについて
ArduinoはADCピン(A0からA5)からデータを読み取り、タイムスタンプ(マイクロ秒単位)を読み取ります
ADCデータは電圧に変換され、次の形式に従ってタイムスタンプとともにシリアルポートに出力されます。
- 最初にタイムスタンプを入力し、その後に空白または「\ t」文字を続けます。
- 次に、電圧データが続きます。各チャネルのデータは、空白または「\ t」文字で区切られます。
- 最後は改行文字です
注: 最大チャネルは6ですが、送信できるのは1、2、3チャネルのデータのみです。
ソースコード
ソースコードには2つの部分が含まれます:
- Arduinoコード(WebOscilloscope.inoを参照)
- Webアプリコード(oscilloscope.php):これはユーザーインターフェイスコードです。この手順に従って、PHPoCシールドにアップロードする必要があります
使用方法 <図>
次のように入力して、PCまたはスマートフォンのWebブラウザからWebオシロスコープにアクセスします。 http:// replace_ip_address /oscilloscope.php
信号の測定方法:必要なのは、2本のワイヤーを使用することです。1本はGNDに、もう1本はArduinoの任意のアナログピン(A0からA5)に接続します。これらの2つのピンを、信号を確認するポイントに接続します。
6チャンネルあるので、6本のアース線が必要です。ただし、便宜上、ArduinoにはGNDピンが2つしかありません。以下のようにして、より多くのGNDピンを拡張します。
<図>
初心者のための最高のArduinoスターターキット
Arduinoキットをお探しの場合は、初心者向けの最高のArduinoキットをご覧ください
関数リファレンス
- Serial.begin()
- Serial.println()
- delay()
- millis()
- forループ
- whileループ
- その他の場合
- loop()
- setup()
- String.toInt()
- String.substring()
- String.indexOf()
- String.remove()
- String.equals()
コード
- WebOscilloscope.ino
- oscilloscope.php
WebOscilloscope.ino Arduino
これはarduinoコードです。 6チャンネルのデータすべてを送信する必要はありません。ご覧のとおり、データチャネル3#include#include #define AREF 5.0#define ADC_MAX 1023.0float ratio =AREF / ADC_MAX; void setup(){Serial.begin (115200); Phpoc.begin();} void loop(){//システム時刻を読み取りますunsigned long time_a =micros(); //アナログ値を読み取り、電圧に変換します:float VoltageChannel0 =analogRead(A0)* ratio;フロート電圧Channel1 =analogRead(A1)*比率;フロート電圧Channel2 =analogRead(A2)*比率;フロート電圧チャネル3 =analogRead(A3)*比率;フロート電圧Channel4 =analogRead(A4)*比率;フロート電圧Channel5 =analogRead(A5)*比率; //システム時刻を最初に送信Serial.print(time_a); Serial.print( ""); //「」または「\ t」で区切られた各チャネルの値を送信します。 Serial.print(voltageChannel0); Serial.print( ""); Serial.print(voltageChannel1); Serial.print( ""); Serial.print(voltageChannel2); Serial.print( ""); //Serial.print(voltageChannel3); //Serial.print( ""); Serial.print(voltageChannel4); Serial.print( ""); //最後のチャネルは改行文字で送信する必要がありますSerial.println(voltageChannel5);}
oscilloscope.php PHP
これはWebコードです。<!DOCTYPEhtml>PHPoCShield-Arduino用のWebオシロスコープ
回路図
製造プロセス