Display com botão giratório de baixo custo da Team Source Display
Visão geral da solução
Este é um display rotativo com um LCD TFT circular de 240x240 pixels e um controlador central STM32C091. Possui uma estrutura em liga de alumínio que pode girar infinitamente para a esquerda e para a direita, iluminação ambiente LED de 360 graus e pode ser pressionado como um botão. O custo é excelente e também exige menos atenção aos detalhes de design de interação durante o desenvolvimento.
Descrição do hardware
Ao abrir o arquivo de exemplo oficial do projeto para verificar seus periféricos, podemos ver que mais da metade dos pinos estão ocupados por seus periféricos integrados, consumindo essencialmente todos os recursos deste microcontrolador LQFP48.
Este display rotativo é uma tela SPI, controlada pela porta SPI1. Possui também três canais PWM para controlar a iluminação ambiente RGB.
Para facilitar a depuração sem a necessidade de um programador, o projeto modelo inclui a USART1 para impressão na porta serial. Os pinos KEY_A e KEY_B são microinterruptores usados para detectar a rotação no sentido horário e anti-horário da moldura externa. Há também um pino chamado KEY_CLICK para determinar se um botão foi pressionado. No projeto, podemos escrever um KeySampler para conectar todas as entidades de hardware dos botões à interface TouchGFX. A documentação oficial já fornece um, portanto, não é necessário escrevê-lo nós mesmos, como quando usamos a placa de expansão de tela ST pela primeira vez.
Descrição do Software
Surpreendentemente, a ST disponibilizou oficialmente um modelo de projeto TouchGFX para ele, o que evita o trabalho de portá-lo manualmente.
Entretanto, um guia de desenvolvimento oficial foi lançado em support.touchgfx.com para nos ajudar a começar rapidamente a usar esse modo de interação sem tela sensível ao toque, que utiliza um botão giratório e um único botão.
Crie um menu carrossel controlado por um botão.
Primeiramente, vamos descrever a arquitetura de software para esta parte.
Este é um diagrama que a AI Diantang desenhou especificamente para este tutorial. Nosso foco principal é como conectar, da maneira mais fácil possível, o comportamento dos botões e controles de hardware. Este diagrama explica tudo.
O acionamento do botão físico é passado para a camada de aplicação TouchGFX através do KeySampler.
No TouchGFX Designer, definimos manualmente as funções que são executadas quando cada botão é acionado. Essas funções são responsáveis por nos ajudar a rolar e girar o menu.
Algo assim. Então, em nosso projeto, precisamos criar uma função para o menu de rolagem, que permita usar o botão giratório para rolar e girar o menu.