Diferencia entre revisiones de «Butialo»
(→Ejemplo simple (también)) |
|||
Línea 29: | Línea 29: | ||
− | Butiá con estabilidad dinámica. Se toma un Butiá, se le retiran las ruedas locas y se colocan | + | Butiá con estabilidad dinámica. Se toma un Butiá, se le retiran las ruedas locas y se colocan un sensores de distancia IR apuntando al piso. Con el botón se activa y desactiva el comportamiento. |
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
− | local | + | local d --lecturas de distancia |
− | + | ||
local eq --posicion de equilibrio de dd | local eq --posicion de equilibrio de dd | ||
local v --velocidad calculada | local v --velocidad calculada | ||
Línea 44: | Línea 43: | ||
until Boton.getBoton()==1 | until Boton.getBoton()==1 | ||
− | + | eq = Dist.getDistancia() | |
− | + | ||
− | + | ||
print("Arrancando", eq) | print("Arrancando", eq) | ||
Línea 52: | Línea 49: | ||
repeat | repeat | ||
− | + | d = Dist.getDistancia() | |
− | + | v = 100+5*math.abs(d-eq) | |
− | + | ||
− | v = 100+5*math.abs( | + | |
if v > 1024 then v = 1024 end | if v > 1024 then v = 1024 end | ||
− | if | + | if d < eq then |
Motores.setvel2mtr(1, v, 1, v) | Motores.setvel2mtr(1, v, 1, v) | ||
else | else |
Revisión del 00:23 24 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.
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 un sensores de distancia IR apuntando al piso. Con el botón se activa y desactiva el comportamiento.
local d --lecturas de distancia
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
eq = Dist.getDistancia()
print("Arrancando", eq)
wait(1)
repeat
d = Dist.getDistancia()
v = 100+5*math.abs(d-eq)
if v > 1024 then v = 1024 end
if d < 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