İçindekiler:
- Adım 1: Donanım Hazırlığı
- Adım 2: Yazılım Hazırlığı
- 3. Adım: 3D Baskı
- Adım 4: LCD Desteği
- Adım 5: PETG Plakasını Hazırlayın
- 6. Adım: ESP32 Dev Board'u onarın
- 7. Adım: Lipo Pili Düzeltin
- 8. Adım: Pil ve Geliştirme Kartını Bağlayın
- 9. Adım: Ekran Pinlerini Hazırlayın
- Adım 10: GND Pinlerini Bağlayın
- Adım 11: Vcc Pinlerini Bağlayın
- Adım 12: LCD ve Geliştirme Kartı Desteğini Bağlayın
- Adım 13: SPI Pinlerini Bağlayın
- Adım 14: Flaş Programı
- Adım 15: I2C Bağlayıcı
- Adım 16: Montaj Bölüm 1
- Adım 17: Prototip I2C Gamepad
- Adım 18: I2C Gamepad'i Oluşturun
- Adım 19: Montaj Bölüm 2
- 20. Adım: İsteğe bağlı: Ses Koparma Pinleri
- Adım 21: Sırada Ne Var?
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu talimat, bir NES öykünücü oyun konsolu oluşturmak için bir ESP32 ve ATtiny861'in nasıl kullanılacağını gösterir.
Adım 1: Donanım Hazırlığı
ESP32 Geliştirme Kartı
Bu sefer bir TTGO T8 ESP32 geliştirme kartı kullanıyorum. Bu kart, yerleşik Lipo şarj ve düzenleme devresine sahiptir, ekstra bileşenlerin azaltılmasına yardımcı olabilir.
Görüntülemek
Bu sefer 2,4 IPS LCD kullanıyorum. Sürücü denetleyicisi ST7789V ve çözünürlük 320 x 240. Bu çözünürlük NES emülatörü 252 x 224 çözünürlüğe en uygun olanıdır.
pil
Bu sefer 454261 Lipo pil kullanıyorum. 4.5 mm ESP32 dev kartının kalınlığı ve 61 mm kartın genişliğidir.
PIN başlığı
I2C gamepad'i bağlamak için 4 pinli erkek yuvarlak pin başlığı ve 4 pinli dişi yuvarlak pin başlığı.
PETG Plaka
Geliştirme kartını ve Lipo pili desteklemek için küçük bir PET/PETG plakası, ürün ambalajında kolayca bulabilirsiniz.
Çok Amaçlı PCB
2 PCB gereklidir, Ekranı desteklemek için 1 0,4 mm kalınlığında, I2C gamepad için 1 1,2 mm kalınlığında.
Düğmeler
5 yön düğmesi, Seç ve Başlat için 2 küçük düğme ve A ve B düğmesi için 2 küçük düğme.
I2C Oyun Kumandası Denetleyicisi
Bu sefer bir ATtiny861 mikro denetleyicisini I2C gamepad denetleyicisi olarak kullanıyorum.
Diğerleri
1 SMD 12 Ohm direnç, bir ISP programcısı (ör. TinyISP)
Adım 2: Yazılım Hazırlığı
Arduino IDE'si
Henüz değilse Arduino IDE'yi indirin ve kurun:
ATTinyCore Desteği
Henüz değilse, ATTinyCore desteği eklemek için kurulum adımlarını izleyin:
ESP-IDF
Henüz yapmadıysanız, geliştirme ortamını kurmak için ESP-IDF başlangıç kılavuzunu izleyin:
3. Adım: 3D Baskı
Kasayı indirin ve yazdırın:
Adım 4: LCD Desteği
LCD desteği için 24 x 27 delikli 0,4 mm PCB kesin. LCD FPC'yi katlamak için biraz yer ayırmayı unutmayın. Ardından, LCD'yi PCB'ye sabitleyen bir çift taraflı yapışkan bant kullanın.
Adım 5: PETG Plakasını Hazırlayın
Geliştirme kartı ve Lipo pil desteği için 62 mm x 69 mm PETG plakasını kesin.
6. Adım: ESP32 Dev Board'u onarın
Geliştirme kartını PETG plakasına sabitlemek için çift taraflı yapışkan bant kullanın.
7. Adım: Lipo Pili Düzeltin
Lipo pili geliştirme kartının yanında sabitlemek için çift taraflı yapışkan bant kullanın.
8. Adım: Pil ve Geliştirme Kartını Bağlayın
9. Adım: Ekran Pinlerini Hazırlayın
LCD ekran, farklı satıcılardan birçok varyasyona sahiptir. Lütfen doğru veri sayfasını edinin ve herhangi bir yama ve bağlantıdan önce okuyun.
Bazı pinler dokunmatik panel için ayrılmıştır. Bu LCD dokunmatik panele sahip olmadığı için, bu pinleri kesmek sadece rahatsızlığı azaltabilir.
Adım 10: GND Pinlerini Bağlayın
Çoğu durumda, GND'ye bağlanmayı gerektiren birkaç pin vardır. Lehimleme çabasını azaltmak için, tüm GND pinlerine ulaşmak için bakır bir bant şekli kestim ve ardından tamamen lehimledim.
Adım 11: Vcc Pinlerini Bağlayın
Vcc, LCD gücü ve LED gücüne bağlanması gereken 2 pin vardır. Veri sayfasına göre, LCD gücü, geliştirme kartı 3,3 V pinine doğrudan bağlanabilir, ancak LED gücü 3,3 V'tan biraz daha düşük çalışır. Bu nedenle, ortaya bir SMD direnci eklemek daha iyidir, örn. 12 Ohm direnç.
Adım 12: LCD ve Geliştirme Kartı Desteğini Bağlayın
bant bağlantılı LCD desteğini ve geliştirme kartı desteğini birlikte kullanın. Her iki destek de katlama için yaklaşık 5 mm boşluk bırakmalıdır.
Adım 13: SPI Pinlerini Bağlayın
İşte bağlantı özeti:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> bağlı değil Vcc -> 3,3 V LED+ -> 12 Ohm direnç -> 3,3 V LED - -> GND
Adım 14: Flaş Programı
- Kaynak kodunu GitHub'dan indirin:
- Kaynak kod klasörü altında "make menuconfig" komutunu çalıştırın
- "Nofrendo ESP32'ye özgü yapılandırma"yı seçin
- "Çalıştırılacak donanım" -> "Özel Donanım"ı seçin
- "LCD Tipi" -> "ST7789V LCD"yi seçin
- Dolgu pin ayarları: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
- Çık ve Kaydet
- "make -j5 flash" komutunu çalıştırın
- "sh flashrom.sh PATH_TO_YOUR_ROM_FILE" komutunu çalıştırın
Adım 15: I2C Bağlayıcı
I2C pinlerini koparın, ESP32 varsayılan I2C pinleri:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (Lipo pil ile çalışırken 5 V güç yok) Pin 4 (GND) -> GND
Adım 16: Montaj Bölüm 1
Tüm parçaları kasaya katlamak ve sıkıştırmak için video adımlarını izleyin.
Adım 17: Prototip I2C Gamepad
I2C Gamepad için program çok basit, sadece 15 satır kod. Ancak lehimlemeden sonra ATtiny861'i yeniden programlamak biraz zor, bu yüzden önce devre tahtasında test etmek daha iyi.
Programı GitHub'dan indirin, derleyin ve flashlayın:
Adım 18: I2C Gamepad'i Oluşturun
İşte bağlantı özeti:
ATtiny861 Düğmesi
GND -> Tüm düğmeler bir pim Pin 20 (PA0) -> Yukarı düğmesi Pin 19 (PA1) -> Aşağı düğmesi Pin 18 (PA2) -> Sol düğme Pin 17 (PA3) -> Sağ düğme Pin 14 (PA4) -> Seçim düğmesi Pin 13 (PA5) -> Başlat düğmesi Pin 12 (PA6) -> A düğmesi Pin 11 (PA7) -> B düğmesi Pin 6 (GND) -> I2C erkek pin başlık pin 4 Pin 5 (Vcc) -> I2C erkek pin başlık pin 3 Pin 3 (SCL) -> I2C erkek pin başlık pin 1 Pin 1 (SDA) -> I2C erkek pin başlık pin 2
Adım 19: Montaj Bölüm 2
Kapağı ve I2C gamepad'i ana gövdeye takmak için video adımlarını izleyin.
20. Adım: İsteğe bağlı: Ses Koparma Pinleri
ESP32 dev kartı Pin 25 ve 26, analog ses sinyali veriyor, bu 2 pini ve ayrıca üstteki güç pinlerini (3.3 V ve GND) koparmak çok kolay. Ardından, takmak için bir kulaklığı yamalayabilirsiniz. Veya yüksek sesle çalmak için hoparlörlü bir ses yükseltici modülü bile ekleyebilirsiniz.
Adım 21: Sırada Ne Var?
NES emülatörü, ESP32 ile yapabileceğiniz tek ilginç şey değil. Örneğin. onunla bir mikro python konsolu oluşturabilirsiniz. Değiştirmeniz gereken tek bileşen, I2C gamepad'den I2C klavyeye geçmektir. Bunu bir ATtiny88 kontrol cihazı ile yapmanın o kadar da zor olmadığını düşünüyorum. Durumu görmek için twitterımı takip edebilirsiniz.