인사말
안녕하세요, 모두! 다시 만나 뵙게 되어 반갑습니다. 오늘은 재미있고 화려한 프로젝트를 소개해드릴게요. 바로 라즈베리 파이 피코와 WS2812B LED, MPU6050을 활용한 PICO 매트릭스 프로젝트입니다.
프로젝트 개요
이 프로젝트의 목표는 RGB 매트릭스 기반의 프로젝트에 활용할 수 있는 전용 마이크로 컨트롤러 보드가 있는 매트릭스를 개발하는 것입니다. 추가적으로, 이 매트릭스 보드에는 가속도계 기능을 제공하는 MPU6050이 포함되어 있어 다양한 기능을 확장할 수 있습니다.
준비물
- 라즈베리 파이 피코 보드
- WS2812B LED 스트립 (혹은 매트릭스)
- MPU6050 가속도계 센서
- 전원 공급 장치
- Jumper wires
- 소프트웨어 (예: MicroPython, CircuitPython)
프로젝트 단계
1. 하드웨어 설정
- 라즈베리 파이 피코 보드 준비
- 라즈베리 파이 피코 보드를 준비하고, WS2812B LED 스트립과 MPU6050을 연결합니다.
- LED 스트립 연결
- WS2812B LED 스트립의 데이터 핀을 라즈베리 파이 피코의 GPIO 핀에 연결합니다.
- MPU6050 연결
- MPU6050의 SDA와 SCL 핀을 라즈베리 파이 피코의 I2C 핀에 연결합니다.
2. 소프트웨어 설정
- 라즈베리 파이 피코 프로그래밍
- 라즈베리 파이 피코에 MicroPython 혹은 CircuitPython을 설치합니다.
- 코드 작성
- LED 스트립과 가속도계 센서를 제어할 수 있는 코드를 작성합니다. 예제 코드는 다음과 같습니다:
from machine import Pin, I2C
from neopixel import NeoPixel
import time
import mpu6050
# 설정
num_leds = 8
pin = Pin(0, Pin.OUT)
np = NeoPixel(pin, num_leds)
i2c = I2C(0, scl=Pin(5), sda=Pin(4))
sensor = mpu6050.accel(i2c)
def update_leds(x, y, z):
for i in range(num_leds):
np[i] = (int(abs(x) * 255), int(abs(y) * 255), int(abs(z) * 255))
np.write()
while True:
accel_data = sensor.get_values()
update_leds(accel_data['AcX'], accel_data['AcY'], accel_data['AcZ'])
time.sleep(0.1)
3. 테스트 및 활용
- 코드 업로드 및 실행
- 작성한 코드를 라즈베리 파이 피코에 업로드하고 실행합니다.
- 프로젝트 활용
- 각종 RGB 조명 디스플레이, 스크롤 디스플레이 및 가속도계를 활용한 픽셀 컨트롤 프로젝트에 활용할 수 있습니다.
공급
이 프로젝트에 필요한 재료입니다.
- 맞춤형 PCB (HQ NextPCB 제공)
- 라즈베리 파이 피코
- LED WS2812B
- 100uF 커패시터
- 솔더 페이스트
- 리플로우 핫플레이트
- MPU6050
1단계: 회로 설계
이 프로젝트 회로의 두 가지 주요 부분은 일반적인 구성으로 연결된 100개의 WS2812B LED로 구성된 LED 매트릭스 자체로, 첫 번째 LED의 dout를 두 번째 din에 연결하고, 두 번째 LED의 dout를 두 번째 din에 연결하는 등의 방식으로 100번째 LED까지 계속됩니다. 모든 LED의 VCC와 GND는 병렬로 연결된다.
회로의 두 번째 부분은 Raspberry Pi Pico와 Pico의 GPIO6050 및 GPIO27에 연결된 MPU 26 가속도계 센서로 구성됩니다. 첫 번째 LED의 Din은 Raspberry Pi Pico의 GPIO D0에 연결됩니다. Type-C 커넥터로 보드에 전원을 공급하기 위해 Pico의 5V IN 및 GND 포트가 있는 USB Type-C 포트를 포함했습니다.
각 WS2812B LED에 대해 100개의 디커플링 커패시터를 추가로 추가했습니다. 그러나 결국 각 행에 하나씩 10x 100nf 커패시터만 사용했습니다.
디자인이 완성되면 보드 파일로 변환하고 100개의 LED를 모두 10x10 행 및 열 그리드로 배열했습니다.
D1에서 D10까지의 LED를 한 줄로 배열했습니다. D11은 새 열의 시작 부분에 배치되어 D20까지 확장되고, 그 다음에는 D21이 이어지며, 다음 열의 시작 부분에서 시작하여 D100까지 계속됩니다. 이것의 또 다른 이름은 뱀 매트릭스 또는 뱀 매트릭스 패턴입니다.
PCB를 완성하고 Pico와 MPU를 왼쪽에 배치한 후 Gerber 데이터를 내보냈습니다., 샘플을 위해 PCB 제조업체로 보내질 것입니다.
2 단계 : HQ NextPCB 서비스
PCB 설계를 완료한 후 Gerber 데이터를 내보내고 샘플을 위해 HQ NextPCB로 보냅니다.
Gerber Data는 HQ NextPCB로 전송되었으며 흰색 화면이 있는 Green Solder Mask PCB를 주문했습니다.
주문 후 PCB는 일주일 이내에 수령되었으며 PCB 품질은 꽤 훌륭했습니다.
또한, 많은 프로젝트를 통해 많은 도움이 되었던 HQDFM을 여러분께 소개해야 합니다. Huaqiu의 사내 엔지니어는 무료 제조 소프트웨어인 HQDFM을 개발하여 PCB 설계자가 설계를 시각화하고 검증하는 방법을 혁신했습니다.
3 단계 : HQDFM : 무료 온라인 Gerber 뷰어 및 DFM 분석 도구
4단계: 회로 조립
- 솔더 페이스트 디스펜서 바늘을 사용하여 솔더 페이스트를 각 구성 요소 패드에 적용하여 회로 조립 프로세스를 시작합니다. 이 경우 63/37 Sn/PB 솔더 페이스트를 사용하고 있습니다.
- 그런 다음 각 WS2812B LED를 선택하여 올바른 위치에 놓습니다.
- 그런 다음 리플로우 핫플레이트에 회로를 배치하여 PCB를 아래에서 솔더 페이스트 용융 온도로 가열하면 모든 SMD LED가 패드에 연결됩니다.
- 리플로우 후 USB 유형 C 포트와 함께 Raspberry Pi Pico 및 MPU6050용 암 헤더 핀 커넥터로 구성된 THT 구성 요소를 배치합니다.
- 납땜 인두를 사용하여 보드의 바닥면에서 모든 관통 구멍 구성 요소의 리드를 납땜합니다.
- 마지막으로 MPU6050와 Raspberry Pi Pico를 헤더 핀에 배치하고 이제 어셈블리가 완료되었습니다.
5 단계 : "MPU 제어 픽셀"스케치
우리는 우리가 만든 스케치를 업로드하여 이 매트릭스를 테스트하기 시작하는데, 이는 본질적으로 MPU6050을 사용하는 픽셀 컨트롤 스케치입니다. 이 스케치에서는 중앙의 밝은 픽셀이 MPU6050의 방향에 반응하여 이동하여 모래 입자를 시뮬레이션합니다. 움직임을 감지하고 모래 입자처럼 주위를 이동하는 픽셀 입자를 제어하는 미래의 모래시계 프로젝트를 위해 우리의 목표는 이 스케치를 더욱 구체화하는 것입니다.
스케치를 사용하기 전에 먼저 설치해야 하는 라이브러리입니다.
6단계: 텍스트 스크롤링
스크롤링 텍스트 애니메이션은 우리가 시도한 다음 흥미로운 작업이었습니다. 그것은 우리가 스케치에 넣은 유머러스한 문장으로 구성되어 있었고 다음과 같이 말했습니다: "왜 과학자들은 원자를 신뢰하지 않는가? 그들이 모든 것을 구성하기 때문입니다!"
우리가 사용한 스케치는 다음과 같습니다.
이 스케치를 사용하기 전에 다음과 같은 라이브러리가 필요합니다.
첨부 파일
7단계: 발사
다음으로, 빨강, 주포, 흰색으로 구성된 Flame의 색상 팔레트를 모방한 FastLED 라이브러리의 예제 스케치 중 하나인 Fire를 사용합니다. 이 스케치는 디지털 화재 또는 벽난로 프로젝트를 만들려는 경우 사용하기 쉽습니다. 보다 강렬한 애니메이션을 위해 디퓨저를 사용하여 LED 광선을 퍼뜨려 설정을 보다 사실적으로 보이게 할 수 있습니다.
8 단계 : 결론
전반적으로 이 프로젝트는 성공적이었고 추가 수정이 필요하지 않았습니다.
다양한 데모 스케치를 실행하고 현재 작업하고 있는 모래 입자 스케치를 만드는 데 사용할 수 있는 매트릭스 테스트 보드를 만드는 것이 프로젝트의 목표였습니다. 곧 모래시계 데모 스케치가 포함된 향후 프로젝트를 공유할 예정입니다.
오늘은 여기까지입니다, 여러분, 이 프로젝트와 관련된 모든 문서가 첨부되어 있으며 이 기사에서 확인할 수 있습니다. 추가 정보가 필요하시면 언제든지 댓글을 남겨주시면 기꺼이 도와드리겠습니다.
'라즈베리파이' 카테고리의 다른 글
맞춤형 5x5 매트릭스 키보드와 PAM8403 오디오 앰프로 완성된 Raspberry Pi Pico 2 신디사이저 제작 (0) | 2025.01.22 |
---|---|
박수 소리인식 LED제어 (0) | 2023.12.27 |
마이크로컨트롤러를 이용한 디지털 포토 프레임 제작 (1) | 2023.12.22 |
Solar PC All-in-one Raspberry Pi (태양광 발전을 위한 라즈베리파이 기반 올인원 PC 만들기) (0) | 2023.11.15 |
Raspberry Pi Pico – Micropython 시작하기 (라즈베리 파이 피코) (0) | 2023.11.14 |