iiOTESP32 Brasil
Contingency mode: public pages and downloads remain available; login, community, and server data may be unavailable.
Back to news
News

Projeto com ESP32 compara cálculo de colisões em um e dois núcleos

Demonstração usa uma simulação de partículas e um painel no navegador para comparar a execução em um ou dois núcleos do ESP32, separando processamento matemático e comunicação.

Logotipo EletrogateEletrogate

Um projeto demonstrativo para o ESP32 usa uma simulação de colisões entre partículas para comparar duas formas de distribuir o processamento: concentrar cálculo e comunicação em um núcleo ou separar essas funções entre os dois. A implementação utiliza o processador Xtensa LX6 de dois núcleos, com frequência de 240 MHz em cada um, e permite acompanhar o comportamento pelo navegador.

Na configuração paralela, tarefas do FreeRTOS direcionam a simulação ao Core 1 e a comunicação ao Core 0. O painel recebe posições por WebSocket em intervalos de 33 ms e permite alterar a quantidade de partículas e o modo de execução. Um mutex controla o acesso aos dados compartilhados durante a leitura das posições. A carga cresce com complexidade O(N²): aumentar o número de partículas amplia rapidamente o trabalho necessário para verificar possíveis colisões. As bibliotecas empregadas estão incluídas no pacote ESP32 para a Arduino IDE.

Por que importa: a demonstração ajuda a explorar uma decisão comum em IIoT e automação: como manter a comunicação responsiva enquanto o dispositivo executa cálculos intensivos. Para projetos com ESP32 de dois núcleos, distribuir tarefas pode reduzir a disputa por processamento. O exercício também evidencia a necessidade de coordenar o acesso à memória compartilhada; ter dois núcleos não elimina esse cuidado.