Anda di halaman 1dari 109

UNIVERSIDADE ESTADUAL DO CEARÁ – UECE

Centro de Ciências Tecnológicas - CCT

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA


E TECNOLOGIA DO CEARÁ - IFCE
Diretoria de Ensino – DIREN

MESTRADO PROFISSIONAL EM COMPUTAÇÃO APLICADA – MPCOMP

ÁGIO GONÇALVES DE MORAES FELIPE

Laboratório de Experimentação Remota com o


Microcontrolador PIC

FORTALEZA – CEARÁ
Dezembro de 2010
ÁGIO GONÇALVES DE MORAES FELIPE

Laboratório de Experimentação Remota com o


Microcontrolador PIC

Dissertação apresentada ao Curso de Mestrado


Profissional em Computação Aplicada da Universidade
Estadual do Ceará e Instituto Federal de Educação,
Ciência e Tecnologia do Ceará como requisito parcial
necessário para obtenção do grau de Mestre em
Computação Aplicada, área de concentração: Redes de
Computadores

Orientador: Prof. Dr. Cidcley Teixeira de Souza

FORTALEZA – CE
Dezembro de 2010
F315L Felipe, Ágio Gonçalves de Moraes
Laboratório de experimentação remota com o
microcontrolador PIC / Ágio Gonçalves de Moraes Felipe.
— Fortaleza, 2010.
95 p. ; il.
Orientador: Prof. Dr. Cidcley Teixeira de Souza
Dissertação (Mestrado Profissional em Computação
Aplicada) – Universidade Estadual do Ceará e Instituto
Federal de Educação, Ciência e Tecnologia do Ceará.
1. Experimentação remota 2. Microcontrolador 3.
Microservidor. 4. Laboratório remoto. Universidade
Estadual do Ceará, Centro de Ciências e Tecnologia.
CDD: 0004.16
Título do Trabalho: Laboratório de Experimentação Remota com o
Microcontrolador PIC

Autor: Ágio Gonçalves de Moraes Felipe

Defesa em: 22/12/2010

Banca Examinadora

Cidcley Teixeira de Souza, DSc (IFCE)


Presidente (Orientador)

Anilton Salles Garcia, DSc (UFES)


Membro Interno

Francisco José Alves de Aquino, DSc (IFCE)


Membro Externo
À minha esposa Acreciana, e aos meus pais Felipe e Mundinha.
Agradecimentos

À DEUS, por ter me dado força e proteção nos momentos difíceis e por
disponibilizar as oportunidades que tive durante minha vida até o presente.

Agradeço à minha esposa Acreciana, sempre companheira, amiga, que soube me


entender quando não pude estar presente devido aos compromissos do mestrado e
principalmente por me fazer feliz e completo a cada dia.

À minha família, pela compreensão da minha ausência em muitos momentos


familiares.

Ao meu orientador, Prof. Cidcley Teixeira de Souza, pela colaboração, paciência


e tempo dedicado na orientação desse trabalho.

Ao meu amigo e colega Allan Kelvin por ter me incentivado a iniciar esse
trabalho e a imensa ajuda no desenvolvimento do mesmo.

A todos os colegas do IFPB – Campus Cajazeiras, por cobrar, incentivar e apoiar


o desenvolvimento do trabalho.

Ao IFCE – Campus Juazeiro do Norte, por proporcionar as condições de


realização desse trabalho.
Resumo

Esta dissertação apresenta o desenvolvimento de uma arquitetura de


laboratório remoto para realização de experimentos controlados via Internet na
área de microcontroladores. É realizado um estudo sobre o estado da arte dos
sistemas de experimentação remota e sobre suas diferentes tecnologias de
implementação. O sistema proposto tem como base o uso de microservidores
como interface entre o sistema físico e a Internet. O uso desses dispositivos
tem com o objetivo obter uma solução de baixo custo, confiável e de fácil
instalação. A ferramenta apresentada possibilita ao usuário iniciar, controlar e
obter informações relacionadas a um dado experimento com
microcontroladores a partir de um dispositivo de acesso à Internet. Este
sistema visa o apoio ao ensino de microcontroladores, constituindo-se um
recurso que vem se reunir a outras ferramentas de apoio utilizadas atualmente
como os kits didáticos e softwares de simulação.
Abstract

This dissertation presents the development of an architecture proposed


for remote laboratories in perform controlled experiments remotely over Internet
in the microcontroller’s area. It was made a study about the current state of
remote experimentation systems and their implementation technologies. The
proposed system is based on the use of micro-servers as interface between the
physical system and the Internet. The aim of these devices is to attain a low
cost solution, reliable, and easy installation. The tool presented here allows the
user to initiate, control and get information related to a given experiment which
microcontrollers from an Internet access device. This system aims at supporting
the microcontrollers teaching, so that it aggregates other tools currently used to
support learning kits and software simulators.
Lista de Figuras

Figura 2.1 – Estrutura interna de um microcontrolador PIC .................................. 24


Figura 2.2 – Ambiente MPLAB .............................................................................. 25
Figura 2.3 – Kit Microchip ..................................................................................... 25
Figura 2.4 – Software de Simulação .................................................................... 26
Figura 2.5 – Kit didático ........................................................................................ 27
Figura 2.6 – Arquitetura básica de um laboratório remoto ................................... 29
Figura 2.7 – RMC 2200 ........................................................................................ 34
Figura 2.8 – PicoWeb ........................................................................................... 35
Figura 2.9 – WIZ220IO ......................................................................................... 35
Figura 2.10 – PME10A ......................................................................................... 36
Figura 2.11 – LabViewPlayer ............................................................................... 38
Figura 2.12 – Programa servidor desenvolvido em FERNANDEZ et al.(2000) .... 39
Figura 2.13 – Programa cliente desenvolvido em FERNANDEZ et al.(2000) ...... 39
Figura 2.14 – Página desenvolvida em WONG et al., (2001) ............................... 41
Figura 2.15 – Interface desenvolvida em BERNTZEN et al, (2001) ..................... 43
Figura 2.16 – Controles desenvolvidos em AJAX ................................................ 44
Figura 3.1 – Página inicial do MPCRL .................................................................. 46
Figura 3.2 – Página de entrada de dados ............................................................ 46
Figura 3.3 – Página de entrada do Telelab .......................................................... 48
Figura 3.4 – Experimento no Telelab ................................................................... 48
Figura 3.5 – Experimento no Ilab ......................................................................... 49
Figura 3.6 – Rexlab - detalhe da placa de Experimentos ..................................... 50
Figura 3.7 – Rexlab - Placa de Experimentos ...................................................... 51
Figura 3.8 – Rexlab – Software cliente ................................................................. 51
Figura 3.9 – Rexpic .............................................................................................. 52
Figura 3.10 – WebLab-DEUSTO-PIC – Placa de Experimentos .......................... 53
Figura 3.11 – WebLab-DEUSTO-PIC – Página do Experimento .......................... 54
Figura 3.12 – Elab Project .................................................................................... 55
Figura 4.1 - Arquitetura definida .......................................................................... 59
Figura 4.2 – PIC16F877A ..................................................................................... 60
Figura 4.3 - Displays de 7 segmentos ................................................................. 61
Figura 4.4 - Display LCD ..................................................................................... 62
Figura 4.5 - Câmera IP ........................................................................................ 69
Figura 5.1 - PIC16F877A com circuitos necessários ........................................... 71
Figura 5.2 - Placa de experimentos ..................................................................... 73
Figura 5.3 - Esquema em blocos da PME10A ..................................................... 73
Figura 5.4 - Protocolos da Internet ...................................................................... 74
Figura 5.5 - Protocolos implementados ............................................................... 75
Figura 5.6 - Mensagem de requisição HTTP ....................................................... 76
Figura 5.7 - Formato Intel Hexadecimal .............................................................. 77
Figura 5.8 - Código em Assembly e seu hexadecimal correspondente ............... 77
Figura 5.9 - Fluxograma para a realização da ICSP ........................................... 79
Figura 5.10 – Circuito utilizado para aplicar 0V e 13V ao PIC16F877A ............... 81
Figura 5.11 – Circuito de comunicação do microservidor com PIC16F877A ....... 82
Figura 5.12 – Exemplo de requisição com o método GET ................................... 83
Figura 5.13 – Circuito dos botões ......................................................................... 84
Figura 5.14 – Página do Experimento .................................................................. 85
Figura 5.15 – Trecho relativo ao envio do arquivo de programação .................... 86
Figura 5.16 – Trecho da página relativo aos botões ............................................ 86
Figura 5.17 – Requisição do arquivo XML ........................................................... 87
Figura 6.1a – Imagem do experimento ................................................................. 89
Figura 6.1b – Página do experimento .................................................................. 89
Figura 6.2 – Teste do botão de reset ................................................................... 90
Figura 6.3 – Teste do aviso de perda de conexão ............................................... 90
Figura 6.4 – Programa para teste dos LEDs ........................................................ 91
Figura 6.5 – LEDs acendendo em sequêcia ......................................................... 92
Figura 6.6 – Teste dos botões .............................................................................. 93
Figura 6.7 – Teste dos botões (continuação) ....................................................... 94
Figura 6.8 – Teste do LCD ................................................................................... 95
Figura 6.9 – Acionamento do LCD com e sem backlight ...................................... 96
Figura 6.10 – Acionamento do motor ................................................................... 96
Figura 6.11 – Programa escrito em linguagem C ................................................. 97
Figura 6.12 – Resultado obtido após envio do programa em C ........................... 98
Lista de Tabelas

Tabela 3.1 – Trabalhos selecionados ................................................................... 56


Tabela 4.1 – Microservidores selecionados ......................................................... 64
Tabela 4.2 – Tecnologias web .............................................................................. 68
Tabela 5.1 – Comandos da ICSP ......................................................................... 80
Tabela 6.1 – Custo do projeto .............................................................................. 99
Lista de Siglas e Abreviações

AD Analógico Digital
AJAX Asynchronous JavaScript And XML
CCP Compare Capture PWM
CGI Commom Gateway Interface
CI Circuito Integrado
CLP Controlador Lógico Programável
CPU Central Processing Unit
CNC Computer Numeric Control
CSS Cascading Style Sheets
DOM Document Object Model
DSP Digital Signal Processor
EAD Educação a Distância
EEPROM Electrically-Erasable Programmable Read-Only Memory
FPGA Field Programmable Gate Array
GPIB General Purpose Interface Bus
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
ICSP In-Circuit Serial Programming
IIS Internet Information Server
ISA Industry Standard Architeture
LCD Liquid Crystal Display
LED Light Emitting Diode
NIC Network Interface Card
PIC Nomenclatura dos Microcontroladores da Microchip
PLD Programmable Logic Devices
PWM Pulse Width Modulation
RAM Random Access Memory
RFC Request For Comments
USB Universal Serial Bus
VI Virtual Instrument
XML eXtensible Markup Language
Sumário

Capítulo 1 ............................................................................................................. 15
Introdução ............................................................................................................. 15
1.1. Contextualização ..................................................................................... 15
1.2. Motivação ................................................................................................ 16
1.3. Objetivos ................................................................................................. 17
1.4. Metodologia ............................................................................................. 18
1.5. Principais Contribuições .......................................................................... 18
1.6. Estrutura do Trabalho.............................................................................. 19
Capítulo 2 ............................................................................................................. 21
Fundamentação Teórica ....................................................................................... 21
2.1. Microcontroladores .................................................................................. 21
2.2. O Ensino de Microcontroladores ............................................................. 26
2.3. Execução Remota de Experimentos ....................................................... 28
2.3.1. Placa de Experimentos ........................................................................ 29
2.3.2. Placa de Controle ................................................................................. 29
2.3.3. Comunicação com o Servidor de Experimentos .................................. 30
2.3.4. Servidor de Experimentos .................................................................... 31
2.3.4.1. Computador Servidor ........................................................................ 31
2.3.4.2. Microservidor Web ............................................................................ 33
2.3.5. Cliente do Experimento Remoto........................................................... 36
2.3.5.1 Utilização de Software Específico ...................................................... 37
2.3.5.2 Utilização de Aplicação Web .............................................................. 40
Capítulo 3 ............................................................................................................. 45
Trabalhos Correlatos ............................................................................................. 45
3.1. Levantamento Bibliográfico ..................................................................... 45
3.2. Laboratórios de Acesso Remoto de Áreas Diversas ............................... 46
3.3. Laboratórios de Acesso Remoto na Área de Microcontroladores ........... 49
3.4. Comentários Sobre os Laboratórios Estudados ..................................... 55
Capítulo 4 ............................................................................................................. 59
Laboratório Remoto Proposto .............................................................................. 59
4.1. Arquitetura Definida................................................................................. 59
4.2. Placa de Experimentos ........................................................................... 59
4.3. Servidor de Experimentos ....................................................................... 62
4.4. Cliente do Experimento Remoto ............................................................. 65
4.5. Câmera ................................................................................................... 69
Capítulo 5 ............................................................................................................. 70
Projeto do Sistema ................................................................................................ 70
5.1. Placa de Experimentos ........................................................................... 70
5.2. Servidor de Experimentos ....................................................................... 73
5.3. Cliente do Experimento Remoto ............................................................. 84
Capítulo 6 ............................................................................................................. 88
Validação do Laboratório Remoto ......................................................................... 88
6.1. Teste de Comunicação ........................................................................... 88
6.2. Acionamento dos LEDs ........................................................................... 91
6.3. Leitura dos Botões .................................................................................. 92
6.4. Display LCD ............................................................................................ 94
6.5. Módulo PWM........................................................................................... 96
6.6. Programa em Linguagem C .................................................................... 97
6.7. Comentários Sobre os Testes Realizados .............................................. 98

Capítulo 7 ........................................................................................................... 100


Conclusão e Trabalhos Futuros .......................................................................... 100
Referências Bibliográficas ............................................................................... 102
Anexo 1 .............................................................................................................. 108
Capítulo 1 – Introdução

Este capítulo apresenta o contexto no qual este trabalho está inserido, a


motivação, os objetivos para a criação da proposta e a metodologia empregada
para concretizar este projeto. Finalmente, é exposta a organização deste
documento.

1.1 – Contextualização

O elevado grau de abstração em disciplinas da área tecnológica tem se


mostrado um grande obstáculo a ser enfrentado por professores e alunos de
graduação. Conceitos fundamentais como tensão e corrente, somente podem
ser verificados de forma indireta, através da consequência de sua presença
(SOUZA e OLIVEIRA, 2001). Nesse sentido, é cada vez mais necessária a
utilização de ferramentas que tornem mais evidentes a observação dos
conceitos estudados. Atividades didáticas voltadas para experimentação
ganham importância considerável, pois é através delas que se consegue
quebrar a barreira que separa o conceito teórico visto em sala de sua aplicação
prática. Além disso, tem sido amplamente reconhecido que os resultados
máximos de aprendizagem são alcançados se a teoria é apoiada por trabalho
prático experimental (MCDERMOTT et al., 2007). Isso torna o uso de
laboratórios e equipamentos sofisticados indispensável para obtenção de um
conhecimento sólido e preciso.
Seria importante que as atividades experimentais pudessem ser
expandidas, de forma a permitir um maior tempo de acesso aos laboratórios
por parte dos alunos, sem restrições de tempo e horários, para repetir
determinado procedimento experimental que não tenha sido adequadamente
compreendido. Infelizmente, fatores econômicos limitam o número de
equipamentos e instalações destinadas à experimentação e o aumento
constante do número de alunos impossibilita o acesso livre a determinados
ambientes (ZHANG et al., 2004).
O crescente desenvolvimento da Internet, acessível a um número cada
vez maior de usuários, e a crescente facilidade na aquisição de computadores

15
pessoais e outros dispositivos de acesso permitem que novas tecnologias
sejam utilizadas como ferramentas de apoio à transferência de conhecimento,
como o uso dos Laboratórios de Experimentação Remota (MARCHEZAN et al,
2004; ZHANG et al., 2004), que se mostram uma solução promissora para
problemas de limitação de recursos em instituições de ensino.

1.2 – Motivação

Atualmente, o número de laboratórios remotos para práticas na área de


eletrônica é bastante reduzido, menor ainda é o número de laboratórios desse
tipo voltados para o ensino de microcontroladores. Alguns destes podem ser
encontrados em WISINTAINER (1999).
Apesar do número reduzido, muitas são as vantagens da experimentação
remota, buscando resolver de forma eficaz os problemas de acesso aos
laboratórios convencionais. Dentre as vantagens pode-se citar (WISINTAINER,
1999; CHELLA e FERREIRA, 2004; CHELLA, 2006):
• acesso ao laboratório de qualquer lugar e em qualquer horário, bastando
para isso ter acesso a Internet;
• incremento das atividades práticas de um curso convencional: em um
curso de natureza presencial, além das práticas já realizadas no próprio
laboratório, estudos extra classe podem ser realizados sem que o aluno
se desloque até o laboratório;
• compartilhamento de equipamentos entre instituições;
• vida útil prolongada: a vida útil de determinados equipamentos pode ser
prolongada, já que esses não estão sendo usados de forma direta. Com
o acesso remoto fica mais difícil o desgaste desses equipamentos
devido ao manuseio constante.
• redução de custos, sem a necessidade de presença física do aluno no
laboratório, elimina-se a necessidade de instalações espaçosas e
pessoal de manutenção, o que pode representar diminuição nos custos.
• modularidade, pois permite o uso com novos equipamentos e
experimentos.

16
Além da utilização da experimentação remota como, por exemplo,
complemento das atividades presenciais para a obtenção de melhores
resultados de aprendizagem, existem casos onde não seria possível a
utilização de laboratórios de outra maneira. No âmbito de EAD (Ensino A
Distância) e dos cursos on-line, o modelo tradicional de acesso aos laboratórios
nem sempre é uma opção. Os laboratórios de experimentação remota
possibilitam aos estudantes situados distantes de suas instituições de ensino
participar de aulas de laboratório (SILVA, 2006).
Além disso, ainda no âmbito da EAD, é cada vez mais necessário o
desenvolvimento de ferramentas que torne o aluno proveniente de cursos de tal
modalidade tão capaz quanto o aluno proveniente de cursos totalmente
presenciais (SALES, 2008).
O presente trabalho propõe o desenvolvimento de um laboratório remoto
controlado via Internet que possibilita a realização em tempo real de
experimentos remotos na área de microcontroladores, mais especificamente
para microcontroladores da família PIC, tendo como justificativa o auxílio no
ensino de disciplinas de microcontroladores em cursos da área tecnológica.
Espera-se com isso que o aprendizado seja melhorado através da
facilidade encontrada pelo aluno na execução de programas vistos em sala de
aula. Esta facilidade se dá através da execução remota de tais programas,
efetuada em qualquer lugar e a qualquer hora, bastando, para isso, acesso a
Internet. Assim, práticas podem ser realizadas sem diferenças significativas de
uma prática convencional desenvolvida no próprio laboratório, pois o sistema
oferece um canal de comunicação bidirecional entre instrumento e aluno, com
uma visualização real do experimento a ser executado.

1.3 – Objetivos

Este trabalho tem como objetivo especificar e construir um sistema para


experimentação remota com microcontroladores da linha PIC e a visualização
da experiência por meio de uma câmera.

17
Os objetivos específicos são:

• propor, verificar e validar um sistema que possibilita a realização de


práticas de microcontroladores à distância e com visualização por meio
de câmera;
• testar o sistema em um ambiente de controle a ser construído no
Instituto Federal de Ensino Tecnológico – Campus Juazeiro do Norte
(IFCE - Campus Juazeiro do Norte);
• utilizar o sistema desenvolvido no auxílio à disciplina de
Microcontroladores dos cursos de Tecnologia em Automação Industrial
(IFCE- Campus Juazeiro do Norte e IFPB- Campus Cajazeiras).

1.4 – Metodologia

A metodologia utilizada para o desenvolvimento deste trabalho envolve:

• fundamentação teórica quanto aos microcontroladores e o ensino de


microcontroladores;
• estudo das tecnologias disponíveis para implementação de laboratórios
remotos;
• pesquisa bibliográfica sobre laboratórios remotos na Internet;
• definição das tecnologias a serem adotadas no projeto;
• proposta e implementação de um sistema que possibilita a realização de
práticas de microcontroladores a distância;
• validação do sistema proposto.

1.5 – Principais Contribuições

Este trabalho tem como principais contribuições:

• análise comparativa dos sistemas disponíveis relacionados com


laboratórios remotos na área de microcontroladores;
18
• definição de uma arquitetura para um sistema de experimentação
remota com o microcontrolador PIC;
• desenvolvimento de um laboratório remoto com recursos diferenciados,
oferecendo uma solução de apoio no aprendizado de microcontroladores
acessível através da Internet.

Dentre outras contribuições se destacam ainda o trabalho Laboratório de


Experimentação Remota com Microcontroladores PIC aceito e publicado no V
Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação
Tecnológica (CONNEPI 2010) realizado entre os dias 17 a 19 de novembro de
2010.

1.6 – Estrutura do Trabalho

O restante deste trabalho está organizado como segue.

O Capítulo 2 descreve a fundamentação teórica deste trabalho.


Inicialmente é feito uma introdução aos microcontroladores, definição e
modelos disponíveis com ênfase ao modelo utilizado no trabalho.
Posteriormente é mostrada qual a abordagem utilizada atualmente para
o ensino dos microcontroladores. Finalmente, é apresentada uma definição
para laboratório de experimentação remota, seus principais componentes, bem
como as opções tecnológicas disponíveis atualmente para a execução de
experimentos remotos.
No Capítulo 3 é descrito o resultado da pesquisa bibliográfica realizada
sobre o tema. São apresentados laboratórios remotos semelhantes ao proposto
observando as tecnologias empregadas em seu desenvolvimento bem como
algumas desvantagens observadas.
Com base nas informações estudadas nos Capítulos 2 e 3, o Capítulo 4
apresenta a arquitetura definida para o laboratório remoto proposto. Todas as
tecnologias que compõem o sistema são justificadas de acordo com o que foi
apresentado anteriormente.
O Capítulo 5 aborda em detalhes o desenvolvimento dos diversos
sistemas de hardware e software e sua integração.
19
A avaliação do sistema é realizada no Capítulo 6. Cada módulo do
dispositivo é testado utilizando-se algumas das experiências que já fazem parte
do curso convencional de microcontroladores.
No Capítulo 7 é apresentada a conclusão deste trabalho e as
possibilidades de trabalhos futuros que podem ser integrados ao sistema.

20
Capítulo 2 – Fundamentação Teórica

Neste capítulo é apresenta a teoria considerada essencial para a


definição do laboratório remoto proposto. Inicialmente é feita uma descrição
geral do objeto de estudo do laboratório remoto, que são os
microcontroladores, e os detalhes sobre o ensino deste tipo de dispositivo. Em
seguida é apresentada uma estrutura geral de um laboratório de
experimentação remota, e finalmente as tecnologias com maior aplicabilidade
no seu desenvolvimento são abordadas com maiores detalhes.

2.1 - Microcontroladores

Um microcontrolador pode ser definido como um sistema computacional


completo em um único circuito integrado, utilizado como elemento de controle
em sistemas eletrônicos. É composto basicamente por uma unidade central de
processamento, memória de dados, memória de programa e dispositivos de
entrada e saída. Comparando com um microprocessador, o microcontrolador
perde em poder de processamento e ganha em integração de funcionalidades
já que este possui memória de programa e dados, pinos lógicos e interfaces
padrão de comunicação como RS232 e até mesmo USB (Universal Serial Bus)
em um único encapsulamento (MIYADAIRA, 2009).
Os microcontroladores são utilizados no controle de equipamentos nas
mais diversas áreas: eletrodomésticos, instrumentação, automação industrial,
dentre outras. Até bem pouco tempo atrás o uso de microcontroladores na área
de eletrodomésticos estava limitado aos produtos considerados de alta
tecnologia. Porém, com a constante queda no custo de fabricação, esses
dispositivos ganham cada vez mais espaço em produtos mais simples como
máquina de lavar, microondas, fogões e refrigeradores (SOUZA e LAVINIA,
2009).
Estima-se que brevemente em um lar comum de um país desenvolvido
seja possível encontrar mais de 20 microcontroladores nos mais diversos
aparelhos. Outra aplicação importante dos microcontroladores é na redução de
consumo de recursos naturais, um sistema baseado em microcontrolador pode

21
monitorar o fornecimento de determinado recurso de forma eficiente como é o
caso de sistemas de injeção eletrônica bicombustível nos automóveis e a
redução do consumo de motores elétricos.
Para quem deseja adquirir conhecimentos sobre eletrônica e
programação, os microcontroladores são uma ótima escolha, proporcionando
os recursos necessários para criar aplicações sofisticadas e baratas facilmente.
Em uma revista de eletrônica atual, observa-se que quase todas as aplicações
mostradas usam um microcontrolador, realizando operações complexas,
fornecendo interface com o usuário e respostas a determinadas entradas.
Esses CIs (circuito integrado) são baratos, têm um surpreendente nível de
desempenho e são fáceis de integrar a uma determinada aplicação.
Atualmente no mercado existe um grande número de fabricantes e
modelos de microcontroladores, alguns desses são apresentados a seguir:

• Texas Instruments - Fabricante da linha de microcontroladores MSP430


voltados para aplicações de baixo consumo de energia. Empresa da
área de semicondutores desde a década de 50, atua principalmente no
mercado de DSPs (Digital Signal Processor) e microcontroladores.

• Atmel – Fabricante dos microcontroladores AVR, desenvolvidos em


1996, foi um dos primeiros a utilizar memória Flash ao invés da
EEPROM (Electrically-Erasable Programmable Read-Only Memory)
utilizada por outros microcontroladores da época.

• Analog Devices - Fabrica o microcontrolador ADUC, otimizado para


controle de processos e também uma ampla variedade de componentes
analógicos e digitais que podem ser utilizados com microcontroloadores.

• Microchip – Produz a conhecida linha de microcontroladores PIC, além


de memórias, circuitos de controle e acionamento para utilização com
seus microcontroladores. Os PICs são uma família de
microcontroladores que processam dados de 8,16 e mais recentemente
32 bits com extensa variedade de modelos e periféricos internos,
arquitetura Harvard e conjunto de instruções RISC.
22
A família de microcontroladores PIC da Microchip Technology é formada
por uma extensa variedade de modelos com as mais diversas funcionalidades
e aplicações, e tem sido adotada por diversas instituições de ensino no Brasil
na disciplina de microcontroladores devido a uma série de características
importantes, como:

• número reduzido de instruções, em torno de 35 dependendo do modelo;


• instruções de largura fixa produzindo um código enxuto;
• vasta bibliografia disponível;
• pacote de softwares free para utilização com microcontroladores PIC;

Considerada uma das famílias de microcontroladores mais populares e


fáceis de usar dentre as disponíveis no mercado, os PICs contam hoje com
mais de 500 modelos, cada um projetado para determinada aplicação. Essas
variações consistem de diferentes tamanhos de memórias, quantidades e
disposições de pinos de I/O, quantidade de hardware externo necessário,
encapsulamentos e periféricos internos disponíveis. Características que se
destinam a simplificar o projeto de determinada aplicação.
Todos os componentes da Microchip (MICROCHIP, 2010) são muito
bem documentados na sua página, contendo milhares de arquivos que incluem
datasheets, application notes e manuais que podem ser usados para ajudar
desenvolvedores a alcançar a maneira mais eficiente de utilizar os
microcontroladores PIC em suas aplicações.
A estrutura interna de um microcontrolador PIC típico pode ser vista na
Figura 2.1.

23
Figura 2.1 - Estrutura interna de um microcontrolador PIC.

A memória de programa armazena o programa escrito pelo usuário,


podendo ser do tipo EEPROM ou Flash, com barramentos de 12, 14 ou 16 bits.
A CPU decodifica cada instrução existente na memória de programa e realiza a
tarefa correspondente. A memória de dados, do tipo RAM (Random Access
Memory) guarda as variáveis e os registradores utilizados pelo programa. Os
dispositivos periféricos são funções especiais que dependem do modelo de PIC
utilizado, algumas dessas funções são: conversor AD (Analógico Digital),
módulo PWM (Pulse Width Modulation), temporizadores e comunicação serial.
As linhas de comunicação de entrada e saída (I/O) são chamadas de portas,
estas estão divididas em grupos de 8 bits, o que equivale a 8 linhas de I/O, o
número de portas depende do modelo, o primeiro grupo é chamado de PORTA,
o segundo de PORTB e assim sucessivamente. Os bits pertencentes às portas
são chamados Rxy, onde x é o nome da porta e y o número do bit, assim o
RB0 por exemplo, é o bit 0 do PORTB.
A Microchip tem dado um passo na frente de outros fabricantes
disponibilizando recursos como o MPLAB (MPLAB, 2010) (Figura 2.2), um
ambiente de desenvolvimento integrado totalmente gratuíto que visa apoiar
cada etapa do processo de desenvolvimento de aplicações.

24
Figura 2.2 – Ambiente MPLAB.

Também são oferecidas placas de demonstração ou kits didáticos como


também são chamados juntamente com vários programas exemplos. Um
desses kits fornecidos pela Microchip pode ser visto na Figura 2.3.

Figura 2.3 – Kit Microchip.

25
2.2 - O Ensino de Microcontroladores

Devido ao largo emprego de microcontroladores, como visto


anteriormente, é imprescindível que cursos técnicos e superiores na área de
elétrica e/ou eletrônica e até mesmo computação reservem pelo menos uma
disciplina para o estudo desses dispositivos (WEISS et al., 2005).
A disciplina pode ser dividida basicamente em três etapas. A primeira é
uma introdução à arquitetura de microcontroladores e a linguagem de
programação a ser utilizada, normalmente C ou Assembly ou até mesmo as
duas. Em alguns cursos já é exigido que os alunos tenham conhecimentos
prévios em linguagem C e em sistemas digitais. A segunda parte é dedicada ao
estudo dos módulos internos do microcontrolador como timer’s, conversores
AD, interrupções e como trabalhar com hardwares típicos como botões,
displays e teclados. A terceira parte busca o desenvolvimento de projetos
simples que envolvam conhecimentos mais apurados tanto de hardware como
de software.
Para aplicar os conceitos adquiridos nas aulas teóricas, os alunos
escrevem seus programas e testam o seu funcionamento em ferramentas de
simulação e/ou em kits didáticos como mostrado na Figura 2.4 e Figura 2.5
respectivamente.

Figura 2.4 – Software de Simulação.

26
Figura 2.5 – Kit didático.

O uso de ferramentas de simulação oferece algumas vantagens no


desenvolvimento de projetos utilizando microcontroladores, pois o aluno não
precisa estar atento e nem perder tempo com conexões que sempre devem
existir como alimentação, clock e outras do tipo. Também não existe o
problema de conexões indevidas danificarem permanentemente componentes
do circuito o que é comum com alunos iniciantes, ao realizarem ligações
erradas e produzir curtos-circuitos.
O uso de kits didáticos é positivo tendo em vista a proximidade que os
alunos terão com circuitos do mundo real e a dificuldade para a solução de
problemas nos mesmos, os alunos tendem a utilizar de forma indevida o
confortável ambiente de depuração de um simulador. Ao invés de utilizá-lo
como a ferramenta ideal para ajudá-los a entender o funcionamento interno do
microcontrolador, eles acabam por seguir uma abordagem por tentativa e erro
para a solução dos seus problemas (GRIDLING e WEISS, 2006).
Um ponto positivo para ferramentas de simulação está no sentido de que
o aluno precisa ter noção do funcionamento do hardware para montar
determinado circuito no simulador enquanto que no kit didático todas as
ligações já estão feitas bastando para o aluno somente se preocupar com o
software. Esse problema pode ser contornado com a utilização kits modulares,
esses necessitam que sejam feitas conexões de acordo com a função a ser
utilizada, um kit desse tipo está descrito em WEISS et al. (2005).

27
Os componentes básicos de um laboratório de Microcontroladores são:
computador com ambiente de programação instalado, software de simulação e
kit didático. O uso de ambas as soluções pode ser benéfico no sentido de uma
ferramenta ser complementar à outra, mas a adoção de tal solução implica em
elevação dos custos do laboratório.
Pressões econômicas sobre as instituições de ensino e o surgimento de
novas tecnologias têm estimulado a criação de novas ferramentas
educacionais, em particular os laboratórios de experimentação remota.

2.3 – Execução Remota de Experimentos

Um laboratório de experimentação remota pode ser definido como um


conjunto de instrumentos de propósito geral, conectados de forma que é
permitido o acesso a determinado dispositivo físico através de uma rede de
comunicação, possibilitando também a configuração desses instrumentos e a
análise dos dados por eles produzidos (SILVA, 2006).
Assim, estudantes têm acesso de forma remota a equipamentos
eletrônicos para assim realizarem práticas com liberdade de horários e tempo
de uso maior do que normalmente dispõem nas aulas presenciais (SILVA,
2006). Segundo WISINTAINER (1999) o acesso e a reconfiguração de
instrumentos remotamente se tornarão um evento comum e crescente no
mercado de trabalho, sendo esperado o crescimento deste paradigma em
paralelo ao crescimento da teleconferência.
Laboratórios remotos se diferenciam de ferramentas de simulação no
sentido de que os Laboratórios remotos fornecem dados de um sistema real,
ao passo que ferramentas de simulação usam um modelo matemático
preestabelecido para a obtenção dos resultados.
Os sistemas para experimentação remota empregam em sua
implementação diversas tecnologias que são apresentadas nesta seção, todas
seguindo o modelo cliente servidor.
Na Figura 2.6 é mostrado um diagrama da arquitetura básica de um
laboratório remoto, as opções referentes a cada bloco funcional são detalhadas
seguindo o modelo ilustrado nesta figura.

28
Figura 2.6 – Arquitetura básica de um laboratório remoto.

2.3.1 - Placa de Experimentos

Constitui o foco do experimento, é o sistema físico a ser analisado


remotamente. Na maioria das vezes é um equipamento que deve ser
programado para permitir o seu controle por meio de software, como por
exemplo, CLP (Controlador Lógico Programável), CNC (Computer Numeric
Control), DSP, microcontroladores ou FPGA (Field Programmable Gate Array).

2.3.2 - Placa de Controle

Também chamado de dispositivo de aquisição de dados, este bloco é


responsável por coletar os dados do experimento e repassá-los ao servidor, a
placa de controle também recebe estímulos do servidor e atua no experimento.
Um sistema de aquisição de dados pode, por meio de interfaces de
condicionamento de sinal, realizar leitura de sensores analógicos, digitais e de
instrumentos de medição localizados na placa de experimentos, bem como
acionar dispositivos atuadores controlados à distância.

29
Uma placa de controle relativamente simples pode ser construída utilizando
microcontroladores de baixo custo como em (NUMAJIRI, 2003; CHELLA,
2004). O uso desses dispositivos pode se tornar vantajoso devido a:
• possuírem módulo de comunicação USB e serial integrados o que
facilitaria a comunicação com o servidor de experimentos;
• conversores AD para a leitura de valores analógicos vindos da placa de
experimentos;
• grande número de portas de entrada e saída o que facilitaria o
acionamento de dispositivos na placa de experimentos.
Sistemas de custo mais elevado como LABJACK (2010), utilizado em
VIEDMA et al. (2005) podem ser encontrados no mercado com uma grande
variedade de recursos, como comunicação Ethernet além de Serial e USB,
muitas entradas e saídas analógicas e software supervisório próprio. Algumas
vezes, fabricantes podem utilizar um protocolo próprio de comunicação com o
servidor, o que pode ser considerado uma desvantagem em se utilizar placas
de controle comerciais.
Neste bloco também estão inseridos os instrumentos de bancada como
osciloscópio, multímetros e geradores de função programados para fornecer
dados relativos às medições através de interfaces de comunicação,
possibilitando medições à distância.

2.3.3 - Comunicação com o Servidor de Experimentos

A comunicação da placa de controle com o servidor de experimentos


pode ser feita utilizando-se alguma das interfaces de comunicação
normalmente disponíveis em um computador comum: serial, paralela, USB ou
até mesmo ethernet. O barramento GPIB (General Purpose Interface Bus),
mesmo necessitando de uma placa adicional para ser utilizado em um
computado comum, constitui uma opção muito utilizada para conexão do
servidor de experimentos com instrumentos de medida, permitindo o controle
de até 15 dispositivos com uma única interface.

30
2.3.4 - Servidor de Experimentos

O servidor de experimentos tem a função de estabelecer uma conexão


via Internet entre o cliente do experimento remoto e a placa de controle do
experimento. Assim é possível que o aluno atue no experimento enviando
comandos à placa de controle.

2.3.4.1 - Computador Servidor

Com base nos trabalhos pesquisados, dentre as formas mais usuais de


se utilizar um computador comum como servidor de experimentos se destaca a
utilização de: softwares específicos via sockets, servidores HTTP (HyperText
Transfer Protocol) genéricos (Apache, IIS por exemplo) e servidores baseados
em Labview.
Em WISINTAINER (1999) é descrito um projeto de software específico
para acesso remoto ao microcontrolador 8051 utilizando o conceito de sockets.
Um padrão primitivo para comunicações via Internet, o socket pode ser
conceituado como uma camada abstrata, acima da camada de transporte, que
é identificado por um endereço IP e uma porta, podendo ser utilizado pelos
programas aplicativos (KUROSE e ROSS, 2006). Fazendo uso da biblioteca de
funções WinSock é possível desenvolver qualquer tipo de aplicativo para rodar
em redes TCP/IP.
Sistemas baseados em servidores HTTP genéricos permitem ao cliente
ações de comando via CGI (Common Gateway Interface) ou Servlets, assim é
possível fazer com que o computador servidor possa enviar e receber
mensagens através das interfaces de comunicação mencionadas
anteriormente. Neste tipo de sistema não é necessário o desenvolvimento do
servidor, mas somente dos programas que permitirão o controle do
experimento, no caso CGI desenvolvido em linguagem C ou Perl e Java no
caso de Servlets (ÁLVARES e FERREIRA, 2003).
O CGI é um padrão de comunicação que possibilita que aplicativos
externos sejam executados em servidores web. Considerado um método
bastante rudimentar, possibilita que um cliente inicie um programa localizado
no servidor, chamado programa CGI, e esse programa disponibilize resultados

31
no navegador web (ALHALABI, 2001), habilitando a criação de páginas
dinâmicas como as que enviam informações de bancos de dados para o
usuário e que atualizam seu próprio conteúdo constantemente.
Um programa CGI quando chamado pode gravar e ler dados do servidor
e utiliza esses dados para gerar código HTML (HyperText Markup Language)
dinâmico que é transmitido para o navegador que chamou o CGI, apresentando
na forma de página HTML.
Segundo ÁLVARES e FERREIRA (2003), a programação baseada em
CGI é a uma abordagem bastante utilizada para o controle de sistemas através
da Internet baseada na interface web. A sua desvantagem é a limitação de
interatividade com o usuário, e pelo fato de sobrecarregar o servidor, pois tais
programas não mantêm geralmente a conexão Internet persistentemente
aberta, implicando em uma baixa velocidade.
Servlets é outra tecnologia para aplicações web executadas do lado
servidor. Desenvolvida pela Sun Microsystem, os servlets são aplicações em
Java que têm um funcionamento similar aos programas CGI, recebem uma
solicitação de um navegador web e com base nos dados constroem um
conteúdo apropriado para respostas do servidor, possibilitando assim a
geração de páginas dinâmicas.
O LABVIEW é um poderoso software para simulação, instrumentação e
análise de sistemas, desenvolvido para computadores pessoais podendo rodar
em vários sistemas operacionais, tem a flexibilidade de uma linguagem de
programação combinada com ferramentas gráficas, especificamente projetadas
para aquisição, análise, controle e apresentação de dados (MICHELON, 2006).
Desenvolvido pela National Instruments (NATIONAL, 2010), o LABVIEW
pode ser considerado uma interessante alternativa para o acesso a dispositivos
remotos via Internet, devido às funcionalidades de comunicação com a Internet,
aquisição dos dados e sua excelente integração com os instrumentos que
utilizam o protocolo de comunicação GPIB.
Soluções utilizando LABVIEW apresentam também a vantagem de
permitir facilmente o projeto do software com uso de ferramentas gráficas,
utilizando uma linguagem de programação por blocos de alto nível e
instrumentos virtuais (VIs) já implementados que podem se comunicar com
facilmente com instrumentos reais, facilitando a representação gráfica e

32
tratamento matemático. Por meio de um servidor HTTP embutido no próprio
LABVIEW é possível tornar os VIs acessíveis por qualquer navegador web,
como também a construção de programas CGIs para uso com os instrumentos
virtuais.
Devido a tantas potencialidades, os sistemas desenvolvidos utilizando o
LABVIEW necessitam de uma versão completa do software instalada no
servidor de experimentos, o que pode significar um custo bastante elevado
para desenvolvimento de tal sistema. Detalhes das suas funcionalidades do
lado cliente são apresentados na seção 2.3.5.1.

2.3.4.2 - Microservidores Web

Um Microservidor Web pode ser definido como um dispositivo de


tamanho e custo reduzidos com capacidade de conectar dispositivos elétricos a
uma rede Ethernet (BERNHARDT et al., 2003), constituindo assim uma opção
bastante interessante para exercerem a função de servidores de experimento.
Com a popularidade da Internet, a fabricação de pequenos servidores
web torna-se uma das tendências atuais, permitindo o controle e
monitoramento de dispositivos via Internet. A cada dia são desenvolvidos
novos produtos com características de Internet embutida possibilitando a partir
de software específico ou navegador web a configuração, manipulação e
disponibilização de informações sobre seu estado.
Os microservidores são implementados utilizando-se
microcontroladores, microprocessadores ou FPGA (SILVA, 2006) que se
comunicam com circuitos de interfaces de rede padrão. As primeiras
experiências com microservidores utilizavam um dispositivo processador
(microcontrolador, microprocessador ou FPGA) diretamente conectado a uma
placa de rede comum, como é o caso do projeto PICNIC (PICNIC, 2003), do
microservidor Chiron (BERNHARDT, 2001) e a primeira versão do projeto
Picoweb (LIGHTNER, 1999).
O PICNIC utiliza um PIC16F877 (microcontrolador da Microchip)
conectado a uma placa de rede (NIC - Network Interface Card) ISA (Industry
Standard Architeture) NE-2000 com base no controlador 8019AS da Realtek,

33
toda a documentação e código fonte do projeto estão disponíveis para
download podendo ser utilizado livremente.
Hoje, muitos servidores Web estão disponíveis no mercado prontos para
fazer parte de determinada aplicação, diferenciando-se em funcionalidades,
custo e complexidade. Alguns desses são descritos a seguir.

RMC2200 RabbitCore – Produzido pela Rabbit Semiconductor (RABBIT,


2010), este módulo (Figura 2.7) tem como componente principal o processador
Rabbit 2000 operando a 22.1 MHz, possuindo 256K de memória Flash, 128K
de memória RAM, 4 portas seriais, 26 linhas de I/O, relógio em tempo real e
interface Ethernet integrada. O RMC2200 é um módulo de tamanho reduzido
projetado para fazer parte de um sistema maior que forneça a tensão de
alimentação e a interface para dispositivos externos. A pilha TCP/IP com
código fonte aberto é fornecida pelo fabricante.

Figura 2.7 – RMC 2200.

PicoWeb – O Picoweb foi publicado em algumas revistas técnicas


reivindicando o título de menor servidor web do mundo, a versão inicial utilizava
apenas a memória interna do microcontrolador e uma placa de rede com
barramento ISA para disponibilizar a conexão a redes ethernet (SILVA, 2002).
Hoje o PicoWeb (LIGHTNER, 1999) usa o microcontrolador Atmel 8515,
o qual oferece 8 MHz de velocidade de processamento, 8K de memória Flash,
512 bytes de EEPROM, 512 bytes de RAM e 32 linhas de I/O. Na placa de
desenvolvimento ainda temos uma memória EEPROM de 32k para o
armazenamento de páginas web e imagens. A conexão Ethernet é feita pelo

34
controlador RTL8019AS da Realtek que disponibiliza uma interface de rede
10BaseT (RJ-45) como pode ser visto na Figura 2.8.
No firmware existe um kernel real time e pilha TCP/IP, a programação é
feita através da porta paralela de um PC.

Figura 2.8 – PicoWeb.

WIZ220IO - A Wiznet, antiga iinchip, produz o módulo WIZ220IO (WIZNET,


2010) baseado no microcontrolador Atmega128, é composto pelo W5300, um
controlador Ethernet 10/100BaseT e um conector RJ45, como visto na Figura
2.9. O W5300 possui em seu hardware os protocolos TCP, IP, UDP, ICMP e
ARP incluindo endereço MAC. O dispositivo conta com 20 linhas de I/O, sendo
16 digitais e 4 analógicas com resolução de 12 bits. Através da barra de pinos
colocada no lado inferior da placa é possível a conexão com os circuitos
externos.

Figura 2.9 – WIZ220IO.

35
Microchip – A microchip fabrica o circuito integrado ENC28J60, um
controlador Ethernet 10BaseT com MAC e PHY integrados desenvolvido para
ser utilizado com sua linha de microcontroladores, completamente compatível
com o padrão IEEE 802.3 ele possibilita o desenvolvimento de sistemas que se
conectem a Internet. Possui uma memória interna de 8Kbytes e interface serial
SPI.
Procurando facilitar o trabalho dos desenvolvedores e aprimorar sua
gama de microcontroladores, a Microchip acoplou o ENC28J60 a um modelo
da linha 18F, surgindo assim a série PIC18FXXJ60. Esse dispositivo trabalha
com um clock interno de 10MHz, possuindo memória flash de 128K, 3808 bytes
de RAM e até 100 linhas de I/O dependendo do modelo, além das
características comuns a família 18F como comunicação serial, canais de
conversão AD, e módulo CCP (Compare Capture PWM).
Este circuito integrado pode ser adquirido separadamente com
distribuidores Microchip ou em módulos prontos comercializados por terceiros
como o que é caso da placa PME10A (PME10A, 2008) vista na Figura 2.10.
Esses módulos constam de uma placa de circuito com o conector Ethernet
ligado ao microcontrolador, memória externa e barra de pinos para conexão
com os circuitos auxiliares.

Figura 2.10 – PME10A.

2.3.5 - Cliente do Experimento Remoto

Finalizando a descrição sobre os componentes da arquitetura de um


laboratório (Ver Figura 2.6) tem-se o cliente do experimento remoto. Ele é
responsável por disponibilizar dados relativos ao experimento através de uma
interface gráfica fornecida pelo servidor de experimentos, permitindo ao aluno

36
atuar no experimento enviando estímulos à placa de experimentos e obtendo
respostas quer seja através de imagens reais ou animações que reproduzam o
estado atual do experimento.
A comunicação do cliente com o servidor pode ser feita com utilização
de software específico disponibilizado para download e instalado na máquina
cliente ou através de navegador web comum.
A não dependência de sistema operacional e tipo de navegador são
pontos importantes a considerar na escolha do software cliente, bem como a
não necessidade de instalação de softwares adicionais e plugins.

2.3.5.1 - Utilização de Software Específico

Como visto anteriormente, uma alternativa interessante para


comunicação entre processos independente de estarem ou não no mesmo
computador é o uso de socktes, no Windows quem gerencia a sua utilização é
a DLL winsock, essa pode ser acessada por sistemas desenvolvidos pelo
usuário utilizando por exemplos os ambientes de programação Visual C ou
Delphi, permitindo fácil acesso às funcionalidades dos sockets.
Em WISINTAINER (1999) é desenvolvida uma inteface gráfica
utilizando-se do ambiente de programação Delphi juntamente com o conjunto
de componentes Dwinsock, o qual faz acesso à DLL winsock do Windows.
Para que haja transferência de dados para a placa de experimentos são
necessários dois programas, o cliente e o servidor. O servidor está instalado
em uma máquina com IP fixo escutando em uma porta de serviços a presença
de algum socket (de dados ou conexão/desconexão) que corresponda a este
IP e porta. Para o cliente estabelecer uma conexão com o servidor, deverá
saber o IP e porta de serviços do mesmo. Uma vez com esta informação, a
chamada de um método do componente dwinsock é o suficiente para
estabelecer a conexão com o servidor.
O Labview oferece várias opções quanto ao modo de comunicação entre
cliente e servidor, o cliente poderá, por exemplo, se comunicar com o servidor
de experimentos por meio de um navegador web como já foi mencionado ou
utilizando o LabVIEW Player. O LabVIEW Player, Figura 2.11, é um executável
disponibilizado gratuitamente pela National Instruments (NATIONAL, 2010), ele

37
é projetado especificamente para controle via web dos VIs do LabVIEW, ao
fazer download e instalar o LabVIEW player qualquer um poderá abrir e
executar tais VIs. Assim, o cliente obtém resultados de testes e medições de
locais remotos através da Internet. O LabVIEWPlayer é equipado com várias
funcionalidades para manipular os dados recebidos e gerar gráficos de acordo
com a necessidade do usuário.

Figura 2.11 – LabViewPlayer.

Em todos os casos, o cliente será capaz de executar os VIs


desenvolvidos especificamente para o experimento em questão,
proporcionando uma grande capacidade de controle dos instrumentos para
receber e apresentar os dados do experimento.
Em FERNANDEZ et al. (2000) foram desenvolvidos dois programas
utilizando LABVIEW para controle de experimentos e ensaios remotamente, o
programa servidor é executado no servidor de experimentos, controlando a
execução das medidas e a recepção e transmissão dos dados pela Internet, a
Figura 2.12 mostra o programa servidor. O programa cliente, mostrado na
Figura 2.13, deve ser instalado e executado no computador do aluno sendo
responsável por enviar parâmetros a serem utilizados no experimento bem
como visualizar o gráfico com os resultados do mesmo.

38
Figura 2.12 – Programa servidor desenvolvido em (FERNANDEZ et al.,
2000).

Figura 2.13 – Programa cliente desenvolvido em (FERNANDEZ et al.,


2000).

Além da facilidade de programação, a escolha do LABVIEW se deve a


sua excelente integração com os instrumentos e placas de aquisição de dados
que utiliza o protocolo GPIB como forma de comunicação.

39
2.3.5.2 - Utilização de Aplicação Web
A utilização do próprio navegador Web como interface de acesso ao
laboratório remoto oferece algumas vantagens, dentre as quais é possível citar:
de fácil utilização, necessidade mínima de softwares adicionais no lado cliente
e por ser uma plataforma independente. Entretanto, esse tipo de interface
necessita de meios para que o aluno controle o experimento, o que não é
comum de se encontrar em páginas Web, e que utilize preferencialmente de
um ambiente amigável. Muitas são as propostas de se incorporar parâmetros
de controle e indicadores gráficos em páginas Web, como já visto, o Labview
possibilita isso. Outras tecnologias são mencionadas a diante.
Através de java applets é possível desenvolver páginas com
instrumentos de controle incorporados. Um applet é um programa escrito em
Java que pode ser incluído em páginas HTML. São geralmente utilizados para
exibir uma parte gráfica que permitem a interação com o usuário.
A linguagem Java, através dos aplicativos applets, é atualmente a forma
mais popular de programação para Internet. Dentre suas vantagens, pode-se
citar a interatividade com o usuário, a fácil programação e a sua natureza
voltada para a Internet. É altamente portável devido a geração de um código
intermediário interpretado pela máquina virtual Java do lado cliente.
Os applets permitem estabelecer uma conexão em tempo real com o
servidor de experimentos, o cliente será capaz de controlar o experimento,
definir suas propriedades e monitorar as diversas variáveis envolvidas no
processo, tudo isso se utilizando de uma simples página web. Do ponto de
vista de segurança, os applets não têm acesso a dados locais sem a iniciativa
do cliente, não sendo capazes de ver ou modificar qualquer informação no
computador do cliente.
Como desvantagens, pode-se citar o tempo para a sua inicialização e
sua velocidade de operação. Para poder executar um applet é necessário que
o cliente tenha em seu computador a máquina virtual java instalada.
Na Figura 2.14 é mostrado um exemplo de uma página desenvolvida em
WONG et al. (2001) utilizando Java applets para o controle de um braço
flexível.

40
Figura 2.14 – Página desenvolvida em (WONG et al., 2001).

De acordo com BERNTZEN et al. (2001), os applets se tornam


inadequados no que diz respeito ao armazenamento e apresentação dos dados
de determinada medição com relação a transferência para outras aplicações,
devido à estrutura de segurança do Java, um outro problema com Java é que a
funcionalidade de um applet pode variar entre diferentes navegadores.
Outra abordagem poderia utilizar mais plenamente as funcionalidades
dos navegadores mais recentes, permitindo aplicações em JavaScript e XML
(eXtensible Markup Language), que dá ao cliente grande flexibilidade em
armazenamento, processamento e apresentação dos dados recebidos.
A linguagem Javascript foi desenvolvida pela Netscape com o objetivo
de obter uma linguagem intermediária entre a linguagem Java e a HTML, de tal
forma que fosse complementar e integrada a essas duas linguagens. O
Javascript é fácil de usar, aberta, e tem capacidade de ligar objetos e recursos
tanto da linguagem Java como da HTML. Enquanto as applets Java são
desenvolvidas apenas por programadores, o Javascript pode ser usado por
autores de páginas HTML para controlar a interação e comportamento de suas

41
páginas (ÁLVARES, 2003). Uma das principais vantagens do Javascript é a
capacidade de execução local das tarefas contribuindo assim para a redução
do tráfego da rede, ao invés do servidor executar as tarefas e retornar os
resultados para o navegador, este último poderá manipular algumas tarefas
localmente com um menor tempo de resposta.
O código da aplicação em Javascript é recuperado pelo browser Web na
forma de texto, juntamente com o documento HTML. Apesar da sua
simplicidade, o aprendizado de Javascript exige um esforço consideravelmente
maior do que para HTML mesmo sendo mais simples que a linguagem Java, a
linguagem Javascript é baseada em linguagem de programação o que a torna
muito mais sofisticada do que a linguagem HTML.
Com o Javascript é possível criar páginas dinâmicas, cujo conteúdo
muda de acordo com as requisições do usuário, ou mesmo disparar sons ou
executar applets quando o usuário entra ou sai de uma página, permitindo
assim uma maior interatividade como usuário. Outra aplicação bastante comum
da linguagem Javascript é a validação de formulários, ou seja a verificação dos
dados que o usuário digitou no formulário, antes que estes sejam submetidos
ao programa CGI, aumentando o desempenho do servidor e também
diminuindo a frustração do usuário. Pode-se também implementar respostas a
eventos do usuário, tais como cliques do mouse, movimentos do mouse sobre
um link, e entrada de dados em um formulário.
Atualmente, qualquer navegador web está habilitado a interpretar código
Javascript.
A Figura 2.15 mostra uma interface desenvolvida com uso de Javascript
em BERNTZEN et al. (2001), nela é possível a obtenção de parâmetros em
diversos pontos do circuito.

42
Figura 2.15 – Interface desenvolvida em (BERNTZEN et al, 2001).

Uma combinação do Javascript com outras tecnologias como XML, CSS


(Cascading Style Sheets) e DOM (Document Object Model), o AJAX
(Assyncronous Javascript and XML) permite o desenvolvimento de aplicações
com alto grau de interatividade. Com AJAX é possível a chamada de serviços
web de forma assíncrona, isto é, ao realizar determinada ação o cliente não
necessita aguardar uma resposta do servidor para continuar a usar o
experimento, e na chegada da resposta, a página não é totalmente
recarregada, mas somente a porção afetada é modificada.
Outro aspecto importante está no fato de que todos os seus
componentes são completamente suportados pela maioria dos navegadores
web, qualquer aplicação cliente desenvolvida em AJAX pode ser executada
sem a necessidade de instalação de softwares ou plugins adicionais e de
outras plataformas como, por exemplo, telefones móveis.
Empresas como Google, têm desenvolvido algumas de suas mais famosas
aplicações utilizando o AJAX, como é o caso do Google Maps e Google Mail, o
que mostra as grandes potencialidades desta ferramenta.
A Figura 2.16 mostra alguns controles desenvolvidos utilizando AJAX
para o sistema descrito em (ÇIMEN et al., 2008).

43
Figura 2.16 – Controles desenvolvidos em AJAX.

Como desvantagem, o AJAX não oferece suporte para páginas com


áudio e vídeo, necessitando de outra ferramenta para isto.
Como alternativa, uma aplicação simples e de fácil implementação,
poderia ser desenvolvida fazendo uso somente de padrões já bastante
conhecidos como HTML, XHTML, CSS, etc. Tendo a vantagem de sua perfeita
integração com qualquer navegador web.
Uma página de aparência simples e com poucos recursos gráficos, tal
aplicação não exigiria muitos recursos de hardware e nem muita experiência
com aplicativos web, permitindo assim que pessoas menos capacitadas e de
menor poder aquisitivos possam ter acesso aos serviços oferecidos pelo
laboratório remoto.

44
Capítulo 3 – Trabalhos Correlatos

O presente capítulo apresenta o levantamento bibliográfico sobre


laboratórios remotos, observando as tecnologias empregadas em seu
desenvolvimento e enfatizando os laboratórios que estão disponíveis para
acesso via Internet.
Assim, este capítulo visa contribuir na concepção do laboratório de
experimentação remota proposto neste trabalho.

3.1 – Levantamento Bibliográfico

Este estudo tem como base pesquisas realizadas no portal de buscas do


Google, no IEEE Explorer e em bibliotecas virtuais de teses e dissertações de
universidades do Brasil, assim foi possível obter uma coletânea de trabalhos
relacionados ao tema proposto.
As buscas realizadas sobre os temas: laboratório remoto, remote
laboratory, weblabs e telelabs, resultaram em uma grande quantidade de
material, assim decidiu-se pela escolha de 7 trabalhos que disponibilizavam
acesso via Internet, sendo 4 desses laboratórios remotos para estudos de
microcontroladores (WONG et al., 2001; CASINI et al., 2001; ALAMO et al.,
2002; WISINTAINER, 1999; WISINTAINER, 1998; ZUBIA et al., 2008; ÇIMEN
et al., 2008 ) e ainda 3 artigos (MARCHEZAN et al, 2004; DRUTAROVSKY et
al., 2009; DENIZ et al., 2003) onde o tema era a implementação direta de
laboratórios remotos com diversidades nas propostas apresentadas, permitindo
comparação entre eles.
Nos itens 3.2 e 3.3 são listados os laboratórios remotos selecionados
que estão ou já estiveram disponíveis para acesso através da Internet, mesmo
com a grande diversidade encontrada, poucos são dedicados ao ensino de
microcontroladores. No item 3.4 são feitos alguns comentários sobre os
laboratórios estudados e as diferenças em relação ao projeto proposto.

45
3.2 - Laboratórios de Acesso Remoto de Áreas Diversas

MPCRL
O Web-Enabled Mechatronis/Process Control Remote Laboratory
(WONG et al., 2001), do Departamento de Engenharia Mecânica, Aeroespacial
e Manufatura da Polytechnic University, Brooklyn, Nova York, acessado em
agosto de 2009 e disponível em http://mechatronics.poly.edu/MPCRL/ pode ser
visto na Figura 3.1.

Figura 3.1 – Página inicial do MPCRL – Fonte: WONG et al., 2001.

(a) Entrada de dados (b) Imagem ao vivo


Figura 3.2 – a) Página de entrada de dados; b) Imagem em tempo real
do experimento – Fonte: WONG et al., 2001.
46
Laboratório da área de controle de processos oferece controle em tempo
real de sete sistemas físicos, vídeos de amostra e material explicativo.
A página de entrada de dados é mostrada na Figura 3.2a, o usuário
através do navegador web pode inserir parâmetros de controle ao sistema que
são processados via Matlab e a resposta mostrada na tela. Também é possível
a visualização do experimento ao vivo por meio de câmera como mostrado na
Figura 3.2b.

Telelab
Laboratorio da Universidade de Siena na Itália, acessado em agosto de
2009 e disponível em http://act.dii.unisi.it/home.php.
Descrito em CASINI et al. (2001) e visto na Figura 3.3 e 3.4, assim como
o anterior, também utilizado para práticas na área de controle de processos,
esse laboratório permite o controle de 8 experimentos diferentes. Em cada
experimento o aluno encontra: descrição geral do experimento, vídeo de
amostra, visualização ao vivo, utilização de parâmetros pré-programados ou
parâmetros do usuário, gráficos em tempo real das variáveis do sistema e ao
final da prática esses gráficos podem ser armazenados pelo usuário.

47
Figura 3.3 – Página de entrada do Telelab – Fonte: CASINI et al., 2001.

Figura 3.4 – Experimento no Telelab – Fonte: CASINI et al., 2001.

48
Em dois dos experimentos, Magnetic Levitation e Helicopter Simulator, é
ainda possível uma competição entre os estudantes.

ILab
Laboratório do MIT (Massachusetts Institute of Technology), acessado
em agosto de 2009, descrito em ALAMO et al. (2002) e disponível em
http://ilab.mit.edu/. Nesse laboratório, Figura 3.5, o usuário precisa ser
cadastrado para ter acesso e pode realizar experimentos na área de eletrônica,
os experimentos constam basicamente de curvas dos principais componentes
vistos em disciplinas de eletrônica analógica, bem como análise da resposta de
circuitos. Como desvantagem não apresenta visualização real dos
componentes e nem permite modificações nos circuitos analisados.

Figura 3.5 – Experimento no ILab – Fonte: ALAMO et al. 2002.

3.3 - Laboratórios de Acesso Remoto na Área de Microcontroladores

Nesta seção são mostrados laboratórios semelhantes ao proposto neste


trabalho e consideradas as diferenças em relação ao mesmo.

49
Rexlab
Projeto da Universidade Federal de Santa Catarina, acessado em agosto
de 2009 e disponível em http://www.inf.ufsc.br/~jbosco/lexrem3p.htm. O
Rexlab, ilustrado nas Figuras 3.6, 3.7 e 3.8, teve inicio com o trabalho de
WISINTAINER (1999). Nele é apresentado um laboratório de experimentação
remota com o microcontrolador 8051. Através da instalação de um software
cliente, o aluno pode enviar para um computador servidor o seu programa
previamente compilado. O servidor contém os aplicativos necessários para a
comunicação com a Internet e com a placa de experimentos contendo o
microcontrolador 8051.
A placa de experimentos, mostrada nas Figuras 3.6 e 3.7, constitui-se de
um circuito básico com o microcontrolador 8051 acoplada num slot ISA do
computador servidor. Após o envio do programa para o servidor, o usuário
através do software cliente poderá fazer verificações dos registradores internos
do microcontrolador, bem como enviar estímulos.
O Rexlab, por ser um dos primeiros trabalhos na área, tem a
desvantagem de não possuir câmera para que o aluno tenha uma visão real o
experimento e também não ter acesso a todos os registradores internos do
8051, visto que nele é gravado um programa monitor responsável por receber e
executar o programa enviado.

Figura 3.6 – Rexlab - detalhe da placa de Experimentos – Fonte:


WISINTAINER 1999.

50
Figura 3.7 – Rexlab - Placa de Experimentos - Fonte: WISINTAINER,
1999.

Figura 3.8 – Rexlab – Software cliente - Fonte: WISINTAINER, 1999.

51
Hoje o Rexlab se tornou um grande projeto envolvendo várias
instituições de pesquisa com um conjunto de vários laboratórios de
experimentação remota em diversas áreas.

RexPIC
Um integrante mais recente do projeto Rexlab, o Rexpic permite que o
aluno realize experiências com um microcontrolador da família PIC. Enviando
um programa previamente compilado através de um software cliente mostrado
na Figura 3.9, o aluno poderá visualizar o estado de LEDs (Light Emitting
Diode) conectados a uma das portas de saída do microcontrolador
(WISINTAINER e ALVES, 1998).

Figura 3.9 – Rexpic – Fonte: WISINTAINER 1998.

52
O rexpic já faz uso de câmera para visualização em tempo real das
imagens do experimento, mas aluno não tem liberdade para programar outro
registrador interno do microcontrolador se não a porta de saída onde os LED’s
estão conectados.
O rexpic está disponível em http://www.inf.ufsc.br/~jbosco/pic.htm mas
até a data de confecção deste trabalho a conexão com o servidor estava com
problemas.

WebLab-DEUSTO-PIC
Em ZUBIA et al. (2008) é descrito um laboratório remoto para
experiências com microcontroladores da família PIC utilizando um
microservidor como servidor de experimentos. Projeto da universidade de
Deusto na Espanha, no WebLab-DEUSTO-PIC o aluno através do navegador
web pode enviar o seu programa sem a necessidade de software cliente,
também é possível o envio estímulos e o acesso a uma das portas do
microcontrolador como mostrado nas Figura 3.10 e 3.11. Como desvantagem
apresenta a falta de uma câmera para a visualização do circuito real e como o
rexpic, utiliza um software monitor na placa de experimentos de forma que o
aluno não terá controle total sobre o microcontrolador dessa placa.

Figura 3.10 – WebLab-DEUSTO-PIC – Placa de Experimentos – Fonte :


ZUBIA et al., 2008.

53
Figura 3.11 – WebLab-DEUSTO-PIC – Página do Experimento – Fonte :
ZUBIA et al., 2008.

Elab Project
Outro laboratório para experiências com microcontroladores PIC descrito
em (ÇIMEN et al., 2008), disponível em http:///www.elab.aku.edu.tr e acessado
em agosto de 2009, apresenta uma placa de experimentos com muitos
periféricos e que pode funcionar no modo presencial ou a distância, alguns
elementos desse laboratório são mostrados na Figura 3.12.
Neste não é preciso a instalação de um software cliente, o acesso é feito
via navegador web e as imagens do experimento podem ser vistas através de
uma câmera. Tanto a placa de experimentos como a câmera estão conectadas
a um computador servidor que disponibiliza a página de acesso ao laboratório.

54
(a) Placa de Experimentos. (b) Página do Experimento.
Figura 3.12 – Elab Project – Fonte: ÇIMEN et al., 2008.

3.4 – Comentários Sobre os Laboratórios Estudados

A seguir são apresentadas algumas considerações em relação aos


principais laboratórios estudados.
Em alguns deles é necessário um cadastro do usuário, e que este
aguarde por uma resposta do administrador com login e senha para acesso,
resposta esta que pode demorar muito ou simplesmente nunca chegar como é
o caso do ILab (http://ilab.mit.edu/).
Foram encontrados laboratórios com páginas escritas na língua do país
de origem, não possuindo versão em inglês. Isso impede que pessoas sem
domínio da língua utilizem o laboratório, como é o caso do Elab Project
(http://www.elab.aku.edu.tr).
Outro problema encontrado foi a extrema lentidão da conexão,
provocando uma quebra de seqüência nas imagens da câmera. Isso pode
muitas vezes inviabilizar a realização da experiência.
Um fator que difere entre os laboratórios são as ferramentas utilizadas
para o desenvolvimento da arquitetura, entretanto, esta segue sempre o padrão
determinado no Capítulo 2.
Na Tabela 3.1 os trabalhos selecionados são relacionados de acordo
com as tecnologias de implementação apresentadas no Capítulo 2.

55
Tabela 3.1 – Trabalhos selecionados
Laboratório Tecnologias Observações
MPRL - Apache e Matlab - Possui visualização do experimento
(WONG et al., 2001) no servidor de em tempo real.
http://mechatronics.poly.edu/ experimentos
MPCRL/ - Placa de controle
com MultiQ-3 (DAC)
- Applets Java no
lado cliente
Telelab
(CASINI et al., 2001) - Applets Java no - Possui visualização em tempo real,
http://act.dii.unisi.it/home.ph lado cliente mas com certa lentidão que pode
p atrapalhar a experiência.
ILab - IIS no servidor de - Não apresenta visualização real do
(ALAMO et al., 2002) experimentos. experimento e nem permite
http://ilab.mit.edu/ - Placa de controle modificações nos circuitos analisados.
com HPE5250
(DAC).
- Comunicação GPIB
com instrumentos
- Applets Java no
lado cliente.
Rexlab - Aplicação - Não apresenta visualização, nem
(WISINTAINER, 1999) específica na dispositivos periféricos conectados ao
http://www.inf.ufsc.br/~jbosc comunicação entre microcontrolador e não permite controle
o/lexrem3p.htm cliente e servidor. total dos registradores internos do
- Barramento PCI na microcontrolador.
comunicação com a
placa de
experimentos.
RexPIC - Aplicação específica - Permite visualização por meio de
(WISINTAINER, 1998) na comunicação câmera mas, só apresenta um conjunto
http://www.inf.ufsc.br/~jbosc entre cliente e de LED’s como periféricos acessíveis.
o/pic.htm servidor.

WebLab-DEUSTO-PIC - Utiliza microservidor - Não é possível visualizar o


(ZUBIA et al., 2008) como servidor de experimento real.
experimentos. - Não permite controle sobre todos os
- Utiliza somente registradores do microcontrolador.
HTML no lado cliente.

56
Elab Project - Computador como - Permite interação entre os usuários.
(ÇIMEN et al., 2008) servidor de - Possui diversos periféricos na placa
experimentos. de experimentos
- Porta paralela na
comunicação com o
servidor.
- AJAX no lado
cliente
Laboratório da UNICAMP - IIS e Labview no - Não necessita instalação de
(MARCHEZAN et al, 2004) servidor de aplicativos para acessar o laboratório.
experimentos. - Utiliza software comercial tornando o
- Placa controle com custo do sistema elevado.
microcontrolador PIC.
- Comunicação USB
entre servidor e placa
de controle
Laboratório Remoto para - Labview no servidor - Para usar o laboratório é preciso ter o
FPGA de experimentos e no labview instalado, o que restringi de
(DRUTAROVSKY et al., cliente. certa forma os locais de acesso.
2009) - Comunicação com
instrumentos de
medida feita via
ethernet.

R-Lab - IIS no servidor de - Não oferece visualização real do


(DENIZ et al., 2003) experimentos. experimento.
- Comunicação serial - Instrumentos de medida que já
e paralela com oferecem interface para medições
instrumentos de remotas têm custos elevados.
medida.
- Interface do lado
cliente gerada pelos
instrumentos de
medida

O sistema proposto difere dos pesquisados no sentido de dispensar a


utilização de um computador como servidor de experimentos e a não utilização
de software proprietário, o laboratório remoto é acessado através do próprio
navegador de Internet. A adoção de um microservidor no papel de servidor de

57
experimentos tem como principal vantagem a diminuição no custo total do
sistema.
Outro fator diferencial desta proposta diz respeito à quantidade de
dispositivos disponíveis na placa de experimentos, o que está diretamente
relacionado à quantidade de experiências que podem ser realizadas.
Nos laboratórios pesquisados na área de microcontroladores, os
dispositivos que podem ser controlados pelo usuário se restringem à apenas
LED’s e displays LCD (Liquid Crystal display), o projeto proposto, além do uso
de câmera, faz uso de vários elementos controláveis em tempo real como
botões, displays, LED’s e motor de forma que o usuário possa interagir com
sua própria programação, a não utilização de bootloader proporciona controle
total do dispositivo, tornando assim, as práticas mais próximas possíveis de
uma prática presencial.

58
Capítulo 4 – Laboratório Remoto Proposto

Este capítulo apresenta a arquitetura do laboratório remoto proposto de


acordo com as opções de hardware e software apresentadas no Capítulo 2.
Esta arquitetura tem como objetivo a definição de um sistema de baixo custo,
confiável e de fácil acesso.

4.1 - Arquitetura Definida

A arquitetura definida para o laboratório de experimentação remota com


microcontroladores PIC é ilustrada na Figura 4.1, e seus componentes são
detalhados nos itens 4.2 a 4.5

Figura 4.1 - Arquitetura definida.

4.2 - Placa de Experimentos

A placa de experimentos utilizada tem como base o microcontrolador


PIC16F877A - Figura 4.2 - um modelo da família PIC relativamente poderoso

59
com um grande número de recursos disponíveis, a seguir são listados alguns
motivos que levaram a sua escolha:
• 33 pinos configuráveis como entrada e saída digitais;
• 15 interrupções disponíveis;
• memória de programa FLASH, permitindo uma gravação rápida do
programa e diversas vezes;
• memória de programa de 8k words;
• 3 Timers;
• módulos AD e PWM;
• programação in-circuit;
• adotado por diversas instituições de ensino na disciplina de
microcontroladores devido ao seu baixo custo e diversidade de recursos.

Figura 4.2 – PIC16F877A.

Os periféricos que compõem a placa bem como sua justificativa de


utilização são listados a seguir. Apesar da placa de experimentos poder ser
utilizada localmente, todos eles foram definidos tendo em mente o seu controle
e observação à distância.

60
• Conjunto de LED’s – O LED é um componente muito utilizado para
sinalização em sistemas eletrônicos, o acionamento de LEDs é um dos
primeiros tópicos em qualquer livro para iniciação em microcontroladores
e também a primeira abordagem prática nas disciplinas dessa área.
Fazendo com que o conjunto de LEDs acenda de formas
predeterminadas o aluno aprende a trabalhar com as interfaces de saída
do microcontrolador, sendo um item indispensável a qualquer kit de
treinamento.

• Displays de sete segmentos: Mostrado na Figura 4.2 são dispositivos


formados por sete LED’s em forma de retângulos dispostos de tal
maneira que quando acionados possam formar caracteres, são
utilizados normalmente para mostrar contagem de eventos.

Figura 4.3 - Displays de 7 segmentos.

• Conjunto de Botões: Os botões na placa de experimentos dão a


possibilidade aos alunos de escreverem programas capazes de receber
estímulos vindos do mundo externo. Esses botões podem ser acionados
através da página do experimento, proporcionando assim experiências
mais reais e com grau de interatividade maior.

61
• LCD: O display de cristal líquido (LCD) ilustrado na Figura 4.3, é um
painel eletrônico utilizado na exibição informações. Existindo em vários
tipos no mercado, o modelo utilizado possui duas linhas com 16
caracteres cada uma, este modelo é muito empregado em sistemas
eletrônicos que necessitam passar alguma informação para o usuário e
é um componente que sempre desperta muito interesse por parte dos
alunos.

Figura 4.4 - Display LCD.

• Motor: O motor é um componente utilizado em práticas que abordam um


tópico importante da disciplina de microcontroladores que é o uso do
módulo PWM, utilizado para variar o valor da potência entregue a
determinada carga, no nosso caso o aluno poderá usar o módulo PWM
para variar a velocidade do motor.

4.3 - Servidor de Experimentos

No papel do servidor de experimentos, optou-se pela utilização de um


microservidor ao invés de um computador devido às seguintes razões:

• custos. Um microservidor pode custar até 10 vezes menos que um


computador comum. Quanto ao consumo de energia elétrica,
dependendo da placa de experimentos, um computador ligado 24 horas
pode representar uma parcela significativa do consumo total do sistema
enquanto que com o uso de um microservidor a sua parcela no consumo
total poderia ser até mesmo desconsiderada.

62
• confiabilidade. Por ser o microservidor um sistema com número bem
menor de componentes estaria menos susceptível a falhas em relação
ao computador.

• escalabilidade. A adição de outras de placas experimentos com outras


funcionalidades tornaria a comunicação com um computador servidor
muito mais complexa tendo em vista o seu limitado número de portas,
necessitando um protocolo extra para o compartilhamento das portas
por cada placa de experimento. A adição de um computador para cada
placa de experimento poderia tornar o projeto inviável. Como cada
microservidor possui seu endereço IP, o sistema pode crescer em
número de dispositivos sem qualquer modificação na rede física.

• outras questões: Tendo em vista a atual situação das instituições


públicas de ensino tecnológico em que o aumento constante do número
de alunos se torna uma meta, um computador que funcione 24 horas
dedicado somente a experimentação remota não seria muito indicado,
podendo este fazer parte de outros ambientes como bibliotecas, salas
de pesquisa ou até mesmo outros laboratórios onde suas
funcionalidades sejam mais plenamente utilizadas. Como o volume de
dados que trafegam durante uma experiência é relativamente pequeno,
o microservidor poderia claramente resolver tal problema. Outro ponto
importante é que o uso de um computador implica obrigatoriamente no
uso de uma placa de controle que sirva de ponte entre o servidor e a
placa de experimento contribuindo ainda mais para a elevação dos
custos.

Para a escolha do microservidor a ser utilizado foi feita uma comparação


das principais características dos modelos descritos no capítulo anterior.
A Tabela 4.1 ilustra essa comparação.

63
Tabela 4.1 – Microservidores selecionados.
RMC2200 PicoWeb WIZ220IO PME10A
(PIC18F87J60)
Velocidade do 22.1MHz 8MHz 16MHz 10MHz
Processador
Memória 256K Flash 8K Flash 128K Flash 128K Flash
128K RAM 512RAM 4K RAM 4K RAM
512EEPROM 32K RAM 2K EEPROM
32k Externa Externa
EEPROM 4K EEPROM
Externa 512K Flash
Externa
Linhas de I/O 26 32 20 45
Periféricos Interface Interface 2 canais AD Interface Serial
Serial Serial 2 canais DA 12 canais AD
Real Time 5 Timers
Clock 3 módulos CCP
5 Timers
Protocolos UDP TCP ARP ARP
Suportados TCP POP3 ICMP ICMP
BOOTP HTTP TCP UDP
FTP SMTP DHCP TCP
HTTP PPPoE DHCP
POP3 HTTP SNMP
SMNP HTTP
SMTP FTP
Documentação Material Material Pouca Vasta
disponível disponível na documentação documentação
na página página disponível na disponível na
página do Internet
fabricante
Software de Sem Muitos Não Disponibilizados
Demonstração exemplos exemplos disponibilizados pela microchip e
disponíveis disponibilizad pelo fabricante do
os na página. módulo
Custo R$ 255,37 US $85,00 US $40,00 R$ 127,00

64
A possibilidade de compra no Brasil sem custos adicionais relativos à
importação, a facilidade de negociação no caso de defeitos de fabricação, o
custo e a quantidade de periféricos disponíveis para a leitura de dados
referentes à placa de experimentos foram os quesitos mais relevantes nessa
decisão.
Analisando as características desejadas no projeto e a não necessidade
de importação, o módulo microservidor adotado tem como base o
microcontrolador da Microchip PIC18F87J60. Além dessas características
desejáveis no projeto, a adoção de um produto Microchip de certa forma
estimula o interesse dos alunos, pois mostra as potencialidades da linha de
microcontroladores em que eles estão trabalhando.
Outro ponto a considerar é que a vasta documentação e quantidade de
projetos disponíveis utilizando esse microcontrolador, principalmente os que
detalham a confecção de um servidor web, propiciam o desenvolvimento no
futuro de módulo microservidor próprio.
A comunicação da placa de experimentos com servidor de experimentos
é implementada utilizando as linhas de I/O do PIC18F87J60 sem problemas
relativos à atenuação de sinal já que o microservidor e a placa de experimentos
fazem parte de uma mesma estrutura.
O microservidor pode também fazer uso de seus módulos especiais
como AD e CCP para leitura de dados relativos ao experimento fazendo assim
o papel da placa de controle já detalhada anteriormente.

4.4 - Cliente do Experimento Remoto

Uma atenção especial deve ser dada na escolha da forma de acesso ao


laboratório, visto que é por meio dela que ocorrerão todas as atividades do
aluno no laboratório remoto.
Plataformas proprietárias como LABVIEW foram descartadas devido ao
seu alto custo, apesar de ser possível a sua utilização com o microservidor
adotado. Este trabalho tem como proposta a concepção de um sistema de
baixo custo o que exclui o uso de tal ferramenta.

65
Quanto à utilização de um software especifico foram observados alguns
inconvenientes:
• a qualidade e a manutenção desta aplicação ficaria totalmente
dependente do seu desenvolvedor;
• todas as estratégias de segurança seriam de responsabilidade do
desenvolvedor, isso pode ser um bom negócio e ao mesmo tempo
perigoso;
• uma pequena mudança no hardware ou software pode exigir uma nova
instalação do programa cliente.

Com base nas afirmações anteriores, uma aplicação específica não é


indicada ao projeto proposto e deve ser usada somente em casos particulares.

De acordo com CHELLA (2006), uma interface gráfica sendo executada


em um navegador web é familiar nos aspectos de apresentação e interação
com o usuário, eliminando os esforços e tempo necessários ao aprendizado de
um novo aplicativo. Ao mesmo tempo essa abordagem torna o sistema
independente de plataforma e sem a necessidade de instalação de softwares
adicionais podendo o acesso ser feito de um computador, telefone móvel ou
qualquer outro dispositivo com conexão à Internet.
Dessa forma, de acordo NIELSEN (1999) alguns princípios de usabilidade
necessitam ser observados, são eles:

• Clareza na informação – As informações contidas em uma página web


devem dar condições para que o usuário possa discernir qual o
propósito daquela página e o que é prioridade. Para isso é preciso uma
organização concisa e objetiva das informações.

• Facilidade de navegação – O caminho até a informação desejada deve


ser curto, com o menor número de ações possível, o que se consegue
com organização da informação.

66
• Simplicidade – Qualquer recurso que desvie a atenção do usuário do
foco da página deve ser evitado, o usuário deseja encontrar a
informação da forma mais rápida possível. Deve-se ter o cuidado para
que essa simplicidade não resulte em omissão da informação.

• Relevância no conteúdo – Textos e imagens concisos e objetivos


diferentes de outros meios de comunicação como revistas e televisão.
Deve-se adotar um estilo de redação otimizado para usuários on-line.

• Manutenção da consistência – O usuário não precisa se preocupar com


o que vai acontecer após determinada ação, o aplicativo web deverá dar
respostas consistentes e uniformes.

• Foco no usuário – O projeto de um aplicativo para web deve estar


focado nas atividades que o usuário irá desempenhar.
A consideração desses aspectos pode tornar a realização das atividades
uma experiência mais próxima possível da que ocorre de forma presencial.
Para a escolha da tecnologia de desenvolvimento web, a Tabela 4.2 foi
montada com base no que foi exposto no capítulo anterior e auxiliará nessa
decisão.

Os critérios utilizados foram:


• Multiplataforma: a aplicação pode ser executada em qualquer sistema
operacional?

• Interatividade: aplicação permite alguma interatividade com usuário?

• Recursos gráficos: a tecnologia permite riqueza de recursos gráficos?

• Flexibilidade: a tecnologia pode ser utilizada em diferentes contextos?

• Programa adicional: a aplicação necessita instalação prévia de software,


plug-in ou máquina virtual?

67
• Custo: a tecnologia é gratuita?

• Outros dispositivos: a aplicação pode ser executada em outros


dispositivos como um telefone móvel?

• Acessibilidade: a aplicação é acessível a pessoas menos capacitadas?

• Áudio e Vídeo: a tecnologia possibilita integração com recursos de áudio


e vídeo?

• Presente em outros laboratórios pesquisados: a tecnologia está presente


em outros laboratórios remotos pesquisados?

Tabela 4.2 – Tecnologias web.


HTML Java Applets AJAX
Multiplataforma Sim Não Sim
Interatividade Não Sim Sim
Recursos Não Sim Não
Gráficos
Flexibilidade Não Sim Sim
Programa Não Sim Não
adicional
Gratuita Sim Sim Sim
Outros Sim Não Sim
dispositivos
Acessibilidade Sim Não Não
Áudio e Vídeo Não Sim Não
Presente em Não Sim Sim
outros
laboratórios
pesquisados

68
Analisando os resultados da Tabela 4.2, o AJAX é a tecnologia mais
adequada às necessidades do projeto, mesmo com a desvantagem de não
dispor de capacidade para recursos de áudio e vídeo

4.5 - Câmera

Como elo de realimentação do sistema, uma câmera é utilizada,


possibilitando ao aluno obter resultados do experimento em tempo real. A
câmera monitora o hardware descrito anteriormente enviando todas as
alterações sofridas por esse hardware para a interface cliente.
O modelo de adotado foi a câmera IP, devido a sua não necessidade de
um computador para disponibilizar as imagens, esta nada mais é que uma
câmera digital com interface de rede padrão Ethernet.
A câmera IP usada no trabalho possui recursos de captura de vídeo,
som, zoom e movimento. Todos esses recursos podem ser acessados através
de uma interface gráfica disponibilizada pelo fabricante e controlada pelo
navegador Web. A Figura 4.5 mostra este dispositivo.

Figura 4.5 - Câmera IP.

69
Capítulo 5 – Projeto do Sistema

Este capítulo apresenta a estrutura definida para o laboratório de


experimentação remota a partir das discussões dos capítulos anteriores. Nele é
concretizada a proposta de desenvolvimento do sistema para experimentação
remota com base nas características introduzidas nos capítulos 2 e 3 e dentro
das especificações definidas no Capítulo 4.
É utilizado um modelo de desenvolvimento dividido em etapas. Ao final
de cada etapa são feitos os testes para verificação de conformidade, à medida
que as especificações iniciais vão sendo atendidas, novas são introduzidas.
Essa técnica foi utilizada devido ao curto espaço de tempo para
desenvolvimento do projeto proposto, assim o desenvolvimento evolui em
versões através da construção incremental de novas funcionalidades até a
versão apresentada neste trabalho.

5.1 - Placa de Experimentos

O projeto tem início com a confecção da placa de experimentos.


Inicialmente não só a placa de experimentos, mas também todo o
hardware foi desenvolvido em uma matriz de contatos ou protoboard como
também é conhecido pelo fato de estarmos na etapa de testes, assim os
componentes utilizados podem ser colocados e retirados facilmente.
Como definido anteriormente, a placa de experimentos é feita com base
no PIC16F877A. Assim como todo microcontrolador este dispositivo necessita
de um conjunto de circuitos externos para o seu funcionamento, são eles:
alimentação, clock e reset, mostrados na Figura 5.1. Esses circuitos foram os
primeiros a serem providenciados.

70
Figura 5.1 - PIC16F877A com circuitos mínimos necessários.

Um conjunto de 8 LED’s foi o primeiro periférico a ser definido, assim


todo o PORTB do PIC16F877A foi utilizada para a conexão com os LEDs, esta
porta foi escolhida porque somente o PORTB e PORTD não possuem funções
especiais que serão utilizadas por outros periféricos. Foram testados alguns
tipos de LEDs e adotado o do tipo alto brilho, pois permitiu melhor visibilidade
na câmera.
O segundo periférico, o display de sete segmentos, foi utilizado o modelo
de cor vermelha devido a sua fácil aquisição no mercado e tamanho reduzido,
apesar do tamanho pequeno, teve-se boa visualização por parte da câmera.
Como existe a possibilidade de multiplexação dos displays, ou seja, vários
displays acionados pela mesma porta, foram colocadas quatro unidades
conectadas aos pinos 0, 1, 3, 4, 5, 6, 7 do PORTC e 0, 1, 2, 3 do PORTD,
assim o aluno pode realizar contagens de até quatro dígitos.
Para o conjunto de botões, foram reservados os pinos 1, 2, 3 e 5 do
PORTA para serem conectados a quatro saídas digitais do microservidor.
Assim, através de botões colocados na página do experimento as saídas do
microservidor serão acionadas enviando estímulos ao PIC16F877A. Em
paralelo com os mesmo pinos do PORTA também foram colocados botões
reais para o caso de experiências presenciais.

71
Os displays de cristal líquido, normalmente utilizados em projetos de
sistemas eletrônicos, admitem dois modos de comunicação, utilizando oito ou
quatro vias de dados. Como existem muitos periféricos conectados aos
terminais do PIC16F877A, optou-se por utilizar a comunicação através de
quatro vias, assim ao utilizarem esse periférico os alunos devem estar cientes
dessa observação sob o risco de não conseguirem utilizar o LCD. Outra
observação é que para que os caracteres possam ser observados através da
câmera é preciso o acionamento do backlight (Luz de fundo) do LCD pois
diferentemente do display de sete segmentos, os seus caracteres não possuem
iluminação própria e são de tamanho reduzido.
O LCD está conectado aos pinos 4 a 7 do PORTD e 8 e 9 do PORTE, o
backlight é acionado através do pino 2 do PORTE.
Como motor foi utilizado um pequeno ventilador encontrado em
equipamentos de informática também conhecido como cooler, um LED foi
colocado por baixo dele para através da câmera pudéssemos ter uma noção da
sua velocidade. Ele está conectado ao pino 2 do PORTC que possui a função
especial de saída do módulo PWM.
Todos os circuitos de interface entre o PIC16F877A e os módulos
periféricos dispositivos atuadores, são bastante discutidos na literatura
especializada dispensando a necessidade de explicações sobre estes nesse
trabalho.
Concluída a montagem da placa de experimentos, foram gravados
localmente vários programas para testes de todos os periféricos. As entradas
são conectadas ao microservidor são testadas após a instalação deste na
placa de experimentos. A Figura 5.2 mostra uma ilustração da placa de
experimento com todos os seus dispositivos associados.

72
Figura 5.2 - Placa de experimentos.

5.2 - Servidor de Experimentos

Com a placa de experimentos pronta, é iniciada a etapa de


implementação do servidor de experimentos, um esquema ilustrativo da placa
PME10A que contém o microcontrolador PIC18F87J60 é mostrado na Figura
5.3

Figura 5.3 - Esquema em blocos da PME10A.

A primeira providência para a instalação da PME10A junto à placa de


experimentos é a confecção do circuito de alimentação, o PIC18F87J60 é um
modelo que funciona com 3,3V de alimentação, e até então só existia o circuito

73
que fornece 5V para a placa de experimentos. A PME10A vem com uma
página de demonstração armazenada em seu hardware, após sua instalação
na placa de experimentos e ligada a alimentação é feita a conexão com um
computador para a visualização dessa página, isso é feito com uso de um cabo
crossover e colocado o endereço IP da PME10A no navegador web. A página é
acessada normalmente e obtem-se uma pequena demonstração do que é
possível fazer com o dispositivo.
Com o microservidor em funcionamento, o passo seguinte é um estudo
de como este poderia receber o arquivo de programação enviado pelo usuário
e gravá-lo na memória de programa do PIC16F877A. As páginas seguintes
detalham a teoria necessária para a conclusão desta etapa.
A Internet é baseada em uma simplificação de quatro camadas da
arquitetura ISO/OSI de sete camadas. Para que determinado sistema possa se
comunicar utilizando a Internet é preciso que nesse sistema esteja
implementado um determinado conjunto de protocolos que ficará responsável
por cada uma dessas quatro camadas. A Figura 5.4 auxilia o que se quer
mostrar.

Figura 5.4 - Protocolos da Internet.

Como os protocolos TCP e IP são os dois protocolos base para o


funcionamento da Internet, todo o conjunto de protocolos é normalmente
chamado de conjunto de protocolos TCP/IP ou simplesmente pilha TCP/IP
devido á maneira como são normalmente dispostos (PEREIRA, 2002).

74
A Microchip disponibiliza gratuitamente uma pilha TCP/IP otimizada para
suas famílias de microcontroladores, alterações necessárias podem ser feitas
de acordo com a aplicação desejada, como por exemplo, a inclusão de novas
funções e utilização de apenas alguns protocolos selecionados.
A Figura 5.5 mostra os protocolos utilizados nesta aplicação.

Figura 5.5 - Protocolos implementados.

No topo da pilha TCP/IP se encontra o protocolo HTTP – Protocolo de


Transferência de Hipertexto - responsável pela camada de aplicação da web e
definido na RFC1945 (BERNERS-LEE et al., 1996) e na RFC2616 (FIELDING
et al., 1999). O HTTP é implementado em dois programas: um cliente (o
navegador, por exemplo) e outro servidor (servidor web). Esses dois programas
conversam um com o outro por meio da troca de mensagens HTTP ou
simplesmente negociação HTTP, assim imagens, textos e outras informações
em formatos variados podem ser disponibilizadas ao usuário (KUROSE e
ROSS, 2006).
Uma negociação HTTP consiste basicamente de uma mensagem de
solicitação, enviada do cliente para o servidor, e uma mensagem de resposta,
enviada do servidor para o cliente. Existem diferentes formas de solicitação, os
chamados métodos, cada mensagem de solicitação HTTP tem um método. O
método diz ao servidor qual a ação a executar.
O servidor HTTP disponível na pilha da Microchip suporta os métodos
GET e POST. O método GET é mais comumente utilizado, geralmente é
usado para pedir ao servidor determinado recurso. Solicitações realizadas via

75
GET são mais fáceis de processar pois os dados são enviados na própria URL
e armazenados na memória do microservidor de uma única vez mas com a
limitação no número de bytes enviados.
O método POST é utilizado para envio de dados ao servidor para que
estes sejam processados de alguma forma. Os dados são inseridos no corpo
da mensagem HTTP logo após o cabeçalho. Este método permite que os
dados sejam virtualmente ilimitados em questão de tamanho, desde que a
aplicação os consiga processar. A aplicação tem de ser capaz de lidar com a
recepção de dados, o que torna este método geralmente mais complexo.
Assim, o arquivo de programação deve ser enviado ao microservidor
através de uma requisição com o método POST, o formato de uma mensagem
de requisição pode ser visto na Figura 5.6.

Figura 5.6 - Mensagem de requisição HTTP.

O microservidor deve identificar uma mensagem de requisição utilizando


o método POST, após isso deve separar o corpo da mensagem do cabeçalho e
estará com o arquivo de programação enviado pelo usuário.
O arquivo de programação gerado por um compilador qualquer para
microcontroladores PIC se encontra no formato Intel Hexadecimal, esse
arquivo é um texto plano ASCII no qual cada linha corresponde a um registro
que contem valores hexadecimais de codificação e seqüência de dados
começando por um endereço absoluto ou offset.

76
O formato geral de cada linha presente no arquivo Intel Hexadecimal
pode ser observado na Figura 5.7 e detalhado em seguida.

Figura 5.7 - Formato Intel Hexadecimal.

• : – Marca o início de linha.


• BB – Quantidade de bytes de dados presente na linha.
• AAAA – Endereço de início do bloco de dados.
• TT – Tipo de registro presente:
00 – Dados
01 – Fim de arquivo
04 – Utilizado no formato de 32 bits
• DDDD....DDDD – Dados presentes na linha
• CC – Checksum. Soma de todos os bytes presentes na linha fazendo o
complemento de dois no final da operação.

A Figura 5.8 mostra um exemplo de um programa para o PIC16F877A


escrito em linguagem Assembly e seu correspondente hexadecimal.

Figura 5.8 - Código em Assembly e seu hexadecimal correspondente.

Para que o PIC16F877A possa receber um novo arquivo de


programação mesmo estando em funcionamento e com o conteúdo de sua

77
memória já ocupada por uma programação anterior é usada a técnica de
programação in-circuit.
A ICSP (In-Circuit Serial Programming) é uma técnica de programação de
microcontroladores da Microchip onde o dispositivo pode ser programado
quando já está fixo a sua placa de circuitos e em qualquer momento.
A microchip define três sinais que devem ser aplicados ao microcontrolador
para realizar a programação in-circuit, são eles:

• Vpp – Tensão de programação de aproximadamente 13V que deve ser


aplicada ao pino MCLR (Master Clear) para levar o PIC16F877A ao
modo de programação;
• clock – Linha de clock aplicada o pino RB6;
• data – Linha de dados aplicada ao pino RB7.

Ao receber a tensão de programação, o microcontrolador automaticamente


entra no modo de programação e aguarda comandos e dados no pino RB7, o
fluxograma da Figura 5.9 mostra a seqüência de comandos para que a
gravação possa ser efetuada.
A Tabela 5.1 mostra a lista dos comandos utilizados.

78
Figura 5.9 - Fluxograma para a realização da ICSP
(MICROCHIP, 2010).

79
Tabela 5.1 - Comandos da ICSP (MICROCHIP, 2010).

Comandos e dados devem ser enviados de forma serial, a cada borda


de descida do sinal de clock presente em RB6 o estado lógico no pino RB7 é
lido, todos os detalhes sobre o protocolo de programação in-circuit para o
PIC16F877A podem ser vistos em (MICROCHIP, 2010).
Quando se faz uma requisição com o método POST o servidor da
microchip automaticamente invoca a função HTTPExecutePOST() e armazena
a quantidade total de dados contidos na mensagem na variável
curHTTP.byteCount. O que se deve fazer é decrementar essa variável cada
vez que se extraem dados do buffer TCP, que é feito com as famílias de
funções TCPFind() e TCPGet(). Com a primeira pode-se localizar os dados no
buffer e com a segunda é possível fazer uma cópia desses dados para a
memória do microservidor. A função HTTPExecutePOST() retorna
HTTP_IO_DONE se a tarefa foi concluída ou HTTP_IO_NEED_DATA para
aguardar que o buffer TCP fique novamente cheio. Com isso é possível realizar
a separação do cabeçalho e o corpo da mensagem e receber todo arquivo de
programação.
De posse dos dados no corpo da mensagem os quais correspondem ao
arquivo hexadecimal, o microservidor necessita implementar o protocolo ICSP
para a transferência do arquivo ao PIC16F877A.
80
Devido ao arquivo de programação possuir tamanhos variados que
dependem da programação realizada e a limitação da memória interna do
microservidor, decidiu-se efetuar a gravação a cada linha completa recebida ao
invés de armazenar todo arquivo para só depois ser gravado no PIC16F877A.
Como visto anteriormente, o início da linha é marcado pelo caractere “ : “ e
sabendo a quantidade dados presente na linha é possível saber quando ela
termina. Ao completar o recebimento de uma linha completa o microservidor
chama um conjunto de funções responsáveis por separar os dados presentes
na linha por tipo (tamanho, offset, dado e checksum) e iniciar a gravação. Caso
seja recebida somente parte da linha, esses dados são armazenados e a
função aguarda por mais dados, isso se repete até que uma linha completa
seja recebida. Um campo especial na última linha sinalizará que a gravação
deverá ser concluída.
Sabendo que microservidor (PIC18F87J60) só trabalha com tensões de
0 a 3,3V em seus pinos de I/O e que para iniciar a gravação é preciso que seja
aplicado ao pino MCLR do PIC16F877A uma variação de 0 a 13V (Vpp), o
circuito da Figura 5.10 foi utilizado.

Figura 5.10 – Circuito utilizado para aplicar 0V e 13V ao PIC16F877A.

81
As linhas Vpp_ON e GND_ON do circuito da Figura 5.11 são conectadas
ao microservidor, levando essas linhas a nível lógico alto o microservidor
poderá aplicar sinais de reset e de programação ao PIC16F877A através da
linha MCLR.
O PIC16F877A também precisa receber os dados de forma serial nos
pinos RB6 e RB7 no padrão ST (Schmitt Trigger) e como já foi dito, o
microservidor trabalha com no máximo 3,3V, o circuito da Figura 5.12 foi
utilizado para tornar possível a comunicação serial com padrões diferentes.

Figura 5.11 – Circuito utilizado para comunicação do microservidor com


PIC16F877A.

Para que fosse realizada a verificação do programa gravado


remotamente no microcontrolador da placa de experimentos, foram
providenciados conectores para que com o uso de um gravador externo fosse
possível fazer a leitura do programa gravado no PIC16F877A e confirmar a sua
integridade. Conexões do mesmo tipo foram realizadas para que fosse possível
gravar o programa do microservidor.
Com isso o microservidor é capaz de receber um arquivo de
programação enviado através da página e gravá-lo na memória de programa
do PIC16F877A na placa de experimentos.
A seguir é visto como configurar o microservidor para que os botões
dispostos na página possam atuar na placa experimentos. Como dito
anteriormente, as mensagens de solicitação realizadas via GET enviam os
dados na própria URL e o microservidor os armazena diretamente na memória

82
de uma única vez, tornando o processamento mais rápido, mas tendo a
limitação no número de bytes enviados, geralmente 100.
Considerando que um botão colocado na página só assumirá os estados
ON e OFF e que um rápido processamento de tal requisição contribui para a
dinâmica do sistema, o método GET se aplica perfeitamente à esta situação.
Com o método GET, os dados são separados do restante da mensagem por
um sinal de interrogação (?) e estão no formato nome1=valor como o exemplo
na Figura 5.12 onde a variável luz tem o valor ON e a variável brilho o valor 50.

/form.htm?luz=on&brilho=50
Figura 5.12 – Exemplo de requisição com o método GET.

Quando o servidor recebe uma mensagem de requisição com um


conjunto de dados anexados à URL, como na Figura 5.13, automaticamente é
chamada a função HTTPExecuteGET() e os dados são decodificados e
armazenados no vetor curHTTP.data em pares de nome e seu valor
correspondente. As funções HTTPGetArg() e HTTPGetROMArg() podem
encontrar facilmente o nome da variável procurada e assim executar a ação
necessária de acordo com o seu valor.
Como existem quatro botões na página da aplicação, quando um desses
é pressionado é enviada a variável de nome “botão” podendo assumir os
valores de 1 a 4 de acordo com qual foi pressionado, o que o microservidor faz
é identificar se a variável “botão” está presente naquela solicitação e executar a
ação correspondente ao seu valor. Conforme o valor recebido, uma linha de I/O
do microservidor é acionada, o circuito da Figura 5.13 foi utilizado para que os
níveis lógicos do microservidor fossem aplicados ao PIC16F877A.

83
Figura 5.13 – Circuito dos botões.

5.3 - Cliente do Experimento Remoto

Nesta seção é descrito o desenvolvimento da página de acesso ao


laboratório remoto.
A página desenvolvida para o laboratório remoto é mostrada na Figura 5.14.

84
Figura 5.14 – Página do Experimento.

Ela contém algumas linhas de texto informativo sobre o projeto, uma


área para o envio do arquivo de programação, outra área com os controles
para atuar no experimento, um link para as imagens da câmera e um menu que
dá acesso à página de configurações.
O envio do arquivo de programação é feito utilizando um campo de
entrada conhecido como formulário na linguagem HTML, nesse campo se deve
colocar o caminho para o arquivo no dispositivo cliente. Com ajuda de um
botão o usuário localiza este arquivo e com um segundo botão envia ao
microservidor.
Um formulário é criado utilizando o elemento <form> e incluído o atributo
method=”POST” para informar o método no qual os dados devem ser enviados.
Na Figura 5.15 é mostrado o trecho do código relativo ao envio do arquivo de
programação.

85
Figura 5.15 – Trecho da página relativo ao envio do arquivo de programação.

Ao enviar o arquivo o microserviodor automaticamente se inicia função


HTTPExecutePOST() que trata os dados como foi descrito anteriormente.
Um caractere especial em forma de círculo é utilizado para representar
os botões responsáveis por enviar estímulo ao experimento. O seu
funcionamento é semelhante ao do botão do tipo push button utilizado em kits
didáticos, só é ativado enquanto estiver pressionado.
Com o mouse posicionando sobre ele, se pressionando o botão esquerdo, o
microservidor leva à nível lógico alto a linha de I/O correspondente. Caso o
botão do mouse seja solto a linha de I/O retorna à nível lógico baixo. A Figura
5.16 mostra o código para um desses botões:

Figura 5.16 – Trecho da página relativo aos botões.

Um clique no caractere “bull” provoca o envio de uma solicitação AJAX


através da função newAJAXCommand do recurso botões.cgi?botão=1. Devido
a presença de dados anexados à URL do recurso, a função
HTTPExecuteGET() é chamada automaticamente e trata os dados como já
exposto.

86
Graças ao uso do AJAX, o estado das saídas do microservidor que
estão associadas aos botões está continuamente sendo monitorado sem que
seja necessária uma recarga de página. Assim, quando o microservidor tem a
sua saída em nível lógico alto, o botão que está pressionado muda de cor
automaticamente para proporcionar mais realidade ao experimento mesmo
tendo as imagens vindas da câmera.
Toda a informação necessária para atualização do estado na página se
obtém do arquivo status.xml. Uma vez que a página é carregada por completo
se inicia um código Javascript que realiza o envio de solicitações AJAX do
recurso status.xml através da função newAJAXCommand como mostrado na
Figura 5.17.

Figura 5.17 – Requisição do arquivo xml.

O arquivo status.xml é o recurso que se deseja obter, updateStatus é a função


que processa a resposta e o último parâmetro indica que se deve repetir a
solicitação indefinidamente.
O arquivo status.xml contém variáveis dinâmicas escritas na forma ~botão(1)~,
através do caratere ~ o microservidor reconhece que se trata de uma variável
dinâmica e substitui por seu valor atual antes de enviar o arquivo status.xml ao
cliente. A updateStatus realiza a mudança de cores dos botões conforme os
valores obtidos de status.xml e caso ocorra falha na comunicação desabilita
todos os botões e mostra a mensagem de falha na área da página reservada
aos botões.
Na página de configurações é possível modificar alguns parâmetros de
rede do microservidor, como, por exemplo, o endereço MAC, o endereço IP e a
máscara de subrede. Essa seção foi criada para evitar que o microservidor
fosse reprogramado com novas configurações de rede sempre que o sistema
fosse conectado a uma rede diferente.
O acesso a essa página é feito mediante login e senha para evitar que
qualquer pessoa possa modificar as configurações.

87
Capítulo 6 – Validação do Laboratório Remoto

Para o teste de funcionamento do sistema são utilzadas algumas das


experiências que já fazem parte do curso convencional de microcontroladores.
Essas experiências permitem ao aluno observar o real funcionamento
das interfaces do microcontrolador abordadas na parte teórica da disciplina,
podendo fazer sua própria programação e variar parâmetros do sistema com o
propósito de avaliar seu comportamento.
É importante salientar que este capítulo não tem como objetivo fazer
uma avaliação quanto à eficácia pedagógica do laboratório de experimentação
remota com microcontroladores PIC, se limitando ao teste de funcionamento do
dispositivo e dos diversos módulos que o compõem através da realização
alguns experimentos.
Os testes foram realizados no IFCE campus Juazeiro do Norte, o
sistema foi instalado no laboratório de sistemas digitais e acessado de diversos
locais dentro do próprio instituto e em outros pontos localizados fora da rede
interna do IFCE.

6.1 - Teste de Comunicação

Com o laboratório remoto conectado a rede, o primeiro teste é saber se


ele está acessível e responde aos controles aplicados via navegador.
Ao digitar os endereços da câmera e do microservidor são apresentadas as
páginas do laboratório de experimentação remota, vistas na Figura 6.1.

88
Figura 6.1 – a) Imagem do experimento.

Figura 6.1 – b) Página do experimento.

Um teste inicial de comunicação é feito pressionando-se o botão de


reset na página do experimento e observando o estado do LED do circuito de
reset, se este estiver apagado indica que o estímulo foi recebido e o
PIC16F877A se encontra em estado de reset, como mostrado na Figura 6.2.
Desta forma pode-se estimar o tempo decorrido desde a aplicação do estímulo
e sua observação na câmera.

89
Figura 6.2 – Teste do botão de reset.

Caso a conexão com a placa de experimentos seja perdida, o estado


atual dos botões não pode ser lido e uma mensagem deve aparecer na página.
A conexão é desfeita intencionalmente para testar se essa sinalização
realmente está ocorrendo como mostrado na Figura 6.3.

Figura 6.3 – Teste do aviso de perda de conexão.

90
6.2 - Acionamento dos LEDs

Para o teste dos LEDs é utilizada uma das primeiras práticas realizadas
na disciplina de microcontroladores.
Essa experiência consiste em levar a nível lógico alto as portas de saída
que estão ligadas aos LED’s. Essa prática fornece os subsídios necessários ao
aluno para trabalhar com o acionamento de dispositivos quaisquer.
O programa em linguagem Assembly, escrito usando o ambiente
MPLAB, é mostrado na Figura 6.4. Nele os LED’s devem acender em
seqüência com um tempo de aproximadamente 200ms entre cada
acendimento.

Figura 6.4 – Programa para teste dos LEDs.

Após o programa compilado, a página do experimento é acessada no


navegador web, o arquivo hex é enviado à placa e o resultado visto na câmera
é mostrado na Figura 6.5.

91
Figura 6.5 – LEDs acendendo em sequência.

Este primeiro experimento se mostrou além das expectativas, a


gravação ocorreu normalmente e o tempo de acendimento entre os LED’s ficou
muito próximo do real, sem lentidão e sem quebra na seqüência de imagens
como poderia ser esperado.

6.3 – Leitura dos Botões

O teste seguinte utiliza instruções que realizam a leitura do estado de


dispositivos conectados ao microcontrolador, no caso os botões.
O programa utilizado permite que seja acionado um determinado display
de sete segmentos, de acordo com o botão que foi pressionado.
Práticas como essa proporcionam ao aluno trabalhar com outros
dispositivos de entrada, como chaves fim de curso, sensores magnéticos e
outros.
Novamente, após o programa ser compilado, o arquivo de programação
é enviado à placa. As imagens das Figuras 6.6 e 6.7 mostram os botões sendo
acionados através da página e as mudanças nos displays vista pela câmera.

92
Figura 6.6 – Teste dos botões.

93
Figura 6.7 – Teste dos botões (continuação).

Dependendo da velocidade de conexão pode existir um pequeno tempo


de espera entre o estímulo aplicado ao botão e a visualização da resposta
àquele estímulo.

6.4 – Display LCD

Apesar de parecer complexo, o display LCD tem sua operação muito


simples. A maioria deles possui recursos internos para facilitar ao máximo seu

94
controle. Seu funcionamento se dá simplesmente pelo envio de comandos para
escrever caracteres escolhidos e manipula-los da forma desejada
Experiências com o display LCD têm como objetivo a familiarização com
dispositivos periféricos de saída muito utilizados em sistemas eletrônicos que
necessitam de algum tipo de interface com o usuário.
O programa utilizado para o teste escreve uma seqüência de caracteres
no display correspondente a uma palavra. Após o programa compilado e
enviado, a palavra apareceu no LCD como esperado, um detalhe importante
observado foi que ao ser pressionado o botão de reset para que a seqüência
fosse novamente escrita, ocorreu o que é mostrado na Figura 6.8, a palavra foi
escrita após a anterior.

Figura 6.8 – Teste do LCD.

Isso ocorre devido ao botão de reset apenas atuar no microcontrolador e


não em todos os dispositivos que compõem a placa de experimentos.
Uma solução para que esse problema seja evitado seria iniciar o programa com
um comando de limpeza do LCD.
Outro detalhe que precisa ser observado é quando ao backlight do LCD,
é preciso que seu acionamento seja feito no programa para que haja uma
melhor visualização dos caracteres do LCD, como mostrado na Figura 6.9

95
Figura 6.9 – Acionamento do LCD com e sem backlight.

6.5 - Módulo PWM

A modulação por largura de pulso, mais conhecida por PWM permite


variar o valor de potência entregue a determinada carga, sem perdas
significativas. Neste caso o microcontrolador irá controlar a potência entregue
ao motor e assim variar sua velocidade.
Técnica muito utilizada em sistemas de potência, um kit para estudo de
microcontroladores que não ofereça suporte para práticas envolvendo PWM
deixaria muito a desejar. O programa utilizado para o teste permite que através
dos botões seja possível escolher quatro velocidades diferentes para do motor,
variando a largura do pulso aplicado a este. A imagem relativa e este
experimento pode ser vista na Figura 6.10.

Figura 6.10 – Acionamento do motor.

96
Ao ser iniciado o programa, foi constatado não ser possível ter a noção
de velocidades diferentes pela visualização da câmera, somente sendo
possível observar se o motor está parado ou em movimento.

6.6 – Programa em Linguagem C

Como dito no Capítulo 5, independente da linguagem, um compilador


para microcontroladores PIC gera um arquivo hex para ser gravado na
memória de programa do dispositivo.
O programa mostrado na Figura 6.11 está escrito em linguagem C para
o PIC16F877A, o programa faz o acionamento do motor mostrando sua
velocidade em porcentagem no display LCD e acendendo uma quantidade de
LEDs proporcional a velocidade. Este teste tem como objetivo confirmar a
utilização do laboratório de experimentação remota também em linguagem C.

Figura 6.11 – Programa escrito em linguagem C.

97
A Figura 6.12 mostra o resultado obtido.

Figura 6.12 – Resultado obtido após envio do programa em C.

6.7 – Comentários Sobre os Testes Realizados

No teste dos LED’s, dependendo da freqüência com que estes acendam


e apaguem, pode não ser possível observar o efeito através da câmera.
Quando o laboratório é acessado de pontos com velocidade de conexão
mais lenta, as frequentes solicitações de estado dos botões realizadas via
AJAX não podem ser atendidas e então é retornado erro por perda de conexão.
Este erro dura alguns segundos, até que uma solicitação seja respondida,
ocorrendo com pouca frequência.
Dependendo da velocidade de conexão, pode existir um pequeno tempo
de espera entre o estímulo aplicado ao botão e a visualização da resposta
àquele estímulo, o que pode confundir um pouco os alunos no que diz respeito
a saber, se o programa enviado estaria realmente correto ou se este foi
recebido de forma correta. Utilizando o laboratório na mesma rede em que ele
está instalado este problema não ocorre.
Na utilização do LCD é preciso que todos os usuários do laboratório
sejam alertados a enviar um comando de limpeza do display para que a nova

98
palavra não fique sobreposta à anterior e que o backlight seja acionado para
que a palavra que foi escrita posso ser visualizada.
Não é possível ter uma noção de velocidade do motor apenas com a
imagem, sendo um problema para ser resolvido em um trabalho futuro.
Outro problema verificado é a falta de um filtro para que somente os
arquivos no formato Intel Hexadecimal fossem selecionados para o envio ao
microservidor. Pode ser comum os alunos escolherem outro arquivo que não
seja o *.hex e se perguntarem o porque do não funcionamento.
Mesmo com os problemas citados os testes mostram que é possível a
realização dos experimentos remotamente, executando as ações de controle e
a visualização dos resultados através da câmera
Uma lista de possíveis experiências que podem ser realizadas é
disponibilizada no anexo I.
O custo com os componentes utilizados no projeto é detalhado na
Tabela 6.1.

Tabela 6.1 – Custo do projeto


Componente Quantidade Valor Unitário Custo
Microservidor PME10A 1 R$ 127,00 R$ 127,00
PIC16F877A 1 R$ 13,00 R$ 13,00
Display LCD 1 R$ 15,00 R$ 15,00
Display 7 Segmentos 4 R$ 3,5 R$ 14,00
Cooler 1 R$ 5,00 R$ 5,00
LEDs 10 R$ 0,30 R$ 3,00
Componentes em geral - - R$ 25,0
Total R$ 202,0

99
Capítulo 7 – Conclusões e Trabalhos Futuros

Neste trabalho é apresentado um estudo sobre as tecnologias de


implementação de laboratórios remotos e o seu estado da arte, fornecendo os
subsídios necessários para o desenvolvimento de um laboratório remoto de
baixo custo na área de microcontroladores.
O sistema proposto atingiu o objetivo de possibilitar a realização de
experimentos remotamente utilizando a rede mundial de computadores.
Com a utilização de um microservidor, o uso de computador dedicado ao
sistema de experimentação é dispensando e contribuiu para uma plataforma
mais confiável, compacta e com possibilidade para ampliação.
O emprego de componentes de hardware, como o próprio microservidor
e componentes digitais e analógicos diversos, que podem ser adquiridos com
facilidade no mercado nacional, permite que o custo final do sistema de
hardware seja reduzido.
Nas avaliações inicias foi observado o grande potencial da
experimentação remota e a grande praticidade, funcionalidade e confiabilidade
das tecnologias que formam o sistema.
Um obstáculo ainda encontrado na experimentação remota é o tempo de
espera entre o envio de um estímulo e visualização do mesmo, a velocidade de
algumas conexões ainda se mostra um grande empecilho neste tipo de projeto.
Com a instauração da Escola Técnica Aberta do Brasil (E-Tec Brasil),
um sistema que oferece cursos técnicos à distância, seguindo o modelo da
Universidade Aberta do Brasil (UAB), a presente proposta permitirá o ensino de
microcontroladores também nessa modalidade.

Trabalhos Futuros

Visando acrescentar novas funcionalidades ao sistema já existente, são


sugeridas a seguir algumas implementações futuras.
A realização de experimentos no sistema descrito permite somente a
utilização de um usuário por vez, ou seja, é uma ferramenta mono-usuário.
Para que os experimentos do laboratório de acesso remoto possam ser

100
utilizados efetivamente com grupos de alunos é preciso que exista a integração
com um sistema de gerenciamento entre dispositivos. Este sistema de
gerenciamento deve prover funcionalidades como agendamento de horário,
controle de acesso incluindo recursos disponíveis e tempo para cada usuário.
Com o uso do AJAX podem ser implementados na página de acesso
controles deslizantes. Estes atuariam em potenciômetros digitais na placa de
experimentos fornecendo valores de tensões analógicos, permitindo assim o
estudo do conversor AD do PIC16F877A. Também é possível fazer com que o
microservidor monitore a velocidade do motor e forneça esta informação na
página do experimento. Essas modificações produziriam um grau ainda maior
de realidade à experiência.
Com o aparecimento de microservidores com maior poder de
processamento, a câmera IP poderia ser substituída por uma simples webcam
USB, essa medida reduziria ainda mais o custo do sistema.
O sistema também pode crescer no sentido de permitir o uso de outros
modelos de microcontroladores e de outros dispositivos programáveis, como,
por exemplo, PLDs (Programmable Logic Devices) e FPGA’s, e através de
relés programáveis o aluno pode fazer suas próprias conexões escolhendo
quais dispositivos queira usar.
Deve ser feito um trabalho de avaliação do grau de aceitação, satisfação
e sucesso dos usuários do laboratório remoto, comparando os resultados de
aprendizado de uma turma convencional com uma que faça uso dos
experimentos à distância. Obtendo informações que permitam avaliar a
viabilidade da aplicação desta metodologia a outras disciplinas.

101
Referências Bibliográficas

ALAMO, J.A. BROOKS, L. McLEAN, C. HARDISON, J. MISHURIS, G. CHANG,


V. e HUI, L. The MIT Microelectronics WebLab: a Web Enabled Remote
Laboratory for Microelectronic Device Characterization. Networked Learning in
a Global Environment, Berlin. Alemania, 2002.

ALHALABI, B. Remote Labs: Electrical Element Characterization Experiment.


In: International Conference on Engineering Education, August 6-10, 2001 Oslo,
Norway.

ÁLVARES, A.J.; FERREIRA, J. C. E.; Shimabukuro, L.; Fernandes, C. A. Um


sistema de telemanufatura baseado na web orientado ao processo de oxicorte.
In: XXII Encontro Nacional de Engenharia de Produção, 10, 2002, Curitiba, PR.

ÁLVARES, A.J.; FERREIRA, J.C.E. Metodologia para Implantação de


Laboratórios Remotos Via Internet na Área de Automação da Manufatura,
Anais do 2º Congresso Brasileiro de Engenharia de Fabricação (COBEF),
Uberlândia, 2003.

ÁLVARES, A. J. Uma Metodologia para Integração CAD/CAPP/CAM voltada


para Manufatura Remota de Peças Rotacionais Simétricas baseada na
Internet. Tese de Doutorado, UFSC, 2003.

BERNERS-LEE, T., et al.Hypertext Transfer Protocol – HTTP/1.0, RFC 1945,


IETF, 1996.

BERNHARDT, M. F.; ALVES, J. B. M.; SILVA, J. B. MicroServidor WEB na


Supervisão e Controle da Qualidade da Água na Carcinicultura. In: IV SBI Agro-
Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à
Agropecuária e à Agroindústria, 2003, PortoSeguro - BA. Anais do IV SBI Agro.
2003.

102
BERNHARDT, M. F.; PALADINI, S. MicroServidor Chiron. 2001. 304 f.
Universidade do Sul de Santa Catarina, Araranguá.

BERNTZEN, R., J. O. STRANDMAN, et al. Advanced Solutions for Performing


Real Experiments over the Internet. International Conference on Engineering
Education. Oslo, Noruega, 2001. 21-26 p.

CASINI, M. PRATTICHIZZO, D. VICINO, A. "The Automatic Control Telelab: a


Remote Control Engineering Laboratory", 40th IEEE Conference on Decision
and Control, Florida USA, December 2001.

CHELLA, M. T., FERREIRA, E. C. Ferramentas para o Desenvolvimento de


Experimentos Remotos com Aplicações Educacionais, In: VII Congresso Ibero-
Americano de Informática Educativa - RIBIE, Monterrey (México) 2004.

CHELLA, M. T. Arquitetura para Laboratório de Acesso Remoto com


Aplicações Educacionais, Tese de Doutorado, UNICAMP, 2006.

CHEN, S. H. Development of Remote Laboratory Experimentation through


Internet. In: Hong Kong Symposium on Robotics and Control, Volume II, July
1999.

ÇIMEN, H., YABANOVA, I., NARTKAYA, M., ÇINAR, S. M. Web Based Remote
Access Microcontroller Laboratory, 2008.

DENIZ, D. Z.; BULANCAK, A.; ÖZCAN. A novel approach to remote


laboratories. 33rd ASEE/IEEE Frontiers in Education Conference. CO T3E-
8.November 5-8, 2003, Boulder.

DRUTAROVSKY, M. SALIGA, S. HRONCOVA, I. Hardware Infrastructure of


Remote Laboratory for Experimental Testing of FPGA based Complex
Reconfigurable Systems, Acta Electrotechnica et Informatica, Vol.9, No. 1,
2009, pp.44-50.

103
FERNANDEZ, R. O., BORGES, A. P., PÉREZ-LISBOA, M., PEIXOTO, N.,
RAMIREZ-FERNANDEZ, F. J. Laboratório Virtual Aplicado à Educação a
Distância. SBIE2000 – XI Simpósio Brasileiro de Informática na Educação,
2000.

FIELDING, R. et al., Hypertext Transfer Protocol – HTTP/1.1, RFC 2616, IETF,


1999.

GRIDLING, G. WEISS, B. A µController Lab for Distance Learning. In 6th


European Workshop on Microelectronics Education (EWME'06), Stockholm,
Sweden, June 8-9, 2006.

KUROSE, J. F; ROSS, K.W. Redes de Computadores e a Internet: uma


abordagem top-down, 3. Ed, São Paulo: Pearson Addison-Wesley, 2006,634 p.

LABJACK, http://labjack.com/. Consulta em 30/08/2010.

LIGHTNER (1999). PicoWeb Server. Disponível em:


<http://www.picoweb.net/>. Acesso em: 28/08/2010.

MARCHEZAN, A. R.; CHELLA, M. T.; FERREIRA, E. C. Laboratório Remoto


Aplicado ao Ensino de Engenharia Eletrônica. In: I Workshop de Ciência da
Computação e Sistemas da Informação da Região Sul - WORKCOMPSUL,
Florianópolis, 2004.

MCDERMOTT, K. J., NEDIC Z., NAFALSKI A., MACHOTKA J. "Experiential


learning for first year engineering students," in 10th UICEE, Annual Conference
on Engineering Education Bangkok, Thailand, 2007.

MICHELON, G. Desenvolvimento e Aplicação de um Ambiente para Ensaios


em Laboratório Remoto de Comunicação. Dissertação (Mestrado em
Engenharia Elétrica), UTFPR, 2006.

104
MIYADAIRA, A. N. Microcontroladores PIC18: aprenda e programe em
linguagem C, 1ª ed, São Paulo: Érica, 2009.

MICROCHIP, http://www.microchip.com/. Consulta em 30/08/2010.

MPLAB, http://www.microchip.com/mplab. Consulta em 30/08/2010.

NATIONAL. National Instruments, http://www.ni.com/. Consulta em 10/05/2010.

NIELSEN, J. (1999) Design Web Usability. New Riders Publish., Indianapolis,


Indiana USA.

NUMAJIRI, D. A. Desenvolvimento de um sistema de controle de dispositivos


via acesso remoto. Projeto Final de Curso, 2003. Disponível em
<http://www.bcc.ufla.br/monografias/2003/Desenvolvimento_de_um_sistema_d
e_controle_de_dispositivo_via_acesso_remoto.pdf>. Acessado em 10/08/2010.

PEREIRA, F. M. Protocolo TCP/IP para Sistemas Embarcados, Dissertação de


Mestrado, UNICAMP, 2002.

PICNIC (2003), Projeto PICNIC. http://picnic.sourceforge.net/. Consulta em


30/08/2010.

PME10A (2008). www.2ei.com.br/PME10A/MANUALPME10AV11.pdf. Consulta


em 30/08/2010.

RABBIT RMC 2200, http://www.rabbit.com/products/rcm2200. Acesso em


30/08/2010.

SALES, A. K. M. Paralax – Plataforma de Acesso Remoto a Laboratórios para


Apoio ao Treinamento a Distância, Dissertação de Mestrado, DETI-UFC, 2008.

105
SOUZA, A. L., OLIVEIRA, J. C. “Laboratórios acessíveis via Internet: um
recurso didático para o ensino/aprendizado de Engenharia Elétrica.” Anais do
VIIEEE Encontro de Educação em Engenharia, 2001.

SOUZA, D. J., LAVINIA, N. C. Conectando o PIC – Recursos Avançados. 1 ed,


São Paulo: Érica, 2009.

SILVA, J. B. A Utilização da Experimentação Remota como Suporte para


Ambientes Colaborativos de Aprendizagem, Tese de Doutorado, UFSC, 2006.

SILVA, J. B. Monitoramento, Aquisição e Controle de Sinais Elétricos via Web,


Utilizando Microcontroladores, Dissertação de Mestrado, UFSC, 2002.

VIEDMA,G., DANCY, I. J., LUNDBERG, K. H. A Web-Based Linear-Systems


iLab. American Control Conference 2005, June 8-10, 2005, Portland, Ore.

WEISS, B. GRIDLING, G. PROSKE, M. A Case Study in Efficient


Microcontroller Education. In Workshop on Embedded Systems Education
(WESE'05), Jersey City, New Jersey, USA, 2005.

WISINTAINER, M. A. RExLab: laboratório de experimentação remota com o


microcontrolador 8051, Dissertação de Mestrado, UFSC, 1999.

WISINTAINER, M. A., ALVES, J. B. REXPIC - Utilizando o PC para


Experimentação Remota com Microcontrolador PIC17C43 e Visualização por
Meio de uma Câmera, VII SEMINCO, 1998.

WIZNET, http://www.wiznet.co.kr. Consulta em 30/08/2010.

WONG H., V. KAPILA, TZES, A. Mechatronics/Process Control Remote


Laboratory, 2001 American Society for Engineering Education Annual
Conference & Exposition, June, Albuquerque, NM.

106
ZHANG, S. et al. NETLAB−An Internet Based Laboratory for Electrical
Engineering Education. In: Journal of Zhejiang University SCIENCE, 2004.

ZUBIA, J. G., ÂNGULO, I., HERNÁNDEZ, U., ORDUÑA, P. “Plug&Play Remote


Lab for Microcontrollers: WebLab-DEUSTO-PIC”, 2008.

107
Anexo I – Lista de Experimentos

Experimento 1 : Acionamento de LEDs


Realizar o acendimento dos LEDs em uma sequência qualquer.

Experimento 2 : Leitura dos Botões


Programar 4 acendimentos diferentes para os LEDs a cada toque em um
dos botões.

Experimento 3: Display de 7 Segmentos


Escrever um programa que realize o teste de cada segmento de cada
um dos 4 displays de 7 segmentos do laboratório de experimentação remota.

Experimento 4: Display de 7 Segmentos e Botões


Mostrar em cada um dos displays de 7 segmentos um número
equivalente ao botão que foi pressionado. Exemplo: Caso seja pressionado o
botão 2, o 2ª display deverá mostrar o número 2.

Experimento 5: Relógio Digital


Implementar um relógio digital utilizando os displays de 7 segmentos e o
conjunto de botões.

Experimento 6: Display LCD


Mostrar a palavra “LabPIC“ e enviar os comandos necessários para que
esta fique se deslocando no display LCD.

Experimento 7: Display LCD


Aguardar um botão ser pressionado e mostrar o seu número no display
LCD.

Experimento 8: PWM
Variar a rotação do cooler mostrando sua velocidade no display LCD,
utilizar os botões para a escolha de 4 velocidades pré-programadas.

108
Experimento 9: Semáforo
Implementar um semáforo para faixa de pedestres utilizando os LEDs,
um botão e um display de 7 segmentos. O semáforo fica sempre aberto,
quando um pedestre deseja atravessar a avenida, este pressiona o botão, o
semáforo passa para amarelo e depois vermelho, o display de 7 segmentos
conta de 9 a 0 e o ciclo é reiniciado.

Experimento 10: Controle de Acesso


Realizar o acionamento de cooler mediante uma senha que deve ser
digitada com o auxílio dos botões. O display LCD deverá mostrar a palavra
“Senha?”, caso a senha digitada esteja correta aparecerá a palavra “Correta!” e
o cooler deverá ser acionado, caso a senha esteja errada aparecerá a palavra
“Errada” por alguns segundos e o sistema voltará ao seu estado inicial.

109