Interactive Wall

Motivation

 
  • Design a piece of 70" x 120" digital interactive wall art with a high level of detail and finish quality

  • Explore novel methods for human-computer interaction

  • Practice new firmware design techniques, specifically:

    • The challenge of synchronizing a mesh of microcontrollers each interfaced to a plurality of sensors

    • Use an ALS to control hue/luminosity of LEDs based on ambient conditions

    • Create a scalable design for both HW and SW

 

 Panelized Design

  • Each PCB is 10" x 10" with board-to-board connections

  • Grid of 7 columns by 12 rows (84 total interconnected PCBs)

  • PCBs are mounted behind frosted white-translucent polycarbonate

Hardware Block Diagram

  • Sensors

    • 1x Broadcom APDS-9999 Digital Proximity and RGB ALS Sensor [i2c]

    • 1x ST VL53L1 Time of Flight Sensor [i2c]

    • 9x Capacitive Touch Buttons [analog]

    • 1x Knowles SPU0410LR5H-QB Microphone [analog]

  • Outputs

    • 16x Reverse Mount SK6812 RGB LED [UART]

  • Communication

    • MCU to MCU via CAN bus

    • LEDs can be controlled in central or in distributed configuration

    • 1x XBee Bluetooth will be used to control panel once it is installed [UART]

  • MCU / Memory

    • 1x STM32F072 Microcontroller

    • 1x Winbond W25Q128JV [SPI]

 

Firmware Design Overview

  • main.cpp

    • Sleep state until interrupt from ALS/ToF

    • Wake state services sensors via round robin polling

    • Sensors added/removed from service queue based on activity levels in room

    • Pertinent sensor data shared to CAN bus after filtering in sense.h

    • LEDs updated either due to local activity or data received over CAN bus

  • sense.h

    • Manages the reading of sensor data

    • Determines if LEDs should be triggered due to interaction

  • ALS.h / CAP.h / ToF.h / Mic.h

    • Device specific drivers

  • draw.h / LED.h

    • Controls LED animation routines

    • Device specific driver for LED

  • can_comm.h / bt_comm.h

    • Provide bidirectional endpoints to CAN and Bluetooth

Previous
Previous

Titanic's End (2022)

Next
Next

TheoryBoard (2019)