ESP32 simulator, the classic one, on an Xtensa core
Mokxi otuz pinli DOIT ESP32 DevKit V1'i modeller: 240 MHz Xtensa LX6'lı bir ESP32-WROOM-32, GPIO matrisi, IO_MUX, üç UART'ın hepsi, zamanlayıcı grubu 0, ADC1 ve LEDC PWM denetleyicisi, gerçek adreslerde. İki değil tek çekirdek ve radyo yok (buradaki WiFi simüledir ve bunu söyler); sözleşme her sınırın tam nerede olduğunu belirtir.
- 10modellenen çevre birimi alanı
- 24çalışmaya hazır proje
- Gerçek zamanlıkendi makinende
Neler modelleniyor
Kartın kendi sözleşme belgesinden alındı ve sade bir dille yazıldı; eksik olanlar yanında.
Modellenen
- Çekirdek
- Pencereli ABI'de Xtensa LX6, altmış dört adres yazmacı, pencere taşma ve eksik taşma işleyicileri, 240 MHz'de çevrim başına bir komut
- Bellek
- 0x4008_0000'da 128 KB komut RAM'i ve 0x3FFB_0000'da 192 KB veri RAM'i, ESP-IDF'in ayrı tuttuğu şekilde ayrı
- GPIO matrisi ve IO_MUX
- Gerçek iki yazmaçlı ayrımla kırk pin, ped başına pull'lar ve giriş etkinleştirme; GPIO 34'ten 39'a çıkış olarak reddedilir, çünkü çipte onlarda sürücü yok
- UART0
- Ayarlanan baud hızında, seri monitöre bağlı
- UART1 ve UART2
- begin()'in adlandırdığı her pinde GPIO matrisi üzerinden Serial1 ve Serial2: bölücünün gerçekten verdiği hızda telde bit bit gerçek kareler, çekirdek sürücünün alma tamponuyla
- Zamanlayıcı grubu 0
- Zamanlayıcı 0, millis() ve micros()'tan bir mikrosaniye geride bir tikte; delay() çekirdeği meşgul etmek yerine CCOMPARE0'da park eder
- ADC1
- Sekiz gerçek kanalda (GPIO 36, 37, 38, 39, 32, 33, 34 ve 35) dört zayıflatmayla on iki bit ve gerçek bir parçanın eğrisini izleyen 11 dB, yaklaşık 3.1 V'ta 4095'e kadar
- LEDC
- Yüksek hızlı grup: çıkış sürücüsü olan her pinde dört zamanlayıcı ve sekiz kanal; analogWrite, ledcAttach ve ledcWrite'ın arkasında
- Kesme matrisi
- Kaynakları donanımın yönlendirdiği şekilde yönlendirilir, bu yüzden attachInterrupt bir değil üç yazmadır
- WiFi, simüle
- Yazılımda yazılmış bir ağ üzerinde WiFi.h, HTTPClient.h ve WebServer.h: radyo yok, 802.11 yok ve gerçek internet yalnızca giriş yapıp açtığında
Modellenmeyen
- Hiçbir tür radyo. Modelde 802.11 ve Bluetooth radyosu yoktur. WiFi ve Bluetooth bunun yerine simüle edilir (gerçek internete yalnızca giriş yapıp açtığında ulaşan bizim ağımız üzerinden Arduino API'si ve düzenleyicinin Bluetooth panelindeki bir telefon) ve onlardan söz eden her sayfa bunu belirtir.
- İkinci çekirdek. Gerçek bir ESP32'nin iki LX6 çekirdeği vardır; bu model PRO çekirdeğini çalıştırır, yani 1. çekirdekte görev başlatan her şey çalışmaz.
- FPU: başka yerde derlenmiş bir hard-float ikili dosya ilk kayan nokta komutunda hata verir. Burada derlenen kodlar yazılım kayan noktadır, yani kayan nokta matematiği çalışır.
- Önbellek, flash ve PSRAM, RTC ve ULP, derin uyku, ADC2, dokunma ve hall sensörleri, I2C, SPI, I2S ve RMT.
- Birkaç adres (IO_MUX ped sırası, zamanlayıcı grubu ve LEDC yerleşimleri, SENS adresleri, kesme matrisi numaraları ve LEDC'nin kullandığı GPIO matrisi sinyal indeksleri) bu modelin inancıdır, arkasında durabileceği bir şey değil. Sözleşmenin 6. bölümü hepsini adıyla belirtir.
Birini aç ve Çalıştır'a bas
Bunların her biri düzenleyicide burada çizildiği gibi açılır.
ESP32 DevKit V1'deki her hazır proje
Her birinin çalışan devresi, kodu ve parça listesiyle kendi sayfası var.
- ESP32 düğmeBaşlangıç
- ESP-NOW buton ve LEDOrta
- ESP32 PZEM-004T enerji monitörüOrta
- ESP32 ILI9488 dokunmatik çizimOrta
- ESP32 ST7796S dokunmatik çizimOrta
- ESP32 I2S mikrofon seviye ölçerOrta
- ESP32 I2S sinüs çalarOrta
- RFID'li ESP32 trafik acil durum sistemiOrta
- ESP32 DHT22 hava durumu web sunucusuOrta
- İki LED'li ESP32 web sunucusuBaşlangıç
- ESP32 asenkron web sunucusu: BME280, kaydırıcı ve röleOrta
- PIR sensörlü ESP32 Telegram kapı ziliOrta
- TM1637 ekranda ESP32 NTP saatiBaşlangıç
- ESP32 Bluetooth seri lambaBaşlangıç
- ESP32 BLE UART lambaOrta
- ESP32'de MicroPython blinkBaşlangıç
- ESP32'de MicroPython buton kesmesiBaşlangıç
- ESP32'de MicroPython PWM ile kısmaBaşlangıç
- MicroPython ile ESP32'de DHT22Başlangıç
- MicroPython ile ESP32'de SSD1306 OLEDBaşlangıç
- ESP32'de MicroPython WiFi hava durumuOrta
- Ses spektrum analizörüİleri
- Animatronik gözlerİleri
- An ESP32 and an Arduino Uno talking over serialOrta
ESP32 DevKit V1'e bağlanan parçalar, adım adım
Her sayfada ESP32 DevKit V1'in kendi pin adlarıyla kablolama, kod, sık yapılan hatalar ve çalışan devre var.
- ESP32 DHT22
- ESP32 SSD1306 OLED
- ESP32 I2C LCD
- ESP32 Servo
- ESP32 HC-SR04
- ESP32 NeoPixel
- ESP32 Buton
- ESP32 Potansiyometre
- ESP32 Buzzer
- ESP32 Röle
- ESP32 PIR Sensörü
- ESP32 MPU6050
- ESP32 BMP280
- ESP32 DS18B20
- ESP32 IR Alıcı
- ESP32 Tuş Takımı
- ESP32 TM1637 Ekran
- ESP32 28BYJ-48 Step Motor
- ESP32 RC522 RFID
- ESP32 LDR
- ESP32 BME280
- ESP32 Joystick
- ESP32 7 Segmentli Ekran
- ESP32 DS3231 RTC
Bu kartı kullanan dersler
Her biri aynı kartta çalışan bir devreyle biter.
- ESP32 DevKit V1 pinout: her pin ve hangilerinden kaçınılmalı
- ESP32'de analogRead: 12 bit, zayıflatma ve ADC2
- Uno, ESP32 ve Pico: hangisiyle başlamalı
- Yeni başlayanlar için sırayla on ESP32 projesi
- Tek simülasyonda bir ESP32 ve bir Arduino Uno
- Bir HTTP GET isteği: hava durumunu JSON olarak çek
- ESP32'de MicroPython: blink, bir buton, PWM, bir DHT22, bir OLED ve WiFi
Sorular
Ücretsiz mi?
Evet. Her kart ve her parça ücretsiz plandadır, hesap gerekmez.
Kendi kodumu bunun için derleyebilir miyim?
Evet. Kodu düzenle ve Çalıştır'a bas: Xtensa için clang ile sekmede derlenir ve derleme paneli her adımı gösterir. Hiçbir şey yüklenmez. Kayan nokta matematiği çalışır: tarayıcı, buradaki diğer her kartta olduğu gibi yazılım kayan nokta olarak derler.
WiFi veya Bluetooth'u simüle ediyor mu?
İkisini de, simüle olarak ve bunu açıkça söyler. Bluetooth düzenleyicinin Bluetooth panelindeki bir telefondur, radyo değil. Kodun gerçek Arduino çağrılarını (WiFi.begin, WiFi.status, HTTPClient, WebServer) kullanır ve kart bir ağa katılır, bir sayfa çeker ve bir sayfa sunar. Altında radyo ve 802.11 yoktur. .mokxi altındaki dört uydurma adres bu sekmenin içinde yanıt verir. Giriş yapınca Bulut panelinde Gerçek interneti açabilirsin ve gerçek sunuculara HTTP ve HTTPS istekleri Mokxi'nin ağ geçidinden çıkar.
pinMode(34, OUTPUT) neden çalışmıyor?
Çünkü çipte de çalışmaz. GPIO 34'ten 39'a girişte tampon var, hiç çıkış sürücüsü yok. Mokxi yazmayı silikonun yaptığı gibi reddeder, sayar ve pinin bir şeyi sürdüğüne inanmanı sağlamak yerine kartın üzerine küçük bir kehribar işareti koyar.
Potansiyometrem hareketinin sonuna varmadan neden 4095'e ulaşıyor?
Çünkü varsayılan 11 dB zayıflatmada gerçek bir ESP32'nin ham okuması yaklaşık 3.1 V'ta doyar, 3.3 V rayının gerisinde kalır ve oraya giderken eğrilir: potun ortası 2048 değil yaklaşık 1890 okur. Mokxi bu eğriyi modeller ve düğme örneği ham sayıyı yazdırır, böylece gizem kalmaz.
Bu 30 pinli mi yoksa 38 pinli kart mı?
Otuz pinli DOIT DevKit V1. 38 pinli Espressif DevKitC'de header sıraları arasında tam bir inç vardır ve altı pin daha çıkar: GPIO numaraları aynı çipinkidir, konumlar değil.
İki çekirdeği de çalıştırır mı?
Biri. PRO çekirdeği çalışır; APP CPU yok ve ikisi arasında zamanlayacak FreeRTOS yok, bu yüzden setup()/loop() kodu sorun değil, xTaskCreatePinnedToCore ise öyle değil.
Diğer kartlar
Bunların her biri bugün çalışıyor ve her biri ücretsiz.
Daha kısa bir giriş mi arıyorsun? ESP32 DevKit simülatörü sayfasına bak.
Gerçek bellek haritasında 160 MHz'de çalışan bir RISC-V çip.
16 MHz'de çalışan ATmega328P'li klasik Arduino.
Uno'nun çipi, breadboard'a sığan küçük bir kartta.
54 dijital pini ve dört seri portu olan büyük Arduino.
Çipi USB seriyi kendisi yapan, Uno biçiminde bir kart.
31 pinli ve simüle WiFi'lı ikinci bir RISC-V kartı.
USB seri ve RGB LED ile 240 MHz'de ESP32-S3.
NodeMCU'nun 80 MHz'lik ESP8266'sı, simüle WiFi ile.
Kendi firmware'inde dene
Burada kurduğun şey masandaki kartta değişmeden çalışır. Kurulum yok, hesap gerekmez.