parent
9d02587a8c
commit
cdb27eb588
@ -0,0 +1,50 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
|
||||||
|
"""
|
||||||
|
Vamos a encender unas cuentas luces
|
||||||
|
"""
|
||||||
|
imprimir(luces) # Imprimimos la descripción de las luces
|
||||||
|
luces.borrar() # Borramos si hay algo pintado de antes
|
||||||
|
luces.pintarLed(numero_de_led=1, color="rojo") # El primer led lo pintamos de rojo
|
||||||
|
luces.pintarLed(2, "verde") # El segundo lo pintamos verde, esta vez nos ahorramos escribir numero_de_led y color
|
||||||
|
luces.pintarLed(3, "azul") # El tercer led será azul
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
""" Moveremos a la derecha 4 veces """
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
""" Pintamos un arcoiris """
|
||||||
|
""" Moveremos a la derecha 4 veces """
|
||||||
|
luces.pintarArcoiris() # Pintamos un arcoiris
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
|
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha 1 posición
|
||||||
|
luces.iluminar() # Iluminamos para que se enciendan las luces
|
||||||
|
dormir(1) # Esperamos 1s
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
|
||||||
|
"""
|
||||||
|
Vamos a probar los mandos
|
||||||
|
"""
|
||||||
|
mandos.imprimirBotones("SI") # Con esta instrucción saldrá un mensaje por consola cada vez que se apriete un botón
|
||||||
|
mandos.imprimirPasos("SI") # Con esta instrucción saldrá un mensaje por consola cada vez que se gire el mando
|
||||||
|
|
||||||
|
imprimir(mandos) # Imprimimos la descripción de los mandos
|
||||||
|
dormir(10) # Mientras esta el programa esperando podremos ver los mensajes por consola al usar los mandos
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Cuando necesitamos escribir algo para nosotros
|
||||||
|
como una nota o un comentario
|
||||||
|
pero que el programa no de error porque no entiende lo que hemos escrito
|
||||||
|
podemos hacerlo de dos maneras diferentes:
|
||||||
|
"""
|
||||||
|
|
||||||
|
""" Una es usar la triple comilla y nuestro mensaje dentro """
|
||||||
|
|
||||||
|
# La otra es usar el corchete antes de escribir
|
||||||
|
|
||||||
|
""" La diferencia entre las dos es que con la triple comilla podemos
|
||||||
|
hacer varias líneas
|
||||||
|
sin preocuparnos en nada
|
||||||
|
pero es importante cerrar siempre las comillas
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Si usamos el corchete debemos colocarlo siempre antes del comentario
|
||||||
|
# y en cada línea
|
||||||
|
# para que no de error
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Prueba a escribir aquí debajo algún comentario como hemos explicado y también sin usar las comillas
|
||||||
|
o el corchete para ver si da o no error el programa
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
""" Ahora voy a poner un comentario a una línea de código, esto nos permite poder comentarla para saber lo que hace """
|
||||||
|
|
||||||
|
imprimir("HOLA! Soy un mensaje que saldrá en la consola de aquí abajo") # Esta instrucción imprimirá por la consola un mensaje
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Las variables son como cajas donde guardamos cosas
|
||||||
|
|
||||||
|
Esas cosas pueden ser números, colores, letras, frases, listas de cosas etc...
|
||||||
|
|
||||||
|
La manera de poder usarlas es la siguiente:
|
||||||
|
· Primero debemos darle un nombre... por ejemplo la llamaremos "caja"
|
||||||
|
·Al crearla debemos decirle que contiene, puede ser cualquier cosa de las que hemos comentado antes
|
||||||
|
la manera de hacerlo es usando el igual. Esta vez haremos que la caja contenga un número.
|
||||||
|
"""
|
||||||
|
caja = 10 # Ahora la caja contiene el número 10
|
||||||
|
|
||||||
|
"""
|
||||||
|
Para poder ver el contenido de una caja podemos imprimirla por consola así:
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
"""
|
||||||
|
Siempre podemos volver a darle otro valor a caja, solo debemos dárselo como antes
|
||||||
|
"""
|
||||||
|
caja = 22 # Ahora la caja contiene el número 22
|
||||||
|
|
||||||
|
"""
|
||||||
|
Vamos a ver si el valor ha cambiado...
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
"""
|
||||||
|
Puede ser caja otra cosa que no sea un número? Claro!
|
||||||
|
Dejo aquí abajo diferentes tipos de variables que podemos dale a caja
|
||||||
|
Prueba tú algunas!!
|
||||||
|
"""
|
||||||
|
|
||||||
|
caja = "a" # Recuerda que las letras o las frases deben estar siempre entre comillas para decirle al programa que son letras o frases
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = "HOLA SOY UNA FRASE" # Recuerda que las letras o las frases deben estar siempre entre comillas para decirle al programa que son letras o frases
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = cierto # caja ahora contiene el valor de "cierto"
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = falso # caja ahora contiene el valor de "falso"
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = 0.1 # caja ahora contiene un valor decimal
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = [0,1,2,3,4,5] # caja ahora contiene una lista de números
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
caja = ["manzana", "rojo", "arbol"] # caja ahora contiene una lista de palabras
|
||||||
|
imprimir(caja) # Mostramos por consola el valor de caja
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Ahora crea una variable con el nombre que tu quieras, dale un valor e imprimela!
|
||||||
|
"""
|
||||||
|
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
|
||||||
|
"""
|
||||||
|
Vamos a probar a guardar algunos datos en variables
|
||||||
|
"""
|
||||||
|
|
||||||
|
numero_de_leds = luces.cantidad_de_leds # Guardamos el numero de leds que tenemos
|
||||||
|
|
||||||
|
imprimir("La tira de leds tiene:") # Imprimimos en consola una frase con el numero de leds que tenemos
|
||||||
|
imprimir(numero_de_leds)
|
||||||
|
imprimir("leds")
|
||||||
|
|
||||||
|
imprimir("Mover los mandos ahora") # Informamos de que se muevan los mandos
|
||||||
|
dormir(5) # Esperamos para mover los mandos de mientras
|
||||||
|
|
||||||
|
posicion_mando1 = mandos.posiciones_mando1 # Nos guardamos la posición de los mandos
|
||||||
|
posicion_mando2 = mandos.posiciones_mando2
|
||||||
|
|
||||||
|
imprimir("El mando 1 ha girado y está en la posición:") # Imprimimos las posiciones de los dos mandos
|
||||||
|
imprimir(posicion_mando1)
|
||||||
|
imprimir("El mando 2 ha girado y está en la posición:")
|
||||||
|
imprimir(posicion_mando2)
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Podemos hacer operaciones con números, sumar, restar, multiplicar, dividir...
|
||||||
|
"""
|
||||||
|
imprimir("Sumamos 2+2:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(2+2) # Las operaciones las podemos hacer directamente antes de imprimir, aquí primero hace la suma y luego imprime
|
||||||
|
|
||||||
|
imprimir("Restamos 2-2:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(2-2) # Podemos restar...
|
||||||
|
|
||||||
|
imprimir("Multiplicamos 2*2:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(2*2) # Podemos multiplicar...
|
||||||
|
|
||||||
|
imprimir("Dividimos 2/2:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(2/2) # Y podemos dividir
|
||||||
|
|
||||||
|
"""
|
||||||
|
Si colocamos los numeros en variables podemos hacer lo mismo pero usando las variables
|
||||||
|
"""
|
||||||
|
|
||||||
|
caja1 = 5 # Caja1 tiene el valor 5
|
||||||
|
imprimir("caja1 tiene el valor:") # Mostramos el mensaje de lo que contiene caja1
|
||||||
|
imprimir(caja1) # Imprimimos el valor de caja1
|
||||||
|
|
||||||
|
caja2 = 10 # Caja2 tiene el valor 10
|
||||||
|
imprimir("caja2 tiene el valor:") # Mostramos el mensaje de lo que contiene caja1
|
||||||
|
imprimir(caja2) # Imprimimos el valor de caja2
|
||||||
|
|
||||||
|
imprimir("Sumamos caja1+caja2:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(caja1+caja2) # Imprimimos el valor de caja1+caja2 que es 5 + 10 = 15
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Para acabar podemos guardar el valor de una operación en una nueva variable para tenerlo guardado
|
||||||
|
"""
|
||||||
|
imprimir("Guardamos el valor de la suma de caja1+caja2 en caja3") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
caja3 = caja1 + caja2
|
||||||
|
imprimir("caja3 tiene el valor:") # Mostramos el mensaje de lo que vamos a hacer
|
||||||
|
imprimir(caja3) # Imprimimos el valor de caja1+caja2 que es 5 + 10 = 15
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Prueba a hacer una operación e imprimirla por pantalla!
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Vamos a sumar las posiciones que se mueven los dos mandos durante 5 segundos
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir("Tienes 5 segundos para mover los mandos, YA!") # Escribimos el mensaje en la consola para que se empiecen a mover los mandos
|
||||||
|
|
||||||
|
dormir(5) # Esperamos durante 5 segundos a que se mueven los mandos
|
||||||
|
|
||||||
|
posicion_mando1 = mandos.posiciones_mando1 # Nos guardamos la posición de los mandos
|
||||||
|
posicion_mando2 = mandos.posiciones_mando2
|
||||||
|
|
||||||
|
posiciones_totales = posicion_mando1 + posicion_mando2
|
||||||
|
|
||||||
|
imprimir("Los mandos se han movido") # Imprimimos las posiciones de los dos mandos
|
||||||
|
imprimir(posiciones_totales)
|
||||||
|
imprimir("posiciones")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,123 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Las condiciones nos permiten tomar decisiones en el programa, pero qué son las condiciones?
|
||||||
|
|
||||||
|
Ejemplo:
|
||||||
|
Si me traes el azucar haré un bizcocho.
|
||||||
|
La condición es que traigas el azucar para hacer el bizcocho, si lo resumimos podemos decir
|
||||||
|
que si SI hay azucar SI hay bizcocho si NO hay azucar NO hay bizcocho.
|
||||||
|
Si lo escribimos de otra forma...
|
||||||
|
si azucar..
|
||||||
|
SI -> bizcocho
|
||||||
|
NO -> pasar hambre
|
||||||
|
Otro ejemplo:
|
||||||
|
Si NO fregas los platos hoy duermes en el sofá.
|
||||||
|
Resumiendo si SI friegas los platos duermes en la cama
|
||||||
|
si NO friegas los platos duermes en el sofá
|
||||||
|
Si lo escribimos de otra forma...
|
||||||
|
si fregar..
|
||||||
|
SI -> cama
|
||||||
|
NO -> sofá
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
Las condiciones siempre dependen de algo que se puede simplificar a si es "cierto" o es "falso" y la palabra mágica que define una condición es...
|
||||||
|
"si"
|
||||||
|
|
||||||
|
si pasas, estás dentro
|
||||||
|
si saltas, vuelas
|
||||||
|
si duermes, descansas
|
||||||
|
si juegas, te diviertes
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
en programación ese "si" se traduce en "if" y se escribe de esta forma:
|
||||||
|
if condicion:
|
||||||
|
lo que pasa si es cierto
|
||||||
|
|
||||||
|
Es importante ver que lo que pasa está mas a la derecha de el "if" y es necesario que sea así y usando un golpe de tabulador.
|
||||||
|
Explicarlo es enrevesado, es más fácil hacerlo ya verás:
|
||||||
|
"""
|
||||||
|
|
||||||
|
if cierto: # Si la condición se cumple imprimirá el mensaje. Esta condición siempre se cumplirá pues siempre es cierta
|
||||||
|
imprimir("Es cierto")
|
||||||
|
|
||||||
|
if falso: # Si la condición se cumple imprimirá el mensaje. Esta condición NUNCA se cumplirá pues siempre es falsa
|
||||||
|
imprimir("Es falso")
|
||||||
|
|
||||||
|
"""
|
||||||
|
El ejemplo anterior es muy simple pero un poco antiintuitivo, vamos con algo mas real!
|
||||||
|
Crearemos una variable y le daremos un valor, luego dependiendo de ese valor cumplirá o no alguna condición
|
||||||
|
"""
|
||||||
|
|
||||||
|
caja1 = 5
|
||||||
|
|
||||||
|
if caja1 == 5: # Usamos el doble == porque estamos comparando caja1 con el valor 5, si es igual se imprimirá el mensaje sino no
|
||||||
|
imprimir("caja1 es igual a 5")
|
||||||
|
|
||||||
|
if caja1 == 6: # Usamos el doble == porque estamos comparando caja1 con el valor 6, si es igual se imprimirá el mensaje sino no
|
||||||
|
imprimir("caja1 es igual a 6")
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Qué pasa cuando no se cumple la condición y queremos saberlo? pues podemos usar el "sino"
|
||||||
|
"si" como, me quedo a gusto, "sino", tengo hambre.
|
||||||
|
el "sino" en programación se traduce en "else" y se escribe así
|
||||||
|
|
||||||
|
if condicion:
|
||||||
|
lo que pasa si es cierto
|
||||||
|
else:
|
||||||
|
lo que pasa si es falso
|
||||||
|
|
||||||
|
Vamos con un ejemplo práctico:
|
||||||
|
"""
|
||||||
|
|
||||||
|
if caja1 == 8: # Si la caja1 = 8 se imprimirá el primer mensaje
|
||||||
|
imprimir("caja1 es igual a 8")
|
||||||
|
else: # Si la caja NO es igual a 8 se imprimirá el siguiente mensaje
|
||||||
|
imprimir("caja1 NO es igual a 8")
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Qué mas tipos de condiciones se pueden hacer?
|
||||||
|
Pues vamos con unos ejemplos!
|
||||||
|
"""
|
||||||
|
|
||||||
|
if caja1 > 3: # Es caja1 MAYOR que 3?
|
||||||
|
imprimir("caja1 MAYOR que 3")
|
||||||
|
else:
|
||||||
|
imprimir("caja1 NO es MAYOR que 3")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if caja1 < 10: # Es caja1 MENOR que 10?
|
||||||
|
imprimir("caja1 es MENOR que 10")
|
||||||
|
else:
|
||||||
|
imprimir("caja1 NO es MENOR que 10")
|
||||||
|
|
||||||
|
if caja1 != 10: # Es caja1 es diferente a 10?
|
||||||
|
imprimir("caja1 es DIFERENTE a 10")
|
||||||
|
else:
|
||||||
|
imprimir("caja1 es IGUAL a 10")
|
||||||
|
|
||||||
|
|
||||||
|
caja2 = "bocadillo" # Creamos una variable que contiene la palabra bocadillo
|
||||||
|
|
||||||
|
if caja2 == "bocadillo": # Contiene la caja2 la palabra bocadillo?
|
||||||
|
imprimir("caja2 contiene la palabra bocadillo")
|
||||||
|
else:
|
||||||
|
imprimir("caja2 NO contiene la palabra bocadillo")
|
||||||
|
|
||||||
|
"""
|
||||||
|
Las condiciones que se pueden usar son:
|
||||||
|
== Para igualar
|
||||||
|
< Para decir que es menor
|
||||||
|
> Para decir que es mayor
|
||||||
|
¡= Para decir que es diferente
|
||||||
|
>= Para decir que es mayor o igual
|
||||||
|
<= Para decir que es menor o igual
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
|
||||||
|
"""
|
||||||
|
Pongamos en práctica unas cuantas condiciones!!
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir("Tienes 5 segundos para pulsar cualquier botón") # Mostramos un mensaje para que se pulse un botón
|
||||||
|
dormir(5) # Esperamos a que se pulsen los botones
|
||||||
|
|
||||||
|
if mandos.boton1Pulsado(): # si el boton 1 se ha pulsado...
|
||||||
|
imprimir("El botón 1 se ha pulsado") # Entonces imprimimos este mensaje
|
||||||
|
|
||||||
|
if mandos.boton2Pulsado(): # si el boton 2 se ha pulsado...
|
||||||
|
imprimir("El botón 2 se ha pulsado") # Entonces imprimimos este mensaje
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Ahora jugamos girando los mandos
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir("Tienes 5 segundos para girar los mandos") # Mostramos un mensaje para que se pulse un botón
|
||||||
|
dormir(5) # Esperamos a que se pulsen los botones
|
||||||
|
|
||||||
|
valor_mando1 = mandos.posiciones_mando1 # Guardamos el valor de las posiciones que se ha movido el mando
|
||||||
|
valor_mando2 = mandos.posiciones_mando2 # Guardamos el valor de las posiciones que se ha movido el mando
|
||||||
|
|
||||||
|
if valor_mando1 != 0: # si el mando1 se ha movido
|
||||||
|
imprimir("El mando 1 se ha movido:") # Entonces imprimimos este mensaje
|
||||||
|
imprimir(valor_mando1)
|
||||||
|
if valor_mando2 != 0: # si el mando1 se ha movido
|
||||||
|
imprimir("El mando 2 se ha movido:") # Entonces imprimimos este mensaje
|
||||||
|
imprimir(valor_mando2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Encendemos unas luces dependiendo de cuanto se ha movido un mando?
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir("Tienes 5 segundos para girar los mandos y encender unas luces") # Mostramos un mensaje para que se pulse un botón
|
||||||
|
dormir(5) # Esperamos a que se pulsen los botones
|
||||||
|
|
||||||
|
valor_mando1 = mandos.posiciones_mando1 # Guardamos el valor de las posiciones que se ha movido el mando
|
||||||
|
valor_mando2 = mandos.posiciones_mando2 # Guardamos el valor de las posiciones que se ha movido el mando
|
||||||
|
|
||||||
|
if valor_mando1 > 0: # si el mando1 se ha movido en sentido horario
|
||||||
|
imprimir("El mando 1 enciende el led número:") # imprimimos un mensaje
|
||||||
|
imprimir(valor_mando1) # imprimimos el valor de los pasos que ha dado
|
||||||
|
luces.pintarLed(numero_de_led=valor_mando1, color="rojo") # pintamos el numero de led que coincida con los pasos que se han dado
|
||||||
|
luces.iluminar() # iluminamos los leds
|
||||||
|
|
||||||
|
if valor_mando2 > 0: # si el mando2 se ha movido en sentido horario
|
||||||
|
imprimir("El mando 2 enciende el led número:") # imprimimos un mensaje
|
||||||
|
imprimir(valor_mando2) # imprimimos el valor de los pasos que ha dado
|
||||||
|
luces.pintarLed(numero_de_led=valor_mando2, color="verde") # pintamos el numero de led que coincida con los pasos que se han dado
|
||||||
|
luces.iluminar() # iluminamos los leds
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Los bucles infinitos nos permiten repetir unas instrucciones de manera infinita
|
||||||
|
o hasta que se cumpla una condición.
|
||||||
|
Pero que es esto de un bucle?...
|
||||||
|
Ejemplo:
|
||||||
|
Mientras juegas fuera de casa tienes que llevar la chaqueta.
|
||||||
|
Si estás fuera de casa siempre llevarás la chaqueta.
|
||||||
|
Otro ejemplo:
|
||||||
|
Mientras la estufa esté encendida estaremos calentitos.
|
||||||
|
Siempre que la estufa esté encendida no tendremos frío.
|
||||||
|
|
||||||
|
La palabra clave aquí es "mientras", en programación se traduce como while y se escribe así:
|
||||||
|
|
||||||
|
while condicion:
|
||||||
|
hacemos esto
|
||||||
|
y esto
|
||||||
|
y esto
|
||||||
|
y mas de esto
|
||||||
|
|
||||||
|
Vamos a hacer un ejemplo real.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
while cierto: # Mientras se cumpla la condición se repetira todo el rato lo que hay escrito en el
|
||||||
|
imprimir("Me repito") # Imprimimos un mensaje cada vez que se repite el bucle
|
||||||
|
dormir(1) # Esperamos 1 segundo entre repeticiones
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Otro ejemplo, antes de seguir hay que comentar con comillas el anterior while y descomentar el de abajo
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
caja1 = 0
|
||||||
|
while caja1 < 10: # Mientras caja1 sea menor que 10 se repetira el bucle
|
||||||
|
imprimir(f"caja1 vale={caja1}") # Imprimimos un mensaje cada vez que se repite el bucle, mostramos lo que vale caja1
|
||||||
|
dormir(1) # Esperamos 1 segundo entre repeticiones
|
||||||
|
caja1 = caja1 + 1 # Sumamos 1 al valor que tenga caja, si caja1 = 0 y le sumamos 1 caja1 ahora vale 1
|
||||||
|
"""
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Movemos los leds a la derecha sin parar!
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
luces.pintarArcoiris() # Pintamos un arcoiris
|
||||||
|
while cierto: # Mientras se cumpla la condición se repetira todo el rato lo que hay escrito en el
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
dormir(0.2) # Esperamos entre repeticiones
|
||||||
|
# Volvemos a empezar
|
||||||
|
|
||||||
|
"""
|
||||||
|
Movemos los leds a la derecha hasta que giremos el mando1
|
||||||
|
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
luces.pintarArcoiris() # Pintamos un arcoiris
|
||||||
|
while mandos.posiciones_mando1 == 0: # Mientras se cumpla la condición se repetira todo el rato lo que hay escrito en el
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
dormir(0.2) # Esperamos entre repeticiones
|
||||||
|
# Volvemos a empezar
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
Movemos los leds a la derecha tantas veces como giramos el mando1
|
||||||
|
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
luces.borrar() # Borramos lo anteriormente pintado
|
||||||
|
luces.pintarLed(25, "blanco") # Pintamos un punto blanco en medio
|
||||||
|
luces.iluminar() # iluminamos
|
||||||
|
while cierto: # Mientras se cumpla la condición se repetira todo el rato lo que hay escrito en el
|
||||||
|
valor_mando1 = mandos.posiciones_mando1 # Guardamos el valor de las posiciones que se ha movido el mando
|
||||||
|
if valor_mando1 > 0: # Si hemos girado el mando1
|
||||||
|
luces.moverDerecha(pasos=valor_mando1) # Movemos las luces a la derecha los mismos pasos que hemos girado
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
dormir(0.2) # Esperamos entre repeticiones
|
||||||
|
# Volvemos a empezar
|
||||||
|
|
||||||
|
"""
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Los bucles finitos nos permiten repetir un código el número de veces que queramos, estos siempre tienen que acabar!
|
||||||
|
|
||||||
|
Que es un bucle finito?
|
||||||
|
|
||||||
|
Ejemplo:
|
||||||
|
Por cada ficha daremos un viaje en la noria
|
||||||
|
Por cada dia que trabajes te pagaré 20€
|
||||||
|
Por cada led mueve las luces a la derecha (las luces se moveran a la derecha tantas veces como leds hay)
|
||||||
|
|
||||||
|
La palabra clave aquí es "por" que en programación se traduce en "for" y se escribe así:
|
||||||
|
|
||||||
|
for "cosa que se puede contar":
|
||||||
|
repetimos tantas veces como cosas hay
|
||||||
|
|
||||||
|
|
||||||
|
Vamos por un ejemplo real:
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Si queremos que algo se repita un número fijo de veces lo podemos hacer así:
|
||||||
|
"""
|
||||||
|
|
||||||
|
for vuelta in range(10): # El bucle se repetira 10 veces, cada vez vuelta tendrá el valor de la vuelta actual. Primero 1, luego 2 etc...
|
||||||
|
imprimir(vuelta)
|
||||||
|
dormir(0.5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Pintemos 10 luces a la vez!
|
||||||
|
"""
|
||||||
|
luces.borrar() # Borramos lo que haya pintado anteriormente
|
||||||
|
for numero in range(10): # El bucle se repetira 10 veces, cada vez vuelta tendrá el valor de la vuelta actual. Primero 1, luego 2 etc...
|
||||||
|
imprimir(numero) # Imprimimos el numero que vamos a pintar
|
||||||
|
luces.pintarLed(numero_de_led=numero,color="verde") # Pintamos el numero de esta vuelta de bucle
|
||||||
|
luces.iluminar() # Los iluminamos para poder verlos
|
||||||
|
dormir(0.5) # Esperamos y seguimos el bucle
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
from taller_programacion import *
|
||||||
|
"""
|
||||||
|
Que pasa si pintamos los colores rojo, verde y azul en leds juntos y los movemos cada vez más rápido?
|
||||||
|
Vemos los colores o vemos un color distinto?
|
||||||
|
"""
|
||||||
|
|
||||||
|
imprimir("Vamos a hacer una prueba con colores y nuestros ojos") # Mandamos un mensaje a la consola
|
||||||
|
|
||||||
|
luces.pintarLed(1, color="rojo") # Pintamos un led de cada color principal, rojo, verde y azul
|
||||||
|
luces.pintarLed(2, color="verde")
|
||||||
|
luces.pintarLed(3, color="azul")
|
||||||
|
luces.iluminar() # Los encendemos
|
||||||
|
|
||||||
|
contador = 0 # Creamos una variable que se llama contador, le iremos sumando 1 en cada vuelta del bucle
|
||||||
|
"""
|
||||||
|
Movemos los colores a la derecha pero un poco lentos
|
||||||
|
"""
|
||||||
|
imprimir("Muevo los leds no muy rápido, vemos los 3 colores") # Mandamos un mensaje a la consola
|
||||||
|
while contador < 200: # Mientras contador sea menor a 200 (Significa que esto se repetirá 200 veces)
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
contador = contador + 1 # Sumamos 1 a contador
|
||||||
|
dormir_ms(20) # Esperamos un tiempo pequeño antes de volver a mover a la derecha otra vez, las luces se moveran no muy rápido
|
||||||
|
|
||||||
|
dormir(1) # Hacemos una pausa antes de seguir
|
||||||
|
contador = 0 # Volvemos a poner a 0 el contador
|
||||||
|
|
||||||
|
"""
|
||||||
|
Movemos los colores a la derecha pero algo mas rápido
|
||||||
|
"""
|
||||||
|
imprimir("Muevo los leds algo más rápido, vemos los 3 colores?") # Mandamos un mensaje a la consola
|
||||||
|
while contador < 400: # Mientras contador sea menor a 400 (Significa que esto se repetirá 400 veces)
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
contador = contador + 1 # Sumamos 1 a contador
|
||||||
|
dormir_ms(10) # Esperamos un tiempo pequeño antes de volver a mover a la derecha otra vez, las luces se moveran no muy rápido
|
||||||
|
|
||||||
|
dormir(1) # Hacemos una pausa antes de seguir
|
||||||
|
contador = 0 # Volvemos a poner a 0 el contador
|
||||||
|
|
||||||
|
"""
|
||||||
|
Movemos los colores a la derecha pero bastante rápido
|
||||||
|
"""
|
||||||
|
imprimir("Muevo los leds algo rápido, casi no se ven los 3 colores verdad?") # Mandamos un mensaje a la consola
|
||||||
|
while contador < 600: # Mientras contador sea menor a 600 (Significa que esto se repetirá 600 veces)
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
contador = contador + 1 # Sumamos 1 a contador
|
||||||
|
dormir_ms(5) # Esperamos un tiempo pequeño antes de volver a mover a la derecha otra vez, las luces se moveran no muy rápido
|
||||||
|
|
||||||
|
dormir(1) # Hacemos una pausa antes de seguir
|
||||||
|
contador = 0 # Volvemos a poner a 0 el contador
|
||||||
|
|
||||||
|
"""
|
||||||
|
Movemos los colores a la derecha muy rápido
|
||||||
|
"""
|
||||||
|
imprimir("Muevo los leds muy rápido, yo solo veo el color blanco!") # Mandamos un mensaje a la consola
|
||||||
|
while contador < 1000: # Mientras contador sea menor a 1000 (Significa que esto se repetirá 1000 veces)
|
||||||
|
luces.moverDerecha() # Movemos las luces a la derecha
|
||||||
|
luces.iluminar() # Las iluminamos
|
||||||
|
contador = contador + 1 # Sumamos 1 a contador
|
||||||
|
dormir_ms(1) # Esperamos un tiempo pequeño antes de volver a mover a la derecha otra vez, las luces se moveran no muy rápido
|
||||||
|
|
||||||
|
dormir(1) # Hacemos una pausa antes de seguir
|
||||||
|
contador = 0 # Volvemos a poner a 0 el contador
|
||||||
|
|
||||||
|
imprimir("\nEsto pasa porque nuestro ojo que es mas lento que lo que se mueven las luces, ") # Mandamos un mensaje a la consola
|
||||||
|
imprimir("junta los 3 colores apareciendo entonces el color blanco para nosotros, ") # Mandamos un mensaje a la consola
|
||||||
|
imprimir("aunque solo sean los colores ROJO, VERDE y AZUL moviéndose muy rápido") # Mandamos un mensaje a la consola
|
||||||
@ -1,3 +1,19 @@
|
|||||||
# 2024_Taller_Programacion_Oris
|
# 2024 Taller Programacion Oris
|
||||||
|
|
||||||
|
_Ejemplos y pequeñas prácticas para ampliar lo explicado en el curso._
|
||||||
|
|
||||||
|
|
||||||
|
## Prácticas
|
||||||
|
|
||||||
|
1. [Práctica 01. 3 Colores o color blanco?](P01_colores_o_blanco.py "Práctica 01 Colores o color blanco?")
|
||||||
|
|
||||||
|
|
||||||
|
### Instrucciones y consejos:
|
||||||
|
|
||||||
|
· Hay que tener subidos a nuestra placa siempre los archivos __requerimientos.py__ y __taller_programación.py__
|
||||||
|
· Si vamos a programar es mejor eliminar el archivo __main.py__ de nuestra plaquita.
|
||||||
|
· Para poder tener nuestro juego funcionando sin estar conectado al ordenador, copiaremos el archivo __main.py__ a nuestra plaquita.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Ejemplos y pequeñas prácticas para ampliar lo explicado en el curso.
|
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
"""
|
||||||
|
Programa principal juego para taller de programacion 2024 Orís
|
||||||
|
ModoComún
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from taller_programacion import * # Cargamos todo lo necesario para nuestro juego
|
||||||
|
|
||||||
|
|
||||||
|
async def main(): # Este es el inicio del programa principal
|
||||||
|
|
||||||
|
logger.info(f"Iniciamos programa") # Informamos de que comenzamos nuestro programa
|
||||||
|
tablero = Tablero(casillas_totales=50) # Cargamos el tablero de juego con X posiciones que son la cantidad de leds
|
||||||
|
|
||||||
|
while True: # Bucle infinito principal, este trozo se repetira siempre
|
||||||
|
# El programa irá pasando por diferentes fases dependiendo del momento en que esté
|
||||||
|
if tablero.__fase == "brillo": # En esta fase los jugadores pueden elegir el brillo de los leds
|
||||||
|
await asyncio.wait_for(tablero.seleccionarBrillo(),600)
|
||||||
|
elif tablero.__fase == "puntos": # En esta fase los jugadores pueden elegir los puntos de la partida
|
||||||
|
await asyncio.wait_for(tablero.seleccionarPuntos(),600)
|
||||||
|
elif tablero.__fase == "color": # En esta fase los jugadores pueden elegir el color de su portería
|
||||||
|
await asyncio.wait_for(tablero.seleccionarColor(),600)
|
||||||
|
elif tablero.__fase == "largo": # En esta fase los jugadores pueden elegir el largo de su porteria
|
||||||
|
await asyncio.wait_for(tablero.seleccionarLargo(),600)
|
||||||
|
elif tablero.__fase == "inicio": # En esta fase empieza el jugador que primero pulse su botón
|
||||||
|
await asyncio.wait_for(tablero.inicio(),600)
|
||||||
|
elif tablero.__fase == "juego": # En esta fase los jugadores juegan hasta que se consigan los puntos de la partida
|
||||||
|
await asyncio.wait_for(tablero.juegoPrincipal(),3600)
|
||||||
|
elif tablero.__fase == "final": # Esta fase no está definida aún
|
||||||
|
tablero.actualizar()
|
||||||
|
else:
|
||||||
|
tablero.__fase = "brillo" # Si no hay ninguna fase seleccionada nos vamos a brillo
|
||||||
|
await asyncio.sleep_ms(0) # Esperamos 0 segundos, esto se hace para que el programa pueda atender otras cosas antes de volver a revisar las fases
|
||||||
|
|
||||||
|
asyncio.run(main()) # Ejecutamos la función de main (La de aquí arriba)
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
from time import sleep,ticks_ms, sleep_ms # Librería para utilizar instrucciones de tiempo como el sleep
|
||||||
|
sleep(2) # Esperamos X segundos por si queremos detener el programa al conectar al PC etc...
|
||||||
|
""" La primera librería es la de log, necesitamos definirlo para que pueda loguear correctamente las demas librerías """
|
||||||
|
from mc_log import miLog, escribirLog # Librería para usar el log
|
||||||
|
logger = miLog(nivel="INFO", consola=True, archivo=False) # Creamos el log y así podrá trabajar también con las demás librerías
|
||||||
|
""" Para que se guarde el log en el archivo hay que hacer un soft reset. Usar Ctrl+D después del stop en Thonny
|
||||||
|
IMPORTANTE, crear la carpeta /logs en el micro si se usa log en archivo """
|
||||||
|
from neopixel import NeoPixel # Librería para controlar la tira de leds con chip WS2812
|
||||||
|
import random # Librería para generar unos números aleatorio mas adelante
|
||||||
|
import machine # Librería con las instrucciones para acceder a los periféricos del ESP
|
||||||
|
import uasyncio as asyncio # Librería para usar asyncio, permite simular varios procesos al mismo tiempo
|
||||||
|
machine.freq(240000000) # Configuramos la frecuencia de la CPU a 240 MHz
|
||||||
|
import time # Librería para utilizar instrucciones de tiempo como el sleep
|
||||||
|
from micropython import const # Para poder utilizar las constantes
|
||||||
|
try:
|
||||||
|
import numpy as np # Importamos Numpy, permite trabajar con matrices cómodamente
|
||||||
|
except:
|
||||||
|
from ulab import numpy as np # Si no se puede importar la anterior importamos la versión de micropython
|
||||||
|
|
||||||
|
from rotary_irq_esp import RotaryIRQ # Librería para utilizar los encoders rotatorios
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue