Por Fernando Koyanagi 1

Documentos relacionados
Por Fernando Koyanagi 1

Por Fernando Koyanagi

Por Fernando Koyanagi

Arduino. Aula 3 motores

Pequenos Projetos com Arduino

Podem ser substituídos pelo módulo P7-Sensor de Luminosidade da GBK Robotics.

Kit controle remoto IR acionando 3 Led com Arduino

Por Fernando Koyanagi

Por Fernando Koyanagi

Por Fernando Koyanagi

Comunicação Serial 1

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Projeto No. 15 Sensor Óptico Reflexivo

Indústria e Comércio de Atuadores RVC Eireli EPP.

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

PRÁTICA XVIII INSTALAÇÕES ELÉTRICAS

AVC Sistema de abertura e controle de altura do arco

OFICINA Uso da plataforma Arduino no Ensino de Ciências

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo;

Por Fernando Koyanagi

ASPECTOS TEÓRICOS DOS EXPERIMENTOS

Entrada e Saída e Dispositivos

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO

4. Constantes. Constantes pré-definidas

REDES DE COMPUTADORES E A CAMADA FÍSICA

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

HSS86 DRIVER DE MOTOR DE PASSO COM MALHA FECHADA / INSTRUÇÕES 1.2 CARACTERÍSTICAS

Autor: Tiago Lone Nível: Básico Criação: 14/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Detector de raios para Arduino

Programação em Linguagem C

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

Manual Técnico Driver Chopper 5A Para Motor de Passo

Teclado. PdP. Autor: Tiago Lone Nível: Básico Criação: 20/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 15/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

SMC-U PRO GUIA DE UTILIZAÇÃO GUIA DE UTILIZAÇÃO DA CONTROLADORA DE MOTOR DE PASSO UNIPOLAR SMC-U-PRO V1.00 PÁGINA 1

KIT INICIANTE V7 PARA ARDUINO

Instituto Federal do Paraná IF-Robótica. Prof. MSc. Marcos Dinís Lavarda Contato:

Por Fernando Koyanagi

I2C PROTOCOLO DE COMUNICAÇÃO

Linguagem de Programação. Linguagem C com Arduino

Profª Danielle Casillo

Qual é o tipo certo de lente NIKKOR para sua DSLR?

PIBIC/PIBITI/IC Jr Relatório das Atividades de Pesquisa 23ª SEMIC

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Ficha 3. Exercícios de preparação da actividade 3

ESPECIFICAÇÕES E CONFIGURAÇÕES DO TRATÔMETRO

Manual do usuário - Kit 4EA2SA v2.0. Kit 4EA2SA v2.0 Manual do usuário. Copyright VW Soluções

Apostila de introdução ao Tinkercad (antigo Circuits.io)

Training Box Duo Mini Curso.

Módulo 16 ED 125 Vdc Opto

Projeto No. 2 Potenciômetro

Guia da Placa de desenvolvimento PD Mega16 N1

Capítulo 5 Entrada/Saída

SMC-B-STD GUIA DE UTILIZAÇÃO GUIA DE UTILIZAÇÃO DO DRIVER PARA MOTOR DE PASSO BIPOLAR SMC-B-STD VER 1.00 PÁGINA 1

Controle remoto de 4 canais utilizando módulo de RF 433 Mhz

Manual DETECTOR NH (11) (62) (11) (62)

Microcontroladores e Robótica

ou

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CCET - Centro de Ciências Exatas e de Tecnologia Engenharia de Computação. Display POV

O jeito fácil de aprender!

Manual Técnico Módulo Ponte H 5A

Curso: Tecnologias educacionais de baixo custo. Conector Ciência:

Oficina de Programação utilizando a plataforma Arduino

Introdução do Arduino para aquisição de dados e controle de instrumentos

364 SISTEMAS DIGITAIS

INSTRUMENTOS PARA TESTES ELÉTRICOS Tutorial de Teste. Função: 67 ou PTOC Direcional de Sobrecorrente

Mapeamento de memória e conexões do Controlador CP-WS11/4DO4DI-USB

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

DK105 GROVE. Sonar. Radiuino

ALGORITMOS, ARQUITETURA E ARDUINO

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Prof. Daniel Hasse. Robótica Industrial

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

MINICURSO ARDUINO BÁSICO

SSC0611 Arquitetura de Computadores

Modelo R01 - Volume 1 - Conhecendo o Equipamento

Manual de operação Sensor de vibração VKV / / 2014

Programação Básica em Arduino Aula 2

Sistemas Operacionais. Sistema de entrada e Saída

Servo Motor. Manual Rápido. Revisão: RW

MÓDULO DE PASSAGEM LINEAR HCS

Descrição do Produto. Dados para Compra. Itens Integrantes. Código do Produto. Produtos Relacionados

Introdução O MEC1000

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Sistemas de Controle 2

Objetivo: Objetivo: Buscar as oscilografias de faltas registradas pelos relés utilizando o software SFT2841

Ligando uma lâmpada com Arduino. Professor: Paulo Marcos Trentin

Introdução ao kit microcontrolado Arduino

Profª Danielle Casillo

DGA21 SISTEMA FIXO COM SUPERVISÓRIO PARA DETECÇÃO DE GASES NOCIVOS E AMÔNIA IP 65. Manual

Linguagem C: Introdução

Por Fernando Koyanagi

Manual de Montagem Protuino FTDi

Transcrição:

Por Fernando Koyanagi 1

Motor de passo como servo com comunicação serial 2

Características principais Permite comandos através da comunicação serial. Flexibilidade nas configurações do software, permitindo formas de controle variadas. Flexibilidade na montagem de hardware, permitindo variações de motores, drivers e sensores. Retorno da informação de posição real através da leitura do sensor. 3

Montagem... Continuaremos utilizando a mesma montagem anterior. Mas deixaremos somente o potenciômetro de leitura do eixo. 4

Montagem... O potenciômetro continuará funcionando como um sensor da posição atual do eixo. Para isso vamos prender o eixo do motor ao manípulo do potenciômetro. 5

Montagem... Conectaremos o potenciômetro a entrada analógica A0. O EIXO conectaremos ao pino A0 (fio roxo). A alimentação de 5V (fio verde). A referência GND (fio preto). 6

MAS ATENÇÃO!!! Antes de prender o potenciômetro sensor ao eixo, teste a montagem para verificar se a rotação está ocorrendo no sentido correto, ou seja, ao comandar um aumento de posição o motor deve girar no sentido de aumentar o potenciômetro sensor. Se a rotação estiver ocorrendo ao contrário, simplesmente inverta a polarização do potenciômetro. Como o torque do motor de passo costuma ser alto, ele pode danificar o potenciômetro sensor tentando levá-lo para uma posição que não pode ser alcançada. 7

Montagem do circuito Conexões ARDUINO, REGULADOR E MOTOR FIO Pino 2 - Arduino AZUL In_1 Pino 3 - Arduino AZUL In_2 Pino 4 - Arduino LARANJA In_3 Pino 5 - Arduino LARANJA In_4 GND - Arduino PRETO GND Saída do Regulador AMARELO +12V GND do Regulador PRETO GND Módulo L298 A+ VERMELHO Motor A A- PRETO Motor A B+ VERMELHO Motor B B- PRETO Motor B 8

Entendendo o programa ( Declarações ) 9

Código Fonte do Arduino Declarações Globais: (constantes) Começamos definindo constantes que representarão os pinos D2, D3, D4 e D5 do Arduino. Estes pinos serão os responsáveis pela transmissão da sequencia de acionamento para o driver. A constante EIXO refere-se ao pino A0 utilizado pelo potenciômetro sensor. 10

Código Fonte do Arduino Declarações Globais: (Variáveis) Agora veremos que temos novas variáveis para o controle do Servo Motor de Passo. inc_dec Armazena o incremento/decremento da posição. retardo_entre_os_passos define o retardo para mudança de passo. tolerancia define a precisão do ajuste da posição. leitura_comando armazena o valor da posição alvo recebida pelo comando. leitura_eixo armazena o valor da posição atual do eixo. passo armazena o passo atual da sequencia de passos. limite_inferior armazena o valor usado para definir a posição mínima de ajuste. limite_superior armazena o valor usado para definir a posição máxima de ajuste. comando_recebido armazena o comando recebido pela serial. recepcao_completa sinaliza se a recepção do dado foi completada. 11

Entendendo o programa ( Setup ) 12

Código Fonte do Arduino Setup() Na função setup(), ajustamos os pinos digitais como saídas, o pino analógico como entrada. Então iniciamos a função Serial. Para a recepção reservamos 200 bytes para o comando recebido (mais que suficiente). Lemos a posição inicial do eixo e executamos uma função que envia pela serial uma mensagem de configurações atuais e lista de comandos para o usuário. 13

Entendendo o programa ( mensagem ) 14

Código Fonte do Arduino Observação: A função mensagem é opcional e pode ser removida do programa, uma vez que o usuário já esteja acostumado com a lista de comandos. A função mensagem é uma série de prints, enviados pela serial para tornar mais amigável a manipulação do programa. Servindo de orientação. Ela ainda faz uma chamada à função interpretadora de comando solicitando uma leitura dos valores das variáveis. Veremos essa função mais a frente. 15

Código Fonte do Arduino Exemplo da mensagem enviada - Informações e Comandos 16

Entendendo o programa ( Loop) 17

Código Fonte do Arduino Loop(): Na função loop(), lemos novamente a posição atual do eixo e em seguida verificamos se existe alguma recepção completa de dados, usando a variável sinalizadora recepcao_completa. Se esta variável for verdadeira, passamos o controle do programa para a função interpretadora do comando. Se não houver repetimos o mesmo processo de ajuste que fizemos antes utilizando o valor contido na variável leitura_comando como alvo de ajuste e tolerancia como determinante da precisão do ajuste. 18

Código Fonte do Arduino Tolerância total (-) tolerancia (+) tolerancia Valor alvo Relembrando, para o cálculo da posição alvo incluímos um valor que indica a tolerância do posicionamento. Isso nos permitirá lidar com ruídos na leitura simplesmente aumentando a faixa alvo. 19

Entendendo o programa (girar) 20

Código Fonte do Arduino A função girar funciona da mesma forma que vimos anteriormente. girar (int direcao): A função girar receberá um parâmetro que indicará para qual lado o motor deverá girar. Este parâmetro é enviado pela avaliação dos valores que ocorre no loop, como vimos a pouco. O valor do parâmetro direcao determinará se o passo deve ser incrementado ou decrementado. Criamos essa função separadamente somente para ilustrar melhor o funcionamento do programa. Poderíamos ter incluído este código diretamente na avaliação que ocorre no loop. 21

Entendendo o programa (ajustar_passo) 22

Código Fonte do Arduino Bem como a função ajustar_passo, que a ativa as bobinas na sequencia correta. ajustar_passo(int bobina): A função ajustar_passo já é conhecida da montagem do vídeo anterior. É ela que efetivamente ativa ou desativa os pinos de controle do arduino para acionar o driver e consequentemente promover a polarização correta das bobinas do motor. Assim, ela é responsável por executar os passos determinados pelas avaliações das funções anteriores. 23

Entendendo o programa (serialevent) 24

Código Fonte do Arduino A função serialevent() é uma função do Arduino que dispara automaticamente sempre que um dado é recebido pela serial. Note que não precisamos explicitar nenhuma chamada para esta função pois, uma vez que um dado é recebido, o fluxo do programa é interrompido e esta função é chamada para manipular os dados recebidos. Fazemos isso verificando se há bytes no buffer de recepção serial do Arduino usando a função Serial.available(). Enquanto houver, armazenamos cada byte na variável caracter e adicionamos à variável comando_recebido até que um caractere de nova linha seja recebido, sinalizando o fim do comando ou até que se esgotem os bytes do buffer de recepção. 25

Entendendo o programa ( Interpretador de comandos ) Cascata de if... 26

Código Fonte do Arduino Interpretador de comandos Comando L A função interpretadora de comandos é uma coleção de verificações da primeira letra do comando recebido. Cada letra representa um comando e os dados seguintes servirão de argumentos para este comando, isso se houver. O primeiro comando é o comando L que executa uma leitura de todas as variáveis de controle e as envia para o usuários através da serial. 27

Código Fonte do Arduino Interpretador de comandos Comando T O comando T lê o restante dos bytes da variável comando, após a primeira letra e usa estes valores para ajustar o valor da variável tolerancia. Note que usamos o método.substring para cortar da segunda posição (a contagem das posições das strings começam em zero), até o comprimento total da variável comando. Para obter o comprimento usamos o método.length(). Por fim, usamos ainda o método.toint() para converter este valor em um inteiro. 28

Código Fonte do Arduino Interpretador de comandos Comando R O comando R é responsável pelo ajuste da variável retardo_entre_os_passos. Este retardo é importante para controlar a rapidez do movimento. Ela substituiu a variável velocidade que utilizamos antes (somente mudamos o nome). O argumento para esse comando é capturado da mesma forma que o comando anterior. Depois de recebido o valor, ele é verificado. O valor deste retardo não pode ser muito pequeno porque faria o motor pular passos. No nosso caso, o limite é 3 milissegundos. 29

Código Fonte do Arduino Interpretador de comandos Comandos I e S Os comando I e S servem para ajustar o valor das variáveis que controlam os limites do movimento do servo. Sendo I paro limite inferior e S para o limite superior. A recepção dos valores ocorre praticamente da mesma forma que os casos anteriores. 30

Código Fonte do Arduino Interpretador de comandos Comando M O comando M calcula o valor da posição MÉDIA entre os limites SUPERIOR e INFERIOR e atribui este valor a variável leitura_comando, tornando-se assim o alvo do ajuste. Após o comando M o servo sempre se posicionará na posição intermediária, entre a posição máxima e mínima ajustadas 31

Código Fonte do Arduino Interpretador de comandos Comandos + e - Os comandos + e - incrementam e decrementam, respectivamente, a posição do servo, em passos definidos pelo valor da variável inc_dec. O valor desta variável pode ser ajustado como um argumento destes dois comandos. Uma vez ajustada, não é necessário que se envie novamente o valor do incremento ou decremento, a menos que o intuito seja realmente altera-la. 32

Código Fonte do Arduino Interpretador de comandos Comando A O comando A é responsável pelo o AJUSTE da posição do servo. A nova posição é o argumento deste comando. Se o argumento for omitido, será considerado zero e o servo moverá para a posição mínima. 33

Novo suporte para NEMA 17... 34

Novo suporte para NEMA 17... 35

Novo suporte para NEMA 17... Arquivo STL para impressora 3D 36

Novo suporte para NEMA 17... 37

Próximo tutorial Automação de uma casa... Em www.fernandok.com Download arquivo PDF dos diagramas Download arquivo INO do código fonte 38