from machine import Pin, PWM
import time
# 1. Configuración del Buzzer para Raspberry Pi Pico
# Según tu imagen, el pin parece ser el GP15
buzzer_pin = Pin(15)
buzzer = PWM(buzzer_pin)
# 2. Diccionario de frecuencias
diccionario_voz = {
'a': 300, 'b': 320, 'c': 340, 'd': 360, 'e': 380,
'f': 400, 'g': 420, 'h': 440, 'i': 460, 'j': 480,
'k': 500, 'l': 520, 'm': 540, 'n': 560, 'o': 580,
'p': 600, 'q': 620, 'r': 640, 's': 660, 't': 680,
'u': 700, 'v': 720, 'w': 740, 'x': 760, 'y': 780,
'z': 800, ' ': 0
}
# 3. Función de sonido corregida (uso de duty_u16)
def sonar(frecuencia, duracion):
if frecuencia == 0:
buzzer.duty_u16(0) # Silencio
time.sleep(duracion)
else:
buzzer.freq(frecuencia)
# 32768 equivale al 50% de 65535
buzzer.duty_u16(32768)
time.sleep(duracion)
buzzer.duty_u16(0) # Apagar
def hablar(texto):
texto = texto.lower()
print(f"Robot diciendo: {texto}")
for letra in texto:
if letra in diccionario_voz:
freq = diccionario_voz[letra]
duracion = 0.15 if letra == ' ' else 0.08
sonar(freq, duracion)
time.sleep(0.02)
# Bucle principal
while True:
hablar("Logica beta los quiero")
time.sleep(2)