Conteúdo do curso
Como programar a BitDogLab
Vamos aprender sobre o MicroPython, a IDE Thonny e realizar exercícios básicos para a BitDogLab!
0/4
Luz e Cor com LEDs
Vamos explorar como podemos programar a BitDogLab e usar seus LEDs de forma colorida. Haverá um exemplo de programação no final de cada conteúdo resumindo os assuntos abordados. - Interface sem código: https://bitdoglab.webcontent.website/ide-interfaces/neopixel/
0/4
Introdução prática à BitDogLab
    Sobre a Aula

    Agora que sabemos usar o display OLED para escrever mensagens, podemos usá-lo para enviar mensagens de apoio para o usuário durante a execução de um programa!

    Por exemplo, digamos que você quer usar periféricos para medir a aceleração de uma BitDogLab em movimento! Para isso, temos o código abaixo, que usa a matriz de LEDs, o display OLED e um periférico chamado MPU9250, um acelerômetro. O display mostra a aceleração em mensagens atualizadas com frequência.

    from machine import Pin, SoftI2C
    from ssd1306 import SSD1306_I2C
    from neopixel import NeoPixel
    from mpu9250 import MPU9250
    import time
    import math

    # Inicializar o I2C para o MPU (I2C1)
    i2c_mpu = SoftI2C(scl=Pin(3), sda=Pin(2))
    mpu = MPU9250(i2c_mpu)

    # Inicializar o I2C para o OLED (I2C0)
    i2c_oled = SoftI2C(scl=Pin(15), sda=Pin(14))
    oled = SSD1306_I2C(128, 64, i2c_oled)

    # Inicializar a matriz NeoPixel no GPIO7
    NUM_LEDS = 25
    np = NeoPixel(Pin(7), NUM_LEDS)

    # Inicializar a matriz NeoPixel no GPIO7
    NUM_LEDS = 25
    np = NeoPixel(Pin(7), NUM_LEDS)

    # Definindo a matriz de LEDs (5x5)
    LED_MATRIX = [
    [24, 23, 22, 21, 20],
    [15, 16, 17, 18, 19],
    [14, 13, 12, 11, 10],
    [5, 6, 7, 8, 9],
    [4, 3, 2, 1, 0]]
    # Função para limpar a matriz de LEDs
    def clear_matrix(np):
    for i in range(NUM_LEDS):
    np[i] = (0, 0, 0)
    np.write()


    # Inicializar posição do LED
    x, y = 2, 2

    while True:
    # Limpar a matriz
    clear_matrix(np)

    # Ler dados de aceleração
    accel = mpu.acceleration
    ax, ay, az = accel

    # Atualizar posição do LED
    x = int(2 + ax)
    x = max(0, min(4, x))

    y = int(2 + ay)
    y = max(0, min(4, y))

    # Definir a cor do LED
    r, g, b = int(abs(ax) * 25), int(abs(ay) * 25), int(abs(az) * 25)
    np[LED_MATRIX[x][y]] = (r, g, b)
    np.write()

    # Atualizar o display OLED
    oled.fill(0)
    oled.text("Acel (m/s^2):", 0, 0)
    oled.text(f"AX: {ax:.2f}", 0, 20)
    oled.text(f"AY: {ay:.2f}", 0, 30)
    oled.text(f"AZ: {az:.2f}", 0, 40)
    oled.show()

    # Pausa antes da próxima atualização
    time.sleep(0.05)
    Shopping Basket