portfolio meec - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e...

33
Portfolio MEEC – Guia de Laboratório Pag. 1 Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2013/2014 – 1º Semestre Portfolio MEEC Guia de Laboratório Preparado por João Miranda Lemos Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores

Upload: vuongquynh

Post on 10-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 1

Mestrado Integrado em

Engenharia Electrotécnica e de Computadores

2013/2014 – 1º Semestre

Portfolio MEEC

Guia de Laboratório

Preparado por

João Miranda Lemos

Instituto Superior Técnico

Departamento de Engenharia Electrotécnica e de Computadores

Page 2: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 2

Apresentação

Este é o guia de laboratório da unidade curricular Portfolio MEEC. Neste laboratório é

desenvolvido um projecto simples que consiste em programar um robot que siga uma

fita preta colada num fundo escuro. ver o vídeo

http://www.youtube.com/watch?v=WzHZrE4vliI&feature=em-upload_owner

Embora se utilize um robot, a concretização deste projecto ultrapassa em muito a

Robótica (e o Controlo) e permite ver exemplos de todos os grandes temas centrais da

Engenharia Electrotécnica:

Os computadores e a Programação. O “cérebro” do robot é constituído por um

computador onde são executados os programas que permitem atingir os seus

objectivos.

Os sensores (de uma maneira mais geral, pode dizer-se “a instrumentação”),

que são dispositivos electrónicos que permitem medir variáveis físicas (por

exemplo a distância a que um objecto se encontra de nós, ou a intensidade da

luz reflectida por uma superfície) e transformar essa medida numa tensão

eléctrica que pode ser lida pelo computador. Pode dizer-se que os sensores

constituem os “olhos e os ouvidos” do robot e permitem captar informação e

comunicá-la ao computador que constitui o “cérebro”.

Os actuadores, constituidos por motores eléctricos, que permitem que o robot

se desloque, executando movimentos que são controlados pelo computador.

A energia, através da possibilidade de medirmos (através de um sensor) a

energia disponível na bateria que alimenta os motores e fazer a sua gestão,

por exemplo emitindo um alarme quando o seu nível desce abaixo de um

determinado valor.

As comunicações, através da possibilidade de vários robots comunicaremi.

Menos visível de um modo directo estão a Electrónica e a Arquitectura de

Computadores que permitem a realização dos maravilhosos circuitos electrónicos,

escondidos debaixo do plástico do bloco da LEGO, mas sem os quais nada funcionaria

(pode mesmo dizer-se que funciona tão bem que nem se dá por isso).

O robot NXT da LEGO que vamos utilizar proporciona pois um primeiro contacto com a

Engenharia Electrotécnica e de Computadores. Muitos dos temas que aqui são

aflorados serão posteriormente muitíssimo mais aprofundados ao longo do curso. E

isto por si só é já um objectivo interessante para a disciplina.

Mas o robot e o projecto a ele associado são também um pretexto para algo mais

importante e interessante. Trata-se de desenvolver as chamadas competências

transversais, algumas das quais são aqui desenvolvidas:

Page 3: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 3

Falar (e ouvir!), expor, argumentar;

Escrever, elaborar relatórios;

Planear e controlar a execução dos planos.

Ao longo das sessões de laboratório, haverá oportunidade de utilizar diversas

ferramentas que são úteis no dia a dia da vida universitária ou da profissional (o LATEX

para a geração de documentos, o MS project para o planeamento de projectos, o

Power Point para criar apresentações). E muito tempo para fazer apresentações orais e

discutir ideias.

Haverá 6 sessões de laboratório, cada uma com 3h de duração, que terão lugar de 2

em 2 semanas. Estas sessões serão dedicadas aos seguintes temas:

1. O robot NXT da LEGO.

2. Planear o projecto.

3. Exploração dos sensores.

4. Programação do robot.

5. Avaliação do progresso e programação avançada.

6. Apresentação final do projecto.

O trabalho a realizar em cada sessão, bem como a descrição dos elementos

necessários é feita a seguir neste documento. Pode desde já ter uma ideia do

conteúdo de cada sessão lendo a secção sobre Objectivos no início de cada uma.

O Laboratório Pedro Nunes

O trabalho do projecto de laboratório será realizado no Laboratório Pedro Nunes, que

está localizado na sala 4.10 do piso 4 da Torre Norte do campus da Alameda do IST.

O nome do laboratório foi escolhido por Pedro Nunes (representado numa gravura a

seguir) ser um Homem da Renascença português. A Renascença, o período em que se

combinaram a Descoberta, a Ciência e a Arte.

Figura 0-1. Pedro Nunes (1502-1578).

Page 4: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 4

Figura 0-2. Rosto de duas obras de Pedro Nunes: Tratado da Esfera, publicado em

1537, e o Libro de Algebra en Arithmatica y Geometria, de 1567.

Pedro Nunes foi professor de Matemática da Universidade de Coimbra e Cosmógrafo

Mor do Reino e publicou várias obras, originais e traduções, sobre o que constituía, na

altura, a fronteira do conhecimento. Estas abordavam temas de grande impacto

económico para a altura, no âmbito da navegação, com um espírito de rigor e

baseadas na Matemática mais avançada para a altura.

Dois exemplos de obras de Pedro Nunes (figura 0-2), separados por trinta anos da vida

do seu autor, são a tradução do Tratado da Esfera, de Sacrobosco, e o Libro de Algebra

en Arithmatica y Geometria, em que aborda a solução das equaçõs algébricas de 3º

grau, um tema então muito avançado. O Tratado da Esfera era um manual de

navegação para uso dos pilotos. Não é uma mera tradução dado que inclui diversas

contribuições originais do tradutor.

Em relação com os seus trabalhos sobre navegação, Pedro Nunes inventou o nónio,

um aparelho que permite aumentar a precisão das escalas, e que ele aplicou ao

astrolábio.

Aliado ao rigor, a valorização da descoberta e da inovação está presente na obra de

Pedro Nunes. Referindo-se às viagens feitas pelos portugueses nos últimos 100 anos,

escreveu: Descobriram novas ilhas, novas terras, novos mares, novos povos e o que

mais é novo céu e novas estrelas (Tratado da Esfera, 1537).

Novo céu e novas estrelas! É o que este projecto de laboratório pretende fazer

descobrir. Hoje, para um Engenheiro Electrotécnico e de Computadores, o céu e as

estrelas são as novas realidades tecnológicas, que o mosaico da figura 0-3 palidamente

reflecte.

Page 5: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 5

Figura 0-3. Um mosaico de aplicações da Engenharia Electrotécnica e de

Computadores. De cima para baixo e da esquerda para a direita: Antenas de um

sistema de comunicações móveis; antevisão de uma rede inteligente de energia; braço

robot numa linha de montagem de automóveis; linha de produção, onde se reconhece

um braço robot (à esquerda), das latas de atum Ramírez; ampliação de um circuito

integrado; o microcontrolador Arduino, que permite o desenvolvimento de projectos

piloto de muito baixo custo.

Page 6: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 6

Uma nova visão dos computadores

Para muitas pessoas, um computador não é mais do que um meio para divertimento

ou uma máquina de escrever sofisticada. Para alguns, pode ser usada como uma

máquina de calcular, ou mesmo ser programado para executar cálculos sofisticados.

Em todo o caso, e por muito útil que seja, para a maioria das pessoas, o computador é

algo desligado do mundo, que vive num mundo à parte e desempenhando um papel

parecido com a esferográgica BIC.

O que o curso de Engenharia Electrotécnica e de Computadores propõe é a entrada

num mundo novo. Neste, o computador é visto como mais um componente dos

sistemas que se desenvolvem, sejam eles máquinas eléctricas, sensores inteligentes ou

complexos sistemas de comunicações. Tínhamos a resistência, o condensador, o

transístor. Passámos a ter também o computador, que pode ser ligado aos outros

componentes através de interfaces convenientes. É o mundo dos sistemas embebidos,

que incluem computadores, a tomar decisões em tempo real, a par com os circuitos

electrónicos. Com a vantagem de que os limites do que se consegue fazer são os da

nossa imaginação. Nos sistemas ciber-físicos (cyber-physical systems) há partes que se

comportam como sistemas físicos, mas que de facto são apenas equações integradas

em tempo real em computadores, ligados aos restantes por interfaces. Neste país dos

espelhos, o que é realidade física e o que é computação confunde-se por forma a

conseguirem-se sistemas extremamente poderosos que influenciam cada vez mais, de

modo tremendo a vida quotidiana de todas as pessoas.

Este laboratório permite dar um primeiro passo num percurso em que a Física, a

Matemática, a Electrotécnia Teórica, as Probabilidades e Processos Estocásticos, a

Programação e Computação e muitos outros ramos ligados às Telecomunicações, aos

Sistemas Decisão e Controlo, à Energia, à Electrónica e aos Computadores, muitas

vezes aparentemente desligados, mas só aparentemente, convergem para formar um

Engenheiro Electrotécnico e de Cumputadores.

Bibliografia

A informação contida neste manual é suficiente para realizar os trabalhos de

laboratório propostos. No entanto, para quem quiser saber mais, duas referências

úteis (sobretudo a primeira) são:

T. Griffin. The art of LEGO mindstorms NXT-G programming. No Starch Press, 2010.

L. Valk. The LEGO mindstorms NXT 2.0 discovery book. No Starch Press, 2010.

Para além disso, existem disponíveis na internet muitos sítios com tutoriais e vídeos

sobre o assunto.

Page 7: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 7

Sessão nº 1

O robot NXT da LEGO

Objectivos

Contacto básico com o NXT. Programas simples com um único bloco de acção.

Programas com ciclos. Introdução ao LATEX. Escrita em LATEX de uma descrição do

NXT e da sua programação com blocos simples. Utilização do GIMP e do Paint para

gerar figuras eps para inclusão no relatório (cada grupo elabora um relatório).

Elementos a entregar no final sa sessão

No final desta sessão, cada grupo deve entregar um relatório de até 2 páginas com o

relato e as principais conclusões do trabalho efectuado. O relatório deve ser em

formato pdf e ser escrito em LATEX, incluindo pelo menos uma figura.

Descrição do trabalho

O robot NXT da LEGO

A parte essencial do robot NXT da LEGO é o bloco que se mostra na figura 1-1.

Page 8: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 8

Figura 1-1. A parte essencial do robot NXT da LEGO. Inclui o processador e interfaces.

Este bloco inclui um processador e interfaces.

As interfaces são (ver a figura 1-1):

Interfaces com o utilizador, que incluem

o Um mostrador LCD que pode representar sequências alfanuméricas e

gráficos;

o Um botão (de cor laranja) que serve para ligar o robot e que também

permite dar entrada de comandos;

o Um botão cinzento que tem a dupla função de passar ao menu anterior

e de desligar o robot se premido durante alguns segundos.

4 portos de entrada, numerados de 1 a 4, situados na parte inferior, e onde são

ligados os sensores através de cabos;

3 portos de saída, etiquetados A, B e C, situados na parte superior do lado

esquerdo. A estes portos ligam-se os motores através de cabos.

1 porto USB, situado na parte superior direita, e que serve para ligar o robot ao

computador. É através deste cabo que se descarregam para a memória do

robot os programas desenvolvidos no computador. Uma vez armazenados os

programas na memória, estes ficam lá até serem apagados, mesmo que o robot

seja desligado. O cabo pode assim ser removido, passando o robot a funcionar

autonomamente.

Nota: No seu interior o robot NXT da LEGO tem o que se chama um

microcontrolador, ou seja um circuito electrónico (muito complexo) que inclui um

processador, memória e interfaces com o mundo exterior. Para o utilizador da

NXT a maior parte dos (muitos) detalhes de programação deste microcontrolador

estão escondidos, o que facilita enormemente o seu uso (mas também impõe

restrições).

A parte central do NXT inclui ainda uma bateria recarregável colocada na sua parte

inferior que dispõe de um contacto que pode ser ligado a um carregador. Um led

vermelho indica que o carregador está ligado e um led verde que a bateria está

carregada.

Page 9: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 9

Figura 2-1. O robot NXT da LEGO ligado a 4 sensores diferentes, cada um a um porto, e

a 3 motores (actuadores), também cada um a um porto.

A figura 2-1 mostra a ligação do NXT a sensores e actuadores. Por forma a permitir o

posicionamento adequado dos sensores e actuadores, o encapsulamento de plástico

do NXT possui vários encaixes para peças da LEGO, tal como se mostra na figura 3-1.

Figura 3-1. Encaixes do NXT para ligação de peças da LEGO que permitem a construção

de vários tipos de robot. A bateria está dentro da caixa cinzenta na parte inferior.

Figura 4-1. Um triciclo com duas rodas motoras construído com base no NXT.

Podem assim construir-se robots com diversas configurações físicas (facilmente se

encontram na internet variadíssimos exemplos, por vezes muito sofisticados). Por

exemplo, a figura 4-1 mostra um triciclo com duas rodas motoras que, em conjunto

com 3 sensores (intensidade de som, intensidade de luz e distância), constitui o robot

que vai ser empregue no projecto.

Page 10: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 10

Nota: Infelizmente, por limites compreensíveis nos recursos, e dado o elevado

número de alunos, não será possível alterar as configurações do robot.

Uma situação simples ilustra a resolução de um problema com este robot. Imagine-se

que se pretende que o robot ande sempre em frente, parando quando se depara com

um obstáculo a menos de 40 cm, e retomando a marcha quando o obstáculo é

removido.

Para detectar o obstáculo, é claro que precisamos de um sensor de distância que

aponta para a frente.

O programa executa um ciclo de instruções (ou seja, um conjunto de instruções que se

repetem sucessivamente) e que constam dos seguintes passos:

1. Lê no porto ligado ao sensor o valor da distância ao obstáculo mais próximo;

2. Se esta distância fôr superior a 40 cm então dá um comando aos motores para

andarem os dois com a mesma velocidade; Caso contrário dá um comando aos

motores para que ambos parem.

Programação do NXT

A programação do NXT pode ser feita de várias maneiras. A maneira mais básica é

designada por NXT-G e consiste numa descrição gráfica das tarefas e decsões a tomar.

A cada sensor, actuador ou acção a tomar (por exemplo, um ciclo) é associado um

bloco, cujas características podem ser programadas por forma a executar certas

acções. Estes blocos podem ser ser encaixados sequencialmente, constituindo cadeias

de acções. A seguir veremos vários exemplos.

Trabalho a realizar no laboratório

Activar o ambiente de programação

Para por a correr o ambiente de programação do NXT, carregue no botão do Windows

que se encontra no canto inferior esquerdo do écran, tal como indicado pela seta na

figura seguinte

Figura 5-1. O botão de início no Windows.

Page 11: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 11

Abre-se o seguinte menu que permite o acesso aos programas disponíveis neste

computador e que se mostra na figura 6-1.

Figura 6-1. Activação do ambiente de programação do NXT.

Clique sobre NXT 2.1 Programming (não confundir com NXT 2.1 Data Logging). Abre-se

uma janela com o formato da figura 7-1. No local indicado pelo círculo vermelho

escreva um nome para o programa que pretende desenvolver, por exemplo test1 e a

seguir carregue em Go >> dentro do outro círculo vermelho.

Caso quisesse editar um programa escrito anteriormente, teria de usar os campos

correspondentes, imediatamente abaixo, e onde indicaria o nome do programa já

desenvolvido.

Na sequência destas acções, surge a folha de programação com o aspecto da figura 8-

1. Podem observar-se nesta os seguintes campos principais:

Do lado esquerdo existe uma tira de quadrados com desenhos que

representam os blocos que podemos utilizar na programação;

A parte central é ocupada por uma zona quadriculada, onde se encontra um

bloco de início, a partir do qual se vão “encaixando” blocos, simplesmente

clicando nos blocos da biblioteca existente no lado esquerdo e arrastando-os

mantendo o botão esquerdo do rato premido até estrem na posição final.

Page 12: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 12

No interior desta parte central e perto do seu canto inferior esquerdo existem

botões que permitem descarregar o programa desenvolvido sob forma gráfica

para o robot (através do cabo ligado às portas USB do computador e do robot),

executar o programa e monitorizar a memória usada e o nível da bateria.

Em baixo existem dois campos. O da esquerda está vazio. Será usado para

programar as características dos blocos. O da direita permite seleccionar a

parte que se vê em diagramas muito grandes.

Fig. 7-1. Abertura do ambiente de programação do NXT.

Page 13: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 13

Fig. 8-1. Folha de programação.

Neste momento o ambiente de programação está activo e vamos começar a fazer um

programa muito simples.

O primeiro programa: Fazer funcionar o altifalante

O primeiro programa consiste simplesmente em fazer o altifalante incorporado no NXT

reproduzir uma frase pré-gravada.

Como se pode ver na figura 8-1, no lado esquerdo da folha de programação existe uma

“biblioteca” de blocos que estão associados a acções básicas. Sem clicar, passe

lentamente o rato sobre cada um deles. Abre-se uma pequena janela com a indicação

da acção que cada bloco permite realizar. Repare que a ampulheta se desdobra em

vários blocos.

Figura 9-1. O ícone do altifalante.

Clique agora sobre o ícone do altifalante (figura 9-1) com o botão do rato do lado

esquerdo (daqui em diante, quando se disser “clicar” sem mais, isso significa “apertar

Page 14: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 14

o botão do rato do lado esquerdo) e, mantendo o botão apertado, arraste o ícone até

à zona marcada “start”.

Figura 10-1. O programa Teste1 para fazer funcionar o altifalante.

O programa (constituído pela interligação dos blocos inicial e altifalante) tem o aspecto

da figura 10-1. No campo da parte inferior esquerda aparecem as propriedades do

bloco associado ao altifalante (figura 11-1). Podemos controlar o volume e escolher as

palavras pré-gravadas a reproduzir. Neste momento as palavras são “Good job”.

Figura 11-1. Propriedades do bloco altifalante.

Carregar o programa no NXT e executá-lo

Para executarmos o programa podemos clicar com o botão esquerdo do rato sobre o

botão central com o triângulo na parte inferior direita da folha de programação (figura

12-1).

Figura 12-1. Botões para descarregar e executar programas.

A partir do momento em que o programa é descarregado, há uma cópia sua que passa

a estar residente no robot NXT (até que seja apagada). Experimente desligar o cabo

USB e carregar no botão laranja. O que acontece? Volte a ligar o cabo para realizar as

experiências seguintes.

Nota: O programa é descrito por uma representação gráfica. No entanto, existe

um interpretador, que transforma esta informação gráfica em linhas de código,

semelhantes ao que está a usar na unidade curricular de Introdução à

Programação. Estas linhas de código são compiladas e transformadas num

Page 15: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 15

programa executável, codificado de uma certa maneira, que é transferido para o

NXT. Se conhecessemos a linguagem de programação do NXT poderíamos

escrever directamente o código para executar as tarefas desejadas. A

programação seria, é claro, muito mais complicada dado que teríamos de nos

preocupar com muito mais detalhes. Teria no entanto a vantagem de permitir

fazer coisas que não estão previstas na programação com a interface gráfica. A

programação com a interface gráfica, como que “encaixando” blocos como peças

de LEGO, cada bloco a ssociado a uma dada taref, tem a vantagem de ser muito

simples. Ao longo do seu curso terá oportunidade de aprender a utilizar

interfaces gráficas para programação muito poderosas, como o SIMULINK.

Figura 13-1. Informações sobre a ligação do computador ao robot.

No bloco de botões da figura 12-1, cique agora no botão do canto superior esquerdo.

Premindo este botão, abre-se a janela que se mostra na figura 13-1. Observe que tipo

de informação pode extrair desta janela. Clique nos separadores (do lado esquerdo,

em cima) para ver informações relativas às comunicações e à memória.

Clique no separador de memória. Observe que ele lhe dá uma lista de itens que estão a

ocupar espaço (neste caso, a gravação de uma frase), e que o pode apagar.

Observe que, do lado direito, tem informação relativa à carga da bateria.

Feche esta janela de informação, clicando no botão de fechar no seu canto inferior

direito.

O que fazem os restantes botões do bloco da figura 12-1? Sem clicar, coloque o

apontador do rato sobre cada um deles e espere um pouco para ler informação sobre

as funções de cada um.

Use os botões do NXT (o bloco físico) para perceber como pode seleccionar e

apagar programas.

Page 16: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 16

Programas com sequências de blocos

Vamos escrever agora programas em que há várias acções em sequência.

Figura 14-1. Bloco display.

Figura 15-1. Atributos do bloco display.

Começamos por considerar o bloco display (figura 14-1), que permite mostrar no visor

do NXT uma figura e tem os atributos que se mostram na figura 15-1. Como se pode

ver (experimente no NXT), pode escolher-se o tipo de objecto mostrado (imagem,

número, etc.).

No entanto, se corrermos o programa formado apenas pelo bloco “display”, nada

se observa. Isto sucede porque as instruções associadas ao bloco são executadas

rapidamente e quando acaba, o monitor do NXT (um programa que corre no NXT e

realiza vários tipos de tarefas, em particular com ambiente de programação) repõe

outra imagem.

Se adicionarmos um outro bloco em série que permite executar uma espera, a

imagem ficará um tempo suficiente para a vermos. Assim, coloque em série os dois

blocos de deisplay e de espera, tal como se mostram na figura 16-1.

Figura 16-1. Um programa para mostrar uma figura no écran durante 3 segundos.

Repare que existem vários tipos de blocos de espera (figura 17-1). Vamos começar por

usar o primeiro, com o símbolo que se mostra na figura 18-1. De facto, os outros

blocos podem, ou ser seleccionados directamente a partir do menu gráfico, ou a partir

deste mesmo bloco, através da escolha numa lista de tipos de blocos.

Page 17: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 17

Figura 17-1. O bloco de espera desdobra-se em vários tipos de blocos.

Figura 18-1. O bloco de espera correspondente a um temporizador, em que é feita

uma espera durante um tempo fixo, prosseguindo depois o programa sem serem

satisfeitas quaisquer condições adicionais.

Para configurar o bloco de espera escolha como modo de controlo o tempo e

indique como tempo de espera, por exemplo, 3 segundos. Corra o programa e observe

o écran do NXT.

Se quisermos adornar o programa, podemos adicionar mais um bloco de altifalante

em que se emite uma expressão que indica que o programa correu até ao fim, por

exemplo “Good job” ou “Fantastic” (um bom elogio faz-nos sempre bem ao ego!).

Obtém-se assim o programa da figura 19-1.

Figura 19-1. Um programa que mostra uma figura no écran durante 3 segundos e no

fim diz “Good job”.

Decisões associadas a sensores

O tempo de espera pode não ser fixo mas depender do sinal lido por um sensor. Um

sensor é um componente do equipamento que transforma um sinal físico num sinal

eléctrico que pode depois ser transformado num número através de um circuito

electrónico denominado conversor analógico-digital (ou simplesmente A/D). Todos

estes circuitos estão no interior do NXT, mas a sua utilização e programação é

“transparente” para o utilizador.

Um exemplo é o sensor de som que se mostra na figura 20-1.

Page 18: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 18

Figura 20-1. Sensor de som.

Figura 21-1. Um programa para mostrar uma figura no écran até que haja um som de

uma intensidade acima de um certo limiar. No fim avisa que terminou.

A figura 19-1 representa um programa que mostra uma figura no écran até que o

sensor de som receba um som de intensidade acima de um limiar. O último bloco

emite um som de terminação (“Good job!”).

O bloco associado ao sensor está em estado de espera até que o sensor seja actuado.

Figura 22-1. Janela de definição do bloco de espera associado ao sensor de som.

A figura 22-1 mostra a janela de definição das propriedades do bloco de espera

quando associado ao sensor de som. Repare que deve escolher como modo de

funcionamento do bloco de espera “Sensor” (ver o menú expansível assinalado pela

elipse) e depois o sensor adequado (no menú imediatamente abaixo.

Do lado direito vê-se que o porto a que o sensor está associado é o porto. Para que o

programa funcione, o sensor de som deverá portanto estar ligado ao porto 2 através

de um cabo (o que acontece; não altere esta ligação!).

Ainda do lado direito da janela representada na figura 20-1 representam-se (e podem

ser ajustadas) duas características muito importantes da decisão a tomar sobre se o

programa deve ou não ser terminado, com base no sinal medido pelo sensor:

Page 19: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 19

O limiar (em Inglês threshold) acima do qual se considera que é detectado um

som. Neste caso o limiar é 50, mas pode ser alterado.

O intervalo de valores do som tal que, se a intensidade nele estiver, se

considera que o sensor foi actuado. Neste caso o sensor é actuado acima do

limiar.

Experimente este programa. Gere o som batendo palmas ou falando alto (com o

devido respeito e veneração que devem ser mantidos num laboratório do IST!).

Nota: Se baixarmos o limiar aumentamos a possibilidade de haver um “falso

alarme”, ou seja, o sensor é actuado por um ruído ambiente espúrio. Por outro

lado, aumentando o limiar, aumentamos a probabilidade de o som com que

queremos que a decisão seja tomada não ser suficiente forte para ser detectado,

havendo uma “falha de detecção”. A escolha do limiar resulta deste

compromisso. Se caracterizarmos as probabilidades da amplitude dos vários

sinais em jogo, podemos optimizar a nossa escolha do limiar, de acordo com um

dado critério. Estes problemas surgem em muitos problemas de Engenharia

Electrotécnica e de Computadores, por exemplo em Comunicação Digital. Moral

da História: Estude cuidadosamente o que lhe será ensinado na disciplina de

Probabilidade e Estatística se se interessa por estes problemas...

Pode fazer-se algo semelhante com o sensor de distância (ou com o de intensidade

luminosa, ou outro). Observe o sensor de distância que se mostra na figura 23-1.

Figura 23-1. Sensor ultrassónico de distância.

Repare que o sensor de distância tem dois orifícios. Um emite um impulso de ultra-

som (um ultra-som é um som numa gama de frequências superior à que conseguimos

ouvir) e o outro orifício detecta o eco reflectido por um obstáculo. O sensor calcula o

tempo de atraso entre a emissão e a recepção do eco e, a partir daí, admitindo

constante a velocidade do som, determina a distância do obstáculo.

Teste o programa que se mostra na figura 24-1. O programa deverá mostrar no

mostrador do NXT um boneco (programado por si no bloco display) enquanto não

houver nenhum objecto a menos de uma dada distância do sensor de distância

(comece por escolher 30 cm e depois experimente outras distâncias). No final deverá

ser emitido o som “Good job!” (ou outro que tenha programado).

Page 20: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 20

Figura 24-1. Espera controlada pelo sensor de distância.

Figura 25-1. Configuração do sensor de distância para o programa da figura 24-1. Para

esta configuração o programa continua quando aparece um objecto a 30 cm ou

menos.

Na configuração do bloco de atraso associado ao sensor de distância (figura 25-1) pode

alterar a distância a que o obstáculo é detectado. Deve configurar adequadamente as

unidades em que esta distância se exprime (não se esqueça da história da sonda

enviada a Marte e que foi perdida por uns usarem centímetros e os outros

polegadas...).

Altere agora o programa para que a espera se mantenha quando existir um objecto a

uma distância menor do que o limiar, continuando a execução quando o objecto se

afasta.

As características de um bom programa

Um bom programa deve ter as seguintes características

1. Executar a função pretendida;

2. Ser fácil de modificar;

3. Ser compreensível por qualquer pessoa que conheça a linguagem de

programação usada.

O primeiro requisito parece bastante óbvio, mas pode não ser simples de garantir.

Implica que sejam feitas especificações e que, quando o programa está pronto, se

proceda a uma verificação de que estas são cumpridas.

No caso dos programas desenvolvidos nesta unidade curricular as especificações

podem ser muito simples, por exemplo o programa deve mostrar no écran do NXT o

desenho de um boneco smile até que se aproxime um objecto. A verificação deriva

directamente das especificações. Para verificarmos se o programa funciona, neste

caso, corremos o programa e observamos o écran para ver se o smile lá está. Depois

Page 21: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 21

aproximamos um objecto (uma folha de cartolina, por exemplo) e vemos se o smile

desaparece. Podemos ir aproximando lentamente o objecto e verificar que o smile

desaparece (mais ou menos) à distância que especificámos.

Se o programa não cumprir as especificações, temos de pensar porquê. O primeiro

passo é pensar cuidadosamente na maneira como configurámos o programa. Não se

esqueça: O computador é o idiota mais rápido do mundo, que cumpre rigorosamente

tudo o que lhe mandarmos executar. Por vezes ajuda reduzir a complexidade do

programa, por exemplo dividindo-o em partes e verificando se cada uma das partes faz

exactamente o que esperamos.

A característica número 2 (o programa deve ser facilmente modificável) é importante

dado que muitas vezes as especificações são alteradas depois de se ter efectuado o

desenvolvimento do programa. Podemos além disso querer adaptar um programa

para fazer uma outra função, sendo desejável que isso seja feito com pouco esforço.

Finalmente a característica número 3 permite que nós próprios nos lembremos de

como as coisas funcionam quando retornamos a elas passado algum tempo. Numa

empresa isto é fundamental dado que o desenvolvimento de um mesmo programa

pode ser feito por diversas pessoas, por exemplo porque quem inicia o programa

abandona a empresa.

Figura 26-1. Programa comentado.

Para tornar os programas legíveis, um auxiliar importante são os comentários. Trata-se

de pequenos textos que não afectam a execução, mas que esclarecem alguns pontos

importantes.

Page 22: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 22

Para inserir comentários use a ferramenta de comentários associada ao botão

assinalado pela seta a vermelho na figura 26-1. Posicione o curso e escreva o

comentário. Posteriormente, pode ajustar a posição do comentário clicando na seta à

esquerda da ferramenta de comentários.

Comando dos motores

Os motores são os actuadores mais importantes do robot uma vez que são estes que

permitem deslocar o robot e realizar movimentos com o efector, por exemplo uma

pinça por eles accionada (que neste trabalho não será utilizado).

Figura 27-1. Estrutura interna de um motor do NXT da LEGO (à esquerda) e aspecto

exterior (à direita).

A figura 27-1 mostra a estrutura interna do motor. Como se pode ver, não se trata de

um simples motor, mas tem também uma caixa de desmultiplicação de velocidade

(para que o veio a ligar às rodas diminua a sua velocidade e aumente o binário). Tem

ainda um sensor de posição angular do veio a ligar às rodas e um sistema electrónico

que permite controlar esta posição angular. Isto permite que o motor seja accionado

em vários modos diferentes, por exemplo

rodando sem parar, ou

fazendo com que o ângulo rode apenas um ângulo que é especificado.

Figura 28-1. O bloco de controlo dos motores.

Figura 29-1. Configuração do bloco de controlo dos motores.

Page 23: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 23

A figura 28-1 mostra o bloco de controlo dos motores e a figura 29-1 a respectiva

janela de configuração. Observemos esta janela.

Do lado esquerdo em cima são definidos os portos do NTX a que os motores estão

ligados e que são afectados por este bloco. Na figura pode ver-se que se estão a

afectar os portos B e C, que correspondem aos motores das rodas. Podíamos ter

escolhido apenas um deles.

Os portos B e C são sincronizados (através de um controlador PID que é invisível para o

utilizador mas está embebido no NXT) o que permite garantir que o robot se desloca

para a frente mantendo a direcção com precisão quando ambos são actuados.

Imediatamenta abaixo, surge o controlo da direcção que pode ser para a frente, para

trás, ou forçar o motor a parar. Na figura 29-1 está seleccionada a direcção para a

frente.

A seguir está especificada a viragem, que é conseguida com a diferença de rotação das

rodas. Consoante a posição do cursor, vira-se para um lado, para outro ou vai-se em

frente.

No lado direito da janela de configuração da figura 29-1 está:

A potência aplicada ao motor, numa escala de percentagem do valor máximo

entre 0% e 10motor 0%.

O modo de funcionamento do motor definido pelo bloco.

Se clicar no menu de duração, aparecem as seguintes possibilidades:

Ilimitada

Graus

Rotações

Segundos

Se escolhermos “Graus”, “Rotações” ou “Segundos”, o motor rodará durante um

período que depende da respectiva unidade escolhida. Experimente as várias

alternativas.

Repare ainda que, nestes modos pode definir a próxima acção:

Travar, que permite uma maior precisão no posicionamento final, mas em que

se gasta mais energia;

“Coast”, em que o motor é pura e simplesmente desligado no final da acção,

sendo deixado livre. Esta acção poupa energia mas o movimento é muito

menos preciso (o que pode ser importante para certas aplicações).

Page 24: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 24

Se escolhermos uma duração ilimitada, o motor rodará continuamente enquanto o

programa estiver a ser executado. Isto significa que, se o programa constar apenas

deste bloco, assim que ele for executado, o motor parará (porque o programa chegou

ao fim). É uma sitação semelhante à que encontrámos antes com o bloco display.

Tal como se fez no bloco “display”, podemos fazer seguir o motor de um bloco de

espera de tempo, tal como se mostra na fiigura 30-1. Experimente este programa.

Figura 30-1. Um programa que faz o robot andar a direiro durante um período de

tempo de 3 segundos, especificado no bloco de espera.

Experimente este programa, alterando o tempo durante o qual o robot se desloca.

Altere o programa (altere a configuração do bloco do motor) para que o robot

descreva uma trajectória circular durante alguns segundos. Como pode fazer para

alterar o raio da trajectória?

Figura 31-1. Um programa que faz o NXT andar a direito e parar quando encontra um

obstáculo.

Figura 32-1. Configuração dos blocos do motor (em cima) e do sensor de distância (em

baixo) no programa da figura -1.

Page 25: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 25

Mais interessante do que, pura e simplesmente, fazer o robot descolcar-se em frente

(ou girar autistamente sobre si próprio) é garantir alguma interactividade do robot

com o ambiente através dos sensores.

O programa descrito nas figuras 31-1 e 32-1 mostra um exemplo de um programa em

que o primeiro bloco dá uma ordem para os motores rodarem sempre enquanto o

programa for executado, seguida de um bloco de espera associado ao sensor

ultrasónico de espera. De acordo com este último bloco, o programa só pára (e

portanto os motores) quando for satisfeita a condição de o sensor de distância

detectar um objecto a menos de 50 cm de distância.

Experimente o programa das figuras 31-1 e 32-1. Modifique-o em seguida para

experimentar diversas distâncias para o sensor (tenha em atenção as unidades em que

exprime a distância, e que podem ser polegadas ou centímetros!).

Programas com ciclos

O programa das figuras 31-1 e 32-1 pára assim que é detectado um obstáculo. Seria

mais interessante que o programa fosse tal que permitisse que o robot retomasse a

sua marcha quando o obstáculo é removido.

Figura 33-1. O bloco de ciclo (à esquerda) e a sua janela de programação.

Para tal, podemos usar o bloco de ciclos que se mostra na figura 33-1. Este bloco

permite executar repetidamente uma sequência de instruções colocada no seu

interior. Esta repetição (ou ciclo de instruções) pode ser feita para sempre (no sentido

em que se repete enquanto a bateria durar... De facto, nesta vida sublunar, nada é

para sempre, nem o amor de Cândido pela menina Cunegunde – se nunca leu o

Cândido de Voltaire, leia-o e aprenderá imensas coisas utilíssimas para a sua futura

profissão), ou um dado número de vezes, ou ainda até que se verifique uma dada

condição, por exemplo ser actuado um sensor.

Para definir a sequência de instruções a executar repeditadamente, basta arrastá-las

para o interior do bloco de ciclo.

Experimente o programa que se mostra na figura 34-1. Explique o funcionamento

deste programa (a seguir ser-lhe-á pedido para documentar as explicações por escrito).

Page 26: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 26

Figura 34-1. Um programa que consiste em repetir em ciclo a instrução

A reter: Estruturas de programação

Os programas que aprendemos a escrever na linguagem de blocos NXT-G constam de

copmbinações das seguintes estruturas básicas:

Sequências de instruções, cada uma dada por um bloco, e que são executadas

uma após outra.

Decisões sobre executar, alternativamente, uma sequência de instruções ou

outra, dependendo de uma condição. São exemplo os blocos de espera

associados à medida de um sensor, em que as alternativas são esperar ou

prosseguir. Posteriormente estudaremos um outro bloco que permite decisões

mais gerais.

Ciclos, em que uma sequência de instruções é repetida indefinidamente ou até

que se verifique uma dada condição (por exemplo, um certo número de vezes).

Com estas estruturas podem escrever-se todos os programas de interesse em

Engenharia. Constituem a base da chamada programação estruturada e irá encontrá-

las, como amigas fiéis, em outras unidades curriculares do Curso, sendo comuns a

todas as linguagens de programação (e não apenas um capricho da LEGO!) , onde

existem de uma forma ou outra.

O processador de texto LATEX

Ao contrário do processador de texto MS-Word, em que o que se obtém é o que se vê

quando se escreve, no processador de texto LATEX é escrito primeiro um ficheiro de

comandos que contém a descrição do texto (o texto propriamente dito, tamanho e

tipo de letra, símbolos matemáticos, títulos de capítulos e secções, figuras, etc.) que

depois é interpretado pelo compilador de LATEX, produzindo-se primeiro um ficheiro

em formato dvi e, a partir deste, um ficheiro pdf que pode ser lido e que contém o

documento final. Há variantes: podemos por exemplo produzir ficheiros ps em vez de

pdf, mas para já não nos vamos preocupar com isso. A nossa abordagem consiste em

aprender o mínimo possível para poder gerar documentos. A prática (e a

Page 27: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 27

necessidade...) levarão ao longo do tempo, mesmo para além desta disciplina, a

aprender mais coisas sobre o LATEX.

Pode parecer à primeira vista que o LATEX é mas complicado do que o MS-Word, mas

alguma complicação que exista é amplamente compensada com o esforço que permite

poupar e a qualidade gráfica profissional dos documentos produzidos. Dá-se apenas

um exemplo: Se num documento tivermos equações numeradas e se introduzirmos

uma nova equação entre as já existentes, não necessitamos de as renumerar. O LATEX

refere as equações (e outros objectos como figuras, tabelas ou capítulos e secções do

texto) por símbolos formados por sequências alfanuméricas. Quando referimos uma

equação no texto usamos, não o número, mas o símbolo. O compuilador de LATEX

(que gera o documento a partir dos nossos comandos) transforma os símbolos nos

números das equações.

Figura 35-1. O ícon do TeXnic está disponível clicando no botão de chamada dos

programas do Windows, do lado esquerdo da barra inferior do monitor.

O ficheiro que contém os comandos é um ficheiro de texto que tem extensão .tex.

Pode ser escrito em qualquer processador de texto, mas existem ambientes que

incorporam processadores de texto e permitem chamar os compiladores necessários

para gerar os ficheito necessários. Um exemplo é o TeXnic, que pode ser chamado tal

como se mostra na figura 35-1. Repare que o TeXnic não é um compilador de LATEX,

Page 28: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 28

mas tem botões que permitem chamar o compilador, que neste caso é o MikTex (quer

o TeXnic, quer o MikTex são software livre que poderá, se quiser, obter facilmente da

internet).

Figura 36-1. Barras de comandos do TeXnix.

Após abrir o TexNic, surgem as barras de comandos que se mostram na figura 36-1

(com um aspecto que lembra um dragão cospe-fogo pronto a devorar as tenras

criancinhas. Não se assuste. De facto, como verá, o dragão de hálito sulforoso revela-

se um obediente cãozinho).

Page 29: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 29

Figura 37-1. Selecção de um ficheiro no TeXnic.

O primeiro passo é editar uma “template”, um ficheiro que tem um exemplo típico,

que depois podemos modificar e adaptar ao nosso caso (Confúcio disse: “Há três

maneiras para chegar ao conhecimento: A experiência, o mais duro, a imitação, o mais

fácil e a inteligência, o mais nobre.” Neste caso estamos a aprender por imitação. Não

é o mais nobre mas é o que melhor funciona aqui.).

No desktop do seu computador, no lado superior esquerdo tem uma pasta

denominada “LATEX-Teste”, que tem um ficheiro tipo denominado LaTex1.tex. Copie-o

para o seu directório de trabalho, não edite o ficheiro nesta pasta por forma a que os

seus colegas de outros grupos o possam usar.. Na barra superior do lado esquerdo da

figura 36-1 clique em “file” e depois, tal como indicado na figura 37-1, escolha “Open”

e “File” e navegue até encontrar o directório na sua área de trabalho.

Figura 38-1. Botões para gerar um ficheiro pdf a partir de um ficheiro de comandos de

latex (extensão .tex) no TeXnic.

Para gerar o documento em pdf, clique no botão de MakeFile da figura 38-1 (que gera

um ficheiro com o documento em formato dvi), e depois no botão com a lupa (que a

Page 30: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 30

partir do dvi gera o pdf). Alternativamente, pode clicar no botão mais à direita da

figura 38-1, que executa as duas funções.

O ficheiro de comando em latex

Observe o ficheiro LaTex1.tex que contém os comando que geram o documento.

Observe o conteudo deste ficheiro.

A primeira linha é

\documentclass[a4paper,12pt]{article}

As palavras começadas por \ são comandos. Neste caso o comando define a classe de

documentos (artigo, relatório, livro, etc.) que se vai usar (article) e define alguns

parâmetros (a dimensão do papel, que é A4 e o tamanho da letra normal, que é 12pt).

A segunda linha é

\usepackage{graphicx}

Esta instrução declara que vão ser usadas funções do pacote graphix, que permite a

inclusão de figuras.

O documento propriamente dito vem descrito entre as instruções

\begin{document}

e

\end{document}

Esta descrição consta do texto, com alfumas instruções de controlo. Por exemplo,

\emph coloca em itálico tudo o que vem a seguir entre parêntesis de chaveta. O

comando {\bf Texto a colocar em negrito} gera texto em negrito (“bold face”).

Note que os saltos de linha não são interpretados como um parágrafo. Para fazer

parágrafo deverá inserir uma linha em branco. Se colocar várias linhas em branco elas

são ignoradas para além da primeira.

O LATEX distingue o texto corrido do modo matemático. Existem várias maneiras de

inserir equações. Três das principais são:

Colocar a equação entre símbolos $. Isto coloca a equação em linha com o

texto e não a numera. Por exemplo, $\delta > 0$ escreve a letra grega delta e a

seguir >0.

Colocar a equação entre \[ e \]. Neste caso a equação é colocada numa linha

separada, mas não é numerada.

Page 31: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 31

Colocar a equação entre os comandos \begin{equation} e \end{equation}.

Neste caso a equação é colocada numa linha à parte (tal como no caso

anterior) e é numerada. Para referirmos a equação, entre estes dois comandos

podemos colocar o comando \label{nome da equação} em que “nome da

equação” é uma sequência alfanumérica pela qual a equação pode ser referida.

Se, no texto incluirmos o comando \ref{ nome da equação}, o que acontece é

que o LATEX irá substitui-lo pelo número da equação. Esta é uma das

características mais poderosas do LATEX.

Há comandos para a totalidade dos símbolos matemáticos, embora alguns estejam

definidos em bibliotecas adicionais que devem ser incluídas com o comando

\usepackage (colocado antes de \begin{document}). Por exemplo

\usepackage{amsfonts}

\usepackage{amssymb}

Incluem símbolos matemáticos muito comuns. As barras da figura 36-1 incluem botões

que, se clicados, geram automaticamente no texto os comandos dos símbolos que

representam, por exemplo letras gregas. Acima vimos já o exemplo da letra grega delta

que é gerada com o comando \delta .

Um outro comando útil é o que permite gerar secções, numeradas automaticamente.

Este comando é

\section{Nome da Secção}

Em que “Nome da Secção” é o argumento e constitui o texto que quer incluir como

título.

Acentos e cedilhas

Para escrever sinais gráficos, podem usar-se os seguintes comandos em modo não

matemático:

ç -- \c{c}

ã -- \~a

é -- \’e

à -- \`a

Alternativamente, pode incluir-se entre os pacotes usados (logo no início, antes de

\begin{document}

\usepackage[latin1]{inputenc}

Page 32: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 32

e usar as teclas normais para inclusão de sinais gráficos.

Faça algumas experiências para testar o LATEX. Numa fase inicial faça apenas uma

alteração de cada vez. Compile a cópia da template. Altere a cópia, mudando por

exemplo algumas palavras ou incluindo secções e compile. Inclua algumas secções.

Incluir figuras no LATEX

A inclusão das figuras faz-se com a sequência de comandos

\begin{figure}[h]

\includegraphics[width=0.5\linewidth]{noaprior.eps}

\end{figure}

Esta sequência insere no texto a figura descrita no ficheiro noapriori.eps

Se quiséssemos acrescentar uma legenda, acrescentaríamos (antes de \end{figure}) o

comando

\caption{Legenda exemplificativa.}

em que “Legenda exemplificativa.” É o texto que aparece na legenda. Podemos

também incluir a instrução \label, explicada acima a propósito das equações, para

podermos referir a figura.

Os ficheiros gráficos que podem ser incluídos no LATEX podem ser variados (mas

requerem uma biblioteca diferente que deve ser declarada no início). Neste exemplo

consideramos ficheiros de formato eps .

Há programas que geram directamente gráficos na forma de ficheiros eps

(posteriormente veremos um exemplo ligado ao MATLAB). Neste trabalho, precisamos

de incluir figuras que correspondem a pedaços do écran do computador (atenção: não

tenha a tentação de usar um martelo para partir o monitor!). Para tal, podemos fazer o

seguinte:

1. Mantendo as teclas CTRL e Alt premidas, carregue uma vez na tecla Prt Sc. Ao

fazer isto memorizou uma cópia do écran.

2. Abra o Paint e prima simultâneamente as teclas CTRL e V. A imagem do écran

aparece na área de trabalho do Paint.

3. Seleccione a parte da imagem que lhe enteressa e faça CTRL C.

4. Abra um novo ficheiro no Paint e faça CTRL V.

5. Guarde este novo ficheiro usando o comando “Guardar como” no formato JPG.

6. Abra o GIMP. No GIMP, abra o ficheiro que gerou no ponto 5. Em seguida faça

export, escolhendo previamente a extensão eps para o novo ficheiro.

Page 33: Portfolio MEEC - fenix.tecnico.ulisboa.pt · constituem os “olhos e os ouvidos” do robot e permitem captar informação e comunicá-la ao computador que constitui o “cérebro”

Portfolio MEEC – Guia de Laboratório Pag. 33

O ficheiro assim gerado está em formato eps e pode ser incluído no LATEX, por

exemplo para documentar um programa em NXT-G.

Experimente este procedimento para gerar figuras eps que representam “bocados”

do monitor.

Escrita do relatório

Escreva em LATEX um relatório que documente o programa que permite que o robot

ande sempre em frente e que pare quando encontra um obstáculo, retomando a

marcha quando este é removido. O seu relatório deve satisfazer as seguintes

especificações:

Comprimento máximo 2 páginas.

Número de figuras: Entre 1 (mínimo) e 4.

Deve conter um título apropriado no início.

Deve conter o número e nome de todos os autores.

Deve estar estruturado nas seguintes secções (escolha títulos apropriados):

o Introdução. Contém o objectivo e estrutura do relatório;

o Especificação do programa.

o Descrição do programa e explçicação do seu funcionamento.

o Descrição dos ensaios de validação do programa.

o Conclussões.

Para escrever o relatório em LATEX, copie o ficheiro template para um ficheiro com o

nome Rel1-XXXXXX-XXXXXX-XXXXXX.tex, em que XXXXX são os números dos alunos

que compõem o grupo, e em seguida edite-o para incluir o seu relatório. Este ficheiro,

e o pdf gerado a partir dele, deverá ser depois enviado ao professor que lecciona a sua

aula de laboratório (pergunte-lhe qual o seu endereço de email).

– Fim da sessão 1 –