Escolar Documentos
Profissional Documentos
Cultura Documentos
FORTALEZA – CEARÁ
Dezembro de 2010
ÁGIO GONÇALVES DE MORAES FELIPE
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
Banca Examinadora
À 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.
Ao meu amigo e colega Allan Kelvin por ter me incentivado a iniciar esse
trabalho e a imensa ajuda no desenvolvimento do mesmo.
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
1.1 – Contextualização
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
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
17
Os objetivos específicos são:
1.4 – Metodologia
20
Capítulo 2 – Fundamentação Teórica
2.1 - Microcontroladores
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:
23
Figura 2.1 - Estrutura interna de um microcontrolador PIC.
24
Figura 2.2 – Ambiente MPLAB.
25
2.2 - O Ensino de Microcontroladores
26
Figura 2.5 – Kit didático.
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.
28
Figura 2.6 – Arquitetura básica de um laboratório remoto.
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.
30
2.3.4 - Servidor de Experimentos
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.
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.
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.
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.
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.
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.
38
Figura 2.12 – Programa servidor desenvolvido em (FERNANDEZ et al.,
2000).
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).
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).
43
Figura 2.16 – Controles desenvolvidos em AJAX.
44
Capítulo 3 – Trabalhos Correlatos
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.
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.
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.
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.
50
Figura 3.7 – Rexlab - Placa de Experimentos - 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).
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
67
• Custo: a tecnologia é gratuita?
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
69
Capítulo 5 – Projeto do Sistema
70
Figura 5.1 - PIC16F877A com circuitos mínimos necessários.
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.
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.
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.
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.
76
O formato geral de cada linha presente no arquivo Intel Hexadecimal
pode ser observado na Figura 5.7 e detalhado em seguida.
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:
78
Figura 5.9 - Fluxograma para a realização da ICSP
(MICROCHIP, 2010).
79
Tabela 5.1 - Comandos da ICSP (MICROCHIP, 2010).
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.
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.
83
Figura 5.13 – Circuito dos botões.
84
Figura 5.14 – Página do Experimento.
85
Figura 5.15 – Trecho da página relativo ao envio do arquivo de programação.
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.
87
Capítulo 6 – Validação do Laboratório Remoto
88
Figura 6.1 – a) Imagem do experimento.
89
Figura 6.2 – Teste do botão de reset.
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.
91
Figura 6.5 – LEDs acendendo em sequência.
92
Figura 6.6 – Teste dos botões.
93
Figura 6.7 – Teste dos botões (continuação).
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.
95
Figura 6.9 – Acionamento do LCD com e sem backlight.
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.
97
A Figura 6.12 mostra o resultado obtido.
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.
99
Capítulo 7 – Conclusões e Trabalhos Futuros
Trabalhos Futuros
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
102
BERNHARDT, M. F.; PALADINI, S. MicroServidor Chiron. 2001. 304 f.
Universidade do Sul de Santa Catarina, Araranguá.
ÇIMEN, H., YABANOVA, I., NARTKAYA, M., ÇINAR, S. M. Web Based Remote
Access Microcontroller Laboratory, 2008.
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.
104
MIYADAIRA, A. N. Microcontroladores PIC18: aprenda e programe em
linguagem C, 1ª ed, São Paulo: Érica, 2009.
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.
106
ZHANG, S. et al. NETLAB−An Internet Based Laboratory for Electrical
Engineering Education. In: Journal of Zhejiang University SCIENCE, 2004.
107
Anexo I – Lista de Experimentos
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.
109