工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino-Webオシロスコープ(サポートトリガー)

コンポーネントと消耗品

>
Arduino UNO
× 1
Arduino用PHPoCシールド
× 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オシロスコープ      



回路図


製造プロセス

  1. Web操作のDMXコントローラー
  2. Nokia 5110LCDのDIYシンプル20kHzArduinoオシロスコープ
  3. Arduino Spybot
  4. FlickMote
  5. 自家製テレビB-Gone
  6. マスタークロック
  7. Find Me
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. 128x64LCDディスプレイ上のDIY10Hz-50kHzオシロスコープ