Skip to content
  • List of Courses
  • About
  • Contact
  • Cornell ECE
  • Cornell ECE Courses
From the School of Electrical and Computer Engineering at Cornell University

Cornell ECE Open Courseware

ECE 5760 Projects and Labs

ECE 5760 Contents

Syllabus and Course Details
Lecture Notes and Handouts
Projects and Labs

Note: Homework and Exams are not available for this course.

Labs

Note: Lab solutions are not available for this course.

  • Lab 1: Cellular automaton on HPS and VGA [PDF]
  • Lab 2: Hardware ODE solver with HPS control [PDF]
  • Lab 3: Multiprocessor PDE realtime synthesis of a nonlinear drum [PDF]
  • Lab 4: Mandelbrot Set [PDF]
  • Lab 5: Final Project [PDF]

Example Project Videos

Past FPGA/Verilog student projects from Lab 5 can be found here.

  • LED 64×64 matrix audio visualizer
  • Hardware ODE solver and ARM9 controller
  • Rubik’s cube solver on FPGA
  • Mandelbrot FFT color animation and zoom
  • FPGA rock/paper/scissors
  • Real time video anonymizer
  • Table Tennis Tracker
  • Bruce in a Box
  • Augmented Reality Ball Game
  • Upper body motion tracker
  • Falling sand automaton on FPGA
  • Real-time cartoonifier on FPGA
  • Virtual paint on FPGA
A DE2-115 FPGA development board
Pose: An Arm Tracking System We created an arm mounted sensor array which interfaces with a PIC32 unit to produce odometry data for arm motion tracking. We were all interested in wearable technology, virtual reality, and sensor fusion, so we designed a project that drew from all of these fields. We wanted to create a device that would allow for an immersive martial arts video gaming experience, or evaluation of form and posture for fitness applications. Body pose tracking has many applications within gaming, healthcare, and other industries. A low cost, effective solution to this problem could easily disrupt the existing high end systems that are used for motion tracking, so the opportunity for either commercialization or publication also appeals to us. We used Inertial Measurement Units (IMUs) made of gyroscope-accelerometer and magnetometer-accelerometer sensor units along three points of the arm to measure accelerations, angular velocities, and magnetic field vectors. While the sensors gather data on three axes, the PIC32 retrieves their register contents via I2C communication. The PIC32 then communicates sensor readings over serial to a PC which integrates the readings, applys filtering algorithms to produce 3D positions and orientations. These are then used as inputs into a virtual reality application.
An FPGA-Based Robotic Rubik's Cube Solver We tasked ourselves with designing a mechanical Rubik’s cube solver. The mechanical arms rotate the cube to show each cube face of the cube to the camera. After each face is scanned, the cube faces are passed into the Rubik’s cube solving algorithm. The algorithm computes the moves that will be needed to solve the cube using a Nios II processor. The instructions are then fed to the FPGA, which in turn sends PWM signals to the servos to rotate the cube accordingly in order to solve the cube
Hand Motion Controlled Tetris This final project for ECE 5760 takes a very well known and classic game and puts a twist on it. Tetris was released in 1984 and since then has become an iconic game, garnering many reproductions and modifications to the original version. Our version of Tetris aims to produce the original Tetris game using a DE2-115 FPGA from Altera. Using VGA as an output and a camera that is able to detect skin tone, the user can play the game using motions that are sensed from their hand. There are four main regions of the screen. These regions control whether the block moves right, left, rotates, or moves down twice as fast. By filtering the video stream and looking for specific types of color in the YUV color space, the hardware recognizes when a user’s hand goes into one of the four sections and sends a signal to the game, instructing it what to do with the block. The game includes features that allow a player to move a piece left/right or rotate, count down time until the game ends, and also keep track of the score for the player. A player gets 10 points for each line that is completed. There are 7 different types of blocks that are chosen at random (with different colors) that drop down from the top of the screen. The games allows flexibility to switch between hand motion recognition or buttons on the FPGA to navigate the blocks and option for slow and fast speed of the blocks dropping down.

Footer Content

Cornell Engineering Cornell University School of Electrical and Computer Engineering

Copyright © 2017 Cornell University

Web Accessibility Assistance