Este trabalho apresenta uma farramenta voltada para o ensino de programação e circuitos eletrotécnicos usando o arduino. A ferramenta consiste em um compilador que através de uma linguagem de programação textual e simplificada que é a linguagem ardlight, permitir a escrita de programas que depois de compilados pelo ardlight, possam ser enviados e executados como programa do arduíno. Originalmente, os programas eram executados de uma forma em que o programador tinha de pensar em todos os aspetos a ver com o circuíto a ser construído. Com a extensão proposta, a ideia é que o programa compilado pelo ardlight possa fazer de forma automática o que os construtores de circuitos eletrónicos em arduíno fazem, acrescendo ainda os cálculos necessários para a proteção do respetivo circuito. Para que o ardlight funcione, o programador deve escrever no ficheiro de entrada, informações referentes aos componentes que constituem o circuito a ser construído. Assim, através dos comandos programados com a liguagem ocaml no ardlight é possível criar um ficheiro de saída com todas instruções necessárias e os cálculos para a construção do circuito. Destaca-se ainda a inclusão da plataforma Arduino, por ser uma opção mais acessível devido as suas características de hardware e software livre, e também pelo fato de que boa parte das instituições de ensino podem adotar o ensino de robótica, pois o kit do arduíno tem baixo custo. Por fim, no intuito de validar o funcionamento do compilador do ardlight, foram feitos testes e observou-se que o ardlight foi capaz de executar todos os comandos da linguagem, apesar de apresentar algumas limitações.

Capítulo 1 Introdução

Estamos diante de uma cultura tecnológica cada vez mais influente no processo de ensino e aprendizagem, em que presenciamos o nascimento de áreas do conhecimento decorrentes das inovações tecnológicas. E perante a este facto urge a necessidade de desde cedo implementar matérias e tecnologias básicas aos estudantes para que possa despertar a paixão pela tecnologia. E um dos importantes efeitos das tecnologias no âmbito da cultura estudantil é a mutação pela qual ela tem feito nas várias áreas do conhecimento em que ela atua. E segundo Levy afirma que “devemos construir novos modelos do espaço dos conhecimentos” [Pie99]. E face a essas mudanças, o autor ressalta que o educador “é incentivado a tornar-se um animador da inteligência coletiva de seus grupos de alunos em vez de fornecer de forma direta os conhecimentos”. Perante este contexto, a robótica, a programação e a lógica no contexto educativo são considerada ferramentas poderosas nos processos de aprendizagem, pois exercita e cria a curiosidade, a imaginação e a intuição, elementos centrais que favorecem experiências estimuladoras da decisão e da responsabilidade [GOM10]. A robótica a programação e a lógica no contexto educativo também proporcionam melhora do raciocínio lógico e das habilidades manuais, através das atividades de programação e montagem dos robôs e dos circuitos eletrónicos. Entretanto, a sua inserção no processo de ensino-aprendizagem encontra muitas dificuldades financeiras, pois muitas instituições não têm condições de suportar com o alto custo dos kits proprietários, usados para o desenvolvimento dos projetos. Assim, uma alternativa para a adoção da robótica da programação e da lógica no contexto educativo é a utilização de plataformas de hardware e de software open source, ou seja, plataformas de código aberto. Dentre estas plataformas, o Arduíno ganha destaque por ser uma plataforma de fácil utilização. De acordo com McRoberts com relação ao Arduíno, pessoas que não são da área técnica podem, rapidamente, aprender o básico e criar seus próprios projetos em um intervalo de tempo relativamente curto” [Mic11].

1.1 Contexto do Problema

A dinâmica das tecnologias, aumenta em grande escala, e a procura do que implementar nas primeiras aulas de introdução as tecnologias tem suscitado bastante problema no seio dos professores, pois a complexidade das matérias ligadas as tecnologias parecem muito difícil muitas das vezes para os seus educandos, e isso refreia os professores e ficam como que de mãos atadas sem muita das vezes saber o que fazer. Por outro lado ao analisar e fazer uma breve comparação de forma superficial, veremos que há interesse cada vez mais nos alunos em saber como funcionam as coisas no ponto de vista tecnológico. Como por exemplo: As portas automáticas das escolas, os semáforos, sensores de presença etc. Não descartando a complexidade das matérias pois elas em muitos casos envolvem cálculos, fórmulas físicas e certa lógica, mas não discordando essas dificuldades os conhecimentos de Algoritmia ajudaria no aprendizado do educando. E ao observar a literatura reconhecida no meio académico para o estudo do algoritmo encontramos F. Ximenes que define algoritmo como uma sequência ordenada e finita de passos, visando à solução de um dado problema [Xim93]. Para reforçar a definição de F. Ximenes, encontramos 1 as formulações de Boratti e Oliveira a definir algoritmo como “uma sequência finita e lógica de instruções executáveis, especificadas em uma determinada linguagem, que mostram como resolver alguns problemas” [eO04]. Nesta senda implementar um compilador com sistema de tipo que visam sistemas embutido juntamente com a placa de Arduíno levaria o ensino da robótica da programação e da lógica no contexto educativo teoria á pratica. Tendo em conta o contexto do problema, introduzimos aqui a teoria de Robin Milner ”Well typed embedded programs cannot go wrong” ou seja “Programas bem tipados não podem dar errado” de (1978) [Mil78]. Agarrados a esse teoria, construimos o compilador do ardlight, este que se apropria ao lema acima citado e o adapta ”Well typed embedded programs cannot burn”. [...]