tag:blogger.com,1999:blog-50662069088083895302024-03-10T03:46:34.784+01:00Biotronica_ElectronicaJaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.comBlogger52125tag:blogger.com,1999:blog-5066206908808389530.post-65657141795332186402014-12-02T17:19:00.001+01:002014-12-02T17:19:35.553+01:00MULTI – the world’s first rope-free elevator system - La tecnología del futuro.<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/KUa8M0H9J5o" width="480"></iframe>Alexis Meneses Arévalohttp://www.blogger.com/profile/06954014306159472124noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-81851334336899317992014-11-23T00:56:00.001+01:002014-11-23T00:56:44.443+01:00StereoVisionPython<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/Yhx4LiFLl44" width="459"></iframe>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-73264850974871724692014-10-30T12:15:00.001+01:002014-10-30T12:15:53.174+01:00alcame: Grupo de Investigación Biomédica - Inicio - D<a href="http://www.dalcame.com/#.VFId3E_jml4.blogger">alcame: Grupo de Investigación Biomédica - Inicio - D</a>Alexis Meneses Arévalohttp://www.blogger.com/profile/06954014306159472124noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-83299002769115379112014-08-21T17:40:00.003+02:002014-08-21T17:40:54.688+02:00GPIO CubieBoard with Java<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
Hi all, this is the first part in which show you a simple code in Java that enables position control system development CubieBoard, these examples are run using Cubian (<a data-mce-href="http://cubian.org/" href="http://cubian.org/" rel="nofollow" style="color: #1fb3dd;" target="_blank">http://cubian.org/</a>). I have tried all methods for control and configuration of the pins, be very similar to the Arduino. Subsequent deliveries shall see, pin reading and servos managing.</div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
this is the project in eclipse.</div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
<a data-mce-href="https://skydrive.live.com/redir?resid=DB82E51BA2392A0E%21184" href="https://skydrive.live.com/redir?resid=DB82E51BA2392A0E%21184" style="color: #1fb3dd;">https://github.com/jarain78/Cubian_JAVA_GPIO</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ibcuoKOxd0c?feature=player_embedded' frameborder='0'></iframe></div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
Regards</div>
Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-16833985425546316662013-05-23T09:29:00.003+02:002014-06-25T09:12:19.555+02:00Virtual Glove with Arduino<div style="-x-system-font: none; display: block; font-family: Helvetica,Arial,Sans-serif; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 12px auto 6px auto;">
<br /></div>
<iframe class="scribd_iframe_embed" data-aspect-ratio="0.708006279434851" data-auto-height="false" frameborder="0" height="600" id="doc_55536" scrolling="no" src="http://www.scribd.com/embeds/139034257/content?start_page=1&view_mode=scroll&access_key=key-1j3turncfssfsvtpolhh" width="100%"></iframe>
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/CHuc9GHcMLg" width="560"></iframe>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-8471341906216115782012-08-27T13:56:00.000+02:002012-08-27T13:56:28.542+02:00Controlling Robot with Cell Phone, Second Part<br />
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
In this part I'm going to explain how the robot works with distance sensor. The arduino program is the same to the first part, but now I add one menu, this menu allows select the work function of the robot.</div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
Now in this moment we have two function, the first is Bluetooth control and the second is semi autonomous robot. I said semi, because the robot only do evade object or obstacle.</div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
For this part we´ve needed a distance sensor.In my case I use three<a data-mce-href="http://www.dfrobot.com/index.php?route=product/product&path=36_55&product_id=336#.UDsQY7VBl8E" href="http://www.dfrobot.com/index.php?route=product/product&path=36_55&product_id=336#.UDsQY7VBl8E" style="color: #1fb3dd;"> sensor Sharp with a max distance of 150 cm</a>, using the ADC convert to acquire the signal.</div>
<div style="color: #555555; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 19px; margin-bottom: 20px;">
</div>
<div style="margin-bottom: 20px;">
<br class="Apple-interchange-newline" />When I have the signal the sensor acquired, we need to calculate the distance, to do this I implemented the next code:</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
int Cal_Dis_0(){</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Dis_0 = analogRead(3);</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
volts = (float)Dis_0 * VOLTS_PER_UNIT; // ("proxSens" is from analog read)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
inches = 23.897 * pow(volts,-1.1907); //calc inches using "power" trend line from Excel</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
cm = 60.495 * pow(volts,-1.1904); // same in cm</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
if (volts < .2) inches = -1.0;</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
return cm;</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
}</div>
<div style="margin-bottom: 20px;">
The result of this operation, is sending to the mobile. when I want to send this data is necessary a encoding. We need a beginning byte and a end byte, as show below.</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
void Send(){</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print("@");</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(cm_0);</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(",");</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(cm_1);</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(",");</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(cm_2);</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(",");</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print('&');</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Serial2.print(':');</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
//delay(200);</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
}</div>
<div style="margin-bottom: 20px;">
The second step is to capture and decode data. The data is store in a list and then decrypted. Then we will have to make the implementation of actions. This is shown below:</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
class RobotAction:</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
def Robot(self, dis0,dis1,dis2):</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
Distancia = 20</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
if(dis0<Dist):# and dis1<Dist and dis2<Dist):</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
# backward</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('$')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(0)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(',')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(17)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('&')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
elif(dis0>Dist and dis1>Dist and dis2>Dist):</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
# forward</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('$')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(0)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(',')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(16)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('&')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
elif(dis1<Dist):</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
# right</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('$')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(0)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(',')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(15)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('&')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
elif(dis2<Dist):</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
# left</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('$')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(0)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(',')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(14)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('&')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
else:</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
# stop</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino('$')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(0)</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(',')</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 20px;">
app.SendArduino(167)</div>
<div style="margin-bottom: 20px;">
app.SendArduino('&')</div>
<div style="margin-bottom: 20px;">
That´s it!!!</div>
<h6 style="font-size: 12px; margin: 5px 0px 0px;">
Material:</h6>
<ul style="list-style: square; margin: 0px 0px 18px 1.5em; padding: 0px;">
<li>2 H<a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=bridge%20" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=bridge%20" style="color: #1fb3dd;"> Bridge</a> (in my case using two H bridge Pololu)</li>
<li>1 <a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=4WD%20platform" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=4WD%20platform" style="color: #1fb3dd;">4WD platform</a></li>
<li>1<a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=%20lipo%20battery" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=%20lipo%20battery" style="color: #1fb3dd;"> lipo battery</a></li>
<li>2 buck<a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=buck%20converter" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=buck%20converter" style="color: #1fb3dd;"> converter</a> (* not strictly necessary)</li>
<li>1 <a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=Arduino%20Mega" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=Arduino%20Mega" style="color: #1fb3dd;">Arduino ( I use Mega)</a></li>
<li>1 <a data-mce-href="http://www.dfrobot.com/index.php?route=product/product&filter_name=Bluetooth%20Module&product_id=360#.UDRE4bVBl8E" href="http://www.dfrobot.com/index.php?route=product/product&filter_name=Bluetooth%20Module&product_id=360#.UDRE4bVBl8E" style="color: #1fb3dd;">Bluetooth Module</a></li>
<li>1 <a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=GPS" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=GPS" style="color: #1fb3dd;">GPS</a> (not used in part one)</li>
<li>1<a data-mce-href="http://www.dfrobot.com/index.php?route=product/search&filter_name=%20Compass" href="http://www.dfrobot.com/index.php?route=product/search&filter_name=%20Compass" style="color: #1fb3dd;"> Compass</a> (not used in part one)</li>
<li>1 Mobile Nokia Symbian S60</li>
<li>3 <a data-mce-href="http://www.dfrobot.com/index.php?route=product/product&filter_name=sharp&product_id=336#.UDrF38EaPCY" href="http://www.dfrobot.com/index.php?route=product/product&filter_name=sharp&product_id=336#.UDrF38EaPCY" style="color: #1fb3dd;">Sharp Sensor</a></li>
</ul>
<div style="margin-bottom: 20px;">
In the third part I will show how to make the robot move with the accelerometer of the phone.</div>
<div align="JUSTIFY" style="margin-bottom: 20px;">
thanks</div>
<div align="JUSTIFY" style="margin-bottom: 20px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwQ-PHm9HwoyIuoJLqHfIm7OzcDw7ABb7b_fYRvwaF6qeeb_f0mIqnhE2JbdFbpbqMqV-YufSPKOV6sWyHElg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div align="JUSTIFY" style="margin-bottom: 20px;">
<br /></div>
<br />
Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-45449195236389128682012-08-21T21:00:00.001+02:002012-08-21T21:00:09.724+02:00Controlling Robot with Cell Phone<br />
<div align="CENTER" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY">
<span lang="en">Currently</span><span lang="en">
</span><span lang="en">in</span><span lang="en">
</span><span lang="en">progress</span><span lang="en">
</span><span lang="en">the</span><span lang="en">
</span><span lang="en">mobile
telephony</span><span lang="en">
</span><span lang="en">grows
exponentially</span><span lang="en">
</span><span lang="en">to
the point that</span><span lang="en">
</span><span lang="en">we
can</span><span lang="en">
</span><span lang="en">have</span><span lang="en">
</span><span lang="en">Mhz
to</span><span lang="en">
</span><span lang="en">Ghz
processors in our cellphones</span><span lang="en">,
this </span><span lang="en">begs
the question</span><span lang="en">,
</span><span lang="en">if
I have</span><span lang="en">
</span><span lang="en">this
in</span><span lang="en">
</span><span lang="en">my
hands</span><span lang="en">
</span><span lang="en">can</span><span lang="en">
I </span><span lang="en">do
more with</span><span lang="en">
</span><span lang="en">my</span><span lang="en">
</span><span lang="en">phone
and not</span><span lang="en">
</span><span lang="en">just</span><span lang="en">
</span><span lang="en">to
call</span><span lang="en">,
</span><span lang="en">be
on the Internet</span><span lang="en">
</span><span lang="en">or
play?</span></div>
<div align="JUSTIFY">
<span lang="en">But</span><span lang="en">
</span><span lang="en">how</span><span lang="en">
we </span><span lang="en">can</span><span lang="en">
</span><span lang="en">attach</span><span lang="en">
high tech or middle tech </span><span lang="en">phone
to</span><span lang="en">
</span><span lang="en">a
robot?</span><span lang="en">
well </span><span lang="en">to</span><span lang="en">
</span><span lang="en">do
this you need</span><span lang="en">
</span><span lang="en">to
use a device that for me </span><span lang="en">
</span><span lang="en">revolutionized
the</span><span lang="en">
</span><span lang="en">world
of electronics</span><span lang="en">
</span><span lang="en">or</span><span lang="en">
</span><span lang="en">microcontrollers</span><span lang="en">
</span><span lang="en">programmed</span><span lang="en">
</span><span lang="en">and
that is</span><span lang="en">
</span><span lang="en">Arduino</span><span lang="en">.</span></div>
<div align="JUSTIFY">
<span lang="en">Arduino</span><span lang="en">
</span><span lang="en">is</span><span lang="en">
</span><span lang="en">an
open</span><span lang="en">
</span><span lang="en">development
platform</span><span lang="en">
</span><span lang="en">more</span><span lang="en">
</span><span lang="en">versatile</span><span lang="en">
</span><span lang="en">of</span><span lang="en">
</span><span lang="en">the</span><span lang="en">
</span><span lang="en">world
there is nothing</span><span lang="en">
</span><span lang="en">else
to compare</span><span lang="en">
</span><span lang="en">with
it</span><span lang="en">,
</span><span lang="en">because</span><span lang="en">
</span><span lang="en">it</span><span lang="en">
</span><span lang="en">opened
the doors</span><span lang="en">
</span><span lang="en">of
electronics</span><span lang="en">
</span><span lang="en">programmed</span><span lang="en">
</span><span lang="en">everyone</span><span lang="en">,
so today </span><span lang="en">we
see a lot</span><span lang="en">
</span><span lang="en">of</span><span lang="en">
</span><span lang="en">people
without</span><span lang="en">
</span><span lang="en">to
do with</span><span lang="en">
</span><span lang="en">the
electronics</span><span lang="en">
</span><span lang="en">that
make</span><span lang="en">
</span><span lang="en">interesting</span><span lang="en">
</span><span lang="en">applications</span><span lang="en">,
</span><span lang="en">that’s
not</span><span lang="en">
</span><span lang="en">my
case</span><span lang="en">,
I do </span><span lang="en">go
through</span><span lang="en">
</span><span lang="en">stages</span><span lang="en">
</span><span lang="en">of
electronics and</span><span lang="en">
</span><span lang="en">programming
with</span><span lang="en">
</span><span lang="en">PIC</span><span lang="en">,
</span><span lang="en">Freescale</span><span lang="en">
</span><span lang="en">and
finally</span><span lang="en">
</span><span lang="en">Arduino</span><span lang="en">
</span><span lang="en">and
stayed with</span><span lang="en">
</span><span lang="en">Arduino</span><span lang="en">.</span></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY" lang="en-US">
<b>What
is about the Project?</b></div>
<div align="JUSTIFY" lang="en-US">
<br /></div>
<br /><span lang="en">1</span><span lang="en">
</span><span lang="en">4WD</span><span lang="en">
</span><span lang="en">platform</span><br />
<br /><span lang="en">1</span><span lang="en">
</span><span lang="en">lipo</span><span lang="en">
</span><span lang="en">battery</span><br />
<br /><span lang="en">2</span><span lang="en">
</span><span lang="en">buck</span><span lang="en">
</span><span lang="en">converter</span><span lang="en">
</span><span lang="en">(</span><span lang="en">*
</span><span lang="en">not
strictly necessary</span><span lang="en">)</span><br />
<span lang="en"><br /></span><span lang="en">1</span><span lang="en">
</span><span lang="en">Arduino</span><span lang="en">
</span><span lang="en">(</span><span lang="en">
I use </span><span lang="en">Mega</span><span lang="en">)</span><br />
<span lang="en"><br /></span><span lang="en">1</span><span lang="en">
</span><span lang="en">Bluetooth</span><span lang="en">
</span><span lang="en">Module</span><br />
<br /><span lang="en">1
GPS</span><span lang="en">
</span><span lang="en">(not
used in part one</span><span lang="en">)</span><br />
<span lang="en"><br /></span><span lang="en">1
Compass</span><span lang="en">
</span><span lang="en">(not
used in part one</span><span lang="en">)</span><br />
<span lang="en"><br /></span><span lang="en">1
Mobile</span><span lang="en">
</span><span lang="en">Nokia</span><span lang="en">
</span><span lang="en">Symbian</span><span lang="en">
</span><span lang="en">S60</span><br /><br /><span lang="en">We
now turn to</span><span lang="en">
</span><span lang="en">the
programming of</span><span lang="en">
</span><span lang="en">the
phone</span><span lang="en">,
</span><span lang="en">I
have</span><span lang="en">
</span><span lang="en">obtained</span><span lang="en">
</span><span lang="en">information</span><span lang="en">
</span><span lang="en">on
this page:</span><br /><span lang="en">This</span><span lang="en">
</span><span lang="en">is</span><span lang="en">
</span><span lang="en">the
code</span><span lang="en">
</span><span lang="en">for
using</span><span lang="en">
</span><span lang="en">blutooth</span><span lang="en">
</span><span lang="en">communication</span><span lang="en">
</span><span lang="en">between</span><span lang="en">
</span><span lang="en">Nokia</span><span lang="en">
</span><span lang="en">and
the robot</span><span lang="en">:</span><br /><span lang="en">Thanks</span><br />
<br />
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>Material</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span lang="en">2
H Bridge</span><span lang="en">
</span><span lang="en">(</span><span lang="en">in
my case </span><span lang="en">using
two</span><span lang="en">
H </span><span lang="en">bridge</span><span lang="en">
</span><span lang="en">Pololu</span><span lang="en">)</span></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en">The
first thing</span><span lang="en">
</span><span lang="en">we
must</span><span lang="en">
</span><span lang="en">do
is</span><span lang="en">
</span><span lang="en">make</span><span lang="en">
</span><span lang="en">the
reception</span><span lang="en">
</span><span lang="en">of
data by</span><span lang="en">
</span><span lang="en">the</span><span lang="en">
</span><span lang="en">Arduino.
we have to</span><span lang="en">
</span><span lang="en">connect</span><span lang="en">
</span><span lang="en">our
computer</span><span lang="en">
</span><span lang="en">to</span><span lang="en">
</span><span lang="en">Arduino</span><span lang="en">
and program the </span><span lang="en">serial
communication</span><span lang="en">.
</span><span lang="en">we
must</span><span lang="en">
</span><span lang="en">bear
in mind that</span><span lang="en">
we are going to </span><span lang="en">send</span><span lang="en">
several </span><span lang="en">data</span><span lang="en">
</span><span lang="en">through
the serial port</span><span lang="en">
</span><span lang="en">so
it is</span><span lang="en">
</span><span lang="en">important</span><span lang="en">
</span><span lang="en">that</span><span lang="en">
</span><span lang="en">at</span><span lang="en">
</span><span lang="en">the
time of making</span><span lang="en">
</span><span lang="en">the</span><span lang="en">
</span><span lang="en">communication</span><span lang="en">
we </span><span lang="en">have
to have a</span><span lang="en">
</span><span lang="en">start
and an</span><span lang="en">
</span><span lang="en">end
character.</span></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY">
<span lang="en">Keep
in</span><span lang="en">
</span><span lang="en">mind
that in</span><span lang="en">
</span><span lang="en">my
case</span><span lang="en">
</span><span lang="en">when
using an</span><span lang="en">
</span><span lang="en">arduino</span><span lang="en">
</span><span lang="en">mega</span><span lang="en">,
I have several </span><span lang="en">serial</span><span lang="en">
</span><span lang="en">communication
ports</span><span lang="en">
so you </span><span lang="en">can
use</span><span lang="en">
</span><span lang="en">the
library "</span><span lang="en">NewSoftSerial"
</span><span lang="en">but</span><span lang="en">
the baud </span><span lang="en">can
not be very</span><span lang="en">
</span><span lang="en">high</span><span lang="en">
</span><span lang="en">as
you run</span><span lang="en">
</span><span lang="en">the
risk of</span><span lang="en">
</span><span lang="en">information
loss</span><span lang="en">.
T</span><span lang="en">his
project</span><span lang="en">
</span><span lang="en">works</span><span lang="en">
</span><span lang="en">at
a speed</span><span lang="en">
</span><span lang="en">of
9600</span><span lang="en">
</span><span lang="en">baud</span></div>
<div align="JUSTIFY">
<span lang="en"><br /></span></div>
<span lang="en-US"><b>Arduino</b></span><span lang="en-US"><b>
code:</b></span><br />
<div class="lista-western" lang="en-US">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>void ReadData(){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> if (Serial2.available()){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> digitalWrite(13,LOW);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Dato = Serial2.read();</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> if(Dato==’$’){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> while(1){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> if(Serial2.available()){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Dato = Serial2.read();</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[conta] = Dato;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> if(Dato==’&’){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> int A = Data_Array[0]-48;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> int B = Data_Array[1]-48;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> int C = Data_Array[2]-48;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> int D = Data_Array[3]-48;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> if(C == -10){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Action = A*10 + B*1;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> else if(D == -100){</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Action = A*100 + B*10 + C*1;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> else{</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Action = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Serial.print(A);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Serial.print(B);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Serial.print©;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Serial.print(D);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>Serial.print(“Action: </b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> “);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Serial.println(Action);</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[0] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[1] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[2] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[3] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[4] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[5] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> Data_Array[6] = 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> conta=0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> break;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> conta++;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b> }</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>}</b></div>
<br />
<span lang="en-US">The</span><span lang="en-US"> </span><span lang="en-US">array</span><span lang="en-US">
</span><span lang="en-US">size</span><span lang="en-US"> </span><span lang="en-US">depends
on the amount</span><span lang="en-US"> </span><span lang="en-US">of
data you</span><span lang="en-US"> </span><span lang="en-US">are
sending</span><span lang="en-US">, </span><span lang="en-US">in my
case</span><span lang="en-US"> </span><span lang="en-US">the start
character</span><span lang="en-US"> </span><span lang="en-US">is</span><span lang="en-US">
</span><span lang="en-US">"$</span><span lang="en-US">" </span><span lang="en-US">and
the end character</span><span lang="en-US"> is</span><span lang="en-US">"</span><span lang="en-US">&".
With the </span><span lang="en-US">stored data</span><span lang="en-US">
</span><span lang="en-US">in the</span><span lang="en-US"> </span><span lang="en-US">array</span><span lang="en-US">
</span><span lang="en-US">we only need to</span><span lang="en-US">
</span><span lang="en-US">subtract</span><span lang="en-US"> </span><span lang="en-US">48,</span><span lang="en-US">
</span><span lang="en-US">this is done</span><span lang="en-US">
</span><span lang="en-US">becouse</span><span lang="en-US"> </span><span lang="en-US">the
mobile</span><span lang="en-US"> </span><span lang="en-US">or the
serial port</span><span lang="en-US"> </span><span lang="en-US">of
your computer</span><span lang="en-US"> </span><span lang="en-US">sends
data in</span><span lang="en-US"> </span><span lang="en-US">ASCII</span><span lang="en-US">,
</span><span lang="en-US">and mobile</span><span lang="en-US"> </span><span lang="en-US">sends</span><span lang="en-US">
</span><span lang="en-US">one</span><span lang="en-US"> </span><span lang="en-US">character
at a time</span><span lang="en-US">. F</span><span lang="en-US">or</span><span lang="en-US">
</span><span lang="en-US">example</span><span lang="en-US"> </span><span lang="en-US">if
we have</span><span lang="en-US"> </span><span lang="en-US">the
number</span><span lang="en-US"> </span><span lang="en-US">"</span><span lang="en-US">17",
</span><span lang="en-US">the mobile phone</span><span lang="en-US">
</span><span lang="en-US">or</span><span lang="en-US"> the computer</span><span lang="en-US">
sends</span><span lang="en-US"> </span><span lang="en-US">"</span><span lang="en-US">49
= </span><span lang="en-US">1 and 55</span><span lang="en-US"> </span><span lang="en-US">=</span><span lang="en-US">
</span><span lang="en-US">7"</span><span style="color: navy;"><span lang="zxx"><u><span lang="en">
</span></u></span></span><span lang="en">and now if</span><span lang="en">
</span><span lang="en">we subtract</span><span lang="en"> </span><span lang="en">"</span><span lang="en">48"
</span><span lang="en">have to</span><span lang="en"> </span><span lang="en">"</span><span lang="en">49-48
</span><span lang="en">=</span><span lang="en"> </span><span lang="en">1
and</span><span lang="en"> </span><span lang="en">55-48</span><span lang="en">
</span><span lang="en">=</span><span lang="en"> </span><span lang="en">7"</span><span lang="en">
</span><span lang="en">but these</span><span lang="en"> </span><span lang="en">are
two</span><span lang="en"> </span><span lang="en">separate</span><span lang="en">
</span><span lang="en">issues</span><span lang="en"> </span><span lang="en">but</span><span lang="en">
</span><span lang="en">we sent</span><span lang="en"> </span><span lang="en">the</span><span lang="en">
</span><span lang="en">seventeen</span><span lang="en"> </span><span lang="en">for
this reason</span><span lang="en"> </span><span lang="en">we have to
multiply units</span><span lang="en"> </span><span lang="en">by 1</span><span lang="en">
</span><span lang="en">and</span><span lang="en"> tens </span><span lang="en">by</span><span lang="en">
</span><span lang="en">10. If we have</span><span lang="en"> </span><span lang="en">hundreds</span><span lang="en">
</span><span lang="en">as</span><span lang="en"> </span><span lang="en">one</span><span lang="en">
</span><span lang="en">number it has to be</span><span lang="en">
</span><span lang="en">multiplied by</span><span lang="en"> </span><span lang="en">100
and</span><span lang="en"> </span><span lang="en">so on</span><span lang="en">.
</span>
<br />
<span lang="en">R</span><span lang="en">ight</span><span lang="en">
</span><span lang="en">now</span><span lang="en"> </span><span lang="en">we
do this</span><span lang="en"> </span><span lang="en">"</span><span lang="en">(1
* 10) + (7 * 1) = 17. T</span><span lang="en">his is shown</span><span lang="en">
</span><span lang="en">below:</span><br />
<span lang="en"><br /></span>
<div style="margin-left: 0.5cm;">
<b><span lang="en-US">if(Dato==</span><span lang="en-US">’&’){</span></b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
int A = Data_Array[0]-48;</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
int B = Data_Array[1]-48;</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
int C = Data_Array[2]-48;</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
int D = Data_Array[3]-48;
</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b><br />
</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
if(C == -10){</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
Action = A*10 + B*1;</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
else if(D == -10){</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
Action = A*100 + B*10 + C*1;
</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US" style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>
else{</b></div>
<div style="margin-bottom: 0cm; margin-left: 1cm; text-indent: -0.5cm;">
<b>Action
= 0;</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>}
</b>
</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en-US">Why
I ask if</span><span lang="en">t</span><span lang="en"> </span><span lang="en">"</span><span lang="en">C
</span><span lang="en">==</span><span lang="en"> </span><span lang="en">-10"</span><span lang="en">,
</span><span lang="en">this</span><span lang="en"> </span><span lang="en">is
because</span><span lang="en"> </span><span lang="en">inside</span><span lang="en">
</span><span lang="en">I'm sending</span><span lang="en"> </span><span lang="en">data</span><span lang="en">
</span><span lang="en">in</span><span lang="en"> </span><span lang="en">the
time</span><span lang="en"> </span><span lang="en">that I want my</span><span lang="en">
</span><span lang="en">robot</span><span lang="en"> </span><span lang="en">to
stop, I</span><span lang="en"> </span><span lang="en">send a</span><span lang="en">
</span><span lang="en">3-digit number</span><span lang="en"> </span><span lang="en">is</span><span lang="en">
</span><span lang="en">the number</span><span lang="en"> </span><span lang="en">167.
As the size</span><span lang="en"> </span><span lang="en">of</span><span lang="en">
</span><span lang="en">the</span><span lang="en"> </span><span lang="en">array</span><span lang="en">
</span><span lang="en">varies</span><span lang="en"> </span><span lang="en">if
I send</span><span lang="en"> </span><span lang="en">two-digit number</span><span lang="en">
</span><span lang="en">or</span><span lang="en"> </span><span lang="en">three
by</span><span lang="en"> </span><span lang="en">the time</span><span lang="en">
</span><span lang="en">it reaches</span><span lang="en"> </span><span lang="en">the</span><span lang="en">
</span><span lang="en">end of data</span><span lang="en"> </span><span lang="en">character</span><span lang="en">
</span><span lang="en">"&</span><span lang="en">", </span><span lang="en">this
value</span><span lang="en"> </span><span lang="en">is stored in</span><span lang="en">
</span><span lang="en">the 4-position</span><span lang="en"> </span><span lang="en">of</span><span lang="en">
</span><span lang="en">the</span><span lang="en"> </span><span lang="en">array</span><span lang="en">
</span><span lang="en">and</span><span lang="en"> </span><span lang="en">subtract</span><span lang="en">
</span><span lang="en">"</span><span lang="en">48" </span><span lang="en">the
result is</span><span lang="en"> </span><span lang="en">-10 and</span><span lang="en">
</span><span lang="en">this</span><span lang="en"> </span><span lang="en">is
because</span><span lang="en"> </span><span lang="en">the "&</span><span lang="en">
</span><span lang="en">=</span><span lang="en"> </span><span lang="en">38"</span><span lang="en">
</span><span lang="en">with</span><span lang="en"> </span><span lang="en">this
result</span><span lang="en"> </span><span lang="en">if</span><span lang="en">
</span><span lang="en">the value sent</span><span lang="en"> </span><span lang="en">is
two</span><span lang="en"> </span><span lang="en">or</span><span lang="en">
</span><span lang="en">three digit</span><span lang="en"> </span><span lang="en">numbers</span><span lang="en">.</span></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en">Once</span><span lang="en">
</span><span lang="en">the data is stored</span><span lang="en"> </span><span lang="en">in
a array related to variable</span><span lang="en"> </span><span lang="en">called</span><span lang="en">
</span><span lang="en">"</span><span lang="en">Acction" we
can </span><span lang="en">start the</span><span lang="en"> </span><span lang="en">motor
control</span><span lang="en">, </span><span lang="en">in this part</span><span lang="en">
</span><span lang="en">I'll explain</span><span lang="en"> </span><span lang="en">just</span><span lang="en">
</span><span lang="en">how it has to</span><span lang="en"> </span><span lang="en">be</span><span lang="en">
</span><span lang="en">because the reader</span><span lang="en"> </span><span lang="en">may
have</span><span lang="en"> </span><span lang="en">another H bridge</span><span lang="en">
</span>
</div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<br />
</div>
<div lang="en-US">
<b>if(Acction==16){</b></div>
<div lang="en-US" style="margin-left: 0.5cm;">
<b>Adelante</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US">
<b>else if(Acction==17){</b></div>
<div lang="en-US" style="margin-left: 0.5cm;">
<b>Atras</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US">
<b>else if(Acction==14){</b></div>
<div lang="en-US" style="margin-left: 0.5cm;">
<b>Izquierda</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US">
<b>else if(Acction==15){</b></div>
<div lang="en-US" style="margin-left: 0.5cm;">
<b>Derecha</b></div>
<div align="JUSTIFY" lang="en-US" style="margin-bottom: 0cm;">
<b>}</b></div>
<div lang="en-US">
<b>else if(Acciton == 167 | Acction == 0){</b></div>
<div style="margin-left: 0.5cm;">
<b>Stop</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>}</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en">and
tha´s it!!!we have motor control</span><span lang="en">.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en"><br /></span></div>
<span style="color: navy;"><span lang="zxx"><u><a class="western" href="http://www.developer.nokia.com/Community/Wiki/Python_on_Symbian">http://www.developer.nokia.com/Community/Wiki/Python_on_Symbian</a></u></span></span><span lang="en-US">
</span><span lang="en">here</span><span lang="en">
</span><span lang="en">you
will find</span><span lang="en">
</span><span lang="en">all
the information needed</span><span lang="en">
</span><span lang="en">to
program</span><span lang="en">
</span><span lang="en">a
Nokia</span><span lang="en">
</span><span lang="en">with</span><span lang="en">
</span><span lang="en">python</span><span lang="en">.</span><br />
<span lang="en"><br /></span>
<div lang="en-US">
<br /></div>
<b>Código Python para Nokia 5230 y Nokia C5</b><br />
<b><br /></b>
<br />
<div style="font-weight: bold;">
import os</div>
<div style="font-weight: bold;">
import e32</div>
<div style="font-weight: bold;">
import sys</div>
<div style="font-weight: bold;">
import time</div>
<div style="font-weight: bold;">
import math</div>
<div style="font-weight: bold;">
import audio</div>
<div style="font-weight: bold;">
import string</div>
<div style="font-weight: bold;">
import camera</div>
<div style="font-weight: bold;">
import thread</div>
<div style="font-weight: bold;">
import appuifw</div>
<div style="font-weight: bold;">
import key_codes </div>
<div style="font-weight: bold;">
from sensor import *</div>
<div style="font-weight: bold;">
from graphics import *</div>
<div style="font-weight: bold;">
from array import array</div>
<div style="font-weight: bold;">
from graphics import Image</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
pys60_version_number = e32.pys60_version_info[0] * 10 + e32.pys60_version_info[1]</div>
<div style="font-weight: bold;">
if pys60_version_number <= 14:</div>
<div style="font-weight: bold;">
import socket as btsocket</div>
<div style="font-weight: bold;">
elif pys60_version_number >= 19:</div>
<div style="font-weight: bold;">
import btsocket</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
appuifw.app.orientation = "landscape"</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Constantes</div>
<div style="font-weight: bold;">
BACKGROUND = (255, 255, 255)</div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Variables</div>
<div style="font-weight: bold;">
keyboard_state={}</div>
<div style="font-weight: bold;">
last_keycode=0</div>
<div style="font-weight: bold;">
Dat = [0,0]</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
app_lock = e32.Ao_lock()</div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
#prepare canvas for drawing</div>
<div style="font-weight: bold;">
canvas = appuifw.Canvas() </div>
<div style="font-weight: bold;">
appuifw.app.body = canvas</div>
<div style="font-weight: bold;">
appuifw.app.screen = "full"</div>
<div style="font-weight: bold;">
w, h = canvas.size</div>
<div style="font-weight: bold;">
img = Image.new((w, h))</div>
<div style="font-weight: bold;">
img.clear(BACKGROUND)</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Activar el Boton de salida</div>
<div style="font-weight: bold;">
appuifw.app.exit_key_handler = quit</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Clase Bluetooth </div>
<div style="font-weight: bold;">
class BlueArduino:</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> </div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>def ConectarArduino(self):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print "Conectando..."</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock = btsocket.socket(btsocket.AF_BT,btsocket.SOCK_STREAM)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print "Buscando"</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>#only serial services are found. </div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>addr,services = btsocket.bt_discover()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print str(addr) + "Tiene " + str(len(services)) +" Servicios" </div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print str(services)<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>if len(services):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> #create a choiselist and let the user choose which service to use.</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> choiseList = services.keys()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> choiseList.sort()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> selected=appuifw.popup_menu([unicode(services[x])+": "+x for x in choiseList],u'select service:')</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> self.host = (addr,services[choiseList[selected]])</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>else:</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> raise(IOError)</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print "connecting to " + str(self.host)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>#bug? extended access software crashes on accept request from this device</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock.connect(self.host)</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>def EnviarArduino(self, data):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(data=='$'):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock.send(chr(36))<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>elif(data==','):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock.send(chr(44))</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>elif(data=='&'):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock.send(chr(38))</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>else:<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.sock.send(str(data))</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>def flush(self):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>self.EnviarArduino(''.join([]))</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
def quit():</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>global LOOP</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>print "Quit!"</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>accelerometer.stop_listening()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>app_lock.signal()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>datafile.close()</div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Inicializacion de Graficas </div>
<div style="font-weight: bold;">
def draw_text():</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.text(TEXT_LOC, u"" + TEXT, fill = TEXT_COLOR)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>pass</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
def draw_background():</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.clear(COLOR)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>handle_redraw(None)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>pass</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
def handle_redraw(rect):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>if img:</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.blit(img)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>pass</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
def handle_event(event):</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span> handle_redraw(None)</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Inicializacion de las Teclas </div>
<div style="font-weight: bold;">
def draw_state():</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.clear()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.text((w-100,50),u' '.join([unicode(k) for k in keyboard_state if keyboard_state[k]]))<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>#app.EnviarArduino(u' '.join([unicode(k) for k in keyboard_state if keyboard_state[k]]))</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
def callback(event):</div>
<div style="font-weight: bold;">
global last_keycode</div>
<div style="font-weight: bold;">
if event['type'] == appuifw.EEventKeyDown:</div>
<div style="font-weight: bold;">
keyboard_state[event['scancode']]=1<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
elif event['type'] == appuifw.EEventKeyUp:</div>
<div style="font-weight: bold;">
keyboard_state[event['scancode']]=0</div>
<div style="font-weight: bold;">
elif event['type'] == appuifw.EEventKey:</div>
<div style="font-weight: bold;">
last_keycode=event['keycode']</div>
<div style="font-weight: bold;">
#draw_state()</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
def Flechas():</div>
<div style="font-weight: bold;">
Dato = []</div>
<div style="font-weight: bold;">
canvas.clear()</div>
<div style="font-weight: bold;">
canvas.text((0,50),u' '.join([unicode(k) for k in keyboard_state if keyboard_state[k]]))</div>
<div style="font-weight: bold;">
Dato = u' '.join([unicode(k) for k in keyboard_state if keyboard_state[k]]) </div>
<div style="font-weight: bold;">
return Dato</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Interfaz Grafica</div>
<div style="font-weight: bold;">
canvas=appuifw.Canvas(event_callback=callback,redraw_callback=lambda rect:draw_state())</div>
<div style="font-weight: bold;">
appuifw.app.body=canvas</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
# ---------------------------------------------------------------------------</div>
<div style="font-weight: bold;">
# Programa Principal</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
app = BlueArduino()<span class="Apple-tab-span" style="white-space: pre;"> </span># Invocamos la clase para la comunicacion Bluetooth</div>
<div style="font-weight: bold;">
app.ConectarArduino()<span class="Apple-tab-span" style="white-space: pre;"> </span># Realizamos la Coneccion con el dispositivo Bluetooth</div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
while 1:</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>e32.ao_yield()</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.text((w/2-20,20),u"Teclado")<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>Dat = Flechas() # envia los codigos, correspondiente a la flecha</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>app.EnviarArduino('$')</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>app.EnviarArduino(Dat)</div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>app.EnviarArduino('&')<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<br />
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en">In part
two</span><span lang="en">, I will </span><span lang="en">explain how
to</span><span lang="en"> </span><span lang="en">make our</span><span lang="en">
</span><span lang="en">mobile</span><span lang="en"> </span><span lang="en">robot</span><span lang="en">
</span><span lang="en">control</span><span lang="en"> </span><span lang="en">and</span><span lang="en">
</span><span lang="en">evade</span><span lang="en"> </span><span lang="en">the</span><span lang="en">
</span><span lang="en">obstacles</span><span lang="en"> </span><span lang="en">with</span><span lang="en">
</span><span lang="en">sharp</span><span lang="en"> </span><span lang="en">distance
sensors</span><span lang="en">.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4YpSezgLkWyVMHxeQm1Lnz9U6hplpy8A_4R8IQc58KUuExsgzlk45zeuIFXwlgDYdrNzlSrrc1qvyApvwyAPThyphenhyphenGBM7PNT9U55yp3RwWjRnCb5diBYJKEC8VVQuFC8z7GitVLUlSMbE/s1600/DSC00012.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4YpSezgLkWyVMHxeQm1Lnz9U6hplpy8A_4R8IQc58KUuExsgzlk45zeuIFXwlgDYdrNzlSrrc1qvyApvwyAPThyphenhyphenGBM7PNT9U55yp3RwWjRnCb5diBYJKEC8VVQuFC8z7GitVLUlSMbE/s320/DSC00012.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4j9kt607fY8riLYf8oSxMS-YXB-35vF8juW806KIuulyU4ztpFEaE6Hy9wORa_uEs3Mbv3LXkMGVRoYYzD-QSNCYZXKpDvnM4vNTOxB4fjSf2codU-HYHAYTdbvVPNpW_NcTdSoy_Org/s1600/DSC00013.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4j9kt607fY8riLYf8oSxMS-YXB-35vF8juW806KIuulyU4ztpFEaE6Hy9wORa_uEs3Mbv3LXkMGVRoYYzD-QSNCYZXKpDvnM4vNTOxB4fjSf2codU-HYHAYTdbvVPNpW_NcTdSoy_Org/s320/DSC00013.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1XEvTswNWsM_Rb0lqufGfbBCwTRrQgpTn_kx-LeV0aQtPB4FcVJb67wyidUsr2BtbdMZf8lwcw8-wjxl1Z75VYsGfj3KBrR2F4cBCUdVxGuyI3a62IzGo2-fTc9q2ezu3ciI1tZqoTgY/s1600/DSC00016.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1XEvTswNWsM_Rb0lqufGfbBCwTRrQgpTn_kx-LeV0aQtPB4FcVJb67wyidUsr2BtbdMZf8lwcw8-wjxl1Z75VYsGfj3KBrR2F4cBCUdVxGuyI3a62IzGo2-fTc9q2ezu3ciI1tZqoTgY/s320/DSC00016.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg86oBMHmgPKqrJTxN7iwcbGEYRSyt1pTgrtJLd15E92RY91QoFhzNQmug7SLbbNG4Hm5Eg-94tOqyxj15220sNlMAg0u5NQeECmM1dlyhAM8W4GXMDOvGUhIbikaYyOzHaNSbkWZ1ock4/s1600/DSC00017.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg86oBMHmgPKqrJTxN7iwcbGEYRSyt1pTgrtJLd15E92RY91QoFhzNQmug7SLbbNG4Hm5Eg-94tOqyxj15220sNlMAg0u5NQeECmM1dlyhAM8W4GXMDOvGUhIbikaYyOzHaNSbkWZ1ock4/s320/DSC00017.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDYzLp4BWTK9MIpkKR4zogASFxw1rxWI0kqEmDEmLLOn4f7_w8Mqwc_EfjdeN7YoqyHwaF305Ksjq5RSZUgG4zA81p_okCHcV0lzyBmkEp-POqscacd4yyIgOAymNiR4yJ-0sZlVjo3hU/s1600/DSC00018.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDYzLp4BWTK9MIpkKR4zogASFxw1rxWI0kqEmDEmLLOn4f7_w8Mqwc_EfjdeN7YoqyHwaF305Ksjq5RSZUgG4zA81p_okCHcV0lzyBmkEp-POqscacd4yyIgOAymNiR4yJ-0sZlVjo3hU/s320/DSC00018.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuFYEKTm9BZ8gICRSgmClwHFl6yCov1TWaCb7-3SJokjSxEK1QbTbTQApWh_59GooS5-2aKyM7BVvSIWoNfA27b3XwF4_kigTRZtDoIE6rZ4aIHDNvbFSb-1rXJM4NIsTy_6MXKTLPAVI/s1600/DSC00019.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuFYEKTm9BZ8gICRSgmClwHFl6yCov1TWaCb7-3SJokjSxEK1QbTbTQApWh_59GooS5-2aKyM7BVvSIWoNfA27b3XwF4_kigTRZtDoIE6rZ4aIHDNvbFSb-1rXJM4NIsTy_6MXKTLPAVI/s320/DSC00019.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopRHa32D8xF8U7Bu4uDDYJrnd8BFMd-g2Yhtq3UioRGldnGr6lTKSDZxIoKK9pZtCwUrMEf_UK69gMZ_iSDafo5z2PzcEIhBaea14IR5sC8mHw-toJrQgB2vTbLW-99vcSxYUOkPN06s/s1600/DSC00020.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopRHa32D8xF8U7Bu4uDDYJrnd8BFMd-g2Yhtq3UioRGldnGr6lTKSDZxIoKK9pZtCwUrMEf_UK69gMZ_iSDafo5z2PzcEIhBaea14IR5sC8mHw-toJrQgB2vTbLW-99vcSxYUOkPN06s/s320/DSC00020.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzMBR4JsC8mEiMjUTkHDmtGNQad3Ws6B3w5ydZCs-VAoOCIyZlFrrjMv29gj23dIjzTT02AG66isYOGjOcBKg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en"><br /></span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span lang="en"><br /></span></div>
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
Thanks<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<br />
Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-1063674399945928722012-04-17T12:38:00.003+02:002012-04-17T12:38:55.659+02:00Arduino + 3D Max StudioHola a todos, en esta ocasión quiero mostrarles una pequeña parte de un nuevo trabajo que estoy haciendo, es el enlace entre arduino y 3d max studio.<div>
<br /></div>
<div>
En esta primera parte mostrare el vídeo de como enviar datos para variar el pwm de un servo motor y la intensidad de un led.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/GLjtkXhMYcs?feature=player_embedded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Esperen mas ...</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Gracias </div>
<div>
<br /></div>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com1tag:blogger.com,1999:blog-5066206908808389530.post-62452371755664297262012-03-06T20:36:00.000+01:002012-03-06T20:36:10.025+01:00ROBOT DE HECTOR (MI ALUMNO)Soy Héctor, tengo 10 años y estoy haciendo un robot con Jaime (mi profesor).<br />
Mi robot sigue una línea contínua. Lo he hecho con una placa de Arduino Pro.<br />
Para programarlo he utilizado Arduino 023.<br />
Estas son las fotos:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-gei9dZSMZwA/T1ZmluRWjtI/AAAAAAAAACk/LXK77jf7PGQ/s1600/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20+%232.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="213" src="http://2.bp.blogspot.com/-gei9dZSMZwA/T1ZmluRWjtI/AAAAAAAAACk/LXK77jf7PGQ/s320/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20+%232.jpg" width="320" /></a></div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-SDBuRDg3LUo/T1ZmnEPjaVI/AAAAAAAAAC0/9MEEiwmfObw/s1600/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="213" src="http://2.bp.blogspot.com/-SDBuRDg3LUo/T1ZmnEPjaVI/AAAAAAAAAC0/9MEEiwmfObw/s320/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20.jpg" width="320" /></a></div><a href="http://2.bp.blogspot.com/-7lsbZLxfo10/T1ZmmHd1zrI/AAAAAAAAACo/5_J5YUS1ZpI/s1600/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20+%233.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="212" src="http://2.bp.blogspot.com/-7lsbZLxfo10/T1ZmmHd1zrI/AAAAAAAAACo/5_J5YUS1ZpI/s320/Foto+del+di%CC%81a+06-03-12+a+la%28s%29+20.20+%233.jpg" width="320" /></a>Anonymousnoreply@blogger.com1tag:blogger.com,1999:blog-5066206908808389530.post-78831780805673830252012-01-17T13:50:00.003+01:002012-01-17T13:50:21.516+01:00Vídeo-vigilancia a medida para lugares públicos<br />
<h1 class="titulo_noticia" style="background-color: white; color: #0a5c83; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="color: #757575; font-weight: normal; line-height: 1.25em;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: small;">Ingenieros de la Universidad Autónoma de Madrid proponen un nuevo modelo para desarrollar sistemas automáticos de análisis de secuencias de vídeo-vigilancia. A diferencia de los actuales, estos sistemas podrían adaptarse a las características particulares de determinado escenario o situación.</span></span></h1>
<div class="entradilla " style="background-color: white; color: #3c3c3c; font-weight: bold; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.8em; text-align: left;">
<div style="color: #757575; line-height: 1.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
</div>
</div>
<div class="clearFix wysiwyg" style="background-color: white; border-bottom-color: rgb(229, 229, 229); border-bottom-style: solid; border-bottom-width: 1px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;">
<div class="media media_right" style="color: #555555; position: relative;">
<div class="object-right" style="clear: right; float: right; margin-bottom: 1.5em; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; position: relative;">
<div class="row" id="multimedia" style="margin-bottom: 0.5em; position: relative;">
<div class="tabs clearFix tabsType1" style="border-bottom-color: rgb(229, 229, 229); border-bottom-style: solid; border-bottom-width: 2px; float: none; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<li class="active" style="background-image: url(http://www.agenciasinc.es/design/redesign/images/li-bullet.gif); background-position: 0px 0.4em; background-repeat: no-repeat no-repeat; float: left; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0.25em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 0px; text-align: justify;"><span style="color: #4c9bc1; font-family: Arial, Helvetica, sans-serif; font-weight: bold; text-decoration: none;"><a href="http://www.agenciasinc.es/utils/relacionados_noticia?n=fotografias-34627" style="color: #4c9bc1; font-weight: bold; text-decoration: none;" title="fotos">FOTOGRAFÍAS</a></span></li>
</ul>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
<div class="extWrapAjaxContent">
<div class="wrapAjaxContent" style="position: relative;">
<div class="img" style="border-bottom-color: rgb(117, 117, 117); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(117, 117, 117); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(117, 117, 117); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(117, 117, 117); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><img alt="Nuevo modelo de vídeo-vigilancia para lugares públicos" height="263" src="http://www.agenciasinc.es/var/ezwebin_site/storage/images/noticias/video-vigilancia-a-medida-para-lugares-publicos/2001929-1-esl-MX/Video-vigilancia-a-medida-para-lugares-publicos_image365_.jpg" style="border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Nuevo modelo de vídeo-vigilancia para lugares públicos" width="365" /></span></div>
<div class="txt txtGal1" style="background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-top-color: rgb(116, 116, 116); border-top-style: solid; border-top-width: 1px; left: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 30.9em; min-width: 30.9em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="color: white; font-style: italic; line-height: 1.25em; padding-bottom: 0.5em; padding-left: 1em; padding-right: 1em; padding-top: 0.5em; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Simplificación del modelo de vídeo-vigilancia propuesto por el grupo de investigación <i>Vídeo Processing & Understanding Lab</i> de la Escuela Politécnica Superior </span></div>
</div>
</div>
</div>
</div>
</div>
<div class="metaInfo" style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: justify;">
<span style="color: #4c9bc1; font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 20px;"><br /></span></span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Una nueva técnica permitiría diseñar “sistemas adaptativos” para el análisis automático de secuencias de vídeo-vigilancia. Se trata de sistemas que podrían ajustar su esfuerzo de análisis a las características particulares de cada secuencia. Por ejemplo, podrían determinar cuándo se requiere de mayor o menor esfuerzo de análisis, según se trate de una secuencia simple o compleja (con menor o mayor afluencia de personas). También podrían corregir su propia eficiencia a la hora de detectar objetos, seguir personas o identificar acciones inusuales.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">La técnica ha sido propuesta por el grupo de investigación<a href="http://www-vpu.eps.uam.es/" style="color: #0a5c83;" target="_blank">Vídeo Processing & Understanding Lab</a> de la <a href="http://www.eps.uam.es/" style="color: #0a5c83;" target="_blank">Escuela Politécnica Superior</a> en un reciente <a href="http://bit.ly/xD1ird" style="color: #0a5c83;" target="_blank">artículo</a> publicado en la revista <a href="http://scitation.aip.org/IET-CVI" style="color: #0a5c83;" target="_blank"><i>IET Computer Vision</i></a>.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Algunos resultados de prueba se pueden observar <a href="http://dymas.ii.uam.es/publications/FeedbackEventDetection/" style="color: #0a5c83;" target="_blank">aquí</a>.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<b><span style="font-family: Arial, Helvetica, sans-serif;"> Vigilancia autómata</span></b></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Los sistemas de vídeo-vigilancia —sistemas que permiten supervisar un área determinada mediante el uso de varias cámaras conectadas a una central de monitorización— son actualmente muy demandados para detectar situaciones potencialmente peligrosas en lugares públicos como aeropuertos, estaciones de metro o escenarios deportivos. Estos sistemas requieren de personal especializado que debe supervisar varios monitores a la vez.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Para incrementar la efectividad de esta supervisión, se ha generalizado la necesidad de herramientas automáticas de análisis de vídeo que puedan, por ejemplo, centrar la atención en el monitor donde ocurre un evento potencialmente peligroso o realizar búsquedas eficientes en las grabaciones de las cámaras del sistema. Esta necesidad, de hecho, ha convertido el análisis automático de secuencias de vídeo-vigilancia en un área de investigación muy activa.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Los actuales sistemas automáticos de video-vigilancia se basan en la aplicación secuencial de tres etapas de análisis: en primer lugar detección de objetos o personas de interés, en segundo lugar seguimiento y extracción de características de estos objetos o personas, y por último detección de eventos inusuales, como pueden ser el abandono de objetos, entradas a zonas prohibidas o actos de vandalismo. Estas etapas funcionan de forma independiente entre sí, y se aplican del mismo modo en todos los escenarios y situaciones.</span></div>
<div style="color: #555555; line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Los ingenieros de la Escuela Politécnica Superior advirtieron que existe una dependencia entre estas tres etapas y que su aplicación puede y debe adaptarse a cada tipo de situación, ya que, por ejemplo, un potencial robo en un aparcamiento solitario no requiere las mismas técnicas de detección que otro en una estación de metro con alta densidad de personas en movimiento. El modelo de vídeo-vigilancia que proponen tiene por tanto la capacidad de adaptar las etapas de análisis a cada escenario y situación, así como de concentrar la atención en las cámaras que presentan mayor complejidad de datos. </span></div>
<div class="destacado" style="background-attachment: initial; background-clip: initial; background-color: #eaf4ea; background-image: initial; background-origin: initial; clear: left; color: #555555; padding-bottom: 0.7em; padding-left: 0.7em; padding-right: 0.7em; padding-top: 0.7em;">
<div class=" text-left" style="line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Referencia bibliográfica:</b><br />Juan C. SanMiguel, José M. Martínez, ‘Use of feedback strategies in the detection of events for vídeo surveillance’, IET Computer Vision, 5(5):309-319, Sept. 2011</span></div>
<div class=" text-left" style="line-height: 1.25em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<a href="http://www.agenciasinc.es/Noticias/Video-vigilancia-a-medida-para-lugares-publicos"><span style="font-family: Arial, Helvetica, sans-serif;">Fuente</span></a></div>
</div>
</div>Alexis Meneses Arévalohttp://www.blogger.com/profile/06954014306159472124noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-49581709208625958752011-11-19T11:52:00.000+01:002011-11-19T11:52:48.417+01:00HolaHola a todos los que ven mi blog, de una forma ocacional o que lo visitan frecuente mente, es esta vacaciones navideñas, colocare algunos artículos y proyectos que he hecho en este tiempo, por mis estudios no he tenido mucho tiempo.<br />
<br />
gracias<br />
<br />
JaimeJaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-70358540162270881222011-08-26T13:47:00.002+02:002011-08-26T13:47:45.360+02:00Reinstalando el Bootloader de tu Arduino<span class="Apple-style-span" style="background-color: white; color: #6e6e6e; font-family: Tahoma, Verdana, Arial, sans-serif; font-size: 11px;"></span><br />
<h1 style="font-size: 16px; font-weight: bold;">Reinstalando el Bootloader de tu Arduino</h1><h2 style="font-size: 14px; font-weight: bold;">¿Cómo reprogramar el bootloader en un Arduino Uno?</h2>Lo que necesitas (Opción 1):<br />
<ul><li>Tu <a href="http://www.olimex.cl/product_info.php?cPath=76_78&products_id=756" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">Arduino Uno</a> (para programar) </li>
<li>Un Arduino Funcional. </li>
<li>Algunos cables para el interconectado. </li>
</ul><div style="text-align: center;"><img alt="" src="http://www.olimex.cl/images/tutorial-arduino-bootloader/jumpercables.jpg" style="height: 235px; width: 300px;" /></div><div><div id="cke_pastebin">Lo que necesitas (Opción 2):</div><ul><li>Tu Arduino Uno (para programar). </li>
<li>Un Programador AVR como el <a href="http://www.sparkfun.com/products/9825" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">AVR Pocket Programmer </a> o el <a href="http://www.olimex.cl/product_info.php?products_id=411" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">AVR-ISP500</a>. </li>
<li>Un <a href="http://www.sparkfun.com/products/9215" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">Cable para Programar el AVR</a> (el pocket programmer viene con uno). </li>
</ul>Lo que necesitas (software):<br />
<ul><li>El <a href="http://www.sparkfun.com/tutorial/ArduinoBootloader/libusb-win32-filter-bin-0.1.12.2.zip" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">Arduino Optiboot Bootloader </a></li>
<li><a href="http://sourceforge.net/projects/winavr/files/" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">WinAVR</a> (Windows) o <a href="http://www.obdev.at/products/crosspack/download.html" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">Crosspack for AVR Development </a>(Mac) - Este software contiene el<strong>avrdude</strong>, el cual es necesario! (Nota: podrías obtenerlo bajándolo o usando una copia del avrdude que viene con el Arduino, sin embargo, instalando la versión con el WinAVR, éste agregará las rutas a Windows Environment Variables lo cual lo hace mucho más fácil de usar por medio de comandos (prompt). </li>
<li><a href="http://arduino.cc/en/Main/Software" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">Arduino 0018</a> (o más nuevo) si es que estás usando la opción 1. </li>
</ul><h2 style="font-size: 14px; font-weight: bold;"><span><strong>Programando el <span class="SpellE">Arduino</span> para que funcione como programador (para la Opción 1)</strong></span></h2><br />
<div id="cke_pastebin">Primero debemos tener el Arduino programado para trabajar como programador. Esto es muy simple, con el Arduino IDE, abrir el ArduinoISP realizando lo siguiente:</div><div id="cke_pastebin"> </div><div id="cke_pastebin">File->Examples->ArduinoISP. </div><div id="cke_pastebin"> </div><div id="cke_pastebin">Lo anterior hará que el Arduino actúe como un programador ISP. Selecciona tu tarjeta en menú de herramientas (Tools), y luego asegúrate de seleccionar el puerto COM correcto (anota el puerto seleccionado, porque se volverá a usar más adelante). Luego sólo sube el programa al Arduino. </div><div id="cke_pastebin"> </div><div id="cke_pastebin">Por ahora, el Arduino se programó para funcionar como un programador ISP, y se encuentra conectado al computador por medio de un cable USB. Lo siguiente que necesitamos es que este Arduino se conecte a la tarjeta objetivo (la que queremos reinstalar el Bootloader), para luego poder cargar los archivos *.HEX a esta tarjeta. </div><div> </div><div><div align="center" style="text-align: center;"><strong>Conexionado de tu Tarjeta</strong></div><table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 450px;"><thead>
<tr><th scope="col" style="font-size: 11px; text-align: center;">Arduino </th><th scope="col" style="font-size: 11px; text-align: center;">Programador AVR</th><th scope="col" style="font-size: 11px; text-align: center;">Arduino al que se le reinstalará el bootloader</th></tr>
</thead><tbody>
<tr><td style="font-size: 11px; text-align: center;">VCC / 5V</td><td style="font-size: 11px; text-align: center;">5V</td><td style="font-size: 11px; text-align: center;">VCC / Pin2</td></tr>
<tr><td style="font-size: 11px; text-align: center;">GND</td><td style="font-size: 11px; text-align: center;">GND</td><td style="font-size: 11px; text-align: center;">GND / Pin 6</td></tr>
<tr><td style="font-size: 11px; text-align: center;">MOSI / D11</td><td style="font-size: 11px; text-align: center;">MOSI</td><td style="font-size: 11px; text-align: center;">MOSI / Pin 4</td></tr>
<tr><td style="font-size: 11px; text-align: center;">MISO / D12</td><td style="font-size: 11px; text-align: center;">MISO</td><td style="font-size: 11px; text-align: center;">MISO / Pin 1 </td></tr>
<tr><td style="font-size: 11px; text-align: center;">SCK / D13</td><td style="font-size: 11px; text-align: center;">SCK</td><td style="font-size: 11px; text-align: center;">SCK / Pin 3</td></tr>
<tr><td style="font-size: 11px; text-align: center;">D10</td><td style="font-size: 11px; text-align: center;">RESET</td><td style="font-size: 11px; text-align: center;">RESET / Pin 5</td></tr>
</tbody></table><div style="text-align: center;"><img alt="" src="http://www.olimex.cl/images/tutorial-arduino-bootloader/conexionBootloadArduino.jpg" style="height: 201px; width: 480px;" /></div><div style="text-align: center;"><img alt="" src="http://www.olimex.cl/images/tutorial-arduino-bootloader/BootloadArduinoPocketProgrammer.jpg" style="height: 265px; width: 480px;" /></div><div id="cke_pastebin">Nota: Puedes usar el cable que viene con el programador. El lado que se conecta al Pocket Programmer sólo se puede conectar de una forma. El lado que se conecta al Arduino va con la muesca de frente al botón Reset. </div><div id="cke_pastebin"> </div><h2 style="font-size: 14px; font-weight: bold;">Programando la Tarjeta a Reinstalar </h2><div id="cke_pastebin">Lo único que queda por hacer es enviar el archivo *.hex desde el computador al Arduino Programador (el que se encuentra conectado al PC) para que éste pueda luego pasarle el programa al Arduino objetivo (al que se le reinstalará el Bootloader). AVRdude es un programa incluido con WinAVR (o Crosspack) que puede enviar un archivo *.hex a un programador ISP. Una vez que tengas el AVRdude instalado (vía WinAVR o Crosspack) sólo necesitas un comando para llevar el archivo *.hex a la tarjeta objetivo. Instalar este programa es simple, sólo sigue las indicaciones e instala el programa usando los valores por defecto. </div><div id="cke_pastebin"> </div><div id="cke_pastebin">AVRdude en un programa que funciona por línea de comando, por lo que debes abrir la línea de comandos de Windows (Inicio-Ejecutar- "cmd") para poder usarlo. Una vez abierto el "cmd", escribe "avrdude" y presiona Enter. Si la instalación está correcta entonces se mostrará una lista de opciones disponibles. Con esto estamos listos para enviar comandos que programarán la tarjeta. Comienza por dirigirte hacia el directorio en el cual se encuentra el archivo *.hex. </div><div id="cke_pastebin"> </div><div id="cke_pastebin">Primero vamos a configurar los<a href="http://www.sparkfun.com/tutorials/95/#FuseBits" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;"> Fuse Bits</a> (bits de memoria que según su <a href="http://www.engbedded.com/fusecalc/" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">valor</a>, ´0´ o ´1´, permiten configurar a muy bajo nivel un microcontrolador, el cual corresponde en este caso al chip que controla el Arduino, un <a href="http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">ATMega328</a>). Te permiten controlar cosas como si vas a usar o no un reloj externo, la velocidad del reloj interno, habilitar el Reset externo, y así muchas otras opciones las cuales aparecen detalladas en la hoja de datos del chip. Como una forma de asegurarse del correcto funcionamiento del chip, se van a configurar todos los fuse bits de éste. </div><div id="cke_pastebin"> </div><div id="cke_pastebin"><strong>Opción 1: </strong>avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m</div><div id="cke_pastebin"><strong>Opción 2:</strong> avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m</div><div id="cke_pastebin"> </div><div id="cke_pastebin">Ahora ingresa el comando, reemplazando <em><strong>comport </strong></em>(com5 por ejemplo) por el puerto COM al cual tu Arduino fue conectado (para la opción 1), y <em><strong>hexfilename </strong></em>por el nombre de tu archivo. No olvides que el comando es sensible a mayúsculas y minúsculas, por lo que ten cuidado al escribir o algún error podría ocurrir. El comando utiliza 7 parámetros: -P es el puerto usado, -b es el baudrate, -c es el tipo de programador, -p es el microprocesador que está siendo programado, y -v le dice al Avrdude que utilice una salida verbal, es decir, para cada respuesta de un comando o algún error, entonces se mostrará la descripción del error en vez de sólo el código, lo cual es útil si una persona está viendo la salida y no un programa. El resto indica: -e le dice al Avrdude que borre el chip antes de programarlo, y -U le dice al Avrdude dónde colocar el archivo *.hex. Además escribimos los <em><strong>Lock Bits</strong></em> en tu chip. Estos bits son similares a los Fuse Bits, con la excepción de que los Lock Bits controlan la seguridad de acceso en el chip. En este caso esto es importante, ya que evita que se sobreescriba accidentalmente en el Bootloader al instalar por ejemplo un programa demasiado grande. </div><div id="cke_pastebin"> </div><div id="cke_pastebin"><strong>Opción 1: </strong>avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m</div><div id="cke_pastebin"><strong>Opción 2: </strong>avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m</div><div id="cke_pastebin"> </div><div id="cke_pastebin"> </div><div id="cke_pastebin">Nota: recuerda que Arduino es sólo una tarjeta de desarrollo AVR que ejecuta el Arduino Bootloader. Por lo tanto, puedes usar este método para cargar cualquier archivo *.hex a un chip ATMega328. Para más información ingresa a este tutorial para usar tu Arduino para programar un AVR. (<a href="http://www.sparkfun.com/tutorials/200" style="color: #4d679d; font-family: Tahoma, Verdana; font-size: 11px;">http://www.sparkfun.com/tutorials/200</a>)</div><div> </div><div>Nota: también puedes saltar la opción de usar la línea de comandos de Windows y usar el Arduino IDE para reprogramar el Bootloader. Asegúrate de tener la tarjeta correcta y el puerto seleccionado, luego dirígete a Tools-Burn Bootloader-(selecciona tu ISP) y selecciona "w/USBtinyISP" para el Pocket Programmer. La desventaja de usar este método es que no tienes ningún control sobre cual Bootloader estás cargando en tu tarjeta. </div></div></div>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-32900630337771435992011-08-24T17:43:00.002+02:002011-08-24T17:43:30.604+02:00Mi Canal de YoutubeHola, este es mi canal de youtube, donde tengo mis vídeos, se los dejo para que los mires.<br />
<br />
<a href="http://www.youtube.com/user/jarain78?feature=mhee">http://www.youtube.com/user/jarain78?feature=mhee</a>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com1tag:blogger.com,1999:blog-5066206908808389530.post-53893129033568258642011-08-21T00:05:00.004+02:002011-08-21T00:10:52.447+02:00Polémica por la creación de embriones híbridos entre animales y humanos<span class="Apple-style-span" style="background-color: white; font-family: Arial, sans-serif; font-size: 14px; line-height: 17px;"><span class="Apple-style-span" style="color: white;"></span></span><br />
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Un organismo regulador británico se dispone a autorizar hoy la <strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">creación de embriones híbridos de animales y seres humanos</strong> como primer paso para el desarrollo de terapias destinadas al tratamiento de enfermedades como el Alzheimer o el mal de Parkinson.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Tras varios meses de consultas, la llamada <strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Autoridad para la Fecundación y Embriología Humanas</strong>, dará este viernes su esperado visto bueno a esas prácticas, según adelanta el diario <a href="http://www.guardian.co.uk/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;" target="_blank"><em style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">The Guardian</em></a>.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Los investigadores quieren crear embriones híbridos insertando células humanas en óvulos de vacas muertas y esperan extraer de ellos valiosas células embrionarias con las que combatir enfermedades neurodegenerativas e incluso graves lesiones de la médula espinal.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">La publicación, hoy, de la decisión oficial, que deberá pasar antes de fin de año el trámite parlamentario, viene precedida de <strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">meses de reflexión</strong> a cargo de los científicos interesados, por un lado, y grupos religiosos y otros que se oponen al uso de células madre embrionarias para fines médicos. Los científicos argumentan que la utilización de óvulos de animales permitirá resolver el problema que presenta la escasez de óvulos humanos.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;"><strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Legislación</strong></span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">De acuerdo con la legislación actual, los embriones deben destruirse al cabo de catorce semanas, cuando no han alcanzado el tamaño de una cabeza de alfiler, y no pueden implantarse en el útero.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;"><strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Quienes se oponen</strong> a esas prácticas señalan que difuminan la distinción entre el ser humano y el animal y crean además embriones destinados a ser destruidos una vez que se extraigan de ellos las células troncales.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Sendos equipos de investigadores del King´s College de Londres y la Universidad de Newcastle solicitaron el pasado noviembre autorización al organismo regulador para crear esos embriones.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Si la Autoridad para la Fecundación y Embriología Humana da su aprobación, según se espera, el tema pasará a otro comité gubernamental, que deberá decidir<strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"> en un plazo máximo de tres meses</strong>.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Ian Wilmut, jefe del equipo creador de Dolly, la primera oveja clonada, espera la decisión favorable de esa autoridad para crear embriones híbridos que le permitan estudiar la enfermedad de la neurona motriz junto a Chris Shaw, del Instituto de Psiquiatría de Londres.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;"><strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Consultas y sondeos</strong></span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Antes de comunicar su decisión definitiva, el organismo regulador<strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"> ha llevado a cabo durante tres meses consultas, sondeos de opinión y debates públicos</strong>.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Según la autoridad gubernamental, los consultados se mostraron mayoritariamente favorables a la creación de embriones híbridos citoplásmicos, en los que <strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">una célula humana se inserta en un óvulo animal previamente vaciado</strong>.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">Gozan, por el contrario, de menos favor otro tipo de embriones híbridos: los creados<strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">fecundando un óvulo animal con esperma humano o viceversa</strong>.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">El pasado diciembre, el Gobierno de Londres provocó el rechazo de la comunidad científica, de grupos de pacientes e investigadores médicos al publicar un libro blanco que proponía ilegalizar prácticamente todas las investigaciones que utilizasen embriones híbridos.</span></div><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; line-height: 17px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="Apple-style-span" style="color: white;">En mayo, las autoridades, sin embargo, flexibilizaron su postura inicialmente negativa con la publicación de un nuevo borrador de proyecto de ley sobre fecundación y ahora sólo seguirán prohibidos los embriones híbridos del segundo tipo: los creados con óvulo animal y esperma humano o esperma animal y óvulo humano.</span></div><br />
Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-23485308739520892602011-08-20T20:13:00.000+02:002011-08-20T20:13:15.255+02:00Como hacer comunicacion serial: Ubuntu-ArduinoProgrma para hacer comunicacion serial entre Ubuntu y arduino, proramado en C++ con CodeBlocks IDE:<br />
<br />
<br />
Porgrama CodeBlocks:<br />
<br />
<br />
#include <stdio.h> // standard input / output functions<br />
#include <string.h> // string function definitions<br />
#include <unistd.h> // UNIX standard function definitions<br />
#include <fcntl.h> // File control definitions<br />
#include <errno.h> // Error number definitions<br />
#include <termios.h> // POSIX terminal control definitionss<br />
#include <time.h> // time calls<br />
#include <sys/signal.h><br />
#include <sys/types.h><br />
//#include <cv.h><br />
<br />
<br />
char buf[255];<br />
int res;<br />
int open_port(void);<br />
int configure_port(int fd);<br />
int query_modem(int fd);<br />
<br />
<br />
int main(void)<br />
{<br />
int fd = open_port();<br />
configure_port(fd);<br />
while(true){<br />
query_modem(fd);<br />
}<br />
return(0);<br />
}<br />
<br />
<br />
<br />
int open_port(void)<br />
{<br />
int fd; // file description for the serial port<br />
<br />
fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);<br />
<br />
if(fd == -1) // if open is unsucessful<br />
{<br />
perror("open_port: Unable to open /dev/ttyS0 - ");<br />
}<br />
else<br />
{<br />
fcntl(fd, F_SETFL, 0);<br />
}<br />
<br />
return(fd);<br />
}<br />
<br />
int configure_port(int fd) // configure the port<br />
{<br />
struct termios port_settings; // structure to store the port settings in<br />
<br />
cfsetispeed(&port_settings, B9600); // set baud rates<br />
cfsetospeed(&port_settings, B9600);<br />
<br />
port_settings.c_cflag &= ~PARENB; // set no parity, stop bits, data bits<br />
port_settings.c_cflag &= ~CSTOPB;<br />
port_settings.c_cflag &= ~CSIZE;<br />
port_settings.c_cflag |= CS8;<br />
<br />
tcsetattr(fd, TCSANOW, &port_settings); // apply the settings to the port<br />
return(fd);<br />
<br />
}<br />
<br />
int query_modem(int fd) // query modem with an AT command<br />
{<br />
int n;<br />
fd_set rdfs;<br />
struct timeval timeout;<br />
<br />
// initialise the timeout structure<br />
timeout.tv_sec = 10; // ten second timeout<br />
timeout.tv_usec = 0;<br />
<br />
write(fd, "1", 3); // send an AT command followed by a CR<br />
<br />
res = read(fd,buf,255);<br />
buf[res]=0;<br />
printf("%s", buf, res);<br />
<br />
// do the select<br />
//n = select(fd + 1, &rdfs, NULL, NULL, &timeout);<br />
<br />
// check if an error has occured<br />
/*if(n < 0)<br />
{<br />
perror("select failed\n");<br />
}<br />
else if (n == 0)<br />
{<br />
puts("Timeout!");<br />
}<br />
else<br />
{<br />
printf("\nBytes detected on the port!\n");<br />
}<br />
*/<br />
}<br />
<br />
<br />
Programa Arduino:<br />
<br />
<br />
<br />
void setup(){<br />
Serial.begin(9600) ;<br />
<br />
}<br />
<br />
void loop(){<br />
<br />
word Adc = analogRead(0);<br />
delay(5);<br />
Serial.println(Adc);<br />
if(Serial.available()){<br />
int Rd = Serial.read();<br />
if(Rd==49){<br />
digitalWrite(13,HIGH);<br />
Serial.print("dato:" );<br />
Serial.println(Rd);<br />
}<br />
}<br />
<br />
delay(200);<br />
}<br />
<br />
Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-73591948572562619152011-08-13T02:35:00.000+02:002011-08-13T02:35:25.292+02:00Life is Infinty: Robot con Cerebro de Rata<a href="http://lifeisinfinty.blogspot.com/2010/10/robot-con-cerebro-de-rata.html?spref=bl">Life is Infinty: Robot con Cerebro de Rata</a>: "Los científicos están derribando las barreras que separan diferentes disciplinas, aparentemente incompatibles entre sí. En la actualidad,..."Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-43658624277716669992011-08-11T17:48:00.001+02:002011-08-11T17:51:23.969+02:00Arduino Shield List<span class="Apple-style-span" style="background-color: white;"><span class="Apple-style-span" style="color: red;">Interesante base de datos para saber que <span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Shield son compatibles con ARDUINO.</span></span></span><br />
<br />
<a href="http://shieldlist.org/">http://shieldlist.org/</a>Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-77170408454025981242011-07-31T01:18:00.002+02:002011-07-31T01:18:36.358+02:00DARPA Arm Robot Controlled via LabVIEW<a href="http://feedproxy.google.com/~r/labviewrobotics/~3/A89G7Q9yXkw/">DARPA Arm Robot Controlled via LabVIEW</a>: "<p style="text-align:center"><img title="Darpa arm" src="http://decibel.ni.com/content/servlet/JiveServlet/downloadImage/38-4584-16167/730-361/armShot.png" alt="" width="438" height="217" /></p><br /><p>By now, you’ve all heard of one of DARPA’s latest robotics projects, but just in case:</p><br /><p><a href="http://www.thearmrobot.com/">http://www.thearmrobot.com/</a></p><br /><blockquote><p>DARPA is introducing its Autonomous Robotic Manipulation (ARM) program. The goal of this 4 year, multi-track program is to develop software and hardware that allows an operator to control a robot which is able to autonomously manipulate, grasp and perform complicated tasks, given only high-level direction. Over the course of the program in the Software Track, funded performers will be developing algorithms that enables the DARPA robot to execute these numerous tasks. DARPA is also making an identical robot available for public use, allowing anyone the opportunity to write software, test it in simulation, upload it to the actual system, and then watch, in real-time via the internet, as the DARPA robot executes the user’s software. Teams involved in this Outreach Track will be able to compete and collaborate with other teams from around the country.</p></blockquote><br /><p>One of NI’s R&D engineers, Karl, has developed a LabVIEW wrapper for the DARPA arm simulator in his spare time and has graciously shared it on the <a href="http://decibel.ni.com/content/community/zone/labviewrobotics">NI Robotics Code Exchange</a> (<a href="http://decibel.ni.com/content/community/zone/labviewrobotics">ni.com/code/robotics</a>).</p><br /><p>Using Karl’s code, you can directly control the arm simulator using LabVIEW. This means you develop your own control code and easily create UIs using LabVIEW’s graphical programming environment (two of the things LabVIEW is best for).</p><br /><p>Check out Karl’s blog to request the code:</p><br /><p><a href="http://decibel.ni.com/content/blogs/MechRobotics/2011/01/06/darpa-arm-robot-controlled-via-labview"><strong>DARPA Arm Robot Controlled via LabVIEW</strong></a></p><br /><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labviewrobotics.wordpress.com/518/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labviewrobotics.wordpress.com/518/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labviewrobotics.wordpress.com/518/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labviewrobotics.wordpress.com&blog=6946819&post=518&subd=labviewrobotics&ref=&feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/labviewrobotics/~4/A89G7Q9yXkw" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-75028693596255997132011-07-31T01:18:00.001+02:002011-07-31T01:18:17.400+02:00More LabVIEW Development for the Xbox Kinect<a href="http://feedproxy.google.com/~r/labviewrobotics/~3/M10VWrsgADw/">More LabVIEW Development for the Xbox Kinect</a>: "<p>So <a href="http://labviewrobotics.wordpress.com/2011/03/07/xbox-kinect-hack-using-labview/">remember when I said the Xbox Kinect was going to revolutionize robotics</a> (at least from a sensor-hardware point of view)?</p><br /><p>Well, when it rains, it pours: More and more LabVIEW developers are uniting, creating and sharing drivers that allow you to communicate with the <a href="http://www.xbox.com/en-US/Kinect/healthyfun">Xbox Kinect</a> hardware using <a href="http://www.ni.com/labview/whatis/">LabVIEW software</a>.</p><br /><p>An NI Community member, <a href="http://decibel.ni.com/content/people/anfedres86">anfredres86</a>, has<a href="http://decibel.ni.com/content/docs/DOC-15655"> published his VI driver library</a>, making it easy to download and install the necessary files for you to start developing robotics applications in LabVIEW that utilize the Kinect hardware for robot sensing.</p><br /><p>Here is a video of the 2D occupancy grid mapping example he put together using LabVIEW and the Kinect:</p><br /><span style="text-align:center;display:block"><a href="http://labviewrobotics.wordpress.com/2011/04/07/more-labview-development-for-the-xbox-kinect/"><img src="http://img.youtube.com/vi/-KXQ750qAWA/2.jpg" alt="" /></a></span><br /><p>I encourage everyone to check out (and download) his code:</p><br /><h3 style="padding-left:30px"><strong><a href="http://decibel.ni.com/content/docs/DOC-15655">Kinect Drivers for Labview: </a></strong><a href="http://decibel.ni.com/content/docs/DOC-15655"><span style="color:#0000ff">http://decibel.ni.com/content/docs/DOC-15655</span></a></h3><br /><p>And be sure to share your examples on the <a href="http://decibel.ni.com/content/community/zone/labviewrobotics">NI Robotics Code Exchange</a> as well!</p><br /><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labviewrobotics.wordpress.com/538/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labviewrobotics.wordpress.com/538/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labviewrobotics.wordpress.com/538/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labviewrobotics.wordpress.com&blog=6946819&post=538&subd=labviewrobotics&ref=&feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/labviewrobotics/~4/M10VWrsgADw" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-54606137199793163302011-07-31T01:18:00.000+02:002011-07-31T01:18:01.527+02:00Kinect 6D Visualization in LabVIEW<a href="http://feedproxy.google.com/~r/labviewrobotics/~3/kcqlsVT7VG8/">Kinect 6D Visualization in LabVIEW</a>: "<p>The <a title="What is LabVIEW" href="http://www.ni.com/labview/whatis/">LabVIEW</a> <a title="xbox kinect page" href="http://www.xbox.com/en-US/kinect">Kinect</a> code keeps rolling in. I am happy to share yet another example that is available for free download.</p><br /><p>This one is very similar to John Wu’s <a href="http://riobotics.blogspot.com/2011/03/labview-xbox-kinect-and-3d-point-cloud.html">LabVIEW + Kinect example</a> I shared awhile back. <a title="link to Karl's profile on NI community" href="https://decibel.ni.com/content/people/RoboticsME">Karl Muecke,</a> NI R&D engineer, shares his 6D visualization example on the <a title="NI Robotics Code Exchange" href="http://decibel.ni.com/content/community/zone/labviewrobotics">NI Robotics Code Exchange</a>.</p><br /><p><img title="screenshot of Karl's code" src="https://decibel.ni.com/content/servlet/JiveServlet/downloadImage/38-5166-18437/620-300/3D_Kinect_Screen_Shot.png" alt="" width="619" height="300" /></p><br /><p><strong>You can view a video screen capture of the demo and download his open source code here:</strong></p><br /><p><a title="download code link" href="https://decibel.ni.com/content/blogs/MechRobotics/2011/04/19/kinect-6d-visualization-in-labview">https://decibel.ni.com/content/blogs/MechRobotics/2011/04/19/kinect-6d-visualization-in-labview</a></p><br /><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labviewrobotics.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labviewrobotics.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labviewrobotics.wordpress.com/543/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labviewrobotics.wordpress.com&blog=6946819&post=543&subd=labviewrobotics&ref=&feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/labviewrobotics/~4/kcqlsVT7VG8" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-30734556236601187952011-07-31T01:17:00.001+02:002011-07-31T01:17:48.052+02:00Open Source Code: Using XBox Kinect with the LabVIEW Robotics Starter Kit<a href="http://feedproxy.google.com/~r/labviewrobotics/~3/DGmq6rTqm3M/">Open Source Code: Using XBox Kinect with the LabVIEW Robotics Starter Kit</a>: "<span style="text-align:center;display:block"><a href="http://labviewrobotics.wordpress.com/2011/05/25/open-source-code-using-xbox-kinect-with-the-labview-robotics-starter-kit/"><img src="http://img.youtube.com/vi/XEfKNVF4--U/2.jpg" alt="" /></a></span><br /><p><a title="link to example code on NI Community" href="https://decibel.ni.com/content/docs/DOC-15920">This example</a> features sensor fusion, using the Kinect to gather the 3D image of the world and a scanning sonar to help avoid obstacles that get too close for the Kinect to see.</p><br /><p>Check out the full recipe on the <a title="link to code exchange" href="https://decibel.ni.com/content/community/zone/labviewrobotics">NI Robotics Code Exchange</a>, including hardware lists, software and setup requirements, as well as code descriptions and downloads.</p><br /><p><strong><a title="Using the XBox Kinect with LabVIEW Robotics Starter Kit" href="https://decibel.ni.com/content/docs/DOC-15920">Download: Using the XBox Kinect with LabVIEW Robotics Starter Kit</a></strong></p><br /><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labviewrobotics.wordpress.com/549/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labviewrobotics.wordpress.com/549/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labviewrobotics.wordpress.com/549/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labviewrobotics.wordpress.com&blog=6946819&post=549&subd=labviewrobotics&ref=&feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/labviewrobotics/~4/DGmq6rTqm3M" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com1tag:blogger.com,1999:blog-5066206908808389530.post-81461608775980613482011-07-31T01:17:00.000+02:002011-07-31T01:17:27.551+02:00U.S. Military Insect Drones (powered by LabVIEW?)<a href="http://feedproxy.google.com/~r/labviewrobotics/~3/Wewj3u2aVe4/">U.S. Military Insect Drones (powered by LabVIEW?)</a>: "<p><img title="insect drone fits in palm" src="http://i.dailymail.co.uk/i/pix/2011/07/12/article-0-0CF8A9B500000578-634_634x409.jpg" alt="" width="634" height="409" /></p><br /><p><img title="control panels include screenshots of LabVIEW front panel and block diagram" src="http://i.dailymail.co.uk/i/pix/2011/07/12/article-2013802-0CF8AC7400000578-338_634x420.jpg" alt="" width="634" height="420" /></p><br /><p>Do the screens of any of the monitors look familiar?</p><br /><p>Read the news coverage of this robots here:</p><br /><p><a title="link to robotics article" href="http://www.dailymail.co.uk/sciencetech/article-2013802/U-S-military-drones-small-look-like-insects.html">Micro-machines are go: The U.S. military drones that are so small they even look like insects</a></p><br /><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labviewrobotics.wordpress.com/553/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labviewrobotics.wordpress.com/553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labviewrobotics.wordpress.com/553/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labviewrobotics.wordpress.com&blog=6946819&post=553&subd=labviewrobotics&ref=&feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/labviewrobotics/~4/Wewj3u2aVe4" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-68482957768629425142011-07-31T00:50:00.000+02:002011-07-31T00:50:51.439+02:00SmartBird cautiva a la audiencia durante una demostración pública en el TEDGlobal 2011<a href="http://feedproxy.google.com/~r/Dalcame/~3/TuT2W3IsW7w/smartbird-cautiva-la-audiencia-durante.html">SmartBird cautiva a la audiencia durante una demostración pública en el TEDGlobal 2011</a>: "<a href="http://feedproxy.google.com/~r/fayerwayer/~3/JmjJb0sGT6w/story01.htm">SmartBird cautiva a la audiencia durante una demostración pública en el TEDGlobal 2011</a>: '<div style="width:605px"><a href="http://www.flickr.com/photos/tedconference/5939463547/in/photostream"><img title="5940017810_42d2e4cb16_b" src="http://static.betazeta.com/www.fayerwayer.com/up/2011/07/5940017810_42d2e4cb16_b-595x392.jpg" alt="" width="515" height="315" /></a><p>Markus Fischer muestra SmartBird durante el TEDGlobal 2011</p></div> <p><strong><a href="http://www.fayerwayer.com/2011/03/smartbird-la-gaviota-robot-con-vuelo-casi-natural-y-absolutamente-autonomo/">SmartBird</a>, la gaviota robot de la compañía alemana <a href="http://en.wikipedia.org/wiki/Festo">Festo</a></strong>, hizo una demostración pública durante la charla de Markus Fischer en el marco del <a href="http://conferences.ted.com/TEDGlobal2011/">TEDGlobal 2011</a> en Escocia, donde la audiencia en el Edinburgh International Conference Centre aplaudió de pie cuando el robot (con apenas 4 meses de edad) voló en círculos con la naturalidad de un pájaro.</p> <p>“Es un sueño de la humanidad a volar como un pájaro”, dijo el diseñador Markus Fischer en su presentación, durante la cual mostró como SmartBird mueve sus alas. Agregó que Festo construyó el robot para aprender sobre los fenómenos de flujo de aire y modelos ligeros de eficiencia energética.</p> <p>El pájaro está hecho de fibra de carbono y espuma de poliuretano, pesa menos 450 gramos, tiene una envergadura de dos metros y es capaz de despegar y aterrizar por cuenta propia. Está equipado con un microcontrolador, cuatro servo-motores y una batería de polímero de litio. Sus alas se mueven mediante una transmisión helicoidal, y sus posiciones son monitoreadas con sensores que transmiten los datos a sus operadores a través de un enlace de radio.</p> <p><span></span></p> <p style="text-align:center"></p><p><a href="http://www.fayerwayer.com/2011/07/smartbird-cautiva-a-la-audiencia-durante-el-tedglobal-2011/"><em>Click aqui para ver el video.</em></a></p><p></p> <p>Sin duda Da Vinci estaría orgulloso de este <a href="http://en.wikipedia.org/wiki/Ornitopter">ornitóptero</a> avanzado.</p> <p><strong>Link</strong>: <a href="http://news.cnet.com/8301-17938_105-20082997-1/festos-robo-seagull-gets-standing-o-at-ted/">Festo’s robo-seagull gets standing O at TED</a> <em>(Cnet)</em></p><div>Este blog nace con la finalidad de intercambio<br />de conocimiento del grupo de investigación biomédica<br />DALCAME, el cual está enfocado al diseño y desarrollo<br />de equipo biomédico, además todo tipo de temáticas<br />desde la perspectiva ingenieril, emprendimiento,<br />temas de actualidad y siempre proyectados con<br />la protección del medio ambiente<img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/9065429581582008461-3137491903402704779?l=dalcame-inves.blogspot.com" alt="" /></div><p></p><img src="http://feeds.feedburner.com/~r/Dalcame/~4/TuT2W3IsW7w" height="1" width="1" />"Jaime Andres Rincon Ahttp://www.blogger.com/profile/10978220374824407036noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-28117758781919951842011-07-29T13:17:00.000+02:002011-07-29T13:17:16.168+02:00DALCAME: Un sensor detecta pequeñas moléculas de explosivos...<a href="http://dalcame-inves.blogspot.com/2011/07/un-sensor-detecta-pequenas-moleculas-de.html?spref=bl">DALCAME: Un sensor detecta pequeñas moléculas de explosivos...</a>: "Un sensor detecta pequeñas moléculas de explosivos plásticos en el aire : 'Científicos especializados en el diseño de materiales de la Unive..."Alexis Meneses Arévalohttp://www.blogger.com/profile/06954014306159472124noreply@blogger.com0tag:blogger.com,1999:blog-5066206908808389530.post-66945011898389722432011-07-27T03:30:00.000+02:002011-07-27T03:30:20.694+02:00Wall-E se convierte en un robot de verdad<a href="http://feedproxy.google.com/~r/fayerwayer/~3/347v763hdMM/story01.htm">Wall-E se convierte en un robot de verdad</a>: "<p><a href="http://www.fayerwayer.com/2011/07/wall-e-se-convierte-en-un-robot-de-verdad/"><em>Click aqui para ver el video.</em></a></p> <p>Un modder identificado como [DJ Sures] decidió que los Wall-E de juguete que hay en el mercado son aburridos, así que decidió modificar uno para convertirlo en un robot de verdad. Como se puede ver en el video de arriba, el robot incluye una cámara, reconocimiento de voz y seguimiento de objetos entre otras funciones.</p> <p>El trabajo para lograr este robot no es revolucionario, pero sí muy adorable. Quizás los juguetes del futuro puedan ser así de avanzados.</p> <p><strong>Link</strong>: <a href="http://hackaday.com/2011/07/22/modded-wall-e-becomes-a-real-robot/">Modded Wall-E becomes a real robot</a> <em>(Hack a Day)</em></p>Alexis Meneses Arévalohttp://www.blogger.com/profile/06954014306159472124noreply@blogger.com0