Processo Seletivo
  • Seja bem vindo à página do Processo Seletivo da Equipe Trincabotz!
    • Apresentações Gerais
  • Manual de Segurança
    • Eletrônica
    • Mecânica
    • Considerações Finais
  • Eletrônica
    • Cronograma
    • Tarefas
      • Entrega das tarefas
      • TAREFAS PRÁTICAS
        • Instalação do Proteus 8.10 SP0
        • Exercícios de Eletrônica Básica (06/05)
        • Algoritmos em C (07/05) (opcional)
        • Atividades de programação de microcontroladores(13/05) (opcional)
        • Montagem e programação de um circuito de Ponte H (14/05)
        • Desenvolvimento de uma PCB (20/05)
        • Confecção de uma PCB (27/05)
      • TAREFAS DE PESQUISA
        • Análise de Datasheets (06/05)
      • TAREFA FINAL
        • Relatório do Processo Seletivo (07/06)
    • Aulas e Materiais
      • ELETRÔNICA BÁSICA E PROTEUS
      • PROGRAMAÇÃO E LINGUAGEM C
      • MICROCONTROLADORES (STM)
      • PONTE H
      • ALTIUM DESIGNER ®
      • CONFECÇÃO DE PCB
  • Mecânica
    • Cronograma
    • Aulas
      • Aula de Ajustagem
      • Aula de Solidworks
      • Aula de Materiais
      • Aula de Componentes Mecânicos
      • Aula de Desenho Técnico e Usinagem
      • Aulas Anteriores
        • Aula de Dimensionamentos
        • Aula de Ferramentas de Usinagem
        • Aula de Usinagem
    • Tarefas
      • Apresentações Semanais
      • Solidworks I
      • Solidworks II
      • Solidworks III
      • Ajustagem
      • Componentes Mecânicos
      • Materiais
      • Usinagem & Desenho Técnico
      • Relatório Final
      • Tarefas Anteriores
        • Solidworks II
        • Solidworks IV
        • Atividade de Materiais
        • Dimensionamento
        • Atividade de Componentes Mecânicos
        • SolidWorks
        • Soliworks III
      • Inserção de Projetos
  • Gestão
    • Cronograma
    • Tarefas
      • Marketing Digital
      • Design de camisas
      • Patrocinador
      • Apresentação da área: divulgação em sala
      • Criação de Postagem no Linkedin
      • Photoshop
      • Apresentação geral: gestão aplicada aos projetos
      • Apresentação geral: retrospectiva
      • EXTRA - Pacote Office
      • EXTRA - Fotografia
      • EXTRA - Revista
      • Logística
Powered by GitBook
On this page
  • Download de Programas:
  • Material Oficial:
  • Material Adicional:

Was this helpful?

  1. Eletrônica
  2. Aulas e Materiais

MICROCONTROLADORES (STM)

Nessa aula, os candidatos irão compreender como utilizar e configurar microcontroladores, para posteriormente controlar uma ponte H com a utilização de um microcontrolador.

PreviousPROGRAMAÇÃO E LINGUAGEM CNextPONTE H

Last updated 1 month ago

Was this helpful?

Download de Programas:

Instalando STM32CUBEIDE

Instalando o Visual Studio Code no Windows

  1. Acesse o .

  2. Clique no botão Get Software para ir pros instaladores.

  3. Veja o instalador para o seu sistema operacional e clique em Get latest.

  4. Se não estiver logado, a página irá pedir para criar uma conta ou logar com a já existente. Caso não possua conta clique em criar uma nova e preencha de forma padrão.

  5. Após isso aguarde até que o download seja feito e depois descompacte o arquivo.

  6. Clique no instalador dentro da pasta, ex: st-stm32cubeide_versão...

  7. Siga as etapas de instalação aceitando os termos de uso e tudo que puder instalar. Aparecerá uma janela solicitando a instalação de um driver e você deverá aceitar.

  8. Após a conclusão, haverá um ícone azul escrito IDE, ao clicar nele o CUBEIDE será aberto.

Material Oficial:

Comandos STM:

  • HAL_GPIO_WritePin(tipo_de_pino, numero_do_pino, estado_do_pino) - Essa função serve para mandar um pino para HIGH ou LOW. O primeiro parâmetro é se o pino é A, B, C ou D. O segundo parâmetro é o número do pino. O terceiro parâmetro é o valor, tendo GPIO_PIN_RESET para 0v e GPIO_PIN_SET para 3.3v.

  • HAL_GPIO_ReadPin(tipo_de_pino, numero_do_pino,) - Essa função serve para ler o estado de um pino, podendo ser HIGH ou LOW. O primeiro parâmetro é se o pino é A, B, C ou D. O segundo parâmetro é o número do pino. Ele retorna o estado do pino.

  • HAL_GPIO_TogglePin(tipo_de_pino, numero_do_pino,) - Essa função serve para inverter o estado de um pino, trocando de LOW para HIGH e HIGH para LOW. O primeiro parâmetro é se o pino é A, B, C ou D. O segundo parâmetro é o número do pino.

  • HAL_TIM_Base_Start_IT(timer) - Essa função serve para iniciar a contagem e interrupção de um timer. O primeiro parâmetro é o endereço do Handler do timer, ex: &htim1.

  • HAL_TIM_PeriodElapsedCallback(timer) - Essa função serve para pegar a interrupção do timer por estouro de contagens. O parâmetro recebido é o endereço do Handler do timer, tendo que checar qual timer está fazendo a interrupção (em caso de múltiplas interrupções com o timer).

  • HAL_TIM_PWM_Start(timer, canal) - Essa função serve para iniciar o pwm em um canal de um timer. O primeiro parâmetro é o endereço do Handler do timer, ex: &htim1. O segundo parâmetro serve para indicar qual canal é para ser gerado o pwm.

  • HAL_ADC_Start(adc) - Essa função serve para iniciar o ADC para poder fazer as leituras. O primeiro parâmetro é o endereço do Handler do ADC, ex: &hadc1.

  • HAL_ADC_PollForConversion(adc, timeout) - Essa função serve para aguardar a conversão do ADC. O primeiro parâmetro é o endereço do Handler do ADC, ex: &hadc1. O segundo parâmetro é o tempo limite de espera, coloque HAL_MAX_DELAY.

  • HAL_ADC_GetValue(adc) - Essa função serve para pegar o valor convertido pelo ADC. O primeiro parâmetro é o endereço do Handler do ADC, ex: &hadc1. O retorno é o valor convertido pelo ADC.

Material Adicional:

Confira as explicações sobre os conceitos mais complexos da atividade, incluindo: Timer, Conversor A/D, PWM, Sensor VL53L0X e muitos outros:

CONVERSOR A/D

Mas afinal, o que é um Conversor A/D? No que consiste esse mecanismo interno do microcontrolador? Qual a sua principal função?

  • Um Conversor Analógico Digital é um dispositivo programável capaz de transformar um sinal analógico, em um sinal digital;

  • Quando convertido, este mesmo sinal torna-se “legível” por uma máquina (no caso o STM);

  • O Conversor, por sua vez, quantifica esses valores de conversão eletronicamente dentro de um número finito de valores inteiros, determinado pela resolução do conversor (dada em Bits);

  • Logo, um Conversor de 8 Bits, por exemplo, transforma a tensão em valores legíveis por uma máquina, isto é, valores decimais entre 0 e 256;

  • Como 100% da tensão equivale a 3.3V, pode-se afirmar que 100% da conversão A/D, em decimal, equivale a 256. Assim, 1% da conversão A/D equivale à resolução de 12.89mV / Bit;

Pense neste raciocínio, porém com um Conversor A/D de 10 Bits, como o de um PIC18F1330. Para isso, confira a Figura 1:

Observações:

  • Observe que cada canal, desde o AN0 até o AN3, pode ser configurado tanto como entrada, quanto como saída, sendo ela analógica ou digital.

  • O valor numérico da conversão A/D (0 a 1023 - 10 Bits) pode ser manuseado pelo programador.

TIMER (TEMPORIZADOR)

Mas afinal, o que é um Timer? No que consiste esse mecanismo interno do microcontrolador? Qual a sua principal função?

  • Um Timer (ou temporizador) é um mecanismo registrador, de natureza programável, responsável por realizar contagens com base na frequência do microcontrolador, seja ela interna ou externa;

  • Assim como o Conversor A/D, o Timer também constitui um módulo interno dentro do STM e, por essa razão, sua medida é dada em Bits;

  • Para efetuar a contagem, o Timer, precisa, em tese, ter todas as suas “entradas” configuradas para obter o desempenho desejado;

  • Para que o Timer 0 funcione, é preciso definir os valores de frequência, a transição de borda (subida ou descida), o tipo de oscilação (interna/externa), o número de Bits (8 ou 16), etc;

Observações:

  • Quando o Timer 0 estiver configurado, ele será capaz de realizar diversas contagens: as mais simples (de 0 até 255 - 8 Bits), até outras mais complexas, partindo de valores diferentes de zero ou interrompendo-as para não atingir o valor máximo suportado pelo módulo;

  • Essa interrupção, ou esse “estouro” do Timer, só pode ser viabilizado pela Flag desde mesmo registrador, isto é, pela “bandeira” que sinaliza não somente o início, mas também o fim dessa mesma contagem.

PWM (Modulação por Largura de Pulso)

Mas afinal, o que é um sinal PWM? No que consiste esse sinal? Como sintetizá-lo adequadamente?

  • O PWM é um recurso muito utilizado na programação para alterar o comportamento de uma determinada saída do microcontrolador;

  • Normalmente, o PWM é utilizado em robôs para comunicação entre módulos ou para controles de potência;

  • Há diversas formas de gerar um sinal PWM em um microcontrolador, todos têm uma coisa em comum, eles utilizam um timer para medir o tempo entre as variações do sinal;

  • Em baixos níveis de abstração pode-se configurar os módulos do timer para isso ou, se estiverem disponíveis, os módulos de PWM do microcontrolador;

  • Em abordagens de alto nível de abstração, pode se encontrar funções que realizam toda essa configuração de uma forma mais dinâmica;

Observações:

  • Nesse sentido, quanto MAIOR a largura do período em que o sinal PWM estiver EM NÍVEL ALTO, MAIOR a intensidade do LED aceso. Se o circuito utilizasse uma carga potente, um motor por exemplo, mais rápida seria a sua rotação;

  • Por outro lado, quanto MENOR a largura do período em que o sinal PWM estiver EM NÍVEL ALTO, MENOR a intensidade do LED aceso. Se o circuito utilizasse uma carga potente, um motor por exemplo, mais lenta seria a sua rotação.

SENSOR VL530X

Mas afinal, como é a comunicação do Sensor VL530X? No que consiste esse componente? Como ele funciona?

  • Os Sensores VL530X são responsáveis pelo direcionamento e orientação do robô e detectar a distância do robô adversário;

  • O sensor VL53L0X é um sensor do tipo ToF (Time of Fligth). Este tipo de sensor mede a distância à sua frente enviando um sinal infravermelho e medindo o tempo até a reflexão do mesmo;

  • O VL530X possui um rápido tempo de reação e um alcance de, aproximadamente, 2m de distância;

  • Sua interface conta com 6 pinos:

    • Dois referentes à alimentação do sensor (VCC e GND);

    • Dois referentes à comunicação I2C (SDA e SCL);

    • Um de configuração do endereço de comunicação (XSHUT);

    • Um de interrupção, não utilizado pela equipe (GPIO01).

  • Seu funcionamento consiste na emissão e recepção de um feixe de lu infravermelha como no diagrama abaixo:

Comunicação I2C

A comunicação I2C (Inter-Integrated Circuit) é um protocolo de comunicação serial que permite a troca de dados entre dispositivos eletrônicos de maneira simples e eficiente. Este protocolo utiliza duas linhas principais:

  • SDA (Serial Data Line): Responsável pela transmissão de dados entre os dispositivos.

  • SCL (Serial Clock Line): Fornece o sinal de clock que sincroniza a transferência de dados.

A comunicação I2C permite a conexão de múltiplos dispositivos em um barramento compartilhado, utilizando endereços para identificar cada dispositivo participante. Com suporte nativo em muitos microcontroladores e sensores, como o VL530X, a I2C é amplamente utilizada em aplicações de sistemas embarcados devido à sua flexibilidade e simplicidade.

site oficial da stm32 para baixar o CUBEIDE
Getting started with TIM - stm32mcu
Wiki da ST sobre TIMER
Getting started with ADC - stm32mcu
Wiki da ST sobre ADC
4MB
Aula de Microcontror.pdf
pdf
Slides da aula
Pinagem do STM black pilll
Figura 1 - Diagrama em Blocos do Conversor A/D (10 Bits).
Figura 2 - Diagrama em Blocos do Timer 0 (8 Bits)
Figura 3 - Características de um sinal PWM.
Figura 4 - Módulo do sensor VL53LL0X
Figura 5 - Diagrama de funcionamento do Sensor VL53L0X
Logo
Logo