Trait d`union 2011 - Femmes Internationales Murs Brisés
Transcription
Trait d`union 2011 - Femmes Internationales Murs Brisés
Tutorial de Computação
Programação em Java para MEC1100
v2010.10
Linha de Equipamentos MEC
Desenvolvidos por:
Maxwell Bohr Instrumentação Eletrônica Ltda. – Rua Porto Alegre, 212 – Londrina – PR – Brasil
http://www.maxwellbohr.com.br
1 Introdução
Este tutorial tem como objetivo apresentar os passos necessários para criar aplicações em
Java, com o ambiente de desenvolvimento NetBeans, voltadas para o MEC1100. Será apresentado
neste tutorial como instalar e configurar as aplicações necessárias para esse desenvolvimento e
como enviar um comando para um MEC1100 utilizando a biblioteca de controle em Java.
2 A Biblioteca de Controle para Java
2.1 O que é a biblioteca
O MEC1100 responde a comandos enviados a partir de uma porta USB. Para isso é
necessário abrir uma comunicação entre o computador e o MEC1100 e enviar bytes em um
protocolo específico. Fazer isso diretamente pode ser complicado e demorado, e criaria uma
dificuldade desnecessária.
Por isso, foi criada uma biblioteca de controle que cuida de todos os detalhes de
comunicação e codificação dos comandos para envio ao MEC1100, facilitando muito a tarefa de
programação do equipamento. Com o uso da biblioteca não é necessário saber os detalhes de
codificação dos comandos e parâmetros para envio ao MEC1100, tudo isso é tratado
automaticamente.
2.2 Lista simplificada dos métodos
Método
Descrição
OpenCommunication
Inicializa a comunicação com um MEC1100 através de uma porta
serial.
CloseCommunication
Finaliza a comunicação com um MEC1100.
GetInstalledSerialPorts
Detecta todas as portas seriais instaladas no sistema operacional.
IsConnected
NOP
DeviceStatus
Verifica se existe algum MEC1100 conectado e ligado na porta
USB.
Envia um comando 'NOP'. Não realiza nenhuma operação.
Retorna informações sobre o estado interno do equipamento.
DeviceInfo
Retorna informações sobre o dispositivo conectado, como o nome,
versão do hardware e versão do firmware.
SensorRead
Lê uma entrada analógica.
SensorReadAll
Lê todas as entradas analógicas em uma única operação.
DigitalPortRead
Lê o valor da porta de entrada digital.
DigitalPortWrite
Grava um valor na porta de saída digital.
DigitalPinRead
Efetua a leitura de uma entrada digital individual.
DigitalPinWrite
Efetua a gravação de uma saída digital individual.
ServoMotorOn
Liga um servomotor
ServoMotorOff
Desliga um servomotor.
PwmOn
Ativa um PWM utilizando um valor para o período, outro valor para
o ciclo ativo e o divisor de clock como parâmetros.
1
PwmOnTime
Ativa um PWM utilizando o período e tempo de ciclo ativo em
milissegundos como parâmetros.
PwmOnFreq
Ativa um PWM utilizando uma frequência e uma taxa de
porcentagem de ciclo ativo como parâmetros.
PwmOff
Desativa um PWM.
3 Instalação e Configuração do Ambiente de
Desenvolvimento Java
A instalação e configuração do ambiente de desenvolvimento encontram-se divididas em
três partes: a instalação do JDK que é um Kit de Desenvolvimento, ou seja, um conjunto de
utilitários que permitem criar software para plataforma Java; a instalação do NetBeans, que é um
ambiente de desenvolvimento integrado gratuito e de código aberto para desenvolvedores de
software em Java e a instalação da biblioteca RXTX que nos permite usar a comunicação com a
porta serial.
A seguir veremos onde encontrar cada um desses componentes para instalar no Ubuntu e no
Windows.
3.1 Ubuntu
3.1.1 Instalação do JDK
Primeiramente, abra o Ubuntu Software Center localizado no menu de Aplicativos do
Ubuntu.
Figura 1: Ubuntu Software Center.
Em seguida, digite “sun-java 6” no painel de pesquisa. Nos resultados, clique em Sun
Java™ Development Kit (JDK) 6 e em instalar.
2
Figura 2: Instalando o JDK da sun.
Digite sua senha pessoal de usuário e a instalação irá começar. Após essa etapa devemos
configurar qual máquina virtual o computador vai usar, visto que geralmente o Ubuntu já vem com
o openJDK instalado. Para isso, em um terminal digite a seguinte linha de comando:
sudo update-alternatives --config java
Será mostrado a seguinte tela. Nela deveremos digitar o número correspondente ao Java da
sun.
Figura 3: Escolhendo a máquina virtual que o computador irá usar.
Com essas etapas concluídas você já está habilitado para instalar o NetBeans.
3
3.1.2 Instalação do NetBeans
Em computadores com Linux, o método preferencial para instalar o NetBeans IDE é usando
o instalador binário. O instalador pode ser encontrado no site http://netbeans.org/downloads/. Nesse
tutorial usaremos o instalador que contém todas as tecnologias disponíveis.
Primeiramente, vá até o diretório que contém o instalador. Se necessário, altere as
permissões do arquivo instalador para tornar o binário executável digitando em um Terminal da
pasta:
chmod +x seu_executável_binário
Onde o “seu_binário_executável” é o nome do arquivo binário que foi baixado
anteriormente.
Figura 4: Tornando o binário executável..
Agora, abra o instalador executando o código a seguir em um Terminal previamente aberto
na mesma pasta do executável:
./seu_executável_binário
Figura 5: Iniciando a execução do NetBeans.
No assistente de instalação, escolha uma resposta para o Contrato de licença e clique em
Próximo.
Figura 6: Contrato de Licença do NetBeans
4
Especifique um diretório vazio dentro do qual será instalado o NetBeans IDE e escolha qual
JDK o IDE usará.
Figura 7: Escolhendo Diretório onde o NetBeans será
instalado e o JDK usado.
Escolha um diretório para instalar o GlassFish.
Figura 8: Escolhendo Diretório onde o GlassFish será instalado.
Verifique se o local de instalação está correto e se há espaço disponível no sistema para a
instalação. Clique em Instalar para iniciar a instalação.
3.1.3 Instalação do RXTX
Entre no site http://rxtx.qbang.org/wiki/index.php/Download, e faça o download da última
versão disponível. No nosso tutorial, a versão utilizada tem por nome “rxtx-2.1-7bins-r2.zip”.
Descompacte o aquivo baixado no desktop.
Agora, iremos copiar o arquivo RXTXcomm.jar que se encontra na pasta “/rxtx-2.1-7-binsr2”. Para isso, abra o terminal e digite os seguintes comandos para copiar o RXTXcomm.jar:
cd Desktop
cd rxtx-2.1-7-bins-r2/
sudo cp RXTXcomm.jar /%JAVA_HOME%/jre/lib/ext
Onde %JAVA_HOME% é a pasta onde o jre está instalado. Abaixo uma figura da pasta com
o arquivo copiado:
5
Figura 9: Pasta já com o RXTXcomm.jar copiado.
Com isso, vamos copiar o librxtxSerial.so. Para isto, abra um terminal e digite as seguintes
linhas de acordo com a versão do Ubuntu que você está usando. Se a versão utilizada for a 32-bit
siga os procedimentos abaixo:
cd Desktop
cd rxtx-2.1-7-bins-r2/
cd Linux
cd i686-unknown-linux-gnu
sudo cp librxtxSerial.so /%JAVA_HOME%/jre/lib/i386
Se estiver na versão 64-bit siga os procedimentos abaixo:
cd Desktop
cd rxtx-2.1-7-bins-r2/
cd Linux
cd x86_64-unknown-linux-gnu
sudo cp librxtxSerial.so /%JAVA_HOME%/jre/lib/i386
Abaixo uma figura da pasta com o arquivo copiado:
Figura 10: Pasta com o librxtxSerial.so já copiado.
Terminado isso a biblioteca RXTX estará pronta para uso.
6
3.2 Windows
3.2.1 Instalação do JDK
O JDK pode ser encontrado no site http://java.sun.com/javase/downloads/index.jsp. Nesse
tutorial usaremos a versão: Java Plataform (JDK)
Depois de fazer o download do instalador de um duplo clique nele para iniciar a instalação.
Clique em Next e escolha o local para a instalação do JDK.
Clique em Next novamente e a instalação começará.
Figura 11: Escolha onde deverá ser feita a instalação do JDK
Escolha o local para a instalação do jre e clique em Next para começar a instalação.
Figura 12: Escolha onde deverá ser feita a instalação do JRE.
Terminado isso o Java estará pronto para uso.
7
3.2.2 Instalação do NetBeans
Faça o download do instalador que pode ser encontrado no site
http://netbeans.org/downloads/. Neste tutorial usaremos o instalador que contém todas as
tecnologias disponíveis, clique duas vezes no ícone para abrir o instalador.
No assistente de instalação, clique em próximo e escolha uma resposta para o Contrato de
licença e clique em Próximo novamente.
Figura 13: Contrato de Licença do NetBeans
Especifique um diretório dentro do qual será instalado o NetBeans IDE e escolha o JDK que
o IDE usará na lista de JDKs compatíveis e clique em Próximo.
Figura 14: Escolhendo Diretório onde o NetBeans será instalado e o JDK usado.
Agora escolha um diretório para instalar o GlassFish.
8
Figura 15: Escolhendo Diretório onde o GlassFish será
instalado.
Verifique se o local de instalação está correto e se há espaço disponível no sistema para a
instalação. Clique em Instalar para iniciar a instalação.
3.2.3 Instalação do RXTX
Entre no site http://rxtx.qbang.org/wiki/index.php/Download e faça o download da última
versão disponível. Neste tutorial, a versão utilizada tem por nome “rxtx-2.1-7-bins-r2.zip”.
Descompacte a pasta no desktop e copie o RXTXcomm.jar que se encontra dentro da pasta
“rxtx-2.1-7-bins-r2” para %JAVA_HOME%\jre\lib\ext, onde %JAVA_HOME% é a pasta onde o jre
está instalado.
Figura 16: Pasta onde o RXTXcomm deve ser instalado
Agora devemos copiar o rxtxSerial.dll que se encontra na pasta ”rxtx-2.1-7-binsr2\Windows\i368-mingw32” para a pasta C:\WINDOWS\system32.
Figura 17: Pasta onde o rxrxSerial.dll deve ser copiado.
9
4 Criação de Programas de Controle em Java
Para criar um programa primeiramente precisamos criar um novo projeto e adicionar a
biblioteca do RXTX e do MEC1100. Para isso, abra o NetBeans e vá em Arquivo / Novo Projeto e
escolha Aplicativo Java e clique em Próximo.
Figura 18: Escolhendo o tipo de projeto.
Escolha um nome para o projeto, o local do projeto e o diretório do projeto e clique em
Finalizar para criar o projeto.
Figura 19: Configurando nome e local do projeto.
10
Com o projeto aberto, dê um clique com o botão direito sobre o nome do projeto no painel
“Projetos” e vá em Propriedades, no menu “Categorias”clique em Bibliotecas.
Figura 20: Configurando biblioteca usadas no projeto.
Clique em adicionar jar/pasta e localize o arquivo RXTXcomm.jar e dê OK. Geralmente
este tipo de arquivo se encontra na pasta %JAVA_HOME%\jre\lib\ext, onde %JAVA_HOME% é a
pasta onde o jre está instalado.
Figura 21: Inserindo a biblioteca RXTXcomm no projeto
Dê OK novamente. Agora, adicionaremos a biblioteca do MEC1100 e a biblioteca de
exceções dela. Para isto, copie os arquivos MEC1100.java e EMEC1100Error.java, que se
encontram na pasta /biblioteca_de_controle/java/br/maxwellbohr/mec1100 do cd do mec1100, para
a pasta do projeto como na figura abaixo:
11
Figura 22: Pasta do projeto com a biblioteca MEC1100.java, EMEC1100Error.java
já copiada.
Voltando ao NetBeans, verifique se o pacote dos arquivos copiados estão corretos. Para isso,
abra eles e veja se a declaração do “package” está se referindo ao pacote em que o arquivo se
encontra. Caso sejam diferentes mude o pacote clicando em cima da sinalização do erro e em cima
de Alterar declaração de pacote.
Abaixo veremos uma figura com a declaração do pacote correto e uma figura com a
declaração do pacote incorreto:
Figura 23: Package incorreto.
Figura 24: Package correto.
Com essas etapas concluídas podemos começar a programar.
12
4.1 Rotinas de Suporte
4.1.1 OpenComunication
O método para abrir a comunicação é o OpenCommunication, que recebe uma String como
parâmetro com a porta que será utilizada. A seguir, veremos como utilizar este método.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
//Inicia comunicação com o MEC1100
mec.OpenCommunication("/dev/ttyUSB0");
System.out.println("MEC1100 Conectado a porta/dev/ttyUSB0");
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.1.2 CloseComunication
Para fechar a comunicação com um MEC1100, utilizamos o método CloseCommunication,
como podemos ver a seguir :
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
//Inicia comunicação com o MEC1100
mec.OpenCommunication("/dev/ttyUSB0");
System.out.println("MEC1100 Conectado a porta/dev/ttyUSB0");
//Fecha comunicação com o MEC1100
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.1.3 GetInstalledSerialPorts
Para listar as portas seriais/USB disponíveis, executamos o método GetInstalledSerialPorts,
que irá retornar uma lista com as portas seriais e USB do computador.
package tutorialjava;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
//Recebe as portas disponíveis e imprime
13
Vector<String> portas = mec.GetInstalledSerialPorts();
for (String x : portas) {
System.out.println(x);
}
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.1.4 IsConnected/NOP
Para verificar se existe algum MEC1100 conectado, usamos o comando IsConnected que
retorna “true”, se existir um MEC1100 conectado, ou “false” caso contrário. Podemos testar esse
método usando o seguinte código:
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
//Abre comunicação com o MEC1100
mec.OpenCommunication("/dev/ttyUSB0");
//Verifica se o MEC110 está conectado
if(mec.IsConnected())
System.out.println("O MEC110 está conectado.");
else
System.out.println("O MEC1100 Não está conectado.");
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.1.5 Device Status
Para verificar qual o status interno do MEC1100 usamos o método DeviceStatus, que retorna
um Array de byte com as informações do estado das saídas digitais, dos PWMs e da execução de
programa do modo autônomo. A seguir, mostraremos um código exemplo. Para entender o que cada
byte representa pode ser usado o documento “Manual de Referências Métodos da Biblioteca de
Controle do MEC1100”.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
14
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Recebe o array de byte e armazena no Status[]
byte Status[] = mec.DeviceStatus();
for(int i = 0 ; i < 44 ; i++)
System.out.println(Status[i]);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
}
}
}
4.1.6 Device Info
O método DeviceInfo retorna informações sobre o dispositivo conectado, como o nome,
versão do hardware e do firmware. Vejamos abaixo como ele pode ser utilizado:
package tutorialjava;
public class Main {
public static void main(String[] args) {
//Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Imprime as informações do MEC1100
System.out.println("Conectado a um "+mec.DeviceInfo());
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.2 Entradas Analógicas
4.2.1 SensorRead
Lê um canal analógico. Existem 8 entradas analógicas no MEC1100 que podem ser lidas
com esse método. Esse parâmetro pode ter um valor de 1 a 8. No o código a seguir, estamos lendo o
primeiro sensor do MEC1100.
package tutorialjava;
public class Main {
15
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Variável para armazenar a leitura do sensor 1
int Sensor1 = mec.SensorRead(1);
//Mostra o valor ad leitura
System.out.println("Leitura do Sensor 1 :" + Sensor1);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.2.2 SensorReadAll
Este método lê as 8 entradas analógicas em uma única operação. No exemplo, usaremos o
SensorReadAll e mostraremos o valor da leitura de cada sensor.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Lê todos as entradas analógicas e armazena na Variável
int Sensores[] = mec.SensorReadAll();
//Imprime o valor de cada leitura
for(int i = 0 ; i < 8 ; i++)
System.out.println("Sensor "+(i+1)+" :" + Sensores[i]);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.3 Entradas e Saídas Digitais
4.3.1 DigitalPinRead
Para ler uma entrada digital podemos usar o DigitalPinRead, onde passamos o valor da
entrada que pode assumir valores de 1 até 16. O código abaixo exemplifica esse método. Nele
lemos o valor da entrada digital 3.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
16
mec.OpenCommunication("/dev/ttyUSB0");
//Lê a entrada digital 3 e armazena na Variável
byte Leitura = mec.DigitalPinRead(3);
//Imprime o valor da leitura
System.out.println("Leitura da entrada 3: "+ Leitura);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.3.2 DigitalPinWrite
Para alterar uma saída digital podemos usar o método DigitalPinWrite, onde passamos o
valor da saída desejada. Esse pode assumir valores de 1 a 8 utilizando a porta digital e de 9 a 16
utilizando a porta de Servomotores/PWM. O estado de cada saída pode assumir 0 ou 1. O código
abaixo exemplifica esse comando. Nele alteramos a segunda saída digital para 1.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Altera o estado da saída digital 2 para “1”
mec.DigitalPinWrite(2, 1);
mec.CloseCommunication();
}catch(Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.3.3 DigitalPortRead
Para ler todas as entradas digitais em uma única operação, utilizamos o método
DigitalPortRead. Esse método contém um parâmetro que pode ser “1” correspondendo a porta de
entradas digitais, ou o “2” que corresponde a porta de Servomotores/PWM. No exemplo vamos ler
a porta digital 1 e mostrar o valor dela. No tutorial de saídas digitais falaremos um pouco mais
sobre esse método e seu retorno.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
17
mec.OpenCommunication("/dev/ttyUSB0");
//imprime o valor da porta digital 1
System.out.println("Valor :"+mec.DigitalPortRead(1));
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.3.4 DigitalPortWrite
Para ligar uma entrada da saída digital, utilizamos o método DigitalPortWrite, que recebe 2
parâmetros: a porta na qual deseja-se gravar o valor que no MEC1100 (pode receber o valor 1 ou 2)
e o valor a ser gravado na porta (que pode assumir valores de 0 até 255). No exemplo a seguir ,
enviamos o valor 3, que ativa as duas primeiras saídas digitais.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Grava os dados na porta digital 1
mec.DigitalPortWrite(1,3);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.4 Servomotores
4.4.1 ServomotorOn
Para ligar um servomotor, utilizamos o método ServoMotorOn. Este método recebe 2
parâmetros: o primeiro indica qual dos oito servomotores deve ser utilizado, e o segundo parâmetro
indica qual posição que o servomotor deve ficar. Essa posição varia entre o valor 0 e 255. No
exemplo, estamos alterando o primeiro servomotor para a posição 0.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Mudando a posição do servomotor
mec.ServoMotorOn(1,0);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.4.2 ServomotorOff
Para desligar um servomotor, utilizamos o método ServoMotorOff, passando como
18
parâmetro o número do motor que desejamos desligar. No exemplo abaixo iremos desligar o
servomotor 1:
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Desliga o servomotor 1
mec.ServoMotorOff(1);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.5 PWMs
4.5.1 PwmOn
Para ligar o PWM, utilizamos o método PwmOn. Este método recebe 5 parâmetros: o
primeiro indica qual PWM deve ser utilizado (pode assumir valores de 1 até 8), o segundo indica o
valor para o período (pode variar de 0 até 65535), o terceiro indica o ciclo ativo (pode assumir
valores de 0 até 65535), o quarto parâmetro indica o divisor de clock (pode variar de 0 até 7) e o
último indica a polaridade do sinal (0 para negativo e 1 para positivo). No exemplo, estamos
definindo os parâmetros para que um servomotor, que é um tipo de equipamento acionado por
PWM, ligado no pino 1 posicione seu eixo em -90 graus.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
mec.PwmOn(1, 55300, 2765, (byte)2,(byte) 1);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.5.2 PwmOff
Para desligar um PWM, podemos utilizar o método PwmOff, passando como parâmetro o
número do PWM que estamos desligando.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
19
//Desliga Pwm 1
mec.PwmOff(1);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
} } }
4.5.3 PwmOnTime
Este método aciona um PWM utilizando parâmetros em unidades de tempo para determinar
o período e o ciclo ativo. No exemplo abaixo ligaremos o PWM 1 com período de 22500, ciclo
ativo de 12500 e polaridade 0.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Liga PWM
mec.PwmOnTime(1, 22500, 12250,(byte) 0);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
}
}
}
4.5.4 PwmOnFreq
Este método aciona um PWM, utilizando parâmetros de frequência e percentual do tempo
que o ciclo ativo deve ocupar no período. No exemplo iremos acionar o PWM 1 em uma frequência
de 1200 com 50% do tempo ativo e polaridade igual a 1.
package tutorialjava;
public class Main {
public static void main(String[] args) {
// Criação dos objetos que serão manipulados pelo código
MEC1100 mec = new MEC1100();
try {
mec.OpenCommunication("/dev/ttyUSB0");
//Liga o PWM
20
mec.PwmOnTime(1, 1200, 50,(byte) 0);
mec.CloseCommunication();
}catch (Exception err) {
System.out.println("Erro:" + err.getMessage());
}
}
}
5 Conclusão
Neste tutorial, aprendemos como instalar as ferramentas para desenvolvimento de programas
em java, e como usar os métodos disponíveis na biblioteca do MEC1100. Com os conhecimentos
adquiridos aqui podemos facilmente criar novos programas.
21
Documents pareils
Trait d`union 2008 - Femmes Internationales Murs Brisés
un vent de courage, pour passer à l'action sous le signe de la charte « Visa Pink » qui propose
un ralliement massif de toutes les femmes et de toutes les jeunes filles pour la cause de tous
les en...
Mise en page 1 - Femmes Internationales Murs Brisés
deux parrains igor et grichka Bogdanoff et d’échanger avec eux. Signalons la parution
en octobre de leur dernier livre Le code secret de l’univers (éd. Albin Michel).
- Une superbe soirée le 9 octob...