What to do once you have a sprinkler system installed on your property: buy a sprinkler control system or make your own? The latter, obviously.
[danaman] was determined to hack together a cheap, IoT-enabled system but it wasn’t easy — taking the better part of a year to get working. Instead of starting right from scratch, he used the open-source Sustainable Irrigation Platform(SIP) control software — a Python sprinkler scheduler with some features [danman] was looking for(eg: it won’t activate if there’s rain in the forecast). Since he wasn’t running it with a Raspberry Pi as recommended, [danman] wrote a Python plugin that runs on his home server as a daemon which listens to TCP port 20000 for connections and then updates the relevant relays. Ok, software done; on to the relay controller box!
Continue reading “DIY Wireless Sprinkler System? Don’t Mind If I Do.”
There will be no delicate solos for [24 Hour Engineer’s] Tough Pi-ano. It was built to soak punishment from aggressive youngsters in musical therapy, specifically those on the autism spectrum and those with Down’s syndrome. The Tough Pi-ano will be bolted to a wall with heavy-duty shelf brackets so it can’t fall on anyone. The keyboard is covered in plastic and it doesn’t have any exposed metal so there will be no splinters.
[24 Hour Engineer] made a short video demonstration and if you listen closely, he has a pun in all but one sentence. We love that kind of easter egg in YouTube videos. Check it out after the break.
Inside the 48-key instrument are four Raspberry Pi Zeros where each Pi controls one octave. The redundancy ensures that a hardware failure only drops out a single octave and the kids can keep playing until replacement parts arrive. Each Pi has identical programming and a thumbwheel switch tells it which octave it will be emulating.
Programming was done with Python and Pygame and all the inputs are run to a homemade “hat” where the wires are soldered. Pygame’s sole responsibility is to monitor the GPIO and then play the appropriate note when a button is pressed, slapped, punched or sat upon.
Similar in name, the Touch Piano has no moving parts or perhaps you would rather use your Raspberry Pi in an upright piano.
Continue reading “Tough Pi-ano can Take a Punch”
The proliferation of breakout boards that the DIY electronics movement has allowed has been staggering. Buy a few different boards, wire them together to a microcontroller or credit-card computer (both on their own breakout board) and write a bit of code, and you can create some really interesting things. Take Reddit user [Lord_of_Bone]’s Nerf Gun ammo counter and range finder, for example, a great example of having a great idea and looking around for the ways to implement it.
For the range finder, [Lord_of_Bone] looked to an ultrasonic rangefinder. For the ammo counter, [Lord_of_Bone] chose a proximity sensor. To run everything, the Raspberry Pi Zero was used and the visuals were supplied by a Rainbow Hat. The range finder is self-explanatory. The proximity sensor is located at the end of the gun’s muzzle and when it detects a Nerf dart passing by it reduces the ammo count by one. Blu-tack is used to hold everything in place, but [Lord_of_Bone] plans to use Sugru when he’s past the prototype stage.
The one problem [Lord_of_Bone] has with the build is that there’s no way to tell how many Nerf bullets are in the magazine. Currently the wielder must push a button when reloading to reset the count to a preset amount. We’re sure that [Lord_of_Bone] would appreciate any suggestions the Hack-A-Day crowd could offer.
[Lord_of_Bone] gives a full bill of materials, Python code, a lot of pictures and step-by-step instructions so that you, too, can determine how far away your target is, and whether or not you have enough ammo to hit them. We have quite a few Nerf mods on the site, and [Lord_of_Bone] could take a look at this article about how to keep track of your Nerf ammo, and here’s a different method of determining if a Nerf dart has been fired (and measuring its speed.)
[via Reddit] Continue reading “Nerf Gun Ammo Counter and Range Finder”
[Roland Meertens] has a bat detector, or rather, he has a device that can record ultrasound – the type of sound that bats use to echolocate. What he wants is a bat detector. When he discovered bats living behind his house, he set to work creating a program that would use his recorder to detect when bats were around.
[Roland]’s workflow consists of breaking up a recording from his backyard into one second clips, loading them in to a Python program and running some machine learning code to determine whether the clip is a recording of a bat or not and using this to determine the number of bats flying around. He uses several Python libraries to do this including Tensorflow and LibROSA.
The Python code breaks each one second clip into twenty-two parts. For each part, he determines the max, min, mean, standard deviation, and max-min of the sample – if multiple parts of the signal have certain features (such as a high standard deviation), then the software has detected a bat call. Armed with this, [Roland] turned his head to the machine learning so that he could offload the work of detecting the bats. Again, he turned to Python and the Keras library.
With a 95% success rate, [Roland] now has a bat detector! One that works pretty well, too. For more on detecting bats and machine learning, check out the bat detector in this list of ultrasonic projects and check out this IDE for working with Tensorflow and machine learning.
How quickly would you say yes to being granted the power to control lightning? Ok, since that has hitherto been impossible, what about the lesser power of detecting and tweeting any nearby lightning strikes?
Tingling at the possibility of connecting with lightning’s awesome power in one shape or another, [Hexalyse] combined AMS’s lightning sensor chip with a Raspberry Pi and a whipped up a spot of Python code to tweet the approach of a potential storm. Trusting the chip to correctly calculate strike data, [Hexalyse]’s detector only tweets at five minute intervals — because nobody likes a spambot — but waits for at least five strikes in a given time frame before announcing that a storm’s-a-brewing. Each tweet announces lightning strike energy, distance from the chip, and number of strikes since the last update. If there haven’t been any nearby lightning strikes for an hour, the twitter feed announces the storm has passed.
It just so happened that as [Hexalyse] finished up their project, a thunderstorm bore down on their town of Toulouse, France putting their project to the test — to positive success. Check out the detector’s tweets (in French).
We recently featured another type of lightning detector that auto-deploys a lightning rod once a storm arrives!
There’s a new and very detailed video tutorial about the Raspberry Pi available from the Australian firm Core Electronics. There are 30 videos and 5 chapters in total. A few of the introduction videos are short, but the detail videos range from 3 to 16 minutes.
The instructor [Michael] starts out at the very beginning — loading NOOBS on the Pi — and then moves on to Python, shell scripting, and building GUI applications with TkInter. It also covers using Particle Pi for IoT applications that integrate with IFTTT.
We do realize that most people reading Hackaday have probably used a Raspberry Pi at least once or twice. However, we also know that we all get asked to recommend material for beginners, or — in some cases — we are using material to teach classes in schools or hackerspaces.
Continue reading “Australian Raspberry Pi Tutorials”
[153Armstrong] did a short post on how easy it is to generate waveforms using Python. We agree it is simple, but actually, it isn’t so much Python per se, it is some pretty cool libraries (SciPy, in particular) that do all the hard work. That may be splitting hairs, but it is worth nothing that SciPy (pronounced “Sigh Pie”) also does other handy tricks like Fourier transforms, too. You can see a video of his results, below.
The code is simple and one of the commenters pointed out an even more efficient way to write the data to a WAV file. The basic idea is to create an array of samples in a buffer using some features of SciPy’s NumPy component.
Continue reading “Simple Wave Generation in Python (and SciPy)”