<?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=Ale</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=Ale"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php/Especial:Contribuciones/Ale"/>
		<updated>2026-04-06T00:15:18Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Cliente.jpg&amp;diff=2297</id>
		<title>Archivo:Cliente.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Cliente.jpg&amp;diff=2297"/>
				<updated>2012-03-01T17:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2296</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2296"/>
				<updated>2012-03-01T17:09:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
XO que tiene el robot conectado: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Servidor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resto de las XO's:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:cliente.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia por el archivo butia.py que puede descargar en el siguiente link. &lt;br /&gt;
&lt;br /&gt;
 [http://www.box.com/s/zc6ajrtebrvudg7goxz7 Descargar el archivo butia.py]&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2290</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2290"/>
				<updated>2012-03-01T07:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: /* ¿Cómo funciona?: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
XO que tiene el robot conectado: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Servidor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resto de las XO's:&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia por el archivo butia.py que puede descargar en el siguiente link. &lt;br /&gt;
&lt;br /&gt;
 [http://www.box.com/s/zc6ajrtebrvudg7goxz7 Descargar el archivo butia.py]&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Servidor.jpg&amp;diff=2289</id>
		<title>Archivo:Servidor.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Servidor.jpg&amp;diff=2289"/>
				<updated>2012-03-01T07:28:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2288</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2288"/>
				<updated>2012-03-01T07:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: /* ¿Cómo funciona?: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  XO que tiene el robot conectado: [[Archivo:Servidor.jpg]]&lt;br /&gt;
&lt;br /&gt;
  El resto de las XO's:&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia por el archivo butia.py que puede descargar en el siguiente link. &lt;br /&gt;
&lt;br /&gt;
 [http://www.box.com/s/zc6ajrtebrvudg7goxz7 Descargar el archivo butia.py]&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2287</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2287"/>
				<updated>2012-03-01T07:19:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: /* Como instalarlo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia por el archivo butia.py que puede descargar en el siguiente link. &lt;br /&gt;
&lt;br /&gt;
 [http://www.box.com/s/zc6ajrtebrvudg7goxz7 Descargar el archivo butia.py]&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2286</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2286"/>
				<updated>2012-03-01T05:51:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia &lt;br /&gt;
&lt;br /&gt;
 [http://www.box.com/s/zc6ajrtebrvudg7goxz7 Descargar el archivo butia.py] &lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2285</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2285"/>
				<updated>2012-03-01T05:24:18Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo [[Media:butia.ogg]] butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2284</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2284"/>
				<updated>2012-03-01T05:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo [[Media:C:/Users/Usuario/Downloads/butia.py]] butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2255</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2255"/>
				<updated>2012-03-01T01:35:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
 Se corre el programa Butia:&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia: en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más de un parámetro estos deben estar separados por un &amp;quot;:&amp;quot; (Ejemplo.  adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción                           Función&lt;br /&gt;
 adelante                                    forwareButia&lt;br /&gt;
 adelanteDistancia:cantidad        forwareDistance&lt;br /&gt;
 atras                                         backwareButia&lt;br /&gt;
 atrasDistancia:cantidad             backwareDistance&lt;br /&gt;
 esperar:cantidad                       delayButia&lt;br /&gt;
 girarXGrados:cantidad              turnXdegreeButia&lt;br /&gt;
 izquierda                                   leftButia&lt;br /&gt;
 derecha                                     rightButia&lt;br /&gt;
 parar                                         stopButia&lt;br /&gt;
 boton                                         pushbuttonButia&lt;br /&gt;
 bateria                                       batteryChargeButia&lt;br /&gt;
 luzambiente                                ambientelightButia&lt;br /&gt;
 distancia                                    distanceButia&lt;br /&gt;
 escaladegrises                            grayscaleButia &lt;br /&gt;
 temperatura                                temperatureButia&lt;br /&gt;
 vibracion                                    vibrationButia&lt;br /&gt;
 inclinacion                                  tiltButia&lt;br /&gt;
 induccionmagnetica                     magneticinductionButia&lt;br /&gt;
 displayLCD:texto                         LCDdisplayButia&lt;br /&gt;
 led:cantidad                               ledButia&lt;br /&gt;
 velocidad:cantidad                     speedButia &lt;br /&gt;
 '''terminarConexion'''                No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2246</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2246"/>
				<updated>2012-03-01T01:19:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
== '''¿Cómo funciona?:''' ==&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia, en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en&lt;br /&gt;
       apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más&lt;br /&gt;
       de un parámetro estos deben estarseparados por un &amp;quot;:&amp;quot; (Ejemplo: adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== '''Como instalarlo''' ==&lt;br /&gt;
&lt;br /&gt;
Para instalar el programa basta con sustituir el archivo butia.py que se encuentra en la carpeta Activity/TurtleArtButia.activity/plugins/butia o descargando la siguiente versión &lt;br /&gt;
&lt;br /&gt;
 [[Título del enlace]] &lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción             Función&lt;br /&gt;
 adelante                      adelanteButia&lt;br /&gt;
 adelanteDistancia        adelanteDistancia&lt;br /&gt;
 atras                           atrasButia&lt;br /&gt;
 atrasDistancia             atrasDistancia&lt;br /&gt;
 esperar                       esperarButia&lt;br /&gt;
 izquierda                    izquierdaButia&lt;br /&gt;
 derecha                      derechaButia&lt;br /&gt;
 parar                          pararButia&lt;br /&gt;
 boton                          botonButia&lt;br /&gt;
 bateria                       batterychargeButia&lt;br /&gt;
 luzambiente                ambientelightButia&lt;br /&gt;
 distancia                    distanceButia&lt;br /&gt;
 escaladegrises            grayscaleButia &lt;br /&gt;
 temperatura                temperatureButia&lt;br /&gt;
 vibracion                    vibrationButia&lt;br /&gt;
 inclinacion                  tiltButia&lt;br /&gt;
 induccionmagnetica     magneticinductionButia&lt;br /&gt;
 led                              ledButia&lt;br /&gt;
 velocidad                    speedButia &lt;br /&gt;
 '''terminarConexion''' No permite enviar más datos, &amp;quot;libera&amp;quot; a la XO que tienen el robot conectado para que se pueda trabajar en ella.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2226</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2226"/>
				<updated>2012-02-29T19:43:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
'''¿Cómo funciona?:'''&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia, en el primer parámetro la dirección IP de la XO que tenga el robot&lt;br /&gt;
       conectado. (Ver en&lt;br /&gt;
       apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la&lt;br /&gt;
       instrucción tiene más&lt;br /&gt;
       de un parámetro estos deben estarseparados por un &amp;quot;:&amp;quot; (Ejemplo: adelanteDistancia:15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''APÉNDICE:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Obtener la dirección IP de la XO que tiene el robot conectado:'''&lt;br /&gt;
&lt;br /&gt;
 1° La XO con el robot conectado y la XO que quieran enviar datos deben estar conectados a una misma red.&lt;br /&gt;
 2° La XO con el robot conectado debe ir a vecindario.&lt;br /&gt;
 3° Colocar el cursor en el borde superior izquierdo de modo que aparezca un recuadro negro en pantalla.&lt;br /&gt;
 4° Posicionar el cursor sobre el circulo de conexión.&lt;br /&gt;
 5° Esperar a que se despliege una pequeña pantalla.&lt;br /&gt;
 6° Obtener la dirección IP que aparece en la misma con el nombre de &amp;quot;Dirección IP o IP Address&amp;quot;.  &lt;br /&gt;
 7° Copiar ese numero en el bloque Enviar Butia de la XO que quiera enviar los datos. &lt;br /&gt;
&lt;br /&gt;
                                                      [[Archivo:Ejemplo.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Protocolo de instrucciones:'''&lt;br /&gt;
&lt;br /&gt;
     Instrucción             Función&lt;br /&gt;
 adelante                   adelanteButia&lt;br /&gt;
 adelanteDistancia          adelanteDistancia&lt;br /&gt;
 atras                      atrasButia&lt;br /&gt;
 atrasDistancia             atrasDistancia&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2225</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2225"/>
				<updated>2012-02-29T19:27:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introducción:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Desarrollo del Proyecto:''' ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
               [[Archivo:http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/skins/common/images/button_image.png]]     self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
'''¿Cómo funciona?:'''&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia, en el primer parámetro la dirección IP de la XO que tenga el robot conectado. (Ver en&lt;br /&gt;
       apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la instrucción tiene más&lt;br /&gt;
       de un parámetro estos deben estarseparados por un &amp;quot;-&amp;quot; (Ejemplo: adelante-15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''APÉNDICE:'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo.jpg]]&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Ejemplo.jpg&amp;diff=2224</id>
		<title>Archivo:Ejemplo.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Ejemplo.jpg&amp;diff=2224"/>
				<updated>2012-02-29T19:25:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: subió una nueva versión de «Archivo:Ejemplo.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Ejemplo.jpg&amp;diff=2223</id>
		<title>Archivo:Ejemplo.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Ejemplo.jpg&amp;diff=2223"/>
				<updated>2012-02-29T19:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2208</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2208"/>
				<updated>2012-02-28T16:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py:&lt;br /&gt;
  import socket&lt;br /&gt;
&lt;br /&gt;
'''¿Cómo funciona?:'''&lt;br /&gt;
&lt;br /&gt;
   1º- La XO que tiene el robot conectado debe presionar el bloque Recibir Butia.&lt;br /&gt;
   2º- La XO que quiera enviarle alguna instrucción al robot debe colocar en el bloque Enviar Butia, en el primer parámetro la dirección IP de la XO que tenga el robot conectado. (Ver en&lt;br /&gt;
       apéndice como obtener la dirección IP) y en el segundo argumento debe colocar la instrucción que desee que el robot ejecute (ver en apéndice el protocolo), si la instrucción tiene más&lt;br /&gt;
       de un parámetro estos deben estarseparados por un &amp;quot;-&amp;quot; (Ejemplo: adelante-15).&lt;br /&gt;
   3º- Repetir el paso 2 con la misma dirección IP pero cambiando la instrucción si es necesario.&lt;br /&gt;
   4º- Si no se desea enviar más instrucciones se debe ejecutar nuevamente el bloque Enviar Butia con la misma dirección IP pero la instrucción debe ser &amp;quot;terminarConexion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''APÉNDICE:'''&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2207</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2207"/>
				<updated>2012-02-28T16:13:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
 palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
 style='basic-style',  # the block style&lt;br /&gt;
 label=_('Recibir Butia'),  # the label for the block&lt;br /&gt;
 prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
 self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())&lt;br /&gt;
	&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
 def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py: import socket&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2206</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2206"/>
				<updated>2012-02-28T16:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
'''Tema elegido:'''  &lt;br /&gt;
           Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
style='basic-style',  # the block style&lt;br /&gt;
label=_('Recibir Butia'),  # the label for the block  &lt;br /&gt;
prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())	&lt;br /&gt;
&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
def RecibirButia (self):&lt;br /&gt;
        PUERTO = 2009&lt;br /&gt;
        BUFLEN = 512 &lt;br /&gt;
        server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
        server.bind(('', PUERTO))&lt;br /&gt;
        bandera = True&lt;br /&gt;
        while bandera:&lt;br /&gt;
                (message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
                print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
                instruccion=message.split(':')&lt;br /&gt;
                if (instruccion[0] == 'adelante'):&lt;br /&gt;
                     self.forwardButia()&lt;br /&gt;
                if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
                     self.forwardDistance(int(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'esperar'):&lt;br /&gt;
                     self.delayButia(int(intruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'atras'):&lt;br /&gt;
                     self.backwardButia()&lt;br /&gt;
                if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
                     self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'izquierda'):&lt;br /&gt;
                    self.leftButia()&lt;br /&gt;
                if (instruccion[0] == 'derecha'):&lt;br /&gt;
                    self.rightButia()&lt;br /&gt;
                if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
                    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'parar'):&lt;br /&gt;
                    self.stopButia()&lt;br /&gt;
                if (instruccion[0] == 'boton'):&lt;br /&gt;
                    self.pushbuttonButia()&lt;br /&gt;
                if (instruccion[0] == 'bateria'):&lt;br /&gt;
                    self.batteryChargeButia()&lt;br /&gt;
                if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
                    self.ambientlightButia(0)&lt;br /&gt;
                if (instruccion[0] == 'distancia'):&lt;br /&gt;
                    self.distanceButia(0)&lt;br /&gt;
                if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
                    self.grayscaleButia(0)&lt;br /&gt;
                if (instruccion[0] == 'temperatura'):&lt;br /&gt;
                    self.temperatureButia(0)&lt;br /&gt;
                if (instruccion[0] == 'vibracion'):&lt;br /&gt;
                    self.vibrationButia(0)&lt;br /&gt;
                if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
                    self.tiltButia(0)&lt;br /&gt;
                if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
                    self.magneticinductionButia(0)&lt;br /&gt;
                if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
                    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
                if (instruccion[0] == 'led'):&lt;br /&gt;
                    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
                if (instruccion[0] == 'velocidad'):&lt;br /&gt;
                    self.speedButia(int(instruccion[1]))&lt;br /&gt;
                if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
                    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py: import socket&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2205</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2205"/>
				<updated>2012-02-28T15:54:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
&lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensaje. &lt;br /&gt;
&lt;br /&gt;
Código del Bloque:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
 help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
 self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
Definición del Bloque:&lt;br /&gt;
&lt;br /&gt;
 def EnviarButia(self, IP_SERVIDOR, message):&lt;br /&gt;
        PUERTO_SERVIDOR = 2009&lt;br /&gt;
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
	client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))&lt;br /&gt;
        client.close()	&lt;br /&gt;
&lt;br /&gt;
El bloque Recibir Butiá: este bloque modela el servidor en una conexión UDP. Tiene el cometido de esperar que un cliente le envíe datos y seleccionar que acción realizar de acuerdo al mensaje recibido. &lt;br /&gt;
&lt;br /&gt;
Código del bloque:&lt;br /&gt;
&lt;br /&gt;
primitive_dictionary['RecibirButia'] = self.RecibirButia&lt;br /&gt;
palette.add_block('RecibirButia',  # the name of your block&lt;br /&gt;
style='basic-style',  # the block style&lt;br /&gt;
label=_('Recibir Butia'),  # the label for the block  &lt;br /&gt;
prim_name='RecibirButia',  # code reference (see below)&lt;br /&gt;
help_string=_('Ejecut the instruction that another xo send'))&lt;br /&gt;
self.tw.lc.def_prim('RecibirButia', 0, lambda self: primitive_dictionary['RecibirButia']())	&lt;br /&gt;
&lt;br /&gt;
Definición del bloque:&lt;br /&gt;
&lt;br /&gt;
def RecibirButia (self):&lt;br /&gt;
&lt;br /&gt;
	PUERTO = 2009&lt;br /&gt;
	BUFLEN = 512&lt;br /&gt;
 &lt;br /&gt;
	server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)&lt;br /&gt;
	server.bind(('', PUERTO))&lt;br /&gt;
 	bandera = True&lt;br /&gt;
&lt;br /&gt;
	while bandera:&lt;br /&gt;
		(message, address) = server.recvfrom(BUFLEN)&lt;br /&gt;
	        print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])&lt;br /&gt;
		instruccion=message.split(':')&lt;br /&gt;
		if (instruccion[0] == 'adelante'):&lt;br /&gt;
		    self.forwardButia()&lt;br /&gt;
		if (instruccion[0] == 'adelanteDistancia'):&lt;br /&gt;
		    self.forwardDistance(int(instruccion[1]))&lt;br /&gt;
		if (instruccion[0] == 'esperar'):&lt;br /&gt;
		    self.delayButia(int(intruccion[1]))&lt;br /&gt;
		if (instruccion[0] == 'atras'):&lt;br /&gt;
		    self.backwardButia()&lt;br /&gt;
		if (instruccion[0] == 'atrasDistancia'):&lt;br /&gt;
		    self.backwardDistance(int(instruccion[1]))&lt;br /&gt;
		if (instruccion[0] == 'izquierda'):&lt;br /&gt;
		    self.leftButia()&lt;br /&gt;
		if (instruccion[0] == 'derecha'):&lt;br /&gt;
		    self.rightButia()&lt;br /&gt;
		if (instruccion[0] == 'girarXGrados'):&lt;br /&gt;
		    self.turnXdegree(int(instruccion[1]))&lt;br /&gt;
		if (instruccion[0] == 'parar'):&lt;br /&gt;
		    self.stopButia()&lt;br /&gt;
		if (instruccion[0] == 'boton'):&lt;br /&gt;
		    self.pushbuttonButia()&lt;br /&gt;
		if (instruccion[0] == 'bateria'):&lt;br /&gt;
		    self.batteryChargeButia()&lt;br /&gt;
		if (instruccion[0] == 'luzambiente'):&lt;br /&gt;
		    self.ambientlightButia(0)&lt;br /&gt;
		if (instruccion[0] == 'distancia'):&lt;br /&gt;
		    self.distanceButia(0)&lt;br /&gt;
		if (instruccion[0] == 'escaladegrises'):&lt;br /&gt;
		    self.grayscaleButia(0)&lt;br /&gt;
		if (instruccion[0] == 'temperatura'):&lt;br /&gt;
		    self.temperatureButia(0)&lt;br /&gt;
		if (instruccion[0] == 'vibracion'):&lt;br /&gt;
		    self.vibrationButia(0)&lt;br /&gt;
		if (instruccion[0] == 'inclinacion'):&lt;br /&gt;
		    self.tiltButia(0)&lt;br /&gt;
		if (instruccion[0] == 'induccionmagnetica'):&lt;br /&gt;
		    self.magneticinductionButia(0)&lt;br /&gt;
		if (instruccion[0] == 'displayLCD'):&lt;br /&gt;
		    self.LCDdisplayButia(instruccion[1])&lt;br /&gt;
		if (instruccion[0] == 'led'):&lt;br /&gt;
		    self.ledButia(int(instruccion[1]), 0)&lt;br /&gt;
		if (instruccion[0] == 'velocidad'):&lt;br /&gt;
		    self.speedButia(int(instruccion[1]))&lt;br /&gt;
		if (instruccion[0] == 'terminarConexion'):&lt;br /&gt;
		    bandera = False&lt;br /&gt;
&lt;br /&gt;
Estas modificaciones se deben realizar sobre el archivo butia.py.&lt;br /&gt;
Tener en cuenta que es necesario importar el modulo socket agregando junto al resto de las importaciones del archivo butia.py: import socket&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2204</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2204"/>
				<updated>2012-02-28T15:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensage. &lt;br /&gt;
&lt;br /&gt;
Codigo del Bloque y de su definición:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2203</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2203"/>
				<updated>2012-02-28T15:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;'''Integrantes:'''&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
'''Introducción:''' &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Desarrollo del Proyecto:''' &lt;br /&gt;
&lt;br /&gt;
Modificaciones: &lt;br /&gt;
&lt;br /&gt;
Lo primero es realizar los bloques Recibir Butia y Enviar Butia que seran agregados a la paleta Butia.&lt;br /&gt;
Estos bloques modelaran una conexión vía socket utilizando UDP. &lt;br /&gt;
El bloque Enviar Butia: este bloque modela el cliente en una conexión UDP. Tendrá el labor de conectarse a la IP de la XO que tenga el robot conectado y enviarle a la misma una mensage. &lt;br /&gt;
&lt;br /&gt;
Codigo del Bloque y de su definición:&lt;br /&gt;
&lt;br /&gt;
 primitive_dictionary['EnviarButia'] = self.EnviarButia&lt;br /&gt;
 palette.add_block('EnviarButia',  # the name of your block&lt;br /&gt;
 style='basic-style-2arg',  # the block style&lt;br /&gt;
 label=_('Enviar Butia'),  # the label for the block&lt;br /&gt;
 default=[(&amp;quot;127.0.0.1&amp;quot;), &amp;quot;&amp;quot;],  &lt;br /&gt;
 prim_name='EnviarButia',  # code reference (see below)&lt;br /&gt;
help_string=_('Conect Butia with a new xo and send a menssager'))&lt;br /&gt;
self.tw.lc.def_prim('EnviarButia', 2, lambda self, x, y: primitive_dictionary['EnviarButia'](x,y))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2202</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=2202"/>
				<updated>2012-02-28T15:34:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Integrantes:&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
Introducción: &lt;br /&gt;
&lt;br /&gt;
Las experiencias dentro de los liceos o escuelas han mostrado que hay muchos niños y adolecentes interesados en experimentar con el robot Butiá. Unos de los problemas fue la escasez de recursos con los que se cuenta en el momento (hay solo un robot por escuela o liceo), lo que hacia muy difícil que todos los chicos interesados pudieran tener contacto con el mismo.  &lt;br /&gt;
El proyecto &amp;quot;Conectate a Butiá&amp;quot; tiene como cometido permitir el manejo de el robot Butiá no solo desde la XO conectada a èl sino también desde otras XO's  y de esta forma disminuir el problema de la escasez de recursos. Este proyecto permitiría que más chicos puedan interactuar con el robot.&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=886</id>
		<title>Grupo Bloque Enviar Butia Recibir Butia para Tortugarte</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Grupo_Bloque_Enviar_Butia_Recibir_Butia_para_Tortugarte&amp;diff=886"/>
				<updated>2011-09-13T17:43:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: Grupo Enviar Recibir&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Integrantes:&lt;br /&gt;
                  Mathias Duarte&lt;br /&gt;
                  Ignacio Vidal&lt;br /&gt;
                  Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloque Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
Actualmente intentando:&lt;br /&gt;
&lt;br /&gt;
Documentación:&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Espacio_para_grupos_2011&amp;diff=885</id>
		<title>Espacio para grupos 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Espacio_para_grupos_2011&amp;diff=885"/>
				<updated>2011-09-13T17:39:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cada grupo debe crearse un link como el del ejemplo a continuación: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ejemplo|grupoX]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Reconocedor De Voz]]&lt;br /&gt;
&lt;br /&gt;
[[Grupo Simulador]]&lt;br /&gt;
&lt;br /&gt;
[[Grupo HotPlug]]&lt;br /&gt;
&lt;br /&gt;
[[Grupo Tortugarte: Ejemplos de programas]]&lt;br /&gt;
&lt;br /&gt;
[[Grupo Bloque Enviar_Butia Recibir_Butia para Tortugarte]]&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Ejemplo&amp;diff=884</id>
		<title>Ejemplo</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Ejemplo&amp;diff=884"/>
				<updated>2011-09-13T17:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: /*Espacio_grupo_X */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Espacio_grupo_x==&lt;br /&gt;
&lt;br /&gt;
Integrantes: &lt;br /&gt;
&lt;br /&gt;
Tema elegido: &lt;br /&gt;
&lt;br /&gt;
Actualmente intentando:&lt;br /&gt;
&lt;br /&gt;
Documentación:&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Ejemplo&amp;diff=883</id>
		<title>Ejemplo</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Ejemplo&amp;diff=883"/>
				<updated>2011-09-13T17:33:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ale: /*Enviar_Butia Recibir_Butia para Tortugarte*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enviar_Butia Recibir Butia para Tortugarte ==&lt;br /&gt;
&lt;br /&gt;
Integrantes: &lt;br /&gt;
                   Mathias Duarte&lt;br /&gt;
                   Ignacio Vidal&lt;br /&gt;
                   Alexandra Castelli&lt;br /&gt;
&lt;br /&gt;
Tema elegido: Bloques Enviar_Butia Recibir_Butia para Tortugarte&lt;br /&gt;
&lt;br /&gt;
Actualmente intentando:&lt;br /&gt;
&lt;br /&gt;
Documentación:&lt;/div&gt;</summary>
		<author><name>Ale</name></author>	</entry>

	</feed>