unidad 5

PROGRAMA 1

from tkinter import *   #Importa Tkinter: from tkinter import * 

                        #importa todos los elementos de la biblioteca, 

                        #lo que permite trabajar con interfaces gráficas


ventana = Tk()          #Crea la ventana: ventana = Tk() 

                        #inicializa una instancia de la ventana principal.


ventana.title("Bienvenida")# nombre de la ventana

ventana.mainloop()         #mantiene la ventana abierta y en ejecución hasta que 

                           #el usuario la cierre.


PROGRAMA 2

from tkinter import *   #Importa Tkinter: from tkinter import * 

                        #importa todos los elementos de la biblioteca, 

                        #lo que permite trabajar con interfaces gráficas


ventana = Tk()          #Crea la ventana: ventana = Tk() 

                        #inicializa una instancia de la ventana principal.


ventana.title("Bienvenida")# nombre de la ventana


lbl= Label(ventana,text="hola capo como estas")

lbl.grid(column= 0 , row=0) 

ventana.mainloop()         #mantiene la ventana abierta y en ejecución hasta que 

                           #el usuario la cierre.



PROGRAMA 3

from tkinter import * #es un biblioteca 


ventana=Tk() # va a llamar el tkinter


ventana.title("Programacion Visual") #el titulo 


ventana.geometry('350x200') #tamaño de la ventana 


lbl=Label(ventana, text="Hola tu") #texto


lbl.grid(column=0,row=0) #posicion 


btn= Button(ventana,text="Clic me ") #un boton


btn.grid(column=1,row=0) #posiocion del boton


ventana.mainloop()


PROGRAMA 4

from tkinter import * #es un biblioteca 


ventana=Tk() # va a llamar el tkinter


ventana.title("Programacion Visual") #el titulo 




ventana.geometry('350x200') #tamaño




lbl=Label(ventana, text="Hola tu")




lbl.grid(column=0,row=0)




btn= Button(ventana,text="Clic me ") #boton




btn.grid(column=1,row=0)






def clicked(): #funcion para presionar el boton



lbl.configure(text="El boton fue clicked  !! ")



btn=Button(ventana,text="Click me", command=clicked)




btn.grid(column=1,row=0)




ventana.mainloop()



PROGRAMA 5

from tkinter import * 

ventana =Tk()

ventana.title("programaciiiiion")

ventana.geometry("500x500") # tamaño de la ventana

lbl = Label(ventana,text = "esta es una etiqueta ")

lbl.grid(column=0,row=0) #posicion de la etiqueta

txt = Entry(ventana,width=10)   # crea un campo donde el usario puede ingresar texto

txt.grid(column=0,row=1)


def clicked():

    lbl.configure(text=txt.get()) #obtenemos lo que se escirbio y lo reescribimos en la etiqueta


btn = Button(ventana, text= "puchame", command=clicked)


btn.grid(column=0, row=2) #lo acomodamos el boton


ventana.mainloop()


PROGRAMA 6

#hagan un programa que pida el nombre en una entrada

#e imprimir en una etiqueta



from tkinter import * #es un biblioteca 

ventana=Tk() # va a llamar el tkinter

ventana.title("Programacion Visual") #el titulo 


ventana.geometry('350x200')


lbl=Label(ventana, text="Hola tu") #en la ventana escribimos en esto


lbl.grid(column=0,row=0)    #posicion 


txt=Entry(ventana,width=10)


txt.grid(column=1,row=0)


#funcion para crear un boton y pucharlo

def clicked():

lbl.configure(text=txt.get())

btn=Button(ventana,text="Click me", command=clicked)


btn.grid(column=2,row=0)


ventana.mainloop()


PROGRAMA 7

from turtle import *

t=Turtle()

screnn=t.getscreen()

setup(1240,780) #tamaño de la ventana

t.left(-90)   #nos movemos

t.fd(300)    #avanzamos

t.left(-90)

t.fd(200)

t.left(-90)

t.fd(300)

t.undo()

t.home()      #regresamos al origen

screnn.exitonclick()


PROGRAMA 8

from turtle import *


t=Turtle()

screen=t.getscreen()

setup(640,480)


t.home()


t.left(90) #es para mober el angulo de la flecha 

t.forward(200) #es para cuanto se mueba la flehca

t.left(-90)

t.fd(200)

t.left(-90)

t.fd(200)

t.left(-90)

t.home()



######terminar el cuatro !!!!!!!!!!!!!!!!!!!!!!!!

screen.exitonclick()







PROGRAMA 9

from turtle import *


t=Turtle()



r=50      #circulo de 50 de radio

t.circle(r)    # lo dibujamos

t.left(180)




t.circle(r)       #dibujamos otro



screen=t.getscreen()

screen.exitonclick()



PROGRAMA 10

from turtle import *

t=Turtle()

screen=t.getscreen()



r=50         # tamaño del circulo

t.color('blue')     #color del contorno

t.fillcolor('IndianRed')     #otro color

t.begin_fill()

t.circle(r)

t.end_fill()

t.left(180)




screen.exitonclick()



PROGRAMA 11

import turtle 

t=turtle.Turtle()

screen=t.getscreen()



r=50                #circulo de radio = 50

turtle.colormode(255)

t.color(17,120,100) #color buscado en internet

t.begin_fill()

t.circle(r)

t.end_fill()

t.left(180)




screen.exitonclick()



PROGRAMA 12

import turtle 

t=turtle.Turtle()

screen=t.getscreen()



r=10

n=3           # 3 circulos

turtle.colormode(255)#color buscado en internet

#t.color(17,120,100)

for i in range(1,n+1):  #creamos un for pra dibujar varios circulos en forma de espiral

t.circle(r*i)




screen.exitonclick()




#rasberry    pi pinout



PROGRAMA 13

import RPi.GPIO as GPIO #libreria para usar la rasberry pines de entrada y salida


import time  #para poner delay


GPIO.setmode(GPIO.BCM)


GPIO.setup(18,GPIO.OUT)


for i in range(0,5):


GPIO.output(18,GPIO.HIGH) #encendido


time.sleep(1)


GPIO.output(18,GPIO.low) #apagado


time.sleep(1)


GPIO.cleanup()



PROGRAMA 14

from turtle import *  # importa la libreria turtle


t = Turtle()  


screen = t.getscreen()  # obtiene la pantalla donde se dibujara


t.shape('turtle')  # cambia la forma del cursor a una tortuga


color = ['red', 'pink', 'orange', 'yellow', 'green', 'blue', 'purple']  # lista de colores para los trazos


t.speed(10)  # establece la velocidad de la tortuga


for cada_color in color:  # recorre la lista de colores

    angle = 360 / len(color)  # calcula el angulo de giro necesario para distribuir los circulos uniformemente

    t.color(cada_color)  # cambia el color de la tortuga

    t.circle(40)  # dibuja un circulo con radio 40

    t.right(angle)  # gira la tortuga a la derecha el angulo calculado

    t.forward(30)  # avanza hacia adelante para crear un efecto de separacion entre los circulos


print(360 / len(color))  # imprime el angulo de giro calculado


t.write('Felicidades')  # escribe un mensaje en la pantalla


exitonclick()  

PROGRAMA 15

from turtle import *


def princ():

    t = Turtle()

    

    title('Hello World')  # Corregir el texto

    setup(1000, 1000, 0, 0)  # Tamaño de la ventana

    

    t.penup()  # Levantar el lapiz

    t.goto(0, 0)  # Mover la tortuga

    t.color('navy')  # Cambiar color

    

    t.write('Hello World!', font=('Times New Roman', 36, 'bold'))  # Escribir el texto

    

    t.hideturtle()  # Ocultar la tortuga


# Llamar a la función para que se ejecute

princ()


exitonclick()  # Esperar el clic para cerrar la ventana


PROGRAMA 16

from turtle import *

t=Turtle()

import random

screen=t.getscreen()



t = Turtle()

bgcolor('black')   #pone el color de la pantalla

colors = ['red', 'yellow', 'blue', 'green', 'orange', 'purple', 'white', 'gray']

t.speed(12)  # velocidad


for n in range(15): #son cuantas veces hace la figura 

    t.pencolor(random.choice(colors)) #Cambia el color al aleatorio de la lista.

    size = random.randint(10, 40) #Cambia un tamaño aleatorio entre 10 y 40 para la figura



    #x = random.randrange(120, 150) #es para el rango que tiene para moverse la figura 

    #y = random.randrange(120, 150)

    x = random.randint(-300, 300) #esto hace  que se mueva por toda la pantalla

    y = random.randint(-300, 300)


    t.penup() # Levanta el lápiz de la tortuga.

    t.setpos(x, y) #Mueve la tortuga directamente a la posición (x, y) en la pantalla

    t.pendown() #Baja el lápiz otra vez para hacer la otra figura 


    for m in range(size):

        t.forward(m * 2) #hace el la forma de la figura 

        t.left(91)


screen.exitonclick()


PROGRAMA 17

import turtle

t=turtle.Pen() #Pen() es un objeto que puedes mover, girar, cambiar de color, escribir, etc.

screen=t.getscreen()

turtle.bgcolor('black') #fondo de pantalla negro

colors=['red','yellow','blue','green']

nombre=turtle.textinput('Captura',' tu nombre  ?') #se abre una ventana para escribir algo

t.speed(12) #velocidad

for x in range(100):

t.pencolor(colors[x%4]) #cambia de color en orden como esta en la lista y se repite 

t.penup() #levanta el lapiz

t.forward(x*4) #esto crea el espiral Cuando x=0, no avanza.----Cuando x=1, avanza 4 pixeles.----Cuando x=2, avanza 8 pixeles.

t.pendown() #baja el lapiz

t.write(nombre,font=('Arial',int(x/4+4),'bold')) #el tipo de texto,que aumente el tamaño de la letra de pequeño a grande, y bold es como las letras negritas 

t.left(92) #el angulo que gira esto permite el espiral

screen.exitonclick()



PROGRAMA 18

from turtle import *


# Crear una tortuga

t = Turtle()

screen = t.getscreen()


# Cambiar la forma de la tortuga para que se vea más visualmente atractiva

t.shape('turtle')


# Lista de números que usaremos para determinar la distancia del movimiento de la tortuga

lista_numeros = [1,2,3,4,5,6,7,8,9,10]


# Establecer el color de la línea en verde

t.color('green')


# Bucle que recorrerá cada número de la lista

for number in lista_numeros:

    t.forward(number * 10)  # La tortuga avanza una distancia proporcional al número en la lista

    t.left(60)  # Gira 60 grados a la izquierda, creando un patrón tipo estrella o hexagonal


# Mantiene la ventana abierta hasta que el usuario haga clic

exitonclick()


PROGRAMA 19

from turtle import *


# Crear la tortuga

t = Turtle()


# Configurar la pantalla

screen = t.getscreen()

setup(250, 250, 0, 0)

screensize(120, 120)

title('www.ITA.mx')


# Ocultar la tortuga

t.hideturtle()


# Pedir un numero al usuario

size = int(numinput("Entrada", "Ingrese un numero:", default=10))  # Agregue titulo y mensaje


# Mostrar el numero ingresado

t.penup()

t.goto(0, 0)

t.color("navy")

t.write(f"El numero es: {size}", font=("Times New Roman", 16, "bold"))


exitonclick()


PROGRAMA 20

from turtle import *


# Configuración de la pantalla

t = Turtle()

screen = t.getscreen()

screen.bgcolor('white')

t.speed(10)


# Dibujar pétalos

t.color('yellow')

t.penup()

t.goto(0,-50)

t.pendown()

t.speed(20) #la velocidad

for _ in range(18):  # Hace 18 pétalos alrededor del centro

    t.begin_fill()

    t.circle(100,60)

    t.left(120)

    t.circle(100,60)

    t.left(120)

    t.end_fill()

    t.right(20)  # Rota ligeramente para formar el siguiente pétalo


# Dibujar centro del girasol

t.goto(0,-80)

t.pendown()

t.color('brown')

t.begin_fill()

t.circle(30)

t.end_fill()


# Escribir mensaje

t.penup()

t.goto(-60,80)

t.pendown()

t.color('red')

t.write("Te amo, mamá", font=("Arial", 16, "bold"))


t.hideturtle()

exitonclick()



PROGRAMA 21

import RPi.GPIO as GPIO  # libreria para manejar los pines de la raspberry

import time  # para hacer pausas en la ejecucion


PIN = 10  # definimos que pin vamos a usar

ESPERA = 0.5  # tiempo de espera entre cambios


# configuramos la raspberry para usar la numeracion fisica de los pines

GPIO.setmode(GPIO.BOARD)

# ponemos el pin como salida para poder controlar el led

GPIO.setup(PIN, GPIO.OUT)



while True:

    GPIO.output(PIN, GPIO.HIGH)  # encendemos el led

    time.sleep(ESPERA)  # esperamos un poco

    GPIO.output(PIN, GPIO.LOW)  # apagamos el led

    time.sleep(ESPERA)  # esperamos de nuevo


PROGRAMA 22

from tkinter import *


ventana=Tk()


ventana.geometry('300x300')# tamaño de la ventana


etiqueta=Label(ventana,text='Minimizar')


etiqueta.pack()


boton=Button(ventana,text='Minimizar',command=ventana.iconify)#minimizamos la pantalla


boton.pack()


ventana.mainloop()



PROGRAMA 23

from tkinter import *


def parpadear():

    ventana.iconify()

    ventana.after(2000, ventana.deiconify)  # 2000 ms = 2 segundos es como un spam


ventana = Tk()

ventana.title("Segunda ventana en tkinter")


btn = Button(ventana, text='Evento', command=parpadear)

btn.pack()


ventana.mainloop()


#este programa parce un anuncio tipo spam



PROGRAMA 24

from tkinter import *




def imprime():


print('Acabas de dar click a imprimir')




cuadro=Tk()


cuadro.geometry('300x300')#tamaño de la ventana


cuadro.title('Dos botones')


btnS=Button(cuadro,text='Salir',fg='Red',command=cuadro.quit)#cierra la pestaña


btnS.pack(side=LEFT)


btnI=Button(cuadro,text='Imprime',fg='Blue',command=imprime)# lo imprime en el cmd


btnI.pack(side=RIGHT)


cuadro.mainloop()



PROGRAMA 25


from tkinter import *


ventana=Tk()


ventana.geometry('300x300')#tamaño de la ventana


ventana.title("Posiconamiento")



#agregamos las etiquetas y el boton

btn = Button(ventana, text="posicion uno").grid(row=0, column=1)#boton para psosciones

lbl1 = Label(ventana, text="posicion dos").grid(row=1, column=1)

lbl2 = Label(ventana, text="posicion tres").grid(row=2, column=1)

lbl3 = Label(ventana, text="posicion cuatro").grid(row=3, column=1) 




ventana.mainloop() 



PROGRAMA 26


from tkinter import *


ventana=Tk()


ventana.geometry('300x300')


ventana.title("Posiconamiento")


btn = Button(ventana, text="posicion uno").place(x=10,y=10)


lbl1 = Label(ventana, text="posicion dos").place(x=200,y=10)


lbl2 = Label(ventana, text="posicion tres").place(x=10,y=40)


lbl3 = Label(ventana, text="posicion cuatro").place(x=200,y=40)




ventana.mainloop() 


#este ejercico hace lo mismo que el anterio solo cambiamos la manera de escribir 

#las posciones donde queremos el texto o el boton y cambiarlo por cordenadas



PROGRAMA 27

from tkinter import *


# Esta funcion imprime un mensaje en consola

def saludo():

    print("Te saludo")


# Esta funcion minimiza la ventana

def chiquito():

    ventana.iconify()


# Se crea la ventana principal

ventana = Tk()

ventana.title("Ejercicio")  # Se le da un titulo a la ventana

ventana.geometry("400x200")  # Se establece el tamaño de la ventana


# Se crean y colocan los elementos en la ventana

lbl1 = Label(ventana, text="Click para saludar", fg="red").place(x=30, y=50)

btn1 = Button(ventana, text="Saludar", command=saludo, bg="red", fg="light gray").place(x=200, y=45)


lbl2 = Label(ventana, text="Click para minimizar", fg="blue").place(x=30, y=100)

btn2 = Button(ventana, text="Minimiza", command=chiquito, bg="blue", fg="lightgray").place(x=200, y=95)

ventana.mainloop()



PROGRAMA 28

from tkinter import *


# Esta funcion imprime en consola el nombre completo que el usuario escriba

def saluda():

    print("Hola: " + nombre.get() + " " + apellidoP.get() + " " + apellidoM.get())


# Se crea la ventana principal

ventana = Tk()

ventana.geometry("400x200")  # Tamaño de la ventana

ventana.title("Capture")     # Titulo de la ventana


# Variables para guardar lo que el usuario escriba

nombre = StringVar()

apellidoP = StringVar()

apellidoM = StringVar()



nombre.set(" ")


# Etiquetas y campos de texto

lbln = Label(ventana, text="Nombre: ").place(x=0, y=10)

bxbn = Entry(ventana, textvariable=nombre).place(x=170, y=10)


lblap = Label(ventana, text="Apellido paterno").place(x=10, y=40)

bxap = Entry(ventana, textvariable=apellidoP).place(x=170, y=38)


lblam = Label(ventana, text="Apellido materno").place(x=10, y=70)

bxam = Entry(ventana, textvariable=apellidoM).place(x=170, y=70)


# Boton que ejecuta la funcion saluda

btns = Button(ventana, text="Te saludo", command=saluda).place(x=10, y=100)


# Inicia la ventana

ventana.mainloop()


PROGRAMA 29

from tkinter import *


def saluda():

    mensaje.config(text="Hola: " + nombre.get() + " " + apellidoP.get() + " " + apellidoM.get())


ventana = Tk()

ventana.geometry("400x200")

ventana.title("Capture")


nombre = StringVar()

apellidoP = StringVar()

apellidoM = StringVar()


# Etiquetas y entradas

lbln = Label(ventana, text="Nombre: ").place(x=0, y=10)

bxbn = Entry(ventana, textvariable=nombre).place(x=170, y=10)


lblap = Label(ventana, text="Apellido paterno").place(x=0, y=40)

bxap = Entry(ventana, textvariable=apellidoP).place(x=170, y=40)


lblam = Label(ventana, text="Apellido materno").place(x=0, y=70)

bxam = Entry(ventana, textvariable=apellidoM).place(x=170, y=70)


# Etiqueta para el mensaje de saludo

mensaje = Label(ventana, text="", fg="blue")

mensaje.place(x=10, y=130)


# Boton con color de fondo 

bts = Button(ventana, text="Te saludo", command=saluda, bg="lightgreen")

bts.place(x=10, y=100)


ventana.mainloop()



PROGRAMA 30

from tkinter import *


# funcion que realiza la operacion segun la opcion elegida

def operacion():

    numero = num.get()  # obtiene el numero ingresado en la caja de texto

    if opcion.get() == 1:  # si el usuario elige la opcion 1, multiplica por 10

        total = numero * 10

    elif opcion.get() == 2:  # si elige la opcion 2, multiplica por 20

        total = numero * 20

    elif opcion.get() == 3:  # si elige la opcion 3, multiplica por 30

        total = numero * 30

    elif opcion.get() == 4:  # si elige la opcion 4, multiplica por 40

        total = numero * 40

    elif opcion.get() == 5:  # si elige la opcion 5, multiplica por 50

        total = numero * 50

    else:  # si no elige ninguna de las anteriores, eleva el numero al cuadrado

        total = numero * numero


    Label(ventana, fg="blue", text="resultado: " + str(total)).place(x=100, y=220)  # muestra el resultado en la ventana


# crea la ventana grafica

ventana = Tk()

opcion = IntVar()  # variable para almacenar la opcion elegida

num = IntVar()  # variable para almacenar el numero ingresado


ventana.title("botones de radio")  # titulo de la ventana

ventana.geometry("400x300")  # tamaño de la ventana


Label(ventana, text="escribe un numero : ").place(x=22, y=20)  # etiqueta para pedir el numero

Entry(ventana, bd=3, textvariable=num).place(x=150, y=20)  # caja de texto para ingresar el numero


Label(ventana, text="elige tu opcion: ").place(x=20, y=50)  # etiqueta para indicar las opciones disponibles


# botones de radio para seleccionar la operacion

Radiobutton(ventana, text="x10", value=1, variable=opcion).place(x=70, y=70)

Radiobutton(ventana, text="x20", value=2, variable=opcion).place(x=70, y=90)

Radiobutton(ventana, text="x30", value=3, variable=opcion).place(x=70, y=110)

Radiobutton(ventana, text="x40", value=4, variable=opcion).place(x=70, y=130)

Radiobutton(ventana, text="x50", value=5, variable=opcion).place(x=70, y=150)

Radiobutton(ventana, text="cuadro", value=6, variable=opcion).place(x=120, y=70)


Button(ventana, text="realiza operacion", command=operacion).place(x=20, y=180)  # boton para ejecutar la operacion


ventana.mainloop()  # inicia la ventana grafica


PROGRAMA 31

#Calculador de IMC

#Datos a pedir

#Nombre, altura, peso

from tkinter import *


ventana = Tk()

ventana.title("uso de imagenes en tkinter")

ventana.geometry("1200x800")  # tamaño


foto = PhotoImage(file="pa.png")  # asegurarse de que la imagen existe y es formato .png

fondo = Label(ventana, image=foto)  

fondo.place(x=1, y=1)  #posicion de la foto


ventana.mainloop()


PROGRAMA 32

from tkinter import *

from tkinter import messagebox  # se importa messagebox para mostrar mensajes emergentes


# funcion que obtiene el valor del spinbox seleccionado y lo muestra en un mensaje

def obtener():

    messagebox.showinfo("mensaje", "seleccion es: " + valor.get())


# se crea la ventana grafica

ventana = Tk()

ventana.title("uso de spinbox")  # titulo de la ventana

ventana.geometry("400x200")  # tamaño de la ventana


valor = StringVar()  # variable que almacenara el valor seleccionado en el spinbox


Label(ventana, text="ejemplo 1 spinbox").place(x=20, y=20)  # etiqueta con el titulo


# spinbox que permite elegir entre opciones predefinidas

Spinbox(ventana, values=("uno", "dos", "tres", "cuatro", "cinco")).place(x=20, y=50)


# otro spinbox pero que permite elegir numeros entre 1 y 10

Spinbox(ventana, from_=1, to=10, textvariable=valor).place(x=20, y=110)


# boton que, cuando se presiona, ejecuta la funcion obtener() y muestra el valor seleccionado

Button(ventana, text="obtener valor spinbox", command=obtener).place(x=90, y=140)


mainloop()  # inicia la ventana grafica


PROGRAMA 33

#Calculador de IMC

#Datos a pedir

#Nombre, altura, peso

#poner una imagen

from tkinter import *



# Crear la ventana

ventana = Tk()

ventana.title("Calculadora de IMC")

ventana.geometry("1200x1200")  # Tamaño


# Imagen de fondo

foto = PhotoImage(file="indices.png")  # Asegurarse de que la imagen existe y es formato .png

fondo = Label(ventana, image=foto)

fondo.place(x=1, y=1)


# pediremos que ingrese 3 datos

#nombre

Label(ventana, text="Nombre:").place(x=50, y=50)

nombre_entry = Entry(ventana)

nombre_entry.place(x=120, y=50)

#PESO

Label(ventana, text="Peso (kg):").place(x=50, y=100)

peso_entry = Entry(ventana)

peso_entry.place(x=120, y=100)

# altura

Label(ventana, text="Altura (m):").place(x=50, y=150)

altura_entry = Entry(ventana)

altura_entry.place(x=120, y=150)


# Funcion para calcular el IMC

def calcular_imc():

    try:

        peso = float(peso_entry.get())

        altura = float(altura_entry.get())

        imc = peso / (altura ** 2)

        resultado_label.config(text=f"Indice de masa corporal: {imc:.2f}") #CON 2 DECIMALES

    except ValueError:                                 #SI NO INGRESA UN DATO CORRECTO

        resultado_label.config(text="ingresa lo que se te pide") #VUELVE A INTENTARLO


# Boton para calcular IMC

boton_calcular = Button(ventana, text="Calcular IMC", command=calcular_imc)

boton_calcular.place(x=70, y=200)


# Etiqueta para mostrar el resultado

resultado_label = Label(ventana, fg="black", text="INDICE DE MASA CORPORAL:")

resultado_label.place(x=100, y=250)


ventana.mainloop()


PROGRAMA 34

import sys, time

import RPi.GPIO as GPIO  


GPIO.setmode(GPIO.BOARD)  


# configuracion de pines como salida

GPIO.setup(11, GPIO.OUT)

GPIO.setup(13, GPIO.OUT)

GPIO.setup(15, GPIO.OUT)


# secuencia de encendido y apagado de los leds

GPIO.output(11, 1)

time.sleep(1)

GPIO.output(13, 1)

time.sleep(1)

GPIO.output(15, 1)

time.sleep(1)


GPIO.output(11, 0)

time.sleep(1)

GPIO.output(13, 0)

time.sleep(1)

GPIO.output(15, 0)

time.sleep(1)


GPIO.output(11, 1)

GPIO.output(13, 0)

GPIO.output(15, 1)

time.sleep(1)


GPIO.output(11, 1)

GPIO.output(13, 1)

GPIO.output(15, 1)

time.sleep(1)


GPIO.output(11, 0)

GPIO.output(13, 1)

GPIO.output(15, 1)

time.sleep(1)


GPIO.output(11, 0)

GPIO.output(13, 0)

GPIO.output(15, 0)

time.sleep(1)


GPIO.cleanup()  # limpia la configuracion de los pines al terminar

PROGRAMA 35

import sys, time

import RPi.GPIO as GPIO  


GPIO.setmode(GPIO.BOARD)  # establece la numeracion fisica de los pines


# configuracion de pines como salida

GPIO.setup(11, GPIO.OUT)

GPIO.output(11, 1)  # enciende el led conectado al pin 11


GPIO.setup(13, GPIO.OUT)

GPIO.output(13, 1)  # enciende el led conectado al pin 13


GPIO.setup(15, GPIO.OUT)

GPIO.output(15, 1)  # enciende el led conectado al pin 15


try:

    while True:

        solicitud = input("RGB--> ")  

        solicitud = str(solicitud)  


        if len(solicitud) == 3:  # verifica que tenga 3 caracteres

            GPIO.output(11, int(solicitud[0]))  # asigna el valor de la primera posicion al led rojo

            GPIO.output(13, int(solicitud[1]))  # asigna el valor de la segunda posicion al led verde

            GPIO.output(15, int(solicitud[2]))  # asigna el valor de la tercera posicion al led azul

        else:

            GPIO.cleanup()  


except KeyboardInterrupt:

    GPIO.cleanup()  # si el usuario interrumpe el programa con Ctrl+C, apaga los leds y libera los pines



PROGRAMA 36

from tkinter import *

ventana = Tk()

ventana.title("simon dice ")# titulo de la vantana

ventana.geometry("500x500")

icono = PhotoImage(file = "LogoITA.png")#le popnemos un logo ala ventana


#para boton rojo

r=PhotoImage(file="rojo.png")

image = r

br = r.subsample(3,3)

btnr=Button(ventana,width=100,height=100,image= br)

btnr.grid(column=0,row=0)

#para boton verde

v=PhotoImage(file="verde.png")

image = v

bv = v.subsample(1,1)

btnv=Button(ventana,width=100,height=100,image= bv)

btnv.grid(column=0,row=1)


#para boton amarillo

a=PhotoImage(file="amarillo.png")

image = a

ba = a.subsample(1,1)

btna=Button(ventana,width=100,height=100,image= ba)

btna.grid(column=1,row=0)


#para boton azul    

z=PhotoImage(file="azul.png")

image = z

bz = z.subsample(1,1)

btnz=Button(ventana,width=100,height=100,image= bz)

btnz.grid(column=1,row=1)


#para boton alto

x=PhotoImage(file="stop.png")

image = x

bx = x.subsample(10,10)

btnx=Button(ventana,width=100,height=100,image= bx)

btnx.grid(column=0,row=3)


#para boton play

y=PhotoImage(file="plaay.png")

image = y

by = y.subsample(10,10)

btny=Button(ventana,width=100,height=100,image= by)

btny.grid(column=1,row=3)



ventana.iconphoto(True,icono)

ventana.mainloop()



#lo que hicimos en este programa fue crear a simon dice ,es un codigo muy 

#repetitivo por que utilizamos los mismos metodos para los 4 colores de

#simon dice


PROGRAMA 37

from tkinter import *

ventana = Tk()

ventana.title("simon dice ")# titulo de la vantana

ventana.geometry("300x400")

icono = PhotoImage(file = "LogoITA.png")#le popnemos un logo ala ventana

lcol= [] #hacemos una lista de colores vacia 

color = "nada"

def limpia():

global color 

color = ""

lbl = Lbel(ventana,text=color)

lbl.grid(column=0,row=0)


def clicked(col):

    global color

    global lcol

if col == 1:

limpia()

color = ""

lbl = Label(ventana, text=color)

lbl.grid(column=0, row=4)

color = "rojo"

lbl = Label(ventana, text=color)

elif col == 2:

color = ""

lbl = Label(ventana, text=color)

lbl.grid(column=0, row=4)

color = "verde"

lbl = Label(ventana, text=color)

    elif col == 3:

limpia()

color = "amarillo"

lbl = Label(ventana,text=color)

lcol.append(3)

elif col == 4:

limpia()

        color = "azul"

        lbl = Label(ventana,text=color)

        lcol.append(4)

elif col == 5:

pass

elif col==6:

cad= " "

limpia()

color= " reproducir "

cad+str(col/n)

print(lcol)

        

        

        

#para boton rojo

r=PhotoImage(file="rojo.png")

image = r

br = r.subsample(3,3)

btnr=Button(ventana,width=100,height=100,image= br)

btnr.grid(column=0,row=0)

#para boton verde

v=PhotoImage(file="verde.png")

image = v

bv = v.subsample(1,1)

btnv=Button(ventana,width=100,height=100,image= bv)

btnv.grid(column=0,row=1)


#para boton amarillo

a=PhotoImage(file="amarillo.png")

image = a

ba = a.subsample(1,1)

btna=Button(ventana,width=100,height=100,image= ba)

btna.grid(column=1,row=0)


#para boton azul    

z=PhotoImage(file="azul.png")

image = z

bz = z.subsample(1,1)

btnz=Button(ventana,width=100,height=100,image= bz)

btnz.grid(column=1,row=1)


#para boton alto

x=PhotoImage(file="stop.png")

image = x

bx = x.subsample(10,10)

btnx=Button(ventana,width=100,height=100,image= bx)

btnx.grid(column=0,row=3)


#para boton play

y=PhotoImage(file="plaay.png")

image = y

by = y.subsample(10,10)

btny=Button(ventana,width=100,height=100,image= by)

btny.grid(column=1,row=3)



ventana.iconphoto(True,icono)

ventana.mainloop()


#lo que cambia de este programa es la continuacion del juego de simon dice ,aqui defenimos una funcion "limpia", y la funcion "cliked" para guardar en una lista los colores que clikeamos

PROGRAMA 38

from tkinter import *

import tkinter as tk

import os

from tkinter import messagebox

from tkinter import simpledialog

import pygame  

import RPi.GPIO as GPIO


GPIO.setmode(GPIO.BOARD)

GPIO.setup(3,GPIO.OUT)

GPIO.setup(5,GPIO.OUT)

GPIO.setup(7,GPIO.OUT)


GPIO.output(3,0)

GPIO.output(5,0)

GPIO.output(7,0)


pygame.mixer.init()  # Inicializa el mixer 


ventana = Tk()

ventana.title("Simon Dice")

ventana.geometry("300x400")

icono = PhotoImage(file="logoITA.png")

ventana.iconphoto(True, icono)


color = ""

lcol = []


try:

    sonido_rojo = pygame.mixer.Sound("sonido_rojo.mp3")

    sonido_verde = pygame.mixer.Sound("sonido_verde.mp3")

    sonido_amarillo = pygame.mixer.Sound("sonido_amarillo.mp3")

    sonido_azul = pygame.mixer.Sound("sonido_azul.mp3")

    sonido_play = pygame.mixer.Sound("sonido_play.mp3")

    sonido_stop = pygame.mixer.Sound("sonido_stop.mp3")

except pygame.error as e:

    messagebox.showwarning("Error", f"Error al cargar sonidos: {e}")


def limpia():

    color = "                                          "

    lbl = Label(ventana, text=color)

    lbl.grid(column=0, row=4)


def clicked(col):

    global color

    global lcol

    if col == 1:

        limpia()

        color = "rojo"

        lbl = Label(ventana, text=color)

        lcol.append(1)

        sonido_rojo.play()

    elif col == 2:

        limpia()

        color = "verde"

        lbl = Label(ventana, text=color)

        lcol.append(2)

        sonido_verde.play()

    elif col == 3:

        limpia()

        color = "azul"

        lbl = Label(ventana, text=color)

        lcol.append(3)

        sonido_azul.play()

    elif col == 4:

        limpia()

        color = "amarillo"

        lbl = Label(ventana, text=color)

        lcol.append(4)

        sonido_amarillo.play()

    elif col == 5:

        limpia()

        color = "juega"

        lbl = Label(ventana, text=color)

        lcol.append(5)

        sonido_play.play()

    elif col == 6:

        limpia()

        color = "alto"

        lbl = Label(ventana, text=color)

        lcol.append(6)

        sonido_stop.play()

        guardar_partida()  # Se guarda la partida automáticamente al presionar "alto"

        # Desactivar botones menos el de play

        btnr.config(state=DISABLED)

        btnv.config(state=DISABLED)

        btnm.config(state=DISABLED)

        btna.config(state=DISABLED)

        btnpara.config(state=DISABLED)

        btnjuega.config(state=NORMAL)

    else:

        color = "algo"

        lbl = Label(ventana, text=color)

    lbl.grid(column=0, row=4)


# Botones de colores

r = PhotoImage(file="rojo.png")

br = r.subsample(3, 3)

btnr = Button(ventana, width=100, height=100, image=br, command=lambda: clicked(1))

btnr.grid(column=0, row=0)


v = PhotoImage(file="verde.png")

bv = v.subsample(3, 3)

btnv = Button(ventana, width=100, height=100, image=bv, command=lambda: clicked(2))

btnv.grid(column=1, row=0)


m = PhotoImage(file="azul.png")

bm = m.subsample(3, 3)

btnm = Button(ventana, width=100, height=100, image=bm, command=lambda: clicked(3))

btnm.grid(column=0, row=1)


a = PhotoImage(file="amarillo.png")

ba = a.subsample(3, 3)

btna = Button(ventana, width=100, height=100, image=ba, command=lambda: clicked(4))

btna.grid(column=1, row=1)


# Botón para play

pl = PhotoImage(file="plaay.png")

bjuega = pl.subsample(3, 3)

def activar_botones():

    btnr.config(state=NORMAL)

    btnv.config(state=NORMAL)

    btnm.config(state=NORMAL)

    btna.config(state=NORMAL)

    btnpara.config(state=NORMAL)

    sonido_play.play()

btnjuega = Button(ventana, width=100, height=100, image=bjuega, command=activar_botones)

btnjuega.grid(column=0, row=2)


# Botón para alto

al = PhotoImage(file="stop.png")

bpara = al.subsample(3, 3)

btnpara = Button(ventana, width=100, height=100, image=bpara, command=lambda: clicked(6))

btnpara.grid(column=1, row=2)


# Desactivar todos menos btnjuega al inicio

btnr.config(state=DISABLED)

btnv.config(state=DISABLED)

btnm.config(state=DISABLED)

btna.config(state=DISABLED)

btnpara.config(state=DISABLED)


# Guardar partida

def guardar_partida():

    nombre = simpledialog.askstring("Guardar partida", "Nombre del archivo:")

    if nombre:

        with open(f"{nombre}.txt", "w") as f:

            f.write(",".join(map(str, lcol)))

        messagebox.showinfo("Guardado", f"Partida guardada como {nombre}.txt")


# Mostrar partidas

def mostrar_partidas():

    archivos = [f for f in os.listdir() if f.endswith(".txt")]

    if archivos:

        archivo = simpledialog.askstring("Mostrar partida", "Escribe el nombre del archivo (sin .txt):\n" + "\n".join([a.replace(".txt", "") for a in archivos]))

        if archivo and f"{archivo}.txt" in archivos:

            with open(f"{archivo}.txt", "r") as f:

                contenido = f.read()

            messagebox.showinfo("Contenido de la partida", contenido)

            # Reproducir la secuencia

            secuencia = [int(x) for x in contenido.split(",") if x.isdigit()]

            reproducir_partida(secuencia)

        else:

            messagebox.showinfo("Error", "Archivo no encontrado.")

    else:

        messagebox.showinfo("Partidas guardadas", "No hay archivos .txt guardados.")


btnmostrar = Button(ventana, text="Mostrar partidas", command=mostrar_partidas)

btnmostrar.grid(column=1, row=3, pady=10)


# Reproducir partida guardada

def reproducir_partida(secuencia):

    btnr.config(state=DISABLED)

    btnv.config(state=DISABLED)

    btnm.config(state=DISABLED)

    btna.config(state=DISABLED)

    btnpara.config(state=DISABLED)

    btnjuega.config(state=DISABLED)


    botones = {1: btnr, 2: btnv, 3: btnm, 4: btna, 5: btnjuega, 6: btnpara}

    colores = {1: "rojo", 2: "verde", 3: "azul", 4: "amarillo", 5: "Inicia el juego", 6: "Fin del Juego"}

    color_flash = {1: "#ff8080", 2: "#80ff80", 3: "#c080ff", 4: "#ffff80", 5: "#d0ffd0", 6: "#ffd0d0"}

    sonidos = {1: sonido_rojo, 2: sonido_verde, 3: sonido_azul, 4: sonido_amarillo, 5: sonido_play, 6: sonido_para}

    leds = {1: 3, 2: 5, 3: 7}  # LED GPIO para cada color


    def mostrar_color(idx):

        # Apaga todos los LEDs antes de encender el siguiente

        GPIO.output(3, 0)

        GPIO.output(5, 0)

        GPIO.output(7, 0)


        if idx < len(secuencia):

            num = secuencia[idx]

            color = colores.get(num, "SystemButtonFace")

            limpia()

            lbl = Label(ventana, text=color)

            lbl.grid(column=0, row=4)

            btn = botones.get(num)

            if btn:

                original = btn.cget("bg")

                btn.config(bg=color_flash.get(num, "white"))

                ventana.after(400, lambda: btn.config(bg=original))

            sonido = sonidos.get(num)

            if sonido:

                sonido.play()

            # Enciende el LED correspondiente si existe

            if num in leds:

                GPIO.output(leds[num], 1)

                ventana.after(400, lambda: GPIO.output(leds[num], 0))

            ventana.after(700, lambda: mostrar_color(idx + 1))

        else:

            limpia()

            btnjuega.config(state=NORMAL)

            # Apaga todos los LEDs al terminar

            GPIO.output(3, 0)

            GPIO.output(5, 0)

            GPIO.output(7, 0)


    mostrar_color(0)


ventana.mainloop()

#este fue el juego terminado

Comentarios

Entradas más populares de este blog

UNIDAD 1,2,3,4