If you have checked out my previous post, you know I want to create a clock radio powered by the Raspberry Pi with the audio coming out of a JustBoom AMP Zero pHAT. One of the things that I thought would be quite handy (probably necessary) would be volume control. Ideally that would be some kind of hardware rotation controller, but looking around online on how one might control the JustBoom amp with a rotary encoder really only brought back results regarding full OS solutions such as Moode Audio.
Long story short; I have a clock radio and it can just about play something from the radio and wake me up in the morning. But if the power goes out it never remembers the time or what any of the radio stations were, and it completely lacks the ability to auto-seek for stations (and I can never remember what the stations numbers are either which is why only one is ever reprogrammed in). As a result, I’ve had it in the back of my mind to build a replacement using my Pi Zero and now that I have a couple extra bits of hardware I thought I’d make a stab at starting the build.
So this is part one of the build process. Or, as I like to title it; Part “I’ve just got some neat hardware so let’s muck about and see if I can get it to do anything”.
Last night I packaged everything up in the trail camera lunch box and gave it the first outdoors test. The first thing it captured was this little guy!
I think there may still be a few things to sort out. The PIR sensor may not be very sensitive or the code may not be 100% functioning correctly (though it seemed to be in all other tests I ran indoors), as the videoing stopped before I would have thought it should. However, as the very first thing it captured was the hedgehog I am very pleased with the result!
One thing I’ve always wanted to do with my Raspberry Pi was to build a trail camera, and when the Pi Zero was released with a camera port I thought that it was about time I stopped wanting to do it and actually just do it.
It took a while to get parts delivered from various places, but eventually in the last week or so I have finally built a trail camera. I’ll probably post more about that at a later date, but the most intriguing part for me was the programming…
Most of the trail cameras I had seen on the internet that people had built would either take a photo when a PIR sensor was triggered or would take just time lapse photos all night. Neither of these solutions really appealed to me. What I wanted was a video, and more than that I didn’t just want a video to record for a few seconds and stop. I wanted it to keep recording as long as there was movement triggered by a PIR.
What I like about my solution is that when the PIR is triggered it will start recording for a definable number of seconds. If the PIR is triggered within that time it’ll just extend the record time by that many seconds again, and so on and so on until the PIR hasn’t been triggered for at least that many seconds at which point the recording will end.
A while ago now (back in February!) I did a talk about writing an extension using Zephir to interact with the RaspberryPi’s GPIO. The extension itself wraps around the wiringPi library and it makes it really easy to write PHP scripts that send output and gather input from the GPIO.
Here are the slides (use left/right arrow keys to navigate):
I’ve pushed a few changes to phpiwire can now use the PWM functions in wiringPi. You can use either the hardware PWM pins or any of the GPIOs by using software PWM. A couple new examples of how to do this have also been added to the repository.
With software PWM comes the requirement to include pthreads, so that’s also linked when you compile the zephir extension.
I’d recommend you do a full clean first before compiling with: