- Raspberry Pi Pico
- Neopixels (rgb1 a rgb26)
- Pushbuttons (btn1, btn2)
- Resistors (r1 a r5)
- SSD1306 OLED
- Analog Joystick
GPIO05 - Botão A com Pull-Up
GPIO06 - Botão B com Pull-Up
GPIO07 - Acesso ao PIO0 do RP2040 para Matriz de LEDs WS2812
GPIO22 - Acesso ao ADC do RP2040
O software é um jogo simples onde o jogador controla um personagem usando um joystick. O objetivo é evitar inimigos enquanto coleta pontos. O código é escrito em C e utiliza bibliotecas para controlar o hardware, como a comunicação com o OLED e a leitura do joystick. As funções principais incluem a inicialização dos componentes, o loop do jogo que atualiza a tela e a lógica para detectar colisões.
O firmware é projetado para um jogo simples onde o jogador controla um personagem usando um joystick, evitando inimigos enquanto coleta pontos.
- Controle do joystick
- Controle da matriz de LEDs
- Comunicação I2C para o display
- Lógica do jogo (controle do jogador e inimigo)
PLAYER(): Controla o personagem do jogador.ENEMY(): Controla o movimento do inimigo.menu_interface(): Exibe a interface do menu.score_display(): Exibe a pontuação do jogador.nota(): Toca notas musicais através do buzzer.
screen: Tela atual do display (menu, sobre, placar).menu: Opção do menu selecionada.e_position: Posição do inimigo.score: Pontuação do jogador.
Um fluxograma será criado para representar o fluxo do software, incluindo inicialização, loop do jogo e manipulação de eventos.
O software inicializa o ADC, I2C, matriz de LEDs e botões, configurando o ambiente do jogo.
Funções para configurar GPIO, PWM e registros I2C estão incluídas para gerenciar interações de hardware.
Estruturas de dados incluem:
pixel_t: Representa um pixel com componentes RGB.ssd1306_t: Estrutura para o display SSD1306.
I2C é usado para comunicação com o display SSD1306.
O formato de pacotes de dados não é explicitamente definido no código, mas a comunicação com o display utiliza protocolos I2C.
