Manual robotec
-
Upload
magno-ritzmann -
Category
Documents
-
view
239 -
download
0
Transcript of Manual robotec
Manual de Operação
ROBOTEC
Versão 1.0
Novembro 2012
Manual de operação ROBOTEC
ROBOTEC é um controlador do braço robótico AL5D(Lynxmotion) e editor de
algoritmos em Português. Tem por objetivo auxiliar o aprendizado do aluno iniciante
em programação através da execução e visualização das etapas de um algoritmo. Com
esse interpretador, os alunos poderão implementar seus próprios algoritmos que por sua
vez movimentam um braço robótico, e através dessa animação torna-se fácil
compreender, de forma rápida e dinâmica, como as estruturas por eles desenvolvidas se
comportam.
Com o intuito de difundir este novo sistema para a comunidade acadêmica,
informamos que o interpretador ROBOTEC encontra-se disponibilizado gratuitamente,
levando-se em consideração o leftright, ou seja, o sistema possui código aberto,
permitindo aos interessados o desenvolvimento de novas funcionalidades, desde que
mantida a filosofia inicial do mesmo e mencionadas ás autorias.
Desenvolvido por:
Antônio Carlos Tamanini;
Magno Ronan Ritzmann;
Nilson Ribeiro Modro.
Versão 1.0
Novembro 2012
Sumário 1. INTRODUÇÃO ............................................................................................. 3
2. ESTRUTURA DO PROGRAMA .................................................................... 4
3. PALAVRAS RESERVADAS ......................................................................... 5
4. PONTUAÇÃO ............................................................................................... 6
5. MAIÚSCULAS E MINÚSCULAS .................................................................. 7
6. TIPOS DE DADOS ........................................................................................ 8
7. DECLARAÇÃO E INICIALIZAÇÃO DE VARIÁVEIS .................................... 9
8. FLUXO DE SAÍDA ..................................................................................... 10
9. OPERADORES ........................................................................................... 12
10. COMANDO SE ........................................................................................ 13
11. COMANDOS DE REPETIÇÃO ................................................................. 14
12. FUNCIONALIDADES DAS ABAS ........................................................... 16
13. PRIMEIROS PASSOS .............................................................................. 22
3
1. INTRODUÇÃO
A grande dificuldade na concepção e no entendimento de algoritmos esta em
como entender as estruturas dinâmicas das possíveis execuções do algoritmo a partir de
sua estrutura estática. A linguagem definida no ROBOTEC visa auxiliar o processo de
aprendizagem do aluno iniciante em programação, integrando os aspectos dinâmicos e
estáticos em uma só ferramenta, permitindo ao aluno escrever seus programas em uma
derivação do “Portugol” - pseudo-linguagem de programação, executando e
visualizando, através da movimentação do braço robótico AL5D da Lynxmotion, o
comportamento ativo do seu algoritmo. O ROBOTEC aborda o mínimo de blocos
básicos (de dados e controle) necessários para o aprendizado de algoritmos, os quais se
encontram descritos nos demais itens deste Help.
4
2. ESTRUTURA DO PROGRAMA
Todo programa ROBOTEC inicia-se com a palavra reservada programa seguida do
nome do programa, que obedece as normas de nomenclatura de identificadores. A
seguir, são feitas as declarações de variáveis, caso existam, conforme o capítulo 7 deste
manual e, posteriormente, é iniciado o bloco de comandos com a palavra reservada
movimentos e inicio, encerrando-se o programa com a palavra-chave fim.
programa <nome do programa>;
inicio_var
<declaração de variáveis> <opcional>;
fim_var
movimentos
inicio
<sequência de comandos>
fim
Um exemplo de programa é:
programa exemplo_01;
inicio_var
inteiro:cont1=100;
inteiro:cont2=150;
string:str="valor da minha str";
fim_var
movimentos
inicio
para(cont1=100;cont1<150;cont1++) faca//comentario1
adicionar_movimento(2,cont1,75);
fim_para
fim
5
3. PALAVRAS RESERVADAS
Palavras reservadas são palavras-chave da linguagem, não podendo as mesmas
serem atribuídas a nenhum identificador (nome do programa e das variáveis definidos
pelo usuário) pertencente ao programa. Por exemplo, não podemos ter uma variável
chamada para.
As palavras-chave no ROBOTEC são:
programa, movimentos, inicio_var, fim_var, string, real, inteiro, se, entao, senao, fim_se para,
fim_para, faca, enquanto, fim_enquanto, inicio, fim, adicionar_movimento, abre_garra,
fecha_garra, gira_base, move_ombro, move_cotovelo, move_pulso, gira_pulso, imprima.
As regras para nomenclatura dos identificadores encontram-se no capitulo 7.
6
4. PONTUAÇÃO
Um sinal de pontuação é um tipo de palavra-chave abreviada. É um símbolo
composto por um ou dois caracteres, que tem um significado especial para o
interpretador. O conjunto completo de sinais da linguagem inclui os seguintes símbolos:
// ; , ( )
O sinal “;” encerra uma instrução, exceto nos casos em que a mesma possua
delimitadores, como no comando para. Esse sinal informa ao interpretador que ocorreu
o fim de uma instrução. Desse modo, podemos ter mais de uma instrução na mesma
linha ou ter uma única instrução em mais de uma linha. O símbolo // deve ser inserido
para especificar um comentário. Comentários em programas são mensagens que só
serão vistas pelo programador, sendo completamente ignoradas pelo interpretador. São
utilizados visando dar maior compreensão ao algoritmo. O símbolo // permite que
apenas uma linha seja comentada por vez, como segue o exemplo:
// Isto é um comentário
// Autor < seu nome>
programa meuPrimeiroPrograma;
inicio_var
string:helloworld="hello world"; //Declarando e inicializando a variável helloworld
fim_var
movimentos
inicio
imprima (helloworld);
fim
Os comentários podem ser inseridos em qualquer posição dentro do programa.
7
5. MAIÚSCULAS E MINÚSCULAS
A linguagem definida no ROBOTEC não é sensível a caracteres maiúsculos e
minúsculos em nenhuma parte do código. Exemplo:
Robotec, robotec, ROBOTEC, RoBoTeC.
São variáveis iguais.
String - é uma palavra reservada como string.
Devido a isto, é recomendável utilizar um padrão para a nomenclatura dos
identificadores.
8
6. TIPOS DE DADOS
O ROBOTEC fornece um conjunto de tipos de dados básico, onde cada um
deles serve a um propósito específico, definindo desse modo, o escopo dos valores que
as variáveis podem assumir no programa. Os tipos básicos implementados são:
inteiro - representando o conjunto dos números inteiros;
real - representando os pontos flutuantes;
string - representando um conjunto de um ou mais caracteres.
9
7. DECLARAÇÃO E INICIALIZAÇÃO DE VARIÁVEIS
Todas as variáveis devem ser declaradas e iniciadas antes de serem usadas. Esta
declaração deve ser feita no início do programa. As variáveis possuem uma
característica em comum que é o tipo de dado associado. Isso é, além de escolhermos
um nome apropriado para uma variável, devemos também dizer que tipo de informação
deve ser armazenada nela. Uma declaração é definida por um tipo, seguido de : e o
nome da variável daquele tipo e então o símbolo = e o valor inicial da variável e para
encerrar o ; , tal como o seguinte exemplo:
inteiro: num2 =2;
string: nome=”seu nome”;
As variáveis podem ser distribuídas entre declarações livremente. O exemplo
acima poderia ser igualmente escrito como:
Inteiro: num2=2; string: nome=”seu nome”;
Os nomes das variáveis podem ser compostos de letras e dígitos, sendo que o
primeiro caractere deve ser, obrigatoriamente, uma letra. Identificadores válidos: count,
A1,a2. Identificadores inválidos: 1A, 21 etc.
Para inicializar uma variável, ou atribuir um valor a ela, deve-se usar o símbolo
= como exemplo de atribuição num2=12; onde num2 é o nome da variável declarada e
já iniciada, = é o símbolo de atribuição e 12 é o valor a ela atribuído.
Quando interpretamos as instruções acima, os nomes das variáveis são
substituídos pelos valores associados na memória. É importante observar que o
resultado da expressão do lado direito de um comando de atribuição deve ser coerente
com o tipo declarado para a variável do lado esquerdo. Ao longo do programa é
possível, através de atribuições, alterar os valores dessas variáveis na memória.
10
8. FLUXO DE SAÍDA
O ROBOTEC permite que um programa envie dados para o ambiente externo.
Isto pode ocorrer com o uso dos comandos imprima, adicionar_movimento, abre_garra,
fecha_garra, gira_base, move_ombro, move_cotovelo, move_pulso e gira_pulso. Não é
possível entrar com valores para o programa no momento de sua execução.
O comando imprima permite que sejam apresentados na saída padrão,
normalmente o monitor, mensagens e valores obtidos através da execução do programa,
como mostra o exemplo abaixo:
programa meuPrimeiroPrograma;
inicio_var
string:helloworld="olá Mundo...";
fim_var
movimentos
inicio
imprima (helloworld);
fim
a saída no monitor seria:
olá Mundo...
Os demais comandos enviam para a interface serial conectada ao braço robótico os
valores para que ocorra a movimentação do mesmo, abaixo seguem exemplos de
aplicação destes comandos:
adicionar_movimento(1,50,75); //Este comando envia para o braço robótico a informação de
que o servo-motor numero 1 deve se mover para a posição 50 com uma velocidade de 75 passos
por minuto.
abre_garra(50); //Este comando efetua a abertura da garra do robô em 50%, esta porcentagem
pode ser modificada a critério do usuário.
fecha_garra(); //Este comando fecha a garra do robô, não há valores para este comando.
11
gira_base(128); // este comando efetua a movimentação do servo-motor conectado a base do
robô para a posição 128;
move_ombro(135); // este comando efetua a movimentação do servo-motor conectado ao ombro
do robô para a posição 135;
move_cotovelo(120); // este comando efetua a movimentação do servo-motor conectado ao
cotovelo do robô para a posição 120;
move_pulso(140); // este comando efetua a movimentação do servo-motor conectado ao braço
do robô para a posição 140;
gira_pulso(90); // este comando efetua a movimentação do servo-motor conectado ao pulso do
robô para a posição 90;
12
9. OPERADORES
O ROBOTEC utiliza também operadores que, são símbolos que executam várias
operações sobre os seus argumentos. O sinal de mais (+) é um operador. Em uma
expressão, ele soma dois valores:
a = b + c;
As variáveis a, b, c poderiam ser de quaisquer tipos numéricos de dados. Nesta
operação, b é acrescentado a c, sendo o resultado atribuído à variável a. O sinal de
atribuição = nessa expressão é também um operador, com a capacidade única de copiar
um valor a sua direita para a variável a sua esquerda. No ROBOTEC, existem
operadores aritméticos, relacionais e de atribuição, que estão demonstrados abaixo.
Operações aritméticas:
adição (+)
subtração (-)
multiplicação (*)
divisão (/)
Essas operações devem ser efetuadas apenas com os operandos de um mesmo tipo.
Operadores relacionais:
maior (>); maior ou igual (>=); menor (<); menor ou igual (<=); igual (==);
diferente (!=)
Operadores de atribuição:
atribuição (=)
incremento (++)
decremento (--)
Os operadores de incremento e decremento são similares à atribuição, realizando
operações de adição e subtração, respectivamente. Dessa forma, uma variável é
incrementada ou decrementada em uma unidade. Portanto, essa variável deve ser do tipo
inteiro. Em uma atribuição, não podem ser usados operadores de incremento e
decremento. Exemplos:
x = a; // x recebe o valor de a.
x--; // x é decrementado em 1.
x = x-1; // operação idêntica a anterior.
x++; // x é incrementado em 1.
x = x++ ou x = x--; // operações não suportadas.
13
10. COMANDO SE
O comando utilizado para tomada de decisões no ROBOTEC é o se, que é
acompanhado, opcionalmente, pelo senao. Sua sintaxe é bastante simples, necessitando
acrescentar uma expressão que retorne um tipo lógico após a palavra se, a palavra
reservada entao e uma lista de comandos e terminar com a palavra reservada fim_se,
caso o senao seja utilizado, também haverá uma lista de comandos e o fim_se passa a
ficar após os comandos do senao. Por exemplo, para exibir o valor de uma variável “x”
apenas se este valor for maior do que 5, pode-se utilizar a seguinte instrução:
se (x > 5)entao
imprima(x);
senao
imprima (“x é menor q 5!”);
fim_se;
Os parênteses, as palavras então e fim_se, são obrigatórios.
14
11. COMANDOS DE REPETIÇÃO
Na linguagem do ROBOTEC, podemos utilizar os comandos enquanto e para,
para aplicar instruções repetidamente. O comando enquanto tem sintaxe semelhante a
do comando se, bastando inserir alterar a palavra reservada após o fecha parênteses do
comando para faca e adicionar uma expressão que retorne um tipo lógico entre as
palavras reservadas enquanto e fim_enquanto e uma lista de comandos entre estas
palavras, como mostra o exemplo:
i = 0;
enquanto( i < 10)faca
abre_garra(i);
i++;
fim_enquanto;
Nesse comando, a expressão relacional é avaliada antes da execução da
instrução ou bloco de comandos, ou seja, caso essa expressão seja falsa no início da
execução do loop, os comandos não serão executados.
O comando para tem a seguinte sintaxe, após a palavra reservada para são
adicionados a seguinte estrutura de verificação: abre parênteses <variável=valor> ;
<variável + condição>; <variável + incremento ou decremento> e fecha parênteses após
o fecha parênteses é adicionada a palavra faca e após esta palavra os comandos a serem
executados seguidos de ; e terminando o bloco com fim_para, abaixo segue um
exemplo do comando para:
para (i=0; i < 10; i++)faca
abre_garra(i);
fim_para
Dentro dos parênteses, após a palavra-chave para, há três argumentos que
controlam a ação do loop. No primeiro argumento, há uma instrução que é executada
uma única vez antes do início do loop, atribuindo um valor a uma variável. A
inicialização e a atribuição de valor que compõem o primeiro e o terceiro argumento do
comando para, respectivamente, fazem referência a uma mesma variável. O segundo
15
argumento é uma expressão relacional que a instrução para testa no princípio do loop. O
último argumento é executado ao final do loop, após a execução da instrução ou bloco
de comandos, que devem estar entre as palavras faca e fim_para.
16
12. FUNCIONALIDADES DAS ABAS
O Robotec possui quatro abas e três menus, as abas suportam diferentes tipos de
controle do braço robótico exceto a aba Serial que define e conecta o braço robótico ao
software através de uma porta “COM” selecionada pelo usuário.
Figura 1 - Interface principal, aba Serial (menu Arquivos)
Fonte: O Autor
A figura 1 exibe a interface principal, aba Serial, que possui os campos Porta
com e Bauds e os botões Conectar, Desconectar e Limpar.
As funções para cada um dos campos e botões estão descritos na tabela 1.
Tabela 1 - Funções dos campos da aba Serial
Campo/ Botão Função
Porta com Definir a porta para conexão do braço robótico.
Bauds Definir a taxa de transmissão da porta selecionada.
Conectar Aplicar as configurações e estabelecer a conexão.
Desconectar Desconectar o braço robótico do software.
Limpar Limpar o histórico das conexões.
Fonte: O autor
17
O menu arquivo presente na interface principal é responsável por carregar,
excluir, criar e salvar um algoritmo na aba Programa, e encerrar o software.
Figura 2 - Interface principal, aba Serial (menu Edit)
Fonte: O Autor
O menu Edit, ilustrado na figura 2 é responsável por copiar apagar ou procurar
uma frase ou letra no algoritmo digitado na aba Programa.
Para utilizar as funções de copiar ou apagar basta selecionar o texto que se
deseja apagar ou copiar e clicar no menu Edit e na função desejada.
18
Figura 3 - Interface principal, aba Serial (menu Help)
Fonte: O Autor
O menu Help presente na interface principal é responsável por exibir os créditos
de desenvolvimento do software e o sub-menu ajuda exibe este manual.
Figura 4 - Interface principal aba Controle
Fonte: O Autor
19
A aba ilustrada na figura 4 possui controles quem movem individualmente os
servo-motores, e possui também o botão “Reiniciar” que é responsável pelo
posicionamento inicial do braço robótico para que os movimentos possam ser
executados de forma correta.
A descrição da relação entre as barras de rolagens e a movimentação do braço
robótico esta presente na tabela 2.
Tabela 2 - Relação de movimentação entre a barra de rolagem e o braço robótico
NOME SERVO-
MOTOR
FUNÇÃO RESTRIÇÃO
Motor 1 0 Responsável por enviar os bits referentes a
movimentação da base do braço robótico para
a porta serial, esta relacionada ao giro do
braço por completo.
0° a 180°
Motor 2 1 Responsável por enviar os bits referentes a
movimentação do ombro(Shoulder) do braço
robótico para a porta serial, atua de forma
vertical.
0° a 180°
Motor 3 2 Responsável por enviar os bits referentes a
movimentação do cotovelo(Elbow) do braço
robótico para a porta serial, atua de forma
vertical.
30° a 100°
Motor 4 3 Responsável por enviar os bits referentes a
movimentação do pulso(Wrist) do braço
robótico para a porta serial, atua de forma
vertical.
0° a 180°
Motor 5 4 Responsável por enviar os bits referentes ao
giro do pulso do braço robótico para a porta
serial, está relacionado ao giro do pulso.
0° a 180°
Motor 6 5 Responsável por enviar os bits referentes a
movimentação da garra(Grip) do braço
robótico para a porta serial, está relacionado
ao movimento de abrir e fechar a garra do
efetuador.
0° a 180°
Motor 7 - Disponível para futuras modificações no braço
robótico.
-
Motor 8 - Disponível para futuras modificações no braço
robótico.
-
20
Velocidade - Define o intervalo de envio entre os bits de
saída do software.
-
Reiniciar 0,1,2,3,4,5 Envia para todos os servos-motores, os dados
para sua posição inicial.
-
Fonte: O autor
Figura 5 – Interface principal aba Álgebra
Fonte: O Autor
A Figura 5 ilustra a janela principal do Sistema e a aba “Álgebra”, esta aba tem a
finalidade de mover o braço robótico para coordenadas específicas além de, em
conjunto com a cinemática inversa implantada no sistema, mover o braço em retas,
diagonais e círculos, através dos botões “Mover” presentes nesta aba.
21
Figura 6 - Interface principal aba Programa
Fonte: O Autor
A Figura 6 ilustra a janela principal do Sistema e a aba “Programa”, esta aba tem como
objetivo propiciar que um algoritmo seja criado, editado e apagado, possui o botão
“Verificar”, que efetua a análise sintática e semântica do código digitado e libera para
clique o botão “Rodar”, que executa o algoritmo, movendo o braço robótico em
conformidade com os comandos descritos no algoritmo.
22
13. PRIMEIROS PASSOS
Para executar seu primeiro algoritmo, ou mover o braço robótico através do
software pelas abas de controle ou álgebra, deve-se posicionar manualmente antes de
ligar o braço robótico de forma que todos os servo-motores fiquem na metade de sua
movimentação total, como ilustrado na figura 7.
Figura 7 - Posição Inicial do braço robótico
Fonte: O autor
Após isto se pode ligar o braço robótico e iniciar o ROBOTEC, e na aba Serial
seleciona-se a porta de comunicação na qual o braço esta conectado e então o botão
conectar é pressionado. A partir deste ponto pode-se ser usada qualquer uma das abas:
Controle, Álgebra ou Programa.
Sugere-se que ao efetuar a conexão do software com o braço robótico o botão
reiniciar presente na aba controle seja pressionado, evitando dessa forma problemas na
movimentação.
IMPORTANTE: Devido à ausência de sensores os motores não possuem proteção e
desta forma podem ser danificados no caso de excesso de peso ou força contraria, evite
que o braço robótico colida com a mesa ou objetos, se isto ocorrer desligue-o
imediatamente.