sábado, 15 de diciembre de 2012

Clase 15 Dic 2012

Control
En una matriz de 3x3 se colocan objetos en diferentes puntos, el brazo robotico debe realizar movimientos para leer la posición de los objetos dentro de la matriz.

Desarrollo: 

1-. Para soltar los servos y decidir la posición de lectura

inicio:
SERVO 0 = @
SERVO 1 = @

LET A= $SERVO(0)
LET B= $SERVO(1)
PRINT "A: ", A, "; B: ", B

LET K=$KIR
PRINT "K: ", K
IF K<0 THEN
  GOTO inicio
ENDIF

2-. Realizar el movimiento del servo en las medidas, dividida en tres estaciones.

MOVE @{2,15,128},10,1000
WAIT 50
MOVE @{2,48,128},10,1000
WAIT 50
MOVE @{2,76,128},10,1000
WAIT 50

3-. Leer en cada una de las estaciones antes definidas.

inicio:

MOVE @{2,15,128},10,1000
WAIT 50
LET L=$PSD
PRINT "a: ", L

MOVE @{2,48,128},10,1000
WAIT 50
LET M=$PSD
PRINT "b: ", M

MOVE @{2,76,128},10,1000
WAIT 50
LET N=$PSD
PRINT "c: ", N

LET K=$KIR
IF K<0 THEN
  GOTO inicio
ENDIF

4-.Recorre, Lee y Define el cuadrante de la matriz
inicio:

'primer movimiento
MOVE @{2,15,128},10,1000
WAIT 20
LET L=$PSD
PRINT "a: ", L


'segundo movimiento
MOVE @{2,48,128},10,1000
WAIT 20
LET M=$PSD
PRINT "b: ", M


'tercer movimiento
MOVE @{2,76,128},10,1000
WAIT 20
LET N=$PSD
PRINT "c: ", N

LET A = 0
LET B = 0
LET C = 0
LET D = 0
LET E = 0
LET F = 0
LET G = 0
LET H = 0
LET I = 0

PRINT "| ",A," | ",B," | ",C," |"
PRINT "| ",D," | ",E," | ",F," |"
PRINT "| ",G," | ",H," | ",I," |"

IF L<=30 & L>25 THEN
A=1
ENDIF

IF L<=25 & L>20 THEN
D=1
ENDIF

IF L<=20 & L>=16 THEN
G=1
ENDIF

IF M<=30 & M>25 THEN
B=1
ENDIF
IF M<=25 & M>20 THEN
E=1
ENDIF
IF M<=20 & M>=16 THEN
H=1
ENDIF

IF N<=30 & N>25 THEN
C=1
ENDIF
IF N<=25 & N>20 THEN
F=1
ENDIF
IF N<=20 & N>=16 THEN
I=1
ENDIF

PRINT "------------"
PRINT "| ",A," | ",B," | ",C," |"
PRINT "| ",D," | ",E," | ",F," |"
PRINT "| ",G," | ",H," | ",I," |"

viernes, 14 de diciembre de 2012

Brazo Robótico- Circulo

Circulo

MOVE @{2,95,121},10,1000
WAIT 500
MOVE @{2,95,136},10,1000
WAIT 500
MOVE @{2,119,185},10,1000
WAIT 500
MOVE @{2,146,221},10,1000
WAIT 500
MOVE @{2,164,221},10,1000
WAIT 500
MOVE @{2,56,24},10,1000
WAIT 500
MOVE @{2,69,53},10,1000
WAIT 500
MOVE @{2,90,94},10,1000
WAIT 500
MOVE @{2,91,115},10,1000
WAIT 500



Video Navideño ROBOBUILDER
http://www.youtube.com/watch?v=7LnKTErIsyE

sábado, 1 de diciembre de 2012

Clase 01 Diciembre

Como imprimir Hola mundo 10 veces

LET i=1
inicio:
  PRINT "Hola mundo", i
  IF i=10 THEN salir ELSE sumar
sumar:
  LET i=i+1
  GOTO inicio
salir:
  PRINT "Hemos impreso ", i," Lineas con la frase hola mundo"

Listas

//suelta el servo y muestra su posición

inicio:
SERVO 0 = @
LET A=$SERVO(0)
PRINT A

IF $KIR < 0 THEN
  GOTO inicio
ENDIF

//hola mundo 10 veces

let 1
print "hola mundo"
if i=10 then 60 else 40
let i=I+1
goto 20
Print "hemos impreso ", i," Lineas con la frase hola mundo"

// imprimir hoal mundo 10 veces

LET i=1
inicio:
  PRINT "Hola mundo", i
  IF i=10 THEN salir ELSE sumar
sumar:
  LET i=i+1
  GOTO inicio
salir:
  PRINT "Hemos impreso ", i," Lineas con la frase hola mundo"

//manejo de listas
lista : el primer elemento declara el largo de la lista

LET i=0
  PRINT "----- PROBANDO LISTAS -----"
  LIST A=5,4,3,2,1,6
  PRINT "Muestra la lista  ", @a
Elementos:
  PRINT "Elemento en la posicion ",i, "--> ", @a[i]
  i=i+1
  IF i=5 THEN salir ELSE elementos
salir:
  LET A=@A
  PRINT "Largo de la lista= ";A

 
PRINT "____valores segun Ascii en Out"
LIST A=5,65,66,67,68,69
  FOR i=0 TO 4
  PRINT "  "
  OUT @a[i]
  NEXT i

//$RND: Ramdom
mod: obtiene el resto de la división con otro numero.

PRINT "--> generamos numeros al azar y obtenemos los mod de 6"
FOR j=1 TO 10
PRINT $RND mod 6
NEXT j