Experimentos simples com o microcontrolador STM32F103 (Blue Tablet)



Muitos adquiriram uma "pílula azul" para tentar. Mas, devido à complexidade da programação, essa coisa estava em algum lugar na prateleira, até tempos melhores.

Vamos considerar que os “melhores tempos” chegaram.

O que é necessário para as experiências:


  • Hardware
  • De software

Hardware


Todas as peças / componentes usados ​​podem ser comprados em aliexpress.com

  • Claro, antes de tudo, o próprio controlador. "Blue Tablet"
  • Adaptador USB-UART
  • Cabo micro usb
  • um conjunto de fios para conectar componentes entre si

Recomenda-se usar o programador ST-Link V2 para mais rápido, em comparação com o UART, carregamento de "firmware" e depuração de programas

De software



O que é um módulo?


Um módulo é uma combinação de hardware e software. A parte do hardware é o "tablet" STM32F103C8T6, a parte do software é o "modelo de firmware" criado usando o programa MIOC. Este programa é OpenSource .

Portas do microcontrolador


O microcontrolador possui pinos ou pernas. Alguns deles são de potência do microcontrolador, outros têm uma finalidade especial (por exemplo, Redefinir), outros são uma interface de entrada / saída de uso geral (GPIO).

As portas estão agrupadas (A; B; C ...). Cada grupo contém até 16 portas, numeradas de 0 a 15. Como resultado, a numeração de portas se parece com PA0, PA1, ...

As portas são usadas para comunicação entre os componentes do módulo, por exemplo, um microprocessador e vários dispositivos periféricos. As portas podem atuar como uma entrada, uma saída e bidirecional.

A placa "tablet" está marcada com portas.

GPIO - Interface de E / S de uso geral


No módulo IO, os principais tipos de portas são apresentados na tabela:



Como sensores, atuadores, usaremos vários dispositivos do Arduino.

Programa MIOC (Configurador de entrada e saída de módulos)


Usando este programa, criamos / configuramos o modelo de firmware (projeto para Embitz; Keil) do módulo IO. O instalador não requer. Baixe, corra. Usando este programa, criamos variáveis ​​globais que usaremos em nosso firmware. Variáveis ​​podem ser associadas a portas.

Janela da primeira execução:



Crie um projeto:



Selecione uma pasta para o projeto. Pasta, para o projeto deve estar vazio!







O primeiro programa - "hello word" para o microcontrolador


Piscamos o LED que está na "pílula azul". Este LED está conectado à porta PC13.

Adicionar linha à tabela variável





Gerar código BSP (botão F8)



Além disso, toda vez que um projeto é alterado, é necessária a geração de BSP!

Abra o projeto criado no ambiente de desenvolvimento do EmBitz ou Keil. O EmBitz ainda é uma solução alternativa. Parece que o autor abandonou este projeto. Muito provavelmente no futuro, o projeto usará Code :: Blocks.

No arquivo main.c, escreva o seguinte:


(Para aumentar o tamanho da imagem, abra-a em uma nova guia)

No EmBitz, pressione F2; depois que a janela de informações aparecer, pressione F7. A compilação deve ser feita.

Pressionar F2 novamente ocultará os marcadores de informações.



Faça o download no microcontrolador e veja como ele funciona.

Botão


Adicione um botão, por exemplo:



Diagrama de fiação:



Adicione uma variável à tabela:



Nós geramos BSP.

Mude o programa para o seguinte:



Criamos um novo BSP (F8), compilamos e carregamos no microcontrolador.

Pressionamos o botão - o LED acende, solta - ele apaga.

Em vez de um LED, um relé pode ser conectado a outra porta, por exemplo:



E gerencie algum tipo de carga útil.

Enviar mensagens para o console


Você precisa determinar qual será o console.

As opções são:

  • Adaptador USB-UART
  • porta COM virtual (cabo Micro-USB)

Se UART1 e USB como console forem selecionados na configuração ao mesmo tempo e o USB VCP não estiver selecionado, o console será atribuído a lugar nenhum. I.e. não haverá palavrões na função print_str (ou na macro de impressão), mas também não haverá saída. O mesmo comportamento ocorrerá se você não selecionar nenhuma interface ou selecionar USB VCP, mas não selecionar UART1 ou USB como console.

Configuração do console:



Conecte o TettaTerm à porta COM (console). Se fizermos o download do firmware via UART1, não esqueça de desconectar / conectar a porta COM. No TerraTerm, "botões de atalho" Alt + I; Alt + N Isso não é necessário para a opção de inicialização via ST-Link.

Edite o programa:



Agora o console exibirá o status do botão:



DS18B20


Conecte o sensor de temperatura DS18B20 ao "tablet".



Coloque a variável na tabela:



Mude o programa para o seguinte:



Criamos uma nova configuração, compilamos e carregamos no microcontrolador.

O console exibirá a temperatura medida pelo sensor.



ADC


Como um exemplo de trabalho com o ADC, você pode usar o potenciômetro:



Ou sensor de umidade do solo



Vamos nos debruçar sobre o último:

Configure a porta:



Editando o programa:



Nós compilamos, carregamos.

No console, observamos:



adc - leitura atual do ADC. max e min - leituras mínimas e máximas registradas dos sensores, completamente secas (0%) e muito úmidas (100%).

Muito úmido (100%) - coloque o sensor em um copo de água. Muito seco (0%) - fica ao ar livre.

De fato, calibramos o sensor de umidade do solo de 0 a 100%. Colocamos os valores máximo e mínimo no texto do programa.



O resultado do trabalho. O sensor é colocado no chão do vaso de flores:



Este projeto é um modelo de solução para regar plantas.

Por enquanto é tudo. O programa MIOC será reabastecido com recursos adicionais.

Source: https://habr.com/ru/post/pt466663/


All Articles