Um microcontrolador é basicamente um computador inserido num chip de circuito integrado. Este consiste em memória, um processador, bem como interfaces de entrada-saída. Os Microcontroladores são programados para executarem uma tarefa específica, ou seja, caso seja necessário modificar ou aperfeiçoar as suas funcionalidades, então é necessário instalar um novo programa no nosso chip. As principais características que distinguem um microcontrolador de outros computadores (PC, computador portátil, servidor, etc.) são:
Os microcontroladores estão presentes numa grande variedade de equipamentos e dispositivos do nosso quotidiano: eletrodomésticos (ex: fornos de microondas, televisores, etc.), brinquedos (ex: Lego NXT, bonecos falantes, etc.), veículos (automóveis, guindastes, etc.). O uso de microcontroladores a uma larga escala tornou-se possível dada as suas facilidades de programação e permitem uma vasta gama de funcionalidades; portanto, torna-se bastante simples adicionar novas características a um produto ou aplicação, bem como aperfeiçoar o nível de inteligência da aplicação em questão.
A Robótica é uma ciência que combina o uso da tecnologia e conhecimento necessários para a construção de robots. Dado o rápido desenvolvimento da tecnologia, o termo robot, como uma máquina automática que permite substituir os humanos, já não tem uma definição tão clara como a inicialmente proposta. Um robot já não é sinónimo apenas de um humanóide, braço robótico numa linha de montagem fabril, piloto automático numa aeronave, inteligência artificial composta por neurónios ou uma simples máquina que executa tarefas de limpeza; hoje em dia um robot representa também um programa de computador que executa tarefas destinadas a humanos (por exemplo, um robot que compila relatórios de operações). É do senso comum que um robot foi originalmente pensado para substituir humanos em determinadas tarefas. Existem várias razões para isto: condições de trabalho perigosas, custos de produção mais baixos, tarefas monótonas e repetitivas que aumentam a probabilidade de erro humano, novos sistemas mais complexos e temporalmente críticos, tudo tipo de tarefas que permitem a um sistema autónomo tomar melhores decisões do que um humano.
Dada a extensão da área da robótica, a aplicações robóticas baseadas em microcontroladores, damos tipicamente o nome de robótica amadora; este tipo de sistemas são tipicamente não muito complexos, e são habitualmente de fácil implementação pela maioria dos utilizadores. Os tipos mais comuns de microcontroladores utilizados na área da robótica amadora são:
Frequentemente terceiros têm criado placas e ambientes de desenvolvimento baseados nos tipos de microcontroladores acima mencionados. Por exemplo a plataforma Arduino (baseada na família de microcontroladores Atmel AVR), o BASIC Stamp (baseada nos microcontroladores PIC), Lego NXT (baseado na arquitetura ARM), etc. No caso específico do HomeLab, o projeto que será abordado neste livro, este é baseado no microcontrolador AVR ATmega128 da Atmel. Contudo, uma questão levanta-se dada a vasta oferta de microcontroladores e plataformas de desenvolvimento disponíveis: como escolher o microcontrolador mais apropriado à nossa aplicação? Geralmente podemos classificar os microcontroladores baseando-nos nestas quatro propriedades: - custo, características físicas, ambiente de desenvolvimento e suporte. As características físicas de mais notoriedade são:
O ambiente de desenvolvimento que iremos aqui utilizar é baseado num programa de computador, que permite a criação, edição e compilação de programas, bem como a programação do microcontrolador e permite fazer a ponte entre o computador e a execução do programa por forma a ser possível a deteção de possíveis erros ou falhas. A facilidade e usabilidade do software no desempenho deste tipo de tarefas torna-se então decisiva porque este torna-se o centro da atenções durante toda a etapa de desenvolvimento do software para o microcontrolador. Tudo isto está intimamente relacionado com a quarta propriedade referida a ter em contra na escolha do microcontrolador, ou seja, o suporte. É importante que tenhamos acesso a ajuda e suporte na resolução de eventuais problemas da maneira mais simples possível. Assim e tendo em conta todas as quatro propriedades referidas a terem em conta num microcontrolador, a tarefa de escolher o dispositivo mais adequado ao nosso projeto torna-se assim bastante mais simples.