rakit Β· kabel Β· kartu sd

πŸ”§ Rakit Mochi DFPlayer

Bahan, kabel per pin, isi kartu microSD DFPlayer, dan solusi masalah umum.

🧠 ESP32-C3 Super MiniπŸ“Ί ST7789 1,3" 240Γ—240🎡 DFPlayer MiniπŸ“± Chronos BLE⚑ firmware 0.7.1

🧺 Bahan

1Γ—

🧠 ESP32-C3 Super Mini

Flash 4 MB, USB-C, BLE.

1Γ—

πŸ“Ί Layar ST7789 1,3"

IPS 240Γ—240, SPI 7 pin (tanpa CS) atau 8 pin.

1Γ—

🎡 DFPlayer Mini

Pemutar MP3 dengan slot microSD dan amplifier 3 W.

1Γ—

πŸ”Š Speaker 8 Ξ©

Kecil, 0,5–3 W, ke SPK_1/SPK_2.

1Γ—

πŸ’Ύ Kartu microSD

FAT32, ≀ 32 GB.

1Γ—

🟫 Resistor 1 kΩ

Di jalur GPIO20 β†’ RX DFPlayer.

1Γ—

πŸ‘† Tombol / TTP223

Ke GPIO1, tanpa solder.

lihat catatan sentuh
1Γ—

πŸŒ€ MPU6050

Untuk fitur goyang. Tanpa modul ini, fitur goyang mati sendiri.

opsional

πŸ”Œ Kabel

ℹ️ Gambar kabel lengkap: Diagram kabel. Rakit langkah demi langkah: Demo rakit.

Sumber: firmware/include/MochiRzmong.h dan firmware/include/User_Setup_ST7789.h.

Kaki modulESP32-C3Catatan
TFT SCL / SCLKGPIO4
TFT SDA / MOSIGPIO6
TFT DCGPIO3
TFT RES / RSTGPIO10
TFT CStidak dipakaiJika modul punya kaki CS, sambungkan ke GND
TFT BLK (lampu latar)GPIO7HIGH nyala, LOW mati saat berhenti
TFT VCC3V3
Sentuh / tombolGPIO1TTP223 (tanpa solder) atau tombol ke GND; jenisnya dideteksi saat nyala
DFPlayer RXGPIO20 lewat resistor Β±1 kΞ©ESP TX β†’ RX modul
DFPlayer TXGPIO21TX modul β†’ ESP RX. Wajib agar "trek selesai" terdeteksi
DFPlayer BUSYGPIO5 (opsional)Build dengan -DMOCHI_PIN_DF_BUSY=5
DFPlayer VCC5 VDari VBUS/5V, bukan 3V3
DFPlayer SPK_1 / SPK_2Speaker 8 Ξ©Langsung ke speaker, tanpa amplifier
MPU6050 SDA / SCLGPIO8 / GPIO9Opsional. Pull-up 4,7 kΞ© ke 3V3 jika modul belum punya
MPU6050 VCC3V3
GNDgabung semuaESP, layar, DFPlayer, MPU6050, sentuh

⚠️ GPIO9 adalah pin strap: jangan ditarik ke GND saat boot. GPIO20/21 adalah UART0 bawaan chip; log ESP dibaca lewat USB CDC.

ℹ️ Catatan sentuh: firmware mendeteksi jenis sensor sendiri saat nyala: GPIO1 dibaca sebentar dengan pull-up lalu pull-down, sehingga TTP223 bawaan pabrik (HIGH saat disentuh), TTP223 dengan pad/jumper A disolder (LOW saat disentuh), maupun tombol tekan ke GND langsung jalan tanpa solder apa pun. Syaratnya: jangan sentuh sensor Β±1 detik setelah nyala (TTP223 juga mengkalibrasi diri saat itu). Kalau terlanjur dan sensor terbaca tersentuh terus, firmware membalik polaritas sendiri setelah 10 detik, hanya dalam 60 detik pertama setelah nyala. Paksa manual lewat build_flags: -DMOCHI_TOUCH_ACTIVE_HIGH (aktif HIGH) atau -DMOCHI_TOUCH_MODE=2 (aktif LOW + pull-up).

πŸ’Ύ Kartu SD untuk DFPlayer

Isi kartu siap pakai: folder sd/mp3/ di repo (48 file, 1,4 MB). DFPlayer memutar file root menurut urutan salin (file ke-N yang disalin), bukan nama.

1
Format kartu FAT32 (≀ 32 GB). Kartu harus kosong.
2
Salin 0001.mp3 … 0048.mp3 ke root, berurutan satu per satu (jangan seret sekaligus).
3
Sesudahnya buat folder /01 dan salin lagu 001.mp3, 002.mp3, … untuk Pemutar MP3.
# Linux (kartu di /media/SD)
for f in sd/mp3/*.mp3; do cp "$f" /media/SD/; sync; done

# Windows PowerShell (kartu di E:)
Get-ChildItem sd\mp3\*.mp3 | Sort-Object Name | ForEach-Object { Copy-Item $_.FullName E:\ }
/0001.mp3 … /0048.mp3      suara animasi + Chronos (isi sd/mp3/), disalin PERTAMA dan berurutan
/01/001.mp3 … 255.mp3      lagu untuk Pemutar MP3, disalin SESUDAHNYA
File (root)Dipakai untukSuara di sd/mp3/
0001–0018–hening 0,5 dtk (pengisi)
0019model 1 wajah/senyum_kedip (saat nyala)tawa kecil β€œhi-hi-hi” + denting kedip, 8 dtk
0020model 2 wajah/pusing (goyang)nada goyang menurun + per β€œboing”, 4,4 dtk
0021model 4 wajah/sorotdesis lirik kiri-kanan + blip, 6 dtk
0022model 5 wajah/sirinesirine polisi naik-turun Γ—2, 3,8 dtk
0023model 3 wajah/cinta (tahan)detak jantung + arpeggio + kilau, 2,5 dtk
0024–0025–hening (pengisi)
0026model 9 gundam/helm_hujanhujan di helm + tetes + servo, 3 dtk
0027model 10 gundam/helm_siaga (tahan)servo + bip siaga, 1,6 dtk
0028model 11 gundam/isyaratsandi radio + statis, 2,6 dtk
0029model 12 gundam/kokpitdengung kokpit + blip komputer, 3 dtk
0030model 13 gundam/kokpit_2sistem menyala + dengung, 3 dtk
0031model 14 gundam/pilotservo + kunci mekanis + bip, 2,6 dtk
0032–0033–hening (pengisi)
0034model 7 mobil/lampu_sorotklik lampu + desis sorot + mesin idle, 6,7 dtk
0035–0037–hening (pengisi)
0038model 8 mobil/speedometer (tahan)gas, pindah gigi, gas, 4,2 dtk
0039–hening (pengisi)
0040model 6 wajah/cinta_pipiβ€œuwu” malu + lonceng kecil, 3 dtk
0041Chronos notifikasiding-ding naik
0042Chronos instruksi navigasi barutiga nada naik
0043Chronos panggilan masuk (diulang)trill dering
0044Chronos cari perangkat (diulang, volume 30)bip tinggi keras
0045Chronos alarm (diulang)bip-bip-bip-bip
0046Chronos tersambungdua nada naik
0047Chronos terputusdua nada turun
0048Chronos navigasi selesaiarpeggio selesai

Semua suara dibuat dari nol oleh sd/buat_suara.py (numpy, tanpa sampel luar, MIT). Opsi --pack mochi-themes.zip memakai WAV asli paket tema mochi-rzmong assets-v1 untuk 14 animasi (paket tanpa lisensi tertulis: untuk kartu sendiri). Build -DMOCHI_DF_MP3_FOLDER: file yang sama di /MP3/0001.mp3 …, dicocokkan dari nama.

⚑ Flash

Paling mudah: pasang dari browser. Atau build sendiri dengan PlatformIO:

cd firmware
pio run -e esp32-c3-dfplayer -t upload

Tahan BOOT saat colok USB-C jika unggahan gagal. Klip animasi ditanam otomatis saat build (perlu Python + Pillow).

πŸ› οΈ Kalau ada masalah

GejalaCek
Port tidak munculChrome/Edge di komputer, kabel USB data (bukan kabel cas), tahan BOOT saat colok.
Layar hitamSCLK 4, MOSI 6, DC 3, RST 10, BLK 7. CS modul 8 pin ke GND. Mode berhenti juga hitam: ketuk 1Γ—.
Gambar terbalik / miringMenu β†’ Putar layar.
Tidak ada suaraDFPlayer VCC 5 V, RX lewat 1 kΞ© ke GPIO20, TX ke GPIO21, speaker di SPK_1/SPK_2, kartu FAT32 berisi 0001–0048 di root.
Suara tertukarUrutan salin salah: format kartu, salin sd/mp3/ satu per satu berurutan, baru /01.
Suara tidak diulang / lagu tidak lanjutKabel TX modul β†’ GPIO21 membawa pesan "trek selesai". Atau pasang BUSY ke GPIO5 + -DMOCHI_PIN_DF_BUSY=5.
Pemutar: "folder /01 kosong"Lagu harus /01/001.mp3, /01/002.mp3, …
Ketukan tidak terbaca / selalu "tahan"Serial monitor saat nyala menulis sentuh GPIO1: … (jenis yang terdeteksi). Tertulis "tombol ke GND / mengambang" padahal memakai TTP223: kabel I/O putus. Pastikan VCC TTP223 3V3, GND bersama, jangan menyentuh sensor saat menyalakan. Masih salah: paksa -DMOCHI_TOUCH_ACTIVE_HIGH atau -DMOCHI_TOUCH_MODE=2. TTP223 di balik casing: casing ≀ 2 mm, tanpa logam di atas pad.
Bunyi letup / ESP reset saat suara mulaiDaya USB kurang: kabel/charger lebih baik, tambah kapasitor elektrolit 100–470 Β΅F di VCC–GND DFPlayer.
Warna negatif / merah-biru tertukarDi firmware/include/User_Setup_ST7789.h: ganti TFT_INVERSION_ON β†’ TFT_INVERSION_OFF (warna negatif), atau TFT_RGB_ORDER TFT_BGR β†’ TFT_RGB (merah/biru tertukar). Build ulang.
Layar putih / tanpa gambarPastikan modul ST7789 240Γ—240 (bukan 240Γ—320 atau ST7735), VCC 3V3.
Build: No module named PILPasang Pillow ke Python PlatformIO: ~/.platformio/penv/bin/pip install pillow (Windows: %USERPROFILE%\.platformio\penv\Scripts\pip install pillow).
Chronos tidak menemukan perangkatMenu β†’ Chronos BLE harus ON. Nama rzmong dfplayer.
Goyang tidak bereaksiSerial monitor harus menulis MPU6050 siap. SDA 8, SCL 9, alamat 0x68.

Serial monitor 115200 lewat USB: pio device monitor.