from picozero import Servo
from time import sleep
# creating Servo objects for each servo motor
servo1 = Servo(15)
servo2 = Servo(8)
servo3 = Servo(13)
servo4 = Servo(11)
servo5 = Servo(10)
servo6 = Servo(9)
# Define Braille dictionary with corresponding servo movements
braille_dict = {
"a": [servo1.max, servo2.mid, servo3.mid, servo4.mid, servo5.mid, servo6.mid],
"b": [servo1.max, servo2.mid, servo3.max, servo4.mid, servo5.mid, servo6.mid],
"c": [servo1.max, servo2.max, servo3.mid, servo4.mid, servo5.mid, servo6.mid],
"d": [servo1.max, servo2.max, servo3.mid, servo4.max, servo5.mid, servo6.mid],
"e": [servo1.max, servo2.mid, servo3.mid, servo4.max, servo5.mid, servo6.mid],
"f": [servo1.max, servo2.max, servo3.max, servo4.mid, servo5.mid, servo6.mid],
"g": [servo1.max, servo2.max, servo3.max, servo4.max, servo5.mid, servo6.mid],
"h": [servo1.max, servo2.mid, servo3.max, servo4.max, servo5.mid, servo6.mid],
"i": [servo1.mid, servo2.max, servo3.max, servo4.mid, servo5.mid, servo6.mid],
"j": [servo1.mid, servo2.max, servo3.max, servo4.max, servo5.mid, servo6.mid],
"k": [servo1.max, servo2.mid, servo3.mid, servo4.mid, servo5.max, servo6.mid],
"l": [servo1.max, servo2.mid, servo3.max, servo4.mid, servo5.max, servo6.mid],
"m": [servo1.max, servo2.max, servo3.mid, servo4.mid, servo5.max, servo6.mid],
"n": [servo1.max, servo2.max, servo3.mid, servo4.max, servo5.max, servo6.mid],
"o": [servo1.max, servo2.mid, servo3.mid, servo4.max, servo5.max, servo6.mid],
"p": [servo1.max, servo2.max, servo3.max, servo4.mid, servo5.max, servo6.mid],
"q": [servo1.max, servo2.max, servo3.max, servo4.max, servo5.max, servo6.mid],
"r": [servo1.max, servo2.mid, servo3.max, servo4.max, servo5.max, servo6.mid],
"s": [servo1.mid, servo2.max, servo3.max, servo4.mid, servo5.max, servo6.mid],
"t": [servo1.mid, servo2.max, servo3.max, servo4.max, servo5.max, servo6.mid],
"u": [servo1.max, servo2.mid, servo3.mid, servo4.mid, servo5.max, servo6.max],
"v": [servo1.max, servo2.mid, servo3.max, servo4.mid, servo5.max, servo6.max],
"w": [servo1.mid, servo2.max, servo3.max, servo4.max, servo5.mid, servo6.max],
"x": [servo1.max, servo2.max, servo3.mid, servo4.mid, servo5.max, servo6.max],
"y": [servo1.max, servo2.max, servo3.mid, servo4.max, servo5.max, servo6.max],
"z": [servo1.max, servo2.mid, servo3.mid, servo4.max, servo5.max, servo6.max],
" ": [servo1.mid, servo2.mid, servo3.mid, servo4.mid, servo5.mid, servo6.mid] # Space is all mid
}
def move_servos(servo_functions):
for func in servo_functions:
func()
sleep(1) # Adjust time for desired speed between letters
# Main execution loop
while True:
sentence = input("Enter a sentence: ").lower()
for char in sentence:
if char in braille_dict:
print(f"Displaying Braille for '{char}':")
move_servos(braille_dict[char])
else:
print(f"Character '{char}' not recognized. Skipping.")