{"id":435,"date":"2019-02-05T21:12:25","date_gmt":"2019-02-05T23:12:25","guid":{"rendered":"https:\/\/turing.pro.br\/kadupantoja\/?p=435"},"modified":"2019-02-05T23:32:35","modified_gmt":"2019-02-06T01:32:35","slug":"javino-primeiros-passos","status":"publish","type":"post","link":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/2019\/02\/05\/javino-primeiros-passos\/","title":{"rendered":"Javino: Primeiros Passos"},"content":{"rendered":"\n<p>A utiliza\u00e7\u00e3o do Arduino junto com programas em Java \u00e9 um processo que pode ser considerado situa\u00e7\u00f5es em que \u00e9 necess\u00e1rio estabelecer a comunica\u00e7\u00e3o serial entre essas diferentes tecnologias. Para isso, hardware e software precisam utilizar um protocolo de comunica\u00e7\u00e3o comum, que pode ser definido como uma regra para enviar blocos de dados de um sistema para outro. Nesse contexto, existem bibliotecas que s\u00e3o desenvolvidas especificamente para realizar comunica\u00e7\u00e3o serial entre duas tecnologias distintas. No entanto, essas bibliotecas focam apenas em um lado da plataforma (uma das tecnologias), deixando o outro lado para o programador. Al\u00e9m disso, elas tamb\u00e9m podem ser considerados um recurso limitado, no sentido de que podem facilmente perder dados ou sofrer interfer\u00eancias f\u00edsicas durante o processo de comunica\u00e7\u00e3o.<\/p>\n\n\n\n<p>O Javino pode ser entendido como uma biblioteca dupla para troca de mensagens entre um Arduino e um programa Java usando a porta serial. Ele \u00e9 composto de uma biblioteca para o Arduino e uma outra para o Java, onde estas trabalham em conjunto para garantir uma troca de informa\u00e7\u00f5es com baixa taxa de erro. Em rela\u00e7\u00e3o ao funcionamento do Javino, o Python e pySerial tamb\u00e9m s\u00e3o usados para estabelecer uma comunica\u00e7\u00e3o de n\u00edvel mais baixo para a porta serial, porque s\u00e3o interpretados.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Requisitos de Instala\u00e7\u00e3o para o Javino <\/h4>\n\n\n\n<p>O Javino requer o Python 2.7 vers\u00e3o <a rel=\"noreferrer noopener\" aria-label=\"32 bits (abre em uma nova aba)\" href=\"https:\/\/sourceforge.net\/projects\/javino\/files\/Dependency\/MS-Windows\/python-2.7.10.msi\/download\" target=\"_blank\">32 bits<\/a> ou <a rel=\"noreferrer noopener\" aria-label=\"64 bits (abre em uma nova aba)\" href=\"https:\/\/sourceforge.net\/projects\/javino\/files\/Dependency\/MS-Windows\/python-2.7.10.amd64.msi\/download\" target=\"_blank\">64 bits<\/a> e o <a rel=\"noreferrer noopener\" aria-label=\"pySerial (abre em uma nova aba)\" href=\"https:\/\/sourceforge.net\/projects\/javino\/files\/Dependency\/MS-Windows\/pyserial-2.7.win32.exe\/download\" target=\"_blank\">pySerial<\/a>, que permite o acesso para execu\u00e7\u00e3o do Python em qualquer sistema operacional. No Linux, \u00e9 poss\u00edvel instalar essas depend\u00eancias usando o seguinte comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#apt-get update &amp;&amp; apt-get install python-serial python<\/code><\/pre>\n\n\n\n<p>Caso n\u00e3o utilize os links acima, o Python 2.7 pode ser encontrado em <a href=\"https:\/\/www.python.org\/\">https:\/\/www.python.org\/<\/a> e o pySerial pode ser adquirido em <a href=\"http:\/\/pyserial.sf.net\/\">http:\/\/pyserial.sf.net\/<\/a>. Al\u00e9m disso, o Javino pode ser encontrado em <a href=\"http:\/\/javino.sf.net\">http:\/\/javino.sf.net<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Configurando e Usando o Javino com o Arduino<\/h4>\n\n\n\n<p>Primeiramente, \u00e9 preciso ter o sketch do Arduino instalado para poder configurar o e utilizar o Javino. Ap\u00f3s isso, \u00e9 necess\u00e1rio adicionar e depois importar a biblioteca chamada <em>Javino.h<\/em> e coloc\u00e1-lo no sketch do Arduino. Para adicionar o Javino na IDE do Arduino, selecione a op\u00e7\u00e3o <em>Add .ZIP Library<\/em> e escolha o arquivo <em>Javino1.1.zip<\/em> que vem no arquivo de distribui\u00e7\u00e3o, conforme a Figura 1. Ap\u00f3s este procedimento, j\u00e1 \u00e9 poss\u00edvel come\u00e7ar a programa\u00e7\u00e3o de qualquer projeto usando as fun\u00e7\u00f5es do Javino dispon\u00edveis e a sintaxe padr\u00e3o do Arduino.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"206\" src=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_1-1024x206.png\" alt=\"\" class=\"wp-image-456\" srcset=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_1-1024x206.png 1024w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_1-300x60.png 300w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_1-768x154.png 768w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_1.png 1701w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Figura 1. Adicionando a biblioteca do Javino no sketch do Arduino.<\/figcaption><\/figure><\/div>\n\n\n\n<p>Para importar o Javino para um projeto do Arduino, v\u00e1 no menu <em>sketch <\/em>e em seguida na op\u00e7\u00e3o <em>Import Library<\/em>, onde todas as bibliotecas adicionas e dispon\u00edveis ser\u00e3o listadas (Figura 2). Selecione a biblioteca do Javino e automaticamente o comando de importa\u00e7\u00e3o da biblioteca aparecer\u00e1 no topo do c\u00f3digo fonte do projeto em quest\u00e3o. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_2-1024x486.png\" alt=\"\" class=\"wp-image-460\" srcset=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_2-1024x486.png 1024w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_2-300x142.png 300w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_2-768x364.png 768w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_addZip_2.png 1454w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Figura 2. Importando a biblioteca do Javino para um projeto do Arduino.<\/figcaption><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Configurando e Usando o Javino com o Java<\/h4>\n\n\n\n<p>O Javino para Java pode ser instalado seguindo uma sequ\u00eancia de etapas semelhantes ao do sketch do Arduino. Primeiramente, \u00e9 preciso utilizar algum <em>framework <\/em>de desenvolvimento para Java. No caso desse exemplo, ser\u00e1 utilizado o Eclipse para ilustrar todo o processo, por\u00e9m esses mesmos passos podem ser executados em qualquer <em>framework <\/em>(excetuando-se suas particularidades). Al\u00e9m disso, esse processo \u00e9 baseado na ideia de configurar o <em>Build Path<\/em> de um projeto, que \u00e9 usado para cria\u00e7\u00e3o de um programa ou aplicativo e cont\u00e9m o c\u00f3digo fonte e as bibliotecas que s\u00e3o \u00fateis para compilar um projeto Java. Para isso, se faz necess\u00e1rio a exist\u00eancia ou cria\u00e7\u00e3o de algum projeto em Java. Em seguida, para configurar o <em>Build Path<\/em>:<\/p>\n\n\n\n<ul><li>Clique com o bot\u00e3o direito do mouse sobre um \u00edcone chamado JRE System Library [JavaSE-1.8]. Em seguida, procure uma op\u00e7\u00e3o chamada <em>Build Path<\/em> e escolha a seguinte op\u00e7\u00e3o &#8211; <em>Configure Build Path<\/em> (Figura 3).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"469\" src=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_1.png\" alt=\"\" class=\"wp-image-462\" srcset=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_1.png 819w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_1-300x172.png 300w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_1-768x440.png 768w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><figcaption>Figura 3. Configurando o Build Path do Eclipse para Importar o Javino.<\/figcaption><\/figure>\n\n\n\n<ul><li>Escolha a op\u00e7\u00e3o chamada <em>Add External JARs<\/em> na aba <em>Libraries <\/em>(Bibliotecas) e escolha o <em>javino.stable1.1<\/em> como o arquivo que deve ser inclu\u00eddo no conjunto de bibliotecas dispon\u00edveis (Figura 4).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"466\" src=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_2-1024x466.png\" alt=\"\" class=\"wp-image-465\" srcset=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_2-1024x466.png 1024w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_2-300x136.png 300w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_2-768x349.png 768w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_2.png 1444w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Figura 4. Adicionando um arquivo jar externo.<\/figcaption><\/figure>\n\n\n\n<ul><li>Depois de configurar o <em>Build Path <\/em>e importar o arquivo jar do Javino, \u00e9 poss\u00edvel encontrar a biblioteca referenciada nas Referenced Libraries (Bibliotecas Referenciadas) dentro do projeto Java criado (Figura 5).<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_3.png\" alt=\"\" class=\"wp-image-468\" width=\"278\" height=\"222\" srcset=\"https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_3.png 332w, https:\/\/turing.pro.br\/kadupantoja\/wp-content\/uploads\/2019\/02\/Javino_buildPath_3-300x239.png 300w\" sizes=\"(max-width: 278px) 100vw, 278px\" \/><figcaption>Figura 5. O biblioteca do Javino importada no projeto do Eclipse.<\/figcaption><\/figure><\/div>\n\n\n\n<p>Ap\u00f3s essas tarefas, tanto o sketch do Arduino como o projeto em Java estar\u00e3o prontos para o desenvolvimento e o estabelecimento de uma comunica\u00e7\u00e3o serial para a troca de informa\u00e7\u00f5es entre <em>hardware<\/em> e <em>software<\/em>. Se voc\u00ea for utilizar o Javino em algum projeto acad\u00eamico, artigo ou trabalho cient\u00edfico, n\u00e3o deixe de referenciar o trabalho <strong><em><a href=\"https:\/\/www.researchgate.net\/publication\/277403727_A_Robotic-agent_Platform_for_Embedding_Software_Agents_Using_Raspberry_Pi_and_Arduino_Boards\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"A Robotic-agent Platform For Embedding Software Agents using Raspberry Pi and Arduino Boards (abre em uma nova aba)\">A Robotic-agent Platform For Embedding Software Agents using Raspberry Pi and Arduino Boards<\/a>&nbsp;<\/em><\/strong>como a seguir:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>LAZARIN, N M, e PANTOJA C E. 2015. \u201cA Robotic-agent Platform For Embedding Software Agents using Raspberry Pi and Arduino Boards\u201d. Anais do IX Workshop-Escola de Sistemas de Agentes, seus Ambientes e Aplica\u00e7\u00f5es \u2013 IX WESAAC.<\/p><\/blockquote>\n\n\n\n<p>Ou caso voc\u00ea utilize o Latex, insira o registro <em>bibtex <\/em>a seguir no arquivo <em>bib <\/em>do seu projeto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@inproceedings{lazarin2015,\ntitle = {A Robotic-agent Platform for Embedding Software Agents Using Raspberry Pi and Arduino Boards},\nauthor = {Nilson M. Lazarin and Pantoja, Carlos E.},\nbooktitle = {$9^{th}$ Software Agents, Environments and Applications School}, \nyear = {2015}\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A utiliza\u00e7\u00e3o do Arduino junto com programas em Java \u00e9 um processo que pode ser considerado situa\u00e7\u00f5es em que \u00e9 necess\u00e1rio estabelecer a comunica\u00e7\u00e3o serial entre essas diferentes tecnologias. Para isso, hardware e software precisam utilizar um protocolo de comunica\u00e7\u00e3o&#8230;<\/p>\n","protected":false},"author":1,"featured_media":493,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"_links":{"self":[{"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/posts\/435"}],"collection":[{"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/comments?post=435"}],"version-history":[{"count":45,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/posts\/435\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/posts\/435\/revisions\/497"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/media\/493"}],"wp:attachment":[{"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/media?parent=435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/categories?post=435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/turing.pro.br\/kadupantoja\/index.php\/wp-json\/wp\/v2\/tags?post=435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}