Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Tcc ritzmann,m.r. robotec
1. ROBOTEC
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
CENTRO DE EDUCAÇÃO DO PLANALTO NORTE - CEPLAN
DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO – DSI
Magno Ronan Ritzmann
ORIENTADOR: DR. ANTÔNIO CARLOS TAMANINI DA SILVA
PROFESSOR: DR. NILSON RIBEIRO MODRO
2. PROBLEMA
o Como criar uma ferramenta computacional capaz de mover um braço
robótico através de algoritmos baseados em pseudocódigo Portugol de
forma que auxilie no ensino da lógica de programação, álgebra vetorial
e cinemática básica?
3. OBJETIVO GERAL
• Criar uma ferramenta computacional capaz de mover
um braço robótico e que possibilite o ensino da lógica
de programação, álgebra vetorial e cinemática
básica através de algoritmos baseados em
pseudocódigo Portugol.
4. OBJETIVOS ESPECÍFICOS
• Realizar a análise de requisitos do sistema proposto;
• Realizar a modelagem do sistema através da UML;
• Construir o controlador do braço robótico;
• Construir o interpretador de comandos;
5. OBJETIVOS ESPECÍFICOS
• Construir a interface do sistema;
• Programar o sistema proposto;
• Validar o sistema através de testes com os usuários.
• Construir o módulo de cinemática direta e inversa;
6. JUSTIFICATIVA
o A ferramenta desenvolvida permite:
• Ensino de algoritmos;
• Ensino de cinemática básica e
• Ensino de álgebra vetorial.
7. JUSTIFICATIVA
o Propicia:
• O desenvolvimento do espírito de liderança;
• Integração;
• Persistência;
• Utilização de metodologias de ensino baseados
em problemas (PBL);
• Utilização métodos lúdicos de aprendizagem.
8. INTRODUÇÃO
• Aprendizagem baseada em repetição;
• Linguagens simples porém, sem motivação aos alunos;
• Métodos através da robótica educacional podem acabar sendo
pouco aproveitados na área da programação;
• Custo elevado e ferramentas limitadas.
10. ROBÓTICA
• “Máquina formada por um mecanismo, incluindo
diversos graus de liberdade, na maioria das vezes tendo
a aparência de um ou diversos braços terminando num
pulso capaz de segurar ferramentas, peças ou
dispositivos.” (ISO 9283(1998)
11. ROBÔS - CLASSIFICAÇÃO
• CARACTERÍSTICAS FÍSICAS:
• Robôs Manipuladores;
• Robôs Móveis (com ou sem
rodas);
• Bípedes;
• Quadrúpedes;
• Hexápodes;
• Humanoides;
• Bípedes com cabeça, tronco
e membros.
• APLICAÇÃO:
• Industrial
• Pesquisa
• Militar
• Segurança
• Hobby ou Entretenimento
• Doméstico e pessoal.
13. ROBOTEC
• É uma ferramenta computacional projetada para
interpretar comandos e controlar um braço robótico.
Pode ser utilizado em disciplinas como:
• Introdução à Ciência da computação;
• Lógica de Programação;
• Processamento de Dados.
14. ROBOTEC
• Utiliza uma extensão da linguagem G-Portugol;
• A abordagem sugerida a ser adotada para simplificar
o aprendizado em sua utilização é a PBL (Problem
Based Learning).
15. CLASSIFICAÇÃO DOS
REQUISITOS
Tipo Requisito
Requisito funcional O sistema deve possibilitar a criação, edição, exclusão,
salvamento e execução de algoritmos escritos na forma
suportada pelo sistema.
Requisito funcional O sistema deve mover o braço robótico AL5D fabricado pela
Lynxmotion.
Requisito não-funcional O Sistema deve possuir uma interface intuitiva que facilite sua
operação.
Requisito não-funcional O Software deve ser operacionalizado no sistema operacional
Windows.
Requisito não-funcional O computador utilizado deve possuir no mínimo 512 MB de
memória RAM.
Requisito não-funcional O tempo de resposta do sistema não deve ultrapassar 10
segundos;
16. ROBOTEC
Seu funcionamento consiste em:
• Obter instruções de movimentação através de um
algoritmo escrito por um usuário, ou por uma das
interfaces gráficas presentes no software;
• Interpretar o algoritmo;
• Mover o braço robótico.
18. MÓDULO
INTERPRETADOR
Interpretador X Compilador
• Compilador: É um conversor capaz de traduzir um
código fonte em um código binário reconhecido pelos
computadores. (DAVID, MARCIO F. (2007);
• Interpretador: É um tradutor que percorre o código fonte
procurando por eventuais erros, e ao mesmo tempo, já o
executa e mostra o resultado ao usuário
19. ANÁLISE LÉXICA
• Análise léxica é o processo de analisar a entrada de
linhas de caracteres e produzir uma sequência de
símbolos chamado "símbolos léxicos“.
20. TABELA DE LEXEMAS DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
Lexemas Classificação
programa, movimentos, inicio, fim,
inicio_var, fim_var,
string, real, inteiro,
se, entao, senao, fim_se
para, fim_para, faca,
enquanto, fim_enquanto,
adicionar_movimento,
abre_garra,fecha_garra,
gira_base,move_ombro,
move_cotovelo,move_pulso,
gira_pulso, imprima;
Palavras Reservadas
21. TABELA DE LEXEMAS DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
+, -, *, / Operadores aritméticos
||, && Operadores lógicos
= Operador de atribuição
>, <, >=,<=, ==, != Operadores relacionais
//(comentários) Comentários
22. ANÁLISE SINTÁTICA
• A análise sintática é uma técnica empregada no estudo
da estrutura de uma língua.
• Objetiva verificar se os lexemas identificados no código
formam um programa estruturado de acordo com a
gramática da linguagem.
SINTAXE CORRETA
para(int x=1;x<10;x++)faca
abre_garra(x);
fim_para;
ERRO DE SINTAXE
para(int x=1;x++)faca
abre_garra(x);
fim_para;
23. TABELA SINTÁTICA DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
Comandos Sintaxe
programa programa nome_do_programa;
movimentos, inicio, fim movimentos (espaço) inicio (comandos) fim
inicio_var
string
real
inteiro
fim_var
inicio_var
string:nome_string=”valor”;
inteiro:nome_variavel=valor_inteiro;
real:nome_variavel= valor_real;
fim_var
se, então, senao, fim_se se(condição) entao (comando); senao (comando); fim_se;
para, fim_para, faca, para(variavel=valor; condição);(incrementa ou decrementa
variável))faca (comando); fim_para;
27. O CÓDIGO
• Após passar pelas análises, o
código escrito pelo usuário é
transcrito automaticamente
para a linguagem Java, e
então é executado, movendo
o braço robótico.
30. 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
FUNÇÕES DOS COMPONENTES DA INTERFACE DE CONTROLE
31. FUNÇÕES DOS COMPONENTES DA INTERFACE DE CONTROLE
NOME SERVO-MOTOR FUNÇÃO RESTRIÇÃO
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.
-
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.
-
35. CINEMÁTICA INVERSA (IK)
• Cinemática inversa é o processo de determinação dos
parâmetros de juntas em um objeto flexível, de forma a
alcançar o posicionamento adequado.
36. CONCLUSÃO
• A hipótese geral deste trabalho foi plenamente
comprovada, pois, foi possível criar uma ferramenta
computacional capaz de mover um braço robótico
através de comandos em uma extensão do Portugol e
servir de auxilio no ensino de conceitos de álgebra e
cinemática.
37. CONCLUSÃO
• Pode-se concluir, também, que o trabalho proposto
representa uma contribuição ao curso de Sistemas de
Informação, uma vez que ele auxilia no ensino em
disciplinas do curso.
38. TRABALHOS FUTUROS
• Aumentar o número de comandos reconhecidos pelo
interpretador;
• Construir uma interface de visualização tridimensional do
braço robótico.