A Switch Accessible Menu Board for the Boston College Campus School Coffee Shop

by kchung24 in Craft > Art

145 Views, 2 Favorites, 0 Comments

A Switch Accessible Menu Board for the Boston College Campus School Coffee Shop

IMG_9777.png
Switch Accessible Menu Board - Assistive Tech

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 

Hardware

Draw Your Illustrations for the Menu Board

Menu Illustrations (draft).png

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

IMG_4173.png

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

69042873744__2E6D1335-D98E-4BBA-B64E-835C25A3F40C.png
69042976140__2961EDB3-1122-4A02-8027-1C7B77F542C3.png
IMG_4187.png
IMG_4188.png
IMG_4249.png

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

IMG_4257 (1).png
IMG_9777.png

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!