> For the complete documentation index, see [llms.txt](https://melissa-industry.gitbook.io/openmascotai_hologram/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://melissa-industry.gitbook.io/openmascotai_hologram/4./sensors.md).

# 센서와 터치

재실 센서, 조도 센서, 앞턱 터치, 그리고 뚜껑의 터치 패드 3개입니다. 외함과 소리까지 먼저 만들고 나중에 더해도 되지만, 선은 모두 허브 기판 커넥터 열에 점퍼 선으로 꽂기만 하면 됩니다.

정식 회로도: [전장 도면집 HOLO-EL-07](/openmascotai_hologram/4./drawings.md)

| 부품               | 어디에                                        | 허브 커넥터                    | 전원    |
| ---------------- | ------------------------------------------ | ------------------------- | ----- |
| 재실 C4001         | 뚜껑 앞 띠 왼쪽 자리                               | 재실(3V3 · GND · TX · RX)   | 3.3 V |
| 조도 BH1750        | 뚜껑 앞면 Ø4 창 뒤(가운데에서 오른쪽 25 mm)              | 조도(3V3 · GND · SDA · SCL) | 3.3 V |
| 앞턱 TTP223 + 구리 띠 | 띠는 무대판 앞 가장자리 속 홈(앞턱 홈), 모듈은 그 밑 앞벽 안쪽 오른쪽 | 받침(3V3 · GND · TTP · DQ)  | 3.3 V |
| 터치 패드 3(구리테이프 줄) | 뚜껑 안쪽(밑면) Ø80 1곳 · Ø60 2곳                  | 터치(머리 · 왼쪽 · 오른쪽)         | 없음    |

![상판 몸체와 뚜껑 배치: 번호 8～12가 센서 자리](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-b480d86bad8f58f44bf10c0c04c050863360dd47%2Ftop-plan.png?alt=media)

위에서 내려다본 모습이고, 아래가 앞(관객 쪽)입니다. 1～6은 상판 몸체에, 7～12는 뚜껑에 붙는 것입니다.

| 번호 | 부품            | 놓는 곳                                                             | 고정                                                                             |
| -- | ------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| 1  | 모니터           | 가운데 포켓. 화면이 아래로, 베젤이 둘레 1.2 mm 턱에 얹힘                             | 뚜껑 누름 기둥 끝의 EVA 3 mm 폼이 눌러 줌                                                   |
| 2  | 모니터 포트 창      | 포켓 뒤 왼쪽. 모니터 포트 세 개(USB-C 두 개 · mini HDMI)가 보이고, 뒤로 35 mm 플러그 통로 | -                                                                              |
| 3  | 허브 기판         | 상판 몸체 왼쪽 앞, 포켓 옆                                                 | 받침 기둥 4개에 M2 × 5 태핑 나사. USB-C가 뒤로                                              |
| 4  | DS18B20(상판)   | 허브 기판 뒤쪽 모서리(직접 납땜 판은 오른쪽, PCB 판은 왼쪽)                            | 기판에 납땜                                                                         |
| 5  | 팬             | 뒷벽 안쪽 오른쪽, 바깥은 Ø37 창                                             | 동봉 나사 4개. 바람 화살표가 뒷벽(밖) 쪽                                                      |
| 6  | 케이블 홈         | 상판 바닥 뒤쪽                                                         | 기둥으로 오가는 선이 모두 여기로                                                             |
| 7  | 마이크 퍽 XVF3800 | 뚜껑 컵. 옆면 포트가 오른쪽 창을 봄                                            | 컵에 얹고 뚜껑을 덮으면 고정                                                               |
| 8  | 카메라 + 표시등     | 뚜껑 앞 띠 가운데, 표시등은 왼쪽 25 mm                                        | 카메라는 실물을 재서 뽑은 브래킷([카메라](/openmascotai_hologram/4./camera.md)), 표시등은 Ø3 구멍에 끼움 |
| 9  | 조도 BH1750     | 앞 띠 가운데에서 오른쪽 25 mm, Ø4 창 뒤                                      | 센서 칩을 창에 맞춰 양면 테이프                                                             |
| 10 | 재실 C4001      | 앞 띠 왼쪽 자리, 30 mm 쪽을 가로로 눕힘                                       | 자리에 끼우고(커넥터 때문에 입구에서 멈추면 그대로) 뒤에서 핫멜트. 앞에 금속 금지                                |
| 11 | 터치 패드(머리)     | 뚜껑 안쪽(밑면) Ø80 오목(깊이 1 mm). 바깥 윗면에는 고리 표시만                        | 구리테이프 줄을 5 mm씩 띄워 붙이고 묶음 줄로 이음(선은 먼저 납땜)                                       |
| 12 | 터치 패드(양옆)     | 뚜껑 안쪽(밑면) Ø60 오목 두 곳                                             | 11과 같음                                                                         |

{% hint style="warning" %}
네 가지 모두 **3V3**에 잇습니다. 5 V를 주면 센서의 출력도 5 V가 되어 허브 보드 입력이 망가집니다.
{% endhint %}

## 재실 센서 C4001

![재실 센서 C4001 ↔ 허브 재실 커넥터](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-1793431de31a0ca3f8ef99fcf79cd7bcf4a1b3d7%2Fwire-c4001.png?alt=media)

24 GHz 레이더로 사람이 있는지(8 m)와 움직이는지(12 m)를 알아냅니다. 플라스틱은 통과하므로 뚜껑 안에 숨겨 둡니다.

| C4001 핀 | 허브         |
| ------- | ---------- |
| +       | 3V3        |
| −       | GND        |
| C/R     | TX(GPIO17) |
| D/T     | RX(GPIO18) |

1. 점퍼 선(F/F 또는 M/F) 네 가닥으로 위 표대로 잇습니다. 20～30 cm면 충분합니다.
2. 모듈에 흰색 4핀 커넥터가 달려 왔으면, 같이 온 4핀 케이블을 꽂아 씁니다. 선 색은 믿지 말고 모듈에 인쇄된 + · − · C/R · D/T에서 각 선을 따라가 확인한 뒤, 허브 쪽은 +가 3V3, −가 GND에 오게 꽂습니다. 끝이 허브 핀에 안 맞으면 잘라서 점퍼 선 암 끝을 이어 붙입니다([납땜 기초](/openmascotai_hologram/4./soldering-basics.md)).
3. 모듈을 뚜껑 앞 띠 왼쪽의 자리(22 × 30 mm)에 **30 mm 쪽을 가로로 눕혀** 끼우고, 뒤에서 핫멜트로 고정합니다. 커넥터 때문에 끝까지 들어가지 않고 자리 입구에서 멈추면 그대로 입구에 고정해도 됩니다(테두리에 핫멜트 두세 점). 레이더 전파는 플라스틱과 그 사이 공기를 지나갑니다. 센서가 앞면과 나란한지만 봅니다.
4. 앞에 금속을 두지 않습니다. 센서 앞은 뚜껑 앞면 플라스틱(3 mm)과 공기뿐이어야 합니다.
5. 통신은 UART 9600 bps입니다. 허브 펌웨어는 DFRobot\_C4001 라이브러리의 UART 예제로 시험합니다.

## 조도 센서 BH1750(GY-302)

![조도 센서 BH1750 ↔ 허브 조도 커넥터](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-fffecb5c1cc57695663572228ad4de9d7efbd0cc%2Fwire-bh1750.png?alt=media)

주변 밝기를 재서 LED와 배경판 밝기를 자동으로 맞추는 데 씁니다.

| BH1750 핀 | 허브          |
| -------- | ----------- |
| VCC      | 3V3         |
| GND      | GND         |
| SCL      | SCL(GPIO9)  |
| SDA      | SDA(GPIO8)  |
| ADDR     | 비움(주소 0x23) |

센서 칩(모듈 가운데 작은 네모)을 뚜껑 앞면의 Ø4 창에 맞춰 양면 테이프로 붙입니다.

## 앞턱 터치 TTP223

![받침 4심 선: 허브 → DS18B20 → TTP223 → 구리 띠](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-3a1c48bb36a8b22445706ef5a538904fdeb34ae0%2Fbase-harness.png?alt=media)

무대판 앞 가장자리 속에는 가로로 긴 빈 홈(앞턱 홈)이 있습니다. 거기에 구리테이프 띠를 붙여 전극으로 쓰고, TTP223 모듈이 손이 닿았는지를 판단해 허브에 알립니다. 캐릭터 발밑을 "콕 찌르는" 동작입니다.

![앞에서 본 받침: TTP223 모듈은 앞벽 안쪽 오른쪽, 구리 띠는 앞턱 홈 안](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-ce458c03a54cf6801dd6e7e98f39af7971f3984d%2Fttp223-where.jpg?alt=media)

* 앞턱 홈은 받침 안쪽(아래)으로 트여 있습니다. 폭 5.6 mm, 길이 336 mm이고, 관객 쪽 겉벽은 1.5 mm만 남아 있습니다.
* 손가락은 구리 띠에 닿지 않고 앞턱 겉면(관객 쪽 면 · 앞 모서리)을 누릅니다. 정전식 터치는 손가락이 가까이 올 때 구리 띠의 전기 용량이 조금 느는 것을 재므로, 1.5 mm 플라스틱 너머로도 감지합니다(스마트폰이 유리 너머로 손가락을 아는 것과 같습니다).
* 모듈은 그 홈 입구 바로 밑, 앞벽 안쪽 면에 붙습니다. 오른쪽 옆벽 안쪽에서 약 62 mm, 모듈 윗변이 홈 입구보다 약 4 mm 아래입니다.

![받침 안에서 앞벽 쪽을 본 확대: 앞턱 홈 입구 · 구리 띠 · 선 · 모듈 · 4심 선](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-0f672966a2ba330274e21ae6a075f0d2bff5186c%2Fttp223-close.jpg?alt=media)

| TTP223 핀 | 받침 4심 선 가닥  |
| -------- | ----------- |
| VCC      | 3V3         |
| GND      | GND         |
| I/O(OUT) | TTP(GPIO10) |

받침은 뒤집어 바닥판을 떼고 작업합니다. 뒤집으면 홈 입구가 위를 보고, 모듈 자리는 홈 입구 약 4 mm 위가 됩니다.

1. 구리테이프(폭 10 mm)를 약 336 mm 길이로 자르고, 덮개 종이를 떼기 전에 한쪽 끝에 선(약 10 cm)을 납땜합니다. 붙인 뒤에는 인두를 대지 않습니다. 플라스틱이 녹습니다.
2. 선의 다른 끝을 TTP223 모듈의 터치 패드 자리(둥근 패드 또는 "I" 표시 패드)에 납땜합니다.
3. 띠를 앞턱 홈 안의 **겉벽 쪽**(두께 1.5 mm, 관객 쪽) 면에 붙입니다. 선이 달린 끝이 오른쪽(앞에서 볼 때) 끝에 오게 하고, 선은 홈 입구로 빼냅니다.
4. 모듈의 부품이 적은 평평한 면을 양면 테이프로 앞벽 안쪽 면에 붙입니다. 자리는 위 그림대로 오른쪽 옆벽 안쪽에서 약 62 mm, 홈 입구 바로 밑(약 4 mm)입니다. 핀이 받침 안쪽을 보게 합니다.
5. 받침 4심 선의 3V3 · GND · TTP 가닥을 모듈 핀에 꽂습니다. 핀 이름(VCC · GND · I/O)은 모듈에 인쇄된 것을 봅니다. 넷째 가닥(DQ)은 중간의 DS18B20에서 끝났습니다.
6. 전원을 켤 때 TTP223이 스스로 기준을 잡습니다. **켜는 순간 앞턱에 손을 대고 있지 않습니다.**

## 터치 패드 3개

![터치 패드 3개 ↔ 허브 터치 커넥터](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-b775e5ea03b7ca7bbefd4eaaf3aa4900035d4a31%2Fwire-touch.png?alt=media)

뚜껑 윗면을 쓰다듬으면 캐릭터가 반응합니다. 허브 보드(ESP32-S3)의 자체 터치 기능으로, 뚜껑 안쪽에 붙인 구리테이프의 정전용량 변화를 읽습니다.

구리테이프는 폭이 10 mm라서 원을 꽉 채우지 않습니다. 줄을 5 mm씩 띄워 나란히 붙이고, 그 위에 묶음 줄 하나를 가로질러 붙여 하나로 잇습니다.

![터치 패드 구리 줄 붙이는 법: 머리 Ø80 · 양옆 Ø60 오목](https://2752522080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSwJhoq81i55RgbIAoGAO%2Fuploads%2Fgit-blob-6a63915e7087ffb03cac1958cf2b2f744ba4cf59%2Ftouch-strips.png?alt=media)

| 자리          | 나란한 줄(가운데가 가장 긺)          | 묶음 줄  | 선 길이 · 허브 핀          |
| ----------- | ------------------------- | ----- | -------------------- |
| 머리(Ø80 오목)  | 30 · 65 · 75 · 65 · 30 mm | 70 mm | 약 25 cm · 터치 머리(11)  |
| 왼쪽(Ø60 오목)  | 40 · 55 · 40 mm           | 40 mm | 약 25 cm · 터치 왼쪽(12)  |
| 오른쪽(Ø60 오목) | 40 · 55 · 40 mm           | 40 mm | 약 40 cm · 터치 오른쪽(13) |

1. 표의 길이대로 구리테이프를 가위로 곧게 자릅니다. 원 모양으로 오리지 않습니다. 세 곳을 합쳐 약 70 cm 듭니다.
2. 묶음 줄 3개는 덮개 종이를 떼기 전에 한쪽 끝 위에 선을 납땜해 둡니다. 선 끝에 납을 먼저 입히고, 인두는 2～3초만 댑니다. 뚜껑에 붙인 뒤에는 인두를 대지 않습니다. 플라스틱이 녹습니다.
3. 뚜껑을 뒤집어 놓고 **안쪽 면(밑면)** 의 1 mm 오목에 나란한 줄을 5 mm씩 띄워 붙입니다. 가장 긴 줄이 가운데입니다. 바깥 윗면에는 붙이지 않습니다. 윗면의 고리 표시가 그 자리이고, 손을 고리 안에 대면 약 2 mm 플라스틱 너머로 구리가 손을 알아챕니다.
4. 묶음 줄을 나란한 줄 위에 가로질러 겹쳐 붙이고, 겹친 곳마다 손톱으로 꾹 문지릅니다. 선이 달린 끝은 뚜껑을 덮었을 때 허브가 있는 쪽(왼쪽)으로 두고, 핫멜트 한 점으로 눌러 둡니다.
5. 선의 다른 끝(점퍼 선 암 끝)을 허브 "터치" 커넥터의 머리 · 왼쪽 · 오른쪽 핀에 꽂습니다. 저항 330 Ω은 허브 기판에 이미 있습니다. 20 cm 점퍼 선으로 모자라면 [선 끝에 점퍼 선 암 끝 달기](/openmascotai_hologram/4./soldering-basics.md)대로 늘립니다.
6. 선은 닿는 만큼만 짧게 하고, 다른 선과 묶지 않고 떨어뜨려 둡니다. 다른 선에 붙어 있으면 오작동합니다.

{% hint style="info" %}
**꽉 채우지 않아도 되는 까닭:** 손가락 끝은 폭이 1 cm쯤이라 5 mm 틈 위에 대도 양옆 줄에 걸칩니다. 쓰다듬는 손바닥은 여러 줄을 한꺼번에 덮습니다. 테이프 풀이 전기가 통하지 않는 종류여도 됩니다. 터치는 전기가 흐르는지가 아니라 정전용량을 재기 때문에, 10 × 10 mm로 겹친 곳이 작은 축전기처럼 줄을 이어 줍니다.
{% endhint %}

## 확인(벤치 시험 스케치로)

* [ ] 조도: 직렬 모니터의 lx 값이 손으로 가리면 내려가고 불빛을 비추면 올라간다
* [ ] 앞턱: 앞턱 겉면(관객 쪽 면)을 손가락으로 누르면 값이 1, 떼면 0
* [ ] 터치 3: 고리 위에 손을 대면 그 패드의 touchRead 값이 오르고(손바닥은 많이, 손가락 끝은 조금), 떼면 돌아온다
* [ ] 터치 3: 고리 안 여러 곳을 손가락 끝으로 눌러 봐도 값이 오른다. 안 오르는 곳이 있으면 줄 사이가 벌어졌거나 묶음 줄이 그 줄에 겹치지 않은 것
* [ ] 재실: DFRobot 예제로 사람이 다가가면 presence가 1이 된다

뚜껑 쪽 부품의 선은 모두 점퍼 선이라, 뚜껑을 열 때 허브에서 빼면 됩니다.
