Você está na página 1de 40

PROGRAMAO ORIENTADA A OBJETOS

PARA ARDUINO USANDO JAVA

JAVA
.INO
Autor:
Francisco Newton Rocha Gomes MBA EM PROJETO DE
Orientador: APLICAES JAVA
Prof. Dr. Leonardo Daniel Tavares Junho - 2016
JAVA
THE LOGO .INO
CONTEXTUALIZAO JAVA
.INO
Sistemas embarcados (desenvolvimento e evoluo)

Internet das Coisas e objetos inteligentes

Prottipos (plataformas de hardware e software)

Microcontroladores, sensores e atuadores

Programao (paradigmas e metodologias)


PROBLEMA JAVA
.INO
A programao utilizada na plataforma Arduino utiliza em sua
essncia a metodologia estruturada atravs de sua linguagem
prpria, baseada na linguagem de programao C.

Atualmente os padres de desenvolvimento utilizados pelas


linguagens de programao mais modernas utilizam a
metodologia de programao orientada a objetos, a qual aplica
uma abordagem de alto nvel de abstrao proporcionando
vrias vantagens de seu uso nos ambientes de desenvolvimento
de programas.
PROBLEMA JAVA
.INO

Como aplicar a metodologia de Programao


Orientada a Objetosem alto nvel de abstrao
para projetos que utilizam a plataforma de
prototipagem Arduino, com a linguagem de
programao Java ?
JAVA
OBJETIVOS .INO

O objetivo geral deste trabalho desenvolver uma plataforma de


software capaz de aplicar a programao orientada a objetos para a
criao de programas na plataforma Arduino, proporcionando uma
evoluo na forma de desenvolver projetos que utilizem a abstrao de
objetos do mundo real na perspectiva do desenvolvimento de sistemas
embarcados.

Uma arquitetura de componentes foi desenvolvida para alcanar este


objetivo, e assim validar a perspectiva de objetos para programar os
projetos desenvolvidos com a plataforma Arduino.
OBJETIVOS JAVA
ESPECFICOS .INO

Apresentar a Programao Projetar e implementar a


Orientada a Objetos como programao dos
metodologia de construo de componentes de software que
programas nos ambientes atuais permitam a criao de solues
de desenvolvimento; para a plataforma Arduino com
a metodologia Orientada a
Apresentar a plataforma Arduino e Objetos utilizando a linguagem
sua utilizao na construo de de programao Java;
projetos de dispositivos com
controle atravs de sistema Criar uma prova de conceito
embarcado; para validar os componentes de
software propostos no
desenvolvimento desta pesquisa.
JUSTIFICATIVA JAVA
PROGRAMAO ORIENTADA A OBJETOS .INO
O paradigma OO (orientado a objetos) permite a resoluo de um problema
com a respectiva escrita do programa de computador, considerando
sempre a definio de um modelo de abstrao que especifique os objetos
envolvidos e como estes interagem no sentido de obter a soluo do
problema.
A metodologia de programao orientada a objetos, ela considera o
aumento do nvel de abstrao na construo de programas de
computador aproximando a forma como ns vemos o mundo real e suas
relaes e associaes atravs de objetos (concretos ou abstratos) para o
mundo da computao atravs de formas e tcnicas especificas de
modelagem de problemas e sua soluo implementada.
JUSTIFICATIVA JAVA
PROGRAMAO ORIENTADA A OBJETOS .INO

A POO uma metodologia de programao ajuda a organizar programas


complexos atravs do uso de encapsulamento, herana e polimorfismo.

Aplicamos a abordagem OO no desenvolvimento deste trabalho, de tal


forma a proporcionar uma maior abstrao e produtividade no
desenvolvimento de programas para a plataforma Arduino.
JUSTIFICATIVA JAVA
.INO
PLATAFORMA DE PROTOTIPAGEM ARDUINO

Depois que o Arduino comeou a se popularizar, ficou notrio uma grande


quantidade de experimentadores, "hobbistas e hackers de todo tipo que
passavam a utiliz-lo na criao de projetos maravilhosos e malucos. O
hardware Arduino foi um sucesso, visto a ampla possibilidade de aplicaes.
Banzi (2011)
LINGUAGENS DE
PROGRAMAO
LINGUAGENS DE
PROGRAMAO
METODOLOGIA JAVA
.INO
Reviso da literatura relativa aos conceitos e tecnologias abordadas na
construo da arquitetura de componentes proposta.
Conceitos e princpios da metodologia orientada a objetos
Conceitos de sistemas embarcados e a plataforma Arduino
Caractersticas da linguagem Java e suas aplicaes

Modelagem da soluo da arquitetura a ser desenvolvida para atender ao


propsito da pesquisa. Os modelos foram criados atravs da linguagem
UML, utilizando o diagrama de classes que representa as abstraes de
componentes utilizados nas camadas de software do projeto.
METODOLOGIA JAVA
.INO
A proposta foi implementada na plataforma Arduino (modelo Arduino Uno),
onde foram analisadas suas caractersticas para aplicao na proposta de
arquitetura, e feita uma comparao com outras configuraes disponveis.
A arquitetura de componentes teve sua descrio detalhada textualmente
e na forma de diagramas e desenhos ilustrativos, facilitando a apresentao
dos componentes de hardware e software de forma a sintetizar o
funcionamento esperado do conjunto
Desenvolver uma PoC (Prova de Conceito) para validao da pesquisa
atravs da implementao de forma parcial da arquitetura projetada, e a
apresentao de dois projetos simples que utilizaram de forma
experimental a arquitetura implementada na PoC.
ANLISE DOS JAVA
RESULTADOS .INO
O projeto foi batizado como Java.ino (Java
com Arduino) que prope uma arquitetura
de desenvolvimento em alto nvel de
abstrao, utilizando os conceitos e
princpios da POO (Programao Orientada
a Objetos) em Java, composta
essencialmente de uma soluo de
Software implementada com a linguagem C
(linguagem do Arduino) e a linguagem
Java.
ANLISE DOS JAVA
RESULTADOS .INO
Apresentao da arquitetura composta de
componentes de software em computadores
(pcs ou smartphones) conectados com a
plataforma Arduino atravs de um meio de
comunicao estabelecido (Serial, Ethernet,
Wifi, Bluetooth), de tal forma que estes
computadores possa comandar instrues
para o controle das portas de comunicao
externas digitais e analgicas do Arduino, as
quais estariam conectadas a circuitos que
controlam a utilizao de sensores para
captao de estmulos, bem como de
atuadores para execuo de alguma ao
dentro do sistema, seja de natureza lgica
ANLISE DOS JAVA
RESULTADOS .INO

ESQUEMA DE COMPONENTES ENVOLVIDOS NA


ARQUITETURA PROPOSTA
ANLISE DOS JAVA
RESULTADOS .INO

A soluo implementada utiliza um


protocolo de comunicao, que permite as
operaes bsicas serem realizadas no
microcontrolador da plataforma Arduino
atravs das diversas portas de
comunicao da placa (analgicas e
digitais), sendo para leitura e/ou escrita.
ANLISE DOS JAVA
RESULTADOS .INO
O protocolo implementado foi denominado
JIP (Java.ino Protocol), que possui um
padro de comandos definidos por um
analisador lxico que divide uma estrutura
de comando para um formato genrico de
comunicao, possvel de ser
implementado atravs de comunicao
Serial, comunicao de Ethernet,
comunicao Bluetooth ou comunicao
Wifi, sem prejuzo algum ao
reconhecimento da semntica aplicada.
MODELO DE COMPONENTES DA
ARQUITETURA DO PROJETO JAVA.INO
JIP JAVA.INO PROTOCOL
JIP JAVA.INO PROTOCOL
JAVA ANLISEDOS
.INO
RESULTADOS
ESCOPO DO DESENVOLVIMENTO DA POC
Implementao utilizando uma nica
forma de comunicao (Serial);
Implementao parcial do Protocolo de
Comunicao (JIP);
Soluo conectando um computador
pessoal (PC) a uma placa Arduino Uno;
Aplicao da arquitetura proposta para
um Projeto de Led Piscante;
Aplicao da arquitetura proposta para
um Projeto de Semforo de Trnsito.
ANLISE DOS JAVA
RESULTADOS
.INO
ANLISE DOS JAVA
RESULTADOS
.INO
ANLISE DOS JAVA
RESULTADOS
.INO
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
ANLISE DOS JAVA
RESULTADOS
.INO
IMPLEMENTAO DA PROVA DE CONCEITO
UTILIZANDO A PLATAFORMA
JAVA
CONCLUSO
.INO
O DESENVOLVIMENTO DO TRABALHO REALIZADO ATRAVS
DA ARQUITETURA PROPOSTA E A POC APRESENTOU OS
SEGUINTES RESULTADOS:

Maior flexibilidade, escalabilidade e manutenibilidade


oferecida pelo cdigo gerado utilizando POO, em
comparao ao modelo estruturado utilizado pela
linguagem nativa do Arduino.
Aplicao da perspectiva de objetos na modelagem
de solues na programao de sistemas
embarcados.
Demonstrou-se o poder da abstrao quando
aplicamos os conceitos e princpios da orientao a
objetos na programao de solues de componentes
de software.
JAVA
CONCLUSO
.INO
O DESENVOLVIMENTO DO TRABALHO REALIZADO ATRAVS
DA ARQUITETURA PROPOSTA E A POC APRESENTOU OS
SEGUINTES RESULTADOS:

Possibilidade de programar projetos no Arduino


atravs de uma abstrao completa da estrutura de
hardware utilizando um modelo de classes e
componentes.
Criao de operaes do microcontrolador e o
controle das portas de comunicao utilizadas para a
conexo de sensores e/ou atuadores, atravs de
objetos instanciados com comportamento definido
pelos conceitos da orientao a objetos.
JAVA
CONCLUSO
.INO
O DESENVOLVIMENTO DO TRABALHO REALIZADO ATRAVS
DA ARQUITETURA PROPOSTA E A POC APRESENTOU OS
SEGUINTES RESULTADOS:

Permitiu a independncia do desenvolvimento e a


diviso de responsabilidades proporcionada pela
abstrao do hardware atravs de um modelo de
classes, otimizando a diviso de tarefas e a alocao
dos recursos em um projeto de sistema embarcado no
Arduino.
No entanto, este trabalho limitou-se codificao
parcial da proposta de componentes possveis de
implementao, deixando uma margem de evoluo
bastante extensa e aberta para novos trabalhos com
base na estrutura arquitetural definida.
JAVA
CONCLUSO
.INO

A ARQUITETURA DESENVOLVIDA PROPE UMA


NOVA ALTERNATIVA PARA DESENVOLVER
PROJETOS DE DISPOSITIVOS EMBARCADOS
QUE SEJAMPROTOTIPADOS ATRAVS DA
PLATAFORMA ARDUINO, UTILIZANDO
UMALINGUAGEM DE PROGRAMAO DE
GRANDE PENETRAO NO MERCADO E
BASTANTE DIFUNDIDA NOS MEIOS
EMPRESARIAL E ACADMICO.
(LINGUAGEM DE PROGRAMAO JAVA)
REFERNCIAS
ARDUINO. Site oficial da plataforma Arduino. Disponvel 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 Maurcio A. Sistema de Segurana Veicular
com uso de GPS baseado em Arduino. Trabalho de Concluso de
Curso (Graduao em Engenharia de Computao). Manaus:
Universidade do Estado do Amazonas, 2013.
BORATTI, Isaias Camilo. Programao Orientada a Objetos em
Java. Florianpolis: 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.
So Paulo: Pearson Prentice Hall, 2010.
GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES,
John. Padres de Projeto: Solues reutilizveis de software
orientado a objetos. Porto Alegre: Bookman, 2000.
REFERNCIAS
JANDL Jr., Peter. Java Guia do Programador - 2 ed. So Paulo:
Novatec Editora, 2013.
LEITE, Mario; RAHAL Jr., Nelson Abu Sanra. Programao
Orientada ao Objeto: uma abordagem didtica. Agosto, 2002.
Disponvel em:
<http://www.ccuec.unicamp.br/revista/navegacao/infotec.html
>. Acesso em: 04/02/2016.
McROBERTS, Michael. Arduino Bsico. So 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 Referncia Completa - 8 ed. Rio de
Janeiro: Alta Books, 2014.
REFERNCIAS
SILVEIRA, Paulo; SILVEIRA, Guilherme; LOPES, Srgio; MOREIRA,
Guilherme; STEPPAT, Nico; KUNG, Fabio. Introduo
Arquitetura e Design de Software: Uma viso sobre a plataforma
Java. Rio de Janeiro: Elsevier, 2012.
SOMMERVILLE, Ian. Engenharia de Software. 9 ed. So Paulo:
Pearson Prentice Hall, 2011.
JAVA
.INO

OBRIGADO!
Francisco Newton ROcha Gomes
Analista de Sistemas, MBA. Interessados em contribuir no
newtongomes.net@gmail.com projeto pode contactar-nos.

Você também pode gostar