JAVA
P R O G R A M A Ç Ã O O R I E N T A D A A O B J E T O S P A R A A R D U I N O U S A N D O J A V A
.INOAu t o r :
F r a n c i s c o New ton Rocha Gome s
O r i e n t ado r :
P r o f . D r . L e ona r do Dan i e l T a v a r e s
MBA EM PROJE TO DE
APL I CAÇÕES JAVA
J unho - 20 1 6
T H E L O G OJAVA
.INO
JAVA
.INOC O N T E X T U A L I Z A Ç Ã O
Sistemas embarcados (desenvolvimento e evolução)
Internet das Coisas e objetos inteligentes
Protótipos (plataformas de hardware e software)
Microcontroladores, sensores e atuadores
Programação (paradigmas e metodologias)
P R O B L E M AA programação utilizada na plataforma Arduino utiliza em sua
essência a metodologia estruturada através de sua linguagem
própria, baseada na linguagem de programação C.
Atualmente os padrões de desenvolvimento utilizados pelas linguagens de programação mais modernas utilizam a
metodologia de programação orientada a objetos, a qual aplica
uma abordagem de alto nível de abstração proporcionando
várias vantagens de seu uso nos ambientes de desenvolvimento
de programas.
JAVA
.INO
P R O B L E M A
Como aplicar a metodologia de Programação
Orientada a Objetos em alto nível de abstração
para projetos que utilizam a plataforma de
prototipagem Arduino, com a linguagem de
programação Java ?
JAVA
.INO
O B J E T I V O S
O objetivo geral deste trabalho é desenvolver uma plataforma de
software capaz de aplicar a programação orientada a objetos para a
criação de programas na plataforma Arduino, proporcionando uma
evolução na forma de desenvolver projetos que utilizem a abstração de
objetos do mundo real na perspectiva do desenvolvimento de sistemas
embarcados.
Uma arquitetura de componentes foi desenvolvida para alcançar este
objetivo, e assim validar a perspectiva de objetos para programar os
projetos desenvolvidos com a plataforma Arduino.
JAVA
.INO
O B J E T I V O S E S P E C Í F I C O S
Apresentar a Programação
Orientada a Objetos como
metodologia de construção de
programas nos ambientes atuais de desenvolvimento;
Apresentar a plataforma Arduino e
sua utilização na construção de
projetos de dispositivos com
controle através de sistema
embarcado;
Projetar e implementar a
programação dos componentes de software que
permitam a criação de soluções para a plataforma Arduino com
a metodologia Orientada a
Objetos utilizando a linguagem
de programação Java;
Criar uma prova de conceito
para validar os componentes de
software propostos no
desenvolvimento desta pesquisa.
JAVA
.INO
J U S T I F I C A T I V AP R O G R A M A Ç Ã O O R I E N T A D A A O B J E T O S
O paradigma OO (orientado a objetos) permite a resolução de um problema
com a respectiva escrita do programa de computador, considerando
sempre a definição de um modelo de abstração que especifique os objetos
envolvidos e como estes interagem no sentido de obter a solução do
problema.
A metodologia de programação orientada a objetos, ela considera o
aumento do nível de abstração na construção de programas de
computador aproximando a forma como nós vemos o mundo real e suas
relações e associações através de objetos (concretos ou abstratos) para o
mundo da computação através de formas e técnicas especificas de
modelagem de problemas e sua solução implementada.
JAVA
.INO
J U S T I F I C A T I V AP R O G R A M A Ç Ã O O R I E N T A D A A O B J E T O S
A POO é uma metodologia de programação ajuda a organizar programas
complexos através do uso de encapsulamento, herança e polimorfismo.
Aplicamos a abordagem OO no desenvolvimento deste trabalho, de tal
forma a proporcionar uma maior abstração e produtividade no
desenvolvimento de programas para a plataforma Arduino.
JAVA
.INO
J U S T I F I C A T I V A
P L A T A F O R M A D E P R O T O T I P A G E M A R D U I N O
Depois que o Arduino começou a se popularizar, ficou notório uma grande
quantidade de experimentadores, "hobbistas” e hackers de todo tipo que
passavam a utilizá-lo na criação de projetos maravilhosos e malucos. O
hardware Arduino foi um sucesso, visto a ampla possibilidade de aplicações.
Banzi (2011)
JAVA
.INO
L I N G U A G E N S D E P R O G R A M A Ç Ã O
L I N G U A G E N S D E P R O G R A M A Ç Ã O
M E T O D O L O G I A
Revisão da literatura relativa aos conceitos e tecnologias abordadas na
construção da arquitetura de componentes proposta.
Conceitos e princípios da metodologia orientada a objetos
Conceitos de sistemas embarcados e a plataforma Arduino
Características da linguagem Java e suas aplicações
Modelagem da solução da arquitetura a ser desenvolvida para atender ao
propósito da pesquisa. Os modelos foram criados através da linguagem
UML, utilizando o diagrama de classes que representa as abstrações de
componentes utilizados nas camadas de software do projeto.
JAVA
.INO
M E T O D O L O G I AA proposta foi implementada na plataforma Arduino (modelo Arduino Uno),
onde foram analisadas suas características para aplicação na proposta de
arquitetura, e feita uma comparação com outras configurações disponíveis.
A arquitetura de componentes teve sua descrição detalhada textualmente
e na forma de diagramas e desenhos ilustrativos, facilitando a apresentação
dos componentes de hardware e software de forma a sintetizar o
funcionamento esperado do conjunto
Desenvolver uma PoC (Prova de Conceito) para validação da pesquisa
através da implementação de forma parcial da arquitetura projetada, e a
apresentação de dois projetos simples que utilizaram de forma
experimental a arquitetura implementada na PoC.
JAVA
.INO
O projeto foi batizado como Java.ino (Java
com Arduino) que propõe uma arquitetura
de desenvolvimento em alto nível de
abstração, utilizando os conceitos e
princípios da POO (Programação Orientada
a Objetos) em Java, composta
essencialmente de uma solução de
Software implementada com a linguagem C
(linguagem do Arduino) e a linguagem
Java.
JAVA
.INO
A N Á L I S E D O S R E S U L T A D O S
Apresentação da arquitetura composta de
componentes de software em computadores
(pcs ou smartphones) conectados com a
plataforma Arduino através de um meio de
comunicação estabelecido (Serial, Ethernet,
Wifi, Bluetooth), de tal forma que estes
computadores possa comandar instruções
para o controle das portas de comunicação
externas digitais e analógicas do Arduino, as
quais estariam conectadas a circuitos que
controlam a utilização de sensores para
captação de estímulos, bem como de
atuadores para execução de alguma ação
dentro do sistema, seja de natureza lógica
JAVA
.INO
A N Á L I S E D O S R E S U L T A D O S
E S Q U E M A D E C O M P O N E N T E S E N V O L V I D O S N A
A R Q U I T E T U R A P R O P O S T A
JAVA
.INO
A N Á L I S E D O S R E S U L T A D O S
A solução implementada utiliza um
protocolo de comunicação, que permite as
operações básicas serem realizadas no
microcontrolador da plataforma Arduino
através das diversas portas de
comunicação da placa (analógicas e
digitais), sendo para leitura e/ou escrita.
JAVA
.INO
A N Á L I S E D O S R E S U L T A D O S
O protocolo implementado foi denominado
JIP (Java.ino Protocol), que possui um
padrão de comandos definidos por um
analisador léxico que divide uma estrutura
de comando para um formato genérico de
comunicação, possível de ser
implementado através de comunicação
Serial, comunicação de Ethernet,
comunicação Bluetooth ou comunicação
Wifi, sem prejuízo algum ao
reconhecimento da semântica aplicada.
JAVA
.INO
A N Á L I S E D O S R E S U L T A D O S
M O D E L O D E C O M P O N E N T E S D A A R Q U I T E T U R A D O P R O J E T O J A V A . I N O
J I P – J A V A . I N O P R O T O C O L
J I P – J A V A . I N O P R O T O C O L
ANÁLISE DOS RESULTADOS
Implementação utilizando uma única forma de comunicação (Serial); Implementação parcial do Protocolo de Comunicação (JIP); Solução conectando um computador pessoal (PC) a uma placa Arduino Uno; Aplicação da arquitetura proposta para um Projeto de Led Piscante; Aplicação da arquitetura proposta para um Projeto de Semáforo de Trânsito.
JAVA
.INO
E S C O P O D O D E S E N V O L V I M E N T O D A P O C
ANÁLISE DOS RESULTADOS
JAVA
.INO
ANÁLISE DOS RESULTADOS
JAVA
.INO
ANÁLISE DOS RESULTADOS
JAVA
.INO
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
ANÁLISE DOS RESULTADOS
JAVA
.INO
JAVA
.INO
I M P L E M E N T A Ç Ã O D A P R O V A D E C O N C E I T O U T I L I Z A N D O A P L A T A F O R M A
Maior flexibilidade, escalabilidade e manutenibilidade
oferecida pelo código gerado utilizando POO, em
comparação ao modelo estruturado utilizado pela
linguagem nativa do Arduino.
Aplicação da perspectiva de objetos na modelagem
de soluções na programação de sistemas
embarcados.
Demonstrou-se o poder da abstração quando
aplicamos os conceitos e princípios da orientação a
objetos na programação de soluções de componentes
de software.
CONCLUSÃO JAVA
.INOO D E S E N V O L V I M E N T O D O T R A B A L H O R E A L I Z A D O A T R A V É S D A A R Q U I T E T U R A P R O P O S T A E A P O C A P R E S E N T O U O S S E G U I N T E S R E S U L T A D O S :
Possibilidade de programar projetos no Arduino
através de uma abstração completa da estrutura de
hardware utilizando um modelo de classes e
componentes.
Criação de operações do microcontrolador e o
controle das portas de comunicação utilizadas para a
conexão de sensores e/ou atuadores, através de
objetos instanciados com comportamento definido
pelos conceitos da orientação a objetos.
CONCLUSÃO JAVA
.INOO D E S E N V O L V I M E N T O D O T R A B A L H O R E A L I Z A D O A T R A V É S D A A R Q U I T E T U R A P R O P O S T A E A P O C A P R E S E N T O U O S S E G U I N T E S R E S U L T A D O S :
Permitiu a independência do desenvolvimento e a
divisão de responsabilidades proporcionada pela
abstração do hardware através de um modelo de
classes, otimizando a divisão de tarefas e a alocação
dos recursos em um projeto de sistema embarcado no
Arduino.
No entanto, este trabalho limitou-se à codificação
parcial da proposta de componentes possíveis de
implementação, deixando uma margem de evolução
bastante extensa e aberta para novos trabalhos com
base na estrutura arquitetural definida.
CONCLUSÃO JAVA
.INOO D E S E N V O L V I M E N T O D O T R A B A L H O R E A L I Z A D O A T R A V É S D A A R Q U I T E T U R A P R O P O S T A E A P O C A P R E S E N T O U O S S E G U I N T E S R E S U L T A D O S :
CONCLUSÃO JAVA
.INO
A A R Q U I T E T U R A D E S E N V O L V I D A P R O P Õ E U M A
N O V A A L T E R N A T I V A P A R A D E S E N V O L V E R
P R O J E T O S D E D I S P O S I T I V O S E M B A R C A D O S
Q U E S E J A M P R O T O T I P A D O S A T R A V É S D A
P L A T A F O R M A A R D U I N O , U T I L I Z A N D O
U M A L I N G U A G E M D E P R O G R A M A Ç Ã O D E
G R A N D E P E N E T R A Ç Ã O N O M E R C A D O E
B A S T A N T E D I F U N D I D A N O S M E I O S
E M P R E S A R I A L E A C A D Ê M I C O .
( L I N G U A G E M D E P R O G R A M A Ç Ã O J A V A )
REFERÊNCIASARDUINO. Site oficial da plataforma Arduino. Disponível em:
<http://www.arduino.cc>. Acesso em: 03/04/2016.
BANZI, Massimo. Getting Started with Arduino - 2 ed. Sebastopol,
CA: O'Reilly, 2011.
BENTES, Leandro Maurício A. Sistema de Segurança Veicular
com uso de GPS baseado em Arduino. Trabalho de Conclusão de
Curso (Graduação em Engenharia de Computação). Manaus:
Universidade do Estado do Amazonas, 2013.
BORATTI, Isaias Camilo. Programação Orientada a Objetos em
Java. Florianópolis: Visual Books, 2007.
CORREIA, Nuno. Internet das Coisas com SAP HANA. Lisboa: Ui5
Community Network.
DEITEL, Paul J.; DEITEL, Harvey M. Java como programar – 8 ed.
São Paulo: Pearson Prentice Hall, 2010.
GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES,
John. Padrões de Projeto: Soluções reutilizáveis de software
orientado a objetos. Porto Alegre: Bookman, 2000.
REFERÊNCIASJANDL Jr., Peter. Java Guia do Programador - 2 ed. São Paulo:
Novatec Editora, 2013.
LEITE, Mario; RAHAL Jr., Nelson Abu Sanra. Programação
Orientada ao Objeto: uma abordagem didática. Agosto, 2002.
Disponível em:
<http://www.ccuec.unicamp.br/revista/navegacao/infotec.html
>. Acesso em: 04/02/2016.
McROBERTS, Michael. Arduino Básico. São Paulo: Novatec, 2011.
MONK, Simon. 30 Arduino Projects for the Evil Genius. New York:
McGraw-Hill, 2010.
PRESSMAN, Roger S. Engenharia de Software: Uma abordagem
profissional. 7 ed. Porto Alegre: McGraw-Hill (Bookman), 2011.
SCHILDT, Herbert. Java: A Referência Completa - 8 ed. Rio de
Janeiro: Alta Books, 2014.
REFERÊNCIASSILVEIRA, Paulo; SILVEIRA, Guilherme; LOPES, Sérgio; MOREIRA,
Guilherme; STEPPAT, Nico; KUNG, Fabio. Introdução à
Arquitetura e Design de Software: Uma visão sobre a plataforma
Java. Rio de Janeiro: Elsevier, 2012.
SOMMERVILLE, Ian. Engenharia de Software. 9 ed. São Paulo:
Pearson Prentice Hall, 2011.
O B R I G A D O !F r a n c i s c o New ton ROcha Gome s
Ana l i s t a de S i s t ema s , MBA .
new t ongome s .ne t@gma i l . c om
JAVA
.INO
Interessados em contribuir no projeto pode contactar-nos.
Top Related