본문 바로가기

ESP32

esp32 충돌센서 방향 지시등 구현

반응형

 

생활 공간에 재미있는 요소를 더하고 싶으신가요?

 

이 프로젝트는 WS2812 LED 스트립과 장애물 회피 모듈을 사용하여 러닝 라이트(흐르는 빛)를 만드는 것입니다. 장애물이 감지되면 러닝 라이트의 방향이 바뀌어, 집이나 사무실 인테리어에 멋진 분위기를 더합니다. 

 

구매 링크 - ICBanq - ESP32 스타터 키트

 

준비물 ESP32, 확장 보드, 점퍼 케이블, 장애물 감지 모듈, WS8212 RGB 8 LED 스트립이 필요해요. 

 

WS2812 LED 스트립은 다양한 색상과 패턴을 표시하도록 프로그래밍할 수 있는 일련의 개별 LED로 구성됩니다.

 

시작하기 전에 보드 연결하기

 

ESP32 마이크로 컨트롤러를 프로그래밍하려면 Arduino IDE에 ESP32 보드 패키지를 설치해야 합니다. 보드 관리자 창의 검색 창에 ESP32를 입력합니다. 설치 버튼을 클릭하여 설치 프로세스를 시작합니다. 그러면 ESP32 보드 패키지가 다운로드되고 설치됩니다. 

 

 

 

이제 Micro USB 케이블을 사용하여 ESP32 WROOM 32E를 컴퓨터에 연결합니다. 방향을 잘 보고 연결하세요.

 

 

 

 

그런 다음 Tools > Board > ESP32를 클릭하여 올바른 보드인 ESP32 Dev Module을 선택합니다. 

 

 

 

 

ESP32가 컴퓨터에 연결되어 있는 경우 Tools > Port를 클릭하여 올바른 포트를 선택할 수 있습니다. 

 

 

 

 

빠른 선택의 경우 ESP32는 일반적으로 자동 인식이 되지 않으므로, 직접 선택해주셔야합니다. 

 

 

 

 

ESP32 Dev Module을 검색하고 선택해주세요. 그런 다음 포트를 선택하고 확인을 클릭해주세요. 

 

 

 

 

 

이 프로젝트에서는 특정 방향으로 움직이고 장애물 회피 모듈에 의해 장애물이 감지되면 방향이 바뀌는 주행등을 표시하도록 스트립을 구성했습니다. 

 

 

 

 

ESP32 코드 - 처음 연결하시는 분은 

 

#include <Adafruit_NeoPixel.h>

// Set the number of pixels for the running light
#define NUM_PIXELS 8

// Set the data pin for the RGB LED strip
#define DATA_PIN 14

// Initialize the RGB LED strip object
Adafruit_NeoPixel pixels(NUM_PIXELS, DATA_PIN, NEO_GRB + NEO_KHZ800);

// Initialize the avoid sensor
#define AVOID_PIN 25

void setup() {
  // Initialize the RGB LED strip
  pixels.begin();

  // Initialize the avoid sensor
  pinMode(AVOID_PIN, INPUT_PULLUP);

  // Set the initial LED color
  uint32_t color = pixels.Color(random(256), random(256), random(256));
  pixels.fill(color);
  pixels.show();
}

void loop() {
  // Read the input from the infrared sensor
  bool avoid_value = digitalRead(AVOID_PIN);

  // Generate a random color for the current pixel
  uint32_t color = pixels.Color(random(256), random(256), random(256));

  // If no obstacle is detected
  if (avoid_value) {
    for (int i = 0; i < NUM_PIXELS; i++) {
      // Turn on the current pixel with the random color
      pixels.setPixelColor(i, color);

      // Update the RGB LED strip display
      pixels.show();

      // Turn off the current pixel
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  }
  // If detects an obstacle, change the direction of the LED strip
  else {
    for (int i = NUM_PIXELS - 1; i >= 0; i--) {
      pixels.setPixelColor(i, color);
      pixels.show();
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  }
}

 

 

 

결과  이미지와 동영상입니다. 

 

 

 

 

 

영상입니다.

 

 

 

 

 

여기까지 수고하셨습니다. 즐겁게 개발하세요~~^^

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩