USB ロジックアナライザをセットアップしてPWM(波形)・シリアル通信(データ)・I2C(データ)の測定を行いました。
●PC接続 8ch 24MHz 超コンパクト USB ロジックアナライザ 【https://www.amazon.co.jp/gp/product/B0D7ZR2VJ8/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1】
参考サイト
●ロジアナの使い方!USB接続で簡単に信号解析
●格安USBロジックアナライザを試してみた!
●PWM制御のArduinoプログラム【https://monoist.itmedia.co.jp/mn/articles/1604/11/news014_5.html】
●格安ロジアナ導入方法とArduinoで信号確認
Pulse View ダウンロード
【PulseView 0.4.2(64bit)】ダウンロード
Pulse View インストール
【pulseview-0.4.2-64bit-static-release-installer.exe】インストール
保存場所(任意)
ドライバーインストール
USB ロジックアナライザを接続
PulseViewファイル内【zadig】アプリケーション実行
【Options】【List All Devices】にレ点を入れる
【Unknown Device #1】選択
【Install Driver】
ドライバーインストールが完了すると【successfully】
Pulse View設定
【pulseview】アプリケーションを実行
【▼】【Connect to Device】選択
Step1【fx2lafw(......)】
Step2【USB】
Step3【Scan.......】反応しない場合USBを抜差し Step4【Saleae Logic with 8 channels】【OK】
①Arduino Nano PWM 測定
プログラム
void setup(){
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
analogWrite(3,128);//490MHz 約2ms
analogWrite(5,128);//977MHz 約1ms
analogWrite(6,128);//977MHz 約1ms
analogWrite(9,128);//490MHz 約2ms
analogWrite(10,128);//490MHz 約2ms
analogWrite(11,128);//490MHz 約2ms
}
void loop(){
}
②Arduino Nano シリアルモニター測定
プログラム
#include <Wire.h>
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("12345");
delay(100);
}
①【Add protcol decader】
②【UART】選択
シリアル通信 RX bit 16進数 001(1) 010(2) 011(3) 100(4) 101(5)
③Arduino Nano MPU6050 I2C 測定
プログラム
#include "MPU6050.h"
MPU6050 accelgyro;
#include <MadgwickAHRS.h>
Madgwick MadgwickFilter;
int16_t ax, ay, az;//加速度 int16_tは2バイトの符号付き整数
int16_t gx, gy, gz;//角速度 同上
float ROLL, PITCH, YAW;
void setup()
{
Wire.begin();
Serial.begin(9600);
accelgyro.initialize();//I2Cデバイスの初期化
delay(300);
MadgwickFilter.begin(100);//フィルタのサンプリングを100Hzで
}
void loop()
{
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
MadgwickFilter.updateIMU(gx / 131.0, gy / 131.0, gz / 131.0, ax / 16384.0, ay / 16384.0, az / 16384.0);
ROLL = MadgwickFilter.getRoll();
PITCH = MadgwickFilter.getPitch();
YAW = MadgwickFilter.getYaw();
Serial.print(ROLL); Serial.print(",");
Serial.print(PITCH); Serial.print(",");
Serial.print(YAW);
Serial.print("\n");
delay(10);
}
①【Add protcol decader】
②【I2C】選択
シリアルモニター
0 件のコメント:
コメントを投稿