RGB do Maix Bit Como Usar em Micropython

RGB do Maix Bit é apenas uma das inúmeras aplicações que essa incrível placa é capaz de fazer. Além disso, o Maix bit também possibilita o uso de visão computacional com reconhecimento de até 80 objetos de forma simultânea, isso tudo com o tamanho similar ao ESP32.

O que é LED RGB?

RGB é um acrônimo das cores em inglês Red (Vermelho), Blue (Azul) e Green (Verde). É como se fosse LEDs normais porém unidos em um único componente, tendo um anodo ou catodo comum como na figura abaixo:

O LED RGB presente no Maix Bit também é de anodo comum como na imagem acima, porém os catodos estão ligados na portas:

  • GPIO0;
  • GPIOHS0;
  • GPIO2.
Pinout LED RGB Maix Bit

RGB do Maix Bit na Placa

Existe dois modelos da placa Maix bit a V1 e V2, no entanto, ambas possuem o LED RGB ao lado do microfone e da entrada USB.

RGB do Maix Bit Código de Exemplo

O código é bastante simples porém é feito em micropython mas é a mesma lógica de microcontroladores. O código abaixo estará disponível no Github e caso não sabia compilar ou caiu nesse post de paraquedas, clique aqui e conheça mais sobre essa placa.

O LED RGB usado no Maix bit, como já foi abordado, é um de anodo comum e por isso a ativação das cores será com nível lógico baixo.

import time                                                            # Importa biblioteca de tempo
from Maix import GPIO                                                  # Importa pinos do Maix
from fpioa_manager import fm                                           # Importa biblioteca de registradores
from board import board_info                                           # Importa as informações da placa 

fm.register(board_info.LED_R, fm.fpioa.GPIO0, force=True)              # Registra pino do LED_R como função IO 
fm.register(board_info.LED_G, fm.fpioa.GPIOHS0, force=True)            # Registra pino do LED_G como função IO
fm.register(board_info.LED_B, fm.fpioa.GPIO2, force=True)              # Registra pino do LED_B como função IO

led_r = GPIO(GPIO.GPIO0, GPIO.OUT)                                     # Define led_r como uma saída da porta GPIO0
led_g = GPIO(GPIO.GPIOHS0, GPIO.OUT)                                   # Define led_g como uma saída da porta GPIHS0
led_b = GPIO(GPIO.GPIO2, GPIO.OUT)                                     # Define led_b como uma saída da porta GPIO2

while(True):                                                           # Inicia Loop infinito
    led_r.value(0)                                                     # Liga a cor vermelha
    time.sleep_ms(300)                                                 # Delay de 300ms
    led_r.value(1)                                                     # Desliga cor vermelha
    led_g.value(0)                                                     # Liga cor verde
    time.sleep_ms(300)                                                 
    led_g.value(1)                                                     
    led_b.value(0)                                                     # Liga cor azul
    time.sleep_ms(300)
 
    led_r.value(0)
    led_g.value(0)
    led_b.value(0)
    time.sleep_ms(1000)
    
    led_r.value(1)
    led_g.value(1)
    led_b.value(1)

fm.unregister(board_info.LED_R)                                        # Limpa registro do pino LED_R
fm.unregister(board_info.LED_G)                                        # Limpa registro do pino LED_G
fm.unregister(board_info.LED_B)                                        # Limpa registro do pino LED_B

RGB do Maix Bit Funcionamento Prático

O funcionamento com base no código funciona na sequência: Vermelho, Verde, Azul e Todos ligados que da a cor Branca. Os LEDs podem ser controlados com PWM, mas de forma individual.

A pinagem lateral presente no vídeo abaixo é uma adaptação para utilizar os barramentos de comunicação UART, pois devido ao tamanho reduzido do maix bit, algumas portas ficam na superfície da placa em paralelo com o os barramentos já presente.