7. Implementação e testes
7.2 Ambiente de desenvolvimento
Graças ao sistema de desenvolvimento do Contiki (Instant Contiki), que contém o simulador Cooja e todas as ferramentas necessárias para o desenvolvimento das aplicações, não foram necessárias grandes configurações para obtenção de bom ambiente de trabalho. Para além do ambiente Linux (Ubuntu), foi possível testar o desenvolvimento de aplicações também no ambiente Windows (Windows 7).
7.2.1 Configuração do sistema (hardware e software)
Ao contrário do ambiente Linux, no Windows foi necessário a instalação das seguintes ferramentas pela seguinte ordem:
1. Emulador da consola do Linux no Windows – Cygwin; 2. O conjunto de executáveis AVR-WinAVR;
3. Ambiente de desenvolvimento Eclipse;
Seguindo-se a explicação de cada uma destas ferramentas. a) Cygwin
O Cygwin é um programa que permite instalar no sistema operativo Windows um conjunto de programas e ferramentas que reproduzem a consola e ambiente de trabalho de um sistema Linux. Tal como sucede nestes sistemas, todos os programas e ferramentas que fazem parte do Cygwin são de código aberto e gratuito.
A instalação deverá ser feita na raiz do sistema. No final deverá conter o sistema em: “C:\cygwin”.
Aquando a escolha das ferramentas, poderá instalar todas as ferramentas (Full
instalation) ou apenas as necessárias, sendo para este projecto consideradas as seguintes
ferramentas: Automake; Make; GCC; GDB.
b) WinAVR
O WinAVR é um conjunto de executáveis, ferramentas de desenvolvimento de software livre Windows, para microcontroladores Atmel AVR. Este inclui o poderoso compilador GNU GCC para C e C++. A instalação deverá ser feita na raiz do sistema e no final deverá conter o sistema em: “C:\WinAVR”.
Para outras distribuições Linux, será necessário a instalação das seguintes ferramentas: avr-libs e binutils.
$sudo apt-get install avr-libc $sudo apt-get install binutils
c) Programa Avrdude
O Avrdude é um programa que se encontra dentro do WinAVR, no entanto foi escrito inicialmente para Linux, permitindo maior facilidade na programação dos microcontroladores Atmel AVR. Embora sem qualquer interface gráfica, a comunidade de software livre, entre outros, têm desenvolvido ferramentas GUI para este programa. Caso se pretenda instalar noutra distribuição Linux, deve ser utilizado o seguinte comando:
$ sudo apt-get install avrdude
d) Comando Make
Antes de usar qualquer exemplo/aplicação é importante usar o comando apresentado de seguida na pasta da aplicação:
$make savetarget TARGET=avr-atmega128rfa1
Este comando cria um ficheiro denominado “Makefile.target”, contendo a plataforma previamente inserida e permitindo utilizar o comando make, sem necessidade de definir o tipo de plataforma que o Contiki irá usar para compilar. Útil para quem tem dispositivos com a mesma plataforma. Caso não use este comando, a compilação utilizará a plataforma nativa do Contiki.
$ make
TARGET not defined, using target 'native'
Outro método de compilação do código, bom para quem tem vários dispositivos e necessita de compilar em várias plataformas, é a utilização do comando com a indicação da plataforma, por exemplo:
make TARGET=avr-atmega128rfa1 nomeDoApplicativo.hex make TARGET=sky nomeDoApplicativo.hex
make TARGET=avr-raven nomeDoApplicativo.hex
e) SO Contiki
Por defeito o Cygwin cria uma pasta com o nome do computador e é essa a localização por defeito aquando a execução do aplicativo, podendo ser alterada através do ficheiro passwd localizado em: “c:\cygwin\etc\passwd”.
O sistema operativo Contiki deverá ser instalado dentro da pasta do cygwin, por exemplo na pasta HOME. No final terá o seguinte aspecto.
C:\cygwin\home\contiki-2.6\
f) Term Terminal
De modo a visualizar os dados lidos na porta série foi usado o aplicativo Term Terminal, cuja janela de configuração é mostrada na Figura 51. As seguintes configurações foram (ou devem ser) utilizadas:
COM – A disponível Rate – 38400 Data bits - 8
Stop bit – 1 Parity - none Handshaking – none
7.2.2 Material necessário
Segue se uma breve descrição do material necessário à implementação de testes: a) 2 Adaptadores usb-serial – Foram necessários 2 adaptadores de modo a testar, receber informação proveniente do coordenador e do nó da rede e carregar o aplicativo no dispositivo. Foi utilizado um adaptador Prolific USB-to-Serial Comm Port e USB- Serial CH340;
b) Interface serial no padrão RS232 – Este dispositivo liga directamente ao adaptador usb-serial ou à porta serial do mesmo padrão no computador (caso haja);
c) Microcontrolador – Foi usado o microcontrolador ATmega128RFA1 da AVR em todos os pontos da rede;
d) 1 Portátil – Foi usado na programação e debug dos dispositivos;
e) Sensor de luminosidade – Foi utilizado um sensor de luminosidade (LDR) de 200Kb para verificar o estado de iluminação;
f) Resistência – Foi necessário uma resistência de forma a controlar os valores de dados do sensor de luminosidade;
g) LED – O L, já incorporado no dispositivo, surge como um simulador de uma luz com a possibilidade de ligar e desligar;
h) Multímetro – Foi necessário para testar os valores e as ligações entre o dispositivo e o hardware ligado ao mesmo.
7.2.3 Problemas observados
Visto que os Instant Contiki já contêm um conjunto de ferramentas para o desenvolvimento e testes das aplicações desenvolvidas, não foi necessário nenhuma instalação adicional, apenas o uso de uma máquina virtual. No entanto apesar desta mais-valia, o simulador Cooja, ainda não permite a criação de simulações usando a plataforma ATmega128RFA1. Sendo o Cooja apenas usado para entendimento da execução dos exemplos, tal como testes simples.
Tal como no Instant Contiki, no ambiente Windows foi instalado o Eclipse para aceleração no processo de escrita e debug do código. Infelizmente muito dos trabalhos/ exemplos de conexão do Eclipse ao dispositivo, necessitavam de drives que no
momento de escrita da tese se encontravam obsoletos. A solução passou pelo uso simples da linha de comandos do emulador da consola do Linux, o Cygwin. Este tornou-se essencial numa primeira fase onde não existia a necessidade de configuração do túnel SLIP, mais tarde verificou-se a inexistência de uma aplicação funcional no Windows, por forma a criar o túnel SLIP.