DIY Clapper Is 1980s Style With Raspberry Pi Twist

Home automation isn’t all that new. It is just more evolved. Many years ago, a TV product appeared called the Clapper. If you haven’t heard of it, it was basically a sound-operated AC switch. You plug, say, a lamp into the device and the clapper into the wall and you can then turn the lamp on or off by clapping. If you somehow missed these — and you can still get them, apparently — have a look at the 1984 commercial in the video below. [Ash] decided to forego ordering one on Amazon and instead built her own using a Raspberry Pi.

[Ash’s] prototype uses an LED and could — in theory — drive anything. If you wanted to make a real Clapper replacement you’d need a relay or some other kind of AC switch suitable for the load. The actual clap detection software is from [nikhiljohn10] and simply waits for two loud noises. No fancy machine learning to differentiate between a clap and a cat knocking over a vase. Just a threshold and some timing.

Continue reading “DIY Clapper Is 1980s Style With Raspberry Pi Twist”

Portmanteau Spewing PunBot

When Python was created, [Guido van Rossum] knew that one day it would be fully realized and take its final form. Clearly, that day has arrived since there now exists a way to send a word query and receive a lengthy list of potential portmanteaus. Some may regard this as merely quaint, but it will be the most important thing to happen in binary until the singularity.

Perhaps we are overpromising a smidge, but it may be fun to spend an afternoon getting your own whimsicalibrated pun resource churning out some eye-roll-worthy word combos. The steps are broken up neatly and explained at a high level with links for more in-depth explanations so a novice can slog through it, but a whiz can wrap it up while the boss is looking the other way.

We truly live in the future, but we may continue writing our own brand of artisanal puns which are number one in someone’s book.

LEDs And Pi Let You Virtually Decorate This Online Christmas Tree

Anyone who has decorated a Christmas tree knows that the lights are what really make the look. But no matter how many strings you wrap around it, there never seems to be enough. Plus the standard sets either sit there and do nothing, or just blink on and off at regular intervals. Yawn.

But hackers aim higher, and [leo.currie]’s interactive “paintable” Christmas tree takes the lighting game a step beyond. The standard light strings are replaced with strings of WS2811 RGB LEDs which are wired to an ESP8266. A camera connected to a Raspberry Pi is setup up to stream images of the tree to all and sundry on the Interwebz, but with a special twist: it also creates a map of every light on the tree. That allows the lights to be controlled individually in response to user inputs on a web page hosted on the Pi. The upshot is that you can paint the tree with any color you like in real time, or upload various animated GIFs to display on the tree. You can play with the tree directly, or watch a replay on the video below when that Pi inevitably gets hugged to death.

Imagine the possibilities with this. Why not hang a lot of LED strings vertically from the eaves of your house and make a huge, low-resolution display? We’ve featured plenty of large, interactive LED Christmas displays before, and we’d love to see what you come up with.

Continue reading “LEDs And Pi Let You Virtually Decorate This Online Christmas Tree”

Microcontroller And IMU Team Up For Simple Flight Sim Controls

Classes are over at Cornell, and that means one thing: the students in [Bruce Land]’s microcontroller design course have submitted their final projects, many of which, like this flight control system for Google Earth’s flight simulator, find their way to the Hackaday tips line.

We actually got this tip several days ago, but since it revealed to us the previously unknown fact that Google Earth has a flight simulator mode, we’ve been somewhat distracted. Normally controlled by mouse and keyboard, [Sheila Balu] decided to give the sim a full set of flight controls to make it more realistic. The controls consist of a joystick with throttle, rudder pedals, and a small control panel with random switches. The whole thing is built of cardboard to keep costs down and to make the system easy to replicate. Interestingly, the joystick does not have the usual gimbals-mounted potentiometers to detect pitch and roll; rather, an IMU mounted on the top of the stick provides data on the stick position. All the controls talk to a PIC32, which sends the inputs over a serial cable to a Python script on the PC running Google Earth; the script simulates the mouse and keyboard commands needed to fly the sim. The video below shows [Sheila] taking an F-16 out for a spin, but despite being a pilot herself since age 16, she was curiously unable to land the fighter jet safely in a suburban neighborhood.

[Bruce]’s course looks like a blast, and [Sheila] clearly enjoyed it. We’re looking forward to the project dump, which last year included this billy-goat balancing Stewart platform, and a robotic ice cream topping applicator.

Continue reading “Microcontroller And IMU Team Up For Simple Flight Sim Controls”

Using FTDI Chips With Python

FTDI are a company known for producing chips for USB applications. Most of us have a few USB-to serial adapters kicking about, and the vast majority of them run on FTDI hardware (or, if we’re honest, counterfeit copies). However, FTDI’s hardware has a whole lot more to offer, and [jayben] is here to show us all how to take advantage of it using Python.

FTDI chips are an effective way to debug ARM projects, using the SWD protocol.

FTDI’s chips have varying capabilities, but most can do more than just acting as a USB-connected COM port. It’s possible to use the chips for SPI, I2C, or even bitbanging operation. [jayben] has done the hard work of identifying the best drivers to use depending on your operating system, and then gone a step further to demonstrate example code for sending data over these various interfaces. The article not only covers code, but also shows oscilloscope traces of output, giving readers a strong understanding of what should be happening if everything’s operating as it should. The series rounds out with a primer on how to use FTDI hardware to speak the SWD protocol to ARM devices for advanced debugging use.

It’s a great primer on how to work effectively with these useful chips, and we imagine there will be plenty of hackers out there that will find great use to this information. Of course, it’s important to always be careful when sourcing your hardware as FTDI drivers don’t take kindly to fake chips.

Thread Carefully: An Introduction To Concurrent Python

The ability to execute code in parallel is crucial in a wide variety of scenarios. Concurrent programming is a key asset for web servers, producer/consumer models, batch number-crunching and pretty much any time an application is bottlenecked by a resource.

It’s sadly the case that writing quality concurrent code can be a real headache, but this article aims to demonstrate how easy it is to get started writing threaded programs in Python. Due to the large number of modules available in the standard library which are there to help out with this kind of thing, it’s often the case that simple concurrent tasks are surprisingly quick to implement.

We’ll walk through the difference between threads and processes in a Python context, before reviewing some of the different approaches you can take and what they’re best suited for.

Continue reading “Thread Carefully: An Introduction To Concurrent Python”

A Cheat Sheet For Publishing Python Packages

[Brendan Herger] was warned that the process of publishing a Python package would be challenging. He relishes a challenge, however, and so he went at it with gusto. The exhausting process led him to share a cheat sheet for publishing Python packages with the goal of making the next time smoother, while also letting other people benefit from his experience and get a running start.

[Brendan] describes publishing a Python package as “tying together many different solutions with brittle interchanges.” His cheat sheet takes the form of an ordered workflow for getting everything in place, with some important decisions and suggestions about things like formatting and continuous integration (CI) made up-front.

The guide is brief, but [Brendan] has made errors and hit dead ends in the hopes that others won’t have to. The whole thing came about from his work in deep learning, and his desire to create a package that allows rapid building and iterating on deep learning models.

Deep learning is a type of machine learning that involves finding representations in large amounts of data. [Brendan] used it in a project to automatically decide whether a Reddit post contains Star Wars plot spoilers, and we recently saw it featured in a method of capturing video footage only if a hummingbird is present.