Machine Learning Robot Runs Arduino Uno

When we think about machine learning, our minds often jump to datacenters full of sweating, overheating GPUs. However, lighter-weight hardware can also be used to these ends, as demonstrated by [Nikodem Bartnik] and his latest robot.

The robot is charged with autonomously navigating a simple racetrack delineated by cardboard barriers. The robot is based on a two-wheeled design with tank-style steering. Controlled by an Arduino Uno, the robot uses a Slamtec RPLIDAR sensor to help map out its surroundings. The microcontroller is also armed with a Bluetooth link and an SD card for storage.

The robot was first driven around the racetrack multiple times under manual control, all the while collecting LIDAR data. This data was combined with control inputs to help create a data set that could be used to train a machine learning model. Feature selection techniques were used to refine down the data points collected to those most relevant to completing the driving task. [Nikodem] explains how the model was created and then refined to drive the robot by itself in a variety of race track designs.

It’s a great primer on machine learning techniques applied to a small embedded platform.

Continue reading “Machine Learning Robot Runs Arduino Uno”

This Arduino Debugger Uses The CH552

One of the things missing from the “classic” Arduino experience is debugging. That’s a shame, too, because the chips used have that capability. However, the latest IDE has the ability to work with external debuggers and if you want to get started with a classic ATMega Arduino, [deqing] shows you how to get started with a cheap CH552 8-bit USB microcontroller board as the debugging dongle.

The CH552 board in question is a good choice, primarily because it is dirt cheap. There are design files on GitHub (and the firmware), but you could probably pull the same trick with any of the available CH552 breakout boards.

Continue reading “This Arduino Debugger Uses The CH552”

Arduino-Powered Trap Hopes To Catch Mice

The old adage that you’ll make a fortune by developing a better mouse trap is not super realistic, as the engineers behind Sony’s Betamax video tape standard could tell you. However, you can still learn a lot building your own, as this project from [ROBO HUB] demonstrates.

The trap is intended to catch mice in a humane fashion, without injury to the animal. To that end, it uses an Arduino Nano armed with an ultrasonic distance sensor  to detect when mice have entered a plastic container. The container’s hinged door is is held open with a servo. When a mouse is detected, the servo trips the door to snap shut under the power of an elastic band.

The key to making this design work well is ensuring that there are no gaps in the closed container that the mouse can use to escape. They’re wily creatures able to squeeze through positively tiny spaces, so it’s important to get this right. Besides that, you want to check the trap regularly, lest any caught mice simply claw and chew their way out.

We’ve seen a few mousetraps around these parts before, too. Video after the break.

Continue reading “Arduino-Powered Trap Hopes To Catch Mice”

Low Res Arduino Thermal Camera

Do you know how you see those cheap telescopes at the department store? The box has beautiful pictures that probably came from the Hubble. What you will see is somewhat different. You have to carefully look at [upir’s] Arduino thermal camera project because it intersperses pictures of what you expect an 8×8 sensor will produce with images produced by a much better camera.

The actual project — watch the video below — is undoubtedly neat. An inexpensive 8×8 IR sensor and an 8X8 LED panel join to form a crude but usable thermal camera.

Continue reading “Low Res Arduino Thermal Camera”

A Usable Arduino Debugging Tool

For as popular as the Arduino platform is, it’s not without its problems. Among those is the fact that most practical debugging is often done by placing various print statements throughout the code and watching for them in the serial monitor. There’s not really a great way of placing breakpoints or stepping through code, either. But this project, known as eye2see, hopes to change that by using the i2c bus found in most Arduinos to provide a more robust set of debugging tools.

The eye2see software is set up to run on an Arduino or other compatible microcontroller, called the “probe”, which is connected to the i2c bus on another Arduino whose code needs to be debugged. Code running on this Arduino, which is part of the eye2see library, allows it to send debugging information to the eye2see probe. With a screen, the probe can act as a much more powerful debugger than would otherwise typically be available, being able to keep track of variables in the main program, setting up breakpoints, and outputting various messages on its screen.

The tool is not without its downsides, though. The library that needs to run on the host Arduino slows down the original program significantly. But for more complex programs, the tradeoff with powerful debugging tools may be worth it until these pieces of code can be removed and the program allowed to run unencumbered. If you’d like to skip needing to use a second Arduino, we’ve seen some other tools available for debugging Arduino code that can run straight from a connected PC instead.

486 Gets Animated Turbo Button Thanks To Arduino

There was a point in time, excruciatingly brief, in which desktop computers often had a large “TURBO” button on their front panel. Some even featured an LED display that would indicate the current CPU frequency, providing visual conformation that your machine had leaped to a blistering 66 MHz.

The 486 that [someyob] is restoring had the Turbo button, but sadly there was just a simple LED to show whether or not it was engaged. But there was a window in the front panel where it seemed like a numerical display was intended to go, so they decided to wire up their own CPU indicator by sensing the state of the Turbo LED with an Arduino Pro Mini.

Now to modern audiences, this might seem like cheating. After all, the Arduino isn’t actually measuring the CPU speed, nor is it directly controlling it (that’s still done by the original Turbo button wiring). But the truth is, even back in the day, the CPU frequency displays faked it — they just toggled between showing two predefined frequencies depending on the state of the button. The arrangement [someyob] has come up with does the same thing, except now there’s some extra processing power in the mix, so the display can show some slick animations as it switches between 33 and 66 Mhz.

In the GitHub repository, [someyob] has provided the Arduino source code and schematics showing how the microcontroller was shoehorned into the existing front panel wiring without compromising its functionality. There’s even a brief video below that shows the display in operation.

Like the idea but don’t have a 486 laying around? Don’t worry. We’ve seen a similar panel built for modern machines that  just doesn’t look the part, it actually manages to be functional.

Continue reading “486 Gets Animated Turbo Button Thanks To Arduino”

Building A Digital Compass With An Arduino

The magnetic compass has been a crucial navigational tool for around a thousand years or so, perhaps longer. While classical versions still work perfectly well, you can now get digital magnetometers that work in much the same way. [mircemk] decided to whip up a digital compass to demonstrate the value of these parts.

The build uses a HMC5883L magnetometer. While this can detect magnetic fields in three axes, just one is necessary for building a device that operates akin to a traditional compass. The output of the device is read by an Arduino Nano, which is hooked up to a string of WS2812B LEDs and a small OLED display. The LEDs display the bearing of magnetic north, while the OLED screen shows the current angle between the compass’s arrow and magnetic north.

It’s a tidy build that would be a great educational resource for teaching both electronics and navigational skills. We’ve seen similar projects before, like the hilarious Pizza Compass. Video after the break.

Continue reading “Building A Digital Compass With An Arduino”