When the time comes to add an object recognizer to your hack, all you need do is choose from many of the available ones and retrain it for your particular objects of interest. To help with that, [Edje Electronics] has put together a step-by-step guide to using TensorFlow to retrain Google’s Inception object recognizer. He does it for Windows 10 since there’s already plenty of documentation out there for Linux OSes.
You’re not limited to just Inception though. Inception is one of a few which are very accurate but it can take a few seconds to process each image and so is more suited to a fast laptop or desktop machine. MobileNet is an example of one which is less accurate but recognizes faster and so is better for a Raspberry Pi or mobile phone.
You’ll need a few hundred images of your objects. These can either be scraped from an online source like Google’s images or you get take your own photos. If you use the latter approach, make sure to shoot from various angles, rotations, and with different lighting conditions. Fill your background with various other things and even have some things partially obscuring your objects. This may sound like a long, tedious task, but it can be done efficiently. [Edje Electronics] is working on recognizing playing cards so he first sprinkled them around his living room, added some clutter, and walked around, taking pictures using his phone. Once uploaded, some easy-to-use software helped him to label them all in around an hour. Note that he trained on 24 different objects, which are the number of different cards you get in a pinochle deck.
You’ll need to install a lot of software and do some configuration, but he walks you through that too. Ideally, you’d use a computer with a GPU but that’s optional, the difference being between three or twenty-four hours of training. Be sure to both watch his video below and follow the steps on his Github page. The Github page is kept most up-to-date but his video does a more thorough job of walking you through using the software, such as how to use the image labeling program.
Why is he training an object recognizer on playing cards? This is just one more step in making a blackjack playing robot. Previously he’d done an impressive job using OpenCV, even though the algorithm handled non-overlapping cards only. Google’s Inception, however, recognizes partially obscured cards. This is a very interesting project, one which we’ll be keeping an eye on. If you have any ideas for him, leave them in the comments below.
Continue reading “Using TensorFlow To Recognize Your Own Objects”
Just about everything the US Government publishes is available to the public. Granted, browsing the GPO bookstore yields a lot of highly specialized documents like a book on how to perform pediatric surgery in hostile environments. However, there are some gems if you know where to look. If you ever wanted to have a comprehensive electronics course, the US Navy’s NEETS (Navy Electricity and Electronics Training Series) is freely available and has 24 modules that cover everything from electron flow through conductors, to tubes, to transistors and integrated circuits.
There are many places you can download these in one form or another. Some of them are in HTML format. Others are in PDF, which might be easier to put on a mobile device. The Internet Archive has them, although sorting by title isn’t quite in numerical order.
Some of the content is a bit dated — the computer section talks about magnetic core and bubble memory, for example, even though the latest revision we know of was in 1998. Of course, there are also references to bits of Navy gear that probably doesn’t mean much to most of us. However, things like the shift register (from module 13) you can see above haven’t changed in a few decades, so you can still learn a lot. The phase splitter in the top banner is even more timeless (you can find it in module 8).
Continue reading “NEETS: Electronics Education Courtesy of the US Navy”
As we work on projects we’re frequently upgrading our tools. That basic soldering iron gives way to one with temperature control. The introductory 3D printer yields to one faster and more capable. One reason for this is we don’t really understand the restrictions of the introductory level tools. Sometimes we realize this directly when the tool fails in a task. Other times we see another hacker using a better tool and realize we must have one!.
The same occurs with software tools. The Arduino IDE is a nice tool for starting out. It is easy to use which is great if you have never previously written software. The libraries and the way it ties nicely into the hardware ecosystem is a boon.
When you start on larger projects, say you upgrade to a Due or Teensy for more code or memory space, the Arduino IDE can hamper your productivity. Moving beyond these limitations requires a new, better tool.
Where do we find a better tool? To begin, recognize, as [Elliot] points out that There is no Arduino “Language”, we’re actually programming in C or C++. We chose which language through the extension on the file, ‘c’ for C and ‘cpp’ for C++. An Arduino support library may be written in C or C++ depending on the developer’s preference. It’s all mix ‘n match.
Potentially any environment that supports C/C++ can replace the Arduino IDE. Unfortunately, this is not easy to do, at least for inexperienced developers, because it means setting up the language tool chain and tools for uploading to the board. A developer with that much experience might eschew an integrated development environment altogether, going directly to using makefiles as [Joshua] describes in Arduino Development; There’s a Makefile for That.
The reality is the Arduino IDE is not much more than a text editor with the ability to invoke the tools needed to compile and download the code to the Arduino. A professional IDE not only handles those details but provides additional capabilities that make the software development process easier.
Continue reading “Code Craft: Using Eclipse for Arduino Development”
This cat feeder project by [Ben Millam] is fascinating. It all started when he read about a possible explanation for why house cats seem to needlessly explore the same areas around the home. One possibility is that the cat is practicing its mobile hunting skills. The cat is sniffing around, hoping to startle its prey and catch something for dinner. Unfortunately, house cats don’t often get to fulfill this primal desire. [Ben] thought about this problem and came up with a very interesting solution. One that involves hacking an electronic cat feeder, and also hacking his cat’s brain.
First thing’s first. Click past the break to take a look at the demo video and watch [Ben’s] cat hunt for prey. Then watch in amazement as the cat carries its bounty back to the cat feeder to exchange it for some real food.
Continue reading “Hack Your Cat’s Brain to Hunt For Food”
Whether you’re just getting into electronics or could use a refresher on some component or phenomenon, it’s hard to beat the training films made by the U.S. military. This 1965 overview of transformers and their operations is another great example of clear and concise instruction, this time by the Air Force.
It opens to a sweeping orchestral piece reminiscent of the I Love Lucy theme. A lone instructor introduces the idea of transformers, their principles, and their applications in what seems to be a single take. We learn that transformers can increase or reduce voltage, stepping it up or down through electromagnetic induction. He moves on to describe transformer action, whereby voltages are increased or decreased depending on the ratio of turns in the primary winding to that of the secondary winding.
He explains that transformer action does not change the energy involved. Whether the turns ratio is 1:2 or 1:10, power remains the same from the primary to the secondary winding. After touching briefly on the coefficient of coupling, he discusses four types of transformers: power, audio, RF, and autotransformers.
Continue reading “Retrotechtacular: Step Up and Get Your Transformer Training”
[Jim] has been working with a team from various Universities to develop an intuitive way to guide and train assistance robots. They focused on one particular technique, training a robot to follow on a leash in the same way you would a pet dog (PDF).
He was inspired to send in a link to his research after reading about the Kinect-powered shopping card robot. He figures that that project is similar to his own, but his does have several added benefits. The first being that if a robot is on a leash, everyone knows who that bot is following or assisting. But there is the added benefit of the user needing no training whatsoever. That’s because the act of walking a dog on a leash is commonplace in developed societies; you may not have ever owned a dog, but you’ve seen others walking them on leashes numerous times and could do so yourself without any training.
The leash connects to a sensor-filled turret in the center of the robot’s body. The bot can sense when, and in which direction the user is pulling the leash. There’s also an emergency kill switch on the handle for added functionality. Take a look at some of the test video after the break to see how quickly humans can adapt to this type of user interface.
Continue reading “Programming robots like you would train a pet”