Diferencia entre revisiones de «Butialo»

De Proyecto Butiá
Saltar a: navegación, buscar
(Ejemplo simple)
Línea 2: Línea 2:
 
Lua es un lenguaje de scripting imperativo simple pero que a la vez permite crear programas sofisticados. Es un lenguaje dinámico, con manejo de memoria automático y es extremadamente rápido.
 
Lua es un lenguaje de scripting imperativo simple pero que a la vez permite crear programas sofisticados. Es un lenguaje dinámico, con manejo de memoria automático y es extremadamente rápido.
 
Butialo es un IDE derivado de Pippy (el entorno para Python provisto con las XO), que simplifica la creación de programas para Butiá autodetectando la presencia de componentes Butiá conectados y ofreciendo snippets de código para accederlos.
 
Butialo es un IDE derivado de Pippy (el entorno para Python provisto con las XO), que simplifica la creación de programas para Butiá autodetectando la presencia de componentes Butiá conectados y ofreciendo snippets de código para accederlos.
 +
[[Archivo:Screenshot.png]]
  
  
Línea 23: Línea 24:
 
end
 
end
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
== Ejemplo simple (también) ==
 
== Ejemplo simple (también) ==

Revisión del 21:18 21 jun 2011

Butialo es un entorno fácil de usar que permite programar a Butiá en el lenguaje Lua. Lua es un lenguaje de scripting imperativo simple pero que a la vez permite crear programas sofisticados. Es un lenguaje dinámico, con manejo de memoria automático y es extremadamente rápido. Butialo es un IDE derivado de Pippy (el entorno para Python provisto con las XO), que simplifica la creación de programas para Butiá autodetectando la presencia de componentes Butiá conectados y ofreciendo snippets de código para accederlos. Screenshot.png


Ejemplo simple

Avanzar mientras no haya un obstaculo.


Motores.setvel2mtr( 1, 500, 1, 500 )
while true do
   local dist = Dist.getDistancia()
   if dist<700 then
      Motores.setvel2mtr( 1, 0, 1, 0 )
      repeat
         wait(1)
         dist = Dist.getDistancia()
      until dist > 700
      Motores.setvel2mtr( 1, 500, 1, 500 )
   end
end


Ejemplo simple (también)

Butiá con estabilidad dinámica. Se toma un Butiá, se le retiran las ruedas locas y se colocan dos sensores de distancia IR apuntando al piso, uno adelante y otro atrás. Con el botón se activa y desactiva el comportamiento.


local d1, d2	--lecturas de distancia
local dd	--diferencia de distancias
local eq	--posicion de equilibrio de dd
local v		--velocidad calculada

while true do
	print ("Presione el botón para comenzar")
	repeat
		wait(0.1)
	until Boton.getBoton()==1

	d1 = Dist.getDistancia() 
	d2 = Dist1.getDistancia() 
	eq = d1-d2
	
	print("Arrancando", eq)
	wait(1)

	repeat
		d1 = Dist.getDistancia()
		d2 = Dist1.getDistancia()
		dd = d1-d2
		v = 100+5*math.abs(dd-eq)
		if v > 1024 then v = 1024 end
		if dd < eq then
			Motores.setvel2mtr(1, v, 1, v)
		else
			Motores.setvel2mtr(0, v, 0, v)
		end
	until Boton.getBoton()==1

	print("Fin")
	Motores.setvel2mtr(1, 0, 1, 0)
	wait(1)
end



IMG 5747.JPG