A BANDEJA PORTA-OBJECTOS



Documentos relacionados
O BRAÇO DIREITO DO ROBOT

A PLACA DO COMANDO À DISTÂNCIA

CAPA PARA OS CABOS DA CABEÇA

insfcanceof new public switch transient while byte continue extends for int null

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

A TAMPA DO COMANDO À DISTÂNCIA

Implementando uma Classe e Criando Objetos a partir dela

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Computação II Orientação a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Exercícios de Revisão Java Básico

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Orientação a Objetos e a Linguagem Java

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Visual TIC - 3PA. Lista de Exercícios 02

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Manual de Montagem REVISÃO

INTRODUÇÃO À LINGUAGEM C++

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

BC0505 Processamento da Informação

Programação Concorrente em java - Exercícios Práticos Abril 2004

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

2 Orientação a objetos na prática

Algoritmos e Programação II. Sobrecarga

Desenvolvimento OO com Java Orientação a objetos básica

Programação por Objectos. Java

Análise e Projeto Orientados por Objetos

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

Universidade da Beira Interior. Sistemas Distribuídos

Prototype, um Design Patterns de Criação

Escalas. Antes de representar objetos, modelos, peças, A U L A. Nossa aula. O que é escala

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

9 Comandos condicionais

Java. Marcio de Carvalho Victorino

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

THREADS EM JAVA. George Gomes Cabral

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Estrutura Condicional em Java

COMO PROGRAMAR SEU TIME

Programação: Estruturas de seleção

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

LINGUAGEM C. Estrutura básica de um programa

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

NEX-3/NEX-5/NEX-5C A-DRG (1) 2010 Sony Corporation

COMPROVAR O FUNCIONAMENTO DOS MOTORES

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Professor Ventura Ensina Tecnologia

Professor: Douglas Sousa Cursos de Computação

Beats Pill. Conheça a Beats Pill

1 o º ciclo. Índice TUTORIAL

Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV

TÉCNICAS DE PROGRAMAÇÃO

Manual Técnico e Certificado de Garantia

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

(Aula 15) Threads e Threads em Java

Vamos ver duas telas: Mesa e Itens de uma Mesa, como exemplo.

Estruturas de repetição (Ciclos)

Java Threads. Introdução

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

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

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Sistemas de Apoio à Decisão

Engenharia Informática Engenharia Electrotécnica e Computadores Programação Orientada por Objectos Projecto PlayCards

Conectar diferentes pesquisas na internet por um menu

Cotagem de dimensões básicas

Programação por Objectos. Java

ponto P terá as projecções P 1 e P 2. E o eixo X passa para X. Vamos ver o que acontece no plano do

Estrutura de Dados Básica

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Sistema topograph 98. Tutorial Módulo Fundiário

Estruturas de Dados Aula 15: Árvores 17/05/2011

CURSO DE PROGRAMAÇÃO EM JAVA

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Instalação. Conteúdos da embalagem

INFORMATIVO DE PRODUTO

Escolher um programa de cuidados infantis

Algoritmos e Programação

16/24 Portas Comutador de Ethernet Rápida montável em Computador de Secretária & Prateleira

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

5 Caso de estudo O cartão fidelidade

How To de instalação de chicotes para farol de neblina Vectra C

INSTALAÇÃO UBUNTU NUM INSTANTE

Manual de Utilização do PDV Klavix

1) Entendendo a eletricidade

PROGRAMAÇÃO BÁSICA DE CLP

PC Robots V. 1.4 V.Lobo Escola Naval 2006

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

PROCESSOS. Prof. Maicon A. Sartin

Guia rápido de criação e gestão de um espaço no SAPO Campus

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Introdução a Computação

Conceitos básicos da linguagem C

Transcrição:

A BANDEJA PORTA-OBJECTOS BRAÇOS E MÃO, 4 COMPONENTES A primeira ferramenta da mão do robot é a bandeja porta-objectos, que se pode colocar nas articulações superiores de O SEU ROBOT. Afase actual de montagem chama-se «Braços e mão» porque diz respeito à última parte do robot que falta montar (a dos braços) e aos primeiros instrumentos que se podem acoplar às articulações superiores, através dos contactos correspondentes. Entre estas ferramentas também haverá dispositivos electrónicos e mecânicos, mas começa-se por algo mais simples: a bandeja porta- -objectos. É formada por várias peças, todas 1. 2. 3. 5. 6. 4. VAI PRECISAR 1. Uma chave phillips magnética pequena entregues com este fascículo. Concretamente, entregam-se as duas metades da bandeja propriamente dita (em forma de «U») e as duas partes do contacto, que permitem a ligação aos membros do robot. Completam o conjunto de peças um veio de metal e quatro parafusos de 3x10 mm, que permitem montar tudo. Como é evidente, a bandeja ainda não se pode utilizar porque antes será preciso montar pelo menos um dos membros superiores. 1 1. Primeira metade do contacto 2. Segunda metade do contacto 3. 4 parafusos de 3x10 mm 4. Veio de metal 5. Lado esquerdo da bandeja 6. Lado direito da bandeja A BANDEJA 1Pega-se no lado esquerdo da bandeja e no veio de metal. Insere-se este no correspondente orifício circular do meio da bandeja, como se vê na imagem da direita. 1132

71-passo a passo (1) 6/26/08 3:48 PM Page 1133 A BANDEJA PORTA-OBJECTOS A BANDEJA (CONTINUAÇÃO) A seguir, pega-se nas duas metades do contacto e encaixam-se (esquerda). Como se vê, têm uns pequenos espigões e umas ranhuras para garantir que ficam bem fixadas. 2 Montam-se as duas partes do contacto e depois pressionam-se para se fixarem bem uma à outra (em baixo). 3 Coloca-se o contacto que se acaba de montar no veio de metal. Orienta-se o contacto como se vê na imagem inferior, de maneira a que o extremo em forma de cruz fique virado para a parte exterior da bandeja, que deverá fixar-se à mão de O SEU ROBOT. 4 Agora usa-se o lado direito da bandeja e aproxima-se do lado esquerdo (imagem da direita). Como se vê, as duas metades têm uns orifícios telescópicos e uns suportes circulares que terão que encaixar na composição da bandeja. 5 1133

71-passo a passo (1) 6/26/08 3:48 PM Page 1134 PASSO A PASSO COMPOSIÇÃO DA BANDEJA Coloca-se uma parte da bandeja sobre a outra, de maneira a que os suportes e os orifícios coincidam. Depois pressionam-se com cuidado as duas metades, de maneira a aderirem bem uma à outra. Presta-se especial atenção ao pequeno espigão situado no extremo do lado direito, indicado na imagem da direita. 1 Agora que as duas partes da bandeja estão unidas uma à outra, verifica-se se o contacto pode rodar livremente em torno do eixo de metal (imagem da esquerda). Se isso não acontecer, retira-se o contacto e eliminam-se do orifício circular quaisquer rebarbas de plástico que possam existir. 2 Confirma-se se está tudo no seu lugar (à esquerda). Depois usam-se os quatro parafusos de 3x10 mm entregues com este fascículo e enroscam-se nos orifícios correspondentes do lado esquerdo da bandeja (imagem da direita). 3 Uma vez enroscados os parafusos a bandeja está acabada (à direita). Guarda-se até que possa ser utilizada, o que acontecerá quando pelo menos um dos membros estiver acabado. 4 1134

O SEU ROBOT, C-LIKE E JAVA O terceiro CD-ROM da colecção inclui o suporte para C-like e para Java. Já se pode programar O SEU ROBOT a nível avançado. Graças ao terceiro CD-ROM agora estão disponíveis todos os níveis de programação para o robot. Com efeito, depois da entrega dos programas de controlo e do Visual C-like Editor, estão reunidas as condições para criar programas directamente em linguagem C-like e em Java. No primeiro caso, o processo para a sua execução é substancialmente idêntico ao do Visual C-like Editor; os programas copiam-se e executam-se directamente em O SEU ROBOT graças ao módulo Cérebro e Visão e ao firmware. No que diz respeito aos códigos escritos em Java, a situação é diferente e os programas armazenam-se e executam-se no PC, que depois comunica com O SEU ROBOT graças à ligação Bluetooth e utiliza as suas funções para realizar os comportamentos que se pedem. Aquilo que a programação em Java faz é utilizar o robot como se fosse um periférico muito sofisticado do PC, capaz de proporcionar dados de entrada (procedentes de vários sensores) e produzir acções (graças aos led, aos motores e à voz do robot). Se os códigos escritos em C-like utilizam construções basicamente equivalentes às funções utilizadas no Visual Editor, para Java a configuração é muito diferente. Para dar um exemplo, a execução dos programas em Java aproveita frequentemente a escrita e a leitura de determinados «registos de comunicação», ou seja, parâmetros para a troca de informação entre o PC e o robot; ao passo que com o C-like não se chega a este nível de pormenor. De certa maneira, com Java é preciso programar a baixo nível. Por isso, a programação em Java dirige-se especialmente aos utilizadores experientes. EM C-LIKE A programação em C-like coloca ao nosso alcance as mesmas funções implementadas pelos blocos do Visual C-like Editor. Para se conhecerem as construções A programação de O SEU ROBOT em C-like e, sobretudo, em Java permite criar comportamentos que podem ser muito sofisticados e que aproveitam a 100 % as funções do robot. que se podem utilizar é preciso consultar a documentação incluída no terceiro CD-ROM. Seja como for, para se poderem executar os programas escritos em C-like há que utilizar o Visual C-like Editor, cujo código (escrito com qualquer editor de texto) é aberto, e mediante este transferi-los para o robot, copiá-los e depois executá-los, seguindo o mesmo processo utilizado para os diagramas de blocos. E EM JAVA As coisas mudam quando se utiliza o Java. Tal como já foi referido, a cópia e a execução realizam-se no próprio PC, que depois, durante a execução, comunica com o robot através de Bluetooth. Os programas escritos em Java têm que utilizar as funções de ligação e troca de dados com o robot. Com esta finalidade, podem-se usar diferentes bibliotecas de suporte que levam a cabo este tipo de interface. No CD-ROM incluiu-se uma (a Java Communications API), mas é possível optar por outras. De todos os modos, é preciso incluir as referidas bibliotecas no código escrito em Java e confirmar se estão «linkadas» na lista de classes utilizadas na compilação dos códigos. A programação em Java destina-se a utilizadores experientes, que possuam conhecimentos da referida linguagem e dos processos de cópia e execução. No terceiro CD-ROM encontram-se, além das bibliotecas PROGRAMAÇÃO 1135

Java, diferentes exemplos, alguns dos quais estão desenvolvidos no ambiente Eclipse (www.eclipse.org), uma aplicação para a realização de projectos Java. Para executar os citados exemplos basta descomprimir na mesma pasta de destino as capas de arquivo java-binaries.zip, java-demo.zip e java-library.zip (incluídas no CD-ROM) e depois executar o arquivo run.bat, obtido na mesma pasta de destino. Quando se liga o PC e o robot, será pedido que se indique um dos possíveis exemplos e a porta COM criada pelo módulo Bluetooth. Ao longo dos próximos fascículos veremos com mais pormenor outros exemplos de programas criados em C-like e em Java. EXEMPLOS DE PROGRAMAÇÃO [ ORDENS ORAIS: CÓDIGO JAVA ] Exemplo de uma mesma aplicação em C-like e em Java, para mostrar a complexidade de uma e de outra. O código em C-like pode copiar-se num arquivo no Visual Editor e depois passar-se para O SEU ROBOT. O código Java, que não inclui as funções acessórias, só se pode utilizar depois de uma finalização adequada. Os possíveis problemas relacionadas com a programação em Java serão comentados em próximos fascículos. [ ORDENS ORAIS: CÓDIGO C-LIKE ] #include c-like.h #include robot.h /** Declaração dos comportamentos */ declare( behavior(ordemzero) ); declare( behavior(ordemum) ); declare( behavior(ordemdois) ); /** Declaração dos processos */ void PiscaOlhosVermelhos(); void PiscaOlhosAmarelos(); void /** Declaração do comportamento de base */ define( behavior(main) ) { start(ordemzero); start(ordemum); start(ordemdois); /** Declaração do comportamento OrdemZero */ define( behavior(ordemzero) ) { local(voice_cmd) = wait_for(voice_cmd, cero); stop(ordemum); stop(ordemdois); end(); /** Declaração do comportamento OrdemUm */ define( behavior(ordemum) ) { local(voice_cmd) = wait_for(voice_cmd, one); PiscaOlhosVermelhos(); /** Declaração do comportamento OrdemDois */ define( behavior(ordemdois) ) { local(voice_cmd) = wait_for(voice_cmd, two); PiscaOlhosAmarelos(); /** Declaração do processo PiscaOlhosVermelhos */ void PiscaOlhosVermelhos () { led_blink(led_red); /** Declaração do processo PiscaOlhosAmarelos */ void PiscaOlhosAmarelos () { led_blink(led_yellow); /** Declaração do processo ApagaOlhos */ void ApagaOlhos () { led_off(led_all); import communication.handler.protocolhandler; import communication.handler.internal.headdata; import communication.handler.internal.headregister; import communication.handler.internal.internalhandler; import communication.handler.internal.internalmodule; import communication.handler.internal.voiceregister; import communication.transport.connectionprovider; public class VoiceCommander { private static String portname; private ProtocolHandler protocol; private InternalHandler internal; /** @param args */ public static void main(string[] args) { if (args.length < 1) { System.err.println( Especifique a porta de série a utilizar (ex. COM5) ); return; portname = args[0]; new VoiceCommander().run(); private void run() { if (!connect()) return; int[] buf1 = new int[1]; int[] buf2 = new int[2]; try { // estabelece o WordSet 2 // (para permitir Ordem + Número ) buf1[0] = 2; internal.writeregister(internalmodule.voice, VoiceRegister.WORDSET, buf1); // ler resultado do reconhecimento para reinício internal.readregister(internalmodule.voice, VoiceRegister.COMMAND, buf2); // repetir até que se saia ou se carregue na tecla Intro boolean exit = false; while (!exit && System.in.available() <= 0) { Thread.sleep(500); // comprova o estado do reconhecimento a cada 0,5 segundos internal.readregister(internalmodule.voice, VoiceRegister.COMMAND, buf2); // ler resultados da gravação // comprovar se o resultado é válido if (buf2[0] == 0) continue; // comprovar WordSet 11 (números) if (buf2[1]!= 11) continue; // escolher acção int leds = -1, phrase = 0; switch (buf2[0]) { case 1: // Zero exit = true; case 2: // Um OlhosVermelhos(); case 3: // Dois OlhosAmarelos(); catch (Exception e) { // PENDENTE Bloque catch autogerado e.printstacktrace(); disconnect(); 1136