Flip Fluid on Flip Dots
플립닷 위에서 움직이는 유체
오래된 버스용 플립닷 패널을 직접 구동하는 회로를 설계해 유체 시뮬레이션 디스플레이로 만들었습니다. 커패시터 구동 방식과 H-브리지 칩을 시험하고 전원·기구 문제를 해결해, 13×28 패널 여덟 장을 약 40FPS로 구동하는 설치 작품을 완성했습니다.
- 주제
AI 요약
mitxela는 EMF2026 설치 작품으로 플립닷(Flip Dot) 패널에 유체 시뮬레이션을 띄웠습니다. 발상은 LED 액체 디스플레이가 소리를 내지 않는다는 데서 출발합니다. 전자기계식 플립닷은 픽셀이 뒤집힐 때 소리가 나므로, 화면과 소리를 함께 만드는 디스플레이가 됩니다. 상용 제품은 비싸고 구하기도 어려워, 오래된 Hanover 패널을 직접 수리하고 구동하는 방향을 택했습니다.
플립닷을 빠르게 구동하기
기존 패널은 도트 전체를 하나의 큰 행렬로 연결해 갱신 시간이 약 1초였습니다. 도트가 뒤집히는 데는 약 60밀리초가 걸리지만, 코어를 자화하는 데 필요한 펄스는 1밀리초 안팎입니다. 열을 동시에 구동하면 28개 열을 약 56밀리초 만에 갱신한다는 계산이 나옵니다. 하지만 코일 하나에 12V를 걸면 약 666mA가 흐르고, 높은 전압으로 펄스를 짧게 줄이면 코일당 전류가 1A를 넘을 수 있습니다. 여러 도트를 한꺼번에 움직이면 전원 공급 장치가 감당해야 할 순간 전류도 커집니다. 또 행렬을 작은 단위로 쪼개면 도트가 서로 다른 시점에 뒤집혀 화면에 체크무늬 같은 시각적 어긋남이 생깁니다.
도트를 기존 기판에서 떼어 새 기판에 옮기는 방법도 검토했지만, 가는 자석선과 녹기 쉬운 플라스틱 부품을 다루는 작업량이 너무 컸습니다. 대신 기존 기판 뒷면에 새 구동 기판을 붙이는 방식을 택했습니다. Mike가 만든 H-브리지 기반 보드를 참고했고, 모터 구동용 H-브리지 칩을 도트마다 하나씩 배치해 코일의 방향을 제어했습니다. 이 방식은 기존 기판의 열 배선을 잘라야 했습니다. 회로 공간을 아끼려고 직렬 커패시터를 쓰는 하프브리지 방식도 시험했습니다. 커패시터가 전류를 펄스 형태로 전달해 코일이 계속 켜진 채 과열되는 위험을 줄이는 점이 장점입니다.
시제품에서 드러난 전원 문제
첫 기판은 도트 하나씩 움직이는 데는 성공했지만, 한꺼번에 전환하면 전원 전압이 떨어졌습니다. 코일에 필요한 펄스가 약 0.5A라면 여러 도트를 동시에 구동할 때 순간적으로 수십 암페어가 필요합니다. 전압이 낮아지면 코어를 자화하지 못하고 오히려 자성을 잃어 도트가 느슨해졌습니다. 작은 0805 세라믹 커패시터 두 개를 쓰는 설계도 저전압 상태에서 성능이 좋지 않았습니다. 이후 47µF 커패시터를 적용하고, 패널마다 1000µF 전해 커패시터 여덟 개를 추가했습니다. 전원 전압이 9V 아래로 내려가면 펄스를 막고, 다시 9.5V를 넘어야 동작을 재개하도록 히스테리시스도 넣었습니다. 배터리 보호뿐 아니라 전압 강하로 실패한 펄스가 발생하는 상황도 막기 위한 조치입니다.
최종 구성에서는 패널마다 CH32V003 마이크로컨트롤러가 UART 데이터를 받아 SPI로 시프트 레지스터를 구동합니다. 전체 프레임은 약 3000비트라 1Mbaud 전송 속도로 충분했습니다. 상위 보드는 RS-485로 패널에 데이터를 전달하고, 각 패널은 자신의 데이터 구간을 받아 둔 뒤 프레임 끝에서 한꺼번에 래치합니다. 패널 ID는 DIP 스위치로 설정해 배선 순서와 무관하게 동기화할 수 있도록 했습니다. 3S LiPo 배터리와 12V 40A 전원 공급 장치로 시험했고, 최종 설치에서는 전원 공급 장치 출력을 13V로 조정했습니다.
제작과 설치
첫 시제품은 13×28 해상도 패널 두 장을 연결해 약 40FPS로 유체 시뮬레이션을 실행했습니다. 시뮬레이션은 Raspberry Pi Pico 2에서 동작했습니다. 이후 같은 크기의 패널 여덟 장을 연결해 약 1㎡ 크기의 디스플레이를 만들었습니다. 드라이버 기판을 기존 패널에 납땜하고, 도트 불량을 고치고, 프레임을 조립하는 과정은 많은 수작업을 요구했습니다. 패널의 코팅을 충분히 긁어내지 않은 납땜 접점은 기계적 충격을 받은 뒤 끊어지기도 했습니다. 부러진 코일을 풀어 끊어진 선을 찾아 다시 잇는 수리도 여러 차례 했습니다.
방문객이 조이스틱으로 화면을 조작하도록 했고, 설치 작품은 EMF 행사에서 나흘 동안 고장 없이 동작했습니다. 사용자가 도트를 직접 만지거나 먼지가 끼면서 일부 픽셀은 작동을 멈췄지만, 납땜을 다시 해 되살린 경우도 있었습니다. 완성품의 비용은 기증 부품과 작업 시간을 빼고 500파운드 미만, 도트당 약 0.17파운드였습니다. 제작자는 Hanover 13×28 패널용 PCB 설계도 GitHub에 공개했습니다.
Hacker News 반응
- @userbinator — 부품이 너무 섬세하고 자석선이 가늘며 플라스틱이 녹을 수 있으니 조심스럽게 해야 한다고 하셨습니다. 가장 좋은 디솔더링 장비를 써도 한참 걸릴 거라고 하셨는데, 기판 뒤쪽에 열풍기를 대면 부품이 그냥 떨어지거나 핀을 살짝 밀기만 해도 빠질 겁니다.
- @userbinator — 반박 의견을 올려 주실래요? 이건 흔히 쓰는 방법입니다. 저도 이렇게 부품을 많이 회수했습니다.
- @rcxdude — 여기서는 플라스틱이 문제일 가능성이 큽니다. 이런 부품의 플라스틱은 쉽게 녹습니다. 얇고 녹는점이 낮은 데다 기계적으로 움직여야 하므로, 일반 칩 패키지보다 손상을 더 입힐 수 있습니다.
- @bobek — 얼마 전에 오래된 버스에서 플립닷을 하나 꺼내 되살렸습니다. https://www.bobek.cz/buse/
- @SahAssar — 참고로 제 쪽에서는 사이트 동영상이 재생되지 않습니다. 요청 결과로 동영상 대신 Git LFS 메타데이터만 돌아옵니다. 응답에는 파일 크기가 92,474,860바이트라고 나옵니다.
- @amelius — 커패시터 대신 음전원 레일을 쓰면 어떨까요? 트랜지스터 두 개만으로 코일 전류의 방향을 바꿀 수 있습니다.
- @schobi — 그래도 전류는 수 암페어에 이를 겁니다. 커패시터 회로는 잘못 구동해도 안전하다는 장점이 있습니다. 하프브리지 트랜지스터가 필요한 밀리초보다 오래 켜져 있어도 문제가 생기지 않습니다. 하프브리지 칩은 보통 위쪽과 아래쪽 트랜지스터가 동시에 켜지는 상황도 막습니다. 펌웨어를 개발하다 핀 하나가 높은 상태로 계속 남을 수 있으므로 유용합니다. 직접 구동하면 코일에 0.5A가 계속 흘러 자석선이 빠르게 타버릴 수 있습니다.
- @amelius — 맞습니다. 다만 컨트롤러를 제대로 프로그래밍하면 그런 상황을 막을 수 있습니다. 최신 마이크로컨트롤러에는 워치독 타이머도 있습니다. 커패시터 방식의 더 큰 장점은 전력을 아낀다는 점입니다. 중앙에서 처리할 수도 있겠지만요. 단점은 커패시터에서 전하가 조금씩 샐 수 있다는 점입니다. 다만 보기 좋게 표시하는 게 목적이라면 큰 문제는 아닐 것 같습니다.
- @ErroneousBosh — 난방 보일러의 가스 밸브 드라이버도 이런 방식으로 동작합니다. 밸브가 켜진 채로 고정될 일이 없도록 커패시터를 거쳐 구동합니다. 마이크로컨트롤러가 몇 Hz로 신호를 펄스화해 사실상 차지 펌프처럼 동작합니다. 출력이 낮은 상태로 고정되면 밸브는 꺼져 있으니 괜찮습니다. 출력이 높은 상태로 고정돼도 구동 커패시터가 1초 정도 지나면 충전돼 더는 전류를 통과시키지 않습니다. 그러면 펌프 커패시터가 방전돼 밸브가 닫힙니다. 솔레노이드 드라이버는 PWM으로도 과전류를 막습니다. 예전 Range Rover의 에어백 드라이버와 Citroën의 Hydractive 서스펜션 컨트롤러도 그랬습니다. Citroën에서는 마이크로컨트롤러가 Darlington 트랜지스터를 직접 구동해 서스펜션의 교차 연결 배관에 있는 밸브를 열었습니다. 밸브가 고압 유압에 맞서 빠르게 움직여야 하므로 큰 전류가 필요했지만, 밸브가 열린 상태는 오래 유지하면 안 됐습니다. 처음에는 약 250ms 동안 솔레노이드를 켠 뒤, 약 50Hz로 펄스화했습니다. 차가 조용할 때 차 밑에서 희미한 윙윙 소리가 났고, 주행 중 특정 장파 라디오 주파수에서도 들려 진단에 유용했습니다. 차체를 코너에서 세게 몰아 소프트 모드에서 하드 모드로 전환하면 윙윙 소리가 사라졌다가 다시 들렸습니다. Range Rover의 에어백 모듈은 큰 MOSFET 여섯 개와 연산 증폭기, 트랜지스터 두 개로 구성한 꽤 복잡한 아날로그 회로를 사용했습니다. 솔레노이드를 약 100ms 동안 켠 뒤 높은 주파수에서 약 30% 듀티로 펄스화했습니다. 밸브는 공기 압력으로 닫혀 있어 처음 열 때 큰 전류가 필요하지만, 스프링과 공기 압력을 이겨낸 뒤에는 훨씬 적은 전류로 유지할 수 있습니다.
- @schobi — 요약하면, Mitxela는 오래된 플립닷 디스플레이를 구동하는 회로 기판을 설계하고 제작했습니다. Look Mum No Computer의 Sam이 기증한 패널을 사용했고 Mike의 Mike's Electric Stuff 작업을 바탕으로 설계를 반복했습니다. 최종적으로 1㎡ 크기의 플립닷 화면에서 상호작용형 고속 유체 시뮬레이션을 실행했습니다. 훌륭한 실행력과 솜씨, 재미있는 결과물에 깊은 존경을 보냅니다.
원문: mitxela.com / 번역·요약: Trawling