Índice:
- Suprimentos
- Etapa 1: Confira o vídeo
- Etapa 2: Hardware - Peças e Fiação
- Etapa 3: Hardware - Configuração do driver
- Etapa 4: Software: Instalando PlatformIO
- Etapa 5: Software: Usando PlatformIO
- Etapa 6: Depuração: potencial casca de banana
- Etapa 7: Depuração: Configuração
- Etapa 8: Depuração: Iniciando a depuração
- Etapa 9: Depuração: uso básico
- Etapa 10: Solução de problemas
- Etapa 11: Conclusão
Vídeo: Como usar um depurador em um ESP32: 11 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Você já quis dar uma espiada no seu código para ver por que ele está se comportando dessa maneira? Tradicionalmente, em projetos ESP32, você teria que adicionar uma instrução de impressão infinita para tentar descobrir o que estava acontecendo, mas há uma maneira melhor!
Um depurador é uma maneira de ver o que está acontecendo em seções específicas de seu código e de experimentar diferentes valores de variáveis sem recompilar seu código, geralmente isso não é algo disponível para nós em projetos incorporados, mas neste guia irei mostrar a você como usá-lo em um ESP32.
Neste guia, mostrarei como configurar o hardware, o software e um exemplo simples de uso do depurador.
Suprimentos
-
ESP-Prog - Esta é a placa necessária para depuração
- Exatamente um que comprei *
- US $ 5 mais barato, mas não testei *
-
Um ESP32 que quebra os pinos 12, 13, 14, 15
- Adafruit Feather Huzzah32
- D1 Mini ESP32 *
-
[OPCIONAL] Debug Shield que vendo no Tindie
- Pena Huzzah32
- D1 Mini ESP32
* = Link de afiliado
Etapa 1: Confira o vídeo
Eu tenho um vídeo sobre esse assunto, se você quiser dar uma olhada.
No meu canal eu costumo fazer vídeos baseados em ESP8266 e ESP32, então se você estiver interessado neles, dê uma olhada!
Etapa 2: Hardware - Peças e Fiação
Para usar o depurador, você só precisa de um ESP-Prog e quase qualquer placa ESP32 (links para estes em uma etapa anterior)
ESP-Prog:
O ESP-Prog é uma placa desenhada pela espressif, os fabricantes dos chips ESP32 e ESP8266. Ele se conecta aos pinos JTAG do ESP32 para nos permitir usar o depurador. Ele também pode ser usado para programar placas ESP32, mas não vou cobrir isso aqui.
Placa ESP32:
Você pode usar basicamente qualquer placa ESP32 para isso, uma vez que ele solte os pinos JTAG, que são 12, 13, 14 e 15. Eu testei uma placa de pena Adafruit Huzzah32 e uma placa D1 Mini 32 e ambas funcionaram bem.
Observe que você pode usar os pinos JTAG em seu esboço com o depurador, por exemplo, o LED embutido da placa Huzzah32 está no pino 13, portanto, você não pode usá-lo durante a depuração.
Fiação:
Para conectar o ESP-Prog ao ESP32, basta usar o guia de fiação conforme fornecido na imagem acima. Verifique com o diagrama de fiação de sua placa ESP32 se você não vir imediatamente os pinos apropriados, pois às vezes eles usam um esquema de nomenclatura diferente.
Debug Shields:
Eles são opcionais, mas eu vendo alguns shields em Tindie para o Huzzah32 e o D1 Mini 32 que tornam a conexão do ESP-Prog realmente simples, ele quebra os pinos apropriados para um conector IDC que você pode usar um cabo de fita para conectar diretamente entre o escudo e o ESP-Prog
Etapa 3: Hardware - Configuração do driver
Para usar o ESP-prog para depuração, precisamos instalar os drivers apropriados para ele. PlatformIO fornece algumas etapas para isso aqui, mas irei seguir as etapas do Windows neste guia.
- Baixe e instale os drivers FTDI para o ESP-Prog aqui, vá para a direita para baixar a versão "setup executável" para facilitar.
- Baixe e instale a ferramenta Zadig aqui, isso nos permite instalar um driver genérico necessário para a depuração.
- Com o ESP-Prog conectado, abra o Zadig
- No aplicativo Zadig, em "Opções", clique em "Listar todos os dispositivos"
- A lista suspensa no Zadig agora será preenchida, selecione a opção "Dual RS232-HS (Interface 0)". Certifique-se de que é a interface 0 que você selecionou!
- À direita da seta verde, "WinUSB" deve ser selecionado e, a seguir, clique em "Substituir driver"
Quando terminar, seus drivers devem ser configurados para uso!
Nota: Se você alterar a porta USB que está usando para o ESP-Prog, pode ser necessário repetir as etapas 3-6 novamente. Se você obtiver um erro conforme mostrado na imagem acima durante a depuração, será necessário repetir as etapas.
Etapa 4: Software: Instalando PlatformIO
PlatformIO é um IDE para desenvolvimento com várias estruturas embarcadas diferentes, incluindo o ecossistema Arduino. É mais complicado de usar do que algo como o IDE do Arduino, mas é muito poderoso e possui alguns recursos que o IDE do Arduino sente falta, como o preenchimento automático.
É necessário que o PlatformIO use o depurador. Se você já estiver familiarizado com PlatformIO, fique à vontade para pular algumas etapas.
- Baixe e instale o Visual Studio Code (VS Code) do link fornecido no site PlatformIO.org
- Abra o VS Code, e abra o menu de extensões, o botão é destacado na imagem acima
- Digite "platformio" na pesquisa, selecione-o e clique em instalar.
Etapa 5: Software: Usando PlatformIO
Usar PlatformIO é um pouco diferente do que usar Arudino IDE, portanto, nesta etapa, cobriremos apenas o básico para obter um exemplo em execução em uma placa.
Abrindo um exemplo:
- Clique no botão Home na barra de ferramentas PlatformIO (conforme mostrado na imagem)
- Clique no botão "Exemplos de projeto"
- Selecione o exemplo "Arduino-blink" na seção Espressif 32
Isso abrirá um projeto de amostra de piscar. O layout de um PlatformIO é bem diferente em comparação com um projeto Arduino, então vamos passar pelo básico.
Onde está o código?
O código do seu projeto será armazenado na pasta "src", para o exemplo blink você verá um arquivo "blink.cpp", este arquivo é o mesmo que seu arquivo de esboço (.ino) em um projeto Arduino.
Como configuro minha placa?
As configurações do seu projeto são mantidas dentro de um arquivo "platformio.ini" no seu projeto. Esta é realmente uma das minhas coisas favoritas sobre PlatformIO em comparação com o IDE do Arduino, nunca fez sentido para mim que as configurações da placa não estivessem vinculadas a esboços.
O exemplo.ini contém definições para várias placas diferentes, mas para manter as coisas simples, vamos deletar as duas últimas definições.
Onde eu defino minha porta COM?
O PlatformIO tentará encontrar automaticamente a porta COM correta para usar, de modo que você pode se safar sem configurar nada para isso. Mas se você tiver várias portas COM, que você terá ao usar o depurador, acho que faz sentido definir a porta específica de que você precisa. Você pode ver os diferentes dispositivos que possui clicando na seção "Dispositivos" na guia inicial e você pode definir qual é o seu ESP32 em "platformio.ini" adicionando uma configuração "upload_port".
Como faço o upload do meu código?
Clique no botão Upload (o ícone é uma seta apontando para a direita) e ele deve compilar e fazer upload do código. Agora você deve ter um LED piscando em sua placa.
Etapa 6: Depuração: potencial casca de banana
Isso é algo que me chamou a atenção quando eu estava preparando isso e espero que seja corrigido quando você tentar, mas achei importante sair daqui.
No momento de fazer este guia, a versão mais recente do PlatformIO é 4.3.0 e tem um bug relacionado à capacidade de depurar. Felizmente, podemos atualizar para a versão de desenvolvimento mais recente com bastante facilidade, o que resolve o problema.
Verifique na página inicial a versão do núcleo PlatformIO, se for "4.3.0", execute as seguintes etapas.
- Na barra de ferramentas PlatformIO, clique no ícone do terminal
- No tipo de terminal: pio upgrade --dev
- O código RestartVS e PlatfromIO devem ser atualizados
Etapa 7: Depuração: Configuração
Precisamos editar o arquivo "PlatofrmIO.ini" para habilitar a depuração, só precisamos adicionar duas coisas a ele.
debug_tool = esp-prog
Isso define a ferramenta de depuração que estamos usando.
debug_init_break = configuração tbreak
Este é um truque que aprendemos no vídeo de Andress Spiess sobre depuração no ESP32. Diz ao depurador para parar na configuração do nosso aplicativo.
Etapa 8: Depuração: Iniciando a depuração
Antes de entrarmos nisso, faremos uma pequena alteração no esboço que tornará mais fácil demonstrar o que você pode fazer com a depuração.
- Crie uma nova variável, "int delayTime = 1000;" fora de quaisquer métodos, isso o tornará uma variável global.
- Substitua o número dentro das chamadas de atraso no loop por esta nova variável: delay (delayTime);
Faça upload do código mais uma vez no quadro e, para iniciar a depuração, na barra de ferramentas, clique em "Executar" e em "Iniciar depuração"
Você verá as coisas se movendo na janela do terminal, mas mesmo quando isso indica que foi bem-sucedido, se você clicar em "Console de depuração", verá que ainda está funcionando, demorará alguns segundos para terminar.
Se tudo correr conforme o esperado, você verá o depurador parar no início da configuração.
Etapa 9: Depuração: uso básico
Vamos cobrir alguns dos princípios básicos do que você pode fazer com o depurador
Criação de pontos de interrupção:
Um ponto de interrupção é um ponto de seu código onde você deseja que o depurador pare. Para criar um ponto de interrupção, clique à esquerda do número da linha. Como demonstração, adicione o ponto de interrupção à primeira linha do método de loop.
Navegação no ponto de interrupção:
Para mover entre o ponto de interrupção ou mover para a próxima linha de código, você pode usar as ferramentas que aparecerão na parte superior da tela. Pressione o botão "continuar" (parece um botão de reprodução) para mover o ponto de interrupção que acabamos de criar dentro do loop.
Relógios variáveis:
Observações de variáveis permitem monitorar o valor das variáveis quando o depurador é interrompido em um ponto de interrupção. Para adicionar uma nova observação de variável, você pode clicar no ícone + e, em seguida, digitar o nome da variável. Como uma demonstração, digite a variável que adicionamos na etapa anterior "delayTime"
Visualizador de variável:
Você também pode ver todas as variáveis e seus valores que estão disponíveis em seu ponto de interrupção atual. Para demonstrar isso, se você olhar na seção "Global", deverá encontrar a variável "delayTime".
Editando o valor das variáveis:
Você também pode editar os valores das variáveis e isso terá efeito imediato no comportamento dos seus códigos. Para demonstrar isso, clique na variável delayTime na seção Visualizador de variáveis e altere o valor para "100". Para mostrar que isso está funcionando, desative o ponto de interrupção dentro do loop clicando novamente à esquerda do número da linha. Pressione o botão continuar na barra de navegação do ponto de interrupção. O LED em seu ESP32 agora deve estar piscando muito mais rápido do que antes.
Etapa 10: Solução de problemas
Descobri durante meu teste que algumas vezes não conseguia fazer upload para o ESP32 enquanto ele estava conectado ao ESP-prog e não conseguia descobrir um padrão de por que isso acontecia, porque na maioria das vezes eu conseguia fazer upload sem Quaisquer problemas. Descobri que poderia simplesmente desconectar o ESP32 e o ESP-Prog, fazer o upload do código para o ESP32 e reconectá-los e funcionaria bem.
Etapa 11: Conclusão
Eu acho que esta é uma ferramenta muito legal para adicionar à caixa de ferramentas para ajudar a descobrir o que está acontecendo dentro do seu projeto.
Eu adoraria saber se você acha isso útil !. Por favor, deixe-me saber nos comentários abaixo, ou junte-se a mim e a um monte de outros criadores no meu servidor Discord, onde podemos discutir este tópico ou qualquer outro relacionado ao criador que você tenha. As pessoas são realmente úteis lá, então é um ótimo lugar para conversar Fora.
Eu também gostaria de agradecer muito aos meus patrocinadores do Github que ajudam a apoiar o que eu faço. Eu realmente aprecio isso. Se você não sabe, o Github está combinando patrocínios para o primeiro ano, então, se você fizer um patrocínio, eles irão combiná-lo 100% nos próximos meses. Obrigado por ler!
Recomendado:
Visuino Como usar um botão como entrada para controlar coisas como LED: 6 etapas
Visuino Como usar um botão como entrada para controlar coisas como o LED: Neste tutorial, aprenderemos como ligar e desligar o LED usando um botão simples e o Visuino. Assistir a um vídeo de demonstração
Inglês / Português: S4A Como Instalar E Usar / S4A Como instalar e usar: 7 etapas
Inglês / Português: S4A Como Instalar E Usar / S4A Como instalar e usar: O S4A (ou Scratch para Arduino) é um sistema que baseado no Scratch que permite interagir diretamente com um Arduino. É uma forma muito did á tica de usar programa ç ã o e verificar em tempo real a intera ç & atild
Como configurar um depurador de kernel do Windows em sua rede: 6 etapas
Como configurar um depurador de kernel do Windows em sua rede: A depuração é uma ferramenta popular usada para descobrir a causa raiz de um bug. Um bug pode se manifestar de muitas maneiras diferentes. pode causar uma falha do sistema (tela azul / BSOD), pode causar uma falha do aplicativo, pode fazer com que seu sistema congele para nomear um fe
Como usar o terminal Mac e como usar as funções principais: 4 etapas
Como usar o Terminal Mac e como usar as funções principais: Mostraremos como abrir o Terminal MAC. Também mostraremos alguns recursos do Terminal, como ifconfig, alteração de diretórios, acesso a arquivos e arp. Ifconfig permitirá que você verifique seu endereço IP e seu anúncio MAC
Como usar o Wiimote como um mouse de computador Usando velas como um sensor !!: 3 etapas
Como usar o Wiimote como um mouse de computador Usando velas como um sensor !!: Este guia mostrará como conectar seu Wii Remote (Wiimote) ao seu PC e usá-lo como um mouse