Skip to content

🛠️ Depuração e Testes

Nesta seção, exploramos estratégias para identificar e corrigir problemas no firmware BR SmartGuia.

🔍 Métodos de Depuração

1️⃣ Saída Serial (Debugging via UART)

A saída serial é uma das maneiras mais eficazes de depuração. Utilize printf para exibir mensagens no terminal:

#include "pico/stdlib.h"

int main() {
    stdio_init_all();
    printf("Iniciando depuração...\n");

    while (true) {
        printf("Firmware rodando...\n");
        sleep_ms(1000);
    }
}

Para visualizar a saída:

minicom -b 115200 -o -D /dev/ttyUSB0

2️⃣ Verificação de Estado dos GPIOs

Para garantir que os pinos GPIO estão funcionando corretamente:

#include "hardware/gpio.h"

#define TEST_PIN 2

int main() {
    gpio_init(TEST_PIN);
    gpio_set_dir(TEST_PIN, GPIO_IN);

    while (true) {
        printf("Pino %d: %d\n", TEST_PIN, gpio_get(TEST_PIN));
        sleep_ms(500);
    }
}

3️⃣ Teste de Sensores

Se o sensor ultrassônico HC-SR04 não estiver medindo corretamente:

float distancia = hcsr04_measure();
printf("Distância medida: %.2f cm\n", distancia);

Caso os valores estejam errados, verifique: - Conexões dos pinos TRIGGER e ECHO. - Se há interferência de ruído.

4️⃣ Teste do Display OLED

Se o display não exibir nada, tente desenhar um padrão simples:

uint8_t buf[SSD1306_BUF_LEN];
memset(buf, 0xFF, SSD1306_BUF_LEN); // Preenche com pixels acesos
ssd1306_render(buf, &(struct render_area){0, SSD1306_WIDTH-1, 0, SSD1306_NUM_PAGES-1});

Se continuar sem exibição: - Verifique a alimentação do display. - Confirme os pinos SDA e SCL. - Teste reduzir a taxa de clock do I2C.


✅ Checklist de Testes

Componente Teste
Matriz de LEDs LEDs acendem e respondem corretamente?
Buzzer O som do alarme é emitido corretamente?
Sensor Ultrassônico A distância medida está precisa?
Display OLED O texto e os gráficos aparecem corretamente?

Se algum teste falhar, revise as conexões e tente os métodos de depuração mencionados acima.


🎥 Teste de Bancada

Aqui está um vídeo demonstrando o funcionamento do firmware durante os testes de bancada: