Tricking The BeagleBone Into Outputting Video

[FlorianH] wanted to get video out working with his BeagleBone but he just couldn’t figure out how to make the kernel play ball. Then a bit of inspiration struck. He knew that if you plug in the official DVI cape (that’s the BeagleBone word for what you may know as a shield) the kernel automatically starts pumping out the signals he needs. So he figured out a way to spoof the cape and output video.

At boot time the kernel polls the I2C bus to see what’s connected. The DVI cape has an EEPROM which identifies it. Since the data from the EEPROM is available for download [FlorianH] grabbed the data he needed, then used an ATmega32 to stand in for the memory chip. When he got the chip talking to the BeagleBone he was able to detect the video sync signals on his scope and he knew he was in business.

Look closely at the breadboard on the right. We love that SIL breakout board for the ATmega32. Very prototype friendly!

Playing Video On An 8-bit Microcontroller

The LCD displays for Nokia phones have seen a ton of use as easily interfaced displays for Arduino or other microcontroller projects. Usually, these LCDs are only used for displaying a few lines of text, or if someone is feeling really fancy, a small graph. Shame, then that we don’t see more complicated and computationally difficult tasks like playing video very often. [Vinod] sent us his way of playing video on these small color screens, surprisingly using only an ATMega32 microprocessor.

The build started off by saving uncompressed image data on an SD card using code from a previous project. [Vinod] was able to write a slideshow program to go through the SD card one file at a time and displaying each image. From there, it was simply a matter of using a Python script to convert frames of an .AVI video file to an uncompressed image and display them at 15 frames/second.

Turning these videos into talkies was a bit of a problem, but after taking an uncompressed .WAV file and sending that to a PWM pin on the ATMega, [Vinod] managed to play sound alongside his video.

The result is the ability to play a video with sound at 15 frames a second and a 132 x 65 resolution. You can check out the demo video after the break.

Continue reading “Playing Video On An 8-bit Microcontroller”

[Sprite_tm] Connects An LCD To A Tiny Linux Board

One of [Sprite_tm]’s colleagues recently challenged him to connect a small LCD touch screen to a Raspberry Pi. Sadly, [Sprite_tm] has yet to take delivery of a Raspberry Pi, but he did manage to connect an LCD to a Linux board without video capabilities.

Because [Sprite_tm]’s display has a 16-bit parallel interface, and 16 GPIO pins are hard to come by on the Carambola Linux board, a few shift registers had to be brought into the build to make the LCD work. These shift registers are connected to the Carambola board via an SPI interface; a very simple way to connect all the LCD pins to the Linux board.

Of course, there’s no way for Linux to speak to the LCD without a kernel driver; [Sprite_tm] wrote a framebuffer driver so the LCD can be used as a console, an X session, or used by any other program that can write to a framebuffer device.

Like all good driver authors, [Sprite_tm] is giving away the patch to enable SPI-ified LCD panels on the Carambola along with the shift register schematic. With any luck we’ll also see the Raspi drivers when [Sprite_tm] takes delivery of his Raspberry Pi.

Tracking Small Changes In Video To See Someone’s Pulse

[Gil] sent in an awesome paper from this year’s SIGGRAPH. It’s a way to detect subtle changes in a video feed from [Hao-Yu Wu, et al.] at the MIT CS and AI lab and Quanta Research. To get a feel for what this paper is about, check out the video and come back when you pick your jaw off the floor.

The project works by detecting and amplifying very small changes in color occurring in several frames of video. From the demo, the researchers were able to detect someone’s pulse by noting the very minute changes in the color of their skin whenever their face is pumped full of blood.

A neat side effect of detecting small changes in color is the ability to also detect motion. In the video, there’s an example of detecting someone’s pulse by exaggerating the expanding artery in someone’s wrist, and the change in a shadow produced by the sun over the course of 15 seconds. This is Batman-level tech here, and we can’t wait to see an OpenCV library for this.

Even though the researchers have shown an extremely limited use case – just pulses and breathing – we’re seeing a whole lot of potential applications. We’d love to see an open source version of this tech turned into a lie detector for the upcoming US presidential debates, and the motion exaggeration is  perfect for showing why every sports referee is blind as a bat.

If you want to read the actual paper, here’s the PDF. As always, video after the break.

Continue reading “Tracking Small Changes In Video To See Someone’s Pulse”

Catch Neighborhood Speeders With Your Webcam

[John] is keeping the neighborhood safe by keeping an eye out for speeders. Well, he’s really keeping a webcam out for speeders. His technique doesn’t use radar or lasers. He’s processing webcam frames in Python to calculate speed.

It comes down to some basic image manipulation. He firsts gathers the images necessary to make the calculations by using a motion-detecting webcam program called YawCam. The images are analyzed to establish which parts have changed between frames; this gets rid of all the stationary objects. Now the frames can be compared to establish the distance in pixels. By calibrating the shot through measurements of the target area, this data can be directly converted into actual distance. It is then compared with the timestamps from each frame to arrive at speed. This can be used for vehicles on the street like we see above, or more whimsical measurements like pet turtle progress.

Building Your Own Eye In The Sky

His goal of one post a week for a year has past, but [Dino] keeps bringing his skills to bear on new projects. This time around he’s adding a wireless camera to an RC helicopter.

These radio controlled fliers (there are cheap ones that use IR control which is much less reliable) can be found for around $30-60. [Dino] already had a wireless camera to use, but adding it and a 9V battery is just too much weight to lift. After some testing he established that 2oz of payload is the upper limit. He began removing parts from the helicopter to achieve enough savings to lift both the camera and its battery. Along the way he discovered that removing the weights from the fly bar added a lot of maneuverability at the cost of a small stability loss.

Check out his project video embedded after the break. It’s not anywhere near the results of professional multi-rotor camera mounts, but it is cheap and fun!

Continue reading “Building Your Own Eye In The Sky”

Automatic Airplane Tracking; What Radar-systems Engineers Do For Kicks

[G. Eric Rogers] is a radar-systems engineer who just happens to live within sight of the aircraft approach path for the local airport. We wonder if that was one of the criteria when looking for a home? Naturally, he wanted his own home-based system for tracking the airplanes. He ended up repurposing a motorized telescope for this purpose.

The system does not actually use Radar for tracking. Instead, the camera strapped to the telescope is feeding a video experimenter shield. A tracking algorithm analyzes the video and extrapolates vector data. From there, the base unit can be controlled by the Arduino via an RS232 interface.

There are some bugs in the system right now. The Arduino has something of an ADHD problem, losing interesting and going to sleep in the middle of the tracking process. [Eric’s] workaround uses the RS232 board to periodically reset the Arduino, but he hopes to squash this bug soon.