Machine Learning On Tiny Platforms Like Raspberry Pi And Arduino

Machine learning is starting to come online in all kinds of arenas lately, and the trend is likely to continue for the forseeable future. What was once only available for operators of supercomputers has found use among anyone with a reasonably powerful desktop computer. The downsizing isn’t stopping there, though, as Microsoft is pushing development of machine learning for embedded systems now.

The Embedded Learning Library (ELL) is a set of tools for allowing Arduinos, Raspberry Pis, and the like to take advantage of machine learning algorithms despite their small size and reduced capability. Microsoft intended this library to be useful for anyone, and has examples available for things like computer vision, audio keyword recognition, and a small handful of other implementations. The library should be expandable to any application where machine learning would be beneficial for a small embedded system, though, so it’s not limited to these example applications.

There is one small speed bump to running a machine learning algorithm on your Raspberry Pi, though. The high processor load tends to cause small SoCs to overheat. But adding a heatsink and fan is something we’ve certainly seen before. Don’t let your lack of a supercomputer keep you from exploring machine learning if you see a benefit to it, and if you need more power than just one Raspberry Pi you can always build a cluster to get your task done just a little bit faster, too.

Thanks to [Baldpower] for the tip!

Arduino And Pi Share Boardspace

A Raspberry Pi Zero (W) and Arduino are very different animals, the prior has processing power and connectivity while the latter has some analog to digital converters (ADCs) and nearly real-time reactions. You can connect them to one another with a USB cable and for many projects that will happily wed the two. Beyond that, we can interface this odd couple entirely through serial, SPI, I2C, and logic-level signaling. How? Through a device by [cburgess] that is being called an Arduino shield that supports a Pi0 (W). Maybe it is a cape which interfaces with Arduino. The distinction may be moot since each board has a familiar footprint and both of them are found here.

Depending on how they are set up and programmed, one can take control over the other, or they could happily do their own thing and just exchange a little information. This board is like a marriage counselor between a Raspberry Pi and an Arduino. It provides the level-shifting so they don’t blow each other up and libraries so they can speak nicely to one another. If you want to dig a bit deeper into this one, design files and code examples are on available.

Perhaps we’ll report on this board at the heart of a pinball machine retrofit, a vintage vending machine restoration, or maybe a working prop replica from the retro bar in Back to the Future II.

Manual 3D Digitizer Works A Bit Like 3-Dimensional Measuring Tape

Digitizing an object usually means firing up a CAD program and keeping the calipers handy, or using a 3D scanner to create a point cloud representing an object’s surfaces. [Dzl] took an entirely different approach with his DIY manual 3D digitizer, a laser-cut and 3D printed assembly that uses rotary encoders to create a turntable with an articulated “probe arm” attached.

Each joint of the arm is also an encoder, and by reading the encoder values and applying a bit of trigonometry, the relative position of the arm’s tip can be known at all times. Manually moving the tip of the arm from point to point on an object therefore creates measurements of that object. [Dzl] successfully created a prototype to test the idea, and the project files are available on GitHub.

We remember the earlier version of this project and it’s great to see how it’s been updated with improvements like the addition of a turntable with an encoder. DIY 3D digitizing takes all kinds of approaches, and one example was this unit that used four Raspberry Pi Zeros and four cameras to generate high quality 3D scans.

A Star-Trek-Inspired Robot With Raspberry Pi And AI

When [314Reactor] got a robot car kit, he knew he wanted to add some extra things to it. At about the same time he was watching a Star Trek episode that featured exocomps — robots that worked in dangerous areas. He decided to use those fictional devices to inspire his modifications to the car kit. Granted, the fictional robots were intelligent and had a replicator. So you know he won’t make an actual working replica. But then again, the ones on the TV show didn’t have all that either.

A Raspberry Pi runs Tensorflow using the standard camera.  This lets it identify objects of interest (assuming it gets them right) and sends the image back to the operator along with some identifying information. The kit already had an Arduino onboard and the new robot talks to it via a serial port. You can see a video about the project, below.

Continue reading “A Star-Trek-Inspired Robot With Raspberry Pi And AI”

Welcome Our New Insect Overlords With Arduino-Powered Ant Bot

Walking robots come in many forms, and each presents their own unique challenges. Bipedal style locomotion is considered particularly difficult to do well, however designs with more legs offer certain advantages. Hexapods offer the possibility of keeping several legs on the ground while others move, providing a useful degree of stability. [How To Mechatronics] developed this ant robot, which is an excellent example of the form.

The hexapod has as the name suggests, six legs, each of which consist of 3 joints. This necessitates 3 servos per leg, for 18 servos total just for locomotion. Further servos are then used to control the abdomen, head, and mandibles. This gives the robot strong ant credentials, above and beyond being simply a 3D printed lookalike.

Brains come courtesy of an Arduino Mega, chosen for its ability to control a large number of servos. A custom PCB is printed as a shield to ease the connection of all the necessary hardware. An HC-05 Bluetooth module is used for communication with an Android app, which controls the ant. The piece de resistance is the ultrasonic sensors in the head, which allow the ant to automatically defend itself against predators that get too close.

It’s an involved build, requiring plenty of 3D printing and over 200 fasteners. Fundamentally though, it’s a fully working and tested hexapod build with full plans available for download, ready to toil in your underground sugar caves.

If your hexapod tastes skew more anime than insectoid, check out this Ghost in the Shell build. Video after the break.

[Thanks to Baldpower for the tip!]

Continue reading “Welcome Our New Insect Overlords With Arduino-Powered Ant Bot”

Button, Button, Who’s Got The (One) Button?

We often think that less is more, but what can you do with a device that has only a single button? [Danko Bertović] wondered the same thing and he built an Arduino with a single button and a display. After doing some obvious things  (like a counter or stopwatch) he decided to make a calculator for his latest Volos Projects video.

You can find the source code online and he used a library from GitHub to handle the reaction to single presses, double presses, and long presses. Is it ideal? Probably not. But if you only have a limited amount of space or pins, it can make the difference between a feasible project and one you can’t finish.

His original projects also included a Flappy Bird clone. The OLED display is only 64×48 so that’s not a lot of room. The packaging of the tiny Arduino, the battery, and the display in a good looking case, was pretty impressive. So the device might be usable for something.

Of course, the library will work with any program and there’s no reason you can’t have more than one button and simply multiply their functions with the same strategy. There’s a sample on GitHub that shows how you can create two OneButton objects connected to different hardware devices.

By the way, the little box may have only one button, but it also has a power switch. Turns out, you can use it as an input in certain circumstances. If the OLED display strikes you as too luxurious, try the DUO BINARY.

Continue reading “Button, Button, Who’s Got The (One) Button?”

The Battle Between Robot Harmonica And Machine Finger Rages On

When asking the question “Do humans dream of machines?”, it’s natural to think of the feverish excitement ahead of an iPhone or Playstation launch, followed by lines around the block of enthusiastic campers, eager to get their hands on the latest hardware as soon as is humanly possible. However, it’s also the title of an art piece by [Jonghong Park], and is deserving of further contemplation. (Video after the break.)

The art piece consists of a series of eight tiny harmonicas, which are in turn, played by eight fans, which appear to have been cribbed from a low-power graphics card design. Each harmonica in turn has a microphone fitted, which, when it picks up a loud enough signal, causes an Arduino Nano to actuate a mechanical finger which slows the fan down until the noise stops. It’s the mechanical equivalent of a stern look from a parent to a noisy child. Then, the cycle begins again.

The build is very much of the type we see in the art world – put together as simply as possible, with eight Arduinos running the eight harmonicas, whereas an engineering approach may focus more on efficiency and cost. Between the squeaks from the toy harmonicas and the noise from the servos entrusted to quiet them, the machine makes quite the mechanical racket. [Jonghong] indicates that the piece speaks to the interaction of machine (robot harmonica) and humanity (the finger which quells the noise).

It’s a tidily executed build which would be at home in any modern art gallery. It recalls memories of another such installation, which combines fans and lasers into a musical machine. Continue reading “The Battle Between Robot Harmonica And Machine Finger Rages On”