Você está na página 1de 8

Aplicao de lgica Fuzzy e Arduino em

controle de processos
Luis Antonio Prado & Yvo Marcelo Chiaradia Masselli
matemticos, jogos, na medicina no diagnostico de doenas,
Abstract - The growing use of hardware platforms for processamento de imagens e na resoluo de muitos outros
low cost has stimulated the development of applications in problemas que so considerados tecnicamente difceis de
diverse areas. This paper presents an example of practical serem resolvidos por meio de sistemas comuns [1]. Neste
application using the Arduino platform and fuzzy logic to trabalho explorada uma tcnica de IA conhecida por lgica
control a conveyor belt. The differences are related to the difusa, ou Fuzzy Logic.
final cost, ease of deployment, flexibility and extensive
documentation available, both software and hardware.
II. TCNICAS DE IA APLICADAS AUTOMAO
Index Terms Arduino, Fuzzy Logic, Artificial
Intelligence. Uma das principais caractersticas da automao a
Resumo A crescente utilizao de plataformas de capacidade de diminuir a interferncia e a dependncia
hardware de baixo custo tem estimulado o humana em um processo ou uma maquina, e assim tornar o
desenvolvimento de aplicaes nas mais diversas reas. sistema mais eficiente, seguro e otimizado. A inteligncia
Este trabalho apresenta um exemplo de aplicao prtica artificial associa-se rea da automao com o propsito de
utilizando a plataforma Arduino e a lgica Fuzzy no tornar mais inteligente o controle de processos e fazer com
controle de uma esteira de transporte. Os diferenciais que as decises resultantes destes sistemas sejam cada vez
esto relacionados ao custo final, facilidade de mais prximas daquelas tomadas por um especialista humano.
implementao, flexibilidade e vasta documentao
disponvel, tanto de software quanto de hardware.
III. LGICA FUZZY
Palavras chave Arduino, Lgica Fuzzy, Lgica
Nebulosa, Conjuntos Difusos, Inteligncia Artificial.
A lgica Fuzzy utilizada para tratar problemas onde a
impreciso e a incerteza so variveis complexas que
I. INTRODUO
dificultam a implementao nos moldes convencionais [2]. O
modo convencional apresenta entradas e sadas de forma
A rea de inteligncia artificial (IA) uma das reas que binria, por exemplo, 0 ou 1, verdadeiro ou falso, e tambm
tem crescido significativamente em funo do nmero de com valores em uma faixa especifica e finita. A lgica Fuzzy
aplicaes prticas em que est presente. Atualmente podemos trabalha com valores que geralmente no so bem definidos
nos deparar com a utilizao de tcnicas de IA em games, numericamente.
mecanismos de busca na Internet, controle de estabilidade em Os valores utilizados na lgica Fuzzy podem ser mostrados
veculos e diversas outras reas. De forma simples e objetiva, por meio de expresses lingsticas conforme cada problema
pode-se entender a rea de inteligncia artificial como aquela que se quer trabalhar, por exemplo, no controle de um ar
que rene um conjunto de tcnicas que buscam esboar condicionado a temperatura pode estar quente para uma pessoa
caractersticas dos seres vivos, como tomar decises, jogar e ao mesmo tempo frio para outra pessoa, assim, o resultado
xadrez e etc. gerado por um sistema Fuzzy pode ser 65% de quente e 35%
A inteligncia artificial possui vrios ramos que so frio [3]. Pode haver tambm resultados classificados em
aplicados em diversos setores para percepo e aprendizado, e verdade, muito verdade, falso, muito falso.
tambm em reas especificas como demonstraes de Para lidar com informaes imprecisas e vagas presentes
e em alguns problemas, Zadeh, em 1965 desenvolveu a teoria
dos conjuntos nebulosos e em 1978, a teoria de possibilidades.
Esta pode ser comparada com a teoria de probabilidade, porm
Trabalho de Concluso de Curso apresentado ao Instituto Nacional de
menos restritiva [4]. Ambas, quando associadas, possibilitam o
Telecomunicaes, como parte dos requisitos para a obteno do Certificado
de Ps-Graduao em Engenharia de Sistemas Eletro-Eletrnicos, Automao tratamento de imprecises, inconsistncias e incertezas
e Controle Industrial. Orientador: Prof. Yvo Marcelo Chiaradia Masselli. comuns nas variveis envolvidas em problemas do mundo real.
Trabalho aprovado em 03/2014
A. Variveis lingusticas: Interface de fuzzyficao:
As variveis lingsticas so utilizadas para fazer uma
Esta interface responsvel associar um termo lingustico a
caracterizao aproximada de um fenmeno complexo ou com
cada valor numrico de entrada.
pouca preciso na sua definio. Estas variveis simplificam o
tratamento de problemas e sistemas complexos que demandam
muito processamento para serem tratados de maneira Inferncia:
convencional, utilizando mtodos matemticos [5]. Um
exemplo de varivel lingstica a temperatura, que pode Este bloco realiza o processo inferncia entre as variveis
assumir valores como muito baixa, baixa, mdia, alta e muito lingusticas de entrada e as variveis lingusticas de sada. Isto
alta apresentado na figura [1]. Graficamente estas variveis significa identificar as regras que so ativadas na base de
so representadas por funes de pertinncia. Estas tem por conhecimento.
objetivo identificar a qual termo lingustico um valor numrico
est associado e com qual intensidade. O valor de intensidade Base de Conhecimento:
chamado grau de pertinncia.
A base de conhecimento formada por uma base de dados e
uma base de regras. A base de dados fornece dados numricos
e a base de regras caracteriza o funcionamento do sistema.
Esta geralmente desenvolvida por um especialista no
processo.

Interface de defuzzyficao:

Esta interface transforma as variveis lingsticas de sada


em valores numricos para serem enviados aos atuadores.

Os conjuntos nebulosos permitem que seus elementos


possuam um grau de pertinncia para que possam representar
um universo multivalente e no bivalente (falso ou verdadeiro)
como os conjuntos convencionais.
Figura 1 Exemplo de Varivel Lingstica para temperatura

IV. ARDUINO
B. Controlador Fuzzy:
Os controladores convencionais utilizam a modelagem O Arduino foi criado em 2005 e uma plataforma open-
matemtica para fazer o controle de seus processos, enquanto source que pode ser facilmente adaptada de acordo com as
que os controladores Fuzzy utilizam-se do conhecimento de necessidades de cada projeto [7]. Sua principal vantagem a
um especialista na rea em questo, representado na forma de facilidade de utilizao e de customizao, pois toda a
regras lgicas, chamadas de regras de produo. Os documentao, incluindo esquema eltrico e arquivos CAD
controladores Fuzzy realizam, basicamente, trs etapas: esto disponveis para download. At mesmo o ambiente de
fuzzyficao, inferncia e defuzzyficao [4][5][6]. Os blocos desenvolvimento possui cdigo fonte aberto para que qualquer
que compe um controlador Fuzzy so apresentados na figura pessoa possa customiz-lo. O ambiente de desenvolvimento
2. esta disponvel para as plataformas Windows e Linux.

A. Arquitetura:
O Arduino comercializado em diversas verses que se
diferem, basicamente, pela quantidade de entradas e sadas
digitais e analgicas.

O Arduino utilizado no presente trabalho o Duemilanove


[8] apresentado na figura 3.

Figura 2 Controlador Fuzzy


oficial disponibilizado no prprio site do Arduino, existem
vrios outros Integrated Development Environment (IDE)
como o Atmel Studio e Eclipse e ainda vrios projetos de IDE
como o Ardublock [10], S4A-Scratch for Arduino [11] e
Minibloq [12]. Toda a documentao e Application
Programming Interface (API) da linguagem oficial esta
disponvel no site oficial do Arduino. A comunidade Arduino
tambm disponibiliza diversos cdigos de exemplo e projetos
feitos por outros usurios do Arduino. Tambm possvel
programar o Arduino utilizando blocos em linguagem C/C++.

Figura 3 Arduino Duemilanove V. IMPLEMENTAO LGICA FUZZY E ARDUINO

Esta verso baseada no microcontrolador ATmega328,


possui uma memria flash de 32 KB para armazenar o cdigo O exemplo selecionado para mostrar a utilizao da lgica
fonte e disponibiliza 14 pinos de entrada e sada digitais sendo Fuzzy em um problema real da automao o controle de
que podem ser utilizados 6 pinos para sada PWM e mais 6 esteiras.
pinos de entradas analgicas. Em usinas de acar e lcool a matria prima a cana-de-
A integrao com outros sistemas como computadores, acar que chega em caminhes e despejada em esteiras que
outros Arduinos e microcontroladores facilitada por meio da que as levam aos trituradores, como ilustrado pela figura 4
comunicao serial. Por se tratar de uma plataforma aberta, a [14][15].
comunidade Arduino muito ativa e participativa
desenvolvendo e disponibilizando diversas bibliotecas
gratuitas para facilitar o desenvolvimento de software. Entre as
diversas bibliotecas, a SoftwareSerial, que possibilita a
comunicao serial.

As principais caractersticas deste Arduino so


apresentadas na
Tabela 1 Principais Caractersticas do Arduino Figura 4 Chegada da cana-de-acar
Duemilanove:
A. Variveis Lingusticas utilizadas:
Tabela 1 Principais Caractersticas do Arduino Duemilanove
Sero utilizadas trs variveis cuja suas funes de
Microcontrolador ATmega168 pertinncia, assim como seus valores de entrada, foram
Voltagem de operao 5V escolhidos arbitrariamente uma vez que o objetivo primrio
Voltagem de entrada consiste na avaliao dos resultados obtidos pelo controlador
7-12V
recomendada Fuzzy executado pelo Arduino.
Limite de voltagem de
6-20V
entrada Peso na Esteira:
14 (6 podem ser
Pinos digitais de
utilizados como Esta varivel indica a quantidade de cana-de-acar na
entrada/sada
PWM) esteira, seus valores possveis so leve, normal e pesado. O
Entradas Analgicas 6 grau de pertinncia para cada estado pode ser visualizado na
Corrente DC por I/O 40 mA figura 5. Esta a varivel de entrada do processo.
32 KB as quais 2
Memria flash KB so utilizados
para o bootloader
SRAM 2 KB
EEPROM 1 KB
Clock 16 MHz

B. Software:
A linguagem de programao utilizada no Arduino
baseada em um framework open-source de programao para
microcontroladores chamado Wiring [9]. Alm do ambiente Figura 5 Varivel Peso na Esteira
Tabela 2 Base de Regras
Utilizao do Processo de Preparo: Utilizao do
Potencia do
Peso na Esteira Processo de
Indica a porcentagem de utilizao dos equipamentos no Motor
Preparo
processo de preparo da cana-de-acar. Durante este processo Baixa Alta
Leve
ela passar por espalhadores, picadores, desfibradores e
Normal Baixa Alta
niveladores. Esta varivel utilizada na entrada do processo.
Seus possveis valores so: alta, normal, baixa e parado, como Pesado Baixa Normal
pode ser observado na figura 6. Leve Normal Normal
Normal Normal Normal
Pesado Normal Baixa
Leve Alta Normal
Normal Alta Baixa
Pesado Alta Parado
---------- Parado Parado

Estas foram criadas para ilustrar o funcionamento da lgica


Fuzzy sendo que para o sistema real, novas regras podem ser
criadas.

C. Biblioteca utilizada:

Figura 6 Varivel Utilizao do Processo de Preparo


Para trabalhar com a lgica Fuzzy no Arduino, existe a
biblioteca Embedded Fuzzy Logic Library (eFLL) que foi
Potncia do Motor da Esteira: desenvolvida utilizando-se apenas a biblioteca stdlib.h, de
forma que a eFLL seja utilizada em qualquer sistema que
Esta a varivel de sada que ser utilizada para o controle suporte linguagem C. A eFLL foi criada pelo Robotic
da esteira. Indica a potncia que dever estar o motor da Research Group na Universidade Estadual do Piau [16].
esteira para que a velocidade de alimentao do processo de Seu motor de inferncia utiliza os mtodos de Max-Min e
preparo seja a ideal. Os possveis valores so alta, normal, Mnimo de Mamdani. Para o processo de DeFuzzyficao o
baixa e parado como pode ser visualizado na figura 8. mtodo utilizado o Centro de rea.
Os principais componentes da biblioteca eFLL so
apresentados seguir.

Objeto Fuzzy:
Este o objeto que engloba todo o sistema Fuzzy, com ele
manipulamos os conjuntos Fuzzy, variveis lingsticas de
entrada e sada e a base de regras.

Objeto FuzzyInput:
Este objeto representa uma varivel lingstica de
entrada do sistema. As variveis de entrada so
modeladas por meio dos FuzzySet.

Figura 4 Varivel Potncia do Motor Objeto FuzzySet:


utilizado para a modelagem da funo de pertinncia
B. Base de regras utilizada: de uma varivel (Baixo, Alto, Normal), possvel
modelar funes triangulares, trapezoidais e singleton. O
As regras utilizadas para a implementao do sistema esto construtor deste objeto :
descritas na tabela abaixo.
FuzzySet (float a, float b, float c, float d)

Com estes 4 valores de entrada formam-se quatro


pontos, (a,0), (b,1), (c,1) e (d,0). Por meio destes pontos
defini-se a funo de pertinncia como pode ser
observado em Figura 5 Exemplos de funes de
pertinncia com FuzzySet.
Na funo setup a varivel de entrada Peso na Esteira
criada utilizando o objeto FuzzyInput e seu id (1) deve ser
passado como parmetro do construtor FuzzyInput:

FuzzyInput* pesoEsteira = new FuzzyInput(1);

A modelagem da varivel feita utilizando os objetos


FuzzySet. O prximo cdigo faz a modelagem para os estados
Leve, Normal e Pesado para a varivel de entrada Peso na
Esteira:

FuzzySet* leve = new FuzzySet(0, 0, 500, 750);


FuzzySet* normal = new FuzzySet(500, 750, 1250, 1500);
FuzzySet* pesado = new FuzzySet(1250, 1500, 2000, 2000);
Figura 5 Exemplos de funes de pertinncia com FuzzySet
A funo de pertinncia obtida ao ligar os pontos (a,0),
(b,1), (c,1) e (d,0) nesta mesma ordem.

Objeto FuzzyOutput:

Assim como o FuzzyInput, o objeto FuzzyOutput


agrupa vrios FuzzySet, a diferena que os FuzzySet do
FuzzyOutput modelaram as variveis de sada.

Objeto FuzzyRule:

Este objeto representa uma regra que ser adicionada a


base de conhecimento do objeto Fuzzy. Ele composto
Figura 6 Modelagem FuzzySet
por um FuzzyRuleAntecedent e um
FuzzyRuleConsequent. A base de conhecimento deve Aps a modelagem, associamos os estados possveis para a
conter um ou mais objetos FuzzyRule. varivel FuzzyInput pesoEsteira:

Objeto FuzzyRuleAntecedent: pesoEsteira->addFuzzySet(leve);


pesoEsteira->addFuzzySet(normal);
Guarda a condio de ativao de uma regra. pesoEsteira->addFuzzySet(pesado);

Objeto FuzzyRuleConsequent: E finalmente deve-se incluir a FuzzyInput no objeto Fuzzy:

Guarda qual ser o resultado se a regra for ativada. Fuzzy->addFuzzyInput(pesoEsteira);

Estes passos devem ser feitos para todas as variveis de


D. Codificao: entrada e sada. A nica diferena entre entrada e sada o
tipo do objeto que para entrada o FuzzyInput e para a sada
Com a utilizao da biblioteca eFLL, a codificao fica o FuzzyOutput:
mais simples de ser entendida, tornando a manuteno e
tambm a incluso de novas funcionalidades, entradas e sadas FuzzyOutput* potMotor = new FuzzyOutput(1);
uma tarefa mais fcil de ser implementada.
Aps cadastrar todas as entradas e sadas do sistema, a
O primeiro passo da implementao criar o objeto que hora de incluir a base de regras. Na biblioteca eFLL, a regra
armazenar todos os componentes do sistema Fuzzy: formada por uma condio antecedente e por um estado de
conseqncia. O primeiro passo fazer a condio
Fuzzy* Fuzzy = new Fuzzy(); antecedente, o cdigo a seguir a implementao da primeira
regra que :
A funo void setup() ser executada apenas uma vez na
inicializao do sistema e esta contm todo o cdigo de setup Se o peso na esteira Leve E a utilizao do processo de
do sistema Fuzzy e a configurao da porta de sada. preparo Baixa ENTO potencia do motor ser Alta.
Primeiro passo criar a condio de ativao da regra: Fuzzy->setInput(1, pesoEsteira);
Fuzzy->setInput(2, quantPreparo);
FuzzyRuleAntecedent* ifLeveEBaixa = new
FuzzyRuleAntecedent(); Para iniciar o processo de Fuzzyficao, utilizada a funo
fuzzify():
Para fazer a operao E (AND) utilizado a funo
joinWithAND passando por parmetro os FuzzySet Fuzzy->fuzzify();
correspondentes de cada entrada:
Esta funo faz a inferncia conforme o valor de entrada de
ifLeveEBaixa->joinWithAND(leve, baixa); cada FuzzyInput.
Para fazer a deFuzzyficao, utiliza-se a funo defuzzify
O estado de conseqncia a ativao da regra modelado passando como parmetro o ID do objeto FuzzyOutput
pelo sistema Fuzzy utilizando o FuzzyRuleConsequent: correspondente a varivel de sada Potencia Motor:

FuzzyRuleConsequent* entaoPotAlta = new int output = Fuzzy->defuzzify(1);


FuzzyRuleConsequent();
Finalmente, convertemos o valor da varivel output, que
Para associar o valor de sada, utiliza-se a funo addOutput ser entre 0 e 100, para o valor utilizado na sada PWM do
que adiciona o FuzzySet referente ao estado de sada ao Arduino, que entre 0 e 255, para assim controlar a
FuzzyRuleConsequent: velocidade do motor da esteira. Um passo importante a
configurao da porta de sada que ser utilizada como PWM
entaoPotAlta->addOutput(PotAlta); na funo setup:

Ao final, criada a prpria regra em si utilizando o objeto pinMode(3, OUTPUT);


FuzzyRule com parmetros de entrada do construtor o id da
regra, o FuzzyRuleAntecedent e a FuzzyRuleConsequent, por A prxima linha de cdigo escreve o valor convertido na
fim adicionar a FuzzyRule criada, no objeto Fuzzy: porta 3:

FuzzyRule* FuzzyRule01 = new FuzzyRule(1, analogWrite(3, valorConvertido);


ifLeveEBaixa, entaoPotAlta);
Fuzzy->addFuzzyRule(FuzzyRule01); E. Montagem do Circuito:

Estes passos devem se repetir at criar todas as regras que Para a implementao do prottipo foram utilizados dois
compe a base de conhecimento do sistema Fuzzy. potencimetros de 1k ohms para simular as variveis de
entrada Peso na Esteira e Utilizao do processo de
A entrada do sistema Fuzzy feita na funo loop, que a Preparo. Quando a resistncia medida no potencimetro for
responsvel em fazer a leitura das portas de entrada e escrever igual a 1k ohm, indicar entrada com valor Mnimo (0V) e
a sada do sistema Fuzzy na porta de sada em intervalos de quanto menor a resistncia medida, maior ser o valor de
tempos em tempos. entrada (prximo a 5V).
A leitura da entrada Peso na Esteira feita pela porta Para simular a varivel de sada Potencia no Motor da
analgica 0 e a leitura da Utilizao do Processo de Preparo Esteira, ser utilizado um LED. Quanto maior o valor da
feita pela porta analgica 2, o prximo cdigo faz a leitura varivel de sada Potncia do Motor, mais o LED vai
das portas analgicas: brilhar. O acionamento do LED ser feito utilizando o PWM
(Pulse Width Modulation) no Arduino.
int pesoEsteira = analogRead(A0);
int utPreparo = analogRead(A2); A modulao por largura de pulso ser utilizada para o
controle da tenso fornecida para o motor que no prottipo
Os valores lidos, estaro na faixa 1~1024 e por este motivo ser simulado por um LED. A placa Duemilanove possui 6
devem ser convertidos para a faixa de valores correspondente sadas que podem ser utilizadas para o PWM.
de cada varivel de entrada. O mesmo processo deve ser feito O conceito de PWM consiste em regular a tenso mdia na
para a varivel de sada que tambm deve possuir valores entre carga por meio de ondas quadradas, com pulsos de largura
0 ~ 1024. varivel. A figura 11 mostra exemplos para tenso na carga de
O valores convertidos so passados para o objeto Fuzzy 0%, 25%, 50%,75% e 100% da tenso total (5v).
utilizando a funo setInput passando como parmetros o id da
entrada e o valor numrico da entrada. O id 1 corresponde a
varivel criada anteriormente pesoEsteira e o id 2 corresponde
a varivel quantPreparo:
Tabela 3 Resultados Obtidos

Peso na Utilizao/
FuzzyTECH* Arduino*
Esteira Preparo
448 74 50 50
600 30 78 75
900 45 57 57
1100 50 50 50
1600 80 0 0
100 15 87 79
1000 20 87 79
1500 25 50 50
550 35 72 71
Figura 11 Modulao por Largura de Pulso 700 50 50 50
1400 50 27 28

VI. CONCLUSES 500 70 50 50


1500 90 0 0
Existem varias tcnicas de Inteligncia Artificial que podem * Valor de Sada Fuzzy
ser utilizadas na automao de modo a diminuir cada vez mais Ao analisar as informaes da tabela, percebe-se que as
a interferncia humana e tambm aumentar a eficincia do sadas dos dois sistemas possuem baixa variao, apenas dois
sistema. testes tiveram uma variao de 8%, esta baixa variao uma
Este trabalho teve como foco principal a lgica Fuzzy e o caracterstica que valida a implementao.
Arduino. A lgica Fuzzy se mostrou ser uma tcnica muito A biblioteca utilizada possui a vantagem de tornar mais fcil
simples de ser implementada e apresentou resultados a implementao, pois o desenvolvedor precisa apenas
satisfatrios durante os testes. Por aceitar entradas com modelar as entradas e sadas do sistema Fuzzy, no se
conceitos lingsticos (Baixo, Alto,..) que so facilmente preocupando com o processo de inferncia e defuzzyficao.
compreendidos pelo ser humano (o operador), a manuteno Por outro lado essa vantagem pode se tornar uma desvantagem
do sistemas e superviso do mesmo fica mais fcil. se o desenvolvedor precisar utilizar outro mtodo de inferncia
O Arduino por sua vez considerado tambm uma tima ou defuzzyficao diferente do padro utilizado pela
escolha para a automao de sistemas que no dependem de biblioteca.
grande poder de processamento. O suporte para o
desenvolvimento do software e hardware para o Arduino REFERNCIAS
muito bom, pois a comunidade Arduino ativa e colaborativa
[1] RUSSELL, Stuart, NORVIG, Peter. Inteligncia Artificial. 2. Ed. Rio de
onde possvel encontrar diversos exemplos de Janeiro: Campos, 2004.
implementaes e bibliotecas para facilitar do processo de
[2] L. A. Zadeh. Fuzzy sets. Fuzzy Sets, Information and Control, 8:338
codificao. Uma vantagem em utilizar o Arduino o custo do 353., 1965.
desenvolvimento que baixo. Com a utilizao dos Shields
[3] V Escola de Redes Neurais, Promoo: Conselho Nacional de Redes
pode-se incrementar as funes da placa Arduino utilizada e Neurais pp. c073-c090, 19 de julho, 1999 - ITA, So Jos dos Campos SP
assim possibilitar tambm novas funcionalidades como o [4] L. A. Zadeh. Fuzzy sets as a basis for a theory of possibility. Fuzzy Sets
monitoramento remoto, facilitando assim as tarefas de gerncia and Systems, 1:328, 1978.
e sistemas supervisores. [5] Gomide, Fernando A. C., Gudwin, Ricardo R., Tanscheit, Ricardo,
A implementao exemplo, mostrou como fcil a Conceitos Fundamentais da Teoria de Conjuntos Fuzzy, Lgica Fuzzy e
integrao entre a Lgica Fuzzy e o Arduino e os testes e Aplicaes.
simulaes realizados foram satisfatrios por ter tempo de [6] FILHO, Fernando de M. L., GoSMANN, Hugo Leonardo,
resposta semelhante a outros sistemas implementados BAUCHSPIESS, Adolfo, Controle Fuzzy para Sistema de Nvel de Lquidos.
utilizando hardware mais poderosos. Os valores de sada XIV Congresso Brasileiro de Automtica, 2 a 5 Setembro 2002, Natal, RN.
obtidos foram comparados com a simulao deste sistema [7] Arduino - HomePage. Disponvel em: http://arduino.cc/ Acessado em 16
Fuzzy no software FuzzyTECH e os resultados esto na tabela de Agosto 2013.
3. [8] Arduino - ArduinoBoardDuemilanove. Disponvel em:
http://arduino.cc/en/Main/ArduinoBoardDuemilanove Acessado em 17 de
Agosto 2013.
[9] Wiring. Disponvel em: http://www.wiring.org.co/ Acessado em 17 de
Agosto 2013.
[10] Scratch for Arduino S4A. Disponvel em: http://s4a.cat/ Acessado em
17 de Agosto 2013.
[11] Ardublock A GRAPHICAL PROGRAMMING LANGUAGE FOR
ARDUINO. Disponvel em: http://blog.ardublock.com Acessado em 17 de
Agosto 2013.
[12] Minibloq. Disponvel em: http://blog.minibloq.org/ Acessado em 18 de
Agosto 2013.
[13] MCROBERTS, Michael. Arduino Bsico. 1; Ed. So Paulo: Novatec,
2011.
[14] A Usina por Dentro. Disponvel em: http://www.weg.net/acucar-e-
alcool/usina_por_dentro.html Acessado em 15 de Novembro 2013.
[15] Usina Virtual. Disponvel em: http://www.unica.com.br/usina-
virtual.php Acessado em 15 de Novembro 2013.
[16] eFLL Embedded Fuzzy Logic Library. Disponvel em:
http://zerokol.com/post/51e9324ee8 4c55a1f5000007/1/en Acessado em 15
de Novembro 2013.

Você também pode gostar