<?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>Daniel Andrade &#187; sonar</title>
	<atom:link href="http://blog.danielandrade.net/tag/sonar/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.danielandrade.net</link>
	<description>tecnologia, eletrônica e aleatoriedades</description>
	<lastBuildDate>Sun, 03 Jul 2011 00:49:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Trabalhando com Sonar + Arduino</title>
		<link>http://blog.danielandrade.net/2009/11/trabalhando-com-sonar-arduino/</link>
		<comments>http://blog.danielandrade.net/2009/11/trabalhando-com-sonar-arduino/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 21:16:47 +0000</pubDate>
		<dc:creator>DanielAndrade</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[eletrônica]]></category>
		<category><![CDATA[microcontrolador]]></category>
		<category><![CDATA[projetos]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[sonar]]></category>

		<guid isPermaLink="false">http://blog.danielandrade.net/?p=63</guid>
		<description><![CDATA[Hoje falarei um pouco sobre o Maxbotix LV-EZ4 Ultrasonic Range Finder, um sensor de proximidade que funciona por UltraSom, e como utilizá-lo com o Arduino. Um sensor de proximidade pode [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje falarei um pouco sobre o <strong><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8504">Maxbotix LV-EZ4 Ultrasonic Range Finder</a></strong>, um sensor de proximidade que funciona por UltraSom, e como utilizá-lo com o <a href="http://arduino.cc/">Arduino</a>. </p>
<p>Um sensor de proximidade pode ser útil em muitos projetos, como por exemplo para fazer alarmes (os carros usam este tipo de sensor para detectar presença), ou então para fazer um <a href="http://www.instructables.com/id/BOB-V20/">Robô que desvia de obstáculos</a> ou qualquer outra coisa que meça distância. Este tipo de sensor funciona melhor do que o Infra-Vermelho na luz do sol, porém não funciona bem em superfícies irregulares, como tecidos e na grama. Tirando isso é um ótimo sensor. </p>
<p>Analizando o DataSheet, podemos saber alguns dados mais técnicos sobre o sensor, como por exemplo que sua distância limite é de 6->256 polegadas (15.24cm -> 6.45m)</p>
<p><img src="http://img.photobucket.com/albums/v107/tigerbr/max.jpg" alt="" align="center" /></p>
<p><span id="more-63"></span></p>
<p><strong>Maxbotix:</strong></p>
<ul>
<li>42kHz Ultrasonic sensor</li>
<li> Opera em 2.5-5.5V</li>
<li>Utiliza 2mA de corrente para funcionar</li>
<li> 20Hz Frequência de leitura</li>
<li>RS232 Saída Serial  &#8211; 9600bps</li>
<li>  Saída Analógica &#8211; 10mV/polegada</li>
<li>  PWM  &#8211; 147uS/polegada</li>
</ul>
<p><strong>Documentação para Download:</strong></p>
<ul>
<li><a href="http://www.maxbotix.com/uploads/MaxBotixNewProducts.pdf">Beam Width Explanation</a></li>
<li><a href="http://www.maxbotix.com/uploads/LV-MaxSonar-EZ4-Datasheet.pdf">LV-EZ4 Datasheet</a></li>
<li><a href="http://www.maxbotix.com/MaxSonar-EZ1__FAQ.html">Maxbotix FAQ</a></li>
</ul>
<p><strong>Como o sonar funciona:</strong></p>
<p>Sonar é a sigla em inglês de Sound Navigation And Ranging, ou navegação e mapeamento pelo som. Basicamente, o sensor envia uma onda em alta frequência que ao &#8220;bater&#8221; em um objeto é refletida. Quando a onda volta para o sensor, ele calcula o tempo, e assim a distância. Mais informações na <a href="http://en.wikipedia.org/wiki/Ultrasound">Wikipedia</a>.<br />
<img src="http://img.photobucket.com/albums/v107/tigerbr/Picture1-1.png" alt="" /></p>
<p><strong>Trabalhando com o Arduino:</strong></p>
<p>Creio que a maneira mais fácil de trabalhar com o sensor é utilizando o conversor Analógico-Digital do microcontrolador presente no Arduino. Para tudo funcionar, você deve apenar alimentar o sensor com +5V,GND e a saída analógica em alguma entrada analógica do Arduino, simples assim. </p>
<p>Agora que o hardware esta configurado, vamos entender um pouco mais dos cálculos necessários para saber a distância dos objetos. O sensor &#8220;libera&#8221; <strong>(Vcc/512) / polegadas </strong>. Se alimentarmos o circuito com 5 Volts fornecidos pelo arduino, teremos <strong>10mV/polegada</strong>. Como o AD (Analógico-Digital) do microcontrolador é de 10 bits, o que significa que uma variação de 0-5V resultaria numa leitura de 0-1024. Logo, devemos usar o <strong>Valor-Da-Leitura/2</strong>, e para transformar em centímetros, apenas multiplicamos o valor por 2.4 (1 polegada = 2.4 centímetros).</p>
<p><strong>Imagens:</strong><br />
<img src="http://img.photobucket.com/albums/v107/tigerbr/max1.jpg" alt="" /><br />
<img src="http://img.photobucket.com/albums/v107/tigerbr/max2.jpg" alt="" /></p>
<p><strong>Video:</strong><br />
<object width="550" height="413"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5783408&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5783408&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="413"></embed></object></p>
<p>Aqui vai o código-fonte do programa<br />
Você pode baixar <a href="http://danielandrade.net/files/maxbotix-ultrasonic-range-finder.pde">AQUI</a>.</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">/* <br />
<br />
&nbsp; @ Code for interfacing arduino with a Maxbotix LV-EZ4 Ultrasonic Range Finder<br />
&nbsp; @ Code by Daniel Spillere Andrade<br />
&nbsp; @ www.danielandrade.net &nbsp; &nbsp;-=- &nbsp; daniel@danielandrade.net<br />
<br />
*/</span><br />
<br />
<br />
<span style="color: #993333;">int</span> blinkLed<span style="color: #339933;">=</span><span style="color: #0000dd;">13</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Where the led will blink</span><br />
<span style="color: #993333;">int</span> sensorPin<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Analog Pin In</span><br />
<span style="color: #993333;">int</span> sum<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// Variable to calculate SUM</span><br />
<span style="color: #993333;">int</span> avgrange<span style="color: #339933;">=</span><span style="color: #0000dd;">50</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Quantity of values to average</span><br />
<span style="color: #993333;">int</span> sensorValue<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Value for te average</span><br />
<span style="color: #993333;">int</span> i<span style="color: #339933;">,</span>media<span style="color: #339933;">,</span>d<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Variables</span><br />
<span style="color: #993333;">float</span> cm<span style="color: #339933;">,</span>inch<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Converted to cm</span><br />
<br />
<br />
<span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; Serial.<span style="color: #202020;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <span style="color: #666666; font-style: italic;">// To check what is being read on the Serial Port</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; d<span style="color: #339933;">=</span>analogRead<span style="color: #009900;">&#40;</span>sensorPin<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// Read the analog value</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #009900;">&#40;</span>blinkLed<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// Turn on LED</span><br />
&nbsp; &nbsp; delay<span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Delay changes with the analogread</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">13</span><span style="color: #339933;">,</span>LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Turn off LED</span><br />
&nbsp; &nbsp; delay<span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Another delay</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; cm <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>d <span style="color: #339933;">/</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color:#800080;">2.4</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Convert the value to centimeters</span><br />
&nbsp; &nbsp; inch <span style="color: #339933;">=</span> d<span style="color: #339933;">/</span><span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Value in inches</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; Serial.<span style="color: #202020;">println</span><span style="color: #009900;">&#40;</span>cm<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Print average of all measured values</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// This is the code if you want to make an average of the read values</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;">/* <br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp;for(i = 0; i &lt; avgrange ; i++) {<br />
&nbsp; &nbsp; &nbsp; &nbsp;sum+=analogRead(sensorPin);<br />
&nbsp; &nbsp; &nbsp; &nbsp;delay(10);<br />
&nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; media = sum/avgrange;<br />
&nbsp; &nbsp; Serial.println(media); &nbsp;//Print average of all measured values<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; sum=0;<br />
&nbsp; &nbsp; &nbsp; media=0;<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Obrigado por ler.<br />
 <img src='http://blog.danielandrade.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.danielandrade.net/2009/11/trabalhando-com-sonar-arduino/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

