Run the following in the BeagleBone Black:
$ node app.js
If you want to run it in testing mode do the following instead:
$ MOCK=true node app.js
This repository is the software server engine (currently written in Node.js) which allows a Beaglebone Black to read an analog signal representing a light sensor to determine if someone is shining a flashlight at the animal. If a flashlight is detected, then the BBB outputs a logic high to turn on a Mosfet/LED circuit (causing the animal to light up) and also to play an audio WAV file of an animal sound.
This video explains the concept very quickly.
The webpage for the original event is here.
The blog series which explains the animal construction and design is here.
Independent from this software repository, a few other things had to happen on the BBB:
- The audio WAV file for each of the 5 animals was manually loaded onto each animal at the time of programming.
- The Node server that this repository represents had to be manually configured as a service to auto-start @ each reboot.
Notes for desired Improvements as we transition from 2013 -> 2014:
- The OS at the time of the original 2013 animals was Angstrom, though as we re-tool for 2014 we will be switching to Debian
- The first revision of software only played one WAV file, but for 2014 we would like to cycle through all sounds in a certain folder.
- It would be awesome to have a Config webpage where we could see the real-time light sensor values (maybe also min/max/ave) and set the light sensor trigger thresholds. Maybe later other options like fade-in/fade-out times for the LEDs, etc, etc.
- Optionally, it would be cool if I could get real-time feedback if any animal malfunctions or loses power.
- Post-2014 it would be cool to allow people to control groups of animals via their smart devices.
2014-10-22 NOTE This repository was originally called "Audubon2013-Wow4-SoundsoftheNight" to reflect the event that it was originally designed for back in Nov/Dec2013. As the project develops, however, it is clear that the name should be more general purpose so that the code can be used with and for many different events and applications. As of today we are changing the repository name to "SoundsOfTheNight" to better reflect the project's true purpose.