<?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=Apineyro</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=Apineyro"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php/Especial:Contribuciones/Apineyro"/>
		<updated>2026-04-05T19:55:38Z</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=Grupo_2&amp;diff=5959</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5959"/>
				<updated>2014-09-16T13:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'Ax-12 motors'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 30° y 330°) la posición deseada.&lt;br /&gt;
Cabe destacar que el motor presenta una zona ciega, es decir gira de 0° a 300°, los 60° restantes no los proporciona.&lt;br /&gt;
Por esta última razón es que se establecieron los valores entre 30 y 330 grados.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se cambió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
&lt;br /&gt;
Archivo probado en Versión 23:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip&lt;br /&gt;
&lt;br /&gt;
Archivo probado en Versión 25:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/7/7c/Butia25amd64.zip&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5958</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5958"/>
				<updated>2014-09-16T13:37:47Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'Ax-12 motors'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 30° y 330°) la posición deseada.&lt;br /&gt;
Cabe destacar que el motor presenta una zona ciega, es decir gira de 0° a 300°, los 60° restantes no los proporciona.&lt;br /&gt;
Por esta última razón es que se establecieron los valores entre 30 y 330 grados.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se cambió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
Archivo probado en Versión 23:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip&lt;br /&gt;
&lt;br /&gt;
Archivo probado en Versión 25:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/7/7c/Butia25amd64.zip&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Butia25amd64.zip&amp;diff=5957</id>
		<title>Archivo:Butia25amd64.zip</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Butia25amd64.zip&amp;diff=5957"/>
				<updated>2014-09-16T13:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: Archivo butia.py funcionando en la versión 25 amd64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Archivo butia.py funcionando en la versión 25 amd64&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5954</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5954"/>
				<updated>2014-09-16T04:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'Ax-12 motors'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 30° y 330°) la posición deseada.&lt;br /&gt;
Cabe destacar que el motor presenta una zona ciega, es decir gira de 0° a 300°, los 60° restantes no los proporciona.&lt;br /&gt;
Por esta última razón es que se establecieron los valores entre 30 y 330 grados.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se cambió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip&lt;br /&gt;
&lt;br /&gt;
Versión 25 para amd64: https://www.dropbox.com/s/4dexrs7t95jl21r/butia.py.zip?dl=0&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5842</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5842"/>
				<updated>2014-08-18T17:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se cambió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5841</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5841"/>
				<updated>2014-08-18T17:10:27Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se corrigió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
 https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5840</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5840"/>
				<updated>2014-08-18T17:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se corrigió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;br /&gt;
[[https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/5/5c/Butia.zip]]&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Butia.zip&amp;diff=5839</id>
		<title>Archivo:Butia.zip</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Butia.zip&amp;diff=5839"/>
				<updated>2014-08-18T17:08:28Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: Archivo que contiene butia.py. Este archivo se ubica en plugins/butia/butia.py&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Archivo que contiene butia.py. Este archivo se ubica en plugins/butia/butia.py&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5838</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5838"/>
				<updated>2014-08-18T17:05:40Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
Se corrigió la línea 25 por la siguiente:&lt;br /&gt;
 return raw[2] + raw[1] * 256&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
Este es el principal archivo donde se encuentra la plaeta agregada con su contenido. Se sugiere sustituir el archivo por el siguiente:&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5835</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5835"/>
				<updated>2014-08-18T03:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: /* Archivos: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
*plugins/butia/pybot/functions.py&lt;br /&gt;
 Se corrigió la línea 81: Donde decía &amp;quot;writeInfo&amp;quot; se cambió por &amp;quot;readInfo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/pybot/drivers/ax12&lt;br /&gt;
 MODIFICAMOS ALGO????&lt;br /&gt;
&lt;br /&gt;
*plugins/butia/butia.py&lt;br /&gt;
 Este es el principal archivo donde se encuentra la plaeta agregada con su contenido.&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5834</id>
		<title>Grupo 2</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_2&amp;diff=5834"/>
				<updated>2014-08-18T03:04:03Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción: ==&lt;br /&gt;
El siguiente proyecto se basa en poner a disposición y funcionamiento los motores ax-12 para el robot Butiá por medio de la paleta 'nombre de la paleta'.&lt;br /&gt;
&lt;br /&gt;
== Objetivos: ==&lt;br /&gt;
Nuestro objetivo es agregarle al programa Turtlebots, una nueva paleta para poder extender el funcionamiento de los motores ax-12.&lt;br /&gt;
&lt;br /&gt;
== Integrantes: ==&lt;br /&gt;
*Misael Mallada&lt;br /&gt;
*Andrés Piñeyro&lt;br /&gt;
*Sixto Martínez&lt;br /&gt;
&lt;br /&gt;
==Tutor:==&lt;br /&gt;
*Rodrigo Dearmas&lt;br /&gt;
&lt;br /&gt;
== Motivación: ==&lt;br /&gt;
El impulso de todo esto fue debido a la asignación del proyecto a nuestro grupo, que de todos los que había fue el que más nos atrapó.&lt;br /&gt;
Nos pareció realmente interesante, ya que podríamos agregar una nueva funcionalidad al Turtlebots y además, aportar nuestro granito de arena a la evolución y crecimiento de la plataforma, ya que estos motores son de mayor precisión que los de corriente continua.&lt;br /&gt;
&lt;br /&gt;
== Investigación: ==&lt;br /&gt;
Como primer paso, buscamos información acerca de estos servomotores.&lt;br /&gt;
Tratamos de interiorizarnos, ya que era la primera vez que teníamos contacto con ellos.&lt;br /&gt;
Pasada esta etapa, que fue la más teórica, tuvimos una idea de que era lo que teníamos y necesitábamos.&lt;br /&gt;
Procedimos a centrarnos en los archivos que nos servirían de ayuda, y además a crear nuestros propios archivos para poner en marcha la creación de la paleta con sus respectivos bloques.&lt;br /&gt;
&lt;br /&gt;
==Evolución:==&lt;br /&gt;
&lt;br /&gt;
En nuestra primer reunión tuvimos un pantallazo general de los motores AX-12.&lt;br /&gt;
Por medio de un manual pudimos ver las funciones, que a la postre van ser útiles para implementar a la hora de armar los paquetes de datos.&lt;br /&gt;
También vimos un ejemplo de su utilización como lo puede ser una pinza, y nos dio una idea de lo que vamos a proponer como proyecto.&lt;br /&gt;
Para nuestra próxima reunión se acordaron objetivos puntuales para ir avanzando en el tema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la segunda reunión expusimos los objetivos que nos habíamos trazado anteriormente, que era poder armar una paleta en turtlebots con sus respectivos bloques.&lt;br /&gt;
Estuvimos charlando sobre como realizar y de que forma el llamado a las funciones que van a utilizar posteriormente cada bloque, donde además tuvimos que clonar el git.&lt;br /&gt;
Para la próxima reunión acordamos presentar las funciones que realmente vamos a necesitar para la paleta de AX-12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n°3 propusimos una selección de las funciones que vamos a utilizar para implementar cada bloque, donde el tutor nos explicó cada una de ellas.&lt;br /&gt;
Además, nos proporcionó los materiales para comenzar a trabajar: el robot butía y un par de motores Ax-12.&lt;br /&gt;
También hubo inconvenientes, ya que hubo que puentear la placa para que los motores de AX-12 puedan funcionar.&lt;br /&gt;
Finalmente nos pusimos de acuerdo que para la próxima reunión no íbamos a poder avanzar mucho, y que de ser necesario concurriéramos al laboratorio para estar más al tanto con los nuevos materiales y así poder trabajar y familiarizarnos.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Al ir al laboratorio quisimos obtener información de los motores AX-12 por medio de telnet.&lt;br /&gt;
Pedimos ayuda y pudimos charlar con Aylen, que básicamente nos explicó el funcionamiento general desde los bloques turtlebots hasta la placa, llegando a la conclusión de que falta grabar el firmware en dicha placa, por lo tanto se planea para la próxima reunión ver este último punto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la cuarta reunión el tutor grabó el firmware en la placa y soldó la placa de tal forma de que el butía pudiera tener acceso tanto a los motores de continua como ax-12.&lt;br /&gt;
Gracias a esto pudimos realizar las primeras pruebas en el robot por medio de telnet.&lt;br /&gt;
Cabe destacar que en los puntos recientemente mencionados el docente Santiago nos dió una mano para poder realizarlo y además nos brindo una guía, aclarando nuestras dudas e inquietudes a cerca de los motores.&lt;br /&gt;
Probamos listar las funciones y además llamarlas, como por ejemplo setSpeed o getPosition.&lt;br /&gt;
Además pudimos agregar 3 funciones a la paleta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;Fijar velocidad&amp;quot; funcionó perfectamente.&lt;br /&gt;
Para nuestra siguiente reunión debido al avance, fijamos como meta agregar más funciones a la paleta y a su vez poder implementarlas de forma tal de que funcione correctamente en el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión número 5 llegamos con las siguientes funciones agregadas a la paleta con sus respectivas implementaciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fijar Posición&lt;br /&gt;
*Obtener Posición&lt;br /&gt;
*Fijar velocidad&lt;br /&gt;
*WheelMode&lt;br /&gt;
*JointMode&lt;br /&gt;
*ChangeID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedimos a depurarlas y probarlas, funcionando correctamente.&lt;br /&gt;
Gracias a esto accedimos a la propuesta por parte del tutor, de agregar nuevas funciones, no solo a la paleta, sino también al driver de ax-12, como lo son encender led, obtener carga de batería y obtener temperatura.&lt;br /&gt;
Nos manifestó que no es algo fundamental, pero que estaría bueno agregarlo, ya que le da una funcionalidad más amplia a los motores.&lt;br /&gt;
Por lo tanto se planteó para próximas reuniones, seguir puliendo las funciones ya existentes para obtener un funcionamiento lo más óptimo posible, y además poder agregar funciones al driver de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En nuestra sexta reunión llegamos con las funciones depuradas que nos habíamos propuesto y agregamos la de encender led y obtener temperatura, objetivos que habíamos fijado en la última reunión.&lt;br /&gt;
Procedimos a juntarnos con nuestro tutor para ajustar los últimos detalles para la posterior entrega.&lt;br /&gt;
Nos recomendó eliminar 2 funciones: Wheelmode y JointMode, ya que entendió que no eran necesarias, y además nos propuso agregar 2 bloques más al TurtleBots: Cambiar ID y refrescar, este último se encarga de &amp;quot;teñir&amp;quot; en color verde los bloques de la paleta, en simples palabras: mostrarle al usuario que los motores ax-12 están disponibles para utilizar.&lt;br /&gt;
Para finalizar se planteó asistir a una última reunión para hacer un relevamiento final de lo que tenemos hecho y ajustar algún detalle de ser necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la reunión n° 7 y última, le mostramos a nuestro tutor la finalización del proyecto, quien nos dio el ok para la entrega final.&lt;br /&gt;
Además nos planteo agregar en forma breve y clara, videos explicativos sobre el funcionamiento de la paleta, los cuales serán publicados en la sección &amp;quot;Demostración&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente la paleta Ax-12 para Turtlebots quedó de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Paletafinal.png]]&lt;br /&gt;
&lt;br /&gt;
==Desarrollo:==&lt;br /&gt;
Lo primero que hicimos para comenzar a hacer la paleta fue ir al archivo Butia.py, que ya trae 3 paletas incorporadas.&lt;br /&gt;
Al ver este panorama, hablamos con nuestro tutor y llegamos a la conclusión de agregar la paleta de ax-12, que dicho sea de paso sería lo más práctico y menos complicado.&lt;br /&gt;
Esto nos sirvió de mucha ayuda, ya que en el archivo está la implementación de dichas paletas, y nos dio una base para poner en marcha el proyecto.&lt;br /&gt;
A continuación se explicará brevemente nuestro proceder en la codificación, por medio de imágenes y una explicación de dicho código. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Butia.py'''&lt;br /&gt;
&lt;br /&gt;
Aquí creamos la palette4 con el nombre 'ax'&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Luego definimos la parte gráfica por cada bloque.&lt;br /&gt;
A modo de ejemplo se mostrará un solo bloque, ya que el desarrollo para el resto de dichos bloques es análogo al que presentaremos a continuación.&lt;br /&gt;
Se definió: el nombre del bloque, los argumentos (parámetros) necesarios, valores por defecto para dichos parámetros, un letrero de ayuda, la llamada a una función que luego será invocada y el color del bloque.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu2.jpg]] &lt;br /&gt;
&lt;br /&gt;
Como habíamos dicho anteriormente, se hizo una llamada a una función, que precisamente es la siguiente.&lt;br /&gt;
Esta se encarga de establecer una relación entre los archivos Butia.py y Functions.py.&lt;br /&gt;
Lo que va a realizar esta función es setear la velocidad de los motores, y para ello necesitamos un tipo de giro &amp;quot;wheelmode&amp;quot;, y por supuesto, el id y la velocidad que se le va a poner a los ax-12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Functions.py'''&lt;br /&gt;
&lt;br /&gt;
Dentro de Functions.py, nos encontramos con la siguiente función. Esta, sera la encargada de comunicarse con los drivers por medio del modulo &amp;quot;ax&amp;quot;  para que este último le envíe mensajes a la placa, y de esta forma hacer funcionar los motores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Ax.py'''&lt;br /&gt;
&lt;br /&gt;
Finalmente, el módulo &amp;quot;ax&amp;quot; se comunica con la placa, envíando mensajes por medio de instrucciones hexadecimales y conversiones para obtener la velocidad (incluyendo también  el modo de giro) de seteo deseada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tortu5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se describe de forma concisa cada bloque de la paleta ax-12:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Refresh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se encarga de mostrar el estado de los motores, si los bloques se tiñen de color verde quiere decir que están conectados, de lo contrario aparecerán el color gris (desconectados).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:getID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el id del motor, lo hace de forma individual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:changeID.jpg]]&lt;br /&gt;
&lt;br /&gt;
Cambia el ID del motor, tiene que haber sólo un motor conectado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene la posición en grados del motor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_position.jpg]]&lt;br /&gt;
&lt;br /&gt;
Le indica al motor por medio de la id y una cantidad de grados determinada (entre 0° y 300°) la posición deseada.&lt;br /&gt;
Lo hace en modo jointMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Fijar_velocidad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Su finalidad es indicarle una velocidad constante al motor para que funcione sin detenerse, dicha velocidad tiene q ser entre los valores 1 y 1023.&lt;br /&gt;
Lo hace en modo wheelMode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Stop_ax.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sirve para detener el motor, indicándole el ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Set_axled.jpg]]&lt;br /&gt;
&lt;br /&gt;
Enciende el led que trae incorporado cada Motor, por medio del ID y un valor action (0 para apagar y 1 para encender)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_temperature.jpg]]&lt;br /&gt;
&lt;br /&gt;
Devuelve la temperatura en grados celsius.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:Get_voltage.jpg]]&lt;br /&gt;
&lt;br /&gt;
Obtiene el voltaje del motor en volts.&lt;br /&gt;
&lt;br /&gt;
== Demostración: ==&lt;br /&gt;
&lt;br /&gt;
A continuación se presentan 2 videos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El primer video con una explicación sobre el funcionamiento de cada bloque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;mPjToIsd4nM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y el segundo con un ejemplo, donde se ejecutan varias instrucciones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;9LUBqcMkHnw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conclusión:==&lt;br /&gt;
Lo que nos dejó este proyecto fue una experiencia interesante y una adquisición de conocimientos muy rica.&lt;br /&gt;
Aprendimos a utilizar un lenguaje totalmente nuevo para nosotros como lo es python.&lt;br /&gt;
Además pudimos comprender el funcionamiento y la estructura del Turtlebots, programa que sabíamos utilizar, pero no teníamos una idea clara de su andamiaje.&lt;br /&gt;
También aprendimos a usar los servomotores ax-12 a partir de lo mencionado anteriormente.&lt;br /&gt;
Con estos 3 puntos sobre la mesa, más una fase de investigación pudimos progresar hasta lograr tener el proyecto lo más completo posible.&lt;br /&gt;
Creemos haber hecho todo lo que se nos propuso, y dejamos una puerta abierta para que se siga mejorando y añadiendo funcionalidades a dicho proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Archivos:==&lt;br /&gt;
editando&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5129</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5129"/>
				<updated>2014-04-07T21:19:38Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
CÓDIGO: [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/b/bd/Gr5lab1ej2.tb.zip]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5128</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5128"/>
				<updated>2014-04-07T21:05:22Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;br /&gt;
CÓDIGO: [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/b/bd/Gr5lab1ej2.tb.zip]&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5127</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5127"/>
				<updated>2014-04-07T21:04:45Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;br /&gt;
CÓDIGO: [[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/b/bd/Gr5lab1ej2.tb.zip]]&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5126</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5126"/>
				<updated>2014-04-07T21:03:07Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;br /&gt;
CÓDIGO: [[Gr5lab1ej2.tb.zip‎]]&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Gr5lab1ej2.tb.zip&amp;diff=5125</id>
		<title>Archivo:Gr5lab1ej2.tb.zip</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Gr5lab1ej2.tb.zip&amp;diff=5125"/>
				<updated>2014-04-07T21:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: Código del ejercicio 2 del laboratorio 1.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Código del ejercicio 2 del laboratorio 1.&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5118</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5118"/>
				<updated>2014-04-07T14:40:01Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5117</id>
		<title>Grupo laboratorio 5 2014</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_laboratorio_5_2014&amp;diff=5117"/>
				<updated>2014-04-07T14:39:42Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grupo 5:&lt;br /&gt;
&lt;br /&gt;
Andrés Piñeyro&amp;lt;br&amp;gt;&lt;br /&gt;
Juan Sanguinetti&amp;lt;br&amp;gt;&lt;br /&gt;
Ezequiel Sanchez&amp;lt;br&amp;gt;&lt;br /&gt;
Gustavo Evovlockas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Primer programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:app1_grupo5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
El programa 1 permite que mediante las flechas del teclado podemos hacer que la tortuga avance, retroceda o gire en ángulo recto.&amp;lt;br&amp;gt;Al oprimir una de las cuatro teclas la tortuga o gira 90 grados o avanza 5  o retrocede 5 según corresponda.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Segundo programa&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Archivo:Lab1Ej2.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
La tortuga Manuelita necesita tu ayuda!&lt;br /&gt;
La tortuga Manuelita debe llegar a su madriguera pronto! Ayudala a llegar ahí (cuadrado de color anaranjado). Controla su velocidad con tu cámara de video (tapándola para que no avance y destapándola para que acelere) y moviendo el mouse hacia la izquierda para que gire a la izquierda y a la derecha para que gire a la derecha.&lt;br /&gt;
&lt;br /&gt;
Cuando llegues te dara las gracias y tal vez te de una sorpresa...&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Lab1Ej2.png&amp;diff=5116</id>
		<title>Archivo:Lab1Ej2.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Lab1Ej2.png&amp;diff=5116"/>
				<updated>2014-04-07T14:37:45Z</updated>
		
		<summary type="html">&lt;p&gt;Apineyro: Ejercicio 2 del laboratorio 1. Grupo 5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ejercicio 2 del laboratorio 1. Grupo 5&lt;/div&gt;</summary>
		<author><name>Apineyro</name></author>	</entry>

	</feed>