Programação por elementos gráficos
Autor: Möller | Publicado: 2013-06-02T05:07:00-07:00

O que mais me chamou a atenção na 4ª SECAI foi a programação por recursos gráficos. Eu já conhecia tal tipo de programação, mas até então, nunca tinha pensado no&nbsp;potencial&nbsp;da mesma.

Não tão gráfica:

A primeira linguagem de programação a qual eu fui exposto, o basic, era uma linguagem por código, na qual eu programa pelo magic computer e que eu não entendia merda nenhuma do que estava fazendo, afinal era só um guri de uns 12~13 anos. Mas depois vieram o game maker e o rpg maker (falei de tais programas nessa postagem aqui em outro blog meu)

Tanto um quanto o outro, pelo menos nas primeiras versões que eu peguei (GM 4.0 e RPG Maker 2000) contavam com objetos "programáveis", mas no entanto você não digitava código algum. No game maker você tinha abas de "eventos" para cada objeto e dentro dele você arrastava os comandos, na seqüência desejada. No RPG Maker, você controlava os eventos chamando comandos prontos. Não era uma programação gráfica igual à do lego NXT e do LABview, mas era um ambiente bem amigável na qual um estudante do ginásio podia trabalhar muito bem.



Programando um objeto no Game Maker




Programando um evento no RPG Maker

Interessantemente gráfica:

Depois disso eu só fui cruzar com outro meio de programação gráfica uns 10 anos depois, já na faculdade de mecatrônica, quando tive que instalar o ubuntu no meu laptop. Explorando os aplicativos gratuitos do mesmo, eu cruzei com o interessante kTurtle (no qual você programa por texto os movimentos de uma tartaruguinha) e em seguida com o turtle art, que faz a mesma coisa que o kTurtle, mas sua programação é feita por blocos que vão se encaixando.

Eu já dava aulas no projeto desafio e vi com interesse o turtle art, me parecia uma ferramenta poderosa para ensinar os princípios de programação para meus alunos (estudantes do ginásio) sem confundi-los ou tortura-los. Infelizmente, por problemas no laboratório de informática da ONG, eu não pude levar o projeto adiante.



Turtle Art



Assustadoramente gráfica:

Não muito tempo depois, viria a conhecer, não tão bem quanto eu gostaria, um meio de programação gráfica muito mais profissional e avançado que o turtle art: o Simulink do Matlab.

A minha disciplina "programação aplicada a engenharia", no segundo período do curso, foi toda baseada no Matlab, infelizmente, pelo tempo do curso, somente nas duas última aulas é que trabalhamos com o Simulink , o que não serviu para aprender grande coisa. Felizmente eu continuei a estudar o programa por conta e cada vez mais me assunto com a capacidade deste programa.

O Simulink é versátil e pode ser usado para uma grande gama de aplicações, desde redes neurais, até simulação de aerodinâmica. Infelizmente o Matlab é um produto pago e caro. Existem algumas alternativas gratuitas à ele, como o freemat, mas esse não possui um equivalente ao Simulink. Um equivalente gratuito ao Simulink seria o Scilab, mas não é tão completo quanto e ainda é um pouco mais complicado de usar.



Simulink



Scilab

LEGO mindstorms NXT:

Como disse na postagem referida a minha ida à 4ª SECAI, tive a chance de programar robôs do LEGO e vi um tremendo potencial nisso, principalmente para introduzir conceitos básicos de lógica e de robótica em iniciantes.

Os robôs LEGO mindstorms não foram feitos para profissionais, nem para estudantes de graduação em engenharias mecatrônica, de controle e automação, robótica e etc, mas sim para "leigos", ou seja, hobbystas, estudantes do ginásio e do ensino médio, resumindo, pessoas que não podem e não vão dedicar a maior parte do seu tempo para entender e trabalhar nos conceitos relacionados a robótica.

Sendo assim, a montagem e programação dos robôs deve ser feita de forma rápida e fácil. A montagem é feita pela modularidade já conhecida dos brinquedos LEGO e parece que eles adaptaram esse conceito para a programação.

Na programação dos mindstorms, você arrasta "blocos" em uma linha que lembra um pouco peças de montagem do LEGO. Tudo o que estiver nessa linha será compilado e o programa será executado na ordem da mesma.

É interessante que cada bloco pode ser configurado, você pode pegar um bloco de "motor" por exemplo e escolher qual dos motores vai mover (o mindstorm aceita até 3 motores ligados a ele), se vai controlar o motor por tempo, graus, rotações, o quanto vai mover do motor, o sentido e a potência do mesmo. Pode também coletar dados de blocos de sensores, como a distancia de um objeto coletada por um sensor ultrassônico. Os dados fornecidos por alguns blocos podem ser enviados à outros, por meio de "fios" conectores.

O LEGO mindstorms é realmente fácil de se programar e em um curso de quatro horas, conseguimos programar dois robôs diferentes.

Quer dizer, o pessoal conseguiu, graças ao efeito Möller, o meu compilador deu um erro que nem ele sabia explicar o que era...



LEGO mindstorms NXT


National Instruments LABview:

Ainda na 4ªSECAI tive a oportunidade de ter contato com esse maravilhoso software. A interface dele lembra um pouco o Simulink, mas o modo dele operar lembra mais o programa do LEGO.

Até o evento, National Instruments para mim significava duas coisa: a empresa que eu vi, numa maldita feira de mecânica, que tinha um aparelho que empinava uma vareta igual o Chaves fazia com uma vassoura e a empresa que lota meu e-mail de propagandas e avisos (como se não bastasse a Oracle). Depois do evento e de eu começar a estudar esse software por conta, minha visão mudou, eu fiquei tão espantado com o LABview que deu vontade até de trabalhar na NI. Nem gasto mais os dez minutos por dia que eu gastava tentando descadastrar &nbsp;meu e-mail no banco de dados dele.

O LABview é uma interface de programação por meios gráficos, pelo que eu entendi o principal objetivo dela é criar aplicações para mecanismos controlados externamente por placas controladoras e de aquisição de dados e eventualmente mandar dados deles para um painel de controle do usuário. Tanto o painel, quanto as aplicações são fáceis de fazer graças aos recursos deste programa.

O programa tem dois ambientes, um é o painel onde você vai criar o painel de controle, outro é o diagrama de blocos, onde fica o "código" por trás do painel de controle. Você pode criar itens para o painel de controle, como botões, termômetros, barra de status, apenas arrastando o item de seu respectivo menu. Automaticamente aparecerá seu equivalente no diagrama de blocos. Da mesma forma, alguns itens criados no digrama de blocos aparecerão no painel de controle.

Para adquirir dados de uma placa de aquisição, existem assistentes que são&nbsp;tranquilos&nbsp;de serem entendidos. Além disso tudo a empresa oferece material didático gratuito em seu site. Eu realmente gostei muito desse programa.



LABview



Conclusão: Futuramente gráfico:

A minha única infelicidade é que a maioria desses programas são pagos. São pagos e caros. Isso porém, não pode ser enxergado como um obstáculo e sim como uma oportunidade. Estou trabalhando com amigos meus em uma aplicação que programa MSPs430 por meios gráficos. O objetivo, é claro, difundir a robótica e a mentalidade de "laboratório de garagem" na juventude brasileira.