Brzi početak
Odaberite karticu za svoje razvojno okruženje. Svaka završava treperenjem RGB LED diode na pločici (jedna LED dioda s crvenim, zelenim i plavim kanalom), što je najbrži način da provjerite radi li sve ispravno.
- Arduino
- MicroPython
- ESP-IDF
1. Instalirajte platformu
Instalirajte aktualni Arduino IDE, verziju 1.8 ili noviju. Trenutačna verzija dostupna je na web stranici arduino.cc.
2. Instalirajte definicije pločica
Definicija pločice dolazi uz Espressifov Arduino core za ESP32.
-
Pokrenite Arduino i otvorite prozor Preferences.
-
U polje Additional Board Manager URLs unesite ovu poveznicu na stabilno izdanje. Možete dodati više URL-ova, odvojenih zarezima.
https://espressif.github.io/arduino-esp32/package_esp32_index.json -
Iz izbornika Tools > Board otvorite Boards Manager i instalirajte platformu esp32.
-
Ponovno pokrenite Arduino IDE.
3. Odaberite pločicu
Iz izbornika Tools > Board odaberite Soldered NULA Dual ESP32C5. Zatim spojite pločicu s računalom USB-C kabelom i u Arduino IDE-u odaberite njezin serijski port.
USB-C na ovoj pločici ide preko USB-serijskog čipa CH340K, pa će vašem računalu možda trebati CH340 upravljački program da bi se port prikazao. Ako se nijedan port ne pojavi, pogledajte Rješavanje problema.
4. Učitajte svoj prvi program
Pločica ima WS2812B RGB LED diodu na IO8, označenu IO8 na pločici. Definicija pločice naziva je LED_BUILTIN, a digitalWrite() je pali i gasi kao običnu LED diodu. Ova skica uključuje je i isključuje jednom u sekundi.
// Blink the onboard RGB LED: 0.5 s on, 0.5 s off.
// LED_BUILTIN comes from the board definition and points at the RGB LED on IO8.
const int LED_PIN = LED_BUILTIN;
void setup()
{
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_PIN, HIGH); // LED on
delay(500);
digitalWrite(LED_PIN, LOW); // LED off
delay(500);
}
5. Što možete očekivati
Učitajte skicu. Sklop za automatski reset sam postavlja pločicu u način učitavanja, pa ne morate pritiskati nijednu tipku. Kad učitavanje završi, RGB LED dioda počinje treperiti. Arduino core istodobno upravlja njezinim crvenim, zelenim i plavim kanalom, pa svijetli bijelo. RGB LED dioda svijetli bijelo pola sekunde, zatim je pola sekunde ugašena.
LED dioda označena IO8 nalazi se između tipki USER i RESET, blizu kraja pločice s USB-C konektorom, odmah pokraj montažnog otvora na strani prema modulu ESP32-C5.
6. Rješavanje problema
Ako pločica nije prepoznata ili učitavanje ne uspije, nastavite na Rješavanje problema.
1. Instalirajte platformu
MicroPython se na pločicu učitava programom esptool.py, koji možete pronaći u Espressifovoj dokumentaciji za esptool. Na Windowsima se instalirani program može zvati esptool umjesto esptool.py.
esptool zahtijeva Python 3.10 ili noviji. Njegov vodič za instalaciju instalira najnovije stabilno izdanje iz PyPI-ja pomoću pipa:
pip install esptool
Ako to na vašoj instalaciji Pythona javi grešku, pokušajte s python -m pip install esptool ili pip3 install esptool.
2. Instalirajte firmware
Preuzmite najnoviju .bin datoteku sa stranice za preuzimanje ESP32_GENERIC_C5. Ovaj generički firmware radi na većini ESP32-C5 pločica s najmanje 4 MiB flash memorije i kristalom od 40 MHz ili 48 MHz. Ova pločica ima 8 MB flash memorije i kristal od 48 MHz, a firmware pri pokretanju sam pronalazi njezin PSRAM (pseudostatički RAM, dodatna radna memorija u modulu).
Ako MicroPython na pločicu stavljate prvi put, najprije obrišite cijelu flash memoriju:
esptool.py erase_flash
Zatim učitajte firmware na pločicu, počevši od adrese 0x2000:
esptool.py --baud 460800 write_flash 0x2000 ESP32_BOARD_NAME-DATE-VERSION.bin
Zamijenite ESP32_BOARD_NAME-DATE-VERSION.bin datotekom .bin koju ste preuzeli. Ako flashanje počne pa zatim zataji usred postupka, uklonite opciju --baud 460800 kako biste flashali sporijom zadanom brzinom.
3. Odaberite pločicu i port
esptool.py sam pokušava pronaći serijski port pločice. Ako to ne uspije ili je spojeno više Espressifovih pločica, port zadajte opcijom --port:
esptool.py --port PORTNAME erase_flash
esptool.py --port PORTNAME --baud 460800 write_flash 0x2000 ESP32_BOARD_NAME-DATE-VERSION.bin
Na Linuxu je naziv porta obično nalik na /dev/ttyUSB ili /dev/ttyACM0, na Macu /dev/cu.usbmodem01, a na Windowsima COM4.
MicroPython prompt (REPL) nalazi se na UART0 (prvom od UART serijskih portova čipa), koji može biti spojen na USB-serijski pretvornik, ili na ugrađenom USB-u čipa. Na ovoj pločici UART0 ide na USB-serijski čip CH340K, koji je na USB-C konektoru. Otvorite serijski port pločice u terminalskom programu pri 115200 baud.
4. Učitajte svoj prvi program
RGB LED dioda na IO8 je WS2812B, pa je MicroPython pokreće modulom neopixel, a ne običnim Pin. Na promptu pritisnite Ctrl-E za ulazak u paste mode, zalijepite program, a zatim pritisnite Ctrl-D da ga pokrenete.
# Blink the onboard RGB LED on IO8: 0.5 s on, 0.5 s off.
from machine import Pin
from neopixel import NeoPixel
import time
led = NeoPixel(Pin(8, Pin.OUT), 1) # one WS2812B LED on IO8
while True:
led[0] = (64, 64, 64) # equal red, green and blue: white
led.write()
time.sleep(0.5)
led[0] = (0, 0, 0) # off
led.write()
time.sleep(0.5)
5. Što možete očekivati
RGB LED dioda treperi bijelo jednom u sekundi. Program ništa ne ispisuje. RGB LED dioda svijetli bijelo pola sekunde, zatim je pola sekunde ugašena.
LED dioda označena IO8 nalazi se između tipki USER i RESET, blizu kraja pločice s USB-C konektorom, odmah pokraj montažnog otvora na strani prema modulu ESP32-C5.
6. Rješavanje problema
Ako REPL ne odgovara ili flashanje firmwarea ne uspije, nastavite na Rješavanje problema.
1. Instalirajte platformu
Instalirajte ESP-IDF slijedeći Espressifov vodič za početak rada. Koraci u nastavku koriste primjer blink iz ESP-IDF v6.1, koji podržava ESP32-C5.
2. Postavite ciljni čip
Primjer se nalazi u vašoj mapi ESP-IDF, pod examples/get-started/blink. Prije konfiguriranja i izgradnje postavite ciljni čip:
idf.py set-target esp32c5
3. Konfigurirajte projekt
Otvorite izbornik konfiguracije projekta:
idf.py menuconfig
U izborniku Example Configuration:
- Postavite
Blink LED typenaLED strip, jer je RGB LED dioda na pločici adresabilni WS2812B. - Odaberite pozadinsku periferiju za LED traku.
RMT(periferija Remote Control u čipu) dostupna je samo za ESP ciljeve s RMT periferijom, aSPI(serijska periferna sabirnica čipa) dostupna je za sve ESP ciljeve. - Postavite
Blink GPIO numberna8. Zadana vrijednost primjera za ESP32-C5 je GPIO 27 (GPIO označava ulaz/izlaz opće namjene), a LED dioda ove pločice nije na njemu. - Trajanje treperenja postavite u
Blink period in ms. Zadana vrijednost je 1000.
4. Izgradite i flashajte svoj prvi program
Ovo je main/blink_example_main.c iz primjera. Kad je odabran LED strip, LED diodu prebacuje između slabe bijele svjetlosti i isključenog stanja.
/* Blink Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
static const char *TAG = "example";
/* Use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
or you can edit the following line and set a number here.
*/
#define BLINK_GPIO CONFIG_BLINK_GPIO
static uint8_t s_led_state = 0;
#ifdef CONFIG_BLINK_LED_STRIP
static led_strip_handle_t led_strip;
static void blink_led(void)
{
/* If the addressable LED is enabled */
if (s_led_state) {
/* Set the LED pixel using RGB from 0 (0%) to 255 (100%) for each color */
led_strip_set_pixel(led_strip, 0, 16, 16, 16);
/* Refresh the strip to send data */
led_strip_refresh(led_strip);
} else {
/* Set all LED off to clear all pixels */
led_strip_clear(led_strip);
}
}
static void configure_led(void)
{
ESP_LOGI(TAG, "Example configured to blink addressable LED!");
/* LED strip initialization with the GPIO and pixels number*/
led_strip_config_t strip_config = {
.strip_gpio_num = BLINK_GPIO,
.max_leds = 1, // at least one LED on board
};
#if CONFIG_BLINK_LED_STRIP_BACKEND_RMT
led_strip_rmt_config_t rmt_config = {
.resolution_hz = 10 * 1000 * 1000, // 10MHz
.flags.with_dma = false,
};
ESP_ERROR_CHECK(led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip));
#elif CONFIG_BLINK_LED_STRIP_BACKEND_SPI
led_strip_spi_config_t spi_config = {
.spi_bus = SPI2_HOST,
.flags.with_dma = true,
};
ESP_ERROR_CHECK(led_strip_new_spi_device(&strip_config, &spi_config, &led_strip));
#else
#error "unsupported LED strip backend"
#endif
/* Set all LED off to clear all pixels */
led_strip_clear(led_strip);
}
#elif CONFIG_BLINK_LED_GPIO
static void blink_led(void)
{
/* Set the GPIO level according to the state (LOW or HIGH)*/
gpio_set_level(BLINK_GPIO, s_led_state);
}
static void configure_led(void)
{
ESP_LOGI(TAG, "Example configured to blink GPIO LED!");
gpio_reset_pin(BLINK_GPIO);
/* Set the GPIO as a push/pull output */
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
}
#else
#error "unsupported LED type"
#endif
void app_main(void)
{
/* Configure the peripheral according to the LED type */
configure_led();
while (1) {
ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
blink_led();
/* Toggle the LED state */
s_led_state = !s_led_state;
vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS);
}
}
Izgradite, flashajte i nadzirite projekt jednim korakom, pri čemu PORT zamijenite serijskim portom pločice:
idf.py -p PORT flash monitor
Za izlaz iz serijskog monitora upišite Ctrl-].
5. Što možete očekivati
RGB LED dioda treperi u razdoblju koje ste postavili, a monitor bilježi svaku promjenu. Ovo je primjer ispisa iz README datoteke primjera: Uz zadano trajanje, RGB LED dioda svijetli slabo bijelo jednu sekundu, zatim je jednu sekundu ugašena.I (315) example: Example configured to blink addressable LED!
I (325) example: Turning the LED OFF!
I (1325) example: Turning the LED ON!
I (2325) example: Turning the LED OFF!
I (3325) example: Turning the LED ON!
I (4325) example: Turning the LED OFF!
I (5325) example: Turning the LED ON!
I (6325) example: Turning the LED OFF!
I (7325) example: Turning the LED ON!
I (8325) example: Turning the LED OFF!
LED dioda označena IO8 nalazi se između tipki USER i RESET, blizu kraja pločice s USB-C konektorom, odmah pokraj montažnog otvora na strani prema modulu ESP32-C5.
6. Rješavanje problema
Ako se projekt ne izgradi ili flashanje ne uspije, nastavite na Rješavanje problema.