Little Lamp To Learn Longer Leaps

Reinforcement learning is a subset of machine learning where the machine is scored on their performance (“evaluation function”). Over the course of a training session, behavior that improved final score is positively reinforced gradually building towards an optimal solution. [Dheera Venkatraman] thought it would be fun to use reinforcement learning for making a little robot lamp move. But before that can happen, he had to build the hardware and prove its basic functionality with a manual test script.

Inspired by the hopping logo of Pixar Animation Studios, this particular form of locomotion has a few counterparts in the natural world. But hoppers of the natural world don’t take the shape of a Luxo lamp, making this project an interesting challenge. [Dheera] published all of his OpenSCAD files for this 3D-printed lamp so others could join in the fun. Inside the lamp head is a LED ring to illuminate where we expect a light bulb, while also leaving room in the center for a camera. Mechanical articulation servos are driven by a PCA9685 I2C PWM driver board, and he has written and released code to interface such boards with Robot Operating System (ROS) orchestrating our lamp’s features. This completes the underlying hardware components and associated software foundations for this robot lamp.

Once all the parts have been printed, electronics wired, and everything assembled, [Dheera] hacked together a simple “Hello World” script to verify his mechanical design is good enough to get started. The video embedded after the break was taken at OSH Park’s Bring-A-Hack afterparty to Maker Faire Bay Area 2019. This motion sequence was frantically hand-coded in 15 minutes, but these tentative baby hops will serve as a great baseline. Future hopping performance of control algorithms trained by reinforcement learning will show how far this lamp has grown from this humble “Hello World” hop.

[Dheera] had previously created the shadow clock and is no stranger to ROS, having created the ROS topic text visualization tool for debugging. We will be watching to see how robot Luxo will evolve, hopefully it doesn’t find a way to cheat! Want to play with reinforcement learning, but prefer wheeled robots? Here are a few options.

Continue reading “Little Lamp To Learn Longer Leaps”

A Word Clock, The Hard Way

We’ve all seen word clocks, and they’re great, but there are only so many ways to show the time in words. This word clock with 114 servos is the hard way to do it.

We’re not sure what [Moritz v. Sivers] was aiming for with this projection clock, but he certainly got it right. The basic idea is to project the characters needed to compose the time messages onto a translucent PVC screen, which could certainly have been accomplished with just a simple character mask and some LEDs. But for extra effect, [Moritz] mounted each character to a letterbox mounted over a Neopixel. The letterboxes are attached to a rack and pinion driven by a micro servo. The closer they get to the screen, the sharper the focus and the smaller the size of the character. Add in a little color changing and the time appears to float out from a jumbled, unfocused background. It’s quite eye-catching, and worth the 200+ hours of printing time it took to make all the parts. Complete build instructions are available, and a demo video is after the break.

We like pretty much any word clock – big, small, or even widescreen. This one really pushes all our buttons, though.

Continue reading “A Word Clock, The Hard Way”

Vintage Plotter Turned Fruit Spectrometer

Fruit can be a tricky thing: if you buy it ripe you’ll be racing against time to eat the pieces before they turn into a mushy mess, but if you buy the ones which are a bit before their prime it’s not always easy to tell when they’re ready to eat. Do you smell it? Squeeze it? Toss it on the counter to see if it bounces? In the end you forget about them and they go bad anyway. That’s why here at Hackaday we sustain ourselves with only collected rainwater and thermo-stabilized military rations.

But thankfully Cornell students [Christina Chang], [Michelle Feng], and [Russell Silva] have come up with a delightfully high-tech solution to this decidedly low-tech problem. Rather than rely on human senses to determine when a counter full of fruit has ripened, they propose an automated system which uses a motorized spectrometer to scan an arrangement of fruit. The device measures the fruit’s reflectance at 678 nm, which can be used to determine the surface concentration of chlorophyll-a; a prime indicator of ripeness.

If that sounds a bit above your pay grade, don’t worry. The students were able to build a functional prototype using a 1980’s era plotter, a Raspberry Pi, and a low-cost AS7263 NIR spectral sensor from SparkFun which just so happens to have a peak responsivity of 680 nm. The scanning is performed by a PIC32MX250F128B development board with an attached TFT LCD display so the results can be easily viewed. The Raspberry Pi is used in conjunction with a Adafruit PCA9685 I2C PWM driver to control the plotter’s stepper motors. The scanning and motor control could be done with the PIC32 alone, but to save time the students decided to use the Raspberry Pi to command the PCA9685 as that was what the documentation and software was readily available for.

To perform a scan, the stepper motors home the AS7263 sensor module, and then passes it under the fruit which is laying on a clear acrylic sheet. Moving the length of the acrylic sheet, the sensor is able to scan not only multiple pieces of fruit but the entirety of each piece; allowing it to determine for example if a section of a banana has already turned. The relative ripeness of the fruit is displayed to the user on the LCD display as a heatmap: the brighter the color the more ripe it is.

At the end of their paper, [Christina], [Michelle], and [Russell] note that while the scanner worked well there’s still room for improvement. A more scientific approach to calculating how ripe each fruit is would make the device more accurate and take out the guess work on the part of the end user, and issues with darker colored fruit could potentially be resolved with additional calibration.

While a spectrometer might sound like the kind of equipment that only exists in multi-million dollar research laboratories, we occasionally see projects like this which make the technology much more accessible. This year we saw a compact spectrometer in the Hackaday Prize, and going a bit farther back in time we even featured a roundup of some of the most impressive spectrometer builds on Hackaday.io.

Continue reading “Vintage Plotter Turned Fruit Spectrometer”

Need A Thousand Extra PWM Pins?

If your Arduino runs out of I/O lines, you can always add one of the several I/O expander chips that takes a serial interface to set its several pins. Or perhaps you could buy something like an Arduino Mega, with its extra sockets to fulfil your needs. But what would you do if you really needed more pins, say a thousand of them? Perhaps [Brian Lough] has the answer. OK, full disclosure: If you really need a thousand, the video isn’t exactly for you, as he shows you how to add up to 992 PWM outputs. The chip he uses works with any microcontroller (the video shows an ESP8266), and we suppose you could use two daisy chains of them and break the 1,000 barrier handily.

We like how short the video is (just two minutes; see below) as it gets right to the point. The PCA9685 chip gives you 16 12-bit PWM channels via an I2C interface. You can daisy chain up to 62 of the boards to get the 992 outputs promised.

Continue reading “Need A Thousand Extra PWM Pins?”