본문 바로가기
ESP32

LOLIN D32 MPU-6050센서 데이터의 3D 시각화 (Processing 활용)

by 꼬맹님 2025. 4. 30.
반응형

이번 글에서는 LOLIN D32 개발 보드와 MPU-6050 센서를 활용하여 데이터를 수집하고, 이를 Processing에서 3D 그래픽으로 표현하는 방법을 소개합니다. 드론이나 로봇의 자세를 시각화하는 데 유용한 기술이며, 실시간 데이터를 활용하여 보다 직관적인 분석이 가능합니다.

 준비물

  • LOLIN D32 개발 보드
  • MPU-6050 IMU 센서
  • Processing (시각화 소프트웨어)
  • Arduino IDE (ESP32 코드 작성)

 데이터 송신 및 수신

LOLIN D32에서 MPU-6050 데이터를 읽고 Processing으로 전달하는 방식은 Serial 통신을 사용합니다. ESP32가 데이터를 가공한 후, Processing에서 이를 받아 3D로 표현하는 구조입니다.

Processing 코드 예시 (3D 시각화)

import processing.serial.*;

Serial port;
float roll, pitch, yaw;
String latestData = "";

void setup() {
  size(600, 600, P3D);
  port = new Serial(this, Serial.list()[1], 115200); // 포트 설정
  port.bufferUntil('\n');
}

void draw() {
  background(200);
  lights();
  translate(width/2, height/2 - 50, 0);

  rotateY(radians(yaw));         
  rotateX(radians(-pitch));      
  rotateZ(radians(-roll));      

  fill(100, 200, 255);
  stroke(0);
  box(200, 20, 80);

  // 데이터 표시
  camera();
  fill(0);
  textAlign(LEFT, TOP);
  textSize(16);
  text("Roll: " + nf(roll, 1, 2) + "°\n" +
       "Pitch: " + nf(pitch, 1, 2) + "°\n" +
       "Yaw: " + nf(yaw, 1, 2) + "°", 20, height - 80);
}

void serialEvent(Serial port) {
  String data = port.readStringUntil('\n');
  if (data != null) {
    data = trim(data);
    String[] angles = split(data, ',');
    if (angles.length == 3) {
      roll = float(angles[0]);
      pitch = float(angles[1]);
      yaw = float(angles[2]);
      latestData = data;
    }
  }
}

 

 

  •  
반응형