If you’re wondering, Cornell is just like every other university in one respect: the grad students are starving, and wherever there is free food, students circle like vultures. The engineering and CS departments have a mailing list alerting people to free food, but a more automated solution was desired. The first web cam ever was used to notify grad students if a coffee pot was full, but Cornell shot down this idea on the basis of privacy concerns.
It’s final project time for [Bruce Land]’s courses, and a project by [Ferian Chen] and [Sean Ogden] solved the privacy concerns of a webcam in a kitchen. It’s a real-time video anonymizer, that can also be used to livestream ransom demands if you’re so inclined.
There are actually two parts to this project. The first part pixellates faces and any other skin tone, just like you’d see on a true crime TV show. This part of the project was based on an FPGA-based face detection project. ‘Skin’ pixels are defined as having a difference between the red and green channels within a certain range. With the right lighting, it works very well.
You can identify someone with their voice, too, so [Ferian] and [Sean] also made efforts to disguise hungry student’s voices as well. This was done with a phase vocoder that changes the pitch of someone’s voice, but not the spectral characteristics. The result should have been an audio channel that can’t be pinned down to one person, but is still recognizable as speech. The audio processing didn’t work as intended, with noticeable artifacts in the output. There’s still some work to be done, and now that [Ferian] and [Sean] aren’t checking the kitchen every ten minutes, the might have the time to do it.
It’s graduation time, and you know what that means! Another great round of senior design projects doing things that are usually pretty unique. [Bruce Land] sent in a great one from Cornell where the students have been working on a project that uses FPGAs and a few video cameras to keep score of a ping-pong game.
The system works by processing a live NTSC feed of a ping pong game. The ball is painted a particular color to aid in detection, and the FPGAs that process the video can keep track of where the net is, how many times the ball bounces, and if the ball has been hit by a player. With all of this information, the system can keep track of the score of the game, which is displayed on a monitor near the table. Now, the players are free to concentrate on their game and don’t have to worry about keeping score!
This is a pretty impressive demonstration of FPGAs and video processing that has applications beyond just ping pong. What would you use it for? It’s always interesting to see what students are working on; core concepts from these experiments tend to make their way into their professional lives later on. Maybe they’ll even take this project to the next level and build an actual real, working ping pong robot to work with their scoring system!
Continue reading “FPGAs Keep Track of your Ping Pong Game”
When the apocalypse hits and your power goes out, how are you going to keep yourself entertained? If you are lucky enough to be friends with [stopsendingmejunk], you can just hop on his pedal powered cinema and watch whatever movies you have stored on digital media.
This unit is built around an ordinary bicycle. A friction drive is used to generate the electricity via pedal power. In order to accomplish this, a custom steel stand was fabricated together in order to lift the rear wheel off the ground. A 24V 200W motor is used as the generator. [stopsendingmejunk] manufactured a custom spindle for the motor shaft. The spindle is made from a skateboard wheel. The motor is mounted in such a way that it can be lowered to rub the skateboard wheel against the bicycle wheel. This way when the rear bicycle wheel spins, it also rotates the motor. The motor can be lifted out of the way when cruising around if desired.
The power generated from the motor first runs through a regulator. This takes the variable voltage from the generator and smooths it out to a nice even power signal. This regulated power then charges two Goal Zero Sherpa 100 lithium batteries. The batteries allow for a buffer to allow the movie to continue playing while changing riders. The batteries then power the Optomo 750 projector as well as a set of speakers.
Now it’s not uncommon to have a desktop and a laptop at a battlestation with tablets waiting in the wings. Add in a few Raspis, consoles, and various cheap computers, and it’s pretty easy to have an enormous number of machines and monitors on a desk. Traditionally, a KVM switch would be the solution to this, sharing a keyboard, mouse, and monitor with many different boxes, but this is an ugly solution. [frankstripod] has a device that fixes that with some interesting software and a few USB hacks.
[frankstripod] is in love with a program called Synergy this program combines the keyboard, mouse, and display of several computers over a network so you’ll only ever have to use one keyboard and mouse; it’s as simple as dragging your mouse from one computer to the other. There are a few limitations, though: keyboards don’t work until the OS has loaded (no BIOS access, then), it doesn’t work if the network is down, and setup can be complicated. This project aims to replace the ‘server’ part of a Synergy setup with a small, networkable KVM.
Right now the plan is to use a small embedded board running Linux to read a USB keyboard and switch the output between several computers. A few scripts detect the mouse moving from one screen to another, and a microcontroller switches USB output between each computer. If it sounds weird, you’re right, but it does work: [frank]’s 2014 Hackaday Prize project was a mouse that worked with two computers at once.
The Tymkrs are hard at work setting up their home studio, and since they’ll be shooting a few videos, they need some lights. The lights themselves aren’t very special; for YouTube videos, anything bright enough will work. The real challenge is making a mount and putting them in the right place, With a shop full of tools, making some video lights isn’t that hard and easily translates into a neat video project.
The lights began their lives as large fluorescent fixtures, the kind that would normally house long fluorescent tubes. The Tymkrs cut the metal reflector of this fixture in half, capped the ends with wood, and installed normal incandescent sockets in one end.
The inside of this reflector was coated with a reflective material, and a beautiful rice paper diffuser was glued on. The Tymkrs attached a metal bracket to these lights and screwed the bracket to the ceiling. There’s enough friction to keep the lights in one spot, but there’s also enough play in the joints to position them at just the right angle.
Continue reading “Old Fluorescent Fixtures Turned Into Fill Lights”
It’s been a few years since the RTL-SDR TV Tuner dongle blew up the world of amateur radio; it’s a simple device that listens in on digital television frequencies, but it’s one of those tools that’s just capable enough to have a lot of fun. Now, we have a transmitting dongle. It’s only being used to transmit live HDTV from a Pi, but that in itself is very interesting and opens up a lot of possible builds.
The key piece of hardware for this build is a UT-100C DVB-T modulator. It’s a $169 USB dongle capable of transmitting between 1200-1350 MHz, and with a special edition of OpenCaster it’s possible to transmit over-the-air TV. There’s no amplifier, so you won’t be sending TV very far, but it does work.
On the Raspberry Pi side of the build, the standard camera captures H.264 video with raspivid, which is converted to a DVB compliant stream using ffmpeg. These are well-worn bits of software in the Raspberry Pi world, and OpenCaster takes care of the rest.
While this seems like the perfect solution to completely overbuilt quadcopters, keep in mind transmitting on the 23cm band does require a license. Transmitting in the UHF TV bands is a bad idea.
Generating video signals with a microcontroller or old CPU is hard if you haven’t noticed. If you’re driving even a simple NTSC or PAL display at one bit per pixel, you’re looking at a minimum of around 64kB of RAM being used as a frame buffer. Most microcontrollers don’t have this much RAM on the chip, and the AVR video builds we’ve seen either have terrible color or relatively low resolution.
Here’s something interesting that solves the memory problem and also generates analog video signals. Yes, such a chip exists, and apparently this has been in the works for a very long time. It’s the VLSI VS23s010C-L, and it has 131,072 bytes of SRAM and a video display controller that supports NTSC and PAL output.
There are two chips in the family, one being an LQFP48 package, the other a tiny SMD 8-pin package. From what I can tell from the datasheets, the 8-pin version is only an SPI-based SRAM chip. The larger LQFP package is where the action is, with parallel and SPI interfaces to the memory, an input for the colorburst crystal, and composite video and sync out.
After looking at the datasheet (PDF), it looks like generating video with this chip is simply a matter of connecting an RCA jack, throwing a few commands to the chip over SPI, and pushing bits into the SRAM. That’s it. You’re not getting hardware acceleration, you’re going to have to draw everything pixel by pixel, but this looks like the easiest way to generate relatively high-resolution video with a single part.
Thanks [antibyte] for the tip on this one.