Self Powered Camera Powers Itself

Cameras sense light to create images, and solar cells turn light into energy. Why not mash the two together and create a self-powered camera?

The Computer Vision Laboratory at Columbia built this unique camera, which harvests power from its photodiode sensors. These photodiodes also act as an array of pixels that can recover an image. The result is a black and white video camera that needs no external power supply.

The energy harvester circuit charges up a supercap that provides power to the system. The frame rate of the camera is limited by the energy that can be harvested: higher frame rates require more juice. For this reason, the team developed an algorithm that varies the frame rate based on available energy.

The MC13226V microcontroller that was used for this build features an internal 2.4 GHz radio. The group mentions wireless functionality as a possibility feature in the future, which would make for a completely untethered, battery free camera.

A Raspberry Pi Garage Door Opener

We can never seem to get enough garage door hacks around here. [Tanner’s] project is the most recent entry into this category. He’s managed to hook up a Raspberry Pi to his garage door opener. This greatly extends his range to… well anywhere with an Internet connection.

His hack is relatively simple. He started with the garage door opener remote. He removed the momentary switch that was normally used to active the door. He bridged the electrical connection to create a circuit that was always closed. This meant that as long as the remote had power, the switch would be activated. Now all [Tanner] had to do was remove the battery and hook up the power connectors to his Raspberry Pi. Since the remote works on 3.3V and draws little current, he is able to power the remote directly from the Pi. The Pi just has to turn its pin high momentarily to activate the remote.

The ability to toggle the state of your garage door from anywhere in the world also comes with paranoia. [Tanner] wanted to be able to tell if the door is up, down, or stopped somewhere in the middle while he was away from home. He also wanted to use as little equipment as possible. Since he already had an IP camera in the garage, he decided to use computer vision to do the detection.

He printed off two large, black shapes onto ordinary white computer paper. One was taped to the top of the door and one to the bottom. A custom script runs on the Pi that grabs the latest image from the camera and uses OpenCV to detect the shapes. If both shapes are visible, then the script can assume the door is closed. Otherwise, it’s likely open. This makes it easier for [Tanner] to know if the door is opened or closed without having to check the camera himself.

Can’t get enough garage door hacks? Try these on for size. Continue reading “A Raspberry Pi Garage Door Opener”

A DIY Pick and Place You Can Build Right Now

There have been quite a few DIY pick and place projects popping up recently, but most of them are limited to conceptual designs or just partially working prototypes. [Juha] wrote in to let us know about his project, LitePlacer, which is a fully functional DIY pick and place machine with working vision that can actually import BOMs and place parts as small as 0402 with pretty good accuracy.

LitePlacer UIWhile some other DIY pick and place setups we’ve featured use fairly exotic setups like delta bots, this machine is built around typical grooved bearings and extruded aluminum. The end effector includes a rotating vacuum tip and a camera mounted alongside the tip. The camera provides feedback for locating fiducials and for finding the position of parts. Instead of using feeders for his machine, [Juha] opted to pick parts directly from pieces of cut tape. While this might be inconvenient if you’re placing large quantities of a single part, it helps keep the design simple.

The software that runs the machine is pretty sophisticated. After a bit of configuration it’s able to import a BOM with X/Y information and start placing within seconds. It also uses the camera to calibrate the needle, measure the PCB  using the fiducials, and pinpoint the location of cut tape sections.

If you want to build your own machine, [Juha] published detailed instructions that walk you through the entire assembly process. He’s also selling a kit of parts if you don’t want to source everything yourself. Check out the video after the break to see the machine import a BOM and place some parts (all the way down to 0402).

Continue reading “A DIY Pick and Place You Can Build Right Now”

A Camera With Computer Vision

Computer vision is a tricky thing to stuff into a small package, but last year’s Hackaday Prize had an especially interesting project make it into the 50 top finalists. The OpenMV is a tiny camera module with a powerful microcontroller that will detect faces, take a time-lapse, record movies, and detect specific markers or colors. Like a lot of the great projects featured in last year’s Hackaday Prize, this one made it to Kickstarter and is, by far, the least expensive computer vision module available today.

[Ibrahim] began this project more than a year ago when he realized simple serial JPEG cameras were ludicrously expensive, and adding even simple machine vision tasks made the price climb even higher. Camera modules that go in low-end cell phones don’t cost that much, and high-power ARM microcontrollers are pretty cheap as well. The OpenMV project started, and now [Ibrahim] has a small board with a camera that runs Python and can be a master or slave to Arduinos or any other microcontroller board.

The design of the OpenMV is extraordinarily clever, able to serve as a simple camera module for a microcontroller project, or something that can do image processing and toggle a few pins according to logic at the same time. If you’ve ever wanted a camera that can track an object and control a pan/tilt servo setup by itself, here you go. It’s a very interesting accessory for robotics platforms, and surely something that could be used in a wide variety of projects.

Robot Vision: Detecting Obstacles with FPGAs and line lasers

Somewhere down the road, you’ll find that your almighty autonomous robot chassis is going to need some sensor feedback. Otherwise, that next small step down the road may end with a blind leap off the coffee table. The first low-cost sensors we might throw at this problem would be sonars or IR rangefinders, but there’s a problem: those sensors only really provide distance data back from the pinpoint view directly ahead of them.

Rest assured, [Jonathan] wrote in to let us know that he’s got you covered. Combining a line laser, camera, and an FPGA, he’s able to detect obstacles that fall within the field of view of the camera and laser.

If you thought writing algorithms in software is tricky, wait till to you try hardware! (We know: division sucks!) [Jonathan] knows no fear though; he’s performing gradient computation on the FPGA directly to detect the laser in the camera image at a wicked 30 frames-per-second. Why roll up your sleeves and take the hardware route, you might ask? If we took a CPU-based approach at the tiny embedded-robot scale, Jonathan estimates a mere 10 frames-per-second. With an FPGA, we’re able to process images about as fast as they’re received.

Jonathan is using the Logi Board, a Kickstarter success we’ve visited in the past, and all of his code is up on the Githubs. If you crack it open, you’ll also find that many of his modules are Wishbone compliant, so developing your own projects with just some of these parts has been made much easier than trying to rip out useful features from a sea of hairy logic.

With computer-vision hardware keeping such a low profile in the hobbyist community, we’re excited to hear more about [Jonathan’s] FPGA-based robotics endeavors.

Continue reading “Robot Vision: Detecting Obstacles with FPGAs and line lasers”

DIY Pick and Place just getting under way


It’s not totally fair to say that this project is just getting under way. But the truth is it neither picks nor places so there’s a long road still to travel. But we’re impressed with the demonstrations of what [Daniel Amesberger] has achieved thus far. Using the simplest of CNC mills he’s finished the frame and gantry for the device. You can see some of the parts on the left after going though an anodizing process that leaves them with that slick black finish.

The demo video shows off the device by driving it with a joystick. It’s fast, which gives us hope that this will rival some of the low-end commercial pick and place machines. He’s already been working on the software, which runs on a mini ITX form factor computer. This includes a gerber file interpreter and some computer vision for a visual check on part placement. He hasn’t gotten around to building the parts feeders but we’ll keep you updated as we hear back from him.

Continue reading “DIY Pick and Place just getting under way”

Flocking behavior using Mindstorm robots


Do you ever wonder why geese always fly together in a V-shape? We’re not asking about the fact that it makes the work load much less for all but the lead goose. We mean how is it that all geese know to form up like this? It’s is the act of flocking, and it’s long been a subject of fascination when it comes to robotics. [Scott Snowden] researched the topic while working on his degree a few years ago. Above you can see the demonstration of the behavior using LEGO Mindstorm robots. That’s certainly interesting and you’ll want to check out the video after the break. But his offering doesn’t end with the demo. He also posted a huge article about his work that will provide days of fascinating reading.

We can’t begin to scratch the surface of all that he covers, but we can give you a quick primer on his Mindstorm (NXT) setup. He uses these three bots along with a central brick (the computer part of the NXT hardware) which communicates with them. This lets him use a wide range of powerful tools like MatLab and Processing to recognize each robot with a top-down camera, passing it data based on info harvested with computer vision. From there it’s a wild ride of modeling the behavior as a set of algorithms.

Continue reading “Flocking behavior using Mindstorm robots”