Interactive Menu

by yuaj in Circuits > Arduino

327 Views, 2 Favorites, 0 Comments

Interactive Menu

IMG_7205.jpg

A menu that a customer can touch and both see the total and hear it read to them.

Supplies

IMG_7192.jpg
IMG_7193.jpg
IMG_7191.jpg
  • Arduino Nano
  • Breadboard
  • Speaker
  • Jumper cables
  • Wood
  • Alligator clips
  • Copper tape
  • 2-in 1 usb and jumper cable charger
  • Adafruit MPR121

Code and Sound Files

Here are the provided code and sound files.

https://drive.google.com/file/d/1BDtw9rnZ4St6QwwS7_GOM6yz365z1B1m/view?usp=share_link

Laser Cut Out a Frame and Box

IMG_7197.jpg
IMG_7198.jpg
IMG_7199.jpg

Laser cut a frame and a box out. The frame has an out dimension of 11.5" x 15" while the box is 6"x6"x3". Furthermore, on one side of the box cut a hole for speakers and power cables. In the frame, cut out a 2.75" x .975" slot for the LCD display. Glue and assemble all pieces together. For the backing of the frame, I choose to use cardboard but a piece of wood will work just as well.

Assemble Electronics

IMG_7194.jpg
IMG_7195.jpg
IMG_7196.jpg

To assemble the electronics, for the LCD display, please follow this guide from ADAfruit as it comprehensively explains what pins go where.

https://learn.adafruit.com/character-lcds/python-circuitpython

The only change is instead of plugging the ground and 5v from the Arduino into the rail, use an external 5v charger as the nano does not supply enough power.

For the MPR121, the power goes to 3.3v, black goes to ground, yellow goes to A5 and blue goes to A4. Finally, for the speaker, the ground goes to the ground and clips to the base of the speaker. The yellow plugs into D3 and clips to the tip of the speaker.

Assemble Everything

IMG_7200.jpg
IMG_7202.jpg
IMG_7201.jpg

Once everything is created, assemble the piece by putting all electronics into the box and sliding a menu into place. The LCD display will show from the slot. Attach copper tape to the frame itself and use alligator clips to connect to the MPR121 so that touch points can change based on menu changes.

Demo

Interactive Menu