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

Documentos relacionados
Autor: Tiago Lone Nível: Básico Criação: 14/12/2005 Última versão: 18/12/2006. PdP. 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

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: 24/03/2006 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

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

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

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

Autor: Tiago Lone Nível: Intermediário Criação: 27/03/2006 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

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

Display de Cristal Líquido

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

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

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

TUTORIAL Expansão de Entradas Digitais

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

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

Programação em Linguagem C

Tutorial de Computação PWM v

Escrito por Adriano Neres Rodrigues Qua, 30 de Dezembro de :00 - Última atualização Qua, 30 de Dezembro de :01

Criando uma agenda com o Lazarus

Delphi 7 Aula 03 Progressão Geométrica

Linguagem de Programação II Professor: Luiz Claudio Ferreira de Souza Assunto: Linguagem Pascal (Ambiente Lazarus) com Banco de Dados

CRIANDO PERSONALIZAÇÕES/PATCHS DE APARELHOS (BLIBLIOTECAS)

Como criar menus para as suas planilhas

Inserção de Dados no banco de Dados através dos componentes Combobox, Radio e Checkbox

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Fundamentos Programação

Tutorial 133 DUO Criação de telas e utilização do teclado

PRÁTICA XVIII INSTALAÇÕES ELÉTRICAS

Trabalhando com ToolStrip, ToolTip e StatusStrip

Conhecendo o Delphi 2010

Cerne Tecnologia e Treinamento

Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:

Objetivo: Teste de Ponto e Teste de Busca da característica (zonas).

Porta de rolo (shutter)

Por Fernando Koyanagi 1

Cerne Tecnologia e Treinamento

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho MULTIMÍDIA

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v

Letreiro Digital. Modelo I7014B. Manual do Usuário

SVMPC2. Manual do Usuário. Versão 1.2

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho CONTADOR

Administração Central. Unidade do Ensino Médio e Técnico Cetec Capacitações São Paulo

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Laboratório Bluetooth

RESUMO DE AULAS PC1 ETEC TAQUARITUBA 2 SEM 2011

OBJETOS : Timer1 e RadioGroup

Começando com o AWS IoT

Casa Mágica 2.1. Guia Rápido. André Santanchè junho/2005

PdP. Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006

Universidade Federal do Rio de Janeiro Faculdade de Arquitetura e Urbanismo. Gráfica_Digital. LUMION_00 Interface e comandos básicos

Tutorial 132 CP DUO Configuração MODBUS Escravo

A instalação será feita através do link Setup Magni 2, situado no CD do Rasther.

Instruções para Uso da Centrífuga Beckman Coulter Avanti J-30I

Introdução a Informática - 1º semestre AULA 05 Prof. André Moraes

Cerne Tecnologia e Treinamento

1 - Ambiente de desenvolvimento

DEPURAÇÃO DESVENDADA

Utilização de Base de Dados com BluePlant. Sumário

Pós-clique. em automações. Guia de configuração do pós-clique na automação de campanhas

Manual do KDiskFree. Jonathan Singer Michael Kropfberger Tradução: Marcus Gama

PRINCÍPIOS DA PROGRAMAÇÃO LEGO MINDSTORMS NXT

DELPHI Curso Extensão. walter Prof. Walter Gima

Arduino: primeiros passos para aprender e configurar.

Projeto 00 - Instruções examine se fechado e aberto, Saída

Introdução O MEC1000

TUTORIAL DE MANUSEIO DO DESCARREGADOR (software) O software esta disponível no site da Luffe:

Manual de Programação TED1000 versão TC100 Ethernet

PROCEDIMENTO PARA ALTERAÇÃO HORÁRIO DE VERÃO MD COM LITE

Cerne Tecnologia e Treinamento

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho ÁLBUM DE IMAGENS

Programação Básica em Arduino Aula 2

LINKANDO (LIGANDO) AS TELAS

Informática Básica. Aula 13 Macros e introdução a programação

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho

Os arquivos podem conter qualquer tipo de informação: Texto Sons (Músicas) Imagens (Fotos, etc.) Vídeos E podem ser Programas de Computador

Manual do Usuário. Easy Home

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

SUBIR LISTAS DE S SÉRIE MANUAIS DA FERRAMENTA ALL IN MAIL SUBIR LISTA DE S SÉRIE MANUAIS DA FERRAMENTA ALL IN MAIL

Módulo 03. Trabalhando com listas, imagens e tabelas

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

Modem MIN-410 Criando o aplicativo Hello World, executando com debug, subindo para o modem e habilitando comandos AT dentro do aplicativo

Manual Sistema de Automação de Pedidos Data C

CURSO BÁSICO DE CRIAÇÃO DE SITES MÓDULO 1 AULA 6

ENG 390. Universidade Federal de Viçosa. Programação Aplicada à Agricultura Aulas Práticas. Departamento de Engenharia Agrícola

Descrição do processo

Instalação - FlexiStarter

Manual para App Android e Software Windows

Manual do KXSLDbg. Keith Isdale Tradução: Marcus Gama

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

EXPERIÊNCIA N O 1 ACINAMENTO DE UMA LÂMPADA POR UMA CHAVE

Refinamentos sucessivos

Tutorial de instalação e configuração do Software Giga VMS

Bem-vindo ao tópico sobre tabelas e campos definidos pelo usuário.

Manual do Receptor Infravermelho Studuino

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

TUTORIAL CARTA DE CORREÇÃO ELETRÔNICA

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho

Nota de Aplicação: Utilização do Recipe Manager. Sumário

Transcrição:

TUTORIAL Motor DC Autor: Tiago Lone Nível: Básico Criação: 15/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br http://www.automato.com.br atendimento@automato.com.br

1 Introdução Nesse tutorial aprenderemos a controlar, através de um programa, os motores DC do Módulo de Motores e Displays. Para auxiliar nessa tarefa criaremos um projeto que possibilita a seleção do motor DC que queremos controlar e o ajuste dos parâmetros para acionamento desse. Com isso serão vistos todos os detalhes de programação necessários para o controle desses dispositivos. 2 Material O programa desenvolvido nesse tutorial vai utilizar o Módulo Principal e o Módulo de Motores e Displays com apenas os motores DC conectados à placa principal desse módulo. Para a criação do programa será necessário o Borland Delphi 6. A seguir a imagem da montagem do KDR5000 necessária para esse tutorial. Figura 1: Montagem do KDR5000 utilizada nesse tutorial. 3 Projeto O projeto desse tutorial será um programa que controla os motores DC do Módulo de 1

Motores e Displays permitindo o ajuste do sentido e da velocidade da rotação. Esse programa terá a seguinte interface gráfica. Figura 2: Interface gráfica do programa que será criado nesse tutorial. Nosso primeiro passo é criar essa interface gráfica. Utilizaremos o projeto criado no tutorial Base que já nos fornece algumas funcionalidades interessantes. Para isso copiamos o projeto daquele tutorial e em cima dele vamos adicionar alguns componentes gráficos extras. A interface é simples, possuindo três componentes Labels, dois ComboBox, um ScrollBar e dois botões. Os ComboBox são utilizados para selecionar o motor e o sentido da rotação, o ScrollBar ajusta a velocidade do movimento e um botão para enviar o comando que acionar o motor e outro para desligá-lo. Todos esses componentes podem ser encontrados na aba Standard da barra de componentes. Figura 3: Aba "Standard" da Barra de componente. Vamos adicionar um Label e um ComboBox para a seleção do motor. O componente Label possui o seguinte ícone. Figura 4: Ícone do componente Label. E o componente ComboBox possui o seguinte ícone. Figura 5: Ícone do componente ComboBox. 2

Adicionamos um Label e modificamos as seguintes propriedades. Name = LabelMotor Caption = Motor: Font/Style/fsBold = true seguir. Em seguida adicionamos um componente ComboBox e modificamos as propriedades a Name = ComboBoxMotor Style = csdropdownlist Items.Strings = Motor DC I, Motor DC II ItemIndex = 0 Com isso teremos os componentes utilizados para a seleção do motor que queremos controlar. Nosso Form irá se parecer com o seguinte. Figura 6: Form após a inclusão dos componentes para seleção de motor. Agora adicionaremos os componentes para a seleção do sentido da rotação. Utilizaremos os mesmos componentes que utilizamos para a seleção do motor, um Label e um ComboBox. Adicionamos um Label e modificamos as seguintes propriedades. Name = LabelSentido Caption = Sentido: Font/Style/fsBold = true Em seguida adicionamos o ComboBox e modificamos as seguintes propriedades. 3

Name = ComboBoxSentido Style = csdropdownlist Items.Strings = Anti-Horário, Horário ItemIndex = 0 Dessa forma já temos os componentes necessários para o ajuste do motor que queremos controlar e do sentido da rotação. Nosso Form se parecerá com o seguinte. Figura 7: Form com componentes para seleção de motor e direção da rotação. Agora adicionaremos os componentes para o ajuste da velocidade de rotação. Vamos utilizar um componente Label e um ScrollBar. O componente ScrollBar, assim como o Label, encontra-se na aba Standard da barra de componentes e possui o seguinte ícone. Figura 8: Ícone do componente ScrollBar. Adicionamos os dois componentes e modificamos as seguintes propriedades do Label. Name = LabelVelocidade Caption = Velocidade: Font/Style/fsBold = true E as seguintes propriedades do ScrollBar. Name = ScrollBarVelocidade Max = 255 4

Position = 127 Assim teremos a seguinte aparência no nosso Form principal. Figura 9: Form após a adição de componentes para o ajuste de velocidade da rotação. Nesse ponto só nos falta adicionar os dois botões para iniciar e para parar o giro do motor. Para isso adicionamos dois componentes Button, que podem ser encontrados na aba Standard da barra de componentes. Esse componente possui o seguinte ícone. Figura 10: Ícone do componente Button. Temos que modificar as seguintes propriedades dos botões. Vamos modificar primeiro as propriedades do botão para início da rotação. Name = ButtonIniciar Caption = Iniciar Font/Style/fsBold = true Em seguida as propriedades do botão para parar a rotação. Name = ButtonParar Caption = Parar Font/Style/fsBold = true Um último detalhe que vamos modificar é a propriedade Caption do Form principal. Como copiamos o projeto do tutorial Base, essa propriedade possui o valor Projeto Base. Vamos 5

modificar essa propriedade para Motor DC. Com isso finalizamos a construção de nossa interface gráfica. A seguir a imagem dessa interface finalizada. Figura 11: Interface final. Nosso objetivo agora é implementar o código para controle dos motores. Para isso precisamos criar um manipulador para o evento OnClick do botão de início e um para o botão de parada. Vamos criar primeiro o manipulador do botão para início da rotação. Para fazer isso podemos selecionar o componente Button, que possui o texto Iniciar, ir no Object Inspector, selecionar a aba Events e dar um duplo clique sobre a linha que está escrito OnClick. Uma forma mais fácil de fazer isso é apenas dar um duplo clique sobre o botão no Form e com isso o Delphi irá criar automaticamente um manipulador para o evento OnClick. O seguinte código será criado. Procedure TFormMain.ButtonEnviarClick(Sender: TObject); Dentro desse manipulador vamos implementar o código para preparar os parâmetros da rotação e enviar o comando para o Kit. O método que vamos utilizar para acionar o motor DC é o DCMotorOn. Esse método possui a seguinte declaração. Procedure DCMotorOn(motor, dir, speed : Integer); Esse método possui três parâmetros, um indicando qual motor deve ser controlado, outro indicando a direção da rotação e por fim um que define a velocidade da rotação. Para indicar qual motor deve ser controlado podemos passar os valores 0 ou 1 no primeiro parâmetro, indicando o primeiro ou o segundo motor DC respectivamente. No parâmetro de direção passamos um valor igual a 0 para indicar um movimento anti-horário ou um valor 1 para indicar sentido horário. E por fim, no parâmetro de velocidade podemos passar valores na faixa de 0 a 255, sendo que quanto maior o valor, maior será a velocidade da rotação. Se o valor da velocidade for zero então o motor será desligado. Vamos implementar o código para acionar um motor DC. O primeiro passo é preparar os parâmetros. A seguir o início do código do manipulador do botão Iniciar. 6

Procedure TformMain.ButtonEnviarClick(Sender: Tobject); var // Armazena o motor motor : Integer; // Armazena sentido sentido : Integer; // Armazena velocidade velocidade : Integer; // Recupera qual motor deve ser controlado if ComboBoxMotor.ItemIndex = 0 then motor := 0 else motor := 1;... Nesse trecho de código criamos três variáveis do tipo Integer para armazenar os parâmetros de motor, sentido e velocidade. Em seguida verificamos, através da propriedade ItemIndex do ComboBox de seleção do motor, qual é o motor que foi selecionado e setamos a variável motor com o valor correspondente a ele. Em seguida verificamos a seleção do sentido da rotação e setamos a variável sentido de acordo. O código fica o seguinte. Procedure TformMain.ButtonEnviarClick(Sender: Tobject); var // Armazena o motor motor : Integer; 7

// Armazena o sentido sentido : Integer; // Armazena velocidade velocidade : Integer; // Recupera qual motor deve ser controlado if ComboBoxMotor.ItemIndex = 0 then motor := 0 else motor := 1; // Recupera o sentido if ComboBoxSentido.ItemIndex = 0 then sentido := 0 else sentido := 1;... o seguinte. Agora vamos recuperar o último parâmetro, que é a velocidade. O código que faz isso é... // Recupera o sentido if ComboBoxSentido.ItemIndex = 0 then sentido := 0 else sentido := 1; // Recupera a velocidade velocidade := ScrollBarVelocidade.Position; 8

... O parâmetro de velocidade será o valor da propriedade Position do ScrollBar. Ele sempre estará na faixa de 0 a 255 porque definimos que a propriedade Max, que define o valor máximo de retorno da posição desse componente, fosse 255 e por padrão o valor mínimo já é 0. Com esse código temos nosso parâmetro de velocidade armazenado na variável de nome velocidade. Com isso temos todos nossos parâmetros armazenados em variáveis. Falta apenas chamar o método DCMotorOn e passar essas variáveis como parâmetro. É o que vamos fazer a seguir.... // Recupera a velocidade velocidade := ScrollBarVelocidade.Position; // Envia o comando para ligar o motor Kit.DCMotorOn(motor, sentido, velocidade);... Essa última linha que adicionamos apenas chama o método DCMotorOn com os parâmetros que armazenamos anteriormente. Com isso já podemos fazer um teste de controle dos motores DC do Módulo de Motores e Displays. Para isso, vamos no menu Run Run ou pressionamos F9. Se não houver nenhum erro o programa será compilado e executado. Com um Kit conectado em alguma porta serial podemos testar se o programa está funcionando. Selecione a porta serial correta, modifique alguns parâmetros e pressione o botão Enviar. O motor selecionado deverá se movimentar. Teste algumas vezes com parâmetros diferentes. Vamos implementar agora o código do manipulador de eventos do botão Parar. Como vimos anteriormente, para parar um motor temos que passar como parâmetro de velocidade o valor 0. Então vamos criar o manipulador do evento OnClick do botão Parar dando dois cliques sobre ele e depois inserir o seguinte código. Procedure TformMain.ButtonPararClick(Sender: TObject); // Desliga motor 9

Kit.DCMotorOn(ComboBoxMotor.ItemIndex, 0, 0); Pronto, temos um programa que controla os motores DC e ajusta todos os parâmetros da rotação. A aparência final do programa ficou assim. Figura 12: Aparência final do programa. Podemos selecionar nessa interface o motor controlado, o sentido e a velocidade da rotação. Em seguida é preciso apenas pressionar o botão enviar e o motor irá se movimentar. Para interromper o movimento do motor podemos pressionar o botão Parar e o movimento será interrompido. 4 Dicas Uma funcionalidade interessante que podemos implementar é que ao modificar a velocidade do motor através do ScrollBar essa fosse refletida automaticamente no motor sem a necessidade de pressionar o botão Iniciar. Para isso vamos utilizar o evento do ScrollBar denominado OnChange, que é executado toda vez que há uma mudança na posição do ScrollBar. Capturando esse evento podemos tomar alguma atitude perante qualquer mudança na velocidade. Para criar o manipulador para esse evento, dê um duplo clique sobre o componente ScrollBar responsável pelo ajuste da velocidade. O seguinte código será criado. Procedure TformMain.ScrollBarVelocidadeChange (Sender: TObject); Para atualizar a velocidade do motor temos que utilizar o método DCMotorOn passando como parâmetro a nova velocidade juntamente com os parâmetros antigos. Isso pode ser feito de 10

uma maneira bem simples. Como nosso método ButtonEnviarClick, que é o manipulador do evento OnClick do botão Enviar, lê todos os parâmetros selecionados atualmente na interface e chama o método DCMotorOn com esses parâmetros, então podemos apenas chamar esse método toda vez que houver uma mudança no ajuste de velocidade e com isso essa será atualizada imediatamente no motor. Precisamos de apenas uma linha de código para fazer isso e é o que mostramos a seguir. Procedure TformMain.ScrollBarVelocidadeChange (Sender: TObject); // Atualiza a velocidade do motor imediatamente // após essa ser modificada no ScrollBar. ButtonEnviarClick(Sender); Teste selecionar um motor e modificar a velocidade. Perceba que agora a velocidade da rotação do motor varia conforme o ScrollBar é modificado, sem a necessidade de pressionar o botão Enviar. Para parar o movimento pressione o botão Parar. Uma outra dica interessante é desligar os motores toda vez que o programa for fechado. Para fazer isso podemos implementar um código para desligar os motores no evento OnDestroy do Form principal, que é executado quando o programa fecha. Já criamos um manipulador para esse evento no tutorial Base. Como copiamos aquele projeto, o manipulador para esse evento já existe nesse código fonte, e seu código está a seguir. Procedure TFormMain.FormDestroy(Sender: TObject); kit.closecommunication; Nesse manipulador adicionaremos o código para desligar os motores. Isso é feito com o seguinte código. Procedure TFormMain.FormDestroy(Sender: TObject); // Desliga o primeiro motor Kit.DCMotorOn(0, 0, 0); // Desliga o segundo motor Kit.DCMotorOn(1, 0, 0); 11

// Fecha a comunicação kit.closecommunication; Agora, quando fechamos nosso programa, os motores irão interromper seu movimento imediatamente. 5 Conclusão Nesse tutorial vimos como controlar os motores DC do Módulo de Motores e Displays. Com o projeto que criamos foi possível entender o funcionamento do método DCMotorOn e o significado de todos os seus parâmetros. Com isso já é possível explorar ao máximo tudo que os motores DC do Kit Didático de Robótica podem oferecer. 12