Manual robotec
Upcoming SlideShare
Loading in...5
×
 

Manual robotec

on

  • 322 views

 

Statistics

Views

Total Views
322
Views on SlideShare
322
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Manual robotec Manual robotec Document Transcript

    • 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.