황금비 코드로 뽑은 필로택시스 패턴, 89개 LED 조형물이 되어 소리에 반응하다
- 황금비 1.6180339887을 곱해 점을 회전시키는 짧은 코드로 해바라기 씨앗 배열을 만들고, Voronoi 테셀레이션으로 셀 경계를 뽑아 각 셀에 RGB LED 89개를 넣는 물리 조형물로 옮김
- CadQuery로 전체 형상에서 셀마다 벽 두께만큼 축소한 부피를 빼고 LED 구멍을 파낸 뒤, 3D 프린터 베드에 맞게 4개 사분면으로 나눠 출력하고 뽕나무 종이를 확산판으로 붙임
- LED 구동은 여분의 STM32 blackpill과 SPI 네오픽셀 드라이버로 처리했고, 각 LED의 단위원 좌표를 룩업 테이블에 넣어 프래그먼트 셰이더처럼 패턴 코드를 쓰는 프레임워크를 만듦
- INMP441 I2S 디지털 마이크를 달아 소리에 반응하게 했고, STM32의 부동소수점과 ARM DSP 명령으로 푸리에 변환, 자동 게인, 멀티밴드 에너지 분석을 돌림
- 기본 패턴은 중심에서 바깥으로 밝기를 사인파로 흔드는 방식이고, 작성자는 다음 단계로 PCB 업체에 LED 실장을 맡기는 방안을 언급
Hacker News opinions
5각 대칭으로 PCB를 나눠서 보드 허용 면적을 꽉 채운 게 진짜 기발함. SMT 부품 패드를 필요보다 좀 크게 잡아두면 납 두를 데가 생기는 건 가난한 취미러가 일찍 배우는 요령이고, 5050 네오픽셀은 패드가 옆면까지 올라와 있어서 손납땜이 무난함.
Voria Labs가 만드는 Lumanoi랑 거의 똑같이 생겼더라. 수렴 진화의 예인가 싶음.
소리가 필로택시스 패턴을 몰아가는 게 진짜 황홀함. 나도 언젠가 이런 거 만들어보고 싶었는데.
나도 256개 LED로 비슷한 조명 만드는데, 직접 만들어보면 저 손맛을 알게 됨.
조립은 PCB 업체에 LED 실장까지 맡기는 게 낫더라. BOM이 단순하면 비용은 거의 안 늘고, 시간은 엄청 아끼고, 과열이나 ESD로 부품 망가뜨릴 위험도 줄어듦. 다만 네오픽셀이 열을 얼마나 버티는지는 모르겠음.
원문에 다음 계획으로 PCB 조립 얘기가 나오더라. 결국 같은 결론으로 간 셈임.
필로택시스라는 단어가 맘에 안 듦. 잎 배열은 특정 환경에서 빛을 받으려고 생긴 패턴인데 LED는 그 목적에 전혀 안 닿음. Phyllo가 녹색이라는 뜻이라 이름 자체가 틀렸음.
이름 가지고 트집 잡는 것보다 심한 자전거 헛간 논쟁은 없음.
전자공학을 다시 배우는 중인데 이런 빌드 과정 글 보면 자극받음. 과정을 다 풀어서 공유해줘서 고마움.