Raspberry Pi é uma placa baseada em processador de arquitetura ARM projetada para engenheiros eletrônicos e amadores. O PI é uma das plataformas de desenvolvimento de projeto mais confiáveis que existe agora. Com maior velocidade do processador e 1 GB de RAM, o PI pode ser usado para muitos projetos de alto perfil, como processamento de imagens e Internet das coisas.
Para fazer qualquer um dos projetos de alto nível, é necessário compreender as funções básicas do PI. Estaremos cobrindo todas as funcionalidades básicas do Raspberry Pi nestes tutoriais. Em cada tutorial, discutiremos uma das funções do PI. Ao final desta série de tutoriais do Raspberry Pi, você será capaz de realizar projetos de alto nível sozinho. Passe pelos tutoriais abaixo:
- Primeiros passos com Raspberry Pi
- Configuração Raspberry Pi
- LED piscando
- Interface de botão Raspberry Pi
- Geração Raspberry Pi PWM
- Controle do motor DC usando Raspberry Pi
Neste tutorial, vamos controlar a velocidade de um motor de passo usando Raspberry Pi. No motor de passo, como o próprio nome já diz, a rotação do eixo está na forma de passo. Existem diferentes tipos de motor de passo; aqui estaremos usando o mais popular que é o motor de passo unipolar. Ao contrário do motor DC, podemos girar o motor de passo em qualquer ângulo específico, dando-lhe as instruções adequadas.
Para girar este motor de passo de quatro estágios, forneceremos pulsos de energia usando o circuito acionador do motor de passo. O circuito do driver obtém gatilhos lógicos de PI. Se controlarmos os gatilhos lógicos, controlamos os pulsos de potência e, portanto, a velocidade do motor de passo.
Existem 40 pinos de saída GPIO no Raspberry Pi 2. Mas de 40, apenas 26 pinos GPIO (GPIO2 a GPIO27) podem ser programados. Alguns desses pinos executam algumas funções especiais. Com GPIO especial colocado de lado, temos apenas 17 GPIO restantes. Cada um desses 17 pinos GPIO pode fornecer uma corrente máxima de 15 mA. E a soma das correntes de todos os pinos GPIO não pode exceder 50mA. Para saber mais sobre os pinos GPIO, vá até: LED piscando com Raspberry Pi
Existem pinos de saída de alimentação de + 5 V (Pinos 2 e 4) e + 3,3 V (Pinos 1 e 17) na placa para conectar outros módulos e sensores. Esses trilhos de alimentação não podem ser usados para acionar o motor de passo, porque precisamos de mais potência para girá-lo. Portanto, temos que fornecer energia ao motor de passo de outra fonte de alimentação. Meu motor de passo tem uma voltagem de 9 V, então estou usando uma bateria de 9 V como minha segunda fonte de alimentação. Pesquise o número do modelo do seu motor de passo para saber a tensão nominal. Dependendo da classificação, escolha a fonte secundária de forma adequada.
Como afirmado anteriormente, precisamos de um circuito de driver para acionar o motor de passo. Também estaremos projetando um circuito de driver de transistor simples aqui.
Componentes necessários:
Aqui, estamos usando o Raspberry Pi 2 Model B com o Raspbian Jessie OS. Todos os requisitos básicos de hardware e software foram discutidos anteriormente. Você pode consultá-los na introdução do Raspberry Pi, exceto o que precisamos:
- Pinos de conexão
- Resistor 220Ω ou 1KΩ (3)
- Motor de passo
- Botões (2)
- 2N2222 Transistor (4)
- Diodo 1N4007 (4)
- Capacitor- 1000uF
- Tábua de pão
Explicação do circuito:
O motor de passo usa 200 etapas para completar a rotação de 360 graus, o que significa que gira 1,8 graus por etapa. Como estamos conduzindo um motor de passo de quatro estágios, precisamos dar quatro pulsos para completar o ciclo lógico único. Cada etapa deste motor completa 1,8 grau de rotação, portanto, para completar um ciclo, precisamos de 200 pulsos. Portanto, 200/4 = 50 ciclos lógicos necessários para completar uma única rotação. Verifique isto para saber mais sobre motores de passo e seus modos de condução.
Estaremos acionando cada uma dessas quatro bobinas por um transistor NPN (2N2222), esse transistor NPN recebe o pulso lógico de PI e aciona a bobina correspondente. Quatro transistores estão usando quatro lógicas de PI para acionar quatro estágios do motor de passo.
O circuito do driver do transistor é uma configuração complicada; aqui devemos prestar atenção que conectar o transistor de maneira errada pode carregar muito a placa e danificá-la. Verifique isto para entender corretamente o circuito do driver do motor de passo.
O motor é uma indução e, portanto, ao alternar o motor, experimentamos picos indutivos. Este pico vai aquecer fortemente o transistor, então usaremos o diodo (1N4007) para fornecer proteção ao transistor contra pico indutivo.
Para reduzir as flutuações de tensão, conectaremos um capacitor de 1000uF na fonte de alimentação, conforme mostrado no Diagrama de Circuito.
Explicação de trabalho:
Depois que tudo estiver conectado de acordo com o diagrama de circuito, podemos ligar o PI para escrever o programa em PYHTON.
Vamos falar sobre alguns comandos que vamos usar no programa PYHTON, Vamos importar o arquivo GPIO da biblioteca, a função abaixo nos permite programar os pinos GPIO do PI. Também estamos renomeando “GPIO” para “IO”, portanto, no programa, sempre que quisermos nos referir aos pinos GPIO, usaremos a palavra 'IO'.
importar RPi.GPIO como IO
Às vezes, quando os pinos GPIO, que estamos tentando usar, podem estar executando algumas outras funções. Nesse caso, receberemos avisos durante a execução do programa. O comando abaixo diz ao PI para ignorar os avisos e prosseguir com o programa.
IO.setwarnings (falso)
Podemos referir os pinos GPIO do PI, tanto pelo número do pino a bordo quanto pelo número da função. Como 'PIN 35' na placa é 'GPIO19'. Portanto, dizemos aqui que vamos representar o pino aqui por '35' ou '19'.
IO.setmode (IO.BCM)
Estamos definindo quatro pinos GPIO como saída para acionar quatro bobinas do motor de passo.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Estamos configurando GPIO26 e GPIO19 como pinos de entrada. Detectaremos o pressionamento de botão por esses pinos.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Caso a Condição entre colchetes seja verdadeira, as instruções dentro do loop serão executadas uma vez. Portanto, se o pino 26 do GPIO ficar baixo, as instruções dentro do loop IF serão executadas uma vez. Se o pino 26 do GPIO não ficar baixo, as instruções dentro do loop IF não serão executadas.
if (IO.input (26) == Falso):
Este comando executa o loop 100 vezes, sendo x incrementado de 0 a 99.
para x no intervalo (100):
Enquanto 1: é usado para loop infinito. Com este comando, as instruções dentro deste loop serão executadas continuamente.
Temos todos os comandos necessários para atingir o controle de velocidade do motor de passo com isso.
Depois de escrever o programa e executá-lo, tudo o que resta é operar o controle. Temos dois botões conectados ao PI. Um para incrementar o atraso entre os quatro pulsos e outro para diminuir o atraso entre os quatro pulsos. O próprio atraso fala de velocidade; se o atraso for maior, o motor freia entre cada etapa e, portanto, a rotação é lenta. Se o atraso for próximo a zero, o motor gira em velocidade máxima.
Aqui deve ser lembrado que deve haver algum atraso entre os pulsos. Depois de dar um pulso, o motor de passo leva alguns milissegundos de tempo para atingir seu estágio final. Se não houver retardo entre os pulsos, o motor de passo não se moverá. Normalmente, o atraso de 50 ms é suficiente entre os pulsos. Para obter informações mais precisas, consulte a folha de dados.
Assim, com dois botões, podemos controlar o atraso, que por sua vez controla a velocidade do motor de passo.