TrackWeight - 맥북 트랙패드를 디지털 저울로 사용하기
(github.com/KrishKrosh)- MacBook의 Force Touch 트랙패드를 활용해 디지털 저울 역할을 할 수 있도록 해주는 macOS 앱
- 트랙패드의 압력 센서를 이용해 표면의 압력을 무게로 변환하여 그램(gram) 단위로 제공
- Open Multi-Touch Support 라이브러리를 사용해 macOS에서 일반적으로 접근 불가능한 트랙패드의 상세 압력 데이터를 획득
- 트랙패드에서 정전 용량 변화, 즉 손가락 혹은 전도체가 표면에 닿아있을 때만 Force Touch 압력 이벤트가 발생하므로 손가락 접촉이 필수로 요구되며, 금속 물체 측정 시에는 종이나 천이 필요함
- 앱 실행 후 손가락을 트랙패드에 올려 놓고, 손가락이 닿은 상태를 유지하며 물건을 트랙패드 위에 놓으면 물체의 무게가 측정됨
-
요구 사항
- macOS 13.0 이상 (Open Multi-Touch Support 라이브러리 구동 필요)
- Force Touch 트랙패드 탑재 MacBook (2015년 이후 MacBook Pro, 2016년 이후 MacBook)
- App Sandbox 비활성화 (로우 레벨 트랙패드 접근을 위한 조건)
- 개발 시 Xcode 16.0 이상, Swift 6.0 이상 필요
- 본 앱은 실험적/교육적 목적의 프로젝트임으로, 정확한 계량이 필수적인 업무 혹은 상업적 상황에서는 반드시 정식 디지털 저울을 사용할 것
- 이 프로젝트를 보니 20년 전 PowerBook의 하드디스크 진동 감지 센서를 이용해 지진계처럼 건물의 공사 소음을 측정했던 기억이 떠오름.
- 내가 바로 그 소프트웨어(SeisMac)를 만들었음.
해커뉴스 새삼 놀랍네요...
Hacker News 의견
- 예전에 iPhone에서도 비슷한 기능의 앱이 있었음
- 혹시 iPhone 6S를 쓰고 있다면 TouchScale을 사용해볼 수 있음
- 기압계가 있는 폰이면 어떤 제품이든 저울처럼 사용할 수 있음. 대부분의 iPhone 6 이후 모델, Pixel, 삼성 플래그십 등이 해당됨. 지퍼백에 공기를 불어넣고 폰을 넣은 후 압력을 표시하는 앱을 실행함. 지퍼백 위에 무게를 아는 물건(예: 쿼터 동전)을 조심해서 올려놓으면, 디스플레이의 압력 변화로부터 작은 물건의 무게를 측정할 수 있음. 무게 변화와 압력 변화가 선형으로 비례해서 가능함
- 관련 기사 아카이브 링크
- 예전에는 weight API가 비공개로 바뀌었는데, 사람들이 iPhone을 약물 거래에 쓰지 못하게 막기 위해서였던 것으로 기억함
- 이번 아이디어가 재밌기는 한데, 약간 Rube Goldberg 머신 느낌이 있음. 설명은 다음과 같음:
- 저울 앱 실행
- 트랙패드에 손가락 올림
- 손을 뗀 상태에서 물체를 트랙패드에 올림
- 최소한의 압력으로 손가락을 계속 닿게 해두기
압력 센서는 정전용량을 감지해야 하므로 꼭 손가락을 닿게 해야 하고, 너무 세게 눌러도 안 됨
- 이런 것들이 제대로 동작하는지 테스트해 봤는데, 정말 기발한 해킹이라 생각함. 바로 이런 게 Hacker News에 어울린다고 느낌
- 얇은 도전성 폼이나 창의적인 구조의 주석지+알루미늄 포일도 쓰일 수 있지 않을까 생각함. 무게가 거의 없는 보조판 위에 물체를 올리는 식
- 손가락을 트랙패드 1~2mm 정도 위에만 올려도 정전용량이 감지될 때가 있음
- 핫도그도 정확하게 측정 가능할지 궁금함
- iPhone에서는 화면에 금속 숟가락을 올리고 그 숟가락 안에 물체를 올려 무게를 재는 트릭도 있었음
- TrackWeight는 Takuto Nakamura의 Open Multi-Touch Support library(라이브러리)를 활용해서 macOS에서 일반 앱에서는 접근할 수 없는 트랙패드의 모든 이벤트와 압력 데이터까지 가져온다는데, 라이브러리로는 되면서 왜 Swift 같은 공식 API에서는 공개되지 않았는지 궁금함
- Mac OS에는 "Private Frameworks"라는 것이 있음. 시스템에서 쓰지만 헤더 파일은 기본 제공하지 않음. 이런 프레임워크에서 헤더파일을 추출해외부 라이브러리(예: OpenMultitouchSupport)로 래핑하는 방식으로 접근 가능함
- 이 프로젝트를 보니 20년 전 PowerBook의 하드디스크 진동 감지 센서를 이용해 지진계처럼 건물의 공사 소음을 측정했던 기억이 떠오름. 관련 후기
- 내가 바로 그 소프트웨어(SeisMac)를 만들었음. Apple의 Sudden Motion Sensor(자유 낙하 감지로 하드디스크를 보호하는 센서) 비공개 API에 접근해서 3축 가속도 그래프를 보여주는 무료 앱을 만들었고, 랩탑을 여러 방향으로 기울이면서 자동 보정하는 기능도 있었음. 전 세계 사용자들이 선박, Drake Passage 등에서 측정한 결과를 보내오기도 했고, 교육용 지원금도 받았음. SSD로 바뀌면서 내게는 아쉬운 변화였음. Sudden Motion Sensor 위키
- 나도 iPhone을 기압 기록기로 써본 적 있음. 내 차 트렁크가 고속도로에서 아스팔트 이음새를 지날 때마다 조금씩 열리고 닫혀서 멀미가 났었음. 데이터로 Tesla 서비스에 보여주니 트렁크를 다시 조정해줬고, 문제가 사라졌음
- IBM이 한 건물에서 이사한 이유가 길 건너 신축 빌딩 때문에 발생하는 진동 때문에 데이터 센터의 하드디스크가 계속 고장 나서였다는 이야기를 들은 적 있음. 관련 링크
- ThinkPad의 진동 센서를 때림 감지용으로 써서, 노트북을 두드린 방향에 따라 윈도우 매니저의 가상 데스크탑이 좌우로 이동하도록 해킹한 사람들도 있었음
- HDD가 탑재된 Macbook을 쓸 때 이 앱이 떠오름
LiquidMac- 컴퓨터 각도에 따라 파티클 시스템으로 액체처럼 움직임을 모방해주는 앱이었음
- 정말 멋진 프로젝트라 궁금함. MacBook의 트랙패드로 측정 가능한 최소/최대 무게가 궁금함
- 정말 기발하고 실용적이기도 한 아이디어임. 정밀도/정확도는 테스트해봤는지, 그리고 이건 원래 의도된 사용법이 아니라 기기별 오차가 많을 것 같은데 어떤지 궁금함
- Apple 하드웨어는 일반적으로 처음부터 정밀 보정이 되어 출고됨. 제품 전체에서 일관성이 중요하니까, 트랙패드 촉감도 새 제품마다 차이가 있으면 매우 이상함
- 참고로 일반적인 로드셀(하중 게이지)도 비슷하게 보정함. 2점 보정(무부하→기준 하중)으로 충분하지만, 더 정확하게 하려면 3점 보정도 가능함. 로드셀 위키
- 이런 창의적인 해킹이 너무 좋음. 저울 위에 손가락이 올라가야만 동작한다는 아이러니도 재미있음.
- 예전에 3D Touch가 있을 때 UIForce라는 앱도 이런 기능을 했었음. 지금도 3D Touch가 사라진 것이 아쉬움
- 정말 유용한 기능이었음. Google에서 이미지를 저장할 때마다 iOS가 엉뚱한 텍스트를 선택하는 걸 볼 때 마다 아쉬움
- 바로 이런 게 왜 일반인들은 우리 같은 ‘기덕’을 ‘이상하다’고 생각하는 이유임. 계속 신기한 것들 만들어보고 싶음