Buenas pessoal.

Nesse primeiro post sobre programação, ao invés de abrir o software e colocar um ícone atrás do outro, gostaria de fazer um exercício que considero primordial, para qualquer atividade que envolva programar: colocar no papel o que queremos executar com o robô.

Programar, essencialmente significa planejar. Uma rápida pesquisa no Google nos retorna o seguinte resultado:

Figura 01

Eu, particularmente, gosto da segunda definição: “… fazer planos (uma ocasião); planejar.” Isso, por que quando vamos planejar algum evento, geralmente fazemos um check list, ou uma listagem do que deve ser feito. E isso nos orienta na execução das tarefas, e na ordem que devem ser feitas.
Por exemplo, para sair de casa pela manhã, sem perceber, seguimos o seguinte check list:

1. Acordar;
2. Levantar a cama;
3. Ir até o banheiro;
4. Se vestir;
5. Ir tomar café;
6. Pegar o material que irá levar;
7. Sair;

Algumas das tarefas, podem ser desdobradas em outras, como por exemplo, o item 3:
3. Ir até o banheiro;
3.1. Pegar a pasta de dente;
3.2. Obter a pasta do tubo/frasco;
3.3. Colocar a pasta na escova;
3.4. Executar a sequência de escovação;

Como é algo corriqueiro, não anotamos o check list em nenhum lugar. E por costume, continuamos a fazer diversas tarefas sem o mesmo, e conseguimos repetir a sequência satisfatoriamente.
Em programação, esse roteiro, ou passo a passo, é importante, pois torna o processo de desenvolver a programação mais fácil e eficiente.
Por exemplo, digamos que você tem que programar um robô, para que ele ande em linha reta, e ao chegar perto de um obstáculo, ele pare. Vamos tomar a figura abaixo, como base:

Base 001a

Robô, Obstáculo, e sentido de deslocamento do Robô;

O “check list” do programa, poderia ser:

1 – Ligar os motores;
2 – Manter os motores ligados durante X Rotações / Graus / Segundos;
3 – Desligar os motores;

Podemos chamar de pseudocódigo essa forma de representar a programação.

Uma outra forma comum de fazer essa representação, seria através de um FLUXOGRAMA:

Diagrama1

Apresentação da mesma ideia do pseudocódigo, em formato de Fluxograma

Dessa forma, conseguimos organizar e sincronizar a ordem de ideias com as ações que o robô terá que fazer, além de facilitar a documentar a nossa programação, como podemos ver abaixo:

Figura 03

Resultado do pseudocódigo e/ou fluxograma, no software Mindstorms

Com a programação documentada, se torna muito mais simples corrigir eventuais problemas, principalmente se a programação for mais extensa, ou conter estruturas de programação mais complexas.
Se adicionarmos ao robô do nosso exemplo, um Sensor de Ultrassom, poderíamos programar o robô de outra forma.

Base 004

Robô, Obstáculo, sentido de deslocamento do Robô e distancia em que o robô deve parar;

Pseudocódigo do programa, para a situação acima:
1 – Ligar os motores;
2 – Esperar que o valor do Sensor de Ultrassom ≤ 5 cm (valor menor ou igual a 5 cm);
3 – Desligar os motores;

Fluxograma:

Diagrama2

Fluxograma do programa, com o robô usando o Sensor de Ultrassom

Programação Mindstorms:

Figura 06

Resultado do pseudocódigo e/ou fluxograma, no software Mindstorms

Independente da forma que você escolha para planejar sua programação seja com o pseudocódigo ou fluxograma, é uma pratica que vai auxiliar no desenvolvimento de seus programas.

Para facilitar, em um outro post, irei tratar melhor da simbologia do Fluxograma e a correspondência com as estruturas de programação do Software Mindstorms.