저는 이 40달러짜리 ESP32 보드에 회로를 그렸고, AI가 그것을 설명했습니다.
손가락으로 회로를 스케치하면 AI가 설명해 줍니다
터치스크린에 손가락으로 그림을 그리거나 글씨를 쓰고, ASK를 탭하면 AI가 화면에 그리고 소리로 무엇을 그렸는지 알려줍니다. 세 가지 모드: 모양 이름 말하기, 손글씨 읽기, 손으로 그린 회로 설명하기.
마지막 모드가 가장 흥미롭습니다. 배터리, 저항, LED를 스케치하면 보드가 부품 이름을 말하고 회로가 무엇을 하는지 알려줍니다.
Robojax_Makerfab를 입력하세요. 사용하는 데 비용이 들지 않으며, 여기의 무료 코드와 튜토리얼을 지원하는 데 도움이 됩니다.이 프로젝트가 해결해야 했던 문제
SPI를 통해 이 디스플레이에서 픽셀을 다시 읽을 수 없고, 그래픽 라이브러리는 일반적으로 메모리에 복사본 없이 패널에 직접 그리므로 보낼 스크린샷이 없습니다. 해결책은 패널에 직접 그리지 않는 것입니다. 이 스케치는 PSRAM에 전체 프레임버퍼를 유지하는 Arduino_Canvas에 그립니다. 그 버퍼가 이미지이므로 fmt2jpg()가 그것을 JPEG로 직접 변환합니다.
잉크가 흰색 바탕에 검은색인 이유
비전 모델은 밝은 배경의 어두운 표시를 그 반대보다 훨씬 더 안정적으로 읽으며, 카메라에서 종이처럼 보입니다. 버튼은 캔버스가 아닌 패널에 그려지므로 AI가 보는 이미지의 일부가 되지 않습니다 - 깨끗한 흰색 필드에 당신의 그림만 표시됩니다.
획이 획처럼 보이게 만들기
그리기가 도트 매트릭스가 아닌 펜처럼 느껴지기 전에 두 가지가 올바르게 되어야 했습니다:
- 캔버스는 모든 터치 샘플에서 화면으로 플러시되지 않습니다 - 그렇게 하면 매번 SPI를 통해 115 KB를 푸시하여 모든 것을 지연시킵니다. 각 획은 캔버스에 그려지고 패널에 별도로 칠해지며, 거의 비용이 들지 않습니다.
- 획은 패널이 약 70 밀리초 동안 조용해진 후에만 끝납니다. 터치 컨트롤러는 모든 폴링에서 포인트를 반환하지 않으며, 각 빈 폴링을 손가락을 뗀 것으로 처리하면 선이 끊어진 점으로 분리됩니다.
세 가지 모드, 하나의 그림
그림은 답변 아래에 유지되므로 BACK TO DRAW를 탭하고 모드를 변경한 다음 같은 스케치에 대해 다른 질문을 할 수 있습니다. 그림으로는 선과 모양이고, 엔지니어로 질문하면 회로가 됩니다.
좋은 결과를 위한 팁
- 저렴한 정전식 스타일러스가 손끝보다 훨씬 잘 작동합니다.
- 크게 그리세요 - 캔버스는 240×240이므로 미세한 세부 사항이 아닌 몇 개의 큰 요소를 그리세요.
- 팜 리젝션이 없습니다. 손을 유리에서 떼세요.
MaTouch AI ESP32-S3 2.8" 보드 정보
이 페이지의 모든 프로젝트는 Makerfabs의 MaTouch AI ESP32-S3 2.8" TFT ST7789V에서 실행됩니다. 올인원 보드입니다: 컬러 터치스크린, 3 메가픽셀 카메라, 두 개의 마이크, 실제 스피커 증폭기, 모두 8 MB PSRAM이 있는 ESP32-S3로 구동됩니다. 이 조합이 다른 것을 연결하지 않고 단일 보드에서 이러한 AI 프로젝트를 가능하게 합니다.
8 MB PSRAM은 여기서 다른 어떤 숫자보다 중요합니다. 보드가 카메라 프레임, 몇 초의 녹음된 오디오 또는 base64로 인코딩된 사진을 동시에 메모리에 보관할 수 있게 해주며, 이 중 어느 것도 ESP32의 일반 RAM에 맞지 않습니다.
제조업체 문서: Makerfabs 위키 페이지.
주요 사양
- 프로세서: ESP32-S3, 듀얼 코어 240 MHz, WiFi 2.4 GHz + Bluetooth 5.0
- 메모리: 16 MB 플래시, 8 MB PSRAM (여기의 거의 모든 프로젝트에 필요)
- 디스플레이: 2.8" IPS, 320×240, ST7789V 드라이버, SPI
- 터치: GT911 정전식, 한 번에 5개 손가락 추적
- 카메라: OV3660, 3 메가픽셀, 최대 2048×1536
- 마이크: INMP441 I2S 디지털 마이크 2개 (진정한 스테레오 쌍)
- 스피커: MAX98357A 클래스 D 증폭기, 4 Ω에서 3.2 W
- 저장소: microSD 카드 슬롯 (SPI 모드)
- 전원: USB-C, JST 배터리 커넥터, TP4056 충전기, 전원 스위치
- 보드에도 포함: WS2812B RGB LED, PCF8563T 배터리 백업 실시간 클록, 공식 사양에 나열되지 않은 MAX17048 배터리 연료 게이지
USB CDC On Boot를 Disabled로 설정하세요. 잘못된 포트를 사용하면 오디오가 오작동하거나 업로드가 실패할 수 있습니다.배터리로 전원을 공급하시나요? 두 USB-C 소켓, TP4056 충전기 및 전원 스위치는 보드 테스트 기사에서 회로도와 함께 완전히 설명되어 있습니다 — 어떤 소켓이 충전되는지, 스위치가 켜져야 하는지 꺼져야 하는지 포함합니다.
Arduino IDE 설정
이 설정이 중요합니다. 사람들이 이 보드에서 보고하는 대부분의 문제는 이 중 하나가 잘못된 것이며, 코어 버전을 변경하면 재설정되므로 변경 후 다시 확인하세요.
| 설정 | 값 |
|---|---|
| 보드 | ESP32S3 Dev Module |
| ESP32 코어 버전 | 2.0.17 |
| PSRAM | OPI PSRAM |
| 플래시 크기 | 16MB (128Mb) |
| 파티션 구성표 | 16M Flash (3MB APP/9.9MB FATFS) |
| USB CDC On Boot | Disabled |
| 업로드 속도 | 921600 |
| 업로드 전 모든 플래시 지우기 | Disabled |
| 포트 | CH340K USB-C 포트 |
필수 라이브러리
이 프로젝트는 아래 표의 모든 라이브러리가 필요합니다 - 더도 말고 덜도 말고. 대부분 Arduino IDE의 Tools → Manage Libraries에서 직접 설치할 수 있지만, GFX Library for Arduino는 ZIP 파일에서 설치해야 합니다. 버전 번호가 중요하므로 정확히 나열된 것을 사용하세요.
| 라이브러리 | 버전 | 작성자 | 설치 위치 |
|---|---|---|---|
| GFX Library for Arduino | 1.5.6 | moononournation | ZIP 파일 - 아래 참조 |
| bb_captouch | 1.3.1 | Larry Bank | 라이브러리 관리자 |
| ArduinoJson | 7.x | Benoit Blanchon | 라이브러리 관리자 |
| Adafruit NeoPixel | 최신 버전 | Adafruit | 라이브러리 관리자 |
ZIP 파일에서 GFX 라이브러리 설치
- ZIP을 다운로드하세요. 이 프로젝트의 다운로드에 포함되어 있거나 Arduino_GFX 저장소에서 얻을 수 있습니다 - 녹색 Code 버튼을 클릭한 다음 Download ZIP을 클릭하세요.
- 다시 찾을 수 있는 위치에 저장하세요. 압축을 풀지 마세요.
- Arduino IDE에서 Sketch → Include Library → Add .ZIP Library를 클릭하세요.
- 다운로드한 ZIP 파일을 찾아 Open을 클릭하세요.
- IDE가 설치하고 창 하단에 확인합니다. 이미 1.6 버전이 설치된 경우 먼저
Documents/Arduino/libraries에서 해당 폴더를 삭제하세요. 그렇지 않으면 두 버전이 충돌합니다.
secrets.h 설정
WiFi 세부 정보와 API 키는 secrets.h에 넣습니다. 이 파일은 다운로드에 자리 표시자 값과 함께 포함되어 있습니다. Arduino IDE에서 해당 탭을 열고 자신의 값으로 교체하세요.
secrets.h에서 사용하세요.API 키 얻기
이 프로젝트는 클라우드 AI 서비스와 통신하므로 자체 키가 필요합니다. 이전에 해본 적이 없다면 걱정하지 마세요 - 서비스에 계정을 식별하는 비밀번호와 같은 개념입니다. 한 번만 몇 분이면 됩니다.
OpenAI - 눈
OpenAI는 사진을 보는 비전 모델을 제공합니다. 이미지를 보내는 프로젝트만 이 키가 필요합니다.
- platform.openai.com/api-keys로 이동하여 로그인하거나 계정을 만드세요.
- Create new secret key를 클릭하고 이름을 지정한 다음 생성하세요.
- 즉시 복사하세요 - 한 번만 표시됩니다.
- Billing을 열고 소액의 크레딧을 추가하세요. API는 선불이며 이미 가지고 있을 수 있는 ChatGPT 구독과 별개입니다.
키를 secrets.h에 OPENAI_KEY로 넣으세요.
Microsoft Azure Speech - 듣기 및 말하기용
Azure는 음성을 텍스트로 변환하고 답변을 다시 음성으로 변환합니다. 무료 티어는 이 페이지의 모든 것에 충분히 넉넉합니다.
- portal.azure.com으로 이동하여 Microsoft 계정으로 로그인하세요 (무료 계정도 괜찮습니다).
- Azure를 처음 사용하는 경우 세 가지 선택을 제공하는 Welcome to Azure 화면이 표시됩니다. Start with an Azure free trial을 선택하세요 - Azure에서 무엇이든 만들기 전에 구독이 필요합니다. (학생은 대신 Azure for Students를 선택하세요: 같은 결과, 카드 불필요.) 완전히 다른 Manage Microsoft Entra ID는 무시하세요.
- Create a resource를 클릭하고 Speech를 검색한 다음 Microsoft가 게시한 Speech service를 선택하세요.
- 양식을 작성하세요: 리소스 그룹, 이름을 지정하고 가까운 Region을 선택하세요 - 해당 지역을 표시된 대로 정확히 기록하세요, 예:
eastus. - Pricing tier에서 F0 (Free)를 선택하세요. 이는 매월 약 5시간의 음성-텍스트 변환과 50만 자의 텍스트-음성 변환을 허용합니다.
- Review + create를 클릭한 다음 Create를 클릭하세요. 약 1분 기다린 후 Go to resource를 클릭하세요.
- 왼쪽 메뉴에서 Keys and Endpoint를 엽니다. KEY 1과 Location/Region을 복사하세요.
이를 secrets.h에 AZURE_SPEECH_KEY 및 AZURE_REGION으로 넣으세요.
실행 비용
매우 적지만 무료는 아닙니다. 프로젝트를 실행하기 전에 대략 얼마를 지출하는지 알아야 합니다.
| 서비스 | 대략적인 비용 |
|---|---|
| OpenAI 비전 | 모델에 따라 사진당 약 1~2센트 |
| Azure Speech | 무료 티어는 매월 약 5시간 듣기 및 0.5 M 문자 말하기를 포함 |
가격은 변경되므로 견적이 아닌 가이드로 취급하세요. 이러한 각 서비스에는 지출을 확인할 수 있는 사용량 페이지가 있으며, 모두 지출 한도를 설정할 수 있습니다 - 첫날에 설정하는 것이 좋습니다.
문제 해결
| 증상 | 원인 및 해결책 |
|---|---|
| 화면이 검게 유지됨 | 잘못된 GFX 라이브러리 버전 (1.5.6 사용) 또는 잘못된 보드 설정. |
PSRAM alloc failed |
Tools → PSRAM이 OPI PSRAM으로 설정되지 않음. |
| 업로드 안 됨 / COM 포트 없음 | 잘못된 USB-C 포트 또는 CH340 드라이버가 설치되지 않음. |
이미지
This code has not been parsed yet. Please return to the admin panel to parse it.
필요할 수 있는 것들
-
기타Product page for MaTouch AI ESP32S3 2.8" TFT ST7789Vmakerfabs.com
자원 및 참고자료
-
문서화Makerfabs MaTouch ESP32-S3 2.8" Camera and Touchscreen: user's manualwiki.makerfabs.com
-
문서화
-
문서화Product page for MaTouch AI ESP32S3 2.8" TFT ST7789Vmakerfabs.com
-
외부Makerfabs websitemakerfabs.com
파일📁
아두이노 코드 (.ino)
-
makerfabs_ESP32S3_Draw_AI.zip Arduino sketchincludes the pin header and secrete header .h files
makerfabs_ESP32S3_Draw_AI.zip0.02 MB