Algoritmia, Programação e Robótica - com a TI-Nspire CX II-T

Page 1


E dição EDIÇÃO FCA – Editora de Informática, Lda. FCA – Editora de Informática, Lda. Av. Praia da Vitória, 14 A – 1000-247 Lisboa Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 Tel: +351 213 511 448 fca@fca.pt fca@fca.pt www.fca.pt www.fca.pt istribuição DD ISTRIBUIÇÃO Lidel –– Edições Edições Técnicas, Lda. Lidel Técnicas, Lda. RuaD. D. Estefânia, Estefânia, 183, R/C Dto. – 1049-057 Lisboa Rua 183, R/C Dto. – 1049-057 LISBOA Tel:+351 +351 213 Tel: 213511 511448 448 lidel@lidel.pt lidel@lidel.pt www.lidel.pt www.lidel.pt

LIVRARIA Livraria Av. da Vitória, Vitória,1414 1000-247Lisboa LISBOA Av.Praia Praia da A –– 1000-247 Tel: 213511 511448 448 * Fax: +351 213 173 259 Tel:+351 +351 213 livraria@lidel.pt livraria@lidel.pt Copyright © abril 2016, FCA – Editora de Informática, Lda. Copyright © 2019, FCA – Editora de Informática, Lda. ISBN: 978-972-722-830-0 ISBN edição impressa: 978-972-722-898-0 1.ª abril de 2016 1.ªedição edição impressa: impressa: março 2019 Paginação: Alice Simões Layout: Magnetic Impressão e acabamento: A definir Paginação: Carlos Mendes Depósito Legal N.º Aguardar Impressão e acabamento: Cafilesa – Soluções Gráficas, Lda. – Venda do Pinheiro Capa: José Manuel Reis Depósito Legal n.º 453508/19 Ilustração Montenegro Capa: Joséda M.capa: FerrãoMiguel – Look-Ahead Marcas Registadas de FCA – Editora de Informática, Marcas registadas de FCA – Editora de Informática, Lda. –

Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções. Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções.

Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à Não datanos de responsabilizamos publicação da mesma. por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de publicação da mesma.

Os nomes comerciais referenciados neste livro têm patente registada. Os nomes comerciais referenciados neste livro têm patente registada. Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer

processo eletrónico, fotocópia, digitalização, gravação, sistema no detodo armazenamento disponibilização Reservados todos os direitos.mecânico, Esta publicação não pode ser reproduzida, nem transmitida, ou em parte, porequalquer processo de eletrónico, mecânico, digitalização, gravação, de armazenamento disponibilização de informação, sítio Web, blogue em informação, sítiofotocópia, Web, blogue ou outros, sem sistema prévia autorização escrita eda Editora, exceto o permitido pelo CDADC, ou outros, prévia privada autorização da Editora, exceto para o permitido peloda CDADC, em termos de cópia pela das AGECOP – termossem de cópia pelaescrita AGECOP – Associação a Gestão Cópia Privada, através do privada pagamento respetivas Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas. taxas.


Índice Sobre o livro............................................................................................................ V 1. Noções Básicas de Programação com a TI-Nspire™ CX II-T.................... 1 Introdução.......................................................................................................... 1 1.1 A algoritmia e a utilização de pseudocódigo................................................ 2 1.1.1 Instruções de entrada....................................................................... 4 1.1.2 Instruções de saída........................................................................... 4 1.1.3 Armazenamento de dados................................................................ 5 1.1.4 Estrutura de seleção......................................................................... 5 1.1.5 Estrutura de repetição....................................................................... 6 1.1.6 Exemplos de algoritmos.................................................................... 6 1.2 Programação com a TI-Nspire™ CX II-T..................................................... 7 Exemplo 1.1 – Modo de edição de programas................................................... 7 Exemplo 1.1 (cont.) – Comandos Disp e Request (entrada e saída de dados)..... 9 Exemplo 1.2 – Utilização do ciclo For…EndFor.................................................. 14 Exemplo 1.3 – Utilização da estrutura de seleção If…Then…Else[If]…EndIf (condições)................................................................................. 16 Exemplo 1.4 – Utilização do comando While (ciclo indefinido)............................. 18 Exemplo 1.5 – Codificação do algoritmo da Aplicação 1.2 (Determinar a média de idades)........................................................................ 19 Anexo................................................................................................................. 23 2. Programação com o TI-Innovator™ Hub...................................................... 27 Introdução.......................................................................................................... 27 2.1 Atualização da TI-Nspire™ CX, da TI-Nspire™ CX II-T e do TI-Innovator™ Hub...................................................................................... 29 2.1.1 Transferir as aplicações e os ficheiros de atualização........................ 30 2.1.2 Atualizar a unidade portátil................................................................ 31 2.1.3 Atualizar o TI-Innovator™ Hub.......................................................... 32 2.1.4 Ligar o TI-Innovator™ Hub à calculadora TI-Nspire™ CX II-T............ 33 2.2 Colocar o LED vermelho a piscar................................................................ 34 2.2.1 Uma passagem (ou “piscadela”)........................................................ 35

© FCA

2.2.2 Adicionar uma estrutura de repetição................................................ 37 2.2.3 Tempo e comunicação entre a TI-Nspire™ CX II-T e o TI-Innovator™ Hub........................................................................... 39 III


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

2.3 Exibir cores com o LED RGB...................................................................... 41 2.4 “Um pouco de som, por favor!”................................................................... 45 2.4.1 Emitir um som................................................................................... 46 2.4.2 Um pouco de matemática na música................................................ 48 2.5 Simulação de um sistema de iluminação com interruptor crepuscular......... 50 Anexo................................................................................................................. 53 3. Programação com o TI-Innovator™ Rover................................................... 55 Introdução.......................................................................................................... 55 3.1 Primeiros passos com o TI-Innovator™ Rover............................................. 56 3.2 Exibir cores com o LED RGB do TI-Innovator™ Rover................................ 59 3.3 Construir figuras geométricas...................................................................... 61 3.3.1 Movimento para a frente................................................................... 62 3.3.2 Mudança de direção......................................................................... 62 3.3.3 Construção de um quadrado............................................................ 63 3.3.4 Construção de um triângulo equilátero.............................................. 64 3.3.5 Construção de um polígono regular.................................................. 65 3.4 Alguns passos de dança com o TI-Innovator™ Rover................................. 66 3.5 Sistema de anticolisão frontal...................................................................... 69 3.6 Cores que comandam o TI-Innovator™ Rover............................................ 72 Anexo................................................................................................................. 74 4. Adição de Sensores ao TI-Innovator™ Hub através do TI-SensorLink..... 75 Introdução.......................................................................................................... 75 4.1 Conexão do TI-SensorLink.......................................................................... 76 4.2 Comunicação com o TI-SensorLink............................................................ 78 4.2.1 Sensor de temperatura (Stainless Steel Temperature Probe)............. 78 4.2.2 Sensor de pH (pH Sensor)................................................................ 78 4.2.3 Sensor de pressão (Gas Pressure Sensor)........................................ 78 4.2.4 Sensor de força (Dual-Range Force Sensor)...................................... 79 4.3 Aplicações com o TI-SensorLink................................................................. 79 Exemplo 4.1 – Jogo: Quem é o mais forte? (utilização do sensor de força)......... 79 Exemplo 4.2 – Protótipo de sistema de controlo de despressurização do ar durante um voo (utilização do sensor de pressão)....................... 84 Exemplo 4.3 – Piscina: Controlar a temperatura do banho (utilização do sensor de temperatura)............................................................... 86 Anexo................................................................................................................. 90

IV


Sobre o livro Este livro destina-se não só a alunos e professores dos ensinos básico e secundário, mas também a todos aqueles que desejam aventurar-se no mundo da algoritmia e da programação, em articulação com a utilização de calculadoras gráficas e todas as tecnologias associadas ao sistema TI-Nspire™ CX II-T. Escrito numa linguagem clara e acessível, permite uma iniciação simples a este tema, não descurando, no entanto, a existência de diversas atividades destinadas a utilizadores mais experimentados. No Capítulo 1 (“Noções Básicas de Programação com a TI-Nspire™ CX II-T”), são apresentados os fundamentos da algoritmia e da programação que, apesar de numa forma introdutória, permitem ao leitor desenvolver competências suficientes para a elaboração de verdadeiros programas informáticos, com vista à resolução de problemas do dia a dia e, particularmente, em contexto de sala de aula. No Capítulo 2 (“Programação com o TI-Innovator™ Hub”), é apresentado o TI-Innovator™ Hub, o principal acessório do sistema TI-Innovator™, que expande funcionalidades da calculadora gráfica. São dados passos progressivos que consolidam os conceitos adquiridos no primeiro capítulo e permitem ao leitor explorar os diferentes componentes do Hub. Seguindo uma abordagem multidisciplinar, na qual são tratados temas que vão desde a geometria, a luz e a cor até às ondas, frequências e notas musicais, o leitor é dotado de competências essenciais para a construção de programas com o Hub e de atividades que podem servir de motivação e semente para o desenvolvimento de projetos interdisciplinares.

© FCA

No Capítulo 3 (“Programação com o TI-Innovator™ Rover”), a matemática, as ciências e a programação ganham uma dimensão de aprendizagem mais dinâmica na sala de aula com a introdução do Rover, um veículo robótico programável, assessório do sistema TI-Innovator™. O Rover permite desenvolver atividades ainda mais estimulantes, tais como percorrer trajetos e usar o sensor ultrassónico para evitar obstáculos ou usar um sensor de cor para seguir caminhos e tomar decisões. Os componentes incorporados no Rover expandem, assim, as combinações e as possibilidades já oferecidas pelo sistema TI-Innovator™, tornando acessíveis na sala de aula a engenharia e a resolução criativa de problemas reais. Por último, o Capítulo 4 (“Adição de Sensores ao TI-Innovator™ Hub através do TI-SensorLink”) complementa a abordagem multidisciplinar que caracteriza os capítu­ los anteriores, possibilitando a utilização de sensores adicionais aos existentes no TI-Innovator™ Hub e no TI-Innovator™ Rover, pela inclusão do TI-SensorLink. A título de exemplo, refira-se o desenvolvimento de projetos funcionais para o controlo automático da temperatura e do pH da água de uma piscina ou de um protótipo do sistema para a libertação automática das máscaras de oxigénio nos aviões comerciais.

V


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

Desta forma, consideramos que este livro constitui uma ferramenta de excelência para o desenvolvimento de projetos de âmbito STEM (Science, Technology, Engineering, and Mathematics)1, dado que ao leitor é possibilitado o desenvolvimento de projetos concretos, envolvendo todas estas áreas do saber e do saber fazer, aplicadas em situações reais, o que incentiva a curiosidade, a criatividade, a partilha de ideias e a colaboração, contribuindo de forma inquestionável para o desenvolvimento de competências essenciais nos alunos e professores do século XXI.

R1

1

Ciência, Tecnologia, Engenharia e Matemática. VI


1

Noções Básicas de Programação com a TI-Nspire™ CX II-T

Introdução As competências computacionais revelam-se cada vez mais imprescindíveis na eficaz resposta aos desafios profissionais e pessoais da sociedade atual, sendo expectável que tal importância seja mais expressiva nos anos que se seguem. Efetivamente, a interação com o mundo digital que nos rodeia há muito ultrapassou a mera utilização de um sistema user-friendly, geralmente com um número bastante limitado de opções standard predefinidas, passando a ser solicitado ao utilizador um papel mais ativo, de modo a contemplar a miríade de funcionalidades de um simples eletrodoméstico, como um robô de cozinha, ou do computador de bordo de um automóvel moderno. Em particular, as competências em termos da algoritmia e da programação de computadores, ainda que de uma forma básica, serão certamente fundamentais em qualquer emprego do futuro.

© FCA

Com a massificação dos computadores e dos sistemas operativos inerentes, o raciocínio computacional e a algoritmia deixaram de estar ao alcance de apenas uma minoria de técnicos altamente especializados, passando a fazer parte do quotidiano de um público cada vez mais vasto (de tal forma que, desde 2015, os alunos dos 3.º e 4.º anos de escolaridade das escolas públicas portuguesas desenvolvem aprendizagens de iniciação à programação, num projeto-piloto promovido pela Direção-Geral da Educação). Ao longo do texto, será aplicada uma metodologia que permitirá ao leitor iniciar-se na aventura da programação e da algoritmia, adquirindo competências para que seja capaz 1


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

de criar verdadeiros programas de computador autonomamente. Tal possibilitará a sua gradual evolução para um grau de complexidade cujos limites serão a imaginação e a dedicação do leitor ou, numa situação extrema, a capacidade técnica do sistema de programação que iremos utilizar.

1.1 A algoritmia e a utilização de pseudocódigo Apesar de o conceito de algoritmo existir desde a Antiguidade, tendo sido usado pelos matemáticos gregos há mais de dois mil anos, só a partir de meados do século XX é que a massificação dos computadores e das ciências da computação levou a uma mais ampla divulgação do seu significado, sendo considerado o fundamento de qualquer programa de computador, simples ou complexo. Pode definir-se algoritmo como uma sequência de instruções inequívocas e exequíveis, executadas eletrónica ou mecanicamente, que permite a resolução de determinado problema ou a realização de determinada tarefa. O algoritmo pode também incluir ciclos de repetição ou a análise de circunstâncias que condicionam, objetivamente, a concretização do mesmo. Consideremos que se pretende substituir uma lâmpada fundida numa habitação. Para um adulto sem limitações motoras ou cognitivas, trata-se de uma tarefa que não carece da definição de um algoritmo particularmente complexo, adotado geralmente de forma não consciente. Este algoritmo pode ser, por exemplo: SE a lâmpada não acende ENTÃO: Retirar a lâmpada fundida; Colocar a lâmpada nova; FIM DE TAREFA

Neste caso, o algoritmo é bastante simplista, pois assumimos que as restantes informações, tais como avaliar a necessidade de utilização de uma escada ou perceber como remover a lâmpada, são facilmente processadas e levadas a cabo pelo operador, já que o mesmo é dotado de inteligência natural1, tendo, por isso, liberdade e capacidade para avaliar o contexto que o rodeia, processar a informação recebida e decidir de forma autónoma sobre o procedimento a efetuar. Suponhamos, agora, que se pedia a mesma tarefa a uma criança ou a alguém que, por qualquer circunstância, nunca tivesse contactado com “tecnologias” como uma escada, a eletricidade e/ou uma lâmpada. Certamente que o detalhe das instruções contidas no algoritmo teria de ser muito maior, explicitando, por exemplo, como utilizar a escada, quantos degraus subir, para que lado se desenrosca a lâmpada ou como se insere uma lâmpada nova. No caso de um robô convencional controlado por computador, seria necessário acrescentar todos os ínfimos detalhes inerentes à operação, tais como voltar a   Por oposição ao termo “inteligência artificial”, na senda dos mais recentes avanços a nível informático.

1

2


Noções Básicas de Programação com a TI-Nspire™ CX II-T

descer os degraus depois de concluída a tarefa de substituição da lâmpada. Poder-se-ia pensar, por exemplo, no seguinte: SE a lâmpada não acende ENTÃO: MOVER a escada para a posição abaixo da lâmpada; REPETIR [as operações abaixo] enquanto a altura for insuficiente: SUBIR um degrau; ADICIONAR uma unidade ao número de degraus subidos e RETER esta informação; VERIFICAR altura. Caso seja suficiente, abandonar este ciclo; CONTINUAR CICLO DE REPETIÇÃO [enquanto for necessário]; AGARRAR a lâmpada fundida; REPETIR [as operações abaixo] enquanto não conseguir retirar a lâmpada: RODAR a lâmpada fundida 10 graus no sentido contrário aos ponteiros do relógio; VERIFICAR a fixação da lâmpada. Caso esteja solta, abandonar este ciclo; CONTINUAR CICLO DE REPETIÇÃO [enquanto for necessário]; POUSAR a lâmpada fundida; AGARRAR a lâmpada nova; POSICIONAR a lâmpada nova no casquilho; REPETIR [as operações abaixo] até detetar que a lâmpada está fixa: RODAR a lâmpada fundida 10 graus no sentido dos ponteiros do relógio; VERIFICAR o aperto da lâmpada. Caso seja suficiente, abandonar este ciclo; CONTINUAR CICLO DE REPETIÇÃO [enquanto for necessário]; DESCER o número de degraus da escada que foram subidos [cuja informação foi retida em operação anterior]; FIM DE TAREFA

Neste caso, o nível de detalhe poderia ser considerado mais próximo do que o necessário para comandar uma máquina controlada por computador, assumindo-se, assim, como um algoritmo perfeitamente válido. A dificuldade seguinte2 prende-se com o facto de a linguagem utilizada para escrever o algoritmo não ser certamente codificada e operacionalizada de maneira equivalente por todos os computadores ou sistemas digitais. É por esta razão que se desenvolveram diversas linguagens de programação3, as quais, ao adotarem codificações que não dependem da máquina de destino, tornaram possível a programação das mesmas, em qualquer parte do mundo e independentemente da linguagem falada no país de origem ou de destino do programa informático. Com o objetivo de simplificar a aprendizagem da algoritmia e da programação, especialmente para não falantes de língua inglesa (a partir da qual a generalidade das linguagens de programação é desenvolvida), é usual adotar-se o uso de pseudocódigo. Trata-se de uma forma genérica de escrever um algoritmo, através de uma linguagem intermédia   Ao longo do texto, navegaremos de dificuldade em dificuldade, até atingirmos um nível em que aplicar uma linguagem de programação se torne praticamente tão natural como escrever uma carta através de um processador de texto.

© FCA

2

Tais como Java, Python, C ou BASIC, entre outras. Este livro será desenvolvido com recurso à linguagem de programação TI-BASIC, desenvolvida pela Texas Instruments.

3

3


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

– entre a linguagem natural e uma linguagem de programação –, mas bastante simples e nativa para quem a utiliza. De certa forma, foi o que aplicámos no algoritmo apresentado (as instruções do pseudocódigo foram apresentadas sob a forma de letras maiúsculas). Deste modo, o “salto” para uma linguagem de programação efetiva torna-se bastante mais simples, sendo reduzido a uma espécie de tradução dos termos usados no pseudocódigo para os comandos específicos da linguagem de programação utilizada4. Apesar de, a nosso ver, o pseudocódigo apresentado ser legível por qualquer falante de língua portuguesa, não é, de facto, geral e único. Assim, têm sido apresentadas diversas compilações de propostas de pseudocódigo em língua portuguesa, com o intuito de conferir alguma normalização ao seu uso, evitando-se eventuais erros devido a interpretações erradas dos comandos. No entanto, atendendo à própria definição de pseudocódigo, trata-se de uma linguagem que se destina a ser descodificada por um ser humano e não por uma máquina, pelo que, a este nível, a normalização da linguagem não é indispensável na maioria dos casos, contrariamente ao sucedido quando a codificação deve ser descodificada por uma máquina ou um computador. Apresentam-se, de seguida, alguns exemplos de instruções em pseudocódigo, com as quais o leitor poderá elaborar um número considerável de diferentes algoritmos, tal como demonstraremos na secção 1.1.6.

1.1.1 Instruções de entrada Finalidade: Utilizadas para pedir dados ao utilizador do programa. Sintaxe:

LER (nome da variável)

Exemplo:

LER (idade)

1.1.2 Instruções de saída Finalidade: Utilizadas para mostrar dados ao utilizador do programa. Sintaxe:

ESCREVER (Texto entre " ",nome da variável)

Exemplo:

ESCREVER ("A sua idade é",idade) 4

Efetivamente, a linguagem de programação TI-BASIC, presente em todas as calculadoras programáveis da Texas Instruments, pode considerar-se uma espécie de pseudocódigo em língua inglesa, dada a simplicidade e a inteligibilidade dos comandos utilizados. 4


Noções Básicas de Programação com a TI-Nspire™ CX II-T

1.1.3 Armazenamento de dados Finalidade: Na execução de um programa, é usual a necessidade de armazenamento de dados numéricos ou alfanuméricos (texto), seja em passos intermédios do programa ou para apresentação de resultados finais. Os dados são armazenados em variáveis5 através do operador muitas vezes representado em algoritmia por . Sintaxe:

variável←expressão numérica ou valor

Exemplo:

numerodias←365*idade6

1.1.4 Estrutura de seleção Finalidade: Realiza um conjunto alternativo de instruções, dependendo do cumprimento ou não de determinada condição. Sintaxe:

SE [condição] ENTAO Instrução…. Instrução…. SENAO Instrução…. Instrução…. FIMSE

Exemplo:

© FCA

SE idade>65 ENTAO ESCREVER ("Atingiu a idade de reforma") SENAO ESCREVER ("Ainda não atingiu a idade de reforma") FIMSE

5

Existem regras para o uso e a definição de variáveis, cuja abordagem ultrapassa o âmbito deste livro.

6

De forma a evitar eventuais problemas de compatibilidade de programas escritos em português com máquinas pensadas para outros países, é boa prática evitar o uso de caracteres não universais, como acentos ou cedilhas, nas linhas de código. Excetua-se o texto colocado entre aspas, que não é descodificado pelo programa, sendo apresentado tal como foi introduzido. No âmbito deste livro, optámos por escrever, utilizando também a ortografia portuguesa, termos que servem apenas para o leitor perceber os casos apresentados, dado que estes serão substituídos por termos sem caracteres não universais aquando da execução do código ou do pseudocódigo em causa. Para melhor identificação destas situações, o texto encontra-se formatado em itálico. Por exemplo, em variável ← expressão numérica ou valor, o leitor deverá substituir o texto variável pela designação da variável por si escolhida, sem acentos nem cedilhas. Por esta razão, designámos a variável referente ao número de dias correspondente à idade por numerodias e não númerodias. 5


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

1.1.5 Estrutura de repetição Finalidade: Processa uma sequência de instruções tantas vezes quantas as estabelecidas pela condição a que está sujeita. Sintaxe:

PARA [início contador] ATE [fim contador] FAZER Instrução…. Instrução…. FIMPARA

Exemplo:

PARA contador=1 ATE 5 FAZER ESCREVER ("Esta frase será escrita cinco vezes…") FIMPARA

1.1.6 Exemplos de algoritmos Utilizemos o que acabámos de descrever para estruturar um algoritmo destinado ao cálculo da área de um triângulo, conhecidos o comprimento da sua base e da sua altura. Sendo a área do triângulo calculada pelo semiproduto do comprimento da base e da altura, teremos de solicitar ao utilizador essa informação, efetuar o produto destes dois valores dividido por 2 e, por fim, apresentar o resultado. Algumas instruções destinadas à identificação do programa ou à organização da informação, entre outras, deverão ser acrescidas a estas operações. Poderia idealizar-se, por exemplo: ESCREVER ("Determinação da área de um triângulo") ESCREVER ("Introduza a medida da base") LER base ESCREVER ("Introduza a medida da altura") LER altura area←basexaltura/2 ESCREVER ("A área do triângulo é",area)

APLICAÇÃO 1.1 Elabore um algoritmo para determinar as raízes reais de um polinómio de 2.º grau, sendo pedidos ao utilizador os coeficientes do mesmo. (RESOLUÇÃO EM ANEXO)

6


Noções Básicas de Programação com a TI-Nspire™ CX II-T

APLICAÇÃO 1.2 Elabore um algoritmo para determinar a média de idades de um determinado número de indivíduos, sendo pedidos ao utilizador o número de indivíduos e as respetivas idades. (RESOLUÇÃO EM ANEXO)

1.2 Programação com a TI-Nspire™ CX II-T A utilização da unidade portátil TI-Nspire™ CX II-T para a elaboração de programas de computador é extremamente simples, permitindo a construção de programas de diferentes graus de complexidade. Esta calculadora gráfica possibilita ao utilizador, por um lado, automatizar procedimentos utilizados na resolução de diversos problemas em contexto real e, por outro, desenvolver competências que permitem uma sólida abordagem à iniciação da programação, facilmente transponíveis para linguagens e sistemas de programação mais complexos.

EXEMPLO 1.1

Modo de edição de programas

Para realizar o nosso primeiro programa, vamos tomar como base o algoritmo desenvolvido na secção 1.1.6 para a determinação da área de um triângulo. Para iniciar a edição de um novo programa, a partir do ecrã inicial da unidade portátil TI-Nspire™ CX II-T (acessível pressionando a tecla ), deveremos escolher sucessivamente as opções (Novo) | (Adicionar Editor de programas) | (Novo), tal como ilustrado nas Figuras 1.1 e 1.2.

Figura 1.2 – Adicionar editor de programas

© FCA

Figura 1.1 – Ecrã principal da unidade portátil TI-Nspire™ CX II-T

7


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

Executando estes passos, surge uma caixa de diálogo para a introdução do nome do programa7 (neste caso, poderemos introduzir “area”), bastando selecionar em seguida com o cursor OK ou premir (Figura 1.3)8. Automaticamente, é criada uma página de edição de programas, iniciada pela linha Prgm e finalizada pela linha EndPrgm, entre as quais iremos inserir as linhas de código correspondentes ao nosso algoritmo (Figura 1.4).

Figura 1.3 – Nome do programa

Figura 1.4 – Editor de programas

Como o leitor certamente irá reparar, as linhas de código a introduzir serão bastante próximas da linguagem usada na elaboração do algoritmo, traduzidas para inglês. Para facilitar a escrita dos termos corretos para cada função pretendida, a TI-Nspire™ CX II-T apresenta, de forma estruturada, um conjunto de linhas de código semiescritas, pelo que o utilizador apenas precisa de selecioná-las e de acrescentar a informação específica pretendida9. O acesso a estas instruções faz-se através da tecla , estando a maior parte dos comandos utilizados concentrada nas opções 3 (Definir Variáveis), 4 (Controlo), 5 (Transferências) e 6 (Entrada/Saída) (Figura 1.5).

Figura 1.5 – Menu de programação   A partir do qual poderemos, a posteriori, solicitar a sua execução.

7

Para alternar rapidamente entre os vários campos de uma caixa de diálogo (neste caso, alternando entre Nome, Tipo, Acesso à biblioteca, OK e Cancelar), basta premir sucessivamente a tecla .

8

Um utilizador mais experiente poderá digitar as linhas de código com o teclado da unidade portátil, sendo o resultado igual.

9

8


2

Programação com o TI-Innovator™ Hub

Introdução Neste capítulo, vamos descobrir as potencialidades do TI-Innovator™ Hub, a peça central do sistema TI-Innovator™, que expande as funcionalidades das calculadoras gráficas Texas Instruments e que, com estas, forma a combinação ideal para desenvolver projetos de engenharia, tornando a programação e a resolução de problemas reais, acessíveis aos alunos na sala de aula.

© FCA

O TI-Innovator™ Hub é disponibilizado numa caixa resistente e segura, operando com voltagens muito baixas (5 volts – V, no máximo), e é composto pelo microcontrolador MSP-EXP432P401-ET TI LaunchPad™, usado pela indústria para testar e desenvolver produtos que encontramos no dia a dia (Figura 2.1).

Figura 2.1 – TI-Innovator™ Hub 27


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

Integrados nos seus componentes eletrónicos, dispomos de um díodo emissor de luz (Light Emitting Diode – LED) multicolor (RGB) e de um LED vermelho, bem como de um sensor de luz (Figura 2.2).

Figura 2.2 – Sensor de luz

O TI-Innovator™ Hub dispõe ainda de: três portas de entrada [IN 1, IN 2, IN 3 (Figura 2.3 – esquerda)], para conectar outros sensores; três portas de saída [OUT 1, OUT 2 e OUT 3 (Figura 2.3 – centro)], para conectar, por exemplo, pequenos motores; relés eletrónicos; e um adaptador de placa de ensaio com 20 pinos [BREADBOARD (BB) (Figura 2.3 – direita)], para conectar outros componentes de entrada ou de saída.

Figura 2.3 – Portas de entrada (esquerda), portas de saída (centro) e placa de ensaio com 20 pinos (direita)

Por fim, na parte inferior, pode encontrar-se um altifalante (Figura 2.4).

Figura 2.4 – Altifalante

Para programar e interagir com o sistema TI-Innovator™, pode optar-se pela linguagem de programação TI BASIC ou pela linguagem Lua. Como extensões do sistema TI-Innovator™, a Texas Instruments disponibiliza o TI-Innovator™ Pack Módulo I/O (Figura 2.5 – esquerda), que contém vários componentes com cabo removível (sensor de luz, LED, motor de vibração, servomotor e módulo de sensor ultrassónico), e o TI-Innovator™ Pack de placas de ensaio (Figura 2.5 – direita), 28


Programação com o TI-Innovator™ Hub

com uma placa de ensaio e vários componentes para explorar (LED, resistências, termístores, medidores de potência, um pequeno motor de corrente contínua, entre outros).

Figura 2.5 – Pack Módulo I/O (esquerda) e Pack de placas de ensaio (direita)

2.1 Atualização da TI-Nspire™ CX, da TI-Nspire™ CX II-T e do TI-Innovator™ Hub Para podermos utilizar o TI-Innovator™ Hub, devemos primeiro certificar-nos de que a calculadora tem instalado o sistema operativo com a versão 4.3 ou superior. Para verificarmos a versão do sistema operativo presente na nossa calculadora, devemos aceder ao ecrã principal, premindo a tecla , escolher a opção 5 (Definições...) e, seguidamente, a opção 4 (Estado...) (Figura 2.6).

Figura 2.6 – Estado da unidade portátil TI-Nspire™ CX II-T

© FCA

Mesmo que a versão instalada seja a 4.3 ou superior, é aconselhável atualizar-se a calculadora para a última versão disponível com alguma regularidade. Para assegurarmos o máximo de compatibilidade e podermos utilizar as funcionalidades mais recentes, é também aconselhável atualizar-se o Hub para a última versão. Esta atualização consiste no envio do programa1 Sketch, através da aplicação TI-Innovator™ Hub Update Software. 1

É comum designar-se este programa de ligação por firmware. 29


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

Vamos apresentar os procedimentos a efetuar para a atualização da unidade portátil e do Hub.

2.1.1 Transferir as aplicações e os ficheiros de atualização A atualização do sistema TI-Innovator™ é um processo simples que poderá ser efetuado em qualquer computador, através da instalação de duas aplicações que poderão ser encontradas no portal educacional da Texas Instruments, em https://education.ti.com/ pt/activities, no separador Downloads e Atividades (Figura 2.7).

Figura 2.7 – Portal educacional da Texas Instruments

Os ficheiros necessários para atualizar a unidade portátil e o Hub são os seguintes: •  Software TI-Nspire™ CX Premium versão Professor; •  Software de atualização do TI-Innovator™ Hub 1.0 (ou superior); •  TI-Innovator™ Sketch 1.3 (ou superior).

30


3

Programação com o TI-Innovator™ Rover

Introdução No Capítulo 2, foram dados os primeiros passos para uma sólida abordagem inicial à programação com o Innovator™ Hub. Neste terceiro capítulo, vamos explorar um veículo robótico programável – o TI-Innovator™ Rover –, um acessório do sistema TI-Innovator™ que coloca a matemática, a ciência e a programação em movimento. O Rover está pronto para ser ligado ao TI-Innovator™ Hub, que fica alojado na base do Rover, e à calculadora TI-Nspire™ CX II-T, que fica no topo do Rover. Uma bateria recarregável e durável dá energia aos dois motores do Rover. O veículo também inclui um sensor de cor, um sensor de distância (sensor ultrassónico), um díodo emissor de luz (Light Emmiting Diode – LED), um suporte para marcador para desenhar o caminho em papel e um giroscópio.

© FCA

Os componentes incorporados no Rover podem ser codificados para desenvolver atividades estimulantes, tais como: percorrer trajetos, colocar o seu LED RGB a piscar, usar o sensor ultrassónico para evitar obstáculos, desenhar caminhos com um marcador e usar um sensor de cor para seguir caminhos e tomar decisões. Mas não ficamos por aqui! O Rover permite utilizar as portas de entrada e saída do Hub, adicionando novas possibilidades e atividades interativas com o mundo que nos rodeia. Programar com o Rover permite criar uma dimensão de aprendizagem mais dinâmica na 55


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

sala de aula, com atividades interdisciplinares que incentivam a curiosidade, a partilha de ideias e a colaboração, promovendo a resolução criativa de problemas. Ao longo deste capítulo, iremos explorar alguns exemplos com o Rover que poderão servir de motivação e de semente para o desenvolvimento de projetos interdisciplinares ou para a introdução à programação e à robótica.

3.1 Primeiros passos com o TI-Innovator™ Rover Antes de começar a pôr o Rover em movimento, temos de o ligar corretamente ao TI-Innovator™ Hub. Comecemos por reunir os seguintes componentes: •  TI-Innovator™ Rover; •  Cabo de fita da placa de ensaio (fornecido com o Rover); •  TI-Innovator™ Hub; •  Unidade portátil TI-Nspire™ CX II-T; •  Cabo mini-USB de tipo A/mini-USB de tipo B (fornecido com a unidade portátil). Depois, devem ser executados os seguintes passos: 1. Em primeiro lugar, ligar o Rover e verificar o estado da bateria, observando o indicador de carga com quatro luzes (Figura 3.1).

Figura 3.1 – Botão Power e indicador de carga do Rover

2. Carregar a bateria da unidade portátil e a bateria do Rover (se necessário) (cf. Figura 3.2).

56


Programação com o TI-Innovator™ Rover

Figura 3.2 – Carregamento da bateria do Rover

3. Atualizar o sistema operativo da unidade portátil e do Hub (se necessário), seguindo os passos da secção 2.1 (Capítulo 2). 4. Ligar o cabo de fita à placa de ensaio do Hub (Figura 3.3). Importante: o pino do fio vermelho deverá ficar ligado no orifício de 5 volts (V) do Hub.

Figura 3.3 – Placa de ensaio do Hub

5. Inserir o Hub no suporte do Rover (Figura 3.4).

© FCA

Figura 3.4 – Conexão do Hub ao Rover

57


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

6. Ligar o cabo de fita da placa de ensaio ao Rover (Figura 3.5).

Figura 3.5 – Ligação da fita da placa de ensaio ao Rover

7. Ligar o cabo I2C na placa de circuito do Rover, na porta 1 (Figura 3.6).

Figura 3.6 – Porta 1 na placa de circuito do Rover

8. Ligar a outra extremidade do cabo I2C à respetiva porta do Hub (Figura 3.7).

Figura 3.7 – Porta I2C do Hub

9. Colocar a unidade portátil TI-Nspire™ CX II-T no Rover com o ecrã virado para o suporte do marcador. Utilizando o cabo mini-USB fornecido, ligar o conector de tipo B à porta DATA e o conector de tipo A à unidade portátil (Figura 3.8).

58


Programação com o TI-Innovator™ Rover

mini-USB de tipo B

mini-USB de tipo A

Figura 3.8 – Ligação da unidade portátil ao Hub e ao Rover

10. Verificar a luz do Hub e do sensor de cor quando todo o sistema é ligado. Agora, o Rover está pronto para pôr a matemática e a ciência em movimento. Vamos construir, em seguida, alguns exemplos que permitem experienciar uma programação mais elaborada e orientada para o desenvolvimento de projetos multidisciplinares e de robótica.

3.2 Exibir cores com o LED RGB do TI-Innovator™ Rover Neste exemplo, pretendemos adaptar o programa da secção 2.3 (Capítulo 2) para ligar o LED RGB do Rover por certo período de tempo e exibir uma cor escolhida pelo utilizador. Antes de adicionar as linhas de código que comunicam especificamente com o Rover, é necessário enviar a instrução de texto "CONNECT RV", para estabelecer uma ligação entre o Rover e a unidade portátil. A linha de código que efetua a ligação deverá ser escrita da seguinte forma: Send "CONNECT RV"

© FCA

Esta linha de código está acessível em "CONNECT RV"), cf. Figura 3.9.

|

(Hub) |

Figura 3.9 – Opção 8 (Send "CONNECT RV") 59

(Rover (RV)) |

(Send


ALGORITMIA, PROGRAMAÇÃO E ROBÓTICA – COM A TI-NSPIRE™ CX II-T

Na opção 7 (Rover (RV)), também ilustrada na Figura 3.9, está igualmente acessível a linha de código que terminará a ligação estabelecida com o Rover: Send "DISCONNECT RV"

Uma vez estabelecida a ligação entre o Rover e a unidade portátil, o sistema está pronto para receber e executar outras instruções. O leitor recordará que, na secção 2.3, foi utilizada uma linha de código semelhante a Send "SET COLOR eval(r) eval(g) eval(b)" para ligar o LED RGB do Hub e emitir uma cor definida pelo utilizador. A instrução equivalente para ligar o LED RGB do Rover é RV.COLOR e está acessível na opção Send "SET RV.COLOR", através das teclas | (Hub) | (Rover (RV)) | (RV Color) | (RV.COLOR), cf. Figura 3.10.

Figura 3.10 – Instrução Send "SET RV.COLOR"

Tal como na secção 2.3 (Capítulo 2), a instrução Send "SET RV.COLOR" deverá ser completada com os valores da intensidade de cada uma das cores – vermelho, verde e azul –, definidos numa escala de 0 a 255. Como exemplo, a linha completa e correspondente à instrução que liga o LED RGB do Rover pelo período de tempo t passará a ser escrita da seguinte forma: Send "SET RV.COLOR eval(r) eval(g) eval(b) TIME eval(t)"

Da mesma forma, para desligar o LED RGB do Rover, basta considerar intensidades zero: Send "SET RV.COLOR 0 0 0"

Assim, após adicionarmos a linha de código que estabelece uma conexão com o Rover e efetuarmos duas alterações ao programa construído na secção 2.3, o programa passará a interagir com o LED RGB do Rover e assemelhar-se-á ao seguinte: t:=0:r:=0:g:=0:b:=0 © Conectar com o Rover Send "CONNECT RV" Request "Introduza o tempo (s):",t While t≠0 60


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.