A Switch Accessible Menu Board for the Boston College Campus School Coffee Shop
145 Views, 2 Favorites, 0 Comments
A Switch Accessible Menu Board for the Boston College Campus School Coffee Shop
Creators: Kristen Chung and Mary LaRovere
For our Assistive Technology project, we made a switch accessible menu board for the Campus School Coffee Shop that reads the menu options when the switch is pressed. Additionally, there is a greeting of either “Good morning” or “Good afternoon” depending on the time of the day as well as what day of the week it is.
Supplies
Menu board
- Ipad installed with Procreate
- Adobe Illustrator
- Laser cutter
- ⅛” clear acrylic
- ⅛” birch wood
- Paint
- Clear gel Gorilla super glue (I have found this works best for gluing painted acrylic together!)
Hardware
- Raspberry Pi
- Power cord for the Raspberry Pi
- Jelly Bean Switch
- 2 alligator clips
- 2 jumper wires (female end and other end it jumper)
Draw Your Illustrations for the Menu Board
First begin by creating a rough sketch of your illustrations. I used the HB pencil brush in red for my preliminary drawing. Create a new layer for each drawing so that it is easier to manipulate your illustrations in whatever way you would like for the final menu board. Create another new layer on top of each illustration in order to complete the inking process. I used the technical pen brush in black (which is a necessary color for laser cutting engraving.) Then hide your sketch layers by unchecking the checkbox in the layer tab. Also uncheck the background color layer so there is no background, then export your illustrations as a .png file.
Vectorize Your Illustrations in Adobe Illustrator
Procreate only works in pixels, and not vectors, which are needed for engraving. Therefore, you will have to vectorize your image in Adobe Illustrator. There are many online tutorials for this process, and I found this website to be helpful. I imported my images in RGB color mode, selected image trace and then high fidelity photo. I then played around with my images to make sure that all remained was the outline I wanted. Due to the illustrations being slightly more detailed, I made sure that both my fill and stroke were in black (0,0,0). This step is very dependent on what your illustrations are and what you would like the final product to look like, so some patience in trial and error is required here.
Design Your Menu Board
There are many different options here to create very unique and different menu boards. We decided to use arches for our design, cutting out three total pieces: rounded arch, arch with slits, and rounded rectangle. The latter two pieces were mainly for decoration, while the rounded arch is where we placed the illustrations and menu offerings. We also laser cut two additional pieces- the word “menu” and the Campus School logo. These add a 3-dimensional aspect to the menu board to help things come together. We purchased the template of our design on Etsy and can be found here.
Laser Cut Menu Board and Stand
Resize the menu board and stand to your liking and laser cut them onto acrylic and birch wood respectively. Be sure to do test cuts on cardboard first!
Generate and Import Audio Files
To make personalized audio files for this project, we used a voice generator at this link. You can change the voice and speed of the words that you type in to make it more personalized. Once we got all the audio files we wanted for the board, we had to convert these mp3 files to wav files using Audacity. This is a user-friendly interface that allows you to easily convert these files and you can download it here. Once these are converted into wav files, copy them over to a folder in your Raspberry Pi so that they can be used by the code.
Code!
#Assistive Touch Project - Switch Accessible Menu Board
#Authors: Kristen Chung and Mary LaRovere
import subprocess
import time
import board
import digitalio
import pygame
from datetime import datetime
from adafruit_debouncer import Debouncer
# set up door sensor / magnetic switch
button_input = digitalio.DigitalInOut(board.D23)
button_input.switch_to_input(pull=digitalio.Pull.UP)
button = Debouncer(button_input)
# get and print the local time, just so you can be sure your Pi's timezone is set
t = time.localtime()
current_time = time.strftime("%H:%M:%S", t)
print('current time:' + current_time)
dt = datetime.now()
print('Datetime is:', dt)
print('Weekday is:', dt.isoweekday())
#sound file setup
path = "/home/pi/menu_sounds/"
#pygame setup
pygame.mixer.init()
music = pygame.mixer.music
speaker_volume = 1
pygame.mixer.music.set_volume(speaker_volume)
def play_sound(file):
pygame.mixer.music.load(path + file)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
def dayofweek():
if dt.isoweekday() == 1: #Monday
print("Today is Monday")
play_sound("today-is.wav")
play_sound("monday.wav")
if dt.isoweekday() == 2: #Tuesday
print("Today is Tuesday")
play_sound("today-is.wav")
play_sound("tuesday.wav")
if dt.isoweekday() == 3: #Wednesday
print("Today is Wednesday")
play_sound("today-is.wav")
play_sound("wednesday.wav")
if dt.isoweekday() == 4: #Thursday
print("Today is Thursday")
play_sound("today-is.wav")
play_sound("thursday.wav")
if dt.isoweekday() == 5: #Friday
print("Today is Friday")
play_sound("today-is.wav")
play_sound("friday.wav")
if dt.isoweekday() == 6: #Saturday
print("Today is Saturday")
play_sound("today-is.wav")
play_sound("saturday.wav")
if dt.isoweekday() == 7: #Sunday
print("Today is Sunday")
play_sound("today-is.wav")
play_sound("sunday.wav")
while True:
button.update() #checks debounced button's state
if button.fell: #if button is pressed
if music.get_busy(): #if music is already playing, stop
music.stop()
else: #else play the sound
if current_time > "12": #Afternoon
print("Good afternoon")
#play sound saying Good afternoon
play_sound("good-afternoon.wav")
dayofweek()
play_sound("menu.wav")
else: #Morning
print("Good morning")
#play sound saying Good morning
play_sound("good-morning.wav")
dayofweek()
play_sound("menu.wav")
Paint and Decorate
Paint and Decorate your menu board however you would like to. For ours, we painted ours in the colors red, yellow, and black as these are colors with high contrast for the visually impaired.
Assemble
Assemble the menu board to your liking, inserting the panels into their respective slits. Glue them into the slits for a better fit. Place the speaker into the hole cutout in the box and tape it to the inside of the box for a more secure fit. Plug the speaker into the audio jack in the Raspberry Pi. To wire the switch, use two alligator clips, one at the base of the switch port and one at the tip of it. The base will connect to Ground on the Raspberry Pi and the tip will connect to wiring pin 4. Turn everything on, plug your Raspberry Pi into a power source, and run your code. Congrats, you made your switch accessible menu board!