Quality Assurance Through FPGA

[Claire Chen] and [Mark Zhao], students in [Bruce Land]’s ECE5760 class at Cornell, created a project aimed at the manufacturing sector: quality-checking manufactured products automatically by visually scanning a bunch of them and processing the pixels one at a time. Ordinarily, the time when the widget comes off the line is when you have to bring in actual people to inspect. This project uses morphological image processing to like dilation and erosion to look for flaws.

[Claire] and [Mark] created a simulated manufacturing line with a servo-driven belt that brings a series of Spree candies into the range of a camera, which scans them. The SoC with a Cyclone V FPGA and ARM Cortex-9 then processes the raw images to establish the object’s color, while running it through a couple of algorithms to look for defects. The FPGA tracks how many Sprees that have passed by as well as their color, maintaining a 99% success rate with a rate of 5-10 frames per second. The FPGA also looks at each blob of color as a collection of pixels, establishing connectivity to help to distinguish multiple Sprees touching each other.

Also be sure to check out [Claire] and [Mark]’s bike sonar project from a previous semester.

Continue reading “Quality Assurance Through FPGA”

THP Entry: OpenMV

OpenMV

The future is a scary place, full of robots, drones, and smart appliances with cameras and vision systems that will follow your dog, your child, or your face around, dutifully logging everything they see, reporting back to servers, and compiling huge datasets that can be sold to marketing companies. We’re not too keen on this view of the future, but the tech behind it – cheap cameras in everything – is very cool. [Ibrahim] is doing his part to bring about the age of cheap cameras that are easy to interface with his entry to The Hackaday Prize, the OpenMV.

The idea of a digital camera that is easy to interface with microcontrollers and single board computers isn’t new. There are serial JPEG cameras and the CMUcam5 Pixy, but they cost somewhere around $70. It’s not something you would design a product around. [Ibrahim]’s OpenMV costs about $15, and offers some interesting features like on-board image processing, a huge amount of RAM, and even a wireless expansion thanks to TI’s CC3000 WiFi module.

Currently, the OpenMV is capable of doing face detection at 25fps, color detection at better than 30fps, all thanks to the STM32F4 ARM micro running at 180MHz. There’s support for up to 64MB of RAM on board, with IO available through serial, SPI, I2C, USB 2.0, and WiFi.

It’s an interesting project on its own, but the really cool thing about this build is the price: if [Ibrahim] can actually produce these things for $15 a pop, he has an actual product on his hands, one that could easily be stuffed inside a drone or refrigerator for whatever cool – or nefarious – purposes you can imagine.


SpaceWrencherThe project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.

Automatically Sorting Beads by Color

beadsorter

[Tomas] wanted to try building something mechanical with electronic control, and ended up with this sorter that organizes beads into one of two containers based on color. He built most of the structure from popular interlocking plastic bricks, then added a stepper motor salvaged from an old scanner and two plastic discs.

The two discs sit on top of each other. The bottom one is stationary and has two holes drilled in it, with a container sitting below each hole. The top disc has a smaller, bead-sized hole and rotates from its starting position—where it collects one bead—to a camera for analysis. After the camera determines the color of the bead, the disc rotates again to position itself over one of the two sorting holes in the disc below, and the bead falls into the awaiting container. The device is controlled by the MSP430 microcontroller on a FITKit (translated), which is the development platform of choice for [Tomas’s] school.

[Tomas] originally attempted to determine the color of beads by using 3 different color LEDs and a light-dependent resistor, but switched to using a webcam and a Java program to capture images and calculating average hues. You can find more details and the source code on his site, but first see the short video below.

Continue reading “Automatically Sorting Beads by Color”

Color detection using an RGB LED

[Kyri] has made a simple circuit to do color detection using an RGB LED. Simply set the LED to the color you want to detect then wave the object over it. Another LED will light up if the object is the same color as the LED. The detection is done by a photo resistor. The theory is that an object will reflect more of the light that matches its surface color. She shows that this kind of detection could be useful for sorting in robotics.