<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Disk Chocolate &#187; sun spot</title>
	<atom:link href="http://diskchocolate.com/blog/tag/sun-spot/feed/" rel="self" type="application/rss+xml" />
	<link>http://diskchocolate.com/blog</link>
	<description>Entregamos o melhor chocolate</description>
	<lastBuildDate>Thu, 24 May 2012 00:26:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>[Tutorial] Aprendendo a Mexer com o Sun SPOTS</title>
		<link>http://diskchocolate.com/blog/2009/01/11/tutorial-aprendendo-a-mexer-com-o-sun-spots/</link>
		<comments>http://diskchocolate.com/blog/2009/01/11/tutorial-aprendendo-a-mexer-com-o-sun-spots/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 16:28:54 +0000</pubDate>
		<dc:creator>Cindy Dalfovo</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[sun]]></category>
		<category><![CDATA[sun spot]]></category>
		<category><![CDATA[sunspot]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.diskchocolate.com/blog/?p=635</guid>
		<description><![CDATA[Eu sempre preferi a parte de software do que a de hardware &#8211; eu me lembro de realmente FUGIR das aulas sobre hardware no meu curso t&#233;cnico, e sempre que tenho algum problema com hardware eu costumo pedir socorro ao meu namorado. Al&#233;m dele entender mais disso do que eu, ele tem o mesmo efeito [...]]]></description>
			<content:encoded><![CDATA[<p>Eu sempre preferi a parte de software do que a de hardware &#8211; eu me lembro de realmente FUGIR das aulas sobre hardware no meu curso t&eacute;cnico, e sempre que tenho algum problema com hardware eu costumo pedir socorro ao meu namorado. Al&eacute;m dele entender mais disso do que eu, ele tem o mesmo efeito do Gizmo nesta tirinha do Recruta Zero:</p>
<img width="525" height="157" class="size-full wp-image-636" title="recrutazero_gizmo_effect" alt="Recruta Zero - The Gizmo Effect" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/recrutazero_gizmo_effect.jpg" />
<p>Al&eacute;m disso, eu sempre preferi a praticidade da programa&ccedil;&atilde;o: &eacute; muito mais f&aacute;cil aprender a programar do que aprender a mexer com hardware, j&aacute; que tudo o que voc&ecirc; precisa est&aacute; ao alcance dos seus dedos: existem milh&otilde;es de tutoriais de programa&ccedil;&atilde;o na rede, e n&atilde;o &eacute; muito dif&iacute;cil baixar IDEs e testar seus rec&eacute;m-feitos programas.</p>
<p>Mexer com hardware, por outro lado, envolve coisas misteriosas como comprar placas, ter de aprender a mexer com Assembly (ou com&nbsp;C, na melhor das hip&oacute;teses), montar redes m&iacute;sticas e torcer para nada queimar&#8230; e eu nem mencionei em tentar colocar perif&eacute;ricos extras e mais interessantes do que&#8230; LEDs.</p>
<p>Atualmente, existem algumas alternativas para quem quer mexer com um hardware mais interessante e de maneira n&atilde;o t&atilde;o complicada &#8211; uma que eu posso mencionar que eu j&aacute; usei &eacute; o <a href="http://mindstorms.lego.com/eng/LW_dest/default.aspx" target="_blank">kit de Lego Mindstorms</a> &#8211; voc&ecirc; pode criar bonecos em legos, colocar sensores de luz, de press&atilde;o, colocar motores, e programar tudo isso a partir de uma programa&ccedil;&atilde;o em blocos simples (mas limitada) provida pela kit, ou programar em C e passar o programa atrav&eacute;s de infravermelho para o rob&ocirc; feito de Lego.</p>
<p>Bom, o resultado do meu grupo quando n&oacute;s tivemos de fazer um projeto com isso na faculdade foi esse:</p>
<img width="500" height="375" class="size-full wp-image-637" title="lego_agv" alt="Lego Mindstorms - AGV" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/lego_agv.jpg" />
<p>Lindo, n&eacute;?&nbsp;Trata-se de um pequeno ve&iacute;culo para levar e trazer pe&ccedil;as em um ch&atilde;o de f&aacute;brica.&nbsp;Nada funcionou como a gente esperava na hora que a gente precisava, mas tudo bem&#8230;</p>
<p>O problema desse tipo de solu&ccedil;&atilde;o &eacute; que eles ainda s&atilde;o muito caros &#8211; especialmente aqui no Brasil. Um kit do Mindstorms mais recentes (e mais bacana) custa cerca de 1000 reais aqui no Brasil. N&atilde;o &eacute; exatamente algo que voc&ecirc; pense &quot;ah, ok, vou comprar um para ver como &eacute;&#8230;&quot;. Mas &eacute; o tipo de coisa que eu gostaria de dar para um filho, se ele se interessasse e eu tivesse condi&ccedil;&otilde;es. Ein, meu filho ser&aacute; filho de dois engenheiros nerds, voc&ecirc;s tem ALGUMA d&uacute;vida de que ele ser&aacute; criado como uma crian&ccedil;a tr00 nerd?</p>
<p>Devaneios maternais de lado, outra solu&ccedil;&atilde;o &eacute; o<a target="_blank" href="http://www.buglabs.net"> Bug Labs</a>, que oferece um kit b&aacute;sico e &quot;apetrechos&quot; extras para voc&ecirc; fazer coisas mais interessantes, como uma c&acirc;mera de 2MP, GPS, uma base para voc&ecirc; conectar apetrechos via USB, sensor de movimento, aceler&ocirc;metro&#8230; o problema, novamente, &eacute; o pre&ccedil;o: 250 d&oacute;lares pela base, e de 50 a 80 d&oacute;lares pelos m&oacute;dulos extras. Mas ele traz uma SDK para ajudar no desenvolvimento, e &eacute; open-source.</p>
<p>A outra op&ccedil;&atilde;o que eu conhe&ccedil;o e sobre a qual eu vou falar &eacute; a solu&ccedil;&atilde;o da Sun, o<a target="_blank" href="http://www.sunspotworld.com/"> Sun SPOTS</a>. Basicamente, s&atilde;o pequenos hardwares que voc&ecirc; pode programar em Java, j&aacute; que ele roda uma m&aacute;quina virtual. Conta com aceler&ocirc;metros, sensores de luz, bot&otilde;es anal&oacute;gicos e digitais, etc.</p>
<blockquote>
<p>Nota r&aacute;pida:&nbsp;Ao procurar por Sun Spots no Google, encontrei uma not&iacute;cia com essa headline:&nbsp;&quot;Sun goes longer than normal without producing sunspots&quot; e cliquei, j&aacute; preocupada em estar interessada em uma tecnologia que poderia estar dando sinais de cansa&ccedil;o.</p>
<p>Bom, n&atilde;o era bem esse o caso, como voc&ecirc; pode conferir <a target="_blank" href="http://www.sciencedaily.com/releases/2008/06/080609124551.htm">olhando a mat&eacute;ria</a>&#8230;</p>
<p>Nisso que d&aacute; uma empresa chamada Sun criar uma tecnologia chamada Sun SPOTS&#8230;</p>
</blockquote>
<p>Como existem muitos gamers que l&ecirc;em esse blog, eu acho que uma boa motiva&ccedil;&atilde;o seria mostrar esse v&iacute;deo do Sun&nbsp;Sposts sendo usado para criar um controle diferente para jogar Counter Strike:</p>
<p>&nbsp;</p>
<p><object width="425" height="344"><param value="http://www.youtube.com/v/3yrwwosSEfM&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" name="movie" /><param value="true" name="allowFullScreen" /><embed width="425" height="344" allowfullscreen="true" type="application/x-shockwave-flash" src="http://www.youtube.com/v/3yrwwosSEfM&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"></embed></object></p>
<p>&nbsp;Legal, ein? Novamente, os pre&ccedil;os s&atilde;o um problema: 750 d&oacute;lares pela base e seus apetrechos. Existe um desconto promocional para estudantes americanos, para 300 d&oacute;lares. H&aacute; algum tempo, por&eacute;m, eles estavam dando kits para estudantes que apresentassem propostas interessantes de uso &#8211; um amigo meu conseguiu um kit assim. Atualmente essa promo&ccedil;&atilde;o n&atilde;o est&aacute; mais valendo, mas mesmo assim eu tenho chances de conseguir um kit (o que &eacute; um assunto para outro post).</p>
<p>Para isso, claro, eu preciso fazer uma proposta interessante de uso do Sun SPOTS. E para poder fazer isso, eu preciso conhec&ecirc;-lo melhor, para saber do que esse danado &eacute; capaz.</p>
<p>E eu posso fazer isso n&atilde;o apenas lendo o site, mas efetivamente programando e testando no Sun Spots!&nbsp;N&atilde;o em um de verdade, claro, mas em um emulador fornecido pela Sun.</p>
<p>Como eu adoro criar tutoriais, eu vou tentar relatar o que eu estiver aprendendo por aqui. Se algu&eacute;m tiver MUITO interesse, entre em contato com uma proposta de uso. Eu n&atilde;o posso fazer muita coisa para conseguir kits, mas eu posso mostrar sua proposta para algu&eacute;m que possa. :p</p>
<h2>Instalando o Emulador</h2>
<p>Primeiramente, voc&ecirc; deve ter o Sun Java JRE. Se voc&ecirc; j&aacute; programa em Java, voc&ecirc; j&aacute; tem o que &eacute; necess&aacute;rio, ent&atilde;o n&atilde;o se preocupe. Instru&ccedil;&otilde;es mais espec&iacute;ficas podem ser encontradas <a target="_blank" href="http://www.sunspotworld.com/GettingStarted/">aqui</a>, de acordo com o sistema operacional que voc&ecirc; usa.</p>
<p>Tendo os runtimes necess&aacute;rios, tudo o que voc&ecirc; precisa fazer &eacute; ir na p&aacute;gina do <a target="_blank" href="http://www.sunspotworld.com/SPOTManager/">Sun Spot Manager </a>e baixar o aplicativo.</p>
<a href="http://www.sunspotworld.com/SPOTManager/"><img width="252" height="204" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/install_now.jpeg" alt="SunSpot Manager - Install Now" title="install_now" class="size-full wp-image-641" /></a>
<p>Execute-o com o Sun Java WebStart (seu sistema provavelmente ir&aacute; conhecer a extens&atilde;o e mandar abrir com esse programa, de qualquer maneira), leia aquilo tudo (eu tenho certeza de que voc&ecirc; vai fazer isso&#8230;), des&ccedil;a a barra de rolagem at&eacute; o final, clique em pr&oacute;ximo, pr&oacute;ximo&#8230; se quiser, crie um atalho para o Sun&nbsp;Spot&nbsp;Manager no seu desktop, facilita quando voc&ecirc; quiser acess&aacute;-lo depois.</p>
<p>Ele vai verificar se voc&ecirc; tem o Netbeans. Se voc&ecirc; ainda n&atilde;o tiver, instale-o quando sugerido, assim como o Ant. Isso facilita bastante&nbsp; na hora de desenvolver, acredite.</p>
<p>Al&eacute;m disso, n&atilde;o h&aacute; muito segredo na hora de instalar &#8211; ele ir&aacute; verificar os requisitos do seu sistema, sugerir instalar alguma coisa que n&atilde;o encontre&#8230; se voc&ecirc; ler pelo menos o m&iacute;nimo (sabe, aquelas mensagens que costumam aparecer com pontos de exclama&ccedil;&atilde;o do lado), voc&ecirc; n&atilde;o deve encontrar problemas aqui. Mas se encontrar algum, poste nos coment&aacute;rios que eu tento ajudar, claro.</p>
<p>Se voc&ecirc; fez tudo certo, d&ecirc; um duplo clique no atalho que est&aacute; na sua &aacute;rea de trabalho e ele ir&aacute; abrir o Sun SPOT Manager na aba de tutoriais. A parte que mais nos interessa &eacute; o Solarium:</p>
<a href="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium.jpeg"><img width="300" height="218" src="http://www.diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium-300x218.jpg" alt="Sun SPOT Manager - Solarium" title="sunspot_solarium" class="size-medium wp-image-642" /></a>
<p>&Eacute; aqui que n&oacute;s temos acesso ao emulador do Sun SPOT &#8211; clicar no pequeno bot&atilde;o escrito &quot;Solarium&quot; no canto inferior direito ir&aacute; abrir o espa&ccedil;o do emulador (e tamb&eacute;m da onde voc&ecirc; visualiza os Sun SPOTs reais que voc&ecirc; tiver conectado ao seu PC).</p>
<a href="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium_2.jpeg"><img width="300" height="209" class="size-medium wp-image-644" title="sunspot_solarium_2" alt="Sun SPOT Solarium - Emulador" src="http://www.diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium_2-300x209.jpg" /></a>
<p>Ao ir no menu &quot;emulator&quot; e selecionar a op&ccedil;&atilde;o&nbsp;&quot;new virtual spot&quot;, voc&ecirc; ir&aacute; ver a imagem de um pequeno spot na sua tela:</p>
<a href="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium_3.jpeg"><img width="159" height="261" class="size-full wp-image-645" title="sunspot_solarium_3" alt="Sun SPOT - virtual spot" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_solarium_3.jpeg" /></a>
<p>Pronto, esse &eacute; o emulador. Ao clicar com o bot&atilde;o direito sobre o Virtual SPOT voc&ecirc; vai ver a op&ccedil;&atilde;o &quot;deploy MIDlet bundle&quot;, que &eacute; onde voc&ecirc; ir&aacute; selecionar o programa que voc&ecirc; fez para testar no SPOT&#8230; o que nos leva, claro, ao passo seguinte: como fazer um programa para o SPOT?</p>
<h2>Desenvolvendo para Sun SPOT no NetBeans</h2>
<p>Se voc&ecirc; instalou o Netbeans junto do Sun SPOT&nbsp;Manager, voc&ecirc; j&aacute; deve ter os plugins necess&aacute;rios. Mas como esse n&atilde;o &eacute; o caso de muitas pessoas, vamos ver como instalar os&nbsp; plugins necess&aacute;rios. Em primeiro lugar, voc&ecirc; deve fazer o <a href="http://www.diskchocolate.com/blog/wp-content/uploads/2009/01/com-sun-sunspot-updatecenter.nbm">download</a> do plugin que ir&aacute; adicionar um novo Update Center ao NetBeans.</p>
<p>Para instalar esse plugin, abra o Netbeans e v&aacute; no menu &quot;Ferramentas&quot; -&gt;&nbsp;Plug-ins.</p>
<a href="http://diskchocolate.com/blog/wp-content/uploads/2009/01/netbeans_instalar_plugin.jpeg"><img width="507" height="187" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/netbeans_instalar_plugin.jpeg" alt="Netbeans - Instalar Novo Plugin" title="netbeans_instalar_plugin" class="size-full wp-image-648" /></a>
<p>Na aba &quot;baixados&quot;, selecione &quot;adicionar plug-ins&quot; e escolha o plugin que voc&ecirc; acabou de baixar.&nbsp;Depois de instal&aacute;-lo, v&aacute; em plug-ins dispon&iacute;veis e recarregue o cat&aacute;logo. Instale os plugins da categoria SunSPOT que ir&atilde;o surgir:</p>
<img width="368" height="115" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/netbeans_sunspot_plugin.jpeg" alt="netbeans - sunspot plugin" title="netbeans_sunspot_plugin" class="size-full wp-image-649" />
<p>Depois disso, crie um novo projeto na categoria &quot;Java&quot;, do tipo Sun SPOT Application:</p>
<img width="455" height="135" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/netbeans_novo_projeto_sunspot.jpeg" alt="Netbeans - Novo Projeto de Sun SPOT" title="netbeans_novo_projeto_sunspot" class="size-full wp-image-650" />
<p>Voc&ecirc; vai ver que ele j&aacute; cria uma classe padr&atilde;o, a StartApplication.java, que tem todos os &quot;imports&quot; e inicializa&ccedil;&otilde;es necess&aacute;rias para fazer seu Spot funcionar &#8211; na realidade, este j&aacute; &eacute; um programa que voc&ecirc; pode testar no seu emulador. N&atilde;o que ele seja muito &uacute;teil &#8211; ele se resume a ficar piscando um led enquanto voc&ecirc; n&atilde;o abertar um bot&atilde;o.</p>
<p>O c&oacute;digo para isso se encontra no m&eacute;todo startApp():</p>
<img width="560" height="147" class="size-full wp-image-652" title="Sun SPOT - Example Code" alt="Sun SPOT - Example Code" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_example_code.jpeg" />
<p>A primeira linha usa um m&eacute;todo para recuperar o Switch 1, o primeiro led &eacute; colocado em um cor ligeiramente vermelha na segunda linha e ent&atilde;o inicia-se um la&ccedil;o que &eacute; executado enquanto o Switch 1 estiver &quot;aberto&quot; (um switch fecha um circuito quando est&aacute; pressionado, por isso a express&atilde;o &quot;open&quot;, j&aacute; que quando ele n&atilde;o est&aacute; pressionado ele deixa um circuito aberto): Liga o led, espera um um quarto de segundo, desliga o led, espera um segundo e reinicia o processo.</p>
<p>Quando o switch &eacute; pressionado, o programa sai do la&ccedil;o e o notifyDestroyed serve para dizer que o programa foi encerrado (o que chama o destroyApp, que n&atilde;o faz nada al&eacute;m de se certificar de que todos os leds est&atilde;o apagados neste caso).</p>
<p>Para construir o programa e test&aacute;-lo, voc&ecirc; deve construi-lo, clicando com o bot&atilde;o direito sobre o projeto e selecionando &quot;construir&quot;. Isso ir&aacute; gerar um jar na pasta &quot;suite&quot; do seu projeto.</p>
<p>Agora, s&oacute; falta a parte mais divertida: finalmente testar seu projeto &quot;Hello, world!&quot;.</p>
<h2>Testando o Projeto no Emulador</h2>
<p>Lembram-se de que eu falei l&aacute; em cima que ir&iacute;amos testar o aplicativo no Solarium?&nbsp;Volte para o Solarium, onde voc&ecirc; criou o Virtual Spot, clique com o bot&atilde;o direito sobre ele,&nbsp; em&nbsp;&quot;deploy MIDlet bundle&quot; e ent&atilde;o selecione o jar que voc&ecirc; criou. </p>
<p>Para testar, clique com o bot&atilde;o direito sobre o SPOT, &quot;Run MIDlet&quot; -&gt;&nbsp;&quot;StartApplication&quot;. Pronto, voc&ecirc; ter&aacute; seu super-bacan&eacute;rrimo&#8230; SPOT que pisca o LED!</p>
<p>Se voc&ecirc; clicar novamente com o bot&atilde;o direito e ent&atilde;o em &quot;Display Sensor Output&quot; -&gt;&nbsp;Internal frame, voc&ecirc; ir&aacute; ver tamb&eacute;m os valores dos sensores (que voc&ecirc; tamb&eacute;m pode alterar atrav&eacute;s dessa interface), como abaixo:</p>
<img width="584" height="283" class="size-full wp-image-653" title="Sun SPOT - emulador rodando exemplo" alt="Sun SPOT - emulador rodando exemplo" src="http://diskchocolate.com/blog/wp-content/uploads/2009/01/sunspot_emulador_rodando_exemplo.jpeg" />
<p>E aqui n&oacute;s terminamos a primeira parte do tutorial.&nbsp;Espero que na pr&oacute;xima parte n&oacute;s j&aacute; estejamos fazendo coisas mais interessantes do que piscar LEDs, n&atilde;o? <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>De qualquer maneira, se voc&ecirc; se interessou, n&atilde;o fique me esperando: existem muitos tutoriais que vem com o pr&oacute;prio Sun SPOT&nbsp;Manager, no site oficial&#8230;</p>
<p>E, gente, tutoriais assim d&atilde;o um *** trabalho para fazer, ent&atilde;o, se voc&ecirc;s gostaram, percam dois segundos da sua vida e comentem :p Eu sou uma pessoa carente. Ainda mais agora que meu namorado vai passar um m&ecirc;s fora. *sniff* * abra&ccedil;a todos os leitores do blog*</p>
]]></content:encoded>
			<wfw:commentRss>http://diskchocolate.com/blog/2009/01/11/tutorial-aprendendo-a-mexer-com-o-sun-spots/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

