<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LOLO58</id>
		<title>Proyecto Butiá - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LOLO58"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php/Especial:Contribuciones/LOLO58"/>
		<updated>2026-04-05T18:52:08Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6727</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6727"/>
				<updated>2015-04-17T20:21:19Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevent.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6726</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6726"/>
				<updated>2015-04-17T20:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevent.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6725</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6725"/>
				<updated>2015-04-17T20:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevent.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6724</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6724"/>
				<updated>2015-04-17T20:10:24Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevent.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6723</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6723"/>
				<updated>2015-04-17T20:07:12Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevent.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6722</id>
		<title>Archivo:Xevent.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevent.png&amp;diff=6722"/>
				<updated>2015-04-17T20:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6721</id>
		<title>Archivo:Xevents.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6721"/>
				<updated>2015-04-17T19:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevents.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6720</id>
		<title>Archivo:Xevents.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6720"/>
				<updated>2015-04-17T19:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevents.png»: Revertido a la versión subida el 17 abr 2015 a las 19:39&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6719</id>
		<title>Archivo:Xevents.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6719"/>
				<updated>2015-04-17T19:47:25Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevents.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6718</id>
		<title>Archivo:Xevents.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6718"/>
				<updated>2015-04-17T19:40:36Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Xevents.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6717</id>
		<title>Archivo:Xevents.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Xevents.png&amp;diff=6717"/>
				<updated>2015-04-17T19:39:03Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=TortuBots&amp;diff=6716</id>
		<title>TortuBots</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=TortuBots&amp;diff=6716"/>
				<updated>2015-04-17T19:29:17Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== TortuBots ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.sugarlabs.org/go/Activities/TurtleArt TortugArte] es una actividad Sugar inspirada en [http://en.wikipedia.org/wiki/Logo_(programming_language) Logo] la cual pone al alcance de niños conceptos de programación, mediante una interfaz gráfica icónica, donde cada instrucción se mapea como un bloque. &lt;br /&gt;
El proyecto butiá realizó modificaciones sobre TortugArte agregando algunos plugins en forma de paletas que permiten controlar diferentes kits robóticos como [http://www.fing.edu.uy/inco/proyectos/butia/ Butiá], [http://en.wikipedia.org/wiki/Lego_Mindstorms_NXT_2.0 Lego NXT],[http://www.legoeducation.us/eng/product/lego_education_wedo_robotics_construction_set/2096 Lego WeDo],[http://activities.sugarlabs.org/es-ES/sugar/addon/4368 FollowMe] y Sumbot).&amp;lt;br&amp;gt;Se puede descargar la actividad TortuBots que contiene todo lo actual de TortugArte más los plugins de robótica mencionados.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tb.png|En ésta imagen pueden verse las diferentes paletas agregadas.]] &amp;lt;br&amp;gt;&lt;br /&gt;
Paletas de izq. a der.: Arduino - Butiá - Butiá Extras - FollowMe - Lego NXT (motores) - Lego NXT (sensores) - Marcas - SumBot - Lego WeDo &lt;br /&gt;
&lt;br /&gt;
Pueden descargarse las últimas versiones del siguiente [http://www.fing.edu.uy/inco/proyectos/butia/files/package/ repositorio] o desde el [http://activities.sugarlabs.org/es-ES/sugar/addon/4434 repositorio de actividades Sugar]. En este momento se encuentran disponible para su uso en XO, y computadoras con Ubuntu 10.04 o posterior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Instalación==&lt;br /&gt;
&lt;br /&gt;
* Cualquier distribución de GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
Si usted tiene una versión de linux basada en ''debian'' puede descargar la actividad para su arquitectura directamente desde nuestro [http://www.fing.edu.uy/inco/proyectos/butia/files/package/ repositorio]&lt;br /&gt;
&lt;br /&gt;
Sino puede seguir este [[Generando_xo | instructivo]]&lt;br /&gt;
&lt;br /&gt;
* En Sugar:&lt;br /&gt;
&lt;br /&gt;
[[instalacion_XO|XO 1.0 y 1.5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plugin Butiá ==&lt;br /&gt;
&lt;br /&gt;
El robot Butiá tiene soporte [[plug and play]] y [[plug and play|hotplug]] para los sensores/actuadores que se conectan a él, este aspecto fue utilizado a la hora de implementar el plugin cambiando el color de los bloques correspondientes a los elementos de sensado/actuación según lo que se haya conectado al robot.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tb1.png|En ésta imagen puede verse la paleta cuando no hay robot conectado]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tb2.png|En ésta imagen puede verse la paleta cuando hay robot conectado y un sensor botón]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para comenzar...&lt;br /&gt;
&lt;br /&gt;
* [[Tortugarte_variables|Como manejar variables en TortuBots]]&lt;br /&gt;
&lt;br /&gt;
* [[Modularizando|Como modularizar un programa en TortuBots]]&lt;br /&gt;
&lt;br /&gt;
* [[Transformando_a_cms_el_valor_del_sensor_de_distancia|Transformando a centímetros la salida del sensor de distancia]]&lt;br /&gt;
&lt;br /&gt;
* [[Ejemplos de comportamientos robóticos con TortuBots|Ejemplos de comportamientos que pueden realizarse en TortuBots]]&lt;br /&gt;
&lt;br /&gt;
* [[video_tutoriales|Video Tutoriales]]&lt;br /&gt;
&lt;br /&gt;
== Butiá Extras ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tb3.png|En ésta imagen puede verse la paleta de extras cuando hay robot conectado]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La paleta de extras de butiá nos permite profundizar otras funcionalidades de la placa:&lt;br /&gt;
&lt;br /&gt;
* [[HackPoints|Como utilizar los HackPoints]]&lt;br /&gt;
&lt;br /&gt;
* [[Módulo sensor Voltaje | Módulo Voltaje]]&lt;br /&gt;
&lt;br /&gt;
* [[Módulo sensor Resistencia | Módulo Resistencia]]&lt;br /&gt;
&lt;br /&gt;
== Plugin Lego NXT ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Lnxt1.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Lnxt2.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toda la información en: [http://wiki.sugarlabs.org/go/Activities/Turtle_Art/Plugins#LEGO_NxT &amp;lt;big&amp;gt;'''NxT'''&amp;lt;/big&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Plugin Lego WeDo ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Wdo.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toda la información en: [http://wiki.sugarlabs.org/go/Activities/Turtle_Art/Plugins#WeDo &amp;lt;big&amp;gt;'''WeDo'''&amp;lt;/big&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Plugin Lego Fisher ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fisher.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plugin FollowMe ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fm.png]]&lt;br /&gt;
&lt;br /&gt;
La idea detrás de la paleta es retornar posiciones x y y del color de un objeto de manera de mover el robot Butiá de acuerdo a estos valores.&lt;br /&gt;
&lt;br /&gt;
Toda la información en: [[FollowMe | &amp;lt;big&amp;gt;'''FollowMe'''&amp;lt;/big&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Mas info en la wiki de TurtleArt (en inglés): [http://wiki.sugarlabs.org/go/Activities/Turtle_Art#FollowMe FollowMe]&lt;br /&gt;
&lt;br /&gt;
== Plugin SumBot == &lt;br /&gt;
&lt;br /&gt;
Este plugin permite comunicarse con el sistema de visión utilizado en la categoría sumbot del evento sumo.uy [http://www.fing.edu.uy/inco/eventos/sumo.uy/].&lt;br /&gt;
A partir de la versión 5 de tortugarteButiá viene incluido, puede consultarse más sobre su funcionamiento en la wiki del evento sumo.uy [http://www.fing.edu.uy/inco/eventos/sumo.uy/wiki/index.php/Actividad_Tortugarte].&lt;br /&gt;
&lt;br /&gt;
[[Archivo:SumB.png]]&lt;br /&gt;
&lt;br /&gt;
== Plugin Pattern Detection == &lt;br /&gt;
&lt;br /&gt;
Este plugin permite detectar señales y patrones con la cámara de la pc. La versión incluida del plugin incluye el reconocimiento de señales de tránsito, pero es posible agregar marcas adicionales como se detalla en la página del plugin: [[Butia_reconocimiento_marcas]]&lt;br /&gt;
&lt;br /&gt;
La paleta trae bloques que permiten detectar la presencia de marcas además de la distancia a las mismas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png|700px]]&lt;br /&gt;
&lt;br /&gt;
== Plugin Arduino == &lt;br /&gt;
&lt;br /&gt;
Requiere tener grabado en la Arduino el firmware Firmata. Usar la última disponible (2.1) disponible en la página (firmata.org).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arduino-palette.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plugin ArDrone == &lt;br /&gt;
&lt;br /&gt;
Plugin para programar el drone [http://es.wikipedia.org/wiki/Parrot_AR.Drone Parrot ArDrone].&amp;lt;br&amp;gt;&lt;br /&gt;
Más información [[Paleta ArDrone]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paleta_ardrone.png]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6715</id>
		<title>Archivo:Fisher.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6715"/>
				<updated>2015-04-17T19:10:55Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Fisher.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6713</id>
		<title>Archivo:Fisher.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6713"/>
				<updated>2015-04-17T18:54:18Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Fisher.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6712</id>
		<title>Archivo:Fisher.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6712"/>
				<updated>2015-04-17T18:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Fisher.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6711</id>
		<title>Archivo:Fisher.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6711"/>
				<updated>2015-04-17T18:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Fisher.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6710</id>
		<title>Archivo:Fisher.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Fisher.png&amp;diff=6710"/>
				<updated>2015-04-17T18:46:50Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Discusiones_para_las_reuniones&amp;diff=6092</id>
		<title>Discusiones para las reuniones</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Discusiones_para_las_reuniones&amp;diff=6092"/>
				<updated>2014-12-26T18:36:18Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* incluir el trabajo &lt;br /&gt;
http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Grupo_5 al master&amp;lt;br&amp;gt;&lt;br /&gt;
Discutir como se usa el relay y hacer algunas pruebas&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6090</id>
		<title>Usb4all</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6090"/>
				<updated>2014-12-23T21:22:27Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* 5. Entorno de desarrollo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Motivación ==&lt;br /&gt;
&lt;br /&gt;
La motivación de este proyecto se centra en lograr de una manera sencilla, la comunicación entre un sistema computador y un conjunto de dispositivos electrónicos no necesariamente pensados para interactuar con una computadora.&lt;br /&gt;
Durante muchos años la única forma de interactuar con dispositivos externos desde a un computador personal (Personal Computer) (PC) fueron los puertos seriales y paralelos, esto llevo a que se utilizaran ampliamente en multiplicidad de dispositivos. Sus principales características son su simplicidad de manejo vía software y facilidad de inclusión en distintos dispositivos. En la última década han aparecido nuevos medios o canales de comunicación, tales como Bluetooth, Fidelidad Inalámbrica (Wireless Fidelity) (WiFi), FireWire, Bus Universal en Serie (Universal Serial Bus) (USB), etc. Estos permitieron mejorar las velocidades de comunicación y calidad de datos y lentamente tornaron a los puertos paralelos y seriales en obsoletos, hasta llegar al día de hoy en que se obtienen sólo de manera opcional en los nuevos PC.&lt;br /&gt;
Dentro de todas estas nuevas tecnologías que aparecieron la que tuvo mayor aceptación y difusión entre los usuarios fue el USB, debido a su facilidad y versatilidad de escenarios de uso. Esta simplicidad desde el punto de vista del usuario de los dispositivos USB tiene como contrapartida una mayor complejidad para los desarrolladores de software y hardware, lo cual es un gran problema al momento de interactuar con dispositivos electrónicos.&lt;br /&gt;
Frente a estas adversidades que presenta el entorno actual aparece la necesidad de buscar una forma de reducir el grado de complejidad y conocimientos necesarios para poder desarrollar&lt;br /&gt;
software que utilice la tecnología USB. Al mismo tiempo, se requiere una plataforma base que incorpore componentes de hardware reutilizables y que en conjunto formen una solución genérica&lt;br /&gt;
para la comunicación con dispositivos electrónicos diversos.&lt;br /&gt;
En el contexto de lo antedicho aparecen un conjunto de desafíos como son el desarrollo de controladores (drivers) y construcción de piezas de hardware que brinde una solución genérica&lt;br /&gt;
reutilizable, desplazando el manejo de los casos particulares a componentes específicos. Esto proporciona el beneficio de evitar que cada vez que se necesite conectar un nuevo dispositivo,&lt;br /&gt;
se comience desde cero. A su vez permite recuperar y potenciar la característica de facilidad de manejo que poseían los puertos seriales y paralelos, explotando todas las capacidades brindadas por USB.&lt;br /&gt;
&lt;br /&gt;
== 2. Arquitectura (Firmware/Hardware)==&lt;br /&gt;
 &lt;br /&gt;
La arquitectura está compuesta por diferentes componentes, los cuales van a permitir el funcionamiento del sistema desde lo relativo al hardware como las abstracciones necesarias para manejarlo mediante software.&amp;lt;br&amp;gt;&lt;br /&gt;
Los componentes principales son:&lt;br /&gt;
&lt;br /&gt;
'''2.1 USB4all ''Baseboard'''''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:usb4all2.png|thumb|Fig.2.1.1: USB4all Baseboard 2.0]]&lt;br /&gt;
Es una placa de entrada/salida(E/S) configurable que se conecta por USB con un sistema computador. El proyecto USB4all es mucho más que una placa de E/S, en sí es una forma de modelar sistemas embebidos, siendo la placa de E/S  un componente que fue necesario construir para desarrollar la solución completa. Para la construcción de esta placa se utilizó un microcontrolador PIC18F4550 de Microchip. Entre las características más destacadas en lo que concierne al proyecto se encuentra el soporte completo del estándar USB, pudiéndose utilizar varias de sus características, como ser diferentes tipos de transferencias y varios canales de comunicación (endpoints). El diseño de hardware de la placa puede descargarse del [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/pcb/ git del proyecto] permitiendo que cualquiera pueda armarse una USB4all ''baseboard'' utilizando el software GPL [http://www.lis.inpg.fr/realise_au_lis/kicad/ Kicad].&lt;br /&gt;
  &lt;br /&gt;
'''2.2 USB4all ''base firmware'''''&lt;br /&gt;
&lt;br /&gt;
Es el firmware más estático, brinda servicios a los usermodules para que puedan utilizar los recursos presentes en la baseboard (timmers, puerto USB, conversores A/D, etc) además de brindar las primitivas para el intercambio de mensajes entre el computador y el usermodule y realiza la gestión de los ''usermodules''. Establece las bases para que los usermodules sean independientes del protocolo de comunicación computador/placa y de los detalles de hardware del microcontrolador utilizado. A su vez oferce un entorno de ejecución concurrente que permite instanciar de forma dinámica varios ''usermodules''. &lt;br /&gt;
&lt;br /&gt;
'''2.3 USB4all ''usermodule'''''&lt;br /&gt;
&lt;br /&gt;
Son los componentes intercambiables del sistema que permiten encapsular la lógica de un dispositivo especifico y su protocolo de comunicación con las aplicaciones de usuario. Permite al usuario dar rápidamente soporte a un nuevo dispositivo de forma genérica, expandiendo de esta manera las funcionalidades del USB4all ''basefirmware''. Los ''user modules'' son los bloques principales sobre los que se construye la arquitectura USB4all. Exponen una API uniforme que es utilizada a modo de callbacks por el ''base firmware'' y también exponen los servicios que brindan los dispositivos. Es recomendable modelar cada uno de los dispositivos electrónicos conectados a la ''baseboard'' como un ''usermodule'' donde los servicios a exponer se mapean con las características del mismo, como ejemplo en el caso de un motor, sería esperable que expusiera servicios para moverse, cambiar la velocidad y el sentido.&lt;br /&gt;
&lt;br /&gt;
Del lado del sistema computador se dispone de diferentes formas de interacción: Todas ellas implementan el protocolo USB4all, su objetivo es abstraer al usuario del mismo brindando una forma sencilla de utilizar el sistema, existiendo soporte para diferentes lenguajes de programación. El objetivo principal de las bibliotecas utilizadas en el computador son las de permitir utilizar los servicios de los ''usermodules''. Esta forma de trabajo permite desarrollar la lógica de interacción entre los diferentes dispositivos electrónicos dentro del sistema computador, con lenguajes de mayor abstracción, mejores herramientas de desarrollo, permitiendo generar un código con un nivel de mantenibilidad y abstracción mayor al que se lograría si todo estuviera embebido en el microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Uno de los componentes más usados actualmente es el [[bobot]] que persigue un enfoque genérico al igual que el proyecto USB4all y permite acompañar la extensibilidad de la placa USB4all mediante el uso de ciertos componentes propios de la arquitectura llamados drivers.&lt;br /&gt;
&lt;br /&gt;
== 3. Protocolo de Comunicación ==&lt;br /&gt;
&lt;br /&gt;
El protocolo está formado por un stack de protocolos que permiten abstraer al usuario de los detalles subyacentes de la arquitectura. &lt;br /&gt;
El objetivo final del protocolo de comunicación, es direccionar los mensajes provenientes desde la aplicación que se ejecuta en el computador, al ''usermodule'' correspondiente ejecutado en la placa USB4all.&lt;br /&gt;
Estos mensajes son solicitudes de ciertos servicios que los módulos exponen, por ejemplo en el caso de un dispositivo sonoro (buzzer) utilizado para una alarma, va a ser de interés poder emitir sonido (Prender el Buzzer) detener la emisión de sonido (Apagar el Buzzer), hacer sonidos cortos pasando por parámetro la cantidad de milisegundos que se desea esté prendido, etc.&lt;br /&gt;
Estos mensajes se tienen que codificar de alguna manera, el protocolo especifica que primero se debe indicar el comando que se desea se ejecute y luego en caso que sea necesario (como en el de los sonidos cortos) enviar los parámetros. En algunos casos va a ser necesario obtener respuestas, las cuales se codifican de forma análoga usando el mismo protocolo, enviando en lugar de un parámetro un valor de retorno.&lt;br /&gt;
Este protocolo es llamado ''user protocol'' y está enfocado al usuario final, pero para que el sistema funcione correctamente es necesario contar con otros protocolos los cuales transportan el protocolo ''user protocol''. Tal es el caso del handler manager protocol que se encarga de manejar el ruteo de los mensajes al ''user module'' correspondiente. Esto se debe a que en un momento determinado puede haber varios ''user modules'' ejecutando en la placa y el sistema debe permitir notificar del nuevo mensaje al módulo para el cual está destinado el mismo. La tarea fundamental de este protocolo es brindar los mecanismos para comunicar una aplicación con un ''user module''. Otro protocolo involucrado es el ''admin protocol'' el cual se encarga de gestionar el ciclo de vida de los ''user modules'', permitiendo poner a ejecutar un ''user module'', cerrarlo y también algunas funcionalidades como el listar los módulos presentes en la placa, cerrar todos los modulos abiertos o llevar al estado de reset al microcontrolador. Tanto el ''handler protocol'' como el ''admin protocol'' son implementados por las bibliotecas que se utilicen en el computador. Existiendo varias opciones, Java, Python o Lua. Actualmente la opción que se está manteniendo es la de Lua, la cual puede estudiarse en profundidad en la sección [[bobot]].&lt;br /&gt;
&lt;br /&gt;
[[Archivo:protocolo.png|700px|Fig. 3.2 Protocolo USB4all]]&lt;br /&gt;
&lt;br /&gt;
Finalmente los paquetes USB4all se trasmiten por el protocolo de comunicación que disponga el ''baseboard'', para el caso típico del ''baseboard usb4all'' se trasmite mediante USB, pero puede ser trasmitido mediante otras tecnologías utilizadas para comunicarse con un computador, como ser serial o bluetooth (entre otros).&lt;br /&gt;
&lt;br /&gt;
== 4. Grabando el Firmware ==&lt;br /&gt;
[[Archivo:usb4all2_top_view.png|thumb|Fig.4.1: USB4all Baseboard 2.0 vista desde arriba]]&lt;br /&gt;
Para grabar el firmware se necesita disponer de un programador hardware, como el picdem o el pickit, este último tiene buen soporte dentro de GNU/Linux.&lt;br /&gt;
Microchip distribuye un bootloader para la familia de microcontroladores 18F. Un bootloader es un programa que se utiliza para grabar y/o actualizar el firmware. En nuestro caso, va a permitr grabar el firmware del proyecto USB4all sin la necesidad de disponer de un programador por hardware, para realizar esto es necesario dejar presionado el botón de programación como puede verse en la figura 4.1 mientras se resetea la placa con el botón de reset. Esto funciona siempre y cuando el microcontrolador tenga grabado el bootloader.&lt;br /&gt;
Una vez que el dispositivo se encuentra en modo programación su identificador de producto cambia de 000c a 000b, esto puede verificarse utilizando el comando ''lsusb'' cuya salida se adjunta para los dos casos a continuación:&lt;br /&gt;
&lt;br /&gt;
Id dispositivo USB4all&lt;br /&gt;
    Bus 002 Device 002: ID 04d8:000c Microchip Technology, Inc. &lt;br /&gt;
&lt;br /&gt;
id dispositivo Bootloader&lt;br /&gt;
    Bus 002 Device 003: ID 04d8:000b Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
Dado que Microchip no distribuye microcontroladores con el bootlader previamente grabado, es necesario utilizar un programador por hardware para grabar el bootloader.&lt;br /&gt;
USB4all actualmente utiliza un bootloader modificado que permite actualizar el firmware programáticamente sin necesidad de presionar los botones, útil a la hora de realizar actualizaciones remotas, pero responde a los mismos comandos que el bootloader de Microchip, lo cual permite reutilizar el software ya desarrollado para interactuar con el bootloader.&lt;br /&gt;
Los fuentes del bootloader pueden encontrarse en el repositorio en el directorio bootloader del firmware, es un proyecto separado y una vez compilado su grabación se realiza mediante un programador por hardware como picdem o pickit. &lt;br /&gt;
Una vez grabado el bootloader ya '''no es necesario utilizar programadores por hardware''' y puede realizarse la grabación del firmware mediante varios programas que implementan el protocolo de grabación de firmware de microchip. Una de esas utilidades es el programa fsusb el cual puede encontrarse en [http://www.internetking.org/fsusb/] y es de código libre. Su uso se realiza de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
    ./fsusb --program usb4all2.hex&lt;br /&gt;
&lt;br /&gt;
Donde usb4all2.hex es el binario generado como resultado de compilar el proyecto. Recordar que el hardware debe estar en modo bootloader para poder recibir el firmware.&lt;br /&gt;
&lt;br /&gt;
==== 4.1 Grabando Bootloader + Firmware ====&lt;br /&gt;
Una manera rápida, luego que se tiene acceso a un programador, es grabar el bootloader correspondiente y algún firmware (todo junto).&lt;br /&gt;
Para eso pueden usar este .hex:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/files/firmware/bootloader_con_admin.hex bootloader_con_admin.hex]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nota.''' Ahora es posible grabar el firmware fácilmente mediante la siguiente actividad [[Grabar Firmware|Grabar Firmware]].&lt;br /&gt;
&lt;br /&gt;
= 5. Entorno de desarrollo =&lt;br /&gt;
&lt;br /&gt;
== 6. Escribiendo un ''usermodule'' ==&lt;br /&gt;
Un ''usermodule'' es el bloque sobre el cual se representa una realidad y se modela utilizando la arquitectura ''USB4all'', en esta sección se presentan sus características, estructura necesaria para especificar los servicios que brinda y de que forma se anexa al ''basefirmware''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:user_module.png|thumb|Fig. 6.1: Tabla de referencias a ''user modules'']]&lt;br /&gt;
&lt;br /&gt;
'''6.1 Estructura de un ''usermodule:'' '''&amp;lt;br&amp;gt;&lt;br /&gt;
Un ''usermodule'' debe cumplir con una API determinada, de esta manera es posible agregar las funcionalidades que el módulo expone, dentro del ''basefirmware''.&lt;br /&gt;
Las operaciones principales que se deben implementar son las encargadas de atender los eventos de:&lt;br /&gt;
* inicialización&lt;br /&gt;
* liberación de recursos&lt;br /&gt;
* configuración &lt;br /&gt;
&lt;br /&gt;
Estas operaciones se ejecutan en determinados momentos del ciclo de vida de una aplicación USB4all, siendo la operación registrada al evento de inicialización invocada al abrir desde la aplicación el ''usermodule'' y la de liberación de recursos al cerrarlo, esto permite utilizar los recursos del microcontrolador solo cuando es necesario. La operación de configuración puede invocarse en cualquier momento para cambiar en caliente algún aspecto de configuración del hardware.&lt;br /&gt;
Al comenzar un ''usermodule'' se debe declarar cuales van a ser las funciones que van a atender estos eventos y el nombre del módulo para ser identificado desde el computador al listar los módulos presentes en la placa.&lt;br /&gt;
&lt;br /&gt;
    #pragma romdata user&lt;br /&gt;
    uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
    #pragma code&lt;br /&gt;
&lt;br /&gt;
Donde user es el nombre de la sección y uTab es una estructura para almacenar las posiciones de memoria de las operaciones que exporta el módulo y su nombre. En la sección detalles de implementación en el firmware se puede conocer más sobre el significado de la instrucción #pragma romdata user, podemos por el momento asumir que sirve para almacenar la estructura uTab en un lugar conocido dentro de la memoria de programa. &lt;br /&gt;
&lt;br /&gt;
El ''basefirmware'' se encarga de pasar como argumento a la operación init el número de handler asignado al módulo, este número es utilizado como argumento en otras operaciones como ser ''setHandlerReceiveFunction'' la cual recibe por parámetro el handler y un puntero a la función encargada de manejar la recepción de datos. &lt;br /&gt;
Otra operación que necesita el ''handlerID'' es ''getSharedBuffer'' la cual recibe por parámetro el ''handlerID'' del módulo y retorna un buffer por el cual el módulo puede enviar datos a la aplicación que ejecuta en el computador.    &lt;br /&gt;
Un buen lugar para obtener este buffer y registrar la función de recepción de datos es la operación encargada del evento de inicialización. A continuación puede verse como ejemplo la inicialización de un módulo de usuario para controlar un buzzer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerInit(byte i) {&lt;br /&gt;
    usrBuzzerHandler = i;&lt;br /&gt;
    // add my receive function to the handler module, to be called automatically when the pc sends data to the user module&lt;br /&gt;
    setHandlerReceiveFunction(usrBuzzerHandler,&amp;amp;UserBuzzerReceived);&lt;br /&gt;
    // initialize the send buffer, used to send data to the PC&lt;br /&gt;
    sendBufferUsrBuzzer = getSharedBuffer(usrBuzzerHandler);&lt;br /&gt;
}//end UserBuzzerInit &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función de recepción de datos es la encargada de implementar el protocolo de comunicación entre el ''usermodule'' y la aplicación, típicamente es una estructura tipo ''case'' en el que se espera por los diferentes comandos que pueden enviarse. La forma de codificar el pedido de servicios es mediante mensajes del tipo &amp;lt; COMANDO [argumento1] [argumento2]...[argumentoN] &amp;gt;. La respuesta debe ser del tipo &amp;lt; COMANDO [resultado1] [resultado2]..[resultadoN] &amp;gt;. El buffer para enviar datos al computador es obtenido como argumento de la función y el buffer para enviar datos fue obtenido previamente en la función de inicialización.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerReceived(byte* recBuffPtr, byte len){&lt;br /&gt;
      byte index;&lt;br /&gt;
      byte j;  &lt;br /&gt;
      byte userBuzzerCounter = 0;&lt;br /&gt;
      byte tiempo;&lt;br /&gt;
&lt;br /&gt;
      switch(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;CMD){&lt;br /&gt;
        case READ_VERSION:&lt;br /&gt;
              //dataPacket._byte[1] is len&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[2] = BUZZER_MINOR_VERSION;&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[3] = BUZZER_MAJOR_VERSION;&lt;br /&gt;
              userBuzzerCounter = 0x04;&lt;br /&gt;
              break;  &lt;br /&gt;
              &lt;br /&gt;
        case PRENDER:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_on();&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
        &lt;br /&gt;
        case APAGAR:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_off(); &lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_TRIPLE:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks1 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]);&lt;br /&gt;
              cantTicks2 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[2]);  &lt;br /&gt;
              cantTicks3 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[3]);&lt;br /&gt;
              boubleBeep(cantTicks1, cantTicks2, cantTicks3);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;        &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_CORTO:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks3 = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1];&lt;br /&gt;
              timeOutTicksBuzz = 1; // lo seteo timmer para que venza inmediantamente&lt;br /&gt;
              buzzerState = DELAY;  &lt;br /&gt;
              registerT0event(0, &amp;amp;buzzEvent);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;    &lt;br /&gt;
&lt;br /&gt;
        case RESET:&lt;br /&gt;
              Reset();&lt;br /&gt;
              break;&lt;br /&gt;
     &lt;br /&gt;
         default:&lt;br /&gt;
              break;&lt;br /&gt;
      }//end switch(s)&lt;br /&gt;
      if(userBuzzerCounter != 0){&lt;br /&gt;
            j = 255;&lt;br /&gt;
            while(mUSBGenTxIsBusy() &amp;amp;&amp;amp; j--&amp;gt;0); // pruebo un máximo de 255 veces&lt;br /&gt;
                if(!mUSBGenTxIsBusy())&lt;br /&gt;
                    USBGenWrite2(usrBuzzerHandler, userBuzzerCounter);&lt;br /&gt;
      }//end if            &lt;br /&gt;
}//end UserBuzzerReceived&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este ejemplo se puede apreciar como se reciben los pedidos de comandos desde la aplicación que ejecuta en el computador y como se obtienen los parámetros necesarios para implementar los comandos y se devuelven los datos (en caso de ser requeridos) a la aplicación.&lt;br /&gt;
&lt;br /&gt;
'''6.2 Entrada/Salida en user modules:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las tareas más importantes de los ''usermodules'' es la de realizar entrada/salida con diferentes periféricos electrónicos. Para realizar esta tarea existen dos paradigmas:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Polling&lt;br /&gt;
* Interrupciones&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dentro de la arquitectura USB4all existen formas de que los módulos implementen entrada/salida utilizando estos paradigmas, para el caso de pooling existe un servicio que permite registrar una función para ser ejecutada cuando el procesador esté disponible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addPollingFunction(&amp;amp;UserBuzzerProcessIO);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe soporte para interrupciones mediante el módulo ''DynamicISR'' el cual permite que otros módulos se registren sus rutinas de atención para ser invocadas cuando ocurren interrupciones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addISRFunction(&amp;amp;timmerISRFunction);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una forma que mantiene alta la cohesión del sistema es registrar módulos que se encarguen de esperar un evento en particular y brinde una interfaz para que los ''usermodules'' se registren para ser notificados de eventos generados por el componente de hardware que esta siendo modelado. Dentro de este módulo además se pueden brindar operaciones con mayor nivel de abstracción relacionadas con el componente a modelar. Hoy día se dispone del módulo T0service que se encarga de brindar servicio de timmers a los ''usermodules''. Al igual que el resto de los componentes funciona registrando funciones que son invocadas por el ''basefirmware'' &lt;br /&gt;
&lt;br /&gt;
También existen funciones para desregistrar los ''usermodules'' de las notificaciones, es conveniente realizar la desregistración en la función que implementa el evento de liberación de recursos del módulo.&lt;br /&gt;
&lt;br /&gt;
Por ahora el único componente de hardware del microcontrolador modelado de esta forma es el timmer, pero puede escalarse a otros que requieran ser compartidos por más de un módulo.&lt;br /&gt;
Hay que recordar que la concurrencia implementada es puramente colaborativa entre ''usermodules'' por lo cual se debe tener especial cuidado al programar las funciones que atienden estos eventos ya que si se queda &amp;quot;colgada&amp;quot; va a degradar la disponibilidad de todo el sistema.&lt;br /&gt;
&lt;br /&gt;
Para agregar el ''usermodule'' a la placa de entrada/salida ''usb4all baseboard'' se debe agregar al proyecto el módulo (utilizando el IDE preferido) y realizar la compilación del proyecto&lt;br /&gt;
&lt;br /&gt;
== 7. Servicios de Timers - T0Service ==&lt;br /&gt;
&lt;br /&gt;
T0service es un módulo encargado de brindar primitivas a los ''user modules'' para ser notificados de eventos del timmer.&lt;br /&gt;
La API expuesta es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function must not be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0event(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function only can be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0eventInEvent(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Unregister a event callback. No pending event(s) will invoke it.&lt;br /&gt;
*/&lt;br /&gt;
BOOL unregisterT0event(void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Initialize the service&lt;br /&gt;
*/&lt;br /&gt;
void initT0Service(void);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Estas funciones son implementadas utilizando interrupciones, lo que permite que se interrumpa el código que está ejecutando en los ''usermodules'' para notificarlos de que ocurrió el vencimiento de tiempo que deseaban.&lt;br /&gt;
&lt;br /&gt;
== 8. Detalles de implementación en el firmware ==&lt;br /&gt;
&lt;br /&gt;
El firmware está organizado en diferentes áreas que se mapean en secciones definidas dentro de la memoria ROM correspondiente a la memoria de programa del microcontrolador, para implementar esto se necesita especificar en un archivo llamado linker script dónde están alojadas físicamente (en memoria) estas secciones.&lt;br /&gt;
La forma de realizar este mapeo es editando el archivo lrk asociado al proyecto.&lt;br /&gt;
Existe la directiva CODEPAGE que es utilizada para trabajar con las secciones de programa, permite inicializar datos, constantes, y realizar referencias a las mismas. Tiene el siguiente formato&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
memName es un string ASCII utilizado para identificar una CODEPAGE.&lt;br /&gt;
&lt;br /&gt;
También existe la directiva DATABANK que permite realizar un manejo similar pero sobre la memoria de datos.&lt;br /&gt;
&lt;br /&gt;
La directiva #pragma &lt;br /&gt;
El estándar ANSI C provee a cada implementación de un método para definir constructores únicos, según sea requerido por la arquitectura del procesador a utilizar. Esto es hecho utilizando la directiva #pragma. La directiva #pragma más común en el compilador utilizado (MPLAB C18) identifica la sección de memoria para ser utilizada en el PIC18XXXX. Por ejemplo #pragma code le indica al compilador MPLAB 18 que compile el código C en la sección de programa de la memoria de programa. La sección de código está definida en el linker script asociado para cada dispositivo PIC18XXXX, especificando en que áreas de la memoria de programa pueden ser ejecutadas instrucciones. &lt;br /&gt;
Esta directiva puede ser insertada directamente o puede ser seguida de la dirección en el área de código del procesador destino, permitiendo tener un control total del a memoria de código. &lt;br /&gt;
En el contexto del USB4all esto es muy utilizado, debido a que se separan varias áreas de memoria, las más importantes son la del bootloader, y la correspondiente a los módulos de usuario, tanto para la parte de programa (module_sec) como para la información del módulo que se almacena para gestionarlo (user_sec).&lt;br /&gt;
Otra directiva #pragma común que se utiliza es #pragma udata, la cual se utiliza cuando se aloja memoria para variables, las variables no inicianlizadas definidas después de esta declaración van a utilizar los registros de proposito general para almacenamiento. La arquitectura del PIC18XXXX, se basa en una arquitectura harvard la que a diferencia de la von neumann almacena las variables y las instrucciones en diferentes espacios de memoria. Por tanto las áreas de memoria deben ser explicitamente identificadas.&lt;br /&gt;
&lt;br /&gt;
Por más información, consultar con el manual del compilador C18 (http://www.kevin.org/frc/C18_3.0_getting_started.pdf) en la sección #pragma DIRECTIVE o SECTIONS.&lt;br /&gt;
&lt;br /&gt;
De la forma que se definieron las secciones en el archivo lkr del proyecto (18f4550.lkr) se debe colocar un #pragma code module al comenzar la declaración de los procedimientos del módulo, de esa forma se almacenan en memoria de programa (code section) dentro de la sección module. Si consultamos el linker script podemos ver que está definida la sección module como un alias del área en ROM llamada module_sec&lt;br /&gt;
&lt;br /&gt;
    SECTION	   NAME=module				ROM=module_sec&lt;br /&gt;
&lt;br /&gt;
a su vez module_sec es definida como:&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE   NAME=module_sec   START=0x40AB       END=0x8000 PROTECTED&lt;br /&gt;
&lt;br /&gt;
Lo mismo se debe hacer cuando se definen las funciones que utiliza el módulo para atender eventos y su nombre (estructura uTab):&lt;br /&gt;
&lt;br /&gt;
   #pragma romdata user&lt;br /&gt;
   uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
Como vimos en el ejemplo presentado en la sección escribiendo un ''user module''.&lt;br /&gt;
Hay que tener cuidado de no olvidarse de los #pragmas correspondientes ya que de de lo contrario puede no dar el espacio para compilar el proyecto o no funcionar el mecanismo de callbacks.&lt;br /&gt;
Los archivos lkr también especifican otros conceptos, como ser tamaño de memoria de datos y registros que utiliza, como también tamaño del stack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ANEXO 1 ==&lt;br /&gt;
&lt;br /&gt;
En el enlace [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.c] y [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.h] puede descargarse el código completo del ejemplo presentado como caso de estudio. El mismo puede usarse como esqueleto para desarrollar otros ''user modules''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
El proyecto USB4all se encuentra disponible bajo licencia GNU/GPL v2 en el [http://sourceforge.net/projects/usb4all/ repositorio sorceforge] &amp;lt;br&amp;gt;&lt;br /&gt;
Este proyecto surge originalmente como un trabajo de [http://www.fing.edu.uy/inco/grupos/mina/pGrado/pgusb tesis de grado] en Ingeniería en Computación de Aguirre, Fernandez y Grossy.&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6089</id>
		<title>Usb4all</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6089"/>
				<updated>2014-12-23T21:22:07Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* 5. Entorno de desarrollo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Motivación ==&lt;br /&gt;
&lt;br /&gt;
La motivación de este proyecto se centra en lograr de una manera sencilla, la comunicación entre un sistema computador y un conjunto de dispositivos electrónicos no necesariamente pensados para interactuar con una computadora.&lt;br /&gt;
Durante muchos años la única forma de interactuar con dispositivos externos desde a un computador personal (Personal Computer) (PC) fueron los puertos seriales y paralelos, esto llevo a que se utilizaran ampliamente en multiplicidad de dispositivos. Sus principales características son su simplicidad de manejo vía software y facilidad de inclusión en distintos dispositivos. En la última década han aparecido nuevos medios o canales de comunicación, tales como Bluetooth, Fidelidad Inalámbrica (Wireless Fidelity) (WiFi), FireWire, Bus Universal en Serie (Universal Serial Bus) (USB), etc. Estos permitieron mejorar las velocidades de comunicación y calidad de datos y lentamente tornaron a los puertos paralelos y seriales en obsoletos, hasta llegar al día de hoy en que se obtienen sólo de manera opcional en los nuevos PC.&lt;br /&gt;
Dentro de todas estas nuevas tecnologías que aparecieron la que tuvo mayor aceptación y difusión entre los usuarios fue el USB, debido a su facilidad y versatilidad de escenarios de uso. Esta simplicidad desde el punto de vista del usuario de los dispositivos USB tiene como contrapartida una mayor complejidad para los desarrolladores de software y hardware, lo cual es un gran problema al momento de interactuar con dispositivos electrónicos.&lt;br /&gt;
Frente a estas adversidades que presenta el entorno actual aparece la necesidad de buscar una forma de reducir el grado de complejidad y conocimientos necesarios para poder desarrollar&lt;br /&gt;
software que utilice la tecnología USB. Al mismo tiempo, se requiere una plataforma base que incorpore componentes de hardware reutilizables y que en conjunto formen una solución genérica&lt;br /&gt;
para la comunicación con dispositivos electrónicos diversos.&lt;br /&gt;
En el contexto de lo antedicho aparecen un conjunto de desafíos como son el desarrollo de controladores (drivers) y construcción de piezas de hardware que brinde una solución genérica&lt;br /&gt;
reutilizable, desplazando el manejo de los casos particulares a componentes específicos. Esto proporciona el beneficio de evitar que cada vez que se necesite conectar un nuevo dispositivo,&lt;br /&gt;
se comience desde cero. A su vez permite recuperar y potenciar la característica de facilidad de manejo que poseían los puertos seriales y paralelos, explotando todas las capacidades brindadas por USB.&lt;br /&gt;
&lt;br /&gt;
== 2. Arquitectura (Firmware/Hardware)==&lt;br /&gt;
 &lt;br /&gt;
La arquitectura está compuesta por diferentes componentes, los cuales van a permitir el funcionamiento del sistema desde lo relativo al hardware como las abstracciones necesarias para manejarlo mediante software.&amp;lt;br&amp;gt;&lt;br /&gt;
Los componentes principales son:&lt;br /&gt;
&lt;br /&gt;
'''2.1 USB4all ''Baseboard'''''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:usb4all2.png|thumb|Fig.2.1.1: USB4all Baseboard 2.0]]&lt;br /&gt;
Es una placa de entrada/salida(E/S) configurable que se conecta por USB con un sistema computador. El proyecto USB4all es mucho más que una placa de E/S, en sí es una forma de modelar sistemas embebidos, siendo la placa de E/S  un componente que fue necesario construir para desarrollar la solución completa. Para la construcción de esta placa se utilizó un microcontrolador PIC18F4550 de Microchip. Entre las características más destacadas en lo que concierne al proyecto se encuentra el soporte completo del estándar USB, pudiéndose utilizar varias de sus características, como ser diferentes tipos de transferencias y varios canales de comunicación (endpoints). El diseño de hardware de la placa puede descargarse del [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/pcb/ git del proyecto] permitiendo que cualquiera pueda armarse una USB4all ''baseboard'' utilizando el software GPL [http://www.lis.inpg.fr/realise_au_lis/kicad/ Kicad].&lt;br /&gt;
  &lt;br /&gt;
'''2.2 USB4all ''base firmware'''''&lt;br /&gt;
&lt;br /&gt;
Es el firmware más estático, brinda servicios a los usermodules para que puedan utilizar los recursos presentes en la baseboard (timmers, puerto USB, conversores A/D, etc) además de brindar las primitivas para el intercambio de mensajes entre el computador y el usermodule y realiza la gestión de los ''usermodules''. Establece las bases para que los usermodules sean independientes del protocolo de comunicación computador/placa y de los detalles de hardware del microcontrolador utilizado. A su vez oferce un entorno de ejecución concurrente que permite instanciar de forma dinámica varios ''usermodules''. &lt;br /&gt;
&lt;br /&gt;
'''2.3 USB4all ''usermodule'''''&lt;br /&gt;
&lt;br /&gt;
Son los componentes intercambiables del sistema que permiten encapsular la lógica de un dispositivo especifico y su protocolo de comunicación con las aplicaciones de usuario. Permite al usuario dar rápidamente soporte a un nuevo dispositivo de forma genérica, expandiendo de esta manera las funcionalidades del USB4all ''basefirmware''. Los ''user modules'' son los bloques principales sobre los que se construye la arquitectura USB4all. Exponen una API uniforme que es utilizada a modo de callbacks por el ''base firmware'' y también exponen los servicios que brindan los dispositivos. Es recomendable modelar cada uno de los dispositivos electrónicos conectados a la ''baseboard'' como un ''usermodule'' donde los servicios a exponer se mapean con las características del mismo, como ejemplo en el caso de un motor, sería esperable que expusiera servicios para moverse, cambiar la velocidad y el sentido.&lt;br /&gt;
&lt;br /&gt;
Del lado del sistema computador se dispone de diferentes formas de interacción: Todas ellas implementan el protocolo USB4all, su objetivo es abstraer al usuario del mismo brindando una forma sencilla de utilizar el sistema, existiendo soporte para diferentes lenguajes de programación. El objetivo principal de las bibliotecas utilizadas en el computador son las de permitir utilizar los servicios de los ''usermodules''. Esta forma de trabajo permite desarrollar la lógica de interacción entre los diferentes dispositivos electrónicos dentro del sistema computador, con lenguajes de mayor abstracción, mejores herramientas de desarrollo, permitiendo generar un código con un nivel de mantenibilidad y abstracción mayor al que se lograría si todo estuviera embebido en el microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Uno de los componentes más usados actualmente es el [[bobot]] que persigue un enfoque genérico al igual que el proyecto USB4all y permite acompañar la extensibilidad de la placa USB4all mediante el uso de ciertos componentes propios de la arquitectura llamados drivers.&lt;br /&gt;
&lt;br /&gt;
== 3. Protocolo de Comunicación ==&lt;br /&gt;
&lt;br /&gt;
El protocolo está formado por un stack de protocolos que permiten abstraer al usuario de los detalles subyacentes de la arquitectura. &lt;br /&gt;
El objetivo final del protocolo de comunicación, es direccionar los mensajes provenientes desde la aplicación que se ejecuta en el computador, al ''usermodule'' correspondiente ejecutado en la placa USB4all.&lt;br /&gt;
Estos mensajes son solicitudes de ciertos servicios que los módulos exponen, por ejemplo en el caso de un dispositivo sonoro (buzzer) utilizado para una alarma, va a ser de interés poder emitir sonido (Prender el Buzzer) detener la emisión de sonido (Apagar el Buzzer), hacer sonidos cortos pasando por parámetro la cantidad de milisegundos que se desea esté prendido, etc.&lt;br /&gt;
Estos mensajes se tienen que codificar de alguna manera, el protocolo especifica que primero se debe indicar el comando que se desea se ejecute y luego en caso que sea necesario (como en el de los sonidos cortos) enviar los parámetros. En algunos casos va a ser necesario obtener respuestas, las cuales se codifican de forma análoga usando el mismo protocolo, enviando en lugar de un parámetro un valor de retorno.&lt;br /&gt;
Este protocolo es llamado ''user protocol'' y está enfocado al usuario final, pero para que el sistema funcione correctamente es necesario contar con otros protocolos los cuales transportan el protocolo ''user protocol''. Tal es el caso del handler manager protocol que se encarga de manejar el ruteo de los mensajes al ''user module'' correspondiente. Esto se debe a que en un momento determinado puede haber varios ''user modules'' ejecutando en la placa y el sistema debe permitir notificar del nuevo mensaje al módulo para el cual está destinado el mismo. La tarea fundamental de este protocolo es brindar los mecanismos para comunicar una aplicación con un ''user module''. Otro protocolo involucrado es el ''admin protocol'' el cual se encarga de gestionar el ciclo de vida de los ''user modules'', permitiendo poner a ejecutar un ''user module'', cerrarlo y también algunas funcionalidades como el listar los módulos presentes en la placa, cerrar todos los modulos abiertos o llevar al estado de reset al microcontrolador. Tanto el ''handler protocol'' como el ''admin protocol'' son implementados por las bibliotecas que se utilicen en el computador. Existiendo varias opciones, Java, Python o Lua. Actualmente la opción que se está manteniendo es la de Lua, la cual puede estudiarse en profundidad en la sección [[bobot]].&lt;br /&gt;
&lt;br /&gt;
[[Archivo:protocolo.png|700px|Fig. 3.2 Protocolo USB4all]]&lt;br /&gt;
&lt;br /&gt;
Finalmente los paquetes USB4all se trasmiten por el protocolo de comunicación que disponga el ''baseboard'', para el caso típico del ''baseboard usb4all'' se trasmite mediante USB, pero puede ser trasmitido mediante otras tecnologías utilizadas para comunicarse con un computador, como ser serial o bluetooth (entre otros).&lt;br /&gt;
&lt;br /&gt;
== 4. Grabando el Firmware ==&lt;br /&gt;
[[Archivo:usb4all2_top_view.png|thumb|Fig.4.1: USB4all Baseboard 2.0 vista desde arriba]]&lt;br /&gt;
Para grabar el firmware se necesita disponer de un programador hardware, como el picdem o el pickit, este último tiene buen soporte dentro de GNU/Linux.&lt;br /&gt;
Microchip distribuye un bootloader para la familia de microcontroladores 18F. Un bootloader es un programa que se utiliza para grabar y/o actualizar el firmware. En nuestro caso, va a permitr grabar el firmware del proyecto USB4all sin la necesidad de disponer de un programador por hardware, para realizar esto es necesario dejar presionado el botón de programación como puede verse en la figura 4.1 mientras se resetea la placa con el botón de reset. Esto funciona siempre y cuando el microcontrolador tenga grabado el bootloader.&lt;br /&gt;
Una vez que el dispositivo se encuentra en modo programación su identificador de producto cambia de 000c a 000b, esto puede verificarse utilizando el comando ''lsusb'' cuya salida se adjunta para los dos casos a continuación:&lt;br /&gt;
&lt;br /&gt;
Id dispositivo USB4all&lt;br /&gt;
    Bus 002 Device 002: ID 04d8:000c Microchip Technology, Inc. &lt;br /&gt;
&lt;br /&gt;
id dispositivo Bootloader&lt;br /&gt;
    Bus 002 Device 003: ID 04d8:000b Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
Dado que Microchip no distribuye microcontroladores con el bootlader previamente grabado, es necesario utilizar un programador por hardware para grabar el bootloader.&lt;br /&gt;
USB4all actualmente utiliza un bootloader modificado que permite actualizar el firmware programáticamente sin necesidad de presionar los botones, útil a la hora de realizar actualizaciones remotas, pero responde a los mismos comandos que el bootloader de Microchip, lo cual permite reutilizar el software ya desarrollado para interactuar con el bootloader.&lt;br /&gt;
Los fuentes del bootloader pueden encontrarse en el repositorio en el directorio bootloader del firmware, es un proyecto separado y una vez compilado su grabación se realiza mediante un programador por hardware como picdem o pickit. &lt;br /&gt;
Una vez grabado el bootloader ya '''no es necesario utilizar programadores por hardware''' y puede realizarse la grabación del firmware mediante varios programas que implementan el protocolo de grabación de firmware de microchip. Una de esas utilidades es el programa fsusb el cual puede encontrarse en [http://www.internetking.org/fsusb/] y es de código libre. Su uso se realiza de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
    ./fsusb --program usb4all2.hex&lt;br /&gt;
&lt;br /&gt;
Donde usb4all2.hex es el binario generado como resultado de compilar el proyecto. Recordar que el hardware debe estar en modo bootloader para poder recibir el firmware.&lt;br /&gt;
&lt;br /&gt;
==== 4.1 Grabando Bootloader + Firmware ====&lt;br /&gt;
Una manera rápida, luego que se tiene acceso a un programador, es grabar el bootloader correspondiente y algún firmware (todo junto).&lt;br /&gt;
Para eso pueden usar este .hex:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/files/firmware/bootloader_con_admin.hex bootloader_con_admin.hex]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nota.''' Ahora es posible grabar el firmware fácilmente mediante la siguiente actividad [[Grabar Firmware|Grabar Firmware]].&lt;br /&gt;
&lt;br /&gt;
== 5. Entorno de desarrollo ==&lt;br /&gt;
[[Archivo:piklab.png|thumb|Fig. 5.1:Entorno de desarrollor con Piklab en GNU/Linux]][[Archivo:mplab.png|thumb|Fig. 5.2: Entorno de desarrollo con MPLab en GNU/Linux]]&lt;br /&gt;
El proyecto USB4all está desarrollado para el compilador C18 de Microchip, hoy día se dispone de un buen soporte del mismo para GNU/Linux pudiéndose descargar de [http://ww1.microchip.com/downloads/MPLAB/X_Beta/installer.html] también se dispone de un entorno de desarrollo llamado MPLab el cual también se encuentra disponible para GNU/Linux en la misma dirección.&lt;br /&gt;
Hace un tiempo atrás no existía compatibilidad para GNU/Linux de estas herramientas clásicas para los ambientes Windows en GNU/Linux. Debiéndose recurrir a alternativas para trabajar en un ambiente GNU/Linux, una opción era Piklab. Piklab es un entorno de desarrollo para trabajar con microcontroladores PIC similar a lo que es MPLab. Era muy común utilizar la versión de C18 de Windows emulada mediante wine en GNU/Linux debiéndose configurar en las opciones de toolchain de PIKLab correspondientes a C18 para que apunten correctamente a los directorios donde se encuentra el compilador C18. En el repositorio puede encontrarse un proyecto piklab configurado de esta manera. Más información sobre la configuración de c18 con piklab en linux (deprecated) ver: [http://cantareus.com/2009/08/18f4550-and-18f2550-with-piklab-and-ubuntu/]&lt;br /&gt;
&amp;lt;br&amp;gt;Luego de compilar, cargar el binario generado (.hex) en la placa mediante el uso del bootloader que se incluye en el firmware. Esto puede realizarse utilizando la herramienta fsusb como se describe en la sección Grabando el Firmware.&lt;br /&gt;
&lt;br /&gt;
'''Nota.''' Para sistemas de 64 bits se debe tener instalada la librería ia32-libs.&lt;br /&gt;
&lt;br /&gt;
= 5. Entorno de desarrollo =&lt;br /&gt;
&lt;br /&gt;
== 6. Escribiendo un ''usermodule'' ==&lt;br /&gt;
Un ''usermodule'' es el bloque sobre el cual se representa una realidad y se modela utilizando la arquitectura ''USB4all'', en esta sección se presentan sus características, estructura necesaria para especificar los servicios que brinda y de que forma se anexa al ''basefirmware''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:user_module.png|thumb|Fig. 6.1: Tabla de referencias a ''user modules'']]&lt;br /&gt;
&lt;br /&gt;
'''6.1 Estructura de un ''usermodule:'' '''&amp;lt;br&amp;gt;&lt;br /&gt;
Un ''usermodule'' debe cumplir con una API determinada, de esta manera es posible agregar las funcionalidades que el módulo expone, dentro del ''basefirmware''.&lt;br /&gt;
Las operaciones principales que se deben implementar son las encargadas de atender los eventos de:&lt;br /&gt;
* inicialización&lt;br /&gt;
* liberación de recursos&lt;br /&gt;
* configuración &lt;br /&gt;
&lt;br /&gt;
Estas operaciones se ejecutan en determinados momentos del ciclo de vida de una aplicación USB4all, siendo la operación registrada al evento de inicialización invocada al abrir desde la aplicación el ''usermodule'' y la de liberación de recursos al cerrarlo, esto permite utilizar los recursos del microcontrolador solo cuando es necesario. La operación de configuración puede invocarse en cualquier momento para cambiar en caliente algún aspecto de configuración del hardware.&lt;br /&gt;
Al comenzar un ''usermodule'' se debe declarar cuales van a ser las funciones que van a atender estos eventos y el nombre del módulo para ser identificado desde el computador al listar los módulos presentes en la placa.&lt;br /&gt;
&lt;br /&gt;
    #pragma romdata user&lt;br /&gt;
    uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
    #pragma code&lt;br /&gt;
&lt;br /&gt;
Donde user es el nombre de la sección y uTab es una estructura para almacenar las posiciones de memoria de las operaciones que exporta el módulo y su nombre. En la sección detalles de implementación en el firmware se puede conocer más sobre el significado de la instrucción #pragma romdata user, podemos por el momento asumir que sirve para almacenar la estructura uTab en un lugar conocido dentro de la memoria de programa. &lt;br /&gt;
&lt;br /&gt;
El ''basefirmware'' se encarga de pasar como argumento a la operación init el número de handler asignado al módulo, este número es utilizado como argumento en otras operaciones como ser ''setHandlerReceiveFunction'' la cual recibe por parámetro el handler y un puntero a la función encargada de manejar la recepción de datos. &lt;br /&gt;
Otra operación que necesita el ''handlerID'' es ''getSharedBuffer'' la cual recibe por parámetro el ''handlerID'' del módulo y retorna un buffer por el cual el módulo puede enviar datos a la aplicación que ejecuta en el computador.    &lt;br /&gt;
Un buen lugar para obtener este buffer y registrar la función de recepción de datos es la operación encargada del evento de inicialización. A continuación puede verse como ejemplo la inicialización de un módulo de usuario para controlar un buzzer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerInit(byte i) {&lt;br /&gt;
    usrBuzzerHandler = i;&lt;br /&gt;
    // add my receive function to the handler module, to be called automatically when the pc sends data to the user module&lt;br /&gt;
    setHandlerReceiveFunction(usrBuzzerHandler,&amp;amp;UserBuzzerReceived);&lt;br /&gt;
    // initialize the send buffer, used to send data to the PC&lt;br /&gt;
    sendBufferUsrBuzzer = getSharedBuffer(usrBuzzerHandler);&lt;br /&gt;
}//end UserBuzzerInit &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función de recepción de datos es la encargada de implementar el protocolo de comunicación entre el ''usermodule'' y la aplicación, típicamente es una estructura tipo ''case'' en el que se espera por los diferentes comandos que pueden enviarse. La forma de codificar el pedido de servicios es mediante mensajes del tipo &amp;lt; COMANDO [argumento1] [argumento2]...[argumentoN] &amp;gt;. La respuesta debe ser del tipo &amp;lt; COMANDO [resultado1] [resultado2]..[resultadoN] &amp;gt;. El buffer para enviar datos al computador es obtenido como argumento de la función y el buffer para enviar datos fue obtenido previamente en la función de inicialización.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerReceived(byte* recBuffPtr, byte len){&lt;br /&gt;
      byte index;&lt;br /&gt;
      byte j;  &lt;br /&gt;
      byte userBuzzerCounter = 0;&lt;br /&gt;
      byte tiempo;&lt;br /&gt;
&lt;br /&gt;
      switch(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;CMD){&lt;br /&gt;
        case READ_VERSION:&lt;br /&gt;
              //dataPacket._byte[1] is len&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[2] = BUZZER_MINOR_VERSION;&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[3] = BUZZER_MAJOR_VERSION;&lt;br /&gt;
              userBuzzerCounter = 0x04;&lt;br /&gt;
              break;  &lt;br /&gt;
              &lt;br /&gt;
        case PRENDER:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_on();&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
        &lt;br /&gt;
        case APAGAR:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_off(); &lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_TRIPLE:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks1 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]);&lt;br /&gt;
              cantTicks2 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[2]);  &lt;br /&gt;
              cantTicks3 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[3]);&lt;br /&gt;
              boubleBeep(cantTicks1, cantTicks2, cantTicks3);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;        &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_CORTO:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks3 = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1];&lt;br /&gt;
              timeOutTicksBuzz = 1; // lo seteo timmer para que venza inmediantamente&lt;br /&gt;
              buzzerState = DELAY;  &lt;br /&gt;
              registerT0event(0, &amp;amp;buzzEvent);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;    &lt;br /&gt;
&lt;br /&gt;
        case RESET:&lt;br /&gt;
              Reset();&lt;br /&gt;
              break;&lt;br /&gt;
     &lt;br /&gt;
         default:&lt;br /&gt;
              break;&lt;br /&gt;
      }//end switch(s)&lt;br /&gt;
      if(userBuzzerCounter != 0){&lt;br /&gt;
            j = 255;&lt;br /&gt;
            while(mUSBGenTxIsBusy() &amp;amp;&amp;amp; j--&amp;gt;0); // pruebo un máximo de 255 veces&lt;br /&gt;
                if(!mUSBGenTxIsBusy())&lt;br /&gt;
                    USBGenWrite2(usrBuzzerHandler, userBuzzerCounter);&lt;br /&gt;
      }//end if            &lt;br /&gt;
}//end UserBuzzerReceived&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este ejemplo se puede apreciar como se reciben los pedidos de comandos desde la aplicación que ejecuta en el computador y como se obtienen los parámetros necesarios para implementar los comandos y se devuelven los datos (en caso de ser requeridos) a la aplicación.&lt;br /&gt;
&lt;br /&gt;
'''6.2 Entrada/Salida en user modules:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las tareas más importantes de los ''usermodules'' es la de realizar entrada/salida con diferentes periféricos electrónicos. Para realizar esta tarea existen dos paradigmas:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Polling&lt;br /&gt;
* Interrupciones&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dentro de la arquitectura USB4all existen formas de que los módulos implementen entrada/salida utilizando estos paradigmas, para el caso de pooling existe un servicio que permite registrar una función para ser ejecutada cuando el procesador esté disponible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addPollingFunction(&amp;amp;UserBuzzerProcessIO);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe soporte para interrupciones mediante el módulo ''DynamicISR'' el cual permite que otros módulos se registren sus rutinas de atención para ser invocadas cuando ocurren interrupciones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addISRFunction(&amp;amp;timmerISRFunction);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una forma que mantiene alta la cohesión del sistema es registrar módulos que se encarguen de esperar un evento en particular y brinde una interfaz para que los ''usermodules'' se registren para ser notificados de eventos generados por el componente de hardware que esta siendo modelado. Dentro de este módulo además se pueden brindar operaciones con mayor nivel de abstracción relacionadas con el componente a modelar. Hoy día se dispone del módulo T0service que se encarga de brindar servicio de timmers a los ''usermodules''. Al igual que el resto de los componentes funciona registrando funciones que son invocadas por el ''basefirmware'' &lt;br /&gt;
&lt;br /&gt;
También existen funciones para desregistrar los ''usermodules'' de las notificaciones, es conveniente realizar la desregistración en la función que implementa el evento de liberación de recursos del módulo.&lt;br /&gt;
&lt;br /&gt;
Por ahora el único componente de hardware del microcontrolador modelado de esta forma es el timmer, pero puede escalarse a otros que requieran ser compartidos por más de un módulo.&lt;br /&gt;
Hay que recordar que la concurrencia implementada es puramente colaborativa entre ''usermodules'' por lo cual se debe tener especial cuidado al programar las funciones que atienden estos eventos ya que si se queda &amp;quot;colgada&amp;quot; va a degradar la disponibilidad de todo el sistema.&lt;br /&gt;
&lt;br /&gt;
Para agregar el ''usermodule'' a la placa de entrada/salida ''usb4all baseboard'' se debe agregar al proyecto el módulo (utilizando el IDE preferido) y realizar la compilación del proyecto&lt;br /&gt;
&lt;br /&gt;
== 7. Servicios de Timers - T0Service ==&lt;br /&gt;
&lt;br /&gt;
T0service es un módulo encargado de brindar primitivas a los ''user modules'' para ser notificados de eventos del timmer.&lt;br /&gt;
La API expuesta es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function must not be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0event(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function only can be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0eventInEvent(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Unregister a event callback. No pending event(s) will invoke it.&lt;br /&gt;
*/&lt;br /&gt;
BOOL unregisterT0event(void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Initialize the service&lt;br /&gt;
*/&lt;br /&gt;
void initT0Service(void);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Estas funciones son implementadas utilizando interrupciones, lo que permite que se interrumpa el código que está ejecutando en los ''usermodules'' para notificarlos de que ocurrió el vencimiento de tiempo que deseaban.&lt;br /&gt;
&lt;br /&gt;
== 8. Detalles de implementación en el firmware ==&lt;br /&gt;
&lt;br /&gt;
El firmware está organizado en diferentes áreas que se mapean en secciones definidas dentro de la memoria ROM correspondiente a la memoria de programa del microcontrolador, para implementar esto se necesita especificar en un archivo llamado linker script dónde están alojadas físicamente (en memoria) estas secciones.&lt;br /&gt;
La forma de realizar este mapeo es editando el archivo lrk asociado al proyecto.&lt;br /&gt;
Existe la directiva CODEPAGE que es utilizada para trabajar con las secciones de programa, permite inicializar datos, constantes, y realizar referencias a las mismas. Tiene el siguiente formato&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
memName es un string ASCII utilizado para identificar una CODEPAGE.&lt;br /&gt;
&lt;br /&gt;
También existe la directiva DATABANK que permite realizar un manejo similar pero sobre la memoria de datos.&lt;br /&gt;
&lt;br /&gt;
La directiva #pragma &lt;br /&gt;
El estándar ANSI C provee a cada implementación de un método para definir constructores únicos, según sea requerido por la arquitectura del procesador a utilizar. Esto es hecho utilizando la directiva #pragma. La directiva #pragma más común en el compilador utilizado (MPLAB C18) identifica la sección de memoria para ser utilizada en el PIC18XXXX. Por ejemplo #pragma code le indica al compilador MPLAB 18 que compile el código C en la sección de programa de la memoria de programa. La sección de código está definida en el linker script asociado para cada dispositivo PIC18XXXX, especificando en que áreas de la memoria de programa pueden ser ejecutadas instrucciones. &lt;br /&gt;
Esta directiva puede ser insertada directamente o puede ser seguida de la dirección en el área de código del procesador destino, permitiendo tener un control total del a memoria de código. &lt;br /&gt;
En el contexto del USB4all esto es muy utilizado, debido a que se separan varias áreas de memoria, las más importantes son la del bootloader, y la correspondiente a los módulos de usuario, tanto para la parte de programa (module_sec) como para la información del módulo que se almacena para gestionarlo (user_sec).&lt;br /&gt;
Otra directiva #pragma común que se utiliza es #pragma udata, la cual se utiliza cuando se aloja memoria para variables, las variables no inicianlizadas definidas después de esta declaración van a utilizar los registros de proposito general para almacenamiento. La arquitectura del PIC18XXXX, se basa en una arquitectura harvard la que a diferencia de la von neumann almacena las variables y las instrucciones en diferentes espacios de memoria. Por tanto las áreas de memoria deben ser explicitamente identificadas.&lt;br /&gt;
&lt;br /&gt;
Por más información, consultar con el manual del compilador C18 (http://www.kevin.org/frc/C18_3.0_getting_started.pdf) en la sección #pragma DIRECTIVE o SECTIONS.&lt;br /&gt;
&lt;br /&gt;
De la forma que se definieron las secciones en el archivo lkr del proyecto (18f4550.lkr) se debe colocar un #pragma code module al comenzar la declaración de los procedimientos del módulo, de esa forma se almacenan en memoria de programa (code section) dentro de la sección module. Si consultamos el linker script podemos ver que está definida la sección module como un alias del área en ROM llamada module_sec&lt;br /&gt;
&lt;br /&gt;
    SECTION	   NAME=module				ROM=module_sec&lt;br /&gt;
&lt;br /&gt;
a su vez module_sec es definida como:&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE   NAME=module_sec   START=0x40AB       END=0x8000 PROTECTED&lt;br /&gt;
&lt;br /&gt;
Lo mismo se debe hacer cuando se definen las funciones que utiliza el módulo para atender eventos y su nombre (estructura uTab):&lt;br /&gt;
&lt;br /&gt;
   #pragma romdata user&lt;br /&gt;
   uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
Como vimos en el ejemplo presentado en la sección escribiendo un ''user module''.&lt;br /&gt;
Hay que tener cuidado de no olvidarse de los #pragmas correspondientes ya que de de lo contrario puede no dar el espacio para compilar el proyecto o no funcionar el mecanismo de callbacks.&lt;br /&gt;
Los archivos lkr también especifican otros conceptos, como ser tamaño de memoria de datos y registros que utiliza, como también tamaño del stack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ANEXO 1 ==&lt;br /&gt;
&lt;br /&gt;
En el enlace [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.c] y [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.h] puede descargarse el código completo del ejemplo presentado como caso de estudio. El mismo puede usarse como esqueleto para desarrollar otros ''user modules''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
El proyecto USB4all se encuentra disponible bajo licencia GNU/GPL v2 en el [http://sourceforge.net/projects/usb4all/ repositorio sorceforge] &amp;lt;br&amp;gt;&lt;br /&gt;
Este proyecto surge originalmente como un trabajo de [http://www.fing.edu.uy/inco/grupos/mina/pGrado/pgusb tesis de grado] en Ingeniería en Computación de Aguirre, Fernandez y Grossy.&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6088</id>
		<title>Usb4all</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Usb4all&amp;diff=6088"/>
				<updated>2014-12-23T21:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* 5. Entorno de desarrollo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Motivación ==&lt;br /&gt;
&lt;br /&gt;
La motivación de este proyecto se centra en lograr de una manera sencilla, la comunicación entre un sistema computador y un conjunto de dispositivos electrónicos no necesariamente pensados para interactuar con una computadora.&lt;br /&gt;
Durante muchos años la única forma de interactuar con dispositivos externos desde a un computador personal (Personal Computer) (PC) fueron los puertos seriales y paralelos, esto llevo a que se utilizaran ampliamente en multiplicidad de dispositivos. Sus principales características son su simplicidad de manejo vía software y facilidad de inclusión en distintos dispositivos. En la última década han aparecido nuevos medios o canales de comunicación, tales como Bluetooth, Fidelidad Inalámbrica (Wireless Fidelity) (WiFi), FireWire, Bus Universal en Serie (Universal Serial Bus) (USB), etc. Estos permitieron mejorar las velocidades de comunicación y calidad de datos y lentamente tornaron a los puertos paralelos y seriales en obsoletos, hasta llegar al día de hoy en que se obtienen sólo de manera opcional en los nuevos PC.&lt;br /&gt;
Dentro de todas estas nuevas tecnologías que aparecieron la que tuvo mayor aceptación y difusión entre los usuarios fue el USB, debido a su facilidad y versatilidad de escenarios de uso. Esta simplicidad desde el punto de vista del usuario de los dispositivos USB tiene como contrapartida una mayor complejidad para los desarrolladores de software y hardware, lo cual es un gran problema al momento de interactuar con dispositivos electrónicos.&lt;br /&gt;
Frente a estas adversidades que presenta el entorno actual aparece la necesidad de buscar una forma de reducir el grado de complejidad y conocimientos necesarios para poder desarrollar&lt;br /&gt;
software que utilice la tecnología USB. Al mismo tiempo, se requiere una plataforma base que incorpore componentes de hardware reutilizables y que en conjunto formen una solución genérica&lt;br /&gt;
para la comunicación con dispositivos electrónicos diversos.&lt;br /&gt;
En el contexto de lo antedicho aparecen un conjunto de desafíos como son el desarrollo de controladores (drivers) y construcción de piezas de hardware que brinde una solución genérica&lt;br /&gt;
reutilizable, desplazando el manejo de los casos particulares a componentes específicos. Esto proporciona el beneficio de evitar que cada vez que se necesite conectar un nuevo dispositivo,&lt;br /&gt;
se comience desde cero. A su vez permite recuperar y potenciar la característica de facilidad de manejo que poseían los puertos seriales y paralelos, explotando todas las capacidades brindadas por USB.&lt;br /&gt;
&lt;br /&gt;
== 2. Arquitectura (Firmware/Hardware)==&lt;br /&gt;
 &lt;br /&gt;
La arquitectura está compuesta por diferentes componentes, los cuales van a permitir el funcionamiento del sistema desde lo relativo al hardware como las abstracciones necesarias para manejarlo mediante software.&amp;lt;br&amp;gt;&lt;br /&gt;
Los componentes principales son:&lt;br /&gt;
&lt;br /&gt;
'''2.1 USB4all ''Baseboard'''''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:usb4all2.png|thumb|Fig.2.1.1: USB4all Baseboard 2.0]]&lt;br /&gt;
Es una placa de entrada/salida(E/S) configurable que se conecta por USB con un sistema computador. El proyecto USB4all es mucho más que una placa de E/S, en sí es una forma de modelar sistemas embebidos, siendo la placa de E/S  un componente que fue necesario construir para desarrollar la solución completa. Para la construcción de esta placa se utilizó un microcontrolador PIC18F4550 de Microchip. Entre las características más destacadas en lo que concierne al proyecto se encuentra el soporte completo del estándar USB, pudiéndose utilizar varias de sus características, como ser diferentes tipos de transferencias y varios canales de comunicación (endpoints). El diseño de hardware de la placa puede descargarse del [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/pcb/ git del proyecto] permitiendo que cualquiera pueda armarse una USB4all ''baseboard'' utilizando el software GPL [http://www.lis.inpg.fr/realise_au_lis/kicad/ Kicad].&lt;br /&gt;
  &lt;br /&gt;
'''2.2 USB4all ''base firmware'''''&lt;br /&gt;
&lt;br /&gt;
Es el firmware más estático, brinda servicios a los usermodules para que puedan utilizar los recursos presentes en la baseboard (timmers, puerto USB, conversores A/D, etc) además de brindar las primitivas para el intercambio de mensajes entre el computador y el usermodule y realiza la gestión de los ''usermodules''. Establece las bases para que los usermodules sean independientes del protocolo de comunicación computador/placa y de los detalles de hardware del microcontrolador utilizado. A su vez oferce un entorno de ejecución concurrente que permite instanciar de forma dinámica varios ''usermodules''. &lt;br /&gt;
&lt;br /&gt;
'''2.3 USB4all ''usermodule'''''&lt;br /&gt;
&lt;br /&gt;
Son los componentes intercambiables del sistema que permiten encapsular la lógica de un dispositivo especifico y su protocolo de comunicación con las aplicaciones de usuario. Permite al usuario dar rápidamente soporte a un nuevo dispositivo de forma genérica, expandiendo de esta manera las funcionalidades del USB4all ''basefirmware''. Los ''user modules'' son los bloques principales sobre los que se construye la arquitectura USB4all. Exponen una API uniforme que es utilizada a modo de callbacks por el ''base firmware'' y también exponen los servicios que brindan los dispositivos. Es recomendable modelar cada uno de los dispositivos electrónicos conectados a la ''baseboard'' como un ''usermodule'' donde los servicios a exponer se mapean con las características del mismo, como ejemplo en el caso de un motor, sería esperable que expusiera servicios para moverse, cambiar la velocidad y el sentido.&lt;br /&gt;
&lt;br /&gt;
Del lado del sistema computador se dispone de diferentes formas de interacción: Todas ellas implementan el protocolo USB4all, su objetivo es abstraer al usuario del mismo brindando una forma sencilla de utilizar el sistema, existiendo soporte para diferentes lenguajes de programación. El objetivo principal de las bibliotecas utilizadas en el computador son las de permitir utilizar los servicios de los ''usermodules''. Esta forma de trabajo permite desarrollar la lógica de interacción entre los diferentes dispositivos electrónicos dentro del sistema computador, con lenguajes de mayor abstracción, mejores herramientas de desarrollo, permitiendo generar un código con un nivel de mantenibilidad y abstracción mayor al que se lograría si todo estuviera embebido en el microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Uno de los componentes más usados actualmente es el [[bobot]] que persigue un enfoque genérico al igual que el proyecto USB4all y permite acompañar la extensibilidad de la placa USB4all mediante el uso de ciertos componentes propios de la arquitectura llamados drivers.&lt;br /&gt;
&lt;br /&gt;
== 3. Protocolo de Comunicación ==&lt;br /&gt;
&lt;br /&gt;
El protocolo está formado por un stack de protocolos que permiten abstraer al usuario de los detalles subyacentes de la arquitectura. &lt;br /&gt;
El objetivo final del protocolo de comunicación, es direccionar los mensajes provenientes desde la aplicación que se ejecuta en el computador, al ''usermodule'' correspondiente ejecutado en la placa USB4all.&lt;br /&gt;
Estos mensajes son solicitudes de ciertos servicios que los módulos exponen, por ejemplo en el caso de un dispositivo sonoro (buzzer) utilizado para una alarma, va a ser de interés poder emitir sonido (Prender el Buzzer) detener la emisión de sonido (Apagar el Buzzer), hacer sonidos cortos pasando por parámetro la cantidad de milisegundos que se desea esté prendido, etc.&lt;br /&gt;
Estos mensajes se tienen que codificar de alguna manera, el protocolo especifica que primero se debe indicar el comando que se desea se ejecute y luego en caso que sea necesario (como en el de los sonidos cortos) enviar los parámetros. En algunos casos va a ser necesario obtener respuestas, las cuales se codifican de forma análoga usando el mismo protocolo, enviando en lugar de un parámetro un valor de retorno.&lt;br /&gt;
Este protocolo es llamado ''user protocol'' y está enfocado al usuario final, pero para que el sistema funcione correctamente es necesario contar con otros protocolos los cuales transportan el protocolo ''user protocol''. Tal es el caso del handler manager protocol que se encarga de manejar el ruteo de los mensajes al ''user module'' correspondiente. Esto se debe a que en un momento determinado puede haber varios ''user modules'' ejecutando en la placa y el sistema debe permitir notificar del nuevo mensaje al módulo para el cual está destinado el mismo. La tarea fundamental de este protocolo es brindar los mecanismos para comunicar una aplicación con un ''user module''. Otro protocolo involucrado es el ''admin protocol'' el cual se encarga de gestionar el ciclo de vida de los ''user modules'', permitiendo poner a ejecutar un ''user module'', cerrarlo y también algunas funcionalidades como el listar los módulos presentes en la placa, cerrar todos los modulos abiertos o llevar al estado de reset al microcontrolador. Tanto el ''handler protocol'' como el ''admin protocol'' son implementados por las bibliotecas que se utilicen en el computador. Existiendo varias opciones, Java, Python o Lua. Actualmente la opción que se está manteniendo es la de Lua, la cual puede estudiarse en profundidad en la sección [[bobot]].&lt;br /&gt;
&lt;br /&gt;
[[Archivo:protocolo.png|700px|Fig. 3.2 Protocolo USB4all]]&lt;br /&gt;
&lt;br /&gt;
Finalmente los paquetes USB4all se trasmiten por el protocolo de comunicación que disponga el ''baseboard'', para el caso típico del ''baseboard usb4all'' se trasmite mediante USB, pero puede ser trasmitido mediante otras tecnologías utilizadas para comunicarse con un computador, como ser serial o bluetooth (entre otros).&lt;br /&gt;
&lt;br /&gt;
== 4. Grabando el Firmware ==&lt;br /&gt;
[[Archivo:usb4all2_top_view.png|thumb|Fig.4.1: USB4all Baseboard 2.0 vista desde arriba]]&lt;br /&gt;
Para grabar el firmware se necesita disponer de un programador hardware, como el picdem o el pickit, este último tiene buen soporte dentro de GNU/Linux.&lt;br /&gt;
Microchip distribuye un bootloader para la familia de microcontroladores 18F. Un bootloader es un programa que se utiliza para grabar y/o actualizar el firmware. En nuestro caso, va a permitr grabar el firmware del proyecto USB4all sin la necesidad de disponer de un programador por hardware, para realizar esto es necesario dejar presionado el botón de programación como puede verse en la figura 4.1 mientras se resetea la placa con el botón de reset. Esto funciona siempre y cuando el microcontrolador tenga grabado el bootloader.&lt;br /&gt;
Una vez que el dispositivo se encuentra en modo programación su identificador de producto cambia de 000c a 000b, esto puede verificarse utilizando el comando ''lsusb'' cuya salida se adjunta para los dos casos a continuación:&lt;br /&gt;
&lt;br /&gt;
Id dispositivo USB4all&lt;br /&gt;
    Bus 002 Device 002: ID 04d8:000c Microchip Technology, Inc. &lt;br /&gt;
&lt;br /&gt;
id dispositivo Bootloader&lt;br /&gt;
    Bus 002 Device 003: ID 04d8:000b Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
Dado que Microchip no distribuye microcontroladores con el bootlader previamente grabado, es necesario utilizar un programador por hardware para grabar el bootloader.&lt;br /&gt;
USB4all actualmente utiliza un bootloader modificado que permite actualizar el firmware programáticamente sin necesidad de presionar los botones, útil a la hora de realizar actualizaciones remotas, pero responde a los mismos comandos que el bootloader de Microchip, lo cual permite reutilizar el software ya desarrollado para interactuar con el bootloader.&lt;br /&gt;
Los fuentes del bootloader pueden encontrarse en el repositorio en el directorio bootloader del firmware, es un proyecto separado y una vez compilado su grabación se realiza mediante un programador por hardware como picdem o pickit. &lt;br /&gt;
Una vez grabado el bootloader ya '''no es necesario utilizar programadores por hardware''' y puede realizarse la grabación del firmware mediante varios programas que implementan el protocolo de grabación de firmware de microchip. Una de esas utilidades es el programa fsusb el cual puede encontrarse en [http://www.internetking.org/fsusb/] y es de código libre. Su uso se realiza de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
    ./fsusb --program usb4all2.hex&lt;br /&gt;
&lt;br /&gt;
Donde usb4all2.hex es el binario generado como resultado de compilar el proyecto. Recordar que el hardware debe estar en modo bootloader para poder recibir el firmware.&lt;br /&gt;
&lt;br /&gt;
==== 4.1 Grabando Bootloader + Firmware ====&lt;br /&gt;
Una manera rápida, luego que se tiene acceso a un programador, es grabar el bootloader correspondiente y algún firmware (todo junto).&lt;br /&gt;
Para eso pueden usar este .hex:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/files/firmware/bootloader_con_admin.hex bootloader_con_admin.hex]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nota.''' Ahora es posible grabar el firmware fácilmente mediante la siguiente actividad [[Grabar Firmware|Grabar Firmware]].&lt;br /&gt;
&lt;br /&gt;
== 5. Entorno de desarrollo ==&lt;br /&gt;
[[Archivo:piklab.png|thumb|Fig. 5.1:Entorno de desarrollor con Piklab en GNU/Linux]][[Archivo:mplab.png|thumb|Fig. 5.2: Entorno de desarrollo con MPLab en GNU/Linux]]&lt;br /&gt;
El proyecto USB4all está desarrollado para el compilador C18 de Microchip, hoy día se dispone de un buen soporte del mismo para GNU/Linux pudiéndose descargar de [http://ww1.microchip.com/downloads/MPLAB/X_Beta/installer.html] también se dispone de un entorno de desarrollo llamado MPLab el cual también se encuentra disponible para GNU/Linux en la misma dirección.&lt;br /&gt;
Hace un tiempo atrás no existía compatibilidad para GNU/Linux de estas herramientas clásicas para los ambientes Windows en GNU/Linux. Debiéndose recurrir a alternativas para trabajar en un ambiente GNU/Linux, una opción era Piklab. Piklab es un entorno de desarrollo para trabajar con microcontroladores PIC similar a lo que es MPLab. Era muy común utilizar la versión de C18 de Windows emulada mediante wine en GNU/Linux debiéndose configurar en las opciones de toolchain de PIKLab correspondientes a C18 para que apunten correctamente a los directorios donde se encuentra el compilador C18. En el repositorio puede encontrarse un proyecto piklab configurado de esta manera. Más información sobre la configuración de c18 con piklab en linux (deprecated) ver: [http://cantareus.com/2009/08/18f4550-and-18f2550-with-piklab-and-ubuntu/]&lt;br /&gt;
&amp;lt;br&amp;gt;Luego de compilar, cargar el binario generado (.hex) en la placa mediante el uso del bootloader que se incluye en el firmware. Esto puede realizarse utilizando la herramienta fsusb como se describe en la sección Grabando el Firmware.&lt;br /&gt;
&lt;br /&gt;
'''Nota.''' Para sistemas de 64 bits se debe tener instalada la librería ia32-libs.&lt;br /&gt;
= 5. Entorno de desarrollo =&lt;br /&gt;
&lt;br /&gt;
== 6. Escribiendo un ''usermodule'' ==&lt;br /&gt;
Un ''usermodule'' es el bloque sobre el cual se representa una realidad y se modela utilizando la arquitectura ''USB4all'', en esta sección se presentan sus características, estructura necesaria para especificar los servicios que brinda y de que forma se anexa al ''basefirmware''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:user_module.png|thumb|Fig. 6.1: Tabla de referencias a ''user modules'']]&lt;br /&gt;
&lt;br /&gt;
'''6.1 Estructura de un ''usermodule:'' '''&amp;lt;br&amp;gt;&lt;br /&gt;
Un ''usermodule'' debe cumplir con una API determinada, de esta manera es posible agregar las funcionalidades que el módulo expone, dentro del ''basefirmware''.&lt;br /&gt;
Las operaciones principales que se deben implementar son las encargadas de atender los eventos de:&lt;br /&gt;
* inicialización&lt;br /&gt;
* liberación de recursos&lt;br /&gt;
* configuración &lt;br /&gt;
&lt;br /&gt;
Estas operaciones se ejecutan en determinados momentos del ciclo de vida de una aplicación USB4all, siendo la operación registrada al evento de inicialización invocada al abrir desde la aplicación el ''usermodule'' y la de liberación de recursos al cerrarlo, esto permite utilizar los recursos del microcontrolador solo cuando es necesario. La operación de configuración puede invocarse en cualquier momento para cambiar en caliente algún aspecto de configuración del hardware.&lt;br /&gt;
Al comenzar un ''usermodule'' se debe declarar cuales van a ser las funciones que van a atender estos eventos y el nombre del módulo para ser identificado desde el computador al listar los módulos presentes en la placa.&lt;br /&gt;
&lt;br /&gt;
    #pragma romdata user&lt;br /&gt;
    uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
    #pragma code&lt;br /&gt;
&lt;br /&gt;
Donde user es el nombre de la sección y uTab es una estructura para almacenar las posiciones de memoria de las operaciones que exporta el módulo y su nombre. En la sección detalles de implementación en el firmware se puede conocer más sobre el significado de la instrucción #pragma romdata user, podemos por el momento asumir que sirve para almacenar la estructura uTab en un lugar conocido dentro de la memoria de programa. &lt;br /&gt;
&lt;br /&gt;
El ''basefirmware'' se encarga de pasar como argumento a la operación init el número de handler asignado al módulo, este número es utilizado como argumento en otras operaciones como ser ''setHandlerReceiveFunction'' la cual recibe por parámetro el handler y un puntero a la función encargada de manejar la recepción de datos. &lt;br /&gt;
Otra operación que necesita el ''handlerID'' es ''getSharedBuffer'' la cual recibe por parámetro el ''handlerID'' del módulo y retorna un buffer por el cual el módulo puede enviar datos a la aplicación que ejecuta en el computador.    &lt;br /&gt;
Un buen lugar para obtener este buffer y registrar la función de recepción de datos es la operación encargada del evento de inicialización. A continuación puede verse como ejemplo la inicialización de un módulo de usuario para controlar un buzzer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerInit(byte i) {&lt;br /&gt;
    usrBuzzerHandler = i;&lt;br /&gt;
    // add my receive function to the handler module, to be called automatically when the pc sends data to the user module&lt;br /&gt;
    setHandlerReceiveFunction(usrBuzzerHandler,&amp;amp;UserBuzzerReceived);&lt;br /&gt;
    // initialize the send buffer, used to send data to the PC&lt;br /&gt;
    sendBufferUsrBuzzer = getSharedBuffer(usrBuzzerHandler);&lt;br /&gt;
}//end UserBuzzerInit &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función de recepción de datos es la encargada de implementar el protocolo de comunicación entre el ''usermodule'' y la aplicación, típicamente es una estructura tipo ''case'' en el que se espera por los diferentes comandos que pueden enviarse. La forma de codificar el pedido de servicios es mediante mensajes del tipo &amp;lt; COMANDO [argumento1] [argumento2]...[argumentoN] &amp;gt;. La respuesta debe ser del tipo &amp;lt; COMANDO [resultado1] [resultado2]..[resultadoN] &amp;gt;. El buffer para enviar datos al computador es obtenido como argumento de la función y el buffer para enviar datos fue obtenido previamente en la función de inicialización.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; void UserBuzzerReceived(byte* recBuffPtr, byte len){&lt;br /&gt;
      byte index;&lt;br /&gt;
      byte j;  &lt;br /&gt;
      byte userBuzzerCounter = 0;&lt;br /&gt;
      byte tiempo;&lt;br /&gt;
&lt;br /&gt;
      switch(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;CMD){&lt;br /&gt;
        case READ_VERSION:&lt;br /&gt;
              //dataPacket._byte[1] is len&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[2] = BUZZER_MINOR_VERSION;&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[3] = BUZZER_MAJOR_VERSION;&lt;br /&gt;
              userBuzzerCounter = 0x04;&lt;br /&gt;
              break;  &lt;br /&gt;
              &lt;br /&gt;
        case PRENDER:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_on();&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
        &lt;br /&gt;
        case APAGAR:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              buzzer_off(); &lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;  &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_TRIPLE:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks1 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]);&lt;br /&gt;
              cantTicks2 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[2]);  &lt;br /&gt;
              cantTicks3 = (byte)(((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[3]);&lt;br /&gt;
              boubleBeep(cantTicks1, cantTicks2, cantTicks3);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;        &lt;br /&gt;
&lt;br /&gt;
        case BUZZER_CORTO:&lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[0] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[0]; &lt;br /&gt;
              ((BUZZER_DATA_PACKET*)sendBufferUsrBuzzer)-&amp;gt;_byte[1] = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1]; &lt;br /&gt;
              cantTicks3 = ((BUZZER_DATA_PACKET*)recBuffPtr)-&amp;gt;_byte[1];&lt;br /&gt;
              timeOutTicksBuzz = 1; // lo seteo timmer para que venza inmediantamente&lt;br /&gt;
              buzzerState = DELAY;  &lt;br /&gt;
              registerT0event(0, &amp;amp;buzzEvent);&lt;br /&gt;
              userBuzzerCounter = 0x02;&lt;br /&gt;
              break;    &lt;br /&gt;
&lt;br /&gt;
        case RESET:&lt;br /&gt;
              Reset();&lt;br /&gt;
              break;&lt;br /&gt;
     &lt;br /&gt;
         default:&lt;br /&gt;
              break;&lt;br /&gt;
      }//end switch(s)&lt;br /&gt;
      if(userBuzzerCounter != 0){&lt;br /&gt;
            j = 255;&lt;br /&gt;
            while(mUSBGenTxIsBusy() &amp;amp;&amp;amp; j--&amp;gt;0); // pruebo un máximo de 255 veces&lt;br /&gt;
                if(!mUSBGenTxIsBusy())&lt;br /&gt;
                    USBGenWrite2(usrBuzzerHandler, userBuzzerCounter);&lt;br /&gt;
      }//end if            &lt;br /&gt;
}//end UserBuzzerReceived&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este ejemplo se puede apreciar como se reciben los pedidos de comandos desde la aplicación que ejecuta en el computador y como se obtienen los parámetros necesarios para implementar los comandos y se devuelven los datos (en caso de ser requeridos) a la aplicación.&lt;br /&gt;
&lt;br /&gt;
'''6.2 Entrada/Salida en user modules:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las tareas más importantes de los ''usermodules'' es la de realizar entrada/salida con diferentes periféricos electrónicos. Para realizar esta tarea existen dos paradigmas:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Polling&lt;br /&gt;
* Interrupciones&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dentro de la arquitectura USB4all existen formas de que los módulos implementen entrada/salida utilizando estos paradigmas, para el caso de pooling existe un servicio que permite registrar una función para ser ejecutada cuando el procesador esté disponible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addPollingFunction(&amp;amp;UserBuzzerProcessIO);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe soporte para interrupciones mediante el módulo ''DynamicISR'' el cual permite que otros módulos se registren sus rutinas de atención para ser invocadas cuando ocurren interrupciones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
addISRFunction(&amp;amp;timmerISRFunction);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una forma que mantiene alta la cohesión del sistema es registrar módulos que se encarguen de esperar un evento en particular y brinde una interfaz para que los ''usermodules'' se registren para ser notificados de eventos generados por el componente de hardware que esta siendo modelado. Dentro de este módulo además se pueden brindar operaciones con mayor nivel de abstracción relacionadas con el componente a modelar. Hoy día se dispone del módulo T0service que se encarga de brindar servicio de timmers a los ''usermodules''. Al igual que el resto de los componentes funciona registrando funciones que son invocadas por el ''basefirmware'' &lt;br /&gt;
&lt;br /&gt;
También existen funciones para desregistrar los ''usermodules'' de las notificaciones, es conveniente realizar la desregistración en la función que implementa el evento de liberación de recursos del módulo.&lt;br /&gt;
&lt;br /&gt;
Por ahora el único componente de hardware del microcontrolador modelado de esta forma es el timmer, pero puede escalarse a otros que requieran ser compartidos por más de un módulo.&lt;br /&gt;
Hay que recordar que la concurrencia implementada es puramente colaborativa entre ''usermodules'' por lo cual se debe tener especial cuidado al programar las funciones que atienden estos eventos ya que si se queda &amp;quot;colgada&amp;quot; va a degradar la disponibilidad de todo el sistema.&lt;br /&gt;
&lt;br /&gt;
Para agregar el ''usermodule'' a la placa de entrada/salida ''usb4all baseboard'' se debe agregar al proyecto el módulo (utilizando el IDE preferido) y realizar la compilación del proyecto&lt;br /&gt;
&lt;br /&gt;
== 7. Servicios de Timers - T0Service ==&lt;br /&gt;
&lt;br /&gt;
T0service es un módulo encargado de brindar primitivas a los ''user modules'' para ser notificados de eventos del timmer.&lt;br /&gt;
La API expuesta es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function must not be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0event(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Registers a new event callback, to be called t time units in the future.&lt;br /&gt;
	This function only can be called from a callback handler.&lt;br /&gt;
*/&lt;br /&gt;
BOOL registerT0eventInEvent(unsigned int t, void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Unregister a event callback. No pending event(s) will invoke it.&lt;br /&gt;
*/&lt;br /&gt;
BOOL unregisterT0event(void (*callback)(void));&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
	Initialize the service&lt;br /&gt;
*/&lt;br /&gt;
void initT0Service(void);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Estas funciones son implementadas utilizando interrupciones, lo que permite que se interrumpa el código que está ejecutando en los ''usermodules'' para notificarlos de que ocurrió el vencimiento de tiempo que deseaban.&lt;br /&gt;
&lt;br /&gt;
== 8. Detalles de implementación en el firmware ==&lt;br /&gt;
&lt;br /&gt;
El firmware está organizado en diferentes áreas que se mapean en secciones definidas dentro de la memoria ROM correspondiente a la memoria de programa del microcontrolador, para implementar esto se necesita especificar en un archivo llamado linker script dónde están alojadas físicamente (en memoria) estas secciones.&lt;br /&gt;
La forma de realizar este mapeo es editando el archivo lrk asociado al proyecto.&lt;br /&gt;
Existe la directiva CODEPAGE que es utilizada para trabajar con las secciones de programa, permite inicializar datos, constantes, y realizar referencias a las mismas. Tiene el siguiente formato&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
memName es un string ASCII utilizado para identificar una CODEPAGE.&lt;br /&gt;
&lt;br /&gt;
También existe la directiva DATABANK que permite realizar un manejo similar pero sobre la memoria de datos.&lt;br /&gt;
&lt;br /&gt;
La directiva #pragma &lt;br /&gt;
El estándar ANSI C provee a cada implementación de un método para definir constructores únicos, según sea requerido por la arquitectura del procesador a utilizar. Esto es hecho utilizando la directiva #pragma. La directiva #pragma más común en el compilador utilizado (MPLAB C18) identifica la sección de memoria para ser utilizada en el PIC18XXXX. Por ejemplo #pragma code le indica al compilador MPLAB 18 que compile el código C en la sección de programa de la memoria de programa. La sección de código está definida en el linker script asociado para cada dispositivo PIC18XXXX, especificando en que áreas de la memoria de programa pueden ser ejecutadas instrucciones. &lt;br /&gt;
Esta directiva puede ser insertada directamente o puede ser seguida de la dirección en el área de código del procesador destino, permitiendo tener un control total del a memoria de código. &lt;br /&gt;
En el contexto del USB4all esto es muy utilizado, debido a que se separan varias áreas de memoria, las más importantes son la del bootloader, y la correspondiente a los módulos de usuario, tanto para la parte de programa (module_sec) como para la información del módulo que se almacena para gestionarlo (user_sec).&lt;br /&gt;
Otra directiva #pragma común que se utiliza es #pragma udata, la cual se utiliza cuando se aloja memoria para variables, las variables no inicianlizadas definidas después de esta declaración van a utilizar los registros de proposito general para almacenamiento. La arquitectura del PIC18XXXX, se basa en una arquitectura harvard la que a diferencia de la von neumann almacena las variables y las instrucciones en diferentes espacios de memoria. Por tanto las áreas de memoria deben ser explicitamente identificadas.&lt;br /&gt;
&lt;br /&gt;
Por más información, consultar con el manual del compilador C18 (http://www.kevin.org/frc/C18_3.0_getting_started.pdf) en la sección #pragma DIRECTIVE o SECTIONS.&lt;br /&gt;
&lt;br /&gt;
De la forma que se definieron las secciones en el archivo lkr del proyecto (18f4550.lkr) se debe colocar un #pragma code module al comenzar la declaración de los procedimientos del módulo, de esa forma se almacenan en memoria de programa (code section) dentro de la sección module. Si consultamos el linker script podemos ver que está definida la sección module como un alias del área en ROM llamada module_sec&lt;br /&gt;
&lt;br /&gt;
    SECTION	   NAME=module				ROM=module_sec&lt;br /&gt;
&lt;br /&gt;
a su vez module_sec es definida como:&lt;br /&gt;
&lt;br /&gt;
    CODEPAGE   NAME=module_sec   START=0x40AB       END=0x8000 PROTECTED&lt;br /&gt;
&lt;br /&gt;
Lo mismo se debe hacer cuando se definen las funciones que utiliza el módulo para atender eventos y su nombre (estructura uTab):&lt;br /&gt;
&lt;br /&gt;
   #pragma romdata user&lt;br /&gt;
   uTab userBuzzerModuleTable = {&amp;amp;UserBuzzerInit,&amp;amp;UserBuzzerRelease,&amp;amp;UserBuzzerConfigure,&amp;quot;buzzer&amp;quot;};&lt;br /&gt;
Como vimos en el ejemplo presentado en la sección escribiendo un ''user module''.&lt;br /&gt;
Hay que tener cuidado de no olvidarse de los #pragmas correspondientes ya que de de lo contrario puede no dar el espacio para compilar el proyecto o no funcionar el mecanismo de callbacks.&lt;br /&gt;
Los archivos lkr también especifican otros conceptos, como ser tamaño de memoria de datos y registros que utiliza, como también tamaño del stack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ANEXO 1 ==&lt;br /&gt;
&lt;br /&gt;
En el enlace [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.c] y [http://sourceforge.net/p/usb4all/code/ci/6ecc2581f50519fe427f7a3947136c2a03108841/tree/firmware/u4a2/user/usr_buzzer.h] puede descargarse el código completo del ejemplo presentado como caso de estudio. El mismo puede usarse como esqueleto para desarrollar otros ''user modules''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
El proyecto USB4all se encuentra disponible bajo licencia GNU/GPL v2 en el [http://sourceforge.net/projects/usb4all/ repositorio sorceforge] &amp;lt;br&amp;gt;&lt;br /&gt;
Este proyecto surge originalmente como un trabajo de [http://www.fing.edu.uy/inco/grupos/mina/pGrado/pgusb tesis de grado] en Ingeniería en Computación de Aguirre, Fernandez y Grossy.&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_5&amp;diff=6079</id>
		<title>Grupo 5</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_5&amp;diff=6079"/>
				<updated>2014-12-05T21:34:50Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Código Fuente */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Integrantes ==&lt;br /&gt;
 &lt;br /&gt;
* Agustín Cabral - agucabral@gmail.com&lt;br /&gt;
* Gustavo Evovlockas - gevovlockas@gmail.com&lt;br /&gt;
&lt;br /&gt;
==Tutor==&lt;br /&gt;
* Federico Andrade - fandrade@fing.edu.uy&lt;br /&gt;
&lt;br /&gt;
==Actas de reuniones==&lt;br /&gt;
&lt;br /&gt;
===30 de Junio 2014===&lt;br /&gt;
&lt;br /&gt;
*Se plantea la investigación varios kits robóticos para hacer un revelamiento de los actuadores que incorpora.&lt;br /&gt;
*Uno de los actuadores a incorporar será el motor pasos a paso y para comenzar a trabajar en este tipo de motores debemos discutir varios puntos por lo cual decidimos tratar el tema con la comunidad Butiá para el aporte de opiniones, ideas, críticas.&lt;br /&gt;
*Con respecto a los motores paso a paso se analizaran varios aspectos:&lt;br /&gt;
#Comunicación de los motores con la USB4Butia.&lt;br /&gt;
#Driver del motor.&lt;br /&gt;
#Funciones de alto nivel.&lt;br /&gt;
*Para la comunicación con la USB4Butia se tienen en principio dos opciones.&lt;br /&gt;
#Hack pines (necesitariamos 4)&lt;br /&gt;
#Puertos RJ45 &lt;br /&gt;
*Con respecto al driver (placa del motor) tenemos dos formas de implementarlo.&lt;br /&gt;
#Usar Shift Register mas ULN2803&lt;br /&gt;
#Usar un microcontrolador mas ULN2803&lt;br /&gt;
*Las funciones deseadas pueden ser&lt;br /&gt;
#Girar un paso&lt;br /&gt;
#Girar constantemente&lt;br /&gt;
#Girar velocidad, sentido, grado&lt;br /&gt;
&lt;br /&gt;
===16 de Julio 2014===&lt;br /&gt;
*Se decide incorporar al kit Butiá tres nuevos actuadores.&lt;br /&gt;
#Relay.&lt;br /&gt;
#Buzzer.&lt;br /&gt;
#Motor paso a paso unipolar.&lt;br /&gt;
*Se envio a la lista de desarrollo el pedido de asignación de espacio de direcciones (valores de resistencias de identificación) para los actuadores a implementar.&lt;br /&gt;
*Se decidió comenzar por la implementación de relay y se coordina el comienzo de la misma.&lt;br /&gt;
*En lo que respecta al paso a paso, y según lo que se venia hablando en la reunión anterior, se decide usar para su implementación un Shift Register 74HC595 mas un ULN2803.&lt;br /&gt;
&lt;br /&gt;
==Actuadores==&lt;br /&gt;
&lt;br /&gt;
===Relé===&lt;br /&gt;
&lt;br /&gt;
El relé o relevador es un dispositivo electromecánico. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:relay_circuit.jpg]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Componentes====&lt;br /&gt;
* Conector RJ45 hembra acodado x1&lt;br /&gt;
* Rele 5 patas 12v (o menos) x1&lt;br /&gt;
* Resistencias 4.7kΩ x1&lt;br /&gt;
* Resistencias 120kΩ (Id) x1&lt;br /&gt;
* Transistor NPN BC639 x1  ([[Archivo:Transistor-datasheet.pdf]])&lt;br /&gt;
* Diodo IN4007 x1  ([[Archivo:Diodo-datasheet.pdf]])&lt;br /&gt;
* Terminal x2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez que se quema el cobre se procede a soldar cada componente. Los archivos usados para quemar el cobre por transferencia de tóner se encuentran en la [[Grupo_5#Kicad|sección Kicad]]. El porceso de transferencia por tóner se puede ver [[USB4butiá_tutorial|aquí]]. A continuación se muestra un video que indica como soldar cada componente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;8IetiZDq9so&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer===&lt;br /&gt;
&lt;br /&gt;
Es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo de señalización o aviso, y son utilizados en múltiples sistemas como en automóviles o en electrodomésticos, incluidos los despertadores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Buzzer2.png‎‎]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Componentes====&lt;br /&gt;
* Conector RJ45 hembra acodado x1&lt;br /&gt;
* Resistencia 180 KΩ (Id) x1&lt;br /&gt;
* Resistencia 330 Ω x1&lt;br /&gt;
* Buzzer 5v x1&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que se quema el cobre se procede a soldar cada componente. Los archivos usados para quemar el cobre por transferencia de tóner se encuentran en la [[Grupo_5#Kicad|sección Kicad]]. El porceso de transferencia por tóner se puede ver [[USB4butiá_tutorial|aquí]]. A continuación se muestra un video que indica como soldar cada componente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;Yz3SdiaS6YY&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Presetación Sumo 2014==&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Archivo:Actuadores_Gupo_5.pdf Aquí] se encuentra el archivo de la presentación hecha el día 17 de setiembre de 2014. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kicad==&lt;br /&gt;
[[Archivo:Buzzer.pdf]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Archivo:Rele.pdf]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
En el siguiente .zip se pueden encontrar los dos proyectos de kicad, los modulos y compontentes creados, y los .ps de los circuitos: &lt;br /&gt;
[[Archivo:Actuadores.zip]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Código Fuente==&lt;br /&gt;
[[Archivo:RobEdu2014_grp5.tar.gz]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_5&amp;diff=6078</id>
		<title>Grupo 5</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_5&amp;diff=6078"/>
				<updated>2014-12-05T21:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Kicad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Integrantes ==&lt;br /&gt;
 &lt;br /&gt;
* Agustín Cabral - agucabral@gmail.com&lt;br /&gt;
* Gustavo Evovlockas - gevovlockas@gmail.com&lt;br /&gt;
&lt;br /&gt;
==Tutor==&lt;br /&gt;
* Federico Andrade - fandrade@fing.edu.uy&lt;br /&gt;
&lt;br /&gt;
==Actas de reuniones==&lt;br /&gt;
&lt;br /&gt;
===30 de Junio 2014===&lt;br /&gt;
&lt;br /&gt;
*Se plantea la investigación varios kits robóticos para hacer un revelamiento de los actuadores que incorpora.&lt;br /&gt;
*Uno de los actuadores a incorporar será el motor pasos a paso y para comenzar a trabajar en este tipo de motores debemos discutir varios puntos por lo cual decidimos tratar el tema con la comunidad Butiá para el aporte de opiniones, ideas, críticas.&lt;br /&gt;
*Con respecto a los motores paso a paso se analizaran varios aspectos:&lt;br /&gt;
#Comunicación de los motores con la USB4Butia.&lt;br /&gt;
#Driver del motor.&lt;br /&gt;
#Funciones de alto nivel.&lt;br /&gt;
*Para la comunicación con la USB4Butia se tienen en principio dos opciones.&lt;br /&gt;
#Hack pines (necesitariamos 4)&lt;br /&gt;
#Puertos RJ45 &lt;br /&gt;
*Con respecto al driver (placa del motor) tenemos dos formas de implementarlo.&lt;br /&gt;
#Usar Shift Register mas ULN2803&lt;br /&gt;
#Usar un microcontrolador mas ULN2803&lt;br /&gt;
*Las funciones deseadas pueden ser&lt;br /&gt;
#Girar un paso&lt;br /&gt;
#Girar constantemente&lt;br /&gt;
#Girar velocidad, sentido, grado&lt;br /&gt;
&lt;br /&gt;
===16 de Julio 2014===&lt;br /&gt;
*Se decide incorporar al kit Butiá tres nuevos actuadores.&lt;br /&gt;
#Relay.&lt;br /&gt;
#Buzzer.&lt;br /&gt;
#Motor paso a paso unipolar.&lt;br /&gt;
*Se envio a la lista de desarrollo el pedido de asignación de espacio de direcciones (valores de resistencias de identificación) para los actuadores a implementar.&lt;br /&gt;
*Se decidió comenzar por la implementación de relay y se coordina el comienzo de la misma.&lt;br /&gt;
*En lo que respecta al paso a paso, y según lo que se venia hablando en la reunión anterior, se decide usar para su implementación un Shift Register 74HC595 mas un ULN2803.&lt;br /&gt;
&lt;br /&gt;
==Actuadores==&lt;br /&gt;
&lt;br /&gt;
===Relé===&lt;br /&gt;
&lt;br /&gt;
El relé o relevador es un dispositivo electromecánico. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:relay_circuit.jpg]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Componentes====&lt;br /&gt;
* Conector RJ45 hembra acodado x1&lt;br /&gt;
* Rele 5 patas 12v (o menos) x1&lt;br /&gt;
* Resistencias 4.7kΩ x1&lt;br /&gt;
* Resistencias 120kΩ (Id) x1&lt;br /&gt;
* Transistor NPN BC639 x1  ([[Archivo:Transistor-datasheet.pdf]])&lt;br /&gt;
* Diodo IN4007 x1  ([[Archivo:Diodo-datasheet.pdf]])&lt;br /&gt;
* Terminal x2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez que se quema el cobre se procede a soldar cada componente. Los archivos usados para quemar el cobre por transferencia de tóner se encuentran en la [[Grupo_5#Kicad|sección Kicad]]. El porceso de transferencia por tóner se puede ver [[USB4butiá_tutorial|aquí]]. A continuación se muestra un video que indica como soldar cada componente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;8IetiZDq9so&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer===&lt;br /&gt;
&lt;br /&gt;
Es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo de señalización o aviso, y son utilizados en múltiples sistemas como en automóviles o en electrodomésticos, incluidos los despertadores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Buzzer2.png‎‎]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Componentes====&lt;br /&gt;
* Conector RJ45 hembra acodado x1&lt;br /&gt;
* Resistencia 180 KΩ (Id) x1&lt;br /&gt;
* Resistencia 330 Ω x1&lt;br /&gt;
* Buzzer 5v x1&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que se quema el cobre se procede a soldar cada componente. Los archivos usados para quemar el cobre por transferencia de tóner se encuentran en la [[Grupo_5#Kicad|sección Kicad]]. El porceso de transferencia por tóner se puede ver [[USB4butiá_tutorial|aquí]]. A continuación se muestra un video que indica como soldar cada componente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;Yz3SdiaS6YY&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Presetación Sumo 2014==&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Archivo:Actuadores_Gupo_5.pdf Aquí] se encuentra el archivo de la presentación hecha el día 17 de setiembre de 2014. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kicad==&lt;br /&gt;
[[Archivo:Buzzer.pdf]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Archivo:Rele.pdf]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
En el siguiente .zip se pueden encontrar los dos proyectos de kicad, los modulos y compontentes creados, y los .ps de los circuitos: &lt;br /&gt;
[[Archivo:Actuadores.zip]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Código Fuente==&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Archivo:RobEdu2014_grp5.tar.gz]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:RobEdu2014_grp5.tar.gz&amp;diff=6077</id>
		<title>Archivo:RobEdu2014 grp5.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:RobEdu2014_grp5.tar.gz&amp;diff=6077"/>
				<updated>2014-12-05T21:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=USB4buti%C3%A1&amp;diff=6071</id>
		<title>USB4butiá</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=USB4buti%C3%A1&amp;diff=6071"/>
				<updated>2014-12-04T21:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;USB4Butiá es una interfaz de Entrada/Salida (E/S) USB derivada de [[Usb4all]] y un [[usb4all_shield_butia|shield]] realizado para dicha placa. Es de fácil construcción y está especializada en el uso con el robot [[butia2|Butiá 2.0]] intentando simplificar su uso y aumentar su capacidades sensoriales y actuación de manera robusta. &lt;br /&gt;
La placa persigue como '''''objetivo general''''':&lt;br /&gt;
&lt;br /&gt;
Un diseño de la placa es abierto y diseñado con el objetivo que su construcción sea posible mediante mecanismos manuales permitiendo su accesibilidad y por lo tanto la libertad del diseño (más info: [http://www.olpcnews.com/use_cases/technology/usb4butia_a_truly_free_as_in_freedom_input_output_board.html USB4butia - A Truly Free (as in Freedom) Input/Output Board] )&lt;br /&gt;
&lt;br /&gt;
Los '''''objetivos particulares''''' son:&lt;br /&gt;
&lt;br /&gt;
* Ser económica&lt;br /&gt;
* Utilización de componentes de fácil acceso en el mercado local&lt;br /&gt;
* Tener puertos conectores para dispositivos con soporte de [[plug and play]] y [[plug and play| hotplug]]&lt;br /&gt;
* Bus para motores AX12&lt;br /&gt;
* PWM para manejo de motores servo&lt;br /&gt;
* [[HackPoints]] para acceso al bajo nivel&lt;br /&gt;
&lt;br /&gt;
=== Características ===&lt;br /&gt;
&lt;br /&gt;
* 6 puertos para dispositivos con soporte hotplug and play cuya especificación del conector puede verse [[ Especificación conector Rj45 | aquí ]]&lt;br /&gt;
&lt;br /&gt;
=== Construcción ===&lt;br /&gt;
&lt;br /&gt;
'''Versión actual de la placa: 1.9.0'''  Para versiones anteriores clic [http://www.fing.edu.uy/inco/proyectos/butia/files/hardware/ aquí].&lt;br /&gt;
&lt;br /&gt;
*'''Fuentes:''' Los fuentes fueron realizados en el software GNU/GPL Kicad [http://www.kicad-pcb.org/display/KICAD/KiCad+EDA+Software+Suite]. Estas pueden descargarse del repositorio Github de Butia en Sourceforge [http://sourceforge.net/p/usb4all/code/ci/master/tree/pcb/usb4butia/] &amp;lt;br /&amp;gt;[http://www.fing.edu.uy/inco/proyectos/butia/files/usb4butia-Copper.pdf].&lt;br /&gt;
&lt;br /&gt;
*'''Componentes:''' [[Componentes|Lista de componentes USB4butiá]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Fabricación:''' Puede fabricar la placa manualmente con el método de la plancha, o alternativamente mandar a fabricar la misma en plaza o al exterior. &lt;br /&gt;
**Fabricación manual: [[USB4butiá_tutorial|Tutorial de construcción paso a paso]]&lt;br /&gt;
**Mandar a fabricar:&lt;br /&gt;
***Archivos gerber para mandar a fabricar: [http://www.fing.edu.uy/inco/proyectos/butia/files/hardware/usb4butia.zip pedido]&lt;br /&gt;
***Fabricación en el exterior: [http://www.seeedstudio.com/depot/fusion-pcb-service-p-835.html?cPath=185 Seeedstudio]: envíe el [http://www.fing.edu.uy/inco/proyectos/butia/files/hardware/usb4butia.zip pedido] en tamaño de 10x10cm &amp;lt;br&amp;gt;&lt;br /&gt;
***Fabricación en el Uruguay: [http://www.eneka.com.uy/ Eneka]: Empresa de electrónica en Montevideo-Uruguay. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Instalación de firmware''': Además de hacer la placa como se explica en el tutorial, es necesario cargar el programa que corre en el pic 18F4550 (más  conocido como firmware). Cómo realizar esto lo explicaremos en el siguiente link [[Firmware|Tutorial de instalación de firmware]].&lt;br /&gt;
&lt;br /&gt;
[[Archivo:usb4butia1.jpg|300px]]&lt;br /&gt;
[[Archivo:usb4butia2.jpg|300px]]&lt;br /&gt;
[[Archivo:usb4butia3r.jpg|300px]]&lt;br /&gt;
[[Archivo:USB4butia.png|300px]]&lt;br /&gt;
[[Archivo:Componentes_pcb.png|300px]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6070</id>
		<title>Archivo:USB4butia.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6070"/>
				<updated>2014-12-04T21:47:29Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:USB4butia.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6068</id>
		<title>Archivo:USB4butia.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6068"/>
				<updated>2014-12-04T21:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:USB4butia.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6067</id>
		<title>Archivo:USB4butia.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:USB4butia.png&amp;diff=6067"/>
				<updated>2014-12-04T21:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6041</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6041"/>
				<updated>2014-12-03T20:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Redirigiendo a Wiki Butiá&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECCIÓN [[Wiki Butiá]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6040</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6040"/>
				<updated>2014-12-03T20:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para acceder a la página principal del proyecto Butiá diríjase a &lt;br /&gt;
[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Wiki_Buti%C3%A1]&lt;br /&gt;
#REDIRECCIÓN [[Wiki Butiá]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6039</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6039"/>
				<updated>2014-12-03T19:59:12Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Redirigiendo a Wiki Butiá&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECCIÓN [[Wiki Butiá]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6038</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6038"/>
				<updated>2014-12-03T19:51:06Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sobre este sitio ==&lt;br /&gt;
Este sitio es un espacio colaborativo para articular los aportes de la comunidad Butiá. Podrá encontrar información técnica, ideas y propuestas. Si usted está buscando la página principal del Proyecto Butiá debe dirigirse a [http://www.fing.edu.uy/inco/proyectos/butia web institucional del Proyecto Butiá]&lt;br /&gt;
&lt;br /&gt;
== Proyecto Butiá ==&lt;br /&gt;
&lt;br /&gt;
Este proyecto plantea como objetivo crear una plataforma simple, la cual ponga al alcance de estudiantes escolares o liceales las herramientas necesarias para permitirles interiorizarse con la programación de  comportamientos para robots.&lt;br /&gt;
El proyecto Butiá trata de ampliar las capacidades sensoriales y de actuación de la computadora XO del proyecto OLPC (u otro netbook educativo), transformandola en una plataforma robótica móvil.&lt;br /&gt;
Actualmente la implementación 2.0 del proyecto está siendo utilizado en formato de kit, distribuido a más de 100 centros educativos del Uruguay, con un set de sensores y piezas que permiten cambiar la ubicación de los sensores en la plataforma móvil donde se coloca la computadora.&amp;lt;br&amp;gt;&lt;br /&gt;
A su vez el proyecto Butiá fue desarrollado teniendo en mente el hecho que agregar nuevos sensores o actuadores a la plataforma sea muy sencillo, esto abre la posibilidad a que usuarios interesados con el hardware puedan implementar fácilmente sus propios sensores y actuadores. Incluso el [http://es.wikipedia.org/wiki/Dise%C3%B1o_industrial diseño industrial] del robot es abierto lo cual permite realizarlo con materiales reciclados o de bajo costo.&lt;br /&gt;
&lt;br /&gt;
== Desarrollo ==&lt;br /&gt;
&lt;br /&gt;
La plataforma Butiá esta liberada como software libre a la comunidad, tu puedes contribuir con el proyecto como desarrollador uniéndote en [http://sourceforge.net/projects/butia/ Proyecto Butiá en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
El código fuente del software (plugins, toribio, tortubots, etc) está versionado bajo sistema de control [http://git-scm.com/ GIT], para saber más vea [[Git Butia]].&amp;lt;br/&amp;gt;&lt;br /&gt;
El código de firmware y PCBs esta versionado bajo sistema de control [http://git-scm.com/ GIT], en el git de USB4all [http://sourceforge.net/projects/usb4all/ USB4all en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
Actualmente estamos trabajando en una nueva placa ([[usb4butia|USB4butia]]) para el [[Butia2|Butiá 2.0]] que busca bajar costos, ser más robusto al permitir conectar dispositivos y hacer más simple la construcción de la placa de E/S al utilizar la plataforma [[usb4all|USB4all]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Se puede participar a través de la lista de correo de desarrollo [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l butiá-devel-l], también puede ver el [https://www.fing.edu.uy/pipermail/butia-devel-l/ historial] de la misma. &amp;lt;br/&amp;gt;&lt;br /&gt;
También puede participar de las reuniones Butiá, las mismas se realizan de forma quincenal los días '''Martes a las 18:30hs en el Laboratorio de Robótica''' [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Preguntas_frecuentes (cómo llegar)].&amp;lt;br/&amp;gt; En el [http://www.fing.edu.uy/inco/proyectos/butia/eventos.html calendario Butiá] puede consultar la fecha de las reuniones y otras actividades que realizamos.&lt;br /&gt;
Puede ver el desarrollo de las reuniones en [[Actas Reuniones Butia]]. &amp;lt;br/&amp;gt; &lt;br /&gt;
Propuestas de discusiones para las reuniones [[Discusiones para las reuniones]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Este proyecto se realiza con el apoyo de [http://www.antel.com.uy ANTel].&lt;br /&gt;
&lt;br /&gt;
== Construcción ==&lt;br /&gt;
&lt;br /&gt;
* [[construcción_Butiá_V1.0|Construyendo un Robot Butiáv1.0 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V1.8|Construyendo un Robot Butiáv1.8 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V2.0|Construyendo un Robot Butiáv2.0 paso a paso]]&lt;br /&gt;
* [[flashearIdAX12|Como flashear los motores AX12]]&lt;br /&gt;
* [[Motores|Información general sobre motores]]&lt;br /&gt;
* [[Otros Materiales|Butiá V2.0 en madera]]&lt;br /&gt;
&lt;br /&gt;
== Lenguajes de programación ==&lt;br /&gt;
&lt;br /&gt;
El Robot butiá puede controlarse fácilmente desde cualquier [http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación] con soporte de conexiones [http://es.wikipedia.org/wiki/TCP/IP TCP/IP]. De todas maneras damos soporte para algunas plataformas concretas mediante [http://es.wikipedia.org/wiki/Plugin plugins], [http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones API's] o [http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado IDEs]. Algunos ejemplos son:&amp;lt;br&amp;gt;&lt;br /&gt;
[[TortuBots]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Butialo]] (Lua)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Python]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manuales ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_ax12_rev1.pdf Manual de armado paso a paso para Butiá con motores AX12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_motores_CC_rev1.pdf Manual de armado paso a paso para Butiá con motores de corriente continua]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/cartilla_de_armado_r%C3%A1pido_rev2.pdf Cartilla de armado rápido]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_construccion_rev1.pdf Manual de construcción]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_usuario_rev1.pdf Manual de usuario]&lt;br /&gt;
&lt;br /&gt;
== Tutoriales ==&lt;br /&gt;
&lt;br /&gt;
En esta sección encontrarás información de como programar el comportamiento del robot Butiá.&lt;br /&gt;
&lt;br /&gt;
* [[Ejemplo_recibir_ordenes_con_aplausos| Cómo controlar el robot Butiá mediante aplausos]]&lt;br /&gt;
* [[tortugarte_variables|Como almacenar los valores leídos de los sensores utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_obstaculos|Como evitar obstaculos utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_caida|Como evitar caer de una mesa]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas_sencillo|Como hacer un seguidor de líneas sencillo]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas|Como hacer un seguidor de líneas avanzado]]&lt;br /&gt;
* [[Ejemplo_sumo|Como hacer un luchador de Sumo]]&lt;br /&gt;
* [[Transformando_a_cms_el_valor_del_sensor_de_distancia|Transformando a centímetros la salida del sensor de distancia]]&lt;br /&gt;
* [[Butiá_que_habla|Butiá que habla]]&lt;br /&gt;
* [[Modularizando|Como modularizar un programa en Tortugarte]]&lt;br /&gt;
* [[video_tutoriales|Video Tutoriales]]&lt;br /&gt;
* [[Preguntas_frecuentes|Preguntas Frecuentes]]&lt;br /&gt;
* [[FollowMe|Utilizar plugin FollowMe]]&lt;br /&gt;
* [[USB4butiá| Cómo construir una placa USB4Butià]]&lt;br /&gt;
* [[Ejemplos_de_Aplicaciones_en_Butialo|Ejemplos de Lua en Butialo]]&lt;br /&gt;
* [[HackPoints|Como utilizar los HackPoints]]&lt;br /&gt;
* [[Medir voltaje y resistencia | Como medir voltaje y resistencia]]&lt;br /&gt;
* [[Tutorial_de_armado_de_butiá_con_motores_de_corriente_Continua | Tutorial de armado de butiá con motores de corriente Continua]]&lt;br /&gt;
* [[Intructivo_para_generar_archivos_gerbers_en_kicad | Instructivo para generar archivos gerbers en Kicad]]&lt;br /&gt;
* [[Butiá Cards | Tarjetas de comportamientos básicos]]&lt;br /&gt;
&lt;br /&gt;
== Actividades para realizar con el robot relacionadas con otras ciencias ==&lt;br /&gt;
&lt;br /&gt;
[[Biología y Butiá]]&lt;br /&gt;
&lt;br /&gt;
== ButiArte ==&lt;br /&gt;
&lt;br /&gt;
A puro arte &amp;lt;br&amp;gt;&lt;br /&gt;
[[remeras|Remeras]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cuadernolas Butiá y Sumo]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Logo oficial]]&lt;br /&gt;
&lt;br /&gt;
== Sumo.uy: Desafío aptos para Butiá en evento de SUMO Robótico ==&lt;br /&gt;
&lt;br /&gt;
Son numerosas las instituciones educativas que a nivel mundial desarrollan exposiciones robóticas.&amp;lt;br&amp;gt;&lt;br /&gt;
En nuestro país, la [http://www.fing.edu.uy Facultad de Ingeniería] de la [http://www.udelar.edu.uy Universidad de la República] es pionera. &amp;lt;br&amp;gt;&lt;br /&gt;
Desde 2004, año a año el evento [http://www.fing.edu.uy/sumo.uy sumo.uy] ha cumplido con éxito su misión: hacer que la sociedad sea partícipe, y no mero testigo, de los avances en robótica e inteligencia artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[http://www.fing.edu.uy/sumo.uy sumo.uy]''' ofrece un entorno abierto a todo público, donde universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros pueden interactuar, presentar sus trabajos y plantear sus inquietudes relacionadas con la temática del evento.&amp;lt;br&amp;gt;&lt;br /&gt;
En el marco de la edición 2013 de este evento se podrá participar con el robot Butiá en tres desafíos:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20Escolar_2013_v0.1.pdf Desafío Escolar]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20B%C3%A1sico_2013_v0.1.pdf Desafío Básico]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo_Avanzado_sumo.uy_2013.pdf_v0.1.pdf Desafío Avanzado]&lt;br /&gt;
&lt;br /&gt;
Para desafíos anteriores mire [[sumo.uy historial desafios Butiá| aquí]]&lt;br /&gt;
&lt;br /&gt;
==Sumo.uy: Experiencias desafíos Butiá==&lt;br /&gt;
&lt;br /&gt;
* Sumo.uy 2011 ( [[Sumo.uy_2011_Resumen_desafío_Butiá|español]] | [[Sumo.uy_2011_Summary_Butiá_challenge|ingles]] )&lt;br /&gt;
&lt;br /&gt;
== Curso Butiá: Robótica educativa ==&lt;br /&gt;
{{AP|Proyectos Butiá}}&lt;br /&gt;
En esta sección se mantiene un historial de proyectos que se realizan y/o fueron realizados en el curso.&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_abiertos|Proyectos abiertos para realizar en el marco del &amp;quot;Proyecto Butiá&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2014|Proyectos electiva Butiá 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2013|Proyectos electiva Butiá 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2012|Proyectos electiva Butiá 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2011|Proyectos módulo taller butiá 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2010|Proyectos módulo taller butiá 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2011|Espacio de documentación de los grupos 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2012|Espacio de documentación de los grupos 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2013|Espacio de documentación de los grupos 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2014|Espacio de documentación de los grupos 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[laboratorios_2014|Laboratorios 2014]]&lt;br /&gt;
&lt;br /&gt;
== Extensión Universitaria ==&lt;br /&gt;
&lt;br /&gt;
* [[talleres_y_charlas|Talleres y charlas]]&lt;br /&gt;
&lt;br /&gt;
* [[mega_construccion_2010|Construyendo los robots]]&lt;br /&gt;
&lt;br /&gt;
* [[entrega_de_Butiá_V1.0|Entrega de 28 robots Butiá en el evento Sumo.uy 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_liceos|Experiencias realizadas por nuestro usuarios]]&lt;br /&gt;
&lt;br /&gt;
* [[Robótica_educativa_con_el_robot_Butiá_Proyecto_Estímulo_a_la_Cultura_Científica_y_Tecnológica,_Prociencia,_18-21/07/2012|Prociencia 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[quiero_una_USB4Butia|Proyectos - Quiero una USB4Butia]]&lt;br /&gt;
&lt;br /&gt;
== Publicaciones científicas ==&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso Inforedu2013 &amp;quot;Congreso Internacional de Informática en la Educación&amp;quot; [http://www.fing.edu.uy/~aaguirre/papers/inforedu13_robotica_educativa.pdf Robótica educativa de la mano del robot Butiá][http://www.inforedu2013.mes.edu.cu/ponencia/uruguay/rob%C3%B3tica-educativa-en-uruguay-de-la-mano-del-robot-buti%C3%A1 Sitio del evento] &lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso WEEF 2012 &amp;quot;Engineering Education for Sustainable Development and Social Inclusión&amp;quot; [http://www.weef2012.edu.ar/papersFinal/information.php?doc=227 1 adolescente. 1 computadora. 1 robot]&lt;br /&gt;
&lt;br /&gt;
*Artículo publicado en OLPC, [http://www.olpcnews.com/use_cases/technology/usb4butia_a_truly_free_as_in_freedom_input_output_board.html USB4butia - A Truly Free (as in Freedom) Input/Output Board]&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf FollowMe: seguimiento de objetos mediante el uso de webcam y plataforma Butiá] pag. 281&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf USB4BUTIA: Interfaz Robótica Educativa de simple fabricación y bajo costo] pag. 282&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/butia_edu1a1_v1.4_ponencia_completa.pdf Butiá, transformando tu XO en un robot móvil programable]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/De_tortugarte_a_butia_en_la_escuela_primaria.pdf De la tortuga al robot Butiá, experiencias en el uso de Tortugarte en la escuela primaria]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Encuentro Desarrolladores Uruguay, eduJAM 2012: [http://wiki.sugarlabs.org/images/1/13/Turtle_sensors.pdf How open hardware and software can empower students and communities]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Simposio Argentino de Sistemas Embebidos, Sase2011, Buenos Aires, Argentina: &lt;br /&gt;
[http://www.sase.com.ar/2011/case/articulos-case/butia-plataforma-robotica-generica-para-la-ensenanza-de-la-informatica/ Butiá: Plataforma robótica genérica para la enseñanza de la informática]&lt;br /&gt;
&lt;br /&gt;
== Material de Presentaciones Butiá ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:poster_olpc-sf.jpg|thumb|Poster presentado en OLPC - San Francisco / 2011]]&lt;br /&gt;
[[Archivo:OLPC - SF 2012.png|thumb|Poster presentado en OLPC - San Francisco / 2012]]&lt;br /&gt;
[[Archivo:OLPC - SF 2013.png|thumb|Poster presentado en OLPC - San Francisco / 2013]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/jiio.pdf JIIO, XIII Jornadas de Informática e Investigación Operativa, Montevideo, Uruguay, 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA_PT%28a.k.a%20consegi%29.pdf CONSEGI 2013, Brasilia, Brasil 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA.pdf ANTEL AVANZA, Montevideo, Uruguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20edujam%20Paraguay%202013.pdf EDUJAM 2013, Asunción, Paraguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20sumo.uy%202013.pdf Sumo.uy 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20congreso%20matem%C3%A1ticas.pdf Congreso de matemáticas 2013]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/proyecto_butia_capacitacion_5_2012.pdf Butiá: Sistema robótico constructivo de bajo costo para uso educativo, Encuentro Nacional de Voluntarios 2012, Squeakfest 2012]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/Turtle%20sensors.pdf How open hardware and software can empower students and communities, eduJAM2012]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/de_la_tortuga_al_robot_butia.pdf De la tortuga al robot Butiá, Experiencias en el uso de Tortugarte en la escuela primaria, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-1a1.pdf Butiá: Plataforma robótica genérica para la enseñanza inicial y media, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-seminarioFIERGS_handout.pdf Charla del robot Butiá en el Seminario FIERGS, Porto Alegre, Brasil]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/pres_seMINArios_2011_handouts.pdf Charla del robot Butiá el los seMINArios del Instituto de Computación, UdelaR, Montevideo, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCASE2011HandsOut.pdf Charla del robot Butiá en el congreso argentino de sistemas embebidos, Buenos Aires, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/butia-jornadasANTel-FIng2011.pdf Charla del robot Butiá en las jornadas de telecomunicaciones realizadas, Rocha, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCPBRASIL.pdf Charla del robot Butiá en el campus party, San Pablo, Brasil, 2011]&lt;br /&gt;
&lt;br /&gt;
== El robot Butiá en los medios ==&lt;br /&gt;
&lt;br /&gt;
[[notas_en_tv|Notas en televisión]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Notas en Radio]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_en_blogs|Notas en Blogs y la Web]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[congresos_y_seminarios|Congresos y Seminarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_revistas|Notas en revistas]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_diarios|Notas en periódicos]]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
&lt;br /&gt;
[[nuestros_videos|Videos]]&lt;br /&gt;
&lt;br /&gt;
[[pistas butiá|Pistas]]&lt;br /&gt;
&lt;br /&gt;
[[banners butiá|Banners]]&lt;br /&gt;
&lt;br /&gt;
== Comunicación ==&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=147042805312846 Seguinos en Facebook uniendote al grupo]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://plus.google.com/u/0/108413393520841902443/posts Seguinos en google+]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-list Lista de correo butia-list]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l Lista de correo butiá-devel-l para tratar temas relacionados con el desarrollo de la plataforma]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[instructivo_newsgroup|Instructivo para el uso del Newsgroup de fing]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preguntas Frecuentes (f.a.q) sobre el Butiá ==&lt;br /&gt;
&lt;br /&gt;
Puede encontrarse una lista de preguntas frecuentes y su respuesta en [[preguntas_frecuentes]]&lt;br /&gt;
&lt;br /&gt;
== Empezando a utilizar wiki ==&lt;br /&gt;
&lt;br /&gt;
Consulta la [http://meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]&lt;br /&gt;
&lt;br /&gt;
[[Main page (English)]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=6036</id>
		<title>Wiki Butiá</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=6036"/>
				<updated>2014-12-03T19:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Wiki trasladada a Wiki Butiá&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sobre este sitio ==&lt;br /&gt;
Este sitio es un espacio colaborativo para articular los aportes de la comunidad Butiá. Podrá encontrar información técnica, ideas y propuestas. Si usted está buscando la página principal del Proyecto Butiá debe dirigirse a [http://www.fing.edu.uy/inco/proyectos/butia web institucional del Proyecto Butiá]&lt;br /&gt;
&lt;br /&gt;
== Proyecto Butiá ==&lt;br /&gt;
&lt;br /&gt;
Este proyecto plantea como objetivo crear una plataforma simple, la cual ponga al alcance de estudiantes escolares o liceales las herramientas necesarias para permitirles interiorizarse con la programación de  comportamientos para robots.&lt;br /&gt;
El proyecto Butiá trata de ampliar las capacidades sensoriales y de actuación de la computadora XO del proyecto OLPC (u otro netbook educativo), transformandola en una plataforma robótica móvil.&lt;br /&gt;
Actualmente la implementación 2.0 del proyecto está siendo utilizado en formato de kit, distribuido a más de 100 centros educativos del Uruguay, con un set de sensores y piezas que permiten cambiar la ubicación de los sensores en la plataforma móvil donde se coloca la computadora.&amp;lt;br&amp;gt;&lt;br /&gt;
A su vez el proyecto Butiá fue desarrollado teniendo en mente el hecho que agregar nuevos sensores o actuadores a la plataforma sea muy sencillo, esto abre la posibilidad a que usuarios interesados con el hardware puedan implementar fácilmente sus propios sensores y actuadores. Incluso el [http://es.wikipedia.org/wiki/Dise%C3%B1o_industrial diseño industrial] del robot es abierto lo cual permite realizarlo con materiales reciclados o de bajo costo.&lt;br /&gt;
&lt;br /&gt;
== Desarrollo ==&lt;br /&gt;
&lt;br /&gt;
La plataforma Butiá esta liberada como software libre a la comunidad, tu puedes contribuir con el proyecto como desarrollador uniéndote en [http://sourceforge.net/projects/butia/ Proyecto Butiá en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
El código fuente del software (plugins, toribio, tortubots, etc) está versionado bajo sistema de control [http://git-scm.com/ GIT], para saber más vea [[Git Butia]].&amp;lt;br/&amp;gt;&lt;br /&gt;
El código de firmware y PCBs esta versionado bajo sistema de control [http://git-scm.com/ GIT], en el git de USB4all [http://sourceforge.net/projects/usb4all/ USB4all en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
Actualmente estamos trabajando en una nueva placa ([[usb4butia|USB4butia]]) para el [[Butia2|Butiá 2.0]] que busca bajar costos, ser más robusto al permitir conectar dispositivos y hacer más simple la construcción de la placa de E/S al utilizar la plataforma [[usb4all|USB4all]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Se puede participar a través de la lista de correo de desarrollo [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l butiá-devel-l], también puede ver el [https://www.fing.edu.uy/pipermail/butia-devel-l/ historial] de la misma. &amp;lt;br/&amp;gt;&lt;br /&gt;
También puede participar de las reuniones Butiá, las mismas se realizan de forma quincenal los días '''Martes a las 18:30hs en el Laboratorio de Robótica''' [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Preguntas_frecuentes (cómo llegar)].&amp;lt;br/&amp;gt; En el [http://www.fing.edu.uy/inco/proyectos/butia/eventos.html calendario Butiá] puede consultar la fecha de las reuniones y otras actividades que realizamos.&lt;br /&gt;
Puede ver el desarrollo de las reuniones en [[Actas Reuniones Butia]]. &amp;lt;br/&amp;gt; &lt;br /&gt;
Propuestas de discusiones para las reuniones [[Discusiones para las reuniones]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Este proyecto se realiza con el apoyo de [http://www.antel.com.uy ANTel].&lt;br /&gt;
&lt;br /&gt;
== Construcción ==&lt;br /&gt;
&lt;br /&gt;
* [[construcción_Butiá_V1.0|Construyendo un Robot Butiáv1.0 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V1.8|Construyendo un Robot Butiáv1.8 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V2.0|Construyendo un Robot Butiáv2.0 paso a paso]]&lt;br /&gt;
* [[flashearIdAX12|Como flashear los motores AX12]]&lt;br /&gt;
* [[Motores|Información general sobre motores]]&lt;br /&gt;
* [[Otros Materiales|Butiá V2.0 en madera]]&lt;br /&gt;
&lt;br /&gt;
== Lenguajes de programación ==&lt;br /&gt;
&lt;br /&gt;
El Robot butiá puede controlarse fácilmente desde cualquier [http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación] con soporte de conexiones [http://es.wikipedia.org/wiki/TCP/IP TCP/IP]. De todas maneras damos soporte para algunas plataformas concretas mediante [http://es.wikipedia.org/wiki/Plugin plugins], [http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones API's] o [http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado IDEs]. Algunos ejemplos son:&amp;lt;br&amp;gt;&lt;br /&gt;
[[TortuBots]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Butialo]] (Lua)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Python]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manuales ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_ax12_rev1.pdf Manual de armado paso a paso para Butiá con motores AX12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_motores_CC_rev1.pdf Manual de armado paso a paso para Butiá con motores de corriente continua]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/cartilla_de_armado_r%C3%A1pido_rev2.pdf Cartilla de armado rápido]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_construccion_rev1.pdf Manual de construcción]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_usuario_rev1.pdf Manual de usuario]&lt;br /&gt;
&lt;br /&gt;
== Tutoriales ==&lt;br /&gt;
&lt;br /&gt;
En esta sección encontrarás información de como programar el comportamiento del robot Butiá.&lt;br /&gt;
&lt;br /&gt;
* [[Ejemplo_recibir_ordenes_con_aplausos| Cómo controlar el robot Butiá mediante aplausos]]&lt;br /&gt;
* [[tortugarte_variables|Como almacenar los valores leídos de los sensores utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_obstaculos|Como evitar obstaculos utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_caida|Como evitar caer de una mesa]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas_sencillo|Como hacer un seguidor de líneas sencillo]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas|Como hacer un seguidor de líneas avanzado]]&lt;br /&gt;
* [[Ejemplo_sumo|Como hacer un luchador de Sumo]]&lt;br /&gt;
* [[Transformando_a_cms_el_valor_del_sensor_de_distancia|Transformando a centímetros la salida del sensor de distancia]]&lt;br /&gt;
* [[Butiá_que_habla|Butiá que habla]]&lt;br /&gt;
* [[Modularizando|Como modularizar un programa en Tortugarte]]&lt;br /&gt;
* [[video_tutoriales|Video Tutoriales]]&lt;br /&gt;
* [[Preguntas_frecuentes|Preguntas Frecuentes]]&lt;br /&gt;
* [[FollowMe|Utilizar plugin FollowMe]]&lt;br /&gt;
* [[USB4butiá| Cómo construir una placa USB4Butià]]&lt;br /&gt;
* [[Ejemplos_de_Aplicaciones_en_Butialo|Ejemplos de Lua en Butialo]]&lt;br /&gt;
* [[HackPoints|Como utilizar los HackPoints]]&lt;br /&gt;
* [[Medir voltaje y resistencia | Como medir voltaje y resistencia]]&lt;br /&gt;
* [[Tutorial_de_armado_de_butiá_con_motores_de_corriente_Continua | Tutorial de armado de butiá con motores de corriente Continua]]&lt;br /&gt;
* [[Intructivo_para_generar_archivos_gerbers_en_kicad | Instructivo para generar archivos gerbers en Kicad]]&lt;br /&gt;
* [[Butiá Cards | Tarjetas de comportamientos básicos]]&lt;br /&gt;
&lt;br /&gt;
== Actividades para realizar con el robot relacionadas con otras ciencias ==&lt;br /&gt;
&lt;br /&gt;
[[Biología y Butiá]]&lt;br /&gt;
&lt;br /&gt;
== ButiArte ==&lt;br /&gt;
&lt;br /&gt;
A puro arte &amp;lt;br&amp;gt;&lt;br /&gt;
[[remeras|Remeras]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cuadernolas Butiá y Sumo]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Logo oficial]]&lt;br /&gt;
&lt;br /&gt;
== Sumo.uy: Desafío aptos para Butiá en evento de SUMO Robótico ==&lt;br /&gt;
&lt;br /&gt;
Son numerosas las instituciones educativas que a nivel mundial desarrollan exposiciones robóticas.&amp;lt;br&amp;gt;&lt;br /&gt;
En nuestro país, la [http://www.fing.edu.uy Facultad de Ingeniería] de la [http://www.udelar.edu.uy Universidad de la República] es pionera. &amp;lt;br&amp;gt;&lt;br /&gt;
Desde 2004, año a año el evento [http://www.fing.edu.uy/sumo.uy sumo.uy] ha cumplido con éxito su misión: hacer que la sociedad sea partícipe, y no mero testigo, de los avances en robótica e inteligencia artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[http://www.fing.edu.uy/sumo.uy sumo.uy]''' ofrece un entorno abierto a todo público, donde universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros pueden interactuar, presentar sus trabajos y plantear sus inquietudes relacionadas con la temática del evento.&amp;lt;br&amp;gt;&lt;br /&gt;
En el marco de la edición 2013 de este evento se podrá participar con el robot Butiá en tres desafíos:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20Escolar_2013_v0.1.pdf Desafío Escolar]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20B%C3%A1sico_2013_v0.1.pdf Desafío Básico]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo_Avanzado_sumo.uy_2013.pdf_v0.1.pdf Desafío Avanzado]&lt;br /&gt;
&lt;br /&gt;
Para desafíos anteriores mire [[sumo.uy historial desafios Butiá| aquí]]&lt;br /&gt;
&lt;br /&gt;
==Sumo.uy: Experiencias desafíos Butiá==&lt;br /&gt;
&lt;br /&gt;
* Sumo.uy 2011 ( [[Sumo.uy_2011_Resumen_desafío_Butiá|español]] | [[Sumo.uy_2011_Summary_Butiá_challenge|ingles]] )&lt;br /&gt;
&lt;br /&gt;
== Curso Butiá: Robótica educativa ==&lt;br /&gt;
{{AP|Proyectos Butiá}}&lt;br /&gt;
En esta sección se mantiene un historial de proyectos que se realizan y/o fueron realizados en el curso.&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_abiertos|Proyectos abiertos para realizar en el marco del &amp;quot;Proyecto Butiá&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2014|Proyectos electiva Butiá 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2013|Proyectos electiva Butiá 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2012|Proyectos electiva Butiá 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2011|Proyectos módulo taller butiá 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2010|Proyectos módulo taller butiá 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2011|Espacio de documentación de los grupos 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2012|Espacio de documentación de los grupos 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2013|Espacio de documentación de los grupos 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2014|Espacio de documentación de los grupos 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[laboratorios_2014|Laboratorios 2014]]&lt;br /&gt;
&lt;br /&gt;
== Extensión Universitaria ==&lt;br /&gt;
&lt;br /&gt;
* [[talleres_y_charlas|Talleres y charlas]]&lt;br /&gt;
&lt;br /&gt;
* [[mega_construccion_2010|Construyendo los robots]]&lt;br /&gt;
&lt;br /&gt;
* [[entrega_de_Butiá_V1.0|Entrega de 28 robots Butiá en el evento Sumo.uy 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_liceos|Experiencias realizadas por nuestro usuarios]]&lt;br /&gt;
&lt;br /&gt;
* [[Robótica_educativa_con_el_robot_Butiá_Proyecto_Estímulo_a_la_Cultura_Científica_y_Tecnológica,_Prociencia,_18-21/07/2012|Prociencia 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[quiero_una_USB4Butia|Proyectos - Quiero una USB4Butia]]&lt;br /&gt;
&lt;br /&gt;
== Publicaciones científicas ==&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso Inforedu2013 &amp;quot;Congreso Internacional de Informática en la Educación&amp;quot; [http://www.fing.edu.uy/~aaguirre/papers/inforedu13_robotica_educativa.pdf Robótica educativa de la mano del robot Butiá][http://www.inforedu2013.mes.edu.cu/ponencia/uruguay/rob%C3%B3tica-educativa-en-uruguay-de-la-mano-del-robot-buti%C3%A1 Sitio del evento] &lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso WEEF 2012 &amp;quot;Engineering Education for Sustainable Development and Social Inclusión&amp;quot; [http://www.weef2012.edu.ar/papersFinal/information.php?doc=227 1 adolescente. 1 computadora. 1 robot]&lt;br /&gt;
&lt;br /&gt;
*Artículo publicado en OLPC, [http://www.olpcnews.com/use_cases/technology/usb4butia_a_truly_free_as_in_freedom_input_output_board.html USB4butia - A Truly Free (as in Freedom) Input/Output Board]&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf FollowMe: seguimiento de objetos mediante el uso de webcam y plataforma Butiá] pag. 281&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf USB4BUTIA: Interfaz Robótica Educativa de simple fabricación y bajo costo] pag. 282&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/butia_edu1a1_v1.4_ponencia_completa.pdf Butiá, transformando tu XO en un robot móvil programable]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/De_tortugarte_a_butia_en_la_escuela_primaria.pdf De la tortuga al robot Butiá, experiencias en el uso de Tortugarte en la escuela primaria]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Encuentro Desarrolladores Uruguay, eduJAM 2012: [http://wiki.sugarlabs.org/images/1/13/Turtle_sensors.pdf How open hardware and software can empower students and communities]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Simposio Argentino de Sistemas Embebidos, Sase2011, Buenos Aires, Argentina: &lt;br /&gt;
[http://www.sase.com.ar/2011/case/articulos-case/butia-plataforma-robotica-generica-para-la-ensenanza-de-la-informatica/ Butiá: Plataforma robótica genérica para la enseñanza de la informática]&lt;br /&gt;
&lt;br /&gt;
== Material de Presentaciones Butiá ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:poster_olpc-sf.jpg|thumb|Poster presentado en OLPC - San Francisco / 2011]]&lt;br /&gt;
[[Archivo:OLPC - SF 2012.png|thumb|Poster presentado en OLPC - San Francisco / 2012]]&lt;br /&gt;
[[Archivo:OLPC - SF 2013.png|thumb|Poster presentado en OLPC - San Francisco / 2013]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/jiio.pdf JIIO, XIII Jornadas de Informática e Investigación Operativa, Montevideo, Uruguay, 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA_PT%28a.k.a%20consegi%29.pdf CONSEGI 2013, Brasilia, Brasil 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA.pdf ANTEL AVANZA, Montevideo, Uruguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20edujam%20Paraguay%202013.pdf EDUJAM 2013, Asunción, Paraguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20sumo.uy%202013.pdf Sumo.uy 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20congreso%20matem%C3%A1ticas.pdf Congreso de matemáticas 2013]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/proyecto_butia_capacitacion_5_2012.pdf Butiá: Sistema robótico constructivo de bajo costo para uso educativo, Encuentro Nacional de Voluntarios 2012, Squeakfest 2012]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/Turtle%20sensors.pdf How open hardware and software can empower students and communities, eduJAM2012]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/de_la_tortuga_al_robot_butia.pdf De la tortuga al robot Butiá, Experiencias en el uso de Tortugarte en la escuela primaria, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-1a1.pdf Butiá: Plataforma robótica genérica para la enseñanza inicial y media, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-seminarioFIERGS_handout.pdf Charla del robot Butiá en el Seminario FIERGS, Porto Alegre, Brasil]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/pres_seMINArios_2011_handouts.pdf Charla del robot Butiá el los seMINArios del Instituto de Computación, UdelaR, Montevideo, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCASE2011HandsOut.pdf Charla del robot Butiá en el congreso argentino de sistemas embebidos, Buenos Aires, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/butia-jornadasANTel-FIng2011.pdf Charla del robot Butiá en las jornadas de telecomunicaciones realizadas, Rocha, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCPBRASIL.pdf Charla del robot Butiá en el campus party, San Pablo, Brasil, 2011]&lt;br /&gt;
&lt;br /&gt;
== El robot Butiá en los medios ==&lt;br /&gt;
&lt;br /&gt;
[[notas_en_tv|Notas en televisión]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Notas en Radio]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_en_blogs|Notas en Blogs y la Web]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[congresos_y_seminarios|Congresos y Seminarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_revistas|Notas en revistas]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_diarios|Notas en periódicos]]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
&lt;br /&gt;
[[nuestros_videos|Videos]]&lt;br /&gt;
&lt;br /&gt;
[[pistas butiá|Pistas]]&lt;br /&gt;
&lt;br /&gt;
[[banners butiá|Banners]]&lt;br /&gt;
&lt;br /&gt;
== Comunicación ==&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=147042805312846 Seguinos en Facebook uniendote al grupo]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://plus.google.com/u/0/108413393520841902443/posts Seguinos en google+]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-list Lista de correo butia-list]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l Lista de correo butiá-devel-l para tratar temas relacionados con el desarrollo de la plataforma]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[instructivo_newsgroup|Instructivo para el uso del Newsgroup de fing]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preguntas Frecuentes (f.a.q) sobre el Butiá ==&lt;br /&gt;
&lt;br /&gt;
Puede encontrarse una lista de preguntas frecuentes y su respuesta en [[preguntas_frecuentes]]&lt;br /&gt;
&lt;br /&gt;
== Empezando a utilizar wiki ==&lt;br /&gt;
&lt;br /&gt;
Consulta la [http://meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]&lt;br /&gt;
&lt;br /&gt;
[[Main page (English)]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki&amp;diff=6037</id>
		<title>Wiki</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki&amp;diff=6037"/>
				<updated>2014-12-03T19:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Wiki trasladada a Wiki Butiá&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECCIÓN [[Wiki Butiá]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6035</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=P%C3%A1gina_principal&amp;diff=6035"/>
				<updated>2014-12-03T19:05:16Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Página principal trasladada a Wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECCIÓN [[Wiki]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=6034</id>
		<title>Wiki Butiá</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=6034"/>
				<updated>2014-12-03T19:05:15Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Página principal trasladada a Wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sobre este sitio ==&lt;br /&gt;
Este sitio es un espacio colaborativo para articular los aportes de la comunidad Butiá. Podrá encontrar información técnica, ideas y propuestas. Si usted está buscando la página principal del Proyecto Butiá debe dirigirse a [http://www.fing.edu.uy/inco/proyectos/butia web institucional del Proyecto Butiá]&lt;br /&gt;
&lt;br /&gt;
== Proyecto Butiá ==&lt;br /&gt;
&lt;br /&gt;
Este proyecto plantea como objetivo crear una plataforma simple, la cual ponga al alcance de estudiantes escolares o liceales las herramientas necesarias para permitirles interiorizarse con la programación de  comportamientos para robots.&lt;br /&gt;
El proyecto Butiá trata de ampliar las capacidades sensoriales y de actuación de la computadora XO del proyecto OLPC (u otro netbook educativo), transformandola en una plataforma robótica móvil.&lt;br /&gt;
Actualmente la implementación 2.0 del proyecto está siendo utilizado en formato de kit, distribuido a más de 100 centros educativos del Uruguay, con un set de sensores y piezas que permiten cambiar la ubicación de los sensores en la plataforma móvil donde se coloca la computadora.&amp;lt;br&amp;gt;&lt;br /&gt;
A su vez el proyecto Butiá fue desarrollado teniendo en mente el hecho que agregar nuevos sensores o actuadores a la plataforma sea muy sencillo, esto abre la posibilidad a que usuarios interesados con el hardware puedan implementar fácilmente sus propios sensores y actuadores. Incluso el [http://es.wikipedia.org/wiki/Dise%C3%B1o_industrial diseño industrial] del robot es abierto lo cual permite realizarlo con materiales reciclados o de bajo costo.&lt;br /&gt;
&lt;br /&gt;
== Desarrollo ==&lt;br /&gt;
&lt;br /&gt;
La plataforma Butiá esta liberada como software libre a la comunidad, tu puedes contribuir con el proyecto como desarrollador uniéndote en [http://sourceforge.net/projects/butia/ Proyecto Butiá en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
El código fuente del software (plugins, toribio, tortubots, etc) está versionado bajo sistema de control [http://git-scm.com/ GIT], para saber más vea [[Git Butia]].&amp;lt;br/&amp;gt;&lt;br /&gt;
El código de firmware y PCBs esta versionado bajo sistema de control [http://git-scm.com/ GIT], en el git de USB4all [http://sourceforge.net/projects/usb4all/ USB4all en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
Actualmente estamos trabajando en una nueva placa ([[usb4butia|USB4butia]]) para el [[Butia2|Butiá 2.0]] que busca bajar costos, ser más robusto al permitir conectar dispositivos y hacer más simple la construcción de la placa de E/S al utilizar la plataforma [[usb4all|USB4all]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Se puede participar a través de la lista de correo de desarrollo [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l butiá-devel-l], también puede ver el [https://www.fing.edu.uy/pipermail/butia-devel-l/ historial] de la misma. &amp;lt;br/&amp;gt;&lt;br /&gt;
También puede participar de las reuniones Butiá, las mismas se realizan de forma quincenal los días '''Martes a las 18:30hs en el Laboratorio de Robótica''' [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Preguntas_frecuentes (cómo llegar)].&amp;lt;br/&amp;gt; En el [http://www.fing.edu.uy/inco/proyectos/butia/eventos.html calendario Butiá] puede consultar la fecha de las reuniones y otras actividades que realizamos.&lt;br /&gt;
Puede ver el desarrollo de las reuniones en [[Actas Reuniones Butia]]. &amp;lt;br/&amp;gt; &lt;br /&gt;
Propuestas de discusiones para las reuniones [[Discusiones para las reuniones]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Este proyecto se realiza con el apoyo de [http://www.antel.com.uy ANTel].&lt;br /&gt;
&lt;br /&gt;
== Construcción ==&lt;br /&gt;
&lt;br /&gt;
* [[construcción_Butiá_V1.0|Construyendo un Robot Butiáv1.0 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V1.8|Construyendo un Robot Butiáv1.8 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V2.0|Construyendo un Robot Butiáv2.0 paso a paso]]&lt;br /&gt;
* [[flashearIdAX12|Como flashear los motores AX12]]&lt;br /&gt;
* [[Motores|Información general sobre motores]]&lt;br /&gt;
* [[Otros Materiales|Butiá V2.0 en madera]]&lt;br /&gt;
&lt;br /&gt;
== Lenguajes de programación ==&lt;br /&gt;
&lt;br /&gt;
El Robot butiá puede controlarse fácilmente desde cualquier [http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación] con soporte de conexiones [http://es.wikipedia.org/wiki/TCP/IP TCP/IP]. De todas maneras damos soporte para algunas plataformas concretas mediante [http://es.wikipedia.org/wiki/Plugin plugins], [http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones API's] o [http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado IDEs]. Algunos ejemplos son:&amp;lt;br&amp;gt;&lt;br /&gt;
[[TortuBots]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Butialo]] (Lua)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Python]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manuales ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_ax12_rev1.pdf Manual de armado paso a paso para Butiá con motores AX12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/armando_paso_a_paso_motores_CC_rev1.pdf Manual de armado paso a paso para Butiá con motores de corriente continua]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/cartilla_de_armado_r%C3%A1pido_rev2.pdf Cartilla de armado rápido]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_construccion_rev1.pdf Manual de construcción]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/docs_butia2/manual_de_usuario_rev1.pdf Manual de usuario]&lt;br /&gt;
&lt;br /&gt;
== Tutoriales ==&lt;br /&gt;
&lt;br /&gt;
En esta sección encontrarás información de como programar el comportamiento del robot Butiá.&lt;br /&gt;
&lt;br /&gt;
* [[Ejemplo_recibir_ordenes_con_aplausos| Cómo controlar el robot Butiá mediante aplausos]]&lt;br /&gt;
* [[tortugarte_variables|Como almacenar los valores leídos de los sensores utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_obstaculos|Como evitar obstaculos utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_caida|Como evitar caer de una mesa]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas_sencillo|Como hacer un seguidor de líneas sencillo]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas|Como hacer un seguidor de líneas avanzado]]&lt;br /&gt;
* [[Ejemplo_sumo|Como hacer un luchador de Sumo]]&lt;br /&gt;
* [[Transformando_a_cms_el_valor_del_sensor_de_distancia|Transformando a centímetros la salida del sensor de distancia]]&lt;br /&gt;
* [[Butiá_que_habla|Butiá que habla]]&lt;br /&gt;
* [[Modularizando|Como modularizar un programa en Tortugarte]]&lt;br /&gt;
* [[video_tutoriales|Video Tutoriales]]&lt;br /&gt;
* [[Preguntas_frecuentes|Preguntas Frecuentes]]&lt;br /&gt;
* [[FollowMe|Utilizar plugin FollowMe]]&lt;br /&gt;
* [[USB4butiá| Cómo construir una placa USB4Butià]]&lt;br /&gt;
* [[Ejemplos_de_Aplicaciones_en_Butialo|Ejemplos de Lua en Butialo]]&lt;br /&gt;
* [[HackPoints|Como utilizar los HackPoints]]&lt;br /&gt;
* [[Medir voltaje y resistencia | Como medir voltaje y resistencia]]&lt;br /&gt;
* [[Tutorial_de_armado_de_butiá_con_motores_de_corriente_Continua | Tutorial de armado de butiá con motores de corriente Continua]]&lt;br /&gt;
* [[Intructivo_para_generar_archivos_gerbers_en_kicad | Instructivo para generar archivos gerbers en Kicad]]&lt;br /&gt;
* [[Butiá Cards | Tarjetas de comportamientos básicos]]&lt;br /&gt;
&lt;br /&gt;
== Actividades para realizar con el robot relacionadas con otras ciencias ==&lt;br /&gt;
&lt;br /&gt;
[[Biología y Butiá]]&lt;br /&gt;
&lt;br /&gt;
== ButiArte ==&lt;br /&gt;
&lt;br /&gt;
A puro arte &amp;lt;br&amp;gt;&lt;br /&gt;
[[remeras|Remeras]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cuadernolas Butiá y Sumo]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Logo oficial]]&lt;br /&gt;
&lt;br /&gt;
== Sumo.uy: Desafío aptos para Butiá en evento de SUMO Robótico ==&lt;br /&gt;
&lt;br /&gt;
Son numerosas las instituciones educativas que a nivel mundial desarrollan exposiciones robóticas.&amp;lt;br&amp;gt;&lt;br /&gt;
En nuestro país, la [http://www.fing.edu.uy Facultad de Ingeniería] de la [http://www.udelar.edu.uy Universidad de la República] es pionera. &amp;lt;br&amp;gt;&lt;br /&gt;
Desde 2004, año a año el evento [http://www.fing.edu.uy/sumo.uy sumo.uy] ha cumplido con éxito su misión: hacer que la sociedad sea partícipe, y no mero testigo, de los avances en robótica e inteligencia artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[http://www.fing.edu.uy/sumo.uy sumo.uy]''' ofrece un entorno abierto a todo público, donde universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros pueden interactuar, presentar sus trabajos y plantear sus inquietudes relacionadas con la temática del evento.&amp;lt;br&amp;gt;&lt;br /&gt;
En el marco de la edición 2013 de este evento se podrá participar con el robot Butiá en tres desafíos:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20Escolar_2013_v0.1.pdf Desafío Escolar]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20B%C3%A1sico_2013_v0.1.pdf Desafío Básico]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo_Avanzado_sumo.uy_2013.pdf_v0.1.pdf Desafío Avanzado]&lt;br /&gt;
&lt;br /&gt;
Para desafíos anteriores mire [[sumo.uy historial desafios Butiá| aquí]]&lt;br /&gt;
&lt;br /&gt;
==Sumo.uy: Experiencias desafíos Butiá==&lt;br /&gt;
&lt;br /&gt;
* Sumo.uy 2011 ( [[Sumo.uy_2011_Resumen_desafío_Butiá|español]] | [[Sumo.uy_2011_Summary_Butiá_challenge|ingles]] )&lt;br /&gt;
&lt;br /&gt;
== Curso Butiá: Robótica educativa ==&lt;br /&gt;
{{AP|Proyectos Butiá}}&lt;br /&gt;
En esta sección se mantiene un historial de proyectos que se realizan y/o fueron realizados en el curso.&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_abiertos|Proyectos abiertos para realizar en el marco del &amp;quot;Proyecto Butiá&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2014|Proyectos electiva Butiá 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2013|Proyectos electiva Butiá 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2012|Proyectos electiva Butiá 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2011|Proyectos módulo taller butiá 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2010|Proyectos módulo taller butiá 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2011|Espacio de documentación de los grupos 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2012|Espacio de documentación de los grupos 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2013|Espacio de documentación de los grupos 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2014|Espacio de documentación de los grupos 2014]]&lt;br /&gt;
&lt;br /&gt;
* [[laboratorios_2014|Laboratorios 2014]]&lt;br /&gt;
&lt;br /&gt;
== Extensión Universitaria ==&lt;br /&gt;
&lt;br /&gt;
* [[talleres_y_charlas|Talleres y charlas]]&lt;br /&gt;
&lt;br /&gt;
* [[mega_construccion_2010|Construyendo los robots]]&lt;br /&gt;
&lt;br /&gt;
* [[entrega_de_Butiá_V1.0|Entrega de 28 robots Butiá en el evento Sumo.uy 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_liceos|Experiencias realizadas por nuestro usuarios]]&lt;br /&gt;
&lt;br /&gt;
* [[Robótica_educativa_con_el_robot_Butiá_Proyecto_Estímulo_a_la_Cultura_Científica_y_Tecnológica,_Prociencia,_18-21/07/2012|Prociencia 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[quiero_una_USB4Butia|Proyectos - Quiero una USB4Butia]]&lt;br /&gt;
&lt;br /&gt;
== Publicaciones científicas ==&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso Inforedu2013 &amp;quot;Congreso Internacional de Informática en la Educación&amp;quot; [http://www.fing.edu.uy/~aaguirre/papers/inforedu13_robotica_educativa.pdf Robótica educativa de la mano del robot Butiá][http://www.inforedu2013.mes.edu.cu/ponencia/uruguay/rob%C3%B3tica-educativa-en-uruguay-de-la-mano-del-robot-buti%C3%A1 Sitio del evento] &lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso WEEF 2012 &amp;quot;Engineering Education for Sustainable Development and Social Inclusión&amp;quot; [http://www.weef2012.edu.ar/papersFinal/information.php?doc=227 1 adolescente. 1 computadora. 1 robot]&lt;br /&gt;
&lt;br /&gt;
*Artículo publicado en OLPC, [http://www.olpcnews.com/use_cases/technology/usb4butia_a_truly_free_as_in_freedom_input_output_board.html USB4butia - A Truly Free (as in Freedom) Input/Output Board]&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf FollowMe: seguimiento de objetos mediante el uso de webcam y plataforma Butiá] pag. 281&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf USB4BUTIA: Interfaz Robótica Educativa de simple fabricación y bajo costo] pag. 282&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/butia_edu1a1_v1.4_ponencia_completa.pdf Butiá, transformando tu XO en un robot móvil programable]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/De_tortugarte_a_butia_en_la_escuela_primaria.pdf De la tortuga al robot Butiá, experiencias en el uso de Tortugarte en la escuela primaria]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Encuentro Desarrolladores Uruguay, eduJAM 2012: [http://wiki.sugarlabs.org/images/1/13/Turtle_sensors.pdf How open hardware and software can empower students and communities]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Simposio Argentino de Sistemas Embebidos, Sase2011, Buenos Aires, Argentina: &lt;br /&gt;
[http://www.sase.com.ar/2011/case/articulos-case/butia-plataforma-robotica-generica-para-la-ensenanza-de-la-informatica/ Butiá: Plataforma robótica genérica para la enseñanza de la informática]&lt;br /&gt;
&lt;br /&gt;
== Material de Presentaciones Butiá ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:poster_olpc-sf.jpg|thumb|Poster presentado en OLPC - San Francisco / 2011]]&lt;br /&gt;
[[Archivo:OLPC - SF 2012.png|thumb|Poster presentado en OLPC - San Francisco / 2012]]&lt;br /&gt;
[[Archivo:OLPC - SF 2013.png|thumb|Poster presentado en OLPC - San Francisco / 2013]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/jiio.pdf JIIO, XIII Jornadas de Informática e Investigación Operativa, Montevideo, Uruguay, 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA_PT%28a.k.a%20consegi%29.pdf CONSEGI 2013, Brasilia, Brasil 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1-ANTEL-AVANZA.pdf ANTEL AVANZA, Montevideo, Uruguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20edujam%20Paraguay%202013.pdf EDUJAM 2013, Asunción, Paraguay 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20sumo.uy%202013.pdf Sumo.uy 2013]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/charlas/Buti%C3%A1%202.0%20SAM%20congreso%20matem%C3%A1ticas.pdf Congreso de matemáticas 2013]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/proyecto_butia_capacitacion_5_2012.pdf Butiá: Sistema robótico constructivo de bajo costo para uso educativo, Encuentro Nacional de Voluntarios 2012, Squeakfest 2012]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/Turtle%20sensors.pdf How open hardware and software can empower students and communities, eduJAM2012]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/de_la_tortuga_al_robot_butia.pdf De la tortuga al robot Butiá, Experiencias en el uso de Tortugarte en la escuela primaria, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-1a1.pdf Butiá: Plataforma robótica genérica para la enseñanza inicial y media, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-seminarioFIERGS_handout.pdf Charla del robot Butiá en el Seminario FIERGS, Porto Alegre, Brasil]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/pres_seMINArios_2011_handouts.pdf Charla del robot Butiá el los seMINArios del Instituto de Computación, UdelaR, Montevideo, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCASE2011HandsOut.pdf Charla del robot Butiá en el congreso argentino de sistemas embebidos, Buenos Aires, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/butia-jornadasANTel-FIng2011.pdf Charla del robot Butiá en las jornadas de telecomunicaciones realizadas, Rocha, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCPBRASIL.pdf Charla del robot Butiá en el campus party, San Pablo, Brasil, 2011]&lt;br /&gt;
&lt;br /&gt;
== El robot Butiá en los medios ==&lt;br /&gt;
&lt;br /&gt;
[[notas_en_tv|Notas en televisión]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Notas en Radio]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_en_blogs|Notas en Blogs y la Web]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[congresos_y_seminarios|Congresos y Seminarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_revistas|Notas en revistas]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_diarios|Notas en periódicos]]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
&lt;br /&gt;
[[nuestros_videos|Videos]]&lt;br /&gt;
&lt;br /&gt;
[[pistas butiá|Pistas]]&lt;br /&gt;
&lt;br /&gt;
[[banners butiá|Banners]]&lt;br /&gt;
&lt;br /&gt;
== Comunicación ==&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=147042805312846 Seguinos en Facebook uniendote al grupo]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://plus.google.com/u/0/108413393520841902443/posts Seguinos en google+]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-list Lista de correo butia-list]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l Lista de correo butiá-devel-l para tratar temas relacionados con el desarrollo de la plataforma]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[instructivo_newsgroup|Instructivo para el uso del Newsgroup de fing]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preguntas Frecuentes (f.a.q) sobre el Butiá ==&lt;br /&gt;
&lt;br /&gt;
Puede encontrarse una lista de preguntas frecuentes y su respuesta en [[preguntas_frecuentes]]&lt;br /&gt;
&lt;br /&gt;
== Empezando a utilizar wiki ==&lt;br /&gt;
&lt;br /&gt;
Consulta la [http://meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]&lt;br /&gt;
&lt;br /&gt;
[[Main page (English)]]&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6027</id>
		<title>Archivo:Sharp.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6027"/>
				<updated>2014-11-11T17:56:11Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Sharp.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6025</id>
		<title>Archivo:Sharp.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6025"/>
				<updated>2014-11-11T17:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Sharp.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6024</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6024"/>
				<updated>2014-11-11T17:50:02Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:Sharp.jpg]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6023</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6023"/>
				<updated>2014-11-11T17:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:Sharp.jpg|500px]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6022</id>
		<title>Archivo:Sharp.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6022"/>
				<updated>2014-11-11T17:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Sharp.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6021</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6021"/>
				<updated>2014-11-11T17:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:20141110_184701.jpg|500px]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6020</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6020"/>
				<updated>2014-11-11T17:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:20141110_184701.jpg]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6019</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6019"/>
				<updated>2014-11-11T17:43:06Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:20141110_184701.jpg|200px]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6018</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6018"/>
				<updated>2014-11-11T17:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:20141110_184701.jpg..jpg|200px]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6017</id>
		<title>Archivo:20141110 184701.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6017"/>
				<updated>2014-11-11T17:41:13Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:20141110 184701.jpg»: Revertido a la versión subida el 11 nov 2014 a las 17:37&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Versión del sensor Sharp con los cables enverados para mayo seguridad&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6016</id>
		<title>Archivo:20141110 184701.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6016"/>
				<updated>2014-11-11T17:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:20141110 184701.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Versión del sensor Sharp con los cables enverados para mayo seguridad&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6015</id>
		<title>Especificaciones fabricación</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Especificaciones_fabricaci%C3%B3n&amp;diff=6015"/>
				<updated>2014-11-11T17:39:24Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: /* Placa Sensores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Placa USB4Butiá ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials USB4Butiá'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/PIC18F4550-I%2FP/PIC18F4550-I%2FP-ND/704580 PIC 18F4550]|| 1 || microcontroller||PIC18F4550     &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/2-641606-4/A94140-ND/292145 Socket 40pin]||1||socket for the microcontroller||under PIC18F4550 &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||6|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/292304-1/A31725-ND/773785 USB Female Type B]||1||CONN USB RECEPT R/A TYPE B 4POS||USB_B  &lt;br /&gt;
|-       &lt;br /&gt;
|[http://www.digikey.com/product-search/en?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=WM18901-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD ax12 bus connector] ||1|| CONN HEADER 3POS 2.5MM R/A TIN||AX-12  &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 120Ω||1||resistor 5% tolerance, 1/4w power||120Ω    &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 390Ω||2|| resistor 5% tolerance, 1/4w power||390Ω&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1KΩ||2|| resistor 5% tolerance, 1/4w power||1KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10KΩ||11|| resistor 5% tolerance, 1/4w power||10KΩ&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1MΩ||1|| resistor 5% tolerance, 1/4w power||1MΩ&lt;br /&gt;
|-&lt;br /&gt;
|22PF||2||capacitor||22pF&lt;br /&gt;
|-&lt;br /&gt;
|0.1UF||4||capacitor||0.1uF&lt;br /&gt;
|-&lt;br /&gt;
|0.47UF||1||capacitor||0.47uF&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.newark.com/rubycon/25nw710mefc6-3x7/capacitor-alum-elect-10uf-25v-20/dp/54T5342?in_merch=Popular%20Capacitors electrolitic capacitor 10UF, 25V, 20%]||1|| lower than 7mm||10uF&lt;br /&gt;
|-&lt;br /&gt;
|Led 3mm||1||standar 3mm led color green ||LED&lt;br /&gt;
|-&lt;br /&gt;
|20MHZ crystal||1||HC49S-20-B-30-30-F-20.000MHz must be with height less than 7mm||Crystal 20MHZ&lt;br /&gt;
|-&lt;br /&gt;
|switch||2|| 4.3mm  microswitch|| RST SW1, PROG SW2&lt;br /&gt;
|-&lt;br /&gt;
|Female Header||11||Contact spacing 2.54mm (0.1&amp;quot;)||h1..h11    &lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/usb4butia1.9.0.zip USB4Butiá Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Shield para motores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of materials for USB4Butiá motor shield'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?vendor=0&amp;amp;keywords=L298HN L298HN]|| 1 ||IC BRIDGE DRIVER PAR 15MULTIWATT||U1 L298      &lt;br /&gt;
|-&lt;br /&gt;
|1A7||8||diode type 1N4001 o 1N4007||D1..D8   &lt;br /&gt;
|-&lt;br /&gt;
|male headers pins ||14||Contact spacing 2.54mm (0.1&amp;quot;)||P1..P4&lt;br /&gt;
|-      &lt;br /&gt;
|100nF (10V minimum, 20% tolerance)||2||ceramic capacitor||C1, C2    &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/shield_l298hn.zip USB4Butiá motor shield Gerber file]&lt;br /&gt;
&lt;br /&gt;
== Placa Sensores ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''Bill of Materials allselasercut'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Component&lt;br /&gt;
! width=&amp;quot;20 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Quantity&lt;br /&gt;
! width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|PCB Identifier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/5555167-1/A31444-ND/769588 RJ45 Female Jack]||5|| CONN MOD JACK R/A 8P8C ||RJ45&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ECA-1EM471B/P10379TB-ND/268464 470uf electronic capacitor]||1|| CAP ALUM 470UF 25V 20% RADIAL || C1 CAPAPOL &lt;br /&gt;
|-&lt;br /&gt;
|Resistor 10kΩ||4||5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 6.8kΩ||1||5% tolerance, 1/4w power ||    &lt;br /&gt;
|-       &lt;br /&gt;
|Resistor 120Ω||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 1kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|Resistor 68kΩ||2|| 5% tolerance, 1/4w power||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=365-1174-ND Led]||2||HIGH INTENSITY LED 525NM ROUND GREEN 3MM like digikey part 365-1174-ND||LED &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.aliexpress.com/item/LXD4548-CdS-Photoconductive-cells-CdS-Photoresistor/473940099.html Photoresistor]||3|| 10K-200K OHM 4.20MM Ceramic Substrate(Length x Width x Height):L4.3mm X W3.4mm X H1.8mm like LXD4548||LDR &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-distance-measuring/1967026?k=GP2Y0A21YK0F GP2Y0A21YK0F]||1|| SENSOR DISTANCE MEASURE 80CM ANLG||sharp &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-search/en?x=0&amp;amp;y=0&amp;amp;lang=en&amp;amp;site=us&amp;amp;KeyWords=KS-03Q-02 Pushbutton]||1|| like digkey KS-03Q-02 product||SW_PUSH&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.digikey.com/product-detail/en/ACC-C17-3/EG4805-ND/2116284 Pushbutton cap]||1|| like digikey ACC-C17-6 product ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PCB material specification: &lt;br /&gt;
* FR4 Material&lt;br /&gt;
* 1.6MM Thickness&lt;br /&gt;
* HASL Lead Free Surface Finish&lt;br /&gt;
* 1oz Copper Thickness&lt;br /&gt;
* Green Solder Mask&lt;br /&gt;
* White Silkscreen &lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/PCBenero2014/allsenlasercutV2.zip Sensor kit Gerber file]&lt;br /&gt;
* Each module specified in plantilla_allsenV2_lasercut-F_SilkS must be cuted with mouse bite technique or similar&lt;br /&gt;
* The sharp sensor must be connected in this way [[Archivo:20141110 184701.jpg|200px]]&lt;br /&gt;
* To make more robust the connections please pass the cable througth the holes before doing the soldiering. TODO attach a new picture&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6014</id>
		<title>Archivo:20141110 184701.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:20141110_184701.jpg&amp;diff=6014"/>
				<updated>2014-11-11T17:37:57Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: Versión del sensor Sharp con los cables enverados para mayo seguridad&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Versión del sensor Sharp con los cables enverados para mayo seguridad&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6013</id>
		<title>Archivo:Sharp.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Sharp.jpg&amp;diff=6013"/>
				<updated>2014-11-11T17:35:06Z</updated>
		
		<summary type="html">&lt;p&gt;LOLO58: subió una nueva versión de «Archivo:Sharp.jpg»: Revertido a la versión subida el 27 ene 2014 a las 19:39&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LOLO58</name></author>	</entry>

	</feed>