This is a repository for University of Toronto Course ECE 532 Digital System Design (An old course link here). Official name of the project is A Wirelessly Controlled Home Automation System
. It is a system built on Nexys Video Board. This system runs a primitive audio recognition system and controls various PMODs supplied by Digilent.
Here is a short video demonstration of our project.
We used Xilinx WebPACK (download page here).
Our Python code work with Python3. You should run our Python code on Linux or Mac to accomodate hardcoded file path. For Windows systems, we highly recommend using Anaconda for Python 3.6.
We recommend coding C and Python with Visual Studio Code, a lightweight cross-platform editor.
Optimal setup for our project is a Windows 10 machine running Ubuntu 16.04 LTS virtual machine with VMware Workstation Player for best driver support with Nexys Video Board.
In this repository, you will find all components of our project. We have created tutorials for these projects as well. These tutorials describe how our project should be used and how to setup individual IPs.
- Vivado project for our complete audio recognition hardware and software setup (here)
- Tutorial here
- Vivado project for various PMOD contollers (Server, relay, ultrasonic and Bluetooth) (here)
- Tutorial here
- Python project for a simple audio matching algorithm (here)
- Tutorial here
- C translation of the Python project managed by Visual Studio (here)
- Other Python utilities that we have used (here)
DesignTree is a document outlining all of our design components. You can also find a formal report for the project.
We are Jingbo, Peter and Wenxuan from Division of Engineering Science at University of Toronto.
Naif was TA for our project and Professor Paul Chow was our instructor.
Our PMOD modules rely on many Digilent example projects. A generic tutorial of Digilent's PMOD can be found here.
Our audio recognition system is based on research works, an example of which is Voice Recognition Algorithms using Mel Frequency Cepstral Coefficient (MFCC) and Dynamic Time Warping (DTW) Techniques.
Digilent libraries do not come with any license. We will add license if Digilent chooses to use distribution license in the future.
We do not intend to use a license for our project either. Contents that we have created, including source code, tutorial and documentation, shoud be treated as is. We do not assume responsibility or liability for the use or distribution of contents of this repository.