Real-Time FPGA Finger Detection

The student projects that come out of [Bruce Land]’s microcontroller- and FPGA-programming classes feature here a lot, simple because some of them are amazing, but also because each project is a building-block for another. And we hope they will be for you.

This time around, [Junyin Chen] and [Ziqi Yang] created a five-in-a-row video game that is controlled by a pointing finger. A camera, pointed at the screen, films the player’s hand and passes the VGA data to an FPGA. And that’s where things get interesting.

An algorithm in the FPGA detects skin color and, after a few opening and closing operations, comes up with a pretty good outline of the hand. The fingertip localization is pretty clever. They sum up the number of detected pixels in the X- and Y-axis, and since a point finger is long and thin, locate the tip because it’s going to have a maximum value in one axis and a minimum along the other. Sweet (although the player has to wear long sleeves to make it work perfectly).

How does the camera not pick up the game going on in the background? They use a black-and-white game field that the skin-color detection simply ignores. And the game itself runs in a Nios embedded processor in the FPGA. There’s a lot more detail on the project page, and of course there’s a demo video below.

We love to follow along with Prof. Land‘s classes. His video series is invaluable, and the course projects have been an inspiration.

Continue reading “Real-Time FPGA Finger Detection”

Microcontroller Lectures By Bruce Land

[Bruce Land] is no stranger to Hackaday as you can see from his Hackaday.io profile, if you aren’t familiar with his work [Bruce Land] is a Senior Lecturer at Cornell University. One of the courses he teaches: Digital Systems Design Using Microcontrollers (ECE4760) was recorded in 2012 and again in 2015 and the videos are available on YouTube.

AVR to PIC32

[Bruce Land]s previous set of ECE4760 lectures (2012) used an Atmel ATmega1284 AVR Microcontroller for the laboratory portion of the course. This means the lectures are also based on the AVR and if you haven’t watched them through a few times you should do. The recently updated set of lectures is based on the Microchip PIC32, more specifically the Microstick II.

Open Curriculum

You can follow the ECE4760 rabbit hole as far as you want with all the available content provided by [Bruce Land] on his ECE4760 course webpage. You can watch the ECE4760 lectures on YouTube, try your hand at the homework assignments, and work through the labs at your own pace.

New Lectures = New Shirts

One area that [Bruce Land] is unmatched and arguably uncontested is his shirt collection, we are continuously impressed with these original works and wish they were available for purchase (wink/hint c’mon [Bruce] throw us a bone!). If you don’t know why the rest of us aren’t able to obtain the wonderful shirts [Bruce Land] wears you clearly aren’t subscribed to [Bruce Land]s YouTube channel, you should rectify that wrong and log some ECE4760 lecture hours starting with the video after the break.

Lazy Labor Day Educational Time. Watch Cornell’s Microcontroller Courses.

 

C’mon, you know you’re not really going to do much today. You might as well spend that time learning some skills instead of watching funny cats. The Cornell ECE lectures on microcontrollers (ECE 4760 and ECE5760), taught by [Bruce Land], are available online for free.

Not only do you get to enjoy these two courses, but there are videos available showing off several different categories of student projects as well.

Continue reading “Lazy Labor Day Educational Time. Watch Cornell’s Microcontroller Courses.”