Uma das perguntas mais corriqueiras que encontro com os meus alunos é: Porque precisamos programar um robô ou programa de computador? A resposta pode parecer ingênua, mas é muito comum. Para os que trabalharam com linguagem de máquina ou cartões perfurados, sabemos o quanto é penoso fazer um programa ativar uma sequencia de LEDs, mas para aqueles que já nasceram onde os computadores fazem tudo com o clicar do mouse parece estranho. O Kit Alfa da PNCA ensina a programar os seus robôs utilizando o Legal++.
O programa Legal++ é hoje bem mais intuitivo que o seu antecessor, o Legal, onde ícones substituem as tradicionais linhas de programação. O Legal++ é ótimo para aqueles que estão iniciando, pois ensinamos primeiramente o funcionamento do robô ou instrumento mecatrônico como costumo me referir.
Porém é importante para os alunos que querem saber mais sobre esta área, é de programar qualquer robô através das linhas de código, pois através do código, é possível criar rotinas, desvios, condições e funções específicas.
No Legal++ é possível criar as rotinas tanto visualmente através de cliques, como digitando as linhas de comando.
Para melhor compreender como funciona a programação do Legal vamos tomar como exemplo o programa Aprenda1.Leg.
1 - Por favor
2 - Repita sempre
3 - [
4 - piscar1
5 - ]
6 - Obrigado
7 -
8 - aprenda piscar1
9 - [
10 - Ligue L1
11 - Espere 1s
12 - Desligue L1
13 - Espere 1s
14 - ]
Vamos agora explicar este pequeno código que tem como objetivo deixar um LED piscando.
O programa é dividido em duas partes.
O primeiro que começa na linha 1 (Por Favor) e termina na linha 6 (Obrigado) .
A segunda parte do programa que começa na linha 8 (aprenda piscar1) e termina na linha 14 ( ] ).
Quando o módulo começa a ler este programa, a primeira coisa que ele executa é tudo aquilo que está na primeira parte do programa (Por Favor, Obrigado).
Fazendo uma comparação com o mundo real, seria o mesmo que voê acordar (Por Favor) e dormir (Obrigado). Neste momento você deve estar se perguntando - Então pra que serve a segunda parte do programa?
A segunda parte do programa é uma função, neste caso só temos uma função, mas podemos ter várias funções num mesmo programa. Fazendo novamente uma comparação com o nosso dia a dia, temos o seguinte exemplo:
Função Almoçar
[
Lavar as mãos
Pegar prato
Colocar comida
Sentar a mesa
Encher o garfo
Colocar comida na boca
Mastigar bem a comida
]
Você conhece a função Almoçar desde pequeno, quando sua mãe lhe falou: - Você precisa "APRENDER" a almoçar sozinho. E isso você aprendeu.
Isso é a mesma coisa que acontece com o módulo, que quando ligado, aprende todas as funções contidas no programa, mesmo antes de executar qualquer ação que se encontra na primeira parte do programa.
Mesmo você quando acorda, sabe como fazer para almoçar, mas somente irá executar a função de almoçar quando chegar a hora do almoço.
Retornando ao nosso programa de exemplo, vemos que a segunda parte do programa se chama "piscar1", e dentro dele temos 4 linhas de comandos sendo elas:
10 - Ligue L1 // Deixa o pino L1 ligado (acesso)
11 - Espere 1s // Deixa tudo do jeito que está por 1 segundo
12 - Desligue L1 //Deixa o pino L1 desligado (apagado)
13 - Espere 1s // Deixa tudo do jeito que está por 1 segundo
Lembrando que o LED está ligado ao pino L1, por este motivo, quando o módulo ler a linha 10 acenderá o LED, agora na linha 11 o módulo irá contar 1 segundo para depois ler a linha 12, onde desliga o LED, e finalmente na linha 13, o módulo contará até 1 novamente.
Note que a função PISCAR1 acende e apaga o LED uma única vez. Mas o que faz o LED ficar piscando constantemente? Esta resposta encontramos na primeira parte do programa.
Observe que na linha 2, temos um comando "Repita Sempre", este comando irá executar o que se encontra abaixo dele, delimitado pelos colchetes ([]), entre estes colchetes podemos ter uma infinidade de outros comando a serem executados, até que o módulo seja desligado ou algum outro comando pare este Repetir Sempre, que não é este o caso.
A linha 4 que será executada várias vezes, por fato de estar dentro do comando "Repete Sempre", temos a palavra "piscar1". Mas para que serve este comando? Na verdade isto não é o comando, mas sim uma função que o módulo aprendeu na linha 8 (aprenda piscar1). Então, quando o módulo chegar na linha 8, encontrará a palavra "piscar1", como ele já aprendeu o que é "piscar1" ele irá executar todos os comandos que estão entre as linhas 10 e 13, várias e várias vezes.
Aconselho para os professores que utilizam este exemplo em aula, de sugerir uma tarefa para ser dada aos alunos que é de criar outra função piscar2, e ser chamada dentro da rotina principal do "Repetir sempre" e ver o resultado. Num segundo passo, fazer com que o LED1 acenda quando o LED2 apagar e vice e versa.