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

<channel>
	<title>Palmera blog &#187; General</title>
	<atom:link href="http://www.pablogindel.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pablogindel.com</link>
	<description>robots, música, cosas raras con electricidad</description>
	<lastBuildDate>Wed, 31 Aug 2011 14:43:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2-alpha</generator>
		<item>
		<title>SAMSA II, el heredero</title>
		<link>http://www.pablogindel.com/2011/03/samsa-ii/</link>
		<comments>http://www.pablogindel.com/2011/03/samsa-ii/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 18:30:03 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[Artículos técnicos, etc.]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[AX-12]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Dynamixel]]></category>
		<category><![CDATA[fing]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[hexapod]]></category>
		<category><![CDATA[hexápodo]]></category>
		<category><![CDATA[inverse kinematics]]></category>
		<category><![CDATA[montevideo]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[physical computing]]></category>
		<category><![CDATA[ripple gait]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robótica]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[robotshop]]></category>
		<category><![CDATA[SAMSA]]></category>
		<category><![CDATA[servo]]></category>
		<category><![CDATA[trossen]]></category>
		<category><![CDATA[uruguay]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=1161</guid>
		<description><![CDATA[Les presento a SAMSA II, el heredero de la dinastía de los hexápodos.  - Escuché decir, en ambientes de ingeniería, que los proyectos no se terminan, se abandonan. Bueno, esto es exactamente lo que ocurre con los míos. Cuando empiezo a construir un robot, no tengo ninguna idea acabada de lo que resultará, apenas unas [...]]]></description>
			<content:encoded><![CDATA[<p>Les presento a SAMSA II, el heredero de la dinastía de los hexápodos. </p>
<p><a href="http://www.pablogindel.com/2011/03/samsa-ii/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p><a href="http://www.pablogindel.com/2011/03/samsa-ii/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p><strong><span style="color: #ffffff;">-</span></strong></p>
<p style="text-align: justify;">Escuché decir, en ambientes de ingeniería, que los proyectos no se terminan, se abandonan. Bueno, esto es exactamente lo que ocurre con los míos. Cuando empiezo a construir un robot, no tengo ninguna idea acabada de lo que resultará, apenas unas directivas básicas sobre la mecánica y el hardware, como para que me permita luego experimentar y poner en práctica mis últimos descubrimientos (que casi siempre resultan ser &#8221;reinvenciones de la rueda&#8221;, como me han señalado en reiteradas ocasiones). Sobre esta plataforma básica, van surgiendo las ideas en función de la facilidad para programarlas, y para agregar, si es necesario, nuevos elementos al hardware, sin alterar la estructura original.</p>
<p style="text-align: justify;">Llega un momento, sin embargo, en el que el avance se vuelve cada vez más trabajoso; me doy cuenta de que es necesario reprogramar toda una sección, sustituir los motores por otros de mayor <a href="http://en.wikipedia.org/wiki/Torque" target="_blank">torque</a>, cambiar el diseño del software, reemplazar el <a href="http://es.wikipedia.org/wiki/Microcontrolador" target="_blank">microcontrolador</a> por otro de mayores prestaciones (o dotar al robot de un segundo procesador), desoldar toda una placa de componentes, etc., para superar las dificultades con que tropieza la realización de alguna de las ideas que surgieron cuando el robot ya estaba construido. Está claro que no se trata de proyectos ingenierísticos, en los que el diseño está completamente estudiado “sobre el papel” antes de su realización, sino de una suerte de improvisaciones (que han dado lugar, no obstante, a interesantes problemas técnicos, y a soluciones no menos inusuales y divertidas).</p>
<p style="text-align: justify;">Cuando estamos en los comienzos del desarrollo de un proyecto, no es tan traumático hacer grandes cambios en él, rediseñar toda una parte, arrancar a programar de nuevo desde 0 si es necesario, etc. Pero cuando es mucho ya lo que se trabajó, esto no resulta tan fácil, y a veces la solución pasa directamente por abandonar el proyecto y arrancar uno nuevo. Es así como surgió, en octubre del año pasado, la idea de hacer un nuevo <a href="http://en.wikipedia.org/wiki/Hexapod_(robotics)" target="_blank">hexápodo</a>, que superara las limitaciones del <a href="http://www.pablogindel.com/trabajos/samsa-2009/" target="_blank">SAMSA</a> original. Mucho fue lo que dudé, al principio, perseguido por la presión auto-impuesta de intentar siempre hacer algo “original”; pero en el fondo, lo que yo realmente quería era sacarme las ganas de hacer un buen -y trillado- robot &#8220;araña&#8221;. Por suerte encontré cierto eco entre mis compañeros del <a href="http://www.pablogindel.com/2010/03/proyecto-butia/" target="_blank">Proyecto Butiá</a>, especialmente Jorge Visca, quien se convirtió en el co-autor de este nuevo trabajo.</p>
<p style="text-align: justify;">La mejor manera de introducir a SAMSA II será, entonces, mediante la siguiente comparación con su antecesor, el SAMSA clásico. La misma está organizada en diversos apartados, cubriendo los aspectos fundamentales del diseño de ambos robots, y está disponible, por primera vez, en dos sabores:</p>
<p style="text-align: justify;"><strong>Documentación de SAMSA II &#8211;&gt; en </strong><a href="http://www.pablogindel.com/trabajos/samsa-ii-documentacion/" target="_self"><strong>español</strong></a><strong> | en </strong><a href="http://www.pablogindel.com/trabajos/samsa-ii-2010/" target="_self"><strong>inglés</strong></a></p>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Fotos de SAMSA II</h4>
<p style="text-align: justify;">
<div class="ngg-galleryoverview" id="ngg-gallery-3-1161">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-94" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=94" title="SAMSA II's steel backbone"  >
								<img title="robot-00" alt="robot-00" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-00.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-95" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=95" title=" "  >
								<img title="robot-01" alt="robot-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-96" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=96" title=" "  >
								<img title="robot-02" alt="robot-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-97" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=97" title=" "  >
								<img title="robot-03" alt="robot-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-98" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=98" title=" "  >
								<img title="robot-04" alt="robot-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-04.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-99" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=99" title=" "  >
								<img title="robot-05" alt="robot-05" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-05.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-100" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=100" title=" "  >
								<img title="robot-06" alt="robot-06" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-06.jpg" width="95" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-101" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=101" title=" "  >
								<img title="robot-07" alt="robot-07" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-07.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-102" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=102" title=" "  >
								<img title="robot-08" alt="robot-08" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-08.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-103" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=103" title=" "  >
								<img title="robot-09" alt="robot-09" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-09.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-104" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=104" title=" "  >
								<img title="robot-10" alt="robot-10" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-10.jpg" width="97" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-105" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=105" title=" "  >
								<img title="robot-11" alt="robot-11" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-11.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-106" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=106" title=" "  >
								<img title="robot-12" alt="robot-12" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-12.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-107" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=107" title=" "  >
								<img title="robot-13" alt="robot-13" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_robot-13.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-63" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=63" title=" "  >
								<img title="amortigua-01" alt="amortigua-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_amortigua-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-64" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=64" title=" "  >
								<img title="amortigua-02" alt="amortigua-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_amortigua-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-65" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=65" title=" "  >
								<img title="amortigua-03" alt="amortigua-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_amortigua-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-66" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=66" title=" "  >
								<img title="amortigua-04" alt="amortigua-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_amortigua-04.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-67" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=67" title=" "  >
								<img title="arduino-01" alt="arduino-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_arduino-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-68" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=68" title=" "  >
								<img title="arduino-02" alt="arduino-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_arduino-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-69" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=69" title=" "  >
								<img title="battery-01" alt="battery-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_battery-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-70" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=70" title=" "  >
								<img title="battery-02" alt="battery-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_battery-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-71" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=71" title=" "  >
								<img title="cabeza-01" alt="cabeza-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-72" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=72" title=" "  >
								<img title="cabeza-02" alt="cabeza-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-73" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=73" title=" "  >
								<img title="cabeza-03" alt="cabeza-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-74" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=74" title=" "  >
								<img title="cabeza-04" alt="cabeza-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-04.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-75" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=75" title=" "  >
								<img title="cabeza-05" alt="cabeza-05" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-05.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-76" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=76" title=" "  >
								<img title="cabeza-06" alt="cabeza-06" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-06.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-77" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=77" title=" "  >
								<img title="cabeza-07" alt="cabeza-07" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-07.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-78" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=78" title=" "  >
								<img title="cabeza-08" alt="cabeza-08" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-08.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-79" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=79" title=" "  >
								<img title="cabeza-09" alt="cabeza-09" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-09.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-80" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=80" title=" "  >
								<img title="cabeza-10" alt="cabeza-10" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-10.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-81" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=81" title=" "  >
								<img title="cabeza-11" alt="cabeza-11" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_cabeza-11.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-82" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=82" title=" "  >
								<img title="control-01" alt="control-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_control-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-83" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=83" title=" "  >
								<img title="display-01" alt="display-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_display-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-84" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=84" title=" "  >
								<img title="display-02" alt="display-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_display-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-85" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=85" title=" "  >
								<img title="display-03" alt="display-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_display-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-86" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=86" title=" "  >
								<img title="display-04" alt="display-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_display-04.jpg" width="93" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-87" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=87" title=" "  >
								<img title="display-05" alt="display-05" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_display-05.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-90" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=90" title=" "  >
								<img title="motors-01" alt="motors-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_motors-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-91" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=91" title=" "  >
								<img title="motors-02" alt="motors-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_motors-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-92" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=92" title=" "  >
								<img title="motors-03" alt="motors-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_motors-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-93" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=93" title=" "  >
								<img title="motors-04" alt="motors-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_motors-04.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-59" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=59" title=" "  >
								<img title="abajo-01" alt="abajo-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_abajo-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-60" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=60" title=" "  >
								<img title="abajo-02" alt="abajo-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_abajo-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-61" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=61" title=" "  >
								<img title="abajo-03" alt="abajo-03" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_abajo-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-62" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=62" title=" "  >
								<img title="abajo-04" alt="abajo-04" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_abajo-04.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-88" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=88" title=" "  >
								<img title="familia-01" alt="familia-01" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_familia-01.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-89" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2011/03/samsa-ii/?pid=89" title=" "  >
								<img title="familia-02" alt="familia-02" src="http://www.pablogindel.com/wp-content/gallery/samsa-ii/thumbs/thumbs_familia-02.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class="ngg-clear"></div> 	
</div>

</p>
<p style="text-align: justify;">  </p>
<p style="text-align: justify;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2011/03/samsa-ii/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>sumo.uy 2010</title>
		<link>http://www.pablogindel.com/2010/09/sumo-uy-2010/</link>
		<comments>http://www.pablogindel.com/2010/09/sumo-uy-2010/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 04:40:23 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[fing]]></category>
		<category><![CDATA[hexapod]]></category>
		<category><![CDATA[hexápodo]]></category>
		<category><![CDATA[INCO]]></category>
		<category><![CDATA[mina]]></category>
		<category><![CDATA[montevideo]]></category>
		<category><![CDATA[proyecto butiá]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robótica]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[sumo robótico]]></category>
		<category><![CDATA[sumo.uy]]></category>
		<category><![CDATA[udelar]]></category>
		<category><![CDATA[uruguay]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=1003</guid>
		<description><![CDATA[Sumo.uy es un evento anual, que se viene realizando ininterrumpidamente desde 2004, organizado por el INCO (Instituto de Computación de la Facultad de Ingeniería, UdelaR). Se trata de una actividad abierta al público, en donde participan universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros, todo aquel que quiera formar parte de los avances en robótica e [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.pablogindel.com/imagenes/bender.jpg"></a><a href="http://www.fing.edu.uy/inco/eventos/sumo.uy/" target="_blank">S<em>umo.uy</em></a> es un evento anual, que se viene realizando ininterrumpidamente desde 2004, organizado por el <a href="http://www.fing.edu.uy/inco/" target="_blank">INCO</a> (Instituto de Computación de la Facultad de Ingeniería, UdelaR). Se trata de una actividad abierta al público, en donde participan universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros, todo aquel que quiera formar parte de los avances en <a href="http://en.wikipedia.org/wiki/Robotics" target="_blank">robótica</a> e <a href="http://en.wikipedia.org/wiki/Artificial_intelligence" target="_blank">inteligencia artificial</a>.</p>
<p style="text-align: justify;"><span id="more-1003"></span></p>
<p style="text-align: justify;">Durante el evento se desarrollan diversas exposiciones, presentaciones de trabajos, competencias y talleres, organizados en tres actividades principales: </p>
<p style="text-align: justify;">
<ul style="text-align: justify;">
<li>Campeonato de <a href="http://www.fing.edu.uy/inco/eventos/sumo.uy/introduccion.html" target="_blank">Sumo Robótico</a>.</li>
<li>Workshop en Inteligencia Artificial y Robótica Móvil.</li>
<li>Concurso de Robótica.</li>
</ul>
<p>Este año, en su 7ª edición, el programa tendrá lugar del 23 al 25 de setiembre, en el Estadio de Sumo Robótico, Edificio Polifuncional Faro (Facultad de Ingeniería), y contará con algunos detalles que paso a comentar. </p>
<h4 style="text-align: justify;"> </h4>
<h4 style="text-align: justify;">Presentación oficial del Proyecto Butiá</h4>
<p class="mceTemp" style="text-align: justify;">El <a href="http://www.fing.edu.uy/inco/proyectos/butia/" target="_blank">Proyecto Butiá</a> ha alcanzado ya su madurez, y se encuentra actualmente en fase de producción. El jueves 23 serán entregados oficialmente los primeros 27 kits robóticos a liceos públicos, con la presencia de las autoridades de enseñanza secundaria, los responsables del proyecto, autoridades del INCO, etc. </p>
<p class="mceTemp">
<div>
<dl>
<div class="wp-caption aligncenter" style="width: 355px"><a href="http://www.pablogindel.com/imagenes/chata.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/chata_p.jpg" alt="" width="345" height="258" /></a><p class="wp-caption-text">Proyecto Butiá</p></div>
<p style="text-align: justify;">Estos kits 1.0 han tenido una gran evolución, desde los primeros prototipos, allá por febrero de este año, y cuentan actualmente con las siguientes características: </p>
</dl>
</div>
<p style="text-align: center;">
<ul>
<li>
<div style="text-align: justify;">plataforma de acrílico de 5mm, con agujeros y piezas constructivas para montar sensores.</div>
</li>
<li>
<div style="text-align: justify;">motores <a href="http://www.robotis.com/xe/dynamixel_en" target="_blank">Dynamixel</a> AX-12+, ruedas de 6,5cm de diámetro que permiten una mayor velocidad de desplazamiento, &#8220;ruedas locas&#8221; con amortiguador de acero.</div>
</li>
<li>
<div style="text-align: justify;">pack de 8 baterías <a href="http://es.wikipedia.org/wiki/Bater%C3%ADa_de_n%C3%ADquel_e_hidruro_met%C3%A1lico" target="_blank">Ni-Mh</a>, interruptor de encendido, conector para cargador de baterías externo.</div>
</li>
<li>
<div style="text-align: justify;">tarjeta de E/S <a href="http://arduino.cc/en/Main/ArduinoBoardMega" target="_blank">Arduino Mega</a>, con el firmware butiá (se están desarrollando también versiones para otras placas, p. ej. USB4ALL, <span style="font-family: NimbusRomNo9L-Regu; font-size: x-small;"><span style="font-family: NimbusRomNo9L-Regu; font-size: x-small;"><a href="http://www.gogoboard.org/" target="_blank">GoGoBoard</a></span></span>, etc.)</div>
</li>
<li>
<div style="text-align: justify;">completo kit de sensores y actuadores, que incluye sensores de temperatura, distancia, inclinación, luz, botones, etc., hasta un display LCD de 16&#215;2 caracteres. </div>
</li>
</ul>
<dl>
<div class="wp-caption alignright" style="width: 261px"><a href="http://www.pablogindel.com/imagenes/shield.jpg"><img src="http://www.pablogindel.com/imagenes/shield_p.jpg" alt="" width="251" height="141" /></a><p class="wp-caption-text">Butiá shield</p></div>
</dl>
<ul>
<li>
<div style="text-align: justify;">el &#8220;butiá shield&#8221;, placa que se monta sobre la Arduino y contiene 8 conectores con funcionalidad <a href="http://es.wikipedia.org/wiki/Plug-and-play" target="_blank">Plug &amp; Play</a> (un modesto aporte de la casa).</div>
</li>
<li>
<div style="text-align: justify;">software para <a href="http://es.wikipedia.org/wiki/OLPC" target="_blank">XO</a>, fácilmente portable a otras plataformas. Consiste en el &#8220;bobot server&#8221;, un programa desarrollado en <a href="http://es.wikipedia.org/wiki/Lua" target="_blank">Lua</a>, que permite comunicarse con el robot desde cualquier lenguaje de programación mediante <a href="http://es.wikipedia.org/wiki/Socket_de_Internet" target="_blank"><em>sockets</em></a>, incluso desde una computadora remota.</div>
</li>
<li>
<div style="text-align: justify;">implementación para el lenguaje gráfico <a href="http://wiki.sugarlabs.org/go/Activities/Turtle_Art" target="_blank">TortugArte</a> de las XO, que permite manejar el robot desde este entorno. Se puede interactuar,  mover los motores, leer los sensores, etc., gracias a una paleta gráfica que contiene los &#8220;ladrillos&#8221; específicos del Butiá.  </div>
</li>
</ul>
<div class="mceTemp mceIEcenter">
<p style="text-align: center;">
<div class="wp-caption alignleft" style="width: 275px"><a href="http://www.pablogindel.com/imagenes/bender.jpg"><img class="     " src="http://www.pablogindel.com/imagenes/bender_p.jpg" alt="" width="265" height="173" /></a><p class="wp-caption-text">Walter Bender, creador de Sugar (el sistema operativo de las XO) y TortugArte.</p></div>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;">
<div class="wp-caption alignright" style="width: 261px"><a href="http://www.pablogindel.com/imagenes/tortuga.jpg"><img src="http://www.pablogindel.com/imagenes/tortuga_p.jpg" alt="" width="251" height="191" /></a><p class="wp-caption-text">Ejempo de programa en TortugArte para Butiá.</p></div>
<h4 style="text-align: justify;"> </h4>
<h4 style="text-align: justify;"> </h4>
<h4 style="text-align: justify;">Workshop y exposiciones robóticas</h4>
<p style="text-align: center;">
<div class="wp-caption alignright" style="width: 237px"><a href="http://www.pablogindel.com/imagenes/planta.jpg"><img class="  " src="http://www.pablogindel.com/imagenes/planta_p.jpg" alt="" width="227" height="227" /></a><p class="wp-caption-text">Aeropónica</p></div>
<p style="text-align: justify;">Dentro de lo que son las charlas, voy a tener el gusto de participar nuevamente, en esta oportunidad para hacer una breve presentación sobre el proyecto <a href="http://www.pablogindel.com/2010/08/aeroponica/" target="_blank">Aeropónica</a>, de Juan Perazzo y Marcelo Vidal, en el cual estuve a cargo del diseño y construcción del sistema de control. </p>
<div class="wp-caption alignleft" style="width: 298px"><a href="http://www.pablogindel.com/imagenes/sumo.JPG"><img class=" " src="http://www.pablogindel.com/imagenes/sumo_p.JPG" alt="" width="288" height="216" /></a><p class="wp-caption-text">SAMSA</p></div>
<p style="text-align: center;">
<p style="text-align: justify;"><a href="http://www.pablogindel.com/trabajos/samsa-2009/" target="_blank">SAMSA</a> también estará presente en el evento, cumpliendo ya un año y medio de vida. El hexápodo ha tenido, por su parte, algunos avances en este tiempo, pero se trata más que nada de optimizaciones en el código que ya estaba. Ha agudizado sus sentidos, es capaz de escuchar y reconocer algunas palabras, puede mover sus antenas sin provocar interferencia en su sistema auditivo, y puede, por ejemplo, detectar la acción de una fuerza externa sobre las antenas, aunque él mismo las esté moviendo.  Sin embargo, aún no tiene una conducta autónoma concreta; estuvimos trabajando durante la primera mitad del año junto a Daniel Bebelaqua en pos de ese objetivo, pero no alcanzamos a cristalizar nada en las escasas horas que le pudimos dedicar. </p>
<p style="text-align: justify;">  </p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2010/09/sumo-uy-2010/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ARAGON</title>
		<link>http://www.pablogindel.com/2010/09/aragon/</link>
		<comments>http://www.pablogindel.com/2010/09/aragon/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 05:53:05 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[depinfo]]></category>
		<category><![CDATA[facultad de arquitectura]]></category>
		<category><![CDATA[farq]]></category>
		<category><![CDATA[openframeworks]]></category>
		<category><![CDATA[openGL]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[realidad aumentada]]></category>
		<category><![CDATA[tomás laurenzo]]></category>
		<category><![CDATA[vidialab]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=975</guid>
		<description><![CDATA[ARAGON (Aplicación de Realidad Aumentada de Primera Generación) es un dispositivo interactivo de Realidad Aumentada. Permite visualizar en 360 grados el entorno inmediato, mediante dos pantallas LCD solidarias, cada una con una cámara, que pueden ser giradas sobre su eje vertical. Los usuarios pueden interactuar en la pantalla de varios modos, girando el aparato para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.farq.edu.uy/estructura/servicios_docentes/servicios/informatica/aragon.html" target="_blank">ARAGON</a> (Aplicación de Realidad Aumentada de Primera Generación) es un dispositivo interactivo de <a href="http://es.wikipedia.org/wiki/Realidad_aumentada" target="_blank">Realidad Aumentada</a>. Permite visualizar en 360 grados el entorno inmediato, mediante dos pantallas LCD solidarias, cada una con una cámara, que pueden ser giradas sobre su eje vertical. Los usuarios pueden interactuar en la pantalla de varios modos, girando el aparato para cambiar el punto de vista, y modificando la transparencia de las seis capas de información: reconstrucción virtual, imagen estereoscópica, imagen transparente, cámara, información y sonido.<span id="more-975"></span></p>
<p style="text-align: justify;">Se trata de un proyecto del <a href="http://www.farq.edu.uy/estructura/servicios_docentes/servicios/informatica/index.html" target="_blank">Departamento de Informática</a> de la Facultad de Arquitectura (dirigido por el Arq. Marcelo Payssé) y el <a href="http://giga.cps.unizar.es/" target="_blank">GIGA</a> de la Universidad de Zaragoza, financiado a través del Programa PCI 2009 de la Agencia Española de Cooperación Internacional para el Desarrollo (AECID) y con el apoyo de la IMM. </p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><p><a href="http://www.pablogindel.com/2010/09/aragon/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: center;"> </p>
<p style="text-align: justify;">Para desarrollar el software que controla a este sistema, fuimos contratados, junto a <a href="http://laurenzo.net/" target="_blank">Tomás Laurenzo</a> (el tom), y lo hicimos en C++, con Visual Studio 2008 (en Windows) y usando <a href="http://www.openframeworks.cc/" target="_blank">openFrameworks</a>. Fue para mí la primera vez que tomé contacto con la programación &#8220;en serio&#8221;, y por lo tanto, una gran experiencia. Si bien no se trataba de algo extremadamente difícil, hubo que trabajar, nuestro software debió resolver, entre otras cosas, los siguientes aspectos:</p>
<ul>
<li style="text-align: left;">comunicarse con el sensor angular <a href="http://www.intersense.com/InertiaCube_Sensors.aspx" target="_blank">Intersense</a>;</li>
<li style="text-align: left;">dibujar varios &#8220;panoramas&#8221; cilíndricos, con niveles de transparencia ajustables, usando <a href="http://www.opengl.org/" target="_blank">OpenGL</a>;</li>
<li style="text-align: left;">girar los cilindros, o bien girar la cámara GL (lo hicimos de las dos maneras);</li>
<li style="text-align: left;">gestionar un interfaz gráfico de usuario, interactivo, manejado con dispositivos touchscreen;</li>
<li style="text-align: left;">comunicarse con los dos dispositivos touchscreen, calibrarlos;</li>
<li style="text-align: left;">hacer coincidir el movimiento de los &#8220;popups&#8221; (las ventanas con información, que aparecen sobre un plano) con el de los panoramas cilíndricos;</li>
<li style="text-align: left;">comunicarse con dos cámaras <a href="http://en.wikipedia.org/wiki/PlayStation_Eye" target="_blank">Sony PS3</a>, usando la biblioteca &#8220;CLEyeMulticam&#8221; de <a href="http://codelaboratories.com/products/eye/sdk/" target="_blank">CodeLaboratories</a>;</li>
<li style="text-align: left;">&#8220;renderear&#8221; y controlar simultáneamente dos pantallas, en dos monitores de 42&#8221;;</li>
<li style="text-align: left;">usar <a href="http://es.wikipedia.org/wiki/Hilo_de_ejecuci%C3%B3n" target="_blank">threads</a>, a efectos de optimizar el rendimiento, logrando finalmente un framerate de 60 frames por segundo, sin que se noten saltos de ningún tipo;</li>
<li>etc.</li>
</ul>
<p style="text-align: justify;">La estación ARAGON será estrenada el viernes 24 de setiembre, a las 16:00 hs,  en el Espacio Cultural “Al pie de la Muralla” (Bartolomé Mitre 1464), y se la podrá ver allí durante el <em>Día del Patrimonio 2010</em>. Posteriormente será ubicada dentro del proyecto “Muralla Abierta”, que obtuvo el Premio Santiago de Compostela de Cooperación Urbana 2009.</p>
<p style="text-align: left;">A continuación les dejo algunas fotos y más videos del proyecto.</p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><a href="http://www.pablogindel.com/imagenes/Aragon 09.jpg"></a><a href="http://www.pablogindel.com/imagenes/Aragon 08.jpg"></a></p>
<p style="text-align: center;">
<div class="ngg-galleryoverview" id="ngg-gallery-2-975">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-9" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=9" title=" "  >
								<img title="invita" alt="invita" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_invita.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-5" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=5" title="ARAGON"  >
								<img title="aragon" alt="aragon" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_aragon-09.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-6" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=6" title="Usuario interactuando con la pantalla táctil"  >
								<img title="touchscreen" alt="touchscreen" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_aragon-00.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=7" title="Sensor angular junto con una webcam, formando un dispositivo &quot;casero&quot; que usamos durante las pruebas."  >
								<img title="cámara-sensor" alt="cámara-sensor" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_aragon-03.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=8" title="Detalle del &quot;popup&quot; correspondiente al Portón de San Pedro"  >
								<img title="popup" alt="popup" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_aragon-05.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.pablogindel.com/2010/09/aragon/?pid=4" title="El Dr. Juan Carlos Palmer, examinando la estación."  >
								<img title="palmer" alt="palmer" src="http://www.pablogindel.com/wp-content/gallery/aragon/thumbs/thumbs_aragon-08.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class="ngg-clear"></div> 	
</div>

</p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><p><a href="http://www.pablogindel.com/2010/09/aragon/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><p><a href="http://www.pablogindel.com/2010/09/aragon/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: center;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2010/09/aragon/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Aeropónica</title>
		<link>http://www.pablogindel.com/2010/08/aeroponica/</link>
		<comments>http://www.pablogindel.com/2010/08/aeroponica/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 05:26:52 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[aeropónica]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[ardweeny]]></category>
		<category><![CDATA[atmega328]]></category>
		<category><![CDATA[CCE]]></category>
		<category><![CDATA[centro cultural de españa]]></category>
		<category><![CDATA[chindogu]]></category>
		<category><![CDATA[computación física]]></category>
		<category><![CDATA[encoder]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[juan perazzo]]></category>
		<category><![CDATA[L293D]]></category>
		<category><![CDATA[marcelo vidal]]></category>
		<category><![CDATA[media art]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[montevideo]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[physical computing]]></category>
		<category><![CDATA[robótica]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[Serial]]></category>
		<category><![CDATA[uruguay]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=916</guid>
		<description><![CDATA[Estimados lectores: han pasado más de tres meses desde la última tanda de artículos subidos. Fueron meses de intenso trabajo: tengo novedades de SAMSA, del Butiá, del XY, algún proyecto musical y fundamentalmente dos proyectos nuevos vinculados al physical computing, y al computing “pelado”, nomás. Comenzaré hablando de uno de los emprendimientos más audaces de los que me [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Estimados lectores: han pasado más de tres meses desde la última tanda de artículos subidos. Fueron meses de intenso trabajo: tengo novedades de <a href="http://www.pablogindel.com/trabajos/samsa-2009/" target="_blank">SAMSA</a>, del <a href="http://www.pablogindel.com/2010/03/proyecto-butia/" target="_blank">Butiá</a>, del <a href="http://www.pablogindel.com/2010/03/xy-motion-control/" target="_blank">XY</a>, algún proyecto musical y fundamentalmente dos proyectos nuevos vinculados al <a href="http://en.wikipedia.org/wiki/Physical_computing" target="_blank">physical computing</a>, y al computing “pelado”, nomás. Comenzaré hablando de uno de los emprendimientos más audaces de los que me ha tocado participar en estos últimos tiempos.<span id="more-916"></span>   </p>
<p style="text-align: justify;">Aeropónica es una planta artificial de 10 metros de alto y 6 de ancho, dotada de 28 <em>flores robóticas</em> que interactúan con el público mediante <a href="http://es.wikipedia.org/wiki/Sensor" target="_blank">sensores</a>, instalada desde el 27 de julio en el espacio central del <a href="http://www.cce.org.uy/" target="_blank">Centro Cultural de España</a>, lugar donde permanecerá por un lapso de 8 meses. Se trata de un proyecto original del artista plástico <a href="http://www.myspace.com/inkmusic" target="_blank">Juan Perazzo</a>, que resultó seleccionado en la Convocatoria abierta <a href="http://www.cce.org.uy/cce/concursos/Acta%20del%20jurado_Convocatoria%20Espacio%20Central.pdf" target="_blank">Intervenciones espacios no convencionales</a> llevada a cabo por el CCE en 2010.   </p>
<div class="wp-caption aligncenter" style="width: 490px"><a href="http://www.pablogindel.com/imagenes/a01.jpg"><img src="http://www.pablogindel.com/imagenes/a01p.jpg" alt="" width="480" height="640" /></a><p class="wp-caption-text">Aeropónica</p></div>
<p>Más allá de que el resultado final de esta obra es de una gran belleza, dejándonos plenamente satisfechos a todos quienes participamos en ella, este proyecto me parece particularmente destacable por las siguientes razones:   </p>
<ul style="text-align: justify;">
<li>Fue realizado en un tiempo y con un presupuesto realmente acotados, teniendo en cuenta su magnitud: estamos hablando de dos meses para su realización total y aproximadamente 2000 dólares para la parte mecánico/electrónico/informática, incluyendo materiales y honorarios de la gente que trabajó (entre la cual me incluyo, por eso conozco la cifra; no conozco los detalles del resto del proyecto, pero es más o menos del mismo orden).</li>
<li>Dadas las condiciones en que se desarrolló el trabajo, no hubo mayor tiempo para pruebas ni especulaciones: cualquier error o descuido en los cálculos o en la praxis, podría haber derivado en un fracaso total (situación de la que estuvimos al borde en todo momento). Hubo que hacer todo “de una”, como si realmente supiéramos hacerlo, y no faltaron imprevistos de todo tipo a lo largo del proceso.</li>
<li>Se trata de una instalación grande y compleja, que nos obligó a pensar, resolver problemas, tomar decisiones, y sobre todo, trabajar duramente. Se usaron 30 <a href="http://es.wikipedia.org/wiki/Microcontrolador" target="_blank">microcontroladores</a>, 1500 metros de cable, hubo que desarmar más de 200 unidades de DVD para reciclar el sistema mecánico (al cual muchas veces también hubo que hacerle adaptaciones), etc., y esto por hablar solamente de la parte que me involucra. La plástica, por su lado, es de una fineza extraordinaria, producto también del esfuerzo de mucha gente, y no olvidemos lo que es la estructura física, el trabajo de colgar la planta en ese lugar, etc., etc.   </li>
</ul>
<p style="text-align: justify;">Por todos estos motivos, me siento más que contento de haber aportado al desarrollo de Aeropónica. Aunque, como sistema interactivo, su “conducta” no es de las más originales que puedan encontrarse (por el momento), es la primer instalación de esta naturaleza que se realiza en el pais, y talvez en la región.   </p>
<p style="text-align: justify;">El jueves 14 de Octubre, a las 19:30hs, habrá una charla en el café del CCE, a cargo de Juan, Marcelo y quien suscribe, para dar a conocer los detalles de la realización de este interesante proyecto. Por mi parte, les voy a contar aquí cómo fue mi experiencia en la elaboración del sistema de control, junto a quiénes tuve el placer de trabajar, los desafíos técnicos a los que nos enfrentamos y cómo los resolvimos, en lo que va a constituir un auténtico “thriller tecnológico”.   </p>
<p style="text-align: justify;">    </p>
<h4 style="text-align: justify;">Parte 1 &#8211; Los comienzos</h4>
<p style="text-align: justify;">Hace aproximadamente dos meses, <a href="http://vimeo.com/user1056679" target="_blank">Marcelo Vidal (VJ Chindogu)</a> vino a mi casa y me mostró un PDF con unos dibujos de unas flores mecánicas, informándome que con ese proyecto acababan de ganar un concurso del CCE, pero que él se tenía que ir para Alemania, y a ver si yo los podía ayudar a controlar esas flores con <a href="http://www.arduino.cc/" target="_blank">Arduino</a>. Acepté la propuesta, y ahí mismo nos pusimos a ver posibles soluciones para la mecánica. Su idea original era utilizar <a href="http://es.wikipedia.org/wiki/Motor_paso_a_paso" target="_blank">motores paso-a-paso</a> con un “sinfín”, como suelen encontrarse en las disketteras y las unidades de CD.   </p>
<div class="wp-caption aligncenter" style="width: 534px"><a href="http://www.pablogindel.com/imagenes/a02.png"><img class=" " src="http://www.pablogindel.com/imagenes/a02p.jpg" alt="" width="524" height="281" /></a><p class="wp-caption-text">Boceto original de la flor, a cargo de Marcelo.</p></div>
<p style="text-align: justify;">Debo decir que yo soy un poco lento para ir adquiriendo toda la información, o talvez me concentro demasiado en un primer aspecto y no presto atención al resto de los detalles. El asunto es que no fue hasta unos dias después cuando se produjo una nueva reunión, esta vez con Marcelo y Juan Perazzo (a quien tuve el gusto de conocer en esa oportunidad), que tomé conciencia del verdadero alcance de lo que se proponían. Se trataba de desarrollar un sistema que permitiera controlar 28 motores, y recibir data de 8 <a href="http://axxon.com.ar/rob/Sensores_ultrasonido.htm" target="_blank">sensores de distancia ultrasónicos</a>; había que diagramar un circuito electrónico que involucraría uno o más microcontroladores, construirlo, y luego programar el sistema con alguna conducta (de la cual ni hablábamos por entonces porque era algo aún demasiado lejano). Todavía no sabíamos qué tipo de motores se usarían, cómo sería el sistema de trasmisión mecánica, pero ya había una idea más clara de los plazos (27 de julio) y del presupuesto (no debíamos exceder los 30 ó 35 dólares por flor).   </p>
<p style="text-align: justify;">Según mis cálculos, era absolutamente imposible cumplir con el objetivo, y fue lo que les dije, ya que dos meses era perfectamente el tiempo que podía tomar hacer las pruebas necesarias para decidir qué tipo de solución íbamos a adoptar. De todas maneras acepté seguir trabajando, confiado en que, llegado el momento, las dificultades iban a obligar a Juan a posponer la fecha de inauguración, como ocurre sistemáticamente con todo, aquí en Uruguay.   </p>
<div class="wp-caption aligncenter" style="width: 511px"><a href="http://www.pablogindel.com/imagenes/a03.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a03p.jpg" alt="" width="501" height="291" /></a><p class="wp-caption-text">Prototipo de flor, con el sistema de arrastre de bandeja de CD</p></div>
<p style="text-align: justify;">Sin embargo, las cosas iban más rápido que lo que yo esperaba. No sé si fue en esa misma reunión o en la siguiente que quedó establecido cómo sería el sistema mecánico. Marcelo había quedado con la idea de los motores paso-a-paso, pero desarmando unidades de CD en busca de dicho motor, yo me percaté de que el sistema de arrastre de la bandeja era una buena alternativa, aunque tenía la desventaja de funcionar con un <a href="http://es.wikipedia.org/wiki/Motor_de_corriente_continua" target="_blank">motor DC</a>, es decir, sin ningún sistema que permitiera tener un control exacto de la posición. A Juan le gustó la idea de los sistemas de arrastre de bandeja, porque tenían un recorrido de unos 10cm, contra los 5cm de los <em>steppers</em>, y se veían más fáciles de adaptar al movimiento de las flores, que por aquel entonces ya tenían una forma definida (consistían en un pequeño paraguas infantil invertido, movido por una varilla metálica), aunque todavía no estaba clara la manera concreta de instalarlos.   </p>
<p style="text-align: justify;">Bien, les dije entonces que para empezar necesitaba una <em>Arduino Mega</em>, una <em>protoboard</em>, cablecitos, un integrado L293D (<a href="http://es.wikipedia.org/wiki/Puente_H_(electr%C3%B3nica)" target="_blank">puente en ‘H’</a> para controlar motores DC) y un sensor de distancia como los que se iban a usar (los <a href="http://www.maxbotix.com/uploads/LV-MaxSonar-EZ1-Datasheet.pdf" target="_blank">Maxbotix LV-EZ1</a>, eran sensores ultrasónicos baratos, con un rango bastante mayor al de los clásicos infrarrojos Sharp). Con todo eso y el paraguas metido en un caño de PVC con el sistema de arrastre de la bandeja de la unidad de CD que desarmamos acá mismo “recortado” y pegado con Poxipol, yo me encargaría de hacer un prototipo que luego extenderíamos a todas las flores. A modo de <em>encoder</em>, para tener un mínimo control de la posición, le dije a Juan que hiciera unos agujeritos a lo largo del recorrido de la pieza móvil, planeando utilizar un sistema óptico, con un emisor y receptor <a href="http://es.wikipedia.org/wiki/Radiaci%C3%B3n_infrarroja" target="_blank">IR</a> a ambos lados de dicha pieza.   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>    </p>
<p style="text-align: justify;">    </p>
<h4 style="text-align: justify;">Parte 2 – Flores inteligentes</h4>
<p style="text-align: justify;">La semana siguiente Marcelo ya estaba de viaje, quedamos Juan y yo en un ping-pong de idas y venidas entre su casa y la mía (que, por suerte, se encontraban bastante próximas, al igual que el estudio de Marcelo, todos en la zona del Parque Rodó), durante el cual fuimos optimizando el sistema mecánico, que al principio estaba muy duro. El punto clave de esa etapa fue el descubrimiento de la curva en forma de “S” que había que practicarle a la varilla metálica que trasmitía el movimiento. Los materiales llegaron con cierto atraso, pero yo no tardé en desarrollar el prototipo que les había prometido. Hasta ahí no tuve ninguna dificultad, todo parecía encaminado, pero el momento de las decisiones difíciles no tardaría en llegar.   </p>
<p style="text-align: justify;">Desde el principio, la propuesta que me había llegado era que yo diseñara el sistema, “alguien” se encargaría de construirlo y replicarlo 28 veces, y finalmente yo me encargaría de desarrollar el software para el mismo. Pero yo veía que algo se iba complicando. Si usábamos los sistemas de arrastre de las bandejas de CD/DVD, la mecánica se simplificaba (a esa altura parecía claro que no había tiempo ni recursos para intentar otra cosa) pero el sistema de control se hacía un poco más complicado desde el punto de vista del <em>software</em>: el encoder óptico pasivo, para funcionar correctamente, necesitaba que el microcontrolador estuviera todo el tiempo pendiente de él, de lo contrario, si le “perdía el rastro” no había manera de controlar la posición exacta del motor. Empecé a imaginarme un sistema con 28 de esos encoders y yo tratando de programar todo 5 días antes de la inauguración, y la ví muy oscura…   </p>
<p style="text-align: justify;">Días antes yo había tirado la idea de hacer “flores inteligentes”, es decir dotadas de un microcontrolador propio, pero como divague teórico para un supuesto proyecto en el que el presupuesto no fuera una limitante. Sin embargo ahora tenía que decirle a Juan que no había otra opción, esa era la única solución posible, poner un microcontrolador en cada flor. Así tuviera que sacrificar mis honorarios, yo prefería la tranquilidad de tener un poder de procesamiento local a nivel de la flor, entre otras cosas, para implementar el famoso “plan B”, es decir, que si todo fallaba, cada flor se comportaría autónomamente, con alguna programación <em>aleatoria</em> que “salvara la plata”. Cada flor sería ahora una especie de <em><a href="http://es.wikipedia.org/wiki/Servomotor_de_modelismo" target="_blank">servo</a> digital</em> inteligente, pensaba yo, lo cual simplificaría enormemente la programación en la placa central.   </p>
<div class="wp-caption aligncenter" style="width: 524px"><a href="http://www.pablogindel.com/imagenes/a04.jpg"><img class="  " src="http://www.pablogindel.com/imagenes/a04p.jpg" alt="" width="514" height="242" /></a><p class="wp-caption-text">Primer prototipo de Arduino &quot;casera&quot; que iría en cada flor</p></div>
<p style="text-align: justify;">Para Juan no estaba clara la diferencia con lo anterior (es decir, con una sola placa controlándolo todo), excepto que esto era más caro, pero para mí era un profundo alivio. Posteriormente estuvimos viendo con Marcelo, al regreso de su viaje, cuál era el clon más económico de Arduino que existía en el mercado, y que pudiera conseguirse en Buenos Aires. Respuesta: Solarbotics <a href="http://www.solarbotics.com/products/kardw/" target="_blank">Ardweeny</a>, un clon de Arduino sin USB, sin <a href="http://es.wikipedia.org/wiki/78xx" target="_blank">regulador de voltaje</a>, que viene desarmado y cuesta 10 dólares en origen, casi 20 en Baires.   </p>
<p style="text-align: justify;">Pero cada decisión aparentemente acertada que tomábamos, nos abría las puertas a nuevos y más complicados problemas. El incluir una Ardweeny con un L293D y un encoder óptico en cada flor, complicaba bastante la labor de ese hipotético individuo encargado de la materialización del sistema electrónico. Dicho sea de paso, me enteré de que no existía tal individuo, y quedó en mis manos la consecución de una persona que pudiera cumplir ese rol. Afortunadamente el Fede (<a href="http://www.fing.edu.uy/inco/proyectos/butia/nosotros.html" target="_blank">Federico Andrade</a>, compañero del proyecto Butiá) aceptó el trabajo, y demostró una gran solvencia al encargarse de la fabricación de más de 20 <em>placas</em> (es decir, el circuito que hay en cada flor, formado por la Ardweeny, el L293D, un regulador de voltaje y otros componentes más) y de ayudarme con la programación y algunas decisiones difíciles.   </p>
<div class="wp-caption aligncenter" style="width: 525px"><a href="http://www.pablogindel.com/imagenes/a05.jpg"><img src="http://www.pablogindel.com/imagenes/a05p.jpg" alt="" width="515" height="386" /></a><p class="wp-caption-text">El mismo prototipo, construido sobre un circuito impreso &quot;universal&quot;</p></div>
<div class="wp-caption aligncenter" style="width: 548px"><a href="http://www.pablogindel.com/imagenes/a06.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a06p.jpg" alt="" width="538" height="403" /></a><p class="wp-caption-text">Aspecto final de las placas basadas en Ardweeny</p></div>
<p style="text-align: justify;">Otra de las dificultades que surgieron, fue la de conseguir los materiales electrónicos: en Eneka se agotaron los L293D, en Buenos Aires también, como asimismo las Ardweeny. Finalmente hubo que comprar todo en <a href="http://www.solarbotics.com/" target="_blank">Solarbotics</a> y hacer una importación, con la consiguiente demora en trámites aduaneros y demás. Por su parte la obtención de unidades de CD/DVD para desguazar tampoco progresaba. Marcelo compró varios lotes, y hasta recorrió los <a href="http://es.wikipedia.org/wiki/Asentamiento_informal" target="_blank">asentamientos</a> en busca de unidades, pero por error estábamos descartando todas aquellas que no tuvieran una trasmisión exclusivamente basada en engranajes (o sea la gran mayoría, que eran “a gomita”) como así también las que tenían más de 5 cm de alto (o sea aquellas en las que el motor con el sistema de reducción ocupaba más de la mitad del espacio entre un lado y el otro de la bandeja de CD).   </p>
<p style="text-align: justify;">    </p>
<h4 style="text-align: justify;">Parte 3 – 1Km y medio de cable</h4>
<p style="text-align: justify;">Mientras tanto yo me enfrentaba a otro problema no menos grave, del cual nunca di demasiados detalles a Marcelo y Juan para que no se alarmaran. Se trataba del problema de la comunicación entre la Arduino Mega central y las 28 Ardweenys que estarían en las flores. El factor del que yo tampoco había tomado conciencia en las primeras reuniones, era que entre las flores más distantes y el sistema de control podría llegar a haber distancias de hasta 15 metros. No estaba claro el sistema de comunicación (yo barajaba varias opciones, pero tampoco había tiempo ni presupuesto como para intentar soluciones más “profesionales” como <a href="http://es.wikipedia.org/wiki/Ethernet" target="_blank">Ethernet</a>, <a href="http://es.wikipedia.org/wiki/Wi-Fi" target="_blank">WiFi</a>, <a href="http://es.wikipedia.org/wiki/ZigBee" target="_blank">ZigBee</a>, <a href="http://es.wikipedia.org/wiki/RS-485" target="_blank">RS485</a>, etc.) ni el tipo de cable que usaríamos. Otro factor que empeoraba las condiciones era la imposibilidad de hacer un cableado tipo <em>bus</em> que fuera recorriendo las flores. Por razones que nunca me quedaron del todo claras, pero que eran contundentes al fin, había que cablear desde cada flor directamente al sistema central. Las decisiones acerca del tipo de comunicación, tipo de cable y tipo de conectores (si es que usaríamos conectores; en principio estaba claro que sí, porque de otra manera el montaje hubiera sido prácticamente imposible) eran de una importancia vital, pero yo todavía no podía adelantar nada.   </p>
<p style="text-align: justify;">Mi primer intento fue con el protocolo <a href="http://es.wikipedia.org/wiki/I%C2%B2C" target="_blank">I²C</a>. Estudié bastante sobre I²C, leí sobre cableados, sobre el famoso <em>límite de capacitancia de 400pf</em>, sobre las resistencias de <em>pull-up</em>, hice numerosas pruebas (para las primeras pruebas tuve que construir yo mismo 4 placas, y nunca tuve, hasta dos días antes del montaje final, 4 flores completas para realizar ensayos de comunicación), intenté hacer algunas correcciones en la biblioteca <em><a href="http://www.arduino.cc/en/Reference/Wire" target="_blank">Wire</a></em> de Arduino, la que se encarga de gestionar el I²C, dado que la misma no cuenta con un buen sistema de manejo de errores, me imprimí y estudié el largo y entreverado capítulo “2-wire interface” del manual del <em><a href="http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328P" target="_blank">Atmega328</a> </em>(el microcontrolador de las Ardweeny), pero en definitiva, nunca pude superar algunos problemas de fondo del I²C (de los cuales hablaré en otro artículo). Con Fede nos juntamos 2 ó 3 veces a trabajar en la programación y a hacer experimentos, trabajamos muchas cosas, probamos la comunicación, hicimos un “sistema operativo” que funcionaba tanto sobre I²C como sobre <a href="http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter" target="_blank">Serial</a> (yo ya tenía claro que había que tener una alternativa al I²C, el Serial era una posibilidad, aunque había que probar si era posible compartir las mismas líneas para varias flores simultáneamente; también habíamos pensado usar <em>serial sincrónico</em> [el comando <a href="http://www.arduino.cc/es/Tutorial/ShiftOut" target="_blank">shiftOut</a> de la Arduino] o directamente pines de I/O sueltos, y teníamos previsto incluso cablear directamente desde los sensores hasta el sistema central, si todo lo demás fallaba), estuvimos trabajando con los sensores (que a mí me daban un gran dolor de cabeza, muy inestables, pero al Fede parece que le respondían mejor), hicimos el famoso “timeout” con el que la flor entra en “modo automático”, y varias cosas más. Por ese entonces ya era normal acostarse a las 6 ó 7 de la mañana todos los días.   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>   </p>
<p style="text-align: justify;">Una de las ideas de Fede que se mantuvo hasta el diseño final, fue la de usar doble fuente de alimentación: una fuente para los motores y otra distinta para las Ardweeny, intentando de esta manera reducir la interferencia producida por los motores, que afectaba seriamente la comunicación y provocaba errores de medida en el sensor. Por mi parte, yo me preocupé por la posibilidad de programar remotamente las flores, dado que el <a href="http://es.wikipedia.org/wiki/Firmware" target="_blank">firmware</a> (o el software “slave” como lo llamábamos) todavía no estaba pronto, y teníamos claro que era muy probable que no estuviera pronto hasta el dia mismo de la inauguración, como así tampoco lo estaría el “master” (o sea el que corría en la Arduino Mega). Para programar remotamente las flores, yo había incluido una línea de <em>Reset</em> entre los cables que llegarían a las Ardweeny, pero comprobé que esto provocaba el reinicio involuntario de las placas. (15 metros de cable no son una cosa trivial, eso lo tenía claro desde el comienzo, pero nunca había tenido la oportunidad de probar en la práctica una cosa así, y finalmente tampoco la tuve: hubo que quedarse con la primer solución que funcionó, sin sacarse la duda de si existían soluciones mejores). Por suerte encontré, finalmente, una forma de programar las flores a la distancia sin usar el Reset: era un poco complicada, pero era segura. (De hecho, la seguimos usando hasta hoy y nunca falló.)   </p>
<p style="text-align: justify;">A todo esto, había que llegar a un diseño definitivo en cuanto a cables y conectores, para poder ir comprando los materiales y armando de una vez las famosas placas. La compra de materiales quedaba casi siempre a cargo de Marcelo, a quien más de una vez le entregaron mal la mercadería en Eneka, lo que provocaba también algunos retrasos. Al final, una de las últimas compras la hice yo, quedando en manos de Marcelo el tema del cable. El diseño final en cuanto a cable y conectores fue el siguiente: a cada flor llegaría un cable telefónico con una ficha <a href="http://es.wikipedia.org/wiki/RJ-11" target="_blank">RJ11</a>, para llevar los datos, 2 líneas para Serial y 2 para I²C, y 4 cables sueltos de 0.5mm, con una ficha “blanca” de 4 polos, para llevar la alimentación, 2 líneas de <em>masa</em>, una de +12V para el motor y otra de +9V para la Ardweeny (a través del regulador de voltaje interno).   </p>
<div class="wp-caption aligncenter" style="width: 525px"><a href="http://www.pablogindel.com/imagenes/a07.jpg"><img src="http://www.pablogindel.com/imagenes/a07p.jpg" alt="" width="515" height="386" /></a><p class="wp-caption-text">Mecanismos extraídos de las unidades de CD/DVD</p></div>
<p style="text-align: justify;">    </p>
<h4 style="text-align: justify;">Parte 4 – Papelera de reciclaje</h4>
<p style="text-align: justify;">Yo seguía intentando resolver el tema de la comunicación (todavía estábamos lejos de llegar a la programación de la “conducta” propiamente dicha) pero ya estábamos a dos semanas de la fecha de inauguración y todavía no se había llegado a reunir los 28 sistemas mecánicos de las flores, por lo que tuve que interrumpir mis tareas y abocarme a resolver el tema de la mecánica. En ese momento, recién había llegado la segunda partida de Ardweenys (¡y la primera de L293D!! hasta ese día sólo habíamos contado con 3 puentes en “H” en total, para hacer las pruebas) por lo que Fede estaba totalmente dedicado a armar las placas. Yo literalmente me interné en lo de Juan para sacar, a como diera lugar, los 28 sistemas mecánicos. Marcelo se nos sumó, y entre los tres logramos superar ese paso, que era apenas uno de los muchos que aún nos quedaban. En esa internación en lo de Juan, de paso, se me confirmó definitivamente una cosa, y por primera vez no me quedaron dudas al respecto: la inauguración sería el 27 de julio, pasara lo que pasase, no cabía en los planes ninguna posibilidad de aplazamiento.   </p>
<p style="text-align: justify;">La conclusión de los sistemas mecánicos constituye todo un capítulo, como cada uno de los dias de estas últimas 2 semanas, en donde se fue dibujando la forma definitiva del proyecto. El primer paso fue utilizar los sistemas que eran “a gomita”. Pero aun así no llegábamos al número necesario, hizo falta utilizar también aquellos sistemas “altos”, a los cuales les cortábamos el motor, lo soldábamos a una pieza de cobre en forma de “U” y luego pegábamos esta pieza con Poxipol a la estructura, de forma tal de reducir las dimensiones del sistema, para que cupiera adentro del caño de PVC. Finalmente acoplábamos nuevamente el motor al resto del mecanismo usando alguna gomita del tamaño apropiado, sacada de alguno de los sistemas que por diversas razones quedaban descartados. Revolviendo hasta la última de las cerca de 100 unidades semidesarmadas que todavía quedaban en el estudio de Marcelo, y reciclando desde motores, hasta engranajes sueltos y gomitas, llegamos justo a los 28 mecanismos que necesitábamos. Nótese que tanto en esta etapa como en todas las siguientes, el paso fundamental, y el que más tiempo nos insumía, era el testeo de cada una de las flores. Algunas fallas que aparecieron después de instalada la planta, se debieron justamente a no haber tenido el suficiente tiempo para testear los sistemas, aunque debo decir que el poco tiempo que tuvimos, lo aprovechamos bien.   </p>
<div class="wp-caption aligncenter" style="width: 500px"><a href="http://www.pablogindel.com/imagenes/a08.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a08p.jpg" alt="" width="490" height="653" /></a><p class="wp-caption-text">El estudio de Marcelo, centro de reciclaje de las unidades de CD/DVD</p></div>
<div class="wp-caption aligncenter" style="width: 521px"><a href="http://www.pablogindel.com/imagenes/a09.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a09p.jpg" alt="" width="511" height="381" /></a><p class="wp-caption-text">Ejemplo de mecanismo adaptado, con el motor cambiado de lugar</p></div>
<h4 style="text-align: justify;">Parte 5 – Nacen 28 flores</h4>
<p style="text-align: justify;">Una vez llegados a este punto, nos dimos cuenta de que el trabajo que quedaba era aun mayor que todo el que ya habíamos hecho. El proceso de cerrar cada flor consistía en:   </p>
<ul>
<li>
<div style="text-align: justify;">desarmar los “ópticos” y montarlos en una plaquita. Los &#8220;ópticos&#8221; eran unos <em>interruptores ópticos</em> IR, que venían encapsulados con el <em>emisor</em> enfrentado al <em>receptor</em>, dejando entre ellos un espacio por el que podría pasar el riel agujereado, es decir, prácticamente lo que nosotros necesitábamos, con el único problema de que el espacio era muy angosto, entonces había que desarmar el encapsulado, extraer los componentes y soldarlos a una plaquita de <a href="http://es.wikipedia.org/wiki/Circuito_impreso">PCB</a> universal (hecha con los restos de las mismas PCB universales con las que Fede fabricaba los circuitos) a la distancia correcta.</div>
</li>
<li>
<div style="text-align: justify;">montar ese óptico en el mecanismo, pegándolo con <em>silicona</em>.</div>
</li>
<li>
<div style="text-align: justify;">dotar tanto al óptico como al motor de unos cables con un conector en la punta, para poder conectarlos en las placas. La decisión de usar conectores en lugar de soldar los cables directamente a las placas, fue mia y se respetó hasta el último momento, a pesar de que todo parecía indicar que insumía más tiempo. La razón para esto es que facilitaba el testeo: dado que cualquiera de los componentes podía fallar, era muy fácil probar un motor o un óptico en una placa que sabíamos que andaba, o probar una placa dudosa con un óptico y un motor buenos conocidos, etc. (Con respecto a los ópticos, hay un detalle curioso, y es que la luz ambiente los afectaba, introduciendo otro factor de incertidumbre en los testeos. Este fenómeno se veía notablemente reducido al iluminar con lámparas de bajo consumo, en lugar de incandescentes, hecho que asombró a Juan, pero que tiene en realidad una explicación muy simple).</div>
</li>
</ul>
<div class="wp-caption aligncenter" style="width: 538px"><a href="http://www.pablogindel.com/imagenes/a10.jpg"><img src="http://www.pablogindel.com/imagenes/a10p.jpg" alt="" width="528" height="304" /></a><p class="wp-caption-text">Interruptores ópticos desarmados y soldados en pequeñas plaquitas</p></div>
<div class="wp-caption aligncenter" style="width: 512px"><a href="http://www.pablogindel.com/imagenes/a11.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a11p.jpg" alt="" width="502" height="378" /></a><p class="wp-caption-text">Colocación del &quot;óptico&quot; sobre el riel perforado</p></div>
<ul>
<li>
<div style="text-align: justify;">pegar la placa con la Ardweeny, con silicona adentro de la flor, buscándole un lugar apropiado, sin que afectara al mecanismo, y en el que los cables pudieran salir cómodamente.</div>
</li>
<li>
<div style="text-align: justify;">Hablando de cables, éstos se conectaban con fichas a las placas, pero debían quedar colocados antes de cerrar la flor, porque el lugar donde se conectaban resultó quedar unos 15cm adentro de los caños de PVC que formaban la estructura. En consecuencia, había que preparar un juego de cables para cada flor antes de que éstas se cerrasen. La preparación del juego de cables consistía en cortar los cuatro cables de 0.5mm junto con el cable telefónico, en tiradas de 11m o 13m, ya que no se permitía que hubiera añadidos (ya se sabe que los añadidos introducen todo tipo de problemas en el cableado) y luego aproximarlos con cinta o con &#8220;sunchos&#8221; cada 15 ó 20cm. (Los cálculos que nos llevaron a estas medidas estandarizadas de 11 y 13 fueron muy confusos, un ping-pong entre Marcelo y yo, con el kilómetro y medio de cable ahí en el piso, y Juan que no soportaba más la conversación). Luego de cortar y juntar el cable, había que colocarle las fichas en las puntas, una de ellas soldada y la otra con la <em>pinza telefónica</em>.</div>
</li>
<li>
<div style="text-align: justify;">Finalmente había que alinear el caño de salida para que pasara la pieza móvil, pegar la tapa y el caño (con “cinta pato”), atar el cable con un precinto a la pared del caño (practicándole para ello dos agujeritos con un taladro), y por supuesto…</div>
</li>
<li>
<div style="text-align: justify;">…comprobar que anduviera todo bien. El testeo era una parte sumamente tediosa, pero habíamos llegado a la conclusión de que no nos lo podíamos &#8220;rifar&#8221;. Incluso una vez que adquirimos más práctica en el armado, hacíamos un “doble testeo”: uno antes de pegar la placa con silicona (“empetrolar” como decía yo) y otro al final de todo. Cada testeo consistía en: programar la placa remotamente (es decir, a través del cable; para ello usábamos mi notebook, instalado en el último metro cuadrado que quedaba disponible en la casa de Juan; con la prueba de programación remota, probábamos a su vez la comunicación Serial, que sería el sistema que a la postre terminaríamos usando en toda la planta) y luego probar el movimiento, es decir, dejar que el programa local arrancara, hiciera su propio test de la mecánica (el “pajeo” como lo llamábamos) y luego esperar que entrara en el modo automático e hiciera 4 ó 5 movimientos. Muchas veces, en este testeo saltaban problemas mecánicos que nos obligaban a volver atrás y revisar cosas como la alineación de la varilla, cambiar de gomita, hacerle “topes” a los sistemas, embadurnarlos en vaselina, etc. Cada flor era única, completamente distinta a las otras y tenía sus propias virtudes y defectos.</div>
</li>
</ul>
<p style="text-align: justify;">Este proceso no podía hacerse esperar, porque una vez finalizado, Juan y su equipo debían practicarle a las flores una decoración, que llevaría también unos días, y ya estábamos muy próximos a la fecha límite. Una semana antes de la inauguración debían estar todas las flores absolutamente prontas.   </p>
<div class="wp-caption aligncenter" style="width: 532px"><a href="http://www.pablogindel.com/imagenes/a12.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a12p.jpg" alt="" width="522" height="392" /></a><p class="wp-caption-text">Presentación del circuito en el interior de la flor</p></div>
<div class="wp-caption aligncenter" style="width: 582px"><a href="http://www.pablogindel.com/imagenes/a13.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a13p.jpg" alt="" width="572" height="335" /></a><p class="wp-caption-text">Sensores de distancia ultrasónicos Maxbotix LV-EZ1, usados en el proyecto.</p></div>
<p>El armado final de las flores insumió 4 días consecutivos, distribuidos de la siguiente manera:   </p>
<ul>
<li>
<div style="text-align: justify;">Primer dia. Integrantes: Juan y yo. Resultado: 4 flores. Hora de finalización: muy tarde. Ese día lo que hicimos fue armar 4 flores con los 4 cables que yo usaba en mi casa para realizar las pruebas, que ya estaban prontos y probados. Después de eso, tuve que traerme nuevamente 4 flores, esperar que Fede tuviera prontas 4 nuevas placas, armar 4 nuevos cables, y todo eso para hacer pruebas durante unas pocas horas, ya que al otro dia tuve que entregar todo nuevamente.</div>
</li>
<li>
<div style="text-align: justify;">Segundo día. Integrantes: Juan, Marcelo y yo. Resultado: 6 flores. Hora de finalización: más tarde todavía. Ese dia instituimos la técnica “oficial” de testeo, por lo que debimos re-testear las 4 flores del dia anterior. En total íbamos 10 flores, no habíamos alcanzado el objetivo parcial propuesto originalmente, que era tener 14 flores por día.</div>
</li>
<li>
<div style="text-align: justify;">Tercer día. Integrantes: Marcelo, Fede y yo. Resultado: no me acuerdo bien, pero creo que entre 8 y 11 flores. Hora de finalización: 8 a.m. Ese día pasó de todo, empezaron a fallar mecanismos, ópticos, placas, todo. En un momento la vimos realmente negra. Al final empezaron a salir las flores, pero seguíamos lejos del final. Me acuerdo que no teníamos casi estaño para soldar los conectores, trabajábamos con tramitos de hasta 1cm. En esta jornada fue que empezamos también a armar las 8 flores que llevaban sensor, en las cuales el testeo abarcaba una etapa más: probar que la flor enviara correctamente los datos del sensor, a través del Serial.</div>
</li>
<li>
<div style="text-align: justify;">Cuarto día. Integrantes: Marcelo y yo. Resultado: todas las flores que faltaban, menos una. Hora de finalización: 5 a.m. Llegamos hasta la penúltima flor, <em>requechando</em> componentes electrónicos como antes lo habíamos hecho con las piezas mecánicas. Algunas placas que había construido Fede fallaron, entonces fueron desarmadas, y vueltas a combinar entre sí, y así logramos llegar hasta la flor número 27. Los ópticos que fallaron fueron sustituidos por unos nuevos comprados por Marcelo ese mismo día en Rondeau, que eran distintos a los originales, un poco más difíciles de instalar, pero igual funcionaron.</div>
</li>
</ul>
<p style="text-align: justify;">La última flor la armé yo acá en mi casa, requechando lo &#8220;inrequechable&#8221;, utilizando una Ardweeny adicional que Marcelo se había traido para él. (en una de las pruebas con Fede, volamos un microcontrolador, aplicándole por error 9V en lugar de 5V). Aproveché para quedarme con esa flor un par de dias más, y hacer las últimas pruebas antes de pasar a trabajar directamente en el CCE.   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>   </p>
<p style="text-align: justify;">    </p>
<h4 style="text-align: justify;">Parte 6 – En el CCE</h4>
<p style="text-align: justify;">En los dias siguientes, mientras Juan y su equipo se dedicaban a armar la planta en el propio CCE (luego de transportar con sumo cuidado las 28 flores y el resto de las partes hasta allí), yo me dediqué a avanzar lo más posible con la programación. La primer medida que tomé fue descartar completamente el I²C. Usando Serial (a 57.6Kb/s) ya habíamos probado con Fede que se podía conectar el mismo <em>TX</em> del Master con múltiples <em>RX</em> de distintas flores, simultáneamente (cada flor tenía un <em>ID</em> distinto), pero mi intento de unir los TX de varias flores hacia un mismo RX del Master había fracasado, si bien sabía que esto era básicamente posible, porque es precisamente lo que hicimos en el <a href="http://www.fing.edu.uy/inco/proyectos/butia/" target="_blank">Proyecto Butiá</a> con los motores <a href="http://www.pablogindel.com/2010/01/biblioteca-de-arduino-para-ax-12/" target="_blank">AX-12</a>. No había tiempo para hacer más pruebas, de modo que la solución adoptada fue usar dos Arduinos Mega: cada una de ellas tiene 4 puertos Seriales, o sea que tendríamos 8 receptores, exclusivamente para las flores con sensor, y también 8 emisores, para compartir entre las 28 flores, lo que nos daba la seguridad absoluta de que iba a funcionar. Las dos Arduinos Mega las teníamos, porque Marcelo también se había traido una para él.   </p>
<p style="text-align: justify;">Bueno, en esos días le di bastante forma al programa “Slave”, haciendo un protocolo de comunicación que soportaba varios comandos, permitía controlar la posición, la fuerza del motor (usando <a href="http://www.arduino.cc/en/Tutorial/PWM" target="_blank">PWM</a>), la frecuencia y amplitud de los “latidos”, enfín, una sobrada cantidad de sofisticaciones que finalmente no llegaron a usarse el día de la inauguración. El Master a su vez, estaba programado en forma totalmente <a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos" target="_blank">orientada a objetos </a>(las Arduino soportan <a href="http://es.wikipedia.org/wiki/C%2B%2B" target="_blank">C++</a>), muy prolijo, y constaba de diversas “conductas” que tampoco se utilizaron mayormente.   </p>
<p style="text-align: justify;">Con todo esto pronto, me fui al CCE a intentar realizar pruebas con las ramas que quedaran &#8220;boyando&#8221; por ahí. En el CCE, el ambiente de trabajo era sumamente cómodo, mucho mejor de lo que yo esperaba (había calefacción, por ejemplo). El primer dia, las cosas no me salieron del todo bien, pero luego llegó el Fede y pudimos encaminar nuevamente el trabajo. Llegamos a hacer una prueba por primera vez con 2 ramas simultáneas (7 flores) y anduvo todo bien, por lo que ya respirábamos una gran tranquilidad.   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>   </p>
<div class="wp-caption aligncenter" style="width: 394px"><a href="http://www.pablogindel.com/imagenes/a14.jpg"><img class=" " src="http://www.pablogindel.com/imagenes/a14p.jpg" alt="" width="384" height="416" /></a><p class="wp-caption-text">Conexiones usadas en la prueba con 7 flores</p></div>
<div class="wp-caption aligncenter" style="width: 522px"><a href="http://www.pablogindel.com/imagenes/a15.jpg"><img src="http://www.pablogindel.com/imagenes/a15p.jpg" alt="" width="512" height="384" /></a><p class="wp-caption-text">Espacio central del CCE, dos dias antes de &quot;colgar&quot; la planta</p></div>
<p style="text-align: justify;">El siguiente paso era esperar que la planta estuviera colgada, para soldar, de alguna manera que no estaba clara todavía, las 168 puntas de los cables a “algo”, y de allí a las Arduino Mega. El Fede ya no estaría para ese entonces (tenía que viajar a Bs. As. a un curso; la noche anterior habíamos estado reprogramando cada flor con el ID correcto y rotulando los cables, para facilitar la tarea ulterior) así que esta última etapa la resolveríamos entre Marcelo y yo. El domingo a eso de las 20hs llegué al CCE y ví aquello: era espectacular. No participé de la colgada, pero Juan y la gente que estuvo, aseguran que fue, por sí sola, una cosa digna de un artículo tan extenso como el presente. Sólo vi el resultado final, y la verdad es que impresionaba por lo aparatoso, siendo a su vez de una gran belleza.   </p>
<p style="text-align: justify;">Marcelo había comprado los últimos materiales el sábado de mañana, y otra vez le habían entregado mal la mercadería, pero el lunes finalmente teníamos todas las cosas necesarias: 28 llavecitas dobles (que servirían para programar fácilmente las flores, sin necesidad de conectar y desconectar cables como veníamos haciendo hasta el momento), 2 PCB universales grandes, las 2 fuentes de alimentación (una de ellas era una fuente de PC) y una serie de conectores que finalmente no usamos, esta vez sí soldamos todos los cables directamente a la placa. Con todo el cablerío soldado, empezamos a probar rama por rama la conducta de las flores y los sensores. Era una tarea cansadora, porque había que subir y bajar repetidamente los dos pisos que separaban el sistema de control, de las puntas de algunas ramas. Para realizar estas pruebas, yo programé en el Master una conducta muy simple, que sustituía a todas las conductas sofisticadas en las que había estado trabajando los días anteriores: si el sensor superaba cierto umbral, todas las flores de esa rama se abrirían al máximo, separadas por cierto <em>delay, </em>y de lo contrario se cerrarían al máximo también. Con ese comportamiento inequívoco, establecimos los umbrales de los 8 sensores, los movimos cuando fue posible, para que no quedaran apuntando en direcciones erróneas, intentamos “revivir” un par de flores que sucumbieron al <em>stress</em> de la colgada, y cuando terminamos de hacer todo esto, eran las 5 a.m., y carentes ya de energía, decidimos dejar así la instalación, con esa misma conducta básica.   </p>
<p style="text-align: justify;">No hubo sorpresas en cuanto al funcionamiento del sistema en general, todas las ramas andaban, cada una con su sensor, todas las flores respondían excepto las dos accidentadas, y una tercera que se trancaba ocasionalmente. Ya estábamos ultimando los detalles para la inauguración del dia siguiente (Marcelo se encargaba entretanto de acomodar los “tachos” alquilados especialmente para iluminar la obra), cuando en un momento, mientras le estaba explicando a Marcelo cómo encender el sistema, ocurrió algo que nos dejó paralizados.   </p>
<p style="text-align: justify;">La fuente de alimentación que usábamos para las dos Arduino Mega y las 28 Ardweenys de las flores, era una fuente de esas que entregan varios voltajes, y cuya punta se puede intercambiar e invertir de polaridad. Nosotros la usábamos en 9V, 4A, con ella entrábamos a una Arduino, y desde allí sacábamos alimentación hacia las 28 flores. La Arduino tiene un diodo protector contra polaridades inversas a la entrada, pero como Marcelo había notado que éste calentaba mucho, yo decidí “puentearlo”; en efecto, el diodo, si bien “aguantaba”, no estaba preparado para alimentar 28 placas a la vez. Ocurrió entonces que al sacar el <em>plug</em> de alimentación por última vez, éste se separó del cable, y al volver a ponerlo, si bien verifiqué la polaridad, algo me traicionó y lo conecté al revés.   </p>
<p style="text-align: justify;">Cuando le fui a mostrar a Marcelo “¿ves? Conectás este plug acá…” observé que al conectar el plug, los leds de “power” de las Arduino no se encendieron. Inmediatamente retiré el plug, y quedé inmovilizado por unos 10 segundos, temiendo lo peor. No sé si Marcelo realmente entendía el alcance del riesgo que estábamos corriendo, pero él también estaba inmovilizado. Verifiqué la polaridad de la conexión, y efectivamente, estaba al revés. A punto de ponerme a llorar, no me animaba a enchufar el plug nuevamente. Sabía que las Arduino iban a encender, que los leds se iban a iluminar, pero no podía asegurar nada respecto a la situación adentro de las flores. Si las Ardweeny se habían quemado, no había “plan B”, no había nada, estábamos perdidos para siempre.   </p>
<p style="text-align: justify;">Afortunadamente no pasó nada, fue sólo un gran susto, probamos una por una las flores, todas seguían funcionando, fijamos ese plug con más o menos un metro de cinta pato, nos reímos bastante, imaginándonos el desastre, pero quedó claro que, por esa noche, no daba para hacer ninguna prueba más: así quedó hasta el día siguiente en la inauguración.    </p>
<p style="text-align: right;">P. G., 29/7/10 (corrección: T. Laurenzo.)   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>   </p>
<p style="text-align: justify;"><p><a href="http://www.pablogindel.com/2010/08/aeroponica/"><em>Pinche aquí para ver el vídeo</em></a></p>   </p>
<h4 style="text-align: center;"><a title="Fotos de Aeropónica" href="http://www.flickr.com/photos/pablogindel/sets/72157624777288924/" target="_blank">Más fotos de Aeropónica</a></h4>
<p style="text-align: center;">  </p>
<p style="text-align: justify;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2010/08/aeroponica/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Proyecto Butiá</title>
		<link>http://www.pablogindel.com/2010/03/proyecto-butia/</link>
		<comments>http://www.pablogindel.com/2010/03/proyecto-butia/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 03:12:25 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[anep]]></category>
		<category><![CDATA[ANII]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[AX-12]]></category>
		<category><![CDATA[bioloid]]></category>
		<category><![CDATA[butiá]]></category>
		<category><![CDATA[codicen]]></category>
		<category><![CDATA[Dynamixel]]></category>
		<category><![CDATA[fing]]></category>
		<category><![CDATA[INCO]]></category>
		<category><![CDATA[mina]]></category>
		<category><![CDATA[plan ceibal]]></category>
		<category><![CDATA[robótica]]></category>
		<category><![CDATA[robótica educativa]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[sumo.uy]]></category>
		<category><![CDATA[XO]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=640</guid>
		<description><![CDATA[El Proyecto Butiá es un proyecto impulsado por el grupo mina (Network Management &#124; Artificial Intelligence) del Instituto de Computación de la Facultad de Ingeniería (UdelaR) y financiado por la ANII, que se desarrolla en coordinación con la Inspección de Informática de Educación Secundaria, ANEP-CODICEN. El objetivo de este proyecto es crear una plataforma simple y económica, que permita a alumnos de liceos públicos, [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="TEXT-ALIGN: justify">El <a href="http://www.fing.edu.uy/inco/proyectos/butia/" target="_blank">Proyecto Butiá</a> es un proyecto impulsado por el grupo <strong><a href="http://www.fing.edu.uy/inco/grupos/mina/" target="_blank">mina</a></strong> (Network Management | Artificial Intelligence) del Instituto de Computación de la Facultad de Ingeniería (UdelaR) y financiado por la <a href="http://www.anii.org.uy/web/" target="_blank">ANII</a>, que se desarrolla en coordinación con la Inspección de Informática de Educación Secundaria, ANEP-CODICEN.<span id="more-640"></span></div>
<p style="TEXT-ALIGN: justify">El objetivo de este proyecto es crear una plataforma simple y económica, que permita a alumnos de liceos públicos, en coordinación con docentes e inspectores de Enseñanza Secundaria, interiorizarse con la programación del comportamiento de robots; de esta manera, se pretende transmitir a los profesores, estudiantes, y a sus familias, conocimientos básicos sobre las nuevas tecnologías y sus aplicaciones.</p>
<p style="TEXT-ALIGN: justify">La propuesta aspira a incorporar estos sistemas robóticos de bajo costo en todos los liceos públicos con bachillerato tecnológico del país, organizando charlas y actividades extra-curriculares, en donde se explique el manejo, las características y las posibilidades del sistema.</p>
<div class="wp-caption alignright" style="width: 290px"><a href="http://www.pablogindel.com/imagenes/butia_fotog.jpg"><img class="        " title="Plataforma de acrílico del Butiá-Bot" src="http://www.pablogindel.com/imagenes/butia_foto.jpg" alt="Plataforma de acrílico del Butiá-Bot, con los 2 motores AX-12+" width="280" height="210" /></a><p class="wp-caption-text">Plataforma de acrílico con los 2 motores AX-12+</p></div>
<p style="TEXT-ALIGN: justify"><strong>El Butiá-Bot</strong></p>
<p style="TEXT-ALIGN: justify">En octubre del año pasado me enteré de la existencia de este proyecto, y tuve la suerte de que me dejaran participar en él. Desde entonces tengo el honor de trabajar junto a Gonzalo Tejera, Santiago Margni, Andrés Aguirre, Jorge Visca y Federico Andrade, en todo lo que es el hardware y software del robot (hay más gente trabajando en otras áreas). En estos meses el avance ha sido paulatino; ello se debe a que cada decisión que se toma es analizada y discutida cuidadosamente.</p>
<p style="TEXT-ALIGN: justify">A diferencia de los robots que yo había venido desarrollando por mi cuenta, los cuales funcionan integramente con un único microcontrolador, el Butiá-Bot consta de 2 niveles de procesamiento: el &#8220;bajo nivel&#8221;, gestionado por un microcontrolador, que se encarga del manejo básico de sensores y actuadores, y por encima de éste, el &#8220;alto nivel&#8221;, es decir, una computadora que se encarga de la conducta propiamente dicha del robot. Esto permite su programación en lenguajes de alto nivel de abstracción, así como, eventualmente, el procesamiento avanzado de imágenes y sonido, lo que a su vez nos posibilitaría el uso de cámaras web, micrófonos, y otros periféricos sofisticados. </p>
<p style="TEXT-ALIGN: justify">El sistema estaría diseñado de tal modo que permita usar como soporte hardware del &#8220;alto nivel&#8221; tanto una SBC (single-board computer), como cualquier dispositivo móvil, celular, netbook, incluso un router, capaz de correr alguna distribución de <strong>Linux</strong>, pero apuntando principalmente a las computadoras del <a href="http://www.ceibal.edu.uy/" target="_blank">Plan Ceibal</a>, las <a href="http://es.wikipedia.org/wiki/OLPC" target="_blank">XO</a>.</p>
<p style="TEXT-ALIGN: justify">En materia de hardware de bajo nivel, es decir el &#8220;microcontrolador&#8221;, teníamos que decidir entre 2 opciones: la ya conocida tarjeta <a href="http://www.arduino.cc/" target="_blank">Arduino</a>, y el USB4ALL, un interfaz USB genérico basado en <a href="http://es.wikipedia.org/wiki/Microcontrolador_PIC" target="_blank">PIC</a>, desarrollado en el propio seno del <strong>mina</strong>. Finalmente se optó por comenzar el desarrollo usando Arduino, dada la facilidad que nos ofrecía la <a href="http://www.pablogindel.com/2010/01/biblioteca-de-arduino-para-ax-12/" target="_blank">biblioteca</a> para controlar motores <a href="http://www.robotis.com/zbxe/dynamixel_en" target="_blank">AX-12+</a>, pero sin descartar una futura implementación usando USB4ALL.</p>
<p style="TEXT-ALIGN: justify">El software de &#8220;alto nivel&#8221;, por su parte, consta de 2 &#8220;capas&#8221;: una capa &#8220;inferior&#8221; que se comunica con el &#8220;bajo nivel&#8221;, y la capa &#8220;superior&#8221; implementada en el lenguaje de programación propiamente dicho. Con respecto a esta capa &#8220;inferior&#8221;, se decidió finalmente usar el LuBot (<a href="http://www.lua.org/" target="_blank">Lua</a> for roBots), otro poyecto del <strong>mina</strong> emparentado con USB4ALL, por lo tanto el protocolo de comunicación que usamos entre esta capa y el <em>firmware </em>(el software de &#8220;bajo nivel&#8221; que corre en el microcontrolador), terminó siendo una versión del protocolo USB4ALL pero &#8220;encapsulado&#8221; para viajar por <a href="http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter" target="_blank">serial</a> (una diferencia entre los micros <a href="http://es.wikipedia.org/wiki/AVR" target="_blank">AVR</a> usados por Arduino y el <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf" target="_blank">PIC18F4550</a> usado en USB4ALL, es que este último tiene soporte USB nativo, mientras que las Arduino utilizan un chip <a href="http://www.ftdichip.com/" target="_blank">FTDI</a> que emula un puerto serial sobre USB).</p>
<p style="TEXT-ALIGN: justify">Físicamente hablando, el robot consiste en un &#8220;carrito&#8221;, &#8220;chata&#8221; o &#8220;tortuga&#8221;, como quieran llamarle, es decir una plataforma con dos motores y dos &#8220;ruedas locas&#8221;, una de ellas amortiguada, capaz de sostener una computadora XO, además de sus propios componentes, entre ellos el pack de 8 baterías recargables de <a href="http://es.wikipedia.org/wiki/Bater%C3%ADa_de_n%C3%ADquel_e_hidruro_met%C3%A1lico" target="_blank">Ni-MH</a>. Respecto a los sensores, habrá un set de ellos y el usuario podrá elegir qué sensores quiere conectar, cuántos de ellos y la disposición espacial de los mismos. Entre los sensores que vendrán en el kit, estarán los clásicos <a href="http://www.superrobotica.com/download/sharp/gp2d12.pdf" target="_blank">Sharp GP2D12</a> (medidor de distancia infrarrojo) pero en su variante <a href="http://atc.ugr.es/~afdiaz/fich/bus_i2c.pdf" target="_blank">I2C</a>, más algunos medidores de inclinación, de luz, de tacto, de temperatura, etc.</p>
<p style="TEXT-ALIGN: justify">Les dejo ahora un par de videos del Butiá-Bot en una fase precaria (primeras pruebas hechas a mediados de febrero, con una rueda de menos) y la presentación del proyecto a cargo de Santiago Margni. No olviden visitar la página del Butiá <a href="http://www.fing.edu.uy/inco/proyectos/butia/">http://www.fing.edu.uy/inco/proyectos/butia/</a>, mantenida por Federico Andrade, quien es además el que subió los videos a YouTube.</p>
<p style="TEXT-ALIGN: center"> </p>
<p style="TEXT-ALIGN: center"><p><a href="http://www.pablogindel.com/2010/03/proyecto-butia/"><em>Pinche aquí para ver el vídeo</em></a></p> </p>
<p style="TEXT-ALIGN: center"><p><a href="http://www.pablogindel.com/2010/03/proyecto-butia/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: center"> </p>
<p style="TEXT-ALIGN: center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=papi2009-v0-5-100317143220-phpapp01&amp;stripped_title=sistema-robtico-constructivo-de-bajo-costo-para-uso-educativo" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=papi2009-v0-5-100317143220-phpapp01&amp;stripped_title=sistema-robtico-constructivo-de-bajo-costo-para-uso-educativo" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="TEXT-ALIGN: center"> </p>
<p style="TEXT-ALIGN: center"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2010/03/proyecto-butia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XY Motion Control</title>
		<link>http://www.pablogindel.com/2010/03/xy-motion-control/</link>
		<comments>http://www.pablogindel.com/2010/03/xy-motion-control/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 22:50:56 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[arai moleri]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[AX-12]]></category>
		<category><![CDATA[dynamixel ax-12]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[pan & tilt]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robotic]]></category>
		<category><![CDATA[robotic cam]]></category>
		<category><![CDATA[stop motion]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[tatitos]]></category>
		<category><![CDATA[uruguay]]></category>
		<category><![CDATA[walter tournier]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=621</guid>
		<description><![CDATA[&#8220;XY Motion Control&#8221; fue el proyecto de grado de la Lic. en diseño industrial Araí Moleri, en el cual yo intervine desarrollando el sistema de control de los servos AX-12 con Arduino y la aplicación Java con la que se maneja desde el PC. El proyecto consiste en un soporte robótico para cámaras, que realiza los movimientos de PAN y TILT y es capaz [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">&#8220;XY Motion Control&#8221; fue el proyecto de grado de la Lic. en diseño industrial Araí Moleri, en el cual yo intervine desarrollando el sistema de control de los servos AX-12 con Arduino y la aplicación Java con la que se maneja desde el PC.<span id="more-621"></span></p>
<p style="text-align: justify;">El proyecto consiste en un soporte robótico para cámaras, que realiza los movimientos de PAN y TILT y es capaz de moverse en incrementos de 0,3º, para usar en películas de stop-motion. También cuenta con un sistema de movimientos continuos automatizados, y están previstas varias mejoras como ser: captura de movimientos, modo autónomo y sincronización con el programa &#8220;Dragon Stop Motion&#8221;.</p>
<p style="text-align: justify;">A continuación les dejo los videos oficiales del producto y una documentación de la parte informática del mismo. Las animaciones 3D y los videos fueron hechos por Juan Pablo Colasso. En el segundo video puede verse el aparato funcionando, y al maestro <a href="http://www.tournieranimation.com/" target="_blank">Walter Tournier</a> (el creador de &#8220;Los Tatitos&#8221;) haciendo una animación con el mismo.</p>
<p style="text-align: justify;"> </p>
<p><a href="http://www.pablogindel.com/2010/03/xy-motion-control/"><em>Pinche aquí para ver el vídeo</em></a></p> <p><a href="http://www.pablogindel.com/2010/03/xy-motion-control/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=xymotioncontrol-100306095606-phpapp01&amp;stripped_title=xy-motion-control" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=xymotioncontrol-100306095606-phpapp01&amp;stripped_title=xy-motion-control" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2010/03/xy-motion-control/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Palmer Neural Networks</title>
		<link>http://www.pablogindel.com/2009/12/palmer-neural-networks/</link>
		<comments>http://www.pablogindel.com/2009/12/palmer-neural-networks/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 02:17:44 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[Artículos técnicos, etc.]]></category>
		<category><![CDATA[Audio e Informática]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[algoritmo de entrenamiento]]></category>
		<category><![CDATA[ANN]]></category>
		<category><![CDATA[artificial neural network]]></category>
		<category><![CDATA[backpropagation]]></category>
		<category><![CDATA[bias]]></category>
		<category><![CDATA[feedforward]]></category>
		<category><![CDATA[gradiente descendente]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mínimo local]]></category>
		<category><![CDATA[montevideo]]></category>
		<category><![CDATA[neural network]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[perceptron]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[red neuronal]]></category>
		<category><![CDATA[redes neuronales]]></category>
		<category><![CDATA[sigmoide]]></category>
		<category><![CDATA[uruguay]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=234</guid>
		<description><![CDATA[Como decíamos en artículos anteriores, existen -en principio- dos caminos para lograr que un programa se comporte de determinada manera en función de ciertas variables de entrada: elaborando una tabla con todas las posibles combinaciones de esas variables y sus respectivas acciones asociadas, o econtrando algún tipo de modelo matemático, una fórmula o un algoritmo [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify">Como decíamos en artículos anteriores, existen -en principio- dos caminos para lograr que un programa se comporte de determinada manera en función de ciertas variables de entrada: elaborando una <strong>tabla</strong> con todas las posibles combinaciones de esas variables y sus respectivas acciones asociadas, o econtrando algún tipo de modelo matemático, una fórmula o un <strong>algoritmo</strong> que aplicado a dichas variables nos dé el resultado buscado en cada caso.</p>
<p style="TEXT-ALIGN: justify"><span id="more-234"></span>Cuando la cantidad de combinaciones de variables de entrada es demasiado grande como para elaborar una tabla, y la función es demasiado compleja como para encontrar un algoritmo, las <strong>Redes Neuronales Artificiales </strong>constituyen una manera distinta de abordar el problema, sumamente efectiva aunque no perfecta, como ya veremos.</p>
<p style="TEXT-ALIGN: justify">Podríamos considerar a la RNA como una especie de &#8220;algoritmo universal&#8221;, capaz de responder de muchísimas maneras distintas, y al que podemos &#8220;enseñar&#8221; el comportamiento deseado &#8220;mostrándole&#8221; ejemplos del mismo (una tabla parcial), para luego esperar que se comporte de la manera buscada frente a todos los casos posibles. Precisamente en esto radican sus principales virtud y defecto: el porcentaje de <em>aciertos</em> puede ser increíblemente grande (teniendo en cuenta lo general que es el método) pero no tenemos ninguna garantía de la <em>exactitud</em> del resultado. La analogía con un &#8220;cerebro&#8221; animal surge inmediatamente.</p>
<p style="TEXT-ALIGN: justify">Existen en internet numerosos artículos introductorios y avanzados, que explican claramente el funcionamiento de una RNA, mucho mejor que cualquier cosa que yo pudiera escribir aquí al respecto (empezando por <a href="http://es.wikipedia.org/wiki/Red_neuronal_artificial" target="_blank">este</a>). Mi aporte, en cambio, consistirá en presentar un programa mediante el cual podemos tener una aproximación práctica a la materia, experimentar con redes neuronales, introducir ejemplos reales, lidiar con el entrenamiento y visualizar el proceso de aprendizaje. <strong>PNN</strong> nos permite &#8220;sentir&#8221; las redes neuronales artificiales en nuestra propia experiencia, y también resolver algún caso práctico, que fue lo que originalmente me motivó a desarrollarlo.</p>
<p style="TEXT-ALIGN: justify"><strong>Características técnicas del programa.</strong></p>
<p style="TEXT-ALIGN: justify">Este programa  se basa en el artículo de Steven W. Smith sobre redes neuronales artificiales, en el capítulo 26 de su excelente <a href="http://www.dspguide.com/ch26.htm" target="_blank">The Scientist and Engineer&#8217;s Guide to DSP</a>. La red presentada vendría a ser un <em>perceptrón multicapa</em>, con una <em>capa de entrada</em>, una <em>capa oculta</em> y una <em>capa de salida</em>, cada una de ellas interconectada totalmente con la siguiente, con neuronas de <em>bias</em> en las dos primeras capas  y con función de transferencia <em>sigmoide</em> en cada neurona.  El algoritmo de entrenamiento es el que propone dicho autor, al que llama <em>steepest descent</em>, pero que también podemos encontrar bajo el nombre de <em>gradient descent</em> o simplemente <strong>backpropagation</strong>.</p>
<p style="TEXT-ALIGN: justify"><strong>Instrucciones</strong></p>
<p style="TEXT-ALIGN: justify">Para invocar el applet, hagan click <a title="Palmer Neural Networks" href="http://www.pablogindel.com/applets/PNN.html" target="_blank"><strong>aquí</strong></a>.</p>
<p style="TEXT-ALIGN: justify">Al hacerlo, aparecerán 2 ventanas: la ventana de <em>visualización</em>, hecha en <a href="http://processing.org/" target="_blank">Processing</a>, y el <em>panel de control</em> flotante, hecho en <a href="http://www.java.com/" target="_blank">Java</a> (que a veces queda oculto tras aquella).</p>
<p style="TEXT-ALIGN: justify">Lo primero que debemos hacer es <em>dimensionar</em> nuestra red. Escribimos el número de neuronas o <em>nodos</em> de cada capa, y apretamos el botón &#8220;Dimensionar&#8221;. Al hacerlo aparecerá en la ventana de visualización un modelo 3D en el que las neuronas de cada capa están representadas por esferas de distinto color (y las de <em>bias</em>, de un tamaño ligeramente mayor y blancas [ya nos ocuparemos de las opciones de esa visualización, antes de eso, sigamos con la parte "científica"]).</p>
<p style="TEXT-ALIGN: justify">Al apretar el botón &#8220;Aleatorizar pesos&#8221; aparecen las conexiones entre las neuronas; las verdes son positivas y las azules negativas, y su diámetro es proporcional al <em>peso</em> de la conexión correspondiente.</p>
<p style="TEXT-ALIGN: justify">A continuación deberíamos ir a &#8220;Archivo&#8221; y seleccionar &#8220;Cargar set de ejemplos&#8221;, pero lamentablemente esta opción no está habilitada en las <em>applets</em> de internet, por razones de seguridad. En su lugar podemos ir a &#8220;Ayuda&#8221; y seleccionar &#8220;Demo&#8221;. Esto tendrá el efecto de dimensionar una red con 7 entradas y 3 salidas, y cargar 3 sets de ejemplos.</p>
<p style="TEXT-ALIGN: justify">Para simplificar las cosas, todos los ejemplos están &#8220;asociados&#8221; a una salida; esto quiere decir que se asume que producen &#8220;<strong>1</strong>&#8221; en dicha salida y &#8220;<strong>0</strong>&#8221; en todas las demás. En la lista podemos ver a qué salida está asignado cada ejemplo. Los ejemplos se pueden sacar, seleccionándolos y apretando la tecla &#8220;suprimir&#8221;. Si apretamos &#8220;Enter&#8221; sobre un ejemplo, éste se carga arriba, y podemos testear el comportamiento de la red apretando &#8220;Procesar salida&#8221;. También es posible ingresar valores manualmente en ese campo y probarlos, y una vez ingresados se pueden agregar a la lista con el botón &#8220;Agregar ejemplo&#8221;. Los valores en las entradas pueden ser <em>enteros</em> de cualquier tamaño; los pesos son números de <em>coma flotante</em>, y los valores de salida son de coma flotante entre <strong>0</strong> y <strong>1</strong>.</p>
<p style="TEXT-ALIGN: justify">Si ahora probamos cualquier grupo de valores de entrada, el resultado en las tres salidas va a ser siempre aproximadamente 0,5. Eso se debe a que la red no está <em>entrenada</em> aun. Para entrenarla debemos apretar el botón &#8220;Iniciar aprendizaje&#8221;. Al hacerlo, los pesos se irán modificando, y un número grande a la derecha nos irá indicando la <em>suma del error</em> que producen todos los ejemplos al ser procesados en la red actual. El objetivo del &#8220;juego&#8221; (si usted decide aceptarlo) consiste en dejar ese valor lo más bajo posible. El proceso de optimización se repite 1000 veces cada vez que apretamos &#8220;Iniciar aprendizaje&#8221;, pero habitualmente esto no es suficiente; la cantidad de repeticiones se puede subir a 10000 con el deslizador de abajo a la izquierda. En todo momento podemos ir probando el comportamiento de la red, entre aprendizaje y aprendizaje.</p>
<p style="TEXT-ALIGN: justify">Hasta aquí la operación general del programa. Veamos ahora los detalles.</p>
<p style="TEXT-ALIGN: justify"><strong>Redimensionar la red</strong></p>
<p style="TEXT-ALIGN: justify">Al cambiar el número de neuronas en las capas de entrada o de salida, se pierden todos los ejemplos y el aprendizaje realizado. No así al redimensionar la <strong>capa oculta</strong>. De hecho, es un buen recurso, si notamos que nuestra red tiene &#8220;dificultades para aprender&#8221;, dotarla de más &#8220;capacidad&#8221; aumentando el número de neuronas de la capa oculta.</p>
<p style="TEXT-ALIGN: justify"><strong>Factor de aprendizaje</strong></p>
<p style="TEXT-ALIGN: justify">Al aumentar este número, hacemos que el aprendizaje sea más rápido, pero también inestable; en ocasiones el error puede quedar oscilando o incluso aumentar. Al disminuir el valor, el aprendizaje se vuelve lento pero seguro.</p>
<p style="TEXT-ALIGN: justify"><strong>Aprendizaje extra</strong></p>
<p style="TEXT-ALIGN: justify">La idea de este parámetro está sacada del antes citado libro de S. W. Smith, y consiste darle más importancia, en el aprendizaje, a los ejemplos &#8220;positivos&#8221; o a los &#8220;negativos&#8221; (un ejemplo destinado a la salida <strong>2</strong> es un ejemplo &#8220;negativo&#8221; para la salida <strong>1</strong>). Sinceramente yo no encontré ningún resultado con esto, lo voy a revisar para la próxima versión.</p>
<p style="TEXT-ALIGN: justify"><strong>Menú Archivo</strong></p>
<p style="TEXT-ALIGN: justify">Todas las opciones del menú Archivo están desactivadas, algunas por razones de seguridad del Java, otras porque no están implementadas aun. La más importante sería la de salvar los pesos una vez concluido el entrenamiento. También podríamos volverlos a cargar para usarlos como punto de partida de una siguiente sesión de aprendizaje.</p>
<p style="TEXT-ALIGN: justify"><strong>Menú Configuración</strong></p>
<p style="TEXT-ALIGN: justify">El &#8220;Modo Automático&#8221; va a estar implementado en la próxima versión. Consistiría en que el propio programa tome nota de cómo va decreciendo o aumentando el <strong>error</strong>, ajuste automáticamente los parámetros de entrenamiento, y siga actuando solo hasta llegar a un mínimo de error prefijado.</p>
<p style="TEXT-ALIGN: justify">Los distintos &#8220;modos de aleatorización&#8221; afectan al comportamiento del botón &#8220;Aleatorizar pesos&#8221;. El algoritmo de aprendizaje parte de un estado aleatorio de los pesos y va modificando sus valores en el sentido en que el error decrece. Puede pasar que en determinado momento el error no descienda más, pero aun continúe alto: estaríamos frente a lo que llaman un <em>mínimo local</em>. Aquí viene al caso la aleatorización <em>relativa</em>, que lo que hace es modificar levemente los pesos pero en relación a su valor actual (introduce una pequeña &#8220;mutación&#8221;). Con esto conseguimos, a veces, que el error aumente un poco pero luego siga disminuyendo, es algo así como  &#8221;un paso atrás, dos adelante&#8221;.</p>
<p style="TEXT-ALIGN: justify"><strong>Respecto al error</strong></p>
<p style="TEXT-ALIGN: justify">El dato mostrado a la derecha como &#8220;error&#8221; se calcula de la siguiente manera:</p>
<p style="TEXT-ALIGN: justify">cada uno de los ejemplos que están en la lista se pasa por la red, y se mide la diferencia entre el valor que debe producir en cada salida y el que realmente produce. Todos estos valores elevados al cuadrado, sumados entre sí y sumados con los provenientes del resto de los ejemplos, nos dan el <strong>error</strong> total para un estado en particular de la red (media cuadrática). Esto quiere decir que cuanto mayores sean el número de salidas y el número de ejemplos cargados, mucho más difícil va a ser llevar ese valor a <strong>0 </strong>(y por supuesto, esto también depende del <em>contenido </em>de los ejemplos mismos). En el caso del problema que viene como <em>demo</em> (que, dicho sea de paso, consiste en diversas versiones de las palabras &#8220;uno&#8221;, &#8220;dos&#8221; y &#8220;tres&#8221; capturadas y codificadas por un nuevo programa de procesamiento de audio que estoy desarrollando para <a href="http://www.pablogindel.com/2009/07/samsa-el-hexapodo/" target="_blank">SAMSA</a>) la red se desempeña aceptablemente bien con el error en <strong>20</strong>, más o menos.</p>
<p style="TEXT-ALIGN: justify"><strong>Opciones de visualización</strong></p>
<p style="TEXT-ALIGN: justify">Por último, la parte &#8220;coqueta&#8221; del programa.</p>
<p style="TEXT-ALIGN: justify">Al hacer foco en la ventana de visualización, quedan disponibles las siguientes opciones:</p>
<ul style="TEXT-ALIGN: justify">
<li>haciendo click con el botón derecho del mouse, detenemos o reanudamos la rotación automática del modelo. Cuando la rotación automática está detenida, podemos rotarlo libremente con el botón izquierdo del mouse.</li>
<li>con las teclas de dirección seleccionamos un parámetro, que va a aparecer detallado en el ángulo inferior izquierdo de la pantalla, y con las teclas &#8220;<strong>+</strong>&#8221; y &#8220;<strong>&#8211;</strong>&#8221; modificamos ese parámetro.</li>
<li>los parámetros que se pueden modificar son: la disposición espacial de las neuronas en cada capa, el espaciado de las mismas, la rotación de todo el plano de la capa y la cantidad de caras de la sección de los &#8220;caños&#8221; que interconectan a las neuronas, que por defecto es 20, pero puede ir de 2 a 50, generando la sensación cilíndrica.</li>
</ul>
<p style="TEXT-ALIGN: justify"><strong>Mejoras para el futuro</strong></p>
<p style="TEXT-ALIGN: justify">Esta es una lista de las mejoras que podrían implementarse en futuras versiones del <strong>PNN</strong>, algunas de las cuales fueron sugeridas por mis amigos Alvaro y Tomás  (y otras pueden ser un divague, también).</p>
<ul style="TEXT-ALIGN: justify">
<li>que las neuronas se muevan, respondiendo a leyes físicas, y que las fuerzas de atracción y repulsión dependan de los pesos.</li>
<li>ponerle sonido (con la biblioteca <em>minim</em> de Processing)</li>
<li>esferas texturadas que giren sobre sí mismas</li>
<li>que las conexiones cambien de color cuando son modificadas</li>
<li>que las neuronas vibren según su &#8220;energía&#8221;</li>
<li>que unas bolas circulen por adentro de los caños</li>
<li>rotación de las conexiones</li>
<li>hay que inventar algo para que no haya que apretar 200 veces &#8220;Iniciar aprendizaje&#8221;</li>
<li>salvar y cargar pesos</li>
<li style="TEXT-ALIGN: justify">modo automático: que combine algoritmos genéticos con el backpropagation.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2009/12/palmer-neural-networks/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>6º campeonato uruguayo de sumo robótico</title>
		<link>http://www.pablogindel.com/2009/09/sexto-campeonato-uruguayo-de-sumo-robotico/</link>
		<comments>http://www.pablogindel.com/2009/09/sexto-campeonato-uruguayo-de-sumo-robotico/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 02:14:14 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[hexápodo]]></category>
		<category><![CDATA[INCO]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[sumo robótico]]></category>
		<category><![CDATA[sumo.uy]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=216</guid>
		<description><![CDATA[Se viene el 6º Campeonato Uruguayo de Sumo Robótico, organizado por el grupo MINA del Instituto de Computación / Facultad de Ingeniería, Universidad de la República, los días 24 al 26 de setiembre de 2009, o sea jueves a sábado de esta semana, en el Edificio Polifuncional Faro, Senda Nelson Landoni (al costado de Facultad de [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify">Se viene el 6º Campeonato Uruguayo de Sumo Robótico, organizado por el grupo MINA del Instituto de Computación / Facultad de Ingeniería, Universidad de la República, los días 24 al 26 de setiembre de 2009, o sea <strong>jueves a sábado de esta semana</strong>, en el Edificio Polifuncional Faro, Senda Nelson Landoni (al costado de Facultad de Ingeniería: Julio Herrera y Reissig 565, entre la cancha de Maeso y el Estadio Luis Franzini. Teléfono: 711 4244)<span id="more-216"></span></p>
<p style="TEXT-ALIGN: justify">Toda la información aquí: <a href="http://www.fing.edu.uy/inco/eventos/sumo.uy/">http://www.fing.edu.uy/inco/eventos/sumo.uy/</a></p>
<p style="TEXT-ALIGN: justify">El evento incluye las tradicionales competencias de sumo en varias categorías, el Concurso Uruguayo de Robótica 2009 y los Workshops. En estos últimos estaremos exponiendo el trabajo &#8220;Robótica Recreativa&#8221;, con la participación de nuestros amigos &#8220;el robotito&#8221; y &#8220;SAMSA&#8221;. Todavía no sé el dia ni la hora exactas, pero presumo que será el jueves a eso de las 19:00 hs. </p>
<p style="TEXT-ALIGN: justify">Tuve el honor de participar también en los Workshops el año pasado, y todo el evento estuvo buenísimo, no se lo pierdan.</p>
<p style="TEXT-ALIGN: justify">A propósito, vieron la última muestra de talento de SAMSA? Se nos va pa&#8217; Hollywood, se nos va&#8230;</p>
<p style="TEXT-ALIGN: justify"> </p>
<p><a href="http://www.pablogindel.com/2009/09/sexto-campeonato-uruguayo-de-sumo-robotico/"><em>Pinche aquí para ver el vídeo</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2009/09/sexto-campeonato-uruguayo-de-sumo-robotico/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Novedades de SAMSA</title>
		<link>http://www.pablogindel.com/2009/08/novedades-de-samsa/</link>
		<comments>http://www.pablogindel.com/2009/08/novedades-de-samsa/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 05:30:35 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[Artículos técnicos, etc.]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hexapod]]></category>
		<category><![CDATA[hexápodo]]></category>
		<category><![CDATA[pablo gindel]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[uruguay]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=159</guid>
		<description><![CDATA[Pasaron casi 2 meses desde los últimos videos de SAMSA, aquellos de la caminata, y tal vez pueda parecer que son pocos los avances para 2 meses. Voy a comentar los puntos en los que estuve trabajando.]]></description>
			<content:encoded><![CDATA[<p>Por fin algo para subir al blog!</p>
<p><a href="http://www.pablogindel.com/2009/08/novedades-de-samsa/"><em>Pinche aquí para ver el vídeo</em></a></p> <p><a href="http://www.pablogindel.com/2009/08/novedades-de-samsa/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p style="TEXT-ALIGN: justify">Pasaron casi 2 meses desde los últimos videos de SAMSA, aquellos de la caminata, y tal vez pueda parecer que son pocos los avances para 2 meses. Voy a comentar los puntos en los que estuve trabajando:</p>
<p style="TEXT-ALIGN: justify"><strong>1) Idea central</strong>: todavía no tengo una idea central fuerte, que dé coherencia a todo el conjunto. SAMSA todavía no tiene una personalidad definida, pero ya presenta algunos rasgos. No es para inquietarse, a veces la &#8220;idea&#8221; me viene bastante tiempo después de tener armado todo el hardware, y a veces directamente no me viene. Siempre está la posibilidad de invitar a algún amigo y anotar en un papelito todas las ideas que se le escapan.</p>
<p style="TEXT-ALIGN: justify"><span id="more-159"></span></p>
<div class="mceTemp" style="TEXT-ALIGN: justify">
<dl class="wp-caption alignright" style="width: 292px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/bateria.jpg"><img class="     " title="batería" src="http://www.pablogindel.com/imagenes/bateriap.jpg" alt="Fuente de energía de SAMSA: batería LiPo de 7.4V/730mAh. Otra batería más grande y el cargador." width="282" height="183" /></a></dt>
<dd class="wp-caption-dd">Fuente de energía de SAMSA: batería LiPo de 7.4V/730mAh. Otra batería más grande y el cargador.</dd>
</dl>
</div>
<p style="TEXT-ALIGN: justify"><strong>2) Autonomía</strong>: no fue fácil dar con la batería adecuada para SAMSA. El robot necesita como mínimo una tensión de 6V, y, no tengo amperímetro, pero mis cálculos daban que debía consumir unos 3.6A, ya que la especificación del servo HiTec HS-55 -del cual los que yo usé son una copia berreta- dice que el motor andando pero <em>en el vacío</em> (no load) consume unos 150mA. Los 18 servos andando a la vez y con el robot apoyado, generarían un consumo considerable, al que habría que sumar el del resto de la electrónica. Evidentemente me quedé corto, ya que el primer intento con baterías de 2000mAh/2C (el &#8220;2C&#8221; indica que admiten una descarga de 2 veces su carga, en este caso 4A) fue un fracaso. Necesitaba baterías de más &#8220;polenta&#8221;, pero ojo con aumentar el tamaño y el peso, dado que SAMSA es un robot más bien debilucho. El factor que hubo que sacrificar es la carga misma, es decir el tiempo de autonomía. Finalmente terminé usando la batería que se ve en la foto, de 730mAh/20C, que admite descargas puntuales (&#8220;burst&#8221;) de hasta 40C, o sea: un disparate, y pesa nada más que 35g. Estimo que la autonomía no será de más de 15 minutos, pero hasta ahora no lo he probado. </p>
<div class="mceTemp">
<div class="wp-caption alignright" style="width: 252px"><a href="http://www.pablogindel.com/imagenes/encoder2.jpg"><img class=" " title="encoder 2" src="http://www.pablogindel.com/imagenes/encoder2p.jpg" alt="Antenas." width="242" height="322" /></a><p class="wp-caption-text">Antenas y medidor de distancia Sharp GP2D12</p></div>
<dl class="wp-caption alignnone" style="width: 267px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/encoder1.jpg"><img class=" " title="encoder 1" src="http://www.pablogindel.com/imagenes/encoder1p.jpg" alt="Motor DC y encoder óptico de las antenas" width="257" height="199" /></a></dt>
<dd class="wp-caption-dd">Motor DC y encoder óptico de las antenas.</dd>
</dl>
</div>
<p style="TEXT-ALIGN: justify"><strong>3) Sensores y periféricos</strong>: para el tiempo en que filmé la caminata, los sensores ni estaban conectados. Los dos cables del motor DC que mueve las antenas estaban colgando sueltos, el medidor de distancia estaba puesto &#8220;de adorno&#8221; y el resto de las cosas no existían. Conectar todas estas cosas dio un gran trabajo, en especial la parte de audio. Todos los periféricos -excepto el display, que para aquel entonces ya estaba perfectamente funcional aunque no tenía software que lo explotara- van conectados a un mini-circuito que está en la parte de abajo del tronco, el que muestra la foto. Ese circuito maneja las siguientes cosas:</p>
<ul style="TEXT-ALIGN: justify">
<li><strong>motor DC de las antenas</strong>, controlado por un puente en &#8220;H&#8221; a transistores, que ocupa menos espacio que un L293D.</li>
<li><strong>rotary encoder óptico</strong> de las antenas (sacado de un mouse viejo). Esto permite usar las antenas también como dispositivo de entrada, y ya tengo rutinas que explotan el recurso.</li>
<li><strong>micrófono</strong>, amplificado por un operacional diminuto que no se ve, porque está tapado por los componentes pasivos.</li>
<li style="TEXT-ALIGN: justify"><strong>acelerómetro y medidor de distancia</strong> Sharp GP2D12; éstos van directo a la Wiring, el circuito sólo se encarga de conectarlos. (El acelerómetro es para hacer trucos como que detecte cuando lo levantás, etc., por el momento no se está usando.)</li>
</ul>
<p style="TEXT-ALIGN: justify"><a href="http://www.pablogindel.com/imagenes/circuito2.jpg"></a></p>
<div class="mceTemp" style="TEXT-ALIGN: justify">
<dl class="wp-caption alignright" style="width: 272px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/circuito1.jpg"><img title="circuito 1" src="http://www.pablogindel.com/imagenes/circuito1p.jpg" alt="A escala." width="262" height="190" /></a></dt>
<dd class="wp-caption-dd">A escala.</dd>
</dl>
</div>
<div class="mceTemp" style="TEXT-ALIGN: justify">
<dl class="wp-caption alignnone" style="width: 258px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/circuito3.jpg"><img title="circuito 3" src="http://www.pablogindel.com/imagenes/circuito3p.jpg" alt="Mini-circuito." width="248" height="164" /></a></dt>
<dd class="wp-caption-dd">Mini-circuito.</dd>
</dl>
</div>
<p style="TEXT-ALIGN: justify"> </p>
<div class="mceTemp" style="TEXT-ALIGN: justify">
<div class="wp-caption alignright" style="width: 276px"><a href="http://www.pablogindel.com/imagenes/circuito4.jpg"><img title="circuito 4" src="http://www.pablogindel.com/imagenes/circuito4p.jpg" alt="Inserción en el robot." width="266" height="184" /></a><p class="wp-caption-text">Inserción en el robot.</p></div>
<dl class="wp-caption alignnone" style="width: 251px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/circuito2.jpg"><img class="   " title="circuito 2" src="http://www.pablogindel.com/imagenes/circuito2p.jpg" alt="Vista trasera." width="241" height="184" /></a></dt>
<dd class="wp-caption-dd">Vista trasera.</dd>
</dl>
</div>
<p style="TEXT-ALIGN: justify">Lo que realmente me dio trabajo acá fue el audio, tanto en el hardware como en el software. En el hardware, porque la electrónica analógica nunca fue mi fuerte, y ajustar ese circuito, a ojímetro como hago todo, fue casi imposible. Sabiendo además que el LM324 no era la mejor elección, lo hice así porque quería aprender de una vez a usar operacionales. Otro problema que tuve fue el ruido infernal que mete el Sharp GP2D12 en la línea de alimentación, el cual fue atenuado a base de sacar la alimentación de un punto lo más lejano posible al circuito de audio, y meter condensadores por todos lados a lo bestia.</p>
<p style="TEXT-ALIGN: justify">El software también aportó lo suyo, pero de eso hablaremos más en detalle cuando encare la documentación &#8220;posta&#8221; del robot. Resumiendo, el tema con los sensores es que hay que actualizar la lectura con cierta frecuencia, y el tiempo que tenemos para tareas periódicas no es demasiado, una gran parte del mismo es consumida en manejar los 18 servos. En el caso del audio, además, hay que hacer otras cosas que recayeron finalmente en el software, como filtrar el componente de corriente continua (DC), rectificar, &#8220;logaritmizar&#8221; e integrar, lo que finalmente también consume abundante tiempo, y estamos hablando sólo de trabajar con la intensidad del sonido, no sueñen con una FFT ni con reconocimiento de palabras ni nada. De más está decir que toda la gracia del proyecto es hacerlo con un sólo procesador.</p>
<div class="wp-caption alignright" style="width: 332px"><a href="http://www.pablogindel.com/imagenes/pata.jpg"><img title="pata" src="http://www.pablogindel.com/imagenes/patap.jpg" alt="Pata del robot." width="322" height="242" /></a><p class="wp-caption-text">Pata del robot.</p></div>
<p style="TEXT-ALIGN: justify">4) <strong>La &#8220;cinemática inversa&#8221;</strong> es lo que permitió hacer movimientos del tronco, dejando las patas fijas en un punto, como se ve en el segundo video. Los servos trabajan con ángulos, su posición angular es proporcional al ancho del pulso que reciben, y dentro del programa, yo puedo controlar linealmente el ancho de ese puso, y por ende manejar con exactitud -e independencia- los 18 ángulos (excepto por las limitaciones mecánicas, que hacen que para adoptar ciertas posiciones, lo tenga que &#8220;ayudar&#8221; con todas las patas haciendo fuerza a la vez). Las rutinas de caminata fueron hechas como secuencias de ángulos, experimentalmente (y me sigue resultando asombroso que pueda caminar tan rápido) pero para hacer movimientos con el tronco la cosa ya no es tan fácil. Por ejemplo, si quiero poner la punta de una pata 4cm por debajo de la altura del tronco, y mantenerla a esa altura mientras la alejo o la acerco perpendicularmente al mismo, necesariamente tengo que variar en forma continua 2 ángulos, y hacerlo de acuerdo a una fórmula matemática no evidente.</p>
<p style="TEXT-ALIGN: justify">Utilizando el teorema de Pitágoras y el teorema del Coseno, encontré la manera de calcular los ángulos necesarios para poner cada pata en unas coordenadas dadas, en cm. También me valí de unas fórmulas que encontré en internet para calcular las funciones trigonométricas inversas utilizando sólo arcotangente, que es lo que la &#8216;math&#8217; de Wiring tiene. Hice el siguiente <a title="Programa de simulación" href="http://www.pablogindel.com/applets/cinematica_inversa.html" target="_blank">programa de simulación</a> en Processing, y la parte de &#8220;offsets&#8221; para que los resultados quedaran en el cuadrante y con el signo correcto también fue experimental, metiéndole &#8220;a mano&#8221; valores como PI/2, -PI/4, etc., a ver qué pasaba.</p>
<p style="TEXT-ALIGN: justify">Una vez pronta esta rutina (que en mi programa se llama &#8220;alfabetagama&#8221;), calcular las 3 traslaciones y las 3 rotaciones del tronco fue tarea relativamente sencilla, casi todo con sumas y restas, excepto una de las rotaciones en la que usé la fórmula de la rotación en el plano, que involucra senos y cosenos. Todo esto lo voy a explicar detenidamente en la prometida documentación.</p>
<div class="mceTemp" style="TEXT-ALIGN: justify">
<div class="wp-caption alignright" style="width: 267px"><a href="http://www.pablogindel.com/imagenes/display2.jpg"><img title="display 2" src="http://www.pablogindel.com/imagenes/display2p.jpg" alt="Vista trasera del circuito controlador del display." width="257" height="189" /></a><p class="wp-caption-text">Vista trasera del circuito controlador del display.</p></div>
<dl class="wp-caption alignnone" style="width: 269px;">
<dt class="wp-caption-dt"><a href="http://www.pablogindel.com/imagenes/display1.jpg"><img title="display 1" src="http://www.pablogindel.com/imagenes/display1p.jpg" alt="Display LED matricial de 8x8 monocromático." width="259" height="177" /></a></dt>
<dd class="wp-caption-dd">Display LED matricial de 8&#215;8 monocromático.</dd>
</dl>
</div>
<p style="TEXT-ALIGN: justify"><strong>5) Display</strong>: varias personas me sugirieron que no perdiera tiempo con el display, que nadie lo iba a mirar, llegando incluso a cuestionar la presencia del mismo en el proyecto, pero a mí me gusta. Hice todo tipo de adornitos, rutinas que miden un parámetro y lo expresan como líneas o barras verticales y horizontales, como círculos, como escaleritas, como cuadrados, como puntos &#8220;aleatorio-probabilísticos&#8221;, rutinas que muestran y desplazan texto, rutinas que giran, que borran, que invierten, que mezclan, etc., y hasta le programé una versión del clásico juego de la vida de Conway.</p>
<p style="TEXT-ALIGN: justify">Por último debo aclarar que lo que se ve en los videos no forma parte de la idea central sino que son cosas programadas &#8220;ad-hoc&#8221; al momento de la filmación, con la ayuda de mi amigo Daniel Lopes, el KBZA, como una forma de mostrar más o menos las posibilidades con que cuenta SAMSA hoy en día, aunque alguna idea ya estoy sacando de todo eso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2009/08/novedades-de-samsa/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>SAMSA (el hexápodo)</title>
		<link>http://www.pablogindel.com/2009/07/samsa-el-hexapodo/</link>
		<comments>http://www.pablogindel.com/2009/07/samsa-el-hexapodo/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 10:41:35 +0000</pubDate>
		<dc:creator>pabloxid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmega128]]></category>
		<category><![CDATA[computación física]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[gindel]]></category>
		<category><![CDATA[hexapod]]></category>
		<category><![CDATA[hexápodo]]></category>
		<category><![CDATA[media art]]></category>
		<category><![CDATA[physical computing]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[TCFM]]></category>
		<category><![CDATA[uruguay]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.pablogindel.com/?p=53</guid>
		<description><![CDATA[Este robot hexápodo está en pleno desarrollo, comencé a trabajar en él a fines de abril de este año. Cuenta con 18 micro-servos, y el control es efectuado por una tarjeta Wiring, a cuyo software tuve que hacerle algunas modificaciones, como se verá. Las antenitas son movidas con un motor DC, y a la vez [...]]]></description>
			<content:encoded><![CDATA[<p>Este robot hexápodo está en pleno desarrollo, comencé a trabajar en él a fines de abril de este año. Cuenta con 18 micro-servos, y el control es efectuado por una tarjeta Wiring, a cuyo software tuve que hacerle algunas modificaciones, como se verá. Las antenitas son movidas con un motor DC, y a la vez poseen un encoder óptico, permitiendo utilizarlas como dispositivo de entrada. Los otros dispositivos de entrada son un micrófono, un acelerómetro y el clásico IR Ranger Sharp GP2D12.<span id="more-53"></span></p>
<p> (Este post es provisorio, en breve tendremos información más detallada)</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/kbNvBkiZy6U&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/kbNvBkiZy6U&amp;hl=en&amp;fs=1&amp;" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablogindel.com/2009/07/samsa-el-hexapodo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

