arduino IDE에서 Serial Plotter 사용법
Arduino Serial Plotter 기능이 Arduino IDE에 추가되어 Arduino에서 컴퓨터로 직렬 데이터를 실시간으로 그래프로 표시 할 수 있습니다. Arduino의 아날로그 센서 입력 데이터가 The Matrix와 같은 화면에 쏟아지는 것을보고 피곤하다면, 이것은 무슨 일이 일어나고 있는지 시각화하는 더 좋은 방법처럼 보입니다. 직렬 플로터는 처리 또는 플롯과 같은 타사 서비스를 사용하지 않고도 데이터를 시각화하고 오프라인으로 코드 문제를 해결할 수있는 오프라인 도구입니다. Arduino 웹 사이트에는 Serial Plotter의 사용 및 기능에 관한 공식 문서가 없으므로 그 사용 및 기능을 문서화하기로 결정했습니다.
본 문서는 Arduino Serial Plotter의 내용을 번역하여 추가 보완하여 작성하였음을 알려드립니다.
Future
다중 그래프 플로팅
오프라인
자동 크기 조정 그래프
음수 그래프 지원
X 축을 따라 자동 스크롤
변수마다 다른 색상
Application
오프라인 데이터 시각화
코드 문제 해결
파형 분석
1. 그래프 그리기
Serial Plotter 메뉴는 메뉴 -> 툴 아래에 있습니다.
시리얼 플로터의 실제 작동 방식을 이해하기 위해 최신 버전의 Arduino IDE (1.6.7 이상)를 설치합니다. Arduino Serial Plotter는 USB 연결을 통해 들어오는 직렬 데이터 값을 가져와 직렬 모니터에 숫자가 나오는 것을 보는 것 외에도 X / Y 축을 따라 데이터를 그래프로 나타낼 수 있습니다. 수직 Y 축은 출력 값이 증가 또는 감소함에 따라 자동으로 조정되며 X 축은 축의 각 눈금이 실행 된 Serial.println () 명령과 같은 고정 된 500 포인트 축입니다. 즉, Serial.println ()이 새 값으로 업데이트 될 때마다 플롯이 X 축을 따라 업데이트됩니다.
시리얼 플로터의 보드율을 코드와 일치하도록 설정해야합니다.
여러 파형을 표시 할 때 모든 개별 변수 / 값 / 파라미터는 아래와 같이 다른 색상으로 표시됩니다.
여러 변수 또는 파형을 동시에 플롯하기 위해 두 인쇄 문 사이에 아래와 같이 '공백'이 인쇄되어야 합니다.
Serial.print (온도);
Serial.print ( "");
Serial.println (습도);
또는
Serial.print (온도);
Serial.print ( "\ t");
Serial.println (습도);
2. 오프라인 데이터의 시각화
직렬 플로터를 사용하는 주요 목적은 센서 나 프로젝트의 데이터를 시각화하기 위해 인터넷에 연결할 필요가 없다는 것입니다. 따라서 데이터 시각화의 목적으로 직렬 플로터는 그 작업에 탁월합니다.
단 하나의 파형이든 다중 플롯 그래프이든, 직렬 플로터는 자동으로 크기를 조정하고 각 파형의 색상을 지정합니다. 데이터 시각화 기능을 테스트하기 위해 다음 단계를 수행 할 수 있습니다.
- Arduino에 몇 개의 센서 연결
- 센서 값을 인쇄하고 코드를 업로드하십시오.
- 직렬 플로터를 엽니 다.
인생의 잔혹한 비밀과 삶을 제대로 살기 위한 기술 “위대한 마인드“ 다운로드
https://kimbongzo.gumroad.com/l/greatmindset
아두이노 우노 R4 Minima 빠르게 시작하기
https://kimbongzo.gumroad.com/l/Arduino-R4-Minima
아두이노 우노 R4 WiFi 빠르게 시작하기
https://kimbongzo.gumroad.com/l/arduinor4wifi
고객에 대한 빠른 응답 템플릿
https://kimbongzo.gumroad.com/l/ezhaf
아두이노 개발의 시작, 아두이노 IDE 2 완벽 가이드
https://kimbongzo.gumroad.com/l/ArduinoIDE2UltimateGuide
아두이노 Nano 33 IoT 퀵 가이드
https://kimbongzo.gumroad.com/l/Nano33IoTQuickGuide
라즈베리파이 5 퀵 가이드
https://kimbongzo.gumroad.com/l/raspberrypi_5_QuickGuide
Python OpenCV 컴퓨터 비전 입문 프로그래밍
https://kimbongzo.gumroad.com/l/python_opencv_basic
Python OpenCV 컴퓨터 비전 고급 프로그래밍
https://kimbongzo.gumroad.com/l/qmgmdw
3. 문제 해결
직렬 플로터의 가장 큰 용도 중 하나는 코드 및 회로 문제를 해결하는 것입니다. 잘못된 연결 또는 잘못된 코딩 논리로 인해 원하지 않는 출력이 반환 될 수 있습니다. 직렬 플로터를 디버그하기에 너무 많은 코드 라인이나 너무 많은 와이어가있는 경우 정확한 오류 지점을 표시 할 수 있습니다.
직렬 플로터를 사용하면 센서 판독 값이 올바르지 않은지 또는 센서가 Arduino에 올바르게 연결되어 있지 않은지 확인할 수 있습니다. Serial Plotter는 또한 다양한 조건문과 변수 또는 Arduino의 핀 상태를 표시하여 코드 디버깅에 도움이됩니다.
좋은 예는 장애물 회피 로봇 문제를 해결하는 것입니다. 이 예에서 파란색 파형은 초음파 센서를 나타내고 노란색 및 빨간색 파형은 왼쪽 및 오른쪽 모터를 나타냅니다. 장애물과 로봇 사이의 거리가 멀어 질수록 파란색 파형이 줄어 듭니다. 임계 값 (최소 거리)이 10이면 로봇이 우회전하여 두 모터의 값이 다릅니다 (오른쪽 = 50, 왼쪽 = 100). 오른쪽 회전을 나타내는 빨간색 파형 감소와 노란색 파형의 일정 속도 유지를 볼 수 있습니다.
와이어가 올바르게 연결되지 않았거나 구성 요소가 고장 났거나 코딩 로직이 잘못되었는지 문제를 해결하려면 시간이 많이 걸립니다. 그러나 직렬 플로터를 사용하면 파형을 분석하여 문제를 해결하는 데 걸리는 시간을 크게 줄일 수 있습니다.
4. 함수 생성 및 분석
기본적인 프로그래밍 감각과 몇 줄의 코드로 Arduino는 함수 발생기 역할을 할 수 있습니다. Arduino는 Square, Triangular, Sine & Sawtooth 파형을 생성 할 수 있습니다. 이전 버전의 Arduino IDE에서는 시각화없이 직렬 모니터에서 생성되는 파형 유형의 값만 관찰 할 수있었습니다. 수치만을 기준으로 출력을 분석하는 데 시간이 오래 걸립니다. 그리고 이것은 Serial Plotter가 편리한 곳입니다. 생성되는 파형을 시각화합니다.
함수 발생기 예제 코드
/*
* This code was Created by Jonathan Pereira on 10th February 2016 and is in the public domain.
* Comment the type of wave that you do not wish to generate.
*/
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop()
{
//Sine Wave & Cosine Wave
float angle=0;
for(angle=0;angle<=90;angle=angle+0.1)
{
float sina=sin(angle);
float cosa=cos(angle);
Serial.print(sina);
Serial.print(" ");
Serial.println(cosa);
delay(1);
}
//Sawtooth Wave
for(float i=0; i<=90; i=i+1)
{
Serial.println(i);
delay(1);
}
//Square Wave
for(int a=0; a<=100; a++)
{
int b=0;
Serial.println(b);
delay(1);
}
for(int a=0; a<=100; a++)
{
int b=100;
Serial.println(b);
delay(1);
}
//Triangular wave
for(float i=0;i<=100;i=i+1)
{
Serial.println(i);
delay(1);
}
for(float i=100;i>=0;i=i-1)
{
Serial.println(i);
delay(1);
}
}
함수 발생기 소스코드를 실행한 결과 화면은 아래와 같다.
참고 자료
'개발자 > Arduino' 카테고리의 다른 글
Arduino Nano 33 IoT 개발 가이드 1 - 개발환경 (2) | 2020.05.13 |
---|---|
Arduino Nano 33 IoT 개발 가이드 4 - 내부 RTC와 Sleep Mode (1) | 2020.05.13 |
Arduino Nano 33 IoT 개발 가이드 3 - WiFi Network 실습 (2) | 2020.05.13 |
Arduino Nano 33 IoT 개발 가이드 2 - 기본적인 예제 살펴보기 (0) | 2020.05.13 |
NANO 33 BLE Sense - 1. 온보드 RGB LED 실습 (2) | 2020.05.10 |
NANO33 BLE Sense 2 - LSM9DS1, 9축 IMU센서 실습 (0) | 2020.05.10 |
NANO 33 BLE Sense - 8 더 살펴볼 것 (0) | 2020.05.10 |
NANO 33 BLE Sense - 7 온보드 거리센서 실습 (0) | 2020.05.10 |
더욱 좋은 정보를 제공하겠습니다.~ ^^