출처는 아래 유튜브 참고!
1. 동기
Esp32와 60mm 아케이드 버튼을 이용해서 사이먼게임(기억력 게임)을 만들려던 프로젝트가 있었다. 인스트럭터블 사이트에서 사이먼게임 pcb를 만드는 법이 있어서, pcb와 부품들을 주문해서 만들었는데 안타깝게 작동이 안 되었다. 아마, 회로와 전자부품에 대한 지식과 이해가 부족해서 실패한 것 같다.

그래서, 오랫동안 보류중이었던 계획이었는데 최근에 바이브코딩으로 여러가지를 만들어보고 나서, pcb를 만들지 않아도 개발보드에 코딩으로 충분히 구현이 가능할 것으로 생각이 들어서 만들 마음을 먹었다.(프로젝트 진행에서 이게 제일 중요한 것 같다. ㅋㅋ)
2. 사이먼 게임 코딩
그래서, 원래 계획은 부품은 60mm 아케이드 버튼과 2인치 정도의 OLED, ESP32보드, led 4종류, 피에조 부저를 사용하고, 외형은 모델링해서 3D프린팅해서 손바닥 2개 크기 정도로 만들 생각이었다. 그래서, 부품들을 사용해서 브레드보드에 꼽아서 바이브 코딩으로 구현을 했다.
이렇게 만들고 보니까, 작게 만들어서 열쇠고리 정도의 크기가 된다면 들고 다니면서 심심할때마다 하면 좋을 것 같았다. 그리고, 나중에 체험용 아이템으로 써도 훌륭할 것 같아서, 미니 버전으로 방향을 바꿨다. 그런데, 미니 버전으로 구상을 해보니 생각보다 들어가야 하는 부품들이 많고 배터리도 추가되어서, 이 상태로는 도저히 안 미니해서 대체가능한 작은 부품들을 찾기 시작했다.
3. 검색
부피를 줄이기 위한 첫 번째는 전선들을 없애는 것이었다. 그래서, pcb를 만들어야겠다고 생각하고 pcb 설계하는 유튜브 강좌를 보기 시작했다.(하지만, 아직 4강 ...) 그래서, pcb를 만들면 전선들은 해결되므로 잠정적으로 해결되었다고 생각하고 두번째로 부품들의 크기를 줄이거나 여러 부품이 결합되어 있는 부품을 찾아보았다. 일단, 택트 스위치와 LED를 해결하고 싶어서 검색하다가 LED 내장 택트스위치를 발견하였다. 이것만 하더라도 LED 자리를 줄일 수 있어서 기분이 좋았다.

세번째, OLED와 ESP32를 열쇠고리 형태로 배치한다고 했을때, 배터리도 포함해야 하기 때문에(충전모듈도 추가) 아무리 생각해도 미니하지 않게 크기가 나올 것 같았다. 그러다가 문득, 알리에서 화면이 있는 개발보드를 본 기억이 났다.

이 제품의 스펙을 보니, 3.7v 리튬배터리 충전칩도 포함이어서, '배터리+ TTGO T-DISPLAY + LED 택트스위치 + 저항'으로 미니 버전으로 만들 수 있게 되었다. 그리고, 사용법을 알기 위해 유튜브를 찾아보던 중~~~~
4. 테트리스 in TTGO T-DISPLAY
이 영상을 보고 말았다, 왠지 카레향이 나는 유튜브 인트로라니~, 인도 출신 개발자들이 많긴 한가보다.
영상을 보고 따라하면서, 내가 잘못한 부분도 알 수 있었다. 이 영상에는 아두이노 IDE 설정부터 라이브러리, 코드 등 자세하게 올라와 있어서 그냥 보고 따라만 하면 완성할 수 있다.(자세한 설명은 영상에 있으므로 생략!)
그리고, 영상 목록들 중에 보면 초기화면에 Volos Projects라고 있는 게 이상해서 검색해봤다. 알고 보니 위 영상의 주인도 다른 채널에서 만들 코드를 가져와서 자세한 설명을 덧붙인 거였다.(그게 가장 위에 출처 표시한 채널이다.)
5. 3D모델링
그리고 이제 외형을 모델링해야 하는데, 역시 모델링은 귀찮으니 검색을 해보았다. TTGO T-DISPLAY가 나온지가 꽤 되어서 왠지 모델링이 어딘가에 있을 것 같았다. 일단은 메이커월드에서 검색해봤는데 결과가 신통치가 않았다. 그래서, 그냥 구글에서 검색을 해보니, 왠걸 딱 적당한 것들을 찾을 수가 있었다. 이걸 찾아보고 깨달은 것 하나는 예전 제품들의 모델링은 싱기버스에 더 많다는 것을 알 수 있었다.
*수정 : 아래에 첫번째 모델링이 보드를 케이스에 넣는데 요령이 필요하지만 가장 좋다. 2, 3번째 모델링은 버튼이 부서지는 단점이 있으므로 참고만 하자.
https://www.thingiverse.com/thing:4501444/files
TTGO T-Display Cases by pjmi
A box/case/enclosure for a TTGO T-Display microcontroller, with a deeper option for 10mm thick LiPo battery.Update 2025-07-16 I now uploaded a STEP file for you to modify for your own needs. Contains the top, the buttons, the slim base, a deep baseWARNING
www.thingiverse.com
TTGO T-Display case for 503450 LiPo battery by stevesch
TTGO T-Display case for a 503450 LiPo batteryModified from the original "battery options" thing located here:https://www.thingiverse.com/thing:4183337
www.thingiverse.com
TTGO T-Display Cases, with battery options by stevesch
Please encourage further development by donating at:https://www.paypal.com/paypalme/stevesch17Thanks in advance!These cases are designed to fit the TTGO T-Display or similar HiLetgo microcontroller modules with 1.14 inch LCD screens.The microcontroller boa
www.thingiverse.com
6. 완성 (코드 포함)
조립이라 할 것도 없고, TTGO T-DISPLAY의 충전포트가 JST 1,25mm라서 그 선만 납땜해서 연결해줬다.(보드를 사면 JST 1,25mm 전선이 하나 들어있다.)
조작법은 왼쪽 버튼은 왼쪽으로 이동, 오른쪽 버튼은 오른쪽 이동, 동시에 누르면 조각이 회전한다.


오른쪽 그림의 왼쪽은 버튼 노출된 버전이고 오른쪽은 버튼까지 커버된 버전이다. 왼쪽은 버튼이 잘 눌러지지 않아서, 오른쪽 버전이 더 좋고 디자인도 깔끔하다.
*수정 : 아래 그림이 현재 선택된 모델링 출력물이다. 버튼이 부서지지 않고 더 디자인이 좋다.

배터리 크기에 따라 모델링을 고르면 된다. 참고로 TTGO T-DISPLAY 1.14inch 버전의 크기는 아래 사진을 참고하고, 그 크기에 맞게 배터리를 선택하면 된다.
*수정 : 현재 선택된 모델링에서 배터리는 폭이 20mm 인것을 추천한다. 25mm를 초과하면 안 들어간다고 생각하자.

끝으로, 기존 코드는 딥슬립 모드(절전모드라고 생각하자.)가 없어서 화면이 계속 켜져있다보니 금방 배터리가 소모되었다. 바이브코딩으로 딥슬립 모드를 넣은 버전이 아래 코드이다. 1분간 입력이 없으면 자동으로 딥슬립모드로 들어가고 왼쪽 버튼을 누르면 부팅을 하며 화면이 켜진다. 이렇게 테스트해보니, 하루 이상 배터리가 가는 것을 확인하였다.
https://github.com/biscuitbox/Tetris-Game-in-TTGO-T-DISPLAY-1.14inch
GitHub - biscuitbox/Tetris-Game-in-TTGO-T-DISPLAY-1.14inch: Tetris in TTGO T-DISPLAY 1.14inch
Tetris in TTGO T-DISPLAY 1.14inch. Contribute to biscuitbox/Tetris-Game-in-TTGO-T-DISPLAY-1.14inch development by creating an account on GitHub.
github.com
7. 개선 사항
열쇠고리 형태로 만드는 것이 목표라 모델링을 수정하여 고리를 만들어야 한다. 그리고, lcd가 약하므로 충격에 주의할 것. 보호필름을 짤라서 덧대는 것도 고려해볼만하다.
끝.








