Linguagem LOGO para Robótica e Automação (MEC290)

Escrito por Luiz Henrique Corrêa Bernardes

O artigo é de 2002, mas temn uma boa finalidade didática pois na sequência (MEC289) o autor ensina como usar computadores antigos que tenham portas paralelas para o controle de projetos de robótica e automação Neste artigo de 2002 nosso colaborador Luiz Henrique Corrêa Bernardes mostra como isso pode ser feito a partir da a linguagem LOGO.

 

Apresentação:

Este é o primeiro artigo de uma série que irá mostrar como a linguagem LOGO pode ser utilizada para programar o PC no controle de robôs e outros dispositivos para automação.

Com a facilidade de se ter acesso a um PC junto com a linguagem LOGO, de fácil aprendizagem, conseguimos um ótimo resultado no desenvolvimento de programas e interfaces para estes controles.

O PC atualmente está invadindo nossos lares (2002). Com ele conseguimos verificar o nosso saldo bancário, pagar as contas, jogar entre inúmeras outras tarefas. Geralmente lidamos com programas prontos, que colocamos num PC e nos tornamos meros “operadores” deles.

Você já pensou em fazer um desses programas? Difícil! Impossível! Imaginável. Se estivermos falando de um editor de texto complexo ou um jogo simulador de Fórmula 1, realmente será uma tarefa árdua que necessitará de uma equipe com vários programadores experientes.

Mas nem por isso você deve desanimar, pois se fosse assim ninguém começaria a programar computadores.

Este é o papel de nosso site. Vamos incentivar você a descobrir os caminhos para fazer o computador realizar diversas tarefas que você desejar. Legal? É muito legal. Você vai perceber como é interessante essa interação entre você e a máquina e, principalmente, sendo você que tem o controle do processo.

Mas você pode estar se perguntando: Como eles vão fazer que eu faça um programa se eu não sei nada de programação?

A resposta é simples: Quem vai fazer todo o trabalho será você.

Como já dissemos, vamos ser os seus incentivadores.

Nessa série de artigos, vamos falar de teoria, mostrar exemplos práticos e dar sugestões para alteração dos programas.

Como você vai ter “controle” de todo o processo, você vai poder modificar, implementar novas funções e, inclusive, fazer novos programas.

Você deve estar dizendo: Falando assim parece fácil, mas realmente qual o pré-requisito que preciso para fazer tudo isso? Como resposta podemos dizer que além de acesso a um PC que tenha um sistema operacional Windows 95 (O artigo é de 2002.) ou superior, e o que mais será necessário e ser persistente, e não desanimar nas primeiras dificuldades.

Pois o processo de aprendizagem de programação e baseado na tentativa, erro e correção do erro. É o que costumamos dizer de “Erra, erra, erra, erra, acerta”, o que significa que serão muito mais erros que acertos! Por isso ser persistente!

Vamos começar. Mas por onde? Simples. Pelo PC. Vamos descrever, de uma maneira simples, o seu funcionamento e suas principais partes.

Em seguida, vamos falar de linguagens de programação, e é ai que entra o LOGO. Após isso estaremos prontos para fazer os nossos primeiros programas para controlar robôs e outros dispositivos para automação.

O PC (do inglês Personal Computer - traduzindo: Computador Pessoal) é uma máquina digital feita para processar dados na forma binária, isso significa que ele entende somente zeros e uns e nada mais. As instruções (código de máquina) que a CPU do PC executa são combinações de zeros e uns (ou um número binário). Veja na figura 1 as principais partes de um PC.

 

Principais aprtes que compõem um PC.
Principais aprtes que compõem um PC.

 

 

A CPU (do inglês Central Processing Unit - ou Unidade de Processamento Central) é o coração do PC. É a responsável por executar as sequências de instruções do processador. Na figura 1 você pode analisar que temos mais coisas além da CPU. Entre os outros componentes importantes estão os vários tipos de memória, que são lugares onde armazenamos dados na forma de bytes.

Portanto um disco rígido (em inglês HD de “Hard Disk”), a unidade de disco flexível (em inglês floppy disk) e a memória RAM são lugares onde armazenaremos dados e programas em um PC.

Para simplificarmos como uma memória funciona para a CPU, podemos imaginar um imenso prédio (figura 2) onde cada andar armazena um dado (byte), portanto para podermos guardar ou pegar o dado necessitamos saber qual andar do dado.

 

Armazenagem dos dados na CPU.
Armazenagem dos dados na CPU.

 

 

Isso é chamado de endereçamento, que significa que a CPU consegue manusear (ler e escrever) os dados corretamente porque ela consegue endereçar cada posição de memória.

 

BINÁRIO, BIT E BYTES

Na base decimal temos 10 elementos (0 a 9) para representar números quando necessitamos representar um número maior que 9 necessitamos utilizar 2 ou mais desses elementos. Na base binária o processo é o mesmo, só que temos somente 2 elementos (0 e 1), portanto se quisermos representar um número maior que 1 temos que utilizar dois ou mais desses elementos, por exemplo, 8 em decimal equivale a 1000 em binário. Portanto Bit é um desse elemento e só pode valer 0 ou 1 e Byte é o conjunto de 8 bits que pode representar um número em decimal de 0 a 255.

 

Agora, da nossa figura 1, sobrou os l/Os (do inglês lnput/ Output traduzindo em entrada/saída) que são o teclado, vídeo, porta paralela para impressora, porta serial e joystick.

Podemos dizer, de uma maneira bem simplificada, que os l/Os se comportam como a descrição da memória, sendo que a CPU pode ler ou escrever dados nos l/Os utilizando instruções especiais.

Apesar de um PC ser uma máquina complexa, o que precisaremos saber por enquanto é que no PC temos uma CPU que executa instruções manuseando dados e que tem acesso a memória e l/Os através de endereçamento.

 

Linguagens de Programação

Conforme já vimos, a CPU só entende instruções que são combinações de zeros e uns (números binários) e nada mais. Na realidade uma CPU não tem inteligência. Ela tem, na verdade, muita rapidez, conseguindo executar uma quantidade muito grande de instruções por segundo. É possível fazer com que um computador fique, “inteligente” fazendo com que ele execute um programa que é formado por várias sequências de instruções. A maneira como montamos a sequência em que as instruções serão executadas chamamos de Programação.

Em um PC necessitamos ter um Sistema operacional que vai gerenciar a execução dos programas. Atualmente, o mais utilizado é o Windows da Microsoft, que é um sistema operacional multitarefa, pois consegue gerenciar a execução simultânea de vários programas.

Como já dissemos várias vezes (só para fixar!) a CPU só entende números binários, portanto um programa é uma sequencia de números binários. Você deve estar pensando: Como programar utilizando somente números binários? Realmente seria uma tarefa muito difícil e cansativa. Entretanto, para solucionar este problema, foi desenvolvida a linguagem ASSEMBLY, conhecida como linguagem de máquina onde para cada instrução da CPU é representada por um mnemônico (palavra que nos faz lembrar o funcionamento da instrução). Existe também um compilador (Assembler) que vai interpretar os mnemônicos e convertê-Ios para instruções binárias que a CPU entende.

Apesar da linguagem Assembly ter facilitado muito a programação, ela é uma linguagem de baixo nível e com uma “curva de aprendizado” longa, pois o “baixo” de baixo nível não tem significado pejorativo e sim de acesso total ao hardware do PC. Portanto com a linguagem Assembly podemos fazer programas com plenos poderes sobre o hardware do PC.

 


 

 

 

 

Para facilitar o aprendizado e aumentar a produtividade, foram desenvolvidas as linguagens de “alto nível” (Fortran, Cobol, C, Pascal, etc.), onde o “alto” significa que o programador está mais distante do hardware do PC e não precisa se preocupar com pequenos detalhes e sim com a lógica de programação.

Mas não esqueça que não existe mágica. No final, o nosso programa de alto nível vai ser compilado e vai se transformar em uma sequencia de números binários!

Analise a figura acima e veja as diferenças de um programa em alto nível e baixo nível.

Vale salientar que os dois programas fazem quase a mesma coisa, é um loop dentro do outro. Fica claro agora que a programação em alto nível é mais fácil e não precisamos nos preocupar com vários detalhes do tipo alocação de memória e variáveis.

Como curiosidade, rode o programa no um ambiente LOGO e veja o que acontece!

 

Compilador versus Interpretador

Conforme já foi visto, o compilador gera uma sequência de instruções de máquina que chamamos de programa executável. Isto significa que esse programa não precisa mais do ambiente de programação para funcionar.

Quando falamos de um interpretador estamos falando de um ambiente que irá interpretar instrução por instrução de nosso programa. Mas porque estamos falando disso? Simples. Para explicar como o ambiente LOGO funciona, pois ele é um interpretador, portanto não iremos gerar nenhum executável. Para que um programa em LOGO funcione, necessariamente deveremos estar operando dentro do ambiente LOGO pois, nesse caso, o ambiente LOGO é um executável.

Bem, mas qual a vantagem ou desvantagem? Primeiro a desvantagem: A velocidade de execução. Como a interpretação de cada instrução necessita de um determinado intervalo de tempo, o nosso programa em LOGO será bem mais lento que um programa executável similar. Entretanto, para as nossas aplicações, o fator velocidade não será tão importante.

Agora a vantagem: Lembra-se que falamos do processo “Erra, erra, erra, erra, acerta?” É ai que está a vantagem. Como interpretamos uma instrução de cada vez, se acontecer algum erro na execução da instrução o programa para e sinaliza o erro. Isso facilita muito a resolução de problemas ou, como dizemos em inglês, “debug” (traduzindo literalmente: retirar o inseto), que é um termo muito utilizado na eletrônica digital e informática quando desejamos resolver um problema.

Sua origem vem da época dos primeiros computadores, quando um técnico (americano!) estava concertando um computador e o problema era um inseto que estava entre os circuitos.

 

Qual Ambiente Logo Utilizar?

Escolhemos o SuperLogo 3.0 do NIED por vários motivos:

1 - O ambiente e a programação são feitos em português;

2 - Você pode fazer o download através da internet no site do NIED: http://www.nied.unicamp.br

Aqui fazemos uma ressalva para parabenizar o belo trabalho do NIED (Núcleo de Informática Aplicada à Educação) da Universidade Estadual de Campinas, onde foi aprimorado e traduzido o ambiente LOGO da Softronics resultando no SuperLogo, uma excelente ferramenta ferramenta de ensino para programação que pelo fato de ser em português pode ser utilizada em qualquer nível escolar.

É possível também, comprar uma versão multimídia, distribuída pela Editora Melhoramentos, juntamente com a Divertire (http://www.divertire.com.br), onde além do ambiente SuperLogo 3.0 existem vários exemplos e vários projetos de diversas áreas educacionais.(Na época em que o artigo foi escrito.)

 

Instalando o Superlogo Versão 3.0

Para instalar o SuperLogo versão 3.0, basta executar as seguintes etapas:

1. Fazer download do arquivo lo9095.exe no site do NIED http://www.nied.unicamp.br. Vá a página de softwares e publicações e clique em SLogo/Windows95 conforme a figura 3.

 

Fazendo o download do programa SuperLogo a partir do site.
Fazendo o download do programa SuperLogo a partir do site.

 

 

2. Descompactar o arquivo slogo30.exe:

Para descompacta-lo, execute o logoQSexe. Nesta execução será criado o diretório Xinstall no drive C: do seu PC, o qual conterá os arquivos para a instalação do SuperLogo.

 

3. Efetuar a instalação do SuperLogo:

Execute o arquivo SETUP.EXE (no diretório c:Xinstall) através do Gerenciador de Arquivos do Windows. Será gerado um ícone o qual dará acesso ao SuperLogo. Após obter sucesso na instalação, o diretório c:Xinstall poderá ser excluído.

 

4. Testando o Sistema

Para testar se tudo deu certo, execute o programa SuperLogo e acione em ajuda a opção DEMO conforme mostra a figura 4. Essa opção de demonstração demonstra um pouco das possibilidades do SuperLogo.

 

Executando o programa SuperLogo no modo demonstração.
Executando o programa SuperLogo no modo demonstração.

 

 

No começo do desenvolvimento do LOGO (1968) os pesquisadores utilizavam um robô, que era comandado pelo computador. Este, pelo seu movimento e formato lembrava uma tartaruga. Com o desenvolvimento dos computadores pessoais a tartaruga foi transferida para a tela (veja figura 4).

Podemos começar a programar executando programas bem simples como desenhar um quadrado. Então mãos a obra:

1 - Digite o comando “parafrente 100” na linha de comando como mostra a figura 5. Pressione a tecla enter ou clique com o mouse em “executar”. Esse comando irá movimentar a tartaruga para frente o número de passos (100), ou seja, desloca a tartaruga no sentido em que ela estiver apontando. Com isso desenhamos um lado do quadrado.

 

Comando “parafrente”.
Comando “parafrente”.

 

 

2 - Execute o comando “paradireita 90” e você verá que a tartaruga virou para a direita 90 graus.

3 - Vá executando comandos de “parafrente 100” e “paradireita 90” até formar um quadrado conforme a figura 6.

 

Desenhando um quadrado.
Desenhando um quadrado.

 

 

Que tal melhorar a nossa programação? Então limpe a tela gráfica utilizando “Restaurar a Janela Gráfica” na janela de comandos. Na linha de comandos execute o comando:

 

repita 4 [ pf 100 pd 90]

 

Você verá que conseguimos fazer o mesmo quadrado digitando menos, esse comando na realidade repete 4 vezes a sequência “parafrente 100 e paradireita 90” (aqui resumidas abreviadas para pf e pd).

Se tivermos algum procedimento que seja muito utilizado, é possível armazena-lo e chama-lo quando quisermos (veja o exemplo na figura 7).

 

Utilizando o editor de procedimentos.
Utilizando o editor de procedimentos.

 

 

Para fazê-lo:

1. Execute o comando EDITE “quadrado”

2. Editor irá aparecer. Escreva dentro da janela do editor:

APRENDA QUADRADO

REPITA 4 [PF 100 PD 90]

FIM

3. fechar o Editor e salvar.

4. Execute o comando QUADRADO e o nosso quadrado irá aparecer novamente.

5. Para salvar o programa em Logo para ser utilizado em outras oportunidades, basta ir em “Arquivo” no menu principal e escolher “Salvar Como”, então escolha um nome com extensão LGO.

6. Para restaurar quando abrir o Logo novamente vá em “Arquivo” no menu principal e escolha a opção “Abrir”, então escolha o nome do programa.

Assim, aprendemos a fazer o nosso primeiro procedimento. Vamos incrementar um pouco e fazer uma aplicação com recursos gráficos de janela e botões conforme mostra a figura 8:

 

Uma aplicação com recurso g´raficos de janelas e botões.
Uma aplicação com recurso g´raficos de janelas e botões.

 

 

O programa em Logo:

aprenda

criejanela ”main ”dl [NCB] 10 10 150 50

criebotão ”dl ”bl ”Quadrado 10 10 40 20 [quadrado]

criebotão ”dl ”b3 ”LIMPA 60 10 40 2olcat]

fim

 

Não é interessante? Com poucos comandos conseguimos fazer um programa com recursos poderosos! Para saber como funcionam os comandos “criejanela” e “criebotão” vá em “AJUDA” na barra de menu principal clique em “Index”, então procure o comando desejado (ex. figura 9).

 

 


 

 

 

Proposta de Exercícios

1 - Elabore novos procedimentos para desenhar figuras (ex. triângulo);

2 -Modifique o programa NCB para que ele tenha mais botões que acionem os novos procedimentos;

3 - Estude os arquivos de auxílio (AJUDA na Barra de Menu Principal).

 

Próximos Passos

Estamos chegando ao final dessa primeira parte de uma série de artigos, onde foram expostos vários conceitos de uma maneira simples, que serão importantes durante o processo de aprendizagem. Como já dissemos anteriormente, seremos os grandes incentivadores. Nas próximas edições começaremos a integrar o PC com dispositivos externos. Vá se preparando! Vai ser muito interessante e divertido.

 

 O colaborador Luiz Henrique Corrêa Bernardes nos autorizou a publicar neste site seus artigos