The purpose of this project is to demonstrate the use of audio processing for the management of program states and visualization. By connecting and integrating multiple types of peripherals onto an FPGA board, applications that could benefit from low latency, such as audio processing, dynamic lighting, and responsiveness to environment, can be fully showcased. The potential for use along with current home automation systems, where multiple tasks need to be carried out simultaneously and quickly, is well demonstrated in this way.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Electret Microphone Amplifier - MAX4466 with Adjustable Gain
- MCP3008 - 8-Channel 10-Bit ADC With SPI Interface
- 5V 2A (2000mA) switching power supply
- 32X32 RGB LED Matrix Panel - 6mm Pitch
You need the following installed on your computer:
ISE Design Suite 14.2 and associated tools
MATLAB (if you want to load images over UART)
- Open ISE
- Navigate to the Enlightened Main Project folder
- Open the project (Enlightened.xise)
There exists one test file that can be run in ISim to verify the functionality of the SPI module. The test resides inside Test_SPI.v
To deploy on a Zedboard Zynq-7000 FPGA:
- Select Tools > iMPACT in the ISE window.
- If ISE asks if you want to regenerate files, select the No option.
- When iMPACT opens, double-click on Boundary Scan in the left panel.
- Right click in the blank space on the right and select Initialize Chain. You will see two processors.
- Assign the configuration (.bit) file for the xc7z020 by right clicking it and selecting Assign a New Configuration File.
- Select from within the project folder, 'final_loud_threshold.bit'.
- Right click the xc7z020 and select Program. The program will be loaded onto the FPGA.
- Enlightened Main Project - Completed system code
- Experimental - Includes implemented UART code for Zedboard and partial FFT code (colored spectrum)
- LED_Matrix_FPGA_MATLAB - MATLAB code for use with UART code
- LED_Matrix_FPGA_Nexys3 - Test code on Nexys3
- Microphone code (Not used) - Original microphone code
- Zedboard Reference - Reference Files
- ADAU1761Top.v - Main module, connects in multiple clock core for control of individual components
- animation.v - Modified module for displaying music animation
- Claps.v - Clap detection
- ClapTest.v
- Clock48MHZ_exdes.v
- Clock48MHZ_tb.v
- Clock48MHZ.v
- HighPassFilter.v - High Pass Filter
- LowPassFilter.v - Low Pass Filter
- Microphone.v
- MicrophoneTop.v
- OLED.v - OLED display control
- OLEDText.v - Font for being displayed on the OLED display
- ProcessingUnit.v
- SPI.v - SPI mdoule for use with OLED
- Test_OLED.v
- Test_SPI.v
- Testing.v
- bram.vhd - Image storage when data sent from UART
- display_control.vhd - Main control for 32 x 32 LED matrix
- The Signal Path - Driver for 32x32 LED Matrix by Adafruit
- Zedboard Audio - Audio Driver for Zedboard
- Peter Goulakos - Microphone (ADC), OLED, SPI, High-pass filter, Low-pass filter - peteg944
- Zack Webster - UART (Matlab) with matrix, matrix display driver, project integration - mzw23
- Luzhen Huang - Audio Codec, FFT, Frequency Spectrum Display - onespark123
- Runal Nair - FFT, Beat Detection Algorithm - RunalNair
- Christine Duong - Matrix display driver adaptation, animation, home mode, systolic array, integration of system
This project is licensed under the MIT License - see the LICENSE.md file for details