Search Code

Saya Menggambar Sirkuit di Papan ESP32 $40 Ini dan AI Menjelaskannya

Saya Menggambar Sirkuit di Papan ESP32 $40 Ini dan AI Menjelaskannya

Gambarlah rangkaian dengan jarimu dan biarkan AI menjelaskannya

Gambar atau tulis di layar sentuh dengan jarimu, ketuk ASK, dan AI memberi tahu apa yang kamu gambar - di layar dan dengan suara. Tiga mode: sebutkan bentuknya, baca tulisan tangan, atau jelaskan rangkaian yang digambar tangan.

Yang terakhir itu yang menarik. Gambarlah baterai, resistor, dan LED, dan papan akan menyebutkan komponennya dan memberi tahu apa fungsi rangkaian itu.

Makerfab_ESP32S3-MaTouch-draw-7-_main

Masalah yang harus dipecahkan proyek ini

Kamu tidak dapat membaca piksel kembali dari layar ini melalui SPI, dan pustaka grafis biasanya menggambar langsung ke panel tanpa salinan di memori - jadi tidak ada tangkapan layar untuk dikirim ke mana pun. Solusinya adalah jangan pernah menggambar langsung ke panel. Sketsa ini menggambar ke dalam Arduino_Canvas, yang menyimpan framebuffer penuh di PSRAM. Buffer itu adalah gambarnya, jadi fmt2jpg() mengubahnya langsung menjadi JPEG.

 

Mengapa tintanya hitam di atas putih

Model visi membaca tanda gelap di latar terang jauh lebih andal daripada sebaliknya, dan itu terlihat seperti kertas di kamera. Tombol-tombol digambar di panel, bukan di kanvas, sehingga tidak pernah menjadi bagian dari gambar yang dilihat AI - AI hanya mendapatkan gambarmu di bidang putih bersih.

Membuat goresan terlihat seperti goresan

Dua hal harus benar sebelum menggambar terasa seperti pena, bukan matriks titik:

  • Kanvas tidak disiram ke layar pada setiap sampel sentuhan - itu mendorong 115 KB melalui SPI setiap kali dan memperlambat semuanya. Setiap goresan digambar ke kanvas dan dicat di panel secara terpisah, yang hampir tidak memakan biaya apa pun.
  • Sebuah goresan hanya berakhir setelah panel diam selama sekitar 70 milidetik. Pengontrol sentuh tidak mengembalikan titik pada setiap polling, dan memperlakukan setiap polling kosong sebagai jari yang terangkat memecah garis menjadi titik-titik yang terputus.

Tiga mode, satu gambar

Gambarmu tetap ada di bawah jawaban, jadi kamu dapat mengetuk BACK TO DRAW, mengubah mode, dan mengajukan pertanyaan berbeda tentang sketsa yang sama. Sebagai gambar, itu adalah garis dan bentuk; ditanya sebagai insinyur, itu menjadi rangkaian.

Tips untuk hasil yang baik

  • Stylus kapasitif murah bekerja jauh lebih baik daripada ujung jari.
  • Gambar besar - kanvasnya 240×240, jadi beberapa elemen besar, bukan detail halus.
  • Tidak ada penolakan telapak tangan. Jauhkan tanganmu dari kaca.

Tentang papan MaTouch AI ESP32-S3 2.8"

Setiap proyek di halaman ini berjalan di MaTouch AI ESP32-S3 2.8" TFT ST7789V dari Makerfabs. Ini adalah papan all-in-one: layar sentuh berwarna, kamera 3 megapiksel, dua mikrofon, dan amplifier speaker sungguhan, semuanya digerakkan oleh ESP32-S3 dengan 8 MB PSRAM. Kombinasi itulah yang membuat proyek AI ini mungkin dilakukan di satu papan tanpa tambahan apa pun.

8 MB PSRAM lebih penting daripada angka lainnya di sini. Itulah yang memungkinkan papan menyimpan bingkai kamera, beberapa detik audio yang direkam, atau foto berenkode base64 di memori secara bersamaan - tidak ada yang muat di RAM normal ESP32.

Dokumentasi pabrikan: halaman wiki Makerfabs.

Spesifikasi utama

  • Prosesor: ESP32-S3, dual core 240 MHz, WiFi 2.4 GHz + Bluetooth 5.0
  • Memori: 16 MB flash, 8 MB PSRAM (diperlukan oleh hampir setiap proyek di sini)
  • Layar: 2.8" IPS, 320×240, driver ST7789V, SPI
  • Sentuh: GT911 kapasitif, melacak 5 jari sekaligus
  • Kamera: OV3660, 3 megapiksel, hingga 2048×1536
  • Mikrofon: dua mikrofon digital I2S INMP441 (pasangan stereo asli)
  • Speaker: amplifier kelas-D MAX98357A, 3.2 W ke 4 Ω
  • Penyimpanan: slot kartu microSD (mode SPI)
  • Daya: USB-C, konektor baterai JST, pengisi daya TP4056, sakelar daya
  • Juga di papan: LED RGB WS2812B, jam waktu nyata bertenaga baterai PCF8563T, dan pengukur bahan bakar baterai MAX17048 yang tidak tercantum dalam spesifikasi resmi

Memberi daya dari baterai? Kedua soket USB-C, pengisi daya TP4056, dan sakelar daya dijelaskan sepenuhnya, dengan skema, di artikel uji papan — termasuk soket mana yang mengisi daya dan apakah sakelar harus menyala atau mati.

Pengaturan Arduino IDE

Pengaturan ini penting. Sebagian besar masalah yang dilaporkan orang dengan papan ini adalah salah satu dari ini yang salah, dan mereka kembali ke default saat kamu mengubah versi inti, jadi periksa lagi setelah perubahan apa pun.

Pengaturan Nilai
Board ESP32S3 Dev Module
Versi inti ESP32 2.0.17
PSRAM OPI PSRAM
Ukuran Flash 16MB (128Mb)
Skema Partisi 16M Flash (3MB APP/9.9MB FATFS)
USB CDC On Boot Disabled
Kecepatan Unggah 921600
Hapus Semua Flash Sebelum Unggah Disabled
Port port USB-C CH340K

Pustaka yang diperlukan

Proyek ini membutuhkan setiap pustaka dalam tabel di bawah - tidak lebih, tidak kurang. Sebagian besar terinstal langsung dari Tools → Manage Libraries di Arduino IDE, tetapi GFX Library for Arduino harus diinstal dari file ZIP. Nomor versi penting, jadi gunakan persis yang tercantum.

Pustaka Versi Penulis Instal dari
GFX Library for Arduino 1.5.6 moononournation File ZIP - lihat di bawah
bb_captouch 1.3.1 Larry Bank Library Manager
ArduinoJson 7.x Benoit Blanchon Library Manager
Adafruit NeoPixel versi terbaru apa pun Adafruit Library Manager

Menginstal pustaka GFX dari file ZIP

  1. Unduh ZIP-nya. Itu termasuk dalam unduhan proyek ini, atau kamu bisa mendapatkannya dari repositori Arduino_GFX - klik tombol hijau Code, lalu Download ZIP.
  2. Simpan di tempat yang bisa kamu temukan lagi. Jangan unzip.
  3. Di Arduino IDE, klik SketchInclude LibraryAdd .ZIP Library.
  4. Cari file ZIP yang kamu unduh dan klik Open.
  5. IDE menginstalnya dan mengonfirmasi di bagian bawah jendela. Jika kamu sudah memiliki versi 1.6 yang terinstal, hapus folder itu dari Documents/Arduino/libraries terlebih dahulu, atau keduanya akan bertentangan.

 

Makerfab_ESP32S3-MaTouch-draw-6-robojax ditulis tangan di layar
Makerfab_ESP32S3-MaTouch-draw-3-rangkaian digambar tangan
Makerfab_ESP32S3-MaTouch-draw-4-kata hello digambar tangan

Menyiapkan secrets.h

Detail WiFi dan kunci API apa pun masuk ke secrets.h, yang termasuk dalam unduhan dengan nilai placeholder. Buka tab itu di Arduino IDE dan ganti dengan milikmu sendiri.

Mendapatkan kunci API-mu

Proyek ini berbicara ke layanan AI cloud, jadi kamu memerlukan kunci sendiri. Jika kamu belum pernah melakukan ini sebelumnya, jangan khawatir - ini sama seperti kata sandi yang mengidentifikasi akunmu ke layanan. Butuh beberapa menit, sekali saja.

OpenAI - matanya

OpenAI menyediakan model visi yang melihat gambar. Hanya proyek yang mengirim gambar yang memerlukan ini.

  1. Buka platform.openai.com/api-keys dan masuk atau buat akun.
  2. Klik Create new secret key, beri nama, dan buat.
  3. Salin segera - hanya ditampilkan sekali.
  4. Buka Billing dan tambahkan sejumlah kecil kredit. API ini prabayar dan terpisah dari langganan ChatGPT apa pun yang mungkin sudah kamu miliki.

Masukkan kunci ke secrets.h sebagai OPENAI_KEY.

Microsoft Azure Speech - untuk mendengarkan dan berbicara

Azure mengubah ucapanmu menjadi teks dan mengubah jawaban kembali menjadi suara. Tingkat gratisnya cukup murah hati untuk semua yang ada di halaman ini.

  1. Buka portal.azure.com dan masuk dengan akun Microsoft (akun gratis tidak masalah).
  2. Jika kamu belum pernah menggunakan Azure sebelumnya, kamu akan melihat layar Welcome to Azure yang menawarkan tiga pilihan. Pilih Start with an Azure free trial - kamu perlu langganan sebelum Azure mengizinkanmu membuat apa pun. (Pelajar harus memilih Azure for Students sebagai gantinya: hasil yang sama, tanpa kartu yang diperlukan.) Abaikan Manage Microsoft Entra ID, yang merupakan hal yang sama sekali berbeda.
  3. Klik Create a resource, cari Speech, dan pilih Speech service yang diterbitkan oleh Microsoft.
  4. Isi formulir: grup sumber daya apa pun, nama apa pun, dan pilih Region yang dekat denganmu - tulis region itu persis seperti yang muncul, misalnya eastus.
  5. Untuk Pricing tier pilih F0 (Free). Itu memungkinkan sekitar lima jam ucapan-ke-teks dan setengah juta karakter teks-ke-ucapan setiap bulan.
  6. Klik Review + create, lalu Create. Tunggu sekitar satu menit, lalu klik Go to resource.
  7. Di menu kiri buka Keys and Endpoint. Salin KEY 1 dan Location/Region.

Masukkan itu ke secrets.h sebagai AZURE_SPEECH_KEY dan AZURE_REGION.

Berapa biaya untuk menjalankannya

Sangat sedikit, tetapi tidak gratis, dan kamu harus tahu kira-kira berapa yang kamu belanjakan sebelum meninggalkan proyek berjalan.

Layanan Perkiraan biaya
OpenAI vision kira-kira satu atau dua sen per gambar, tergantung modelnya
Azure Speech tingkat gratis mencakup sekitar 5 jam mendengarkan dan 0.5 M karakter berbicara per bulan

Harga berubah, jadi anggap ini sebagai panduan, bukan kutipan. Setiap layanan ini memiliki halaman penggunaan tempat kamu dapat melihat apa yang telah kamu belanjakan, dan semuanya memungkinkanmu menetapkan batas pengeluaran - yang layak dilakukan di hari pertama.

Pemecahan masalah

Gejala Penyebab dan perbaikan
Layar tetap hitam Versi pustaka GFX salah (gunakan 1.5.6) atau pengaturan papan salah.
PSRAM alloc failed Tools → PSRAM tidak diatur ke OPI PSRAM.
Tidak ada yang diunggah / tidak ada port COM Port USB-C salah, atau driver CH340 tidak terinstal.

Gambar

Makerfab_ESP32S3-MaTouch-draw-7-_main
Makerfab_ESP32S3-MaTouch-draw-7-_main
Makerfab_ESP32S3-MaTouch-draw-2-
Makerfab_ESP32S3-MaTouch-draw-2-
Makerfab_ESP32S3-MaTouch-draw-3-
Makerfab_ESP32S3-MaTouch-draw-3-
Makerfab_ESP32S3-MaTouch-draw-4-
Makerfab_ESP32S3-MaTouch-draw-4-
Makerfab_ESP32S3-MaTouch-draw-5-
Makerfab_ESP32S3-MaTouch-draw-5-
Makerfab_ESP32S3-MaTouch-draw-6-
Makerfab_ESP32S3-MaTouch-draw-6-
Makerfab_ESP32S3-MaTouch-draw-7-_main
Makerfab_ESP32S3-MaTouch-draw-7-_main
Makerfab_ESP32S3-MaTouch-draw-8-
Makerfab_ESP32S3-MaTouch-draw-8-
Makerfab ESP32S3 MaTouch draw 1
Makerfab ESP32S3 MaTouch draw 1
890-Makerfabs MaTouch ESP32-S3 2.8" Camera and Touchscreen: Daraw AI (video 2)
Bahasa: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Berkas📁

Kode Arduino (.ino)