WIP - Im going through another hardware upgrade so the below specs are/will be slightly outdated. Im hoping for a final v3 product before Jan 2024.
This project aims to recreate Disney's Enchanted Tiki Room using Squawkers McCaw birds, a Raspberry Pi, and additional hardware. Create your own automated bird orchestra and bring the magic into your living room!
- Raspberry Pi 4 Model B (Im guessing an older Pi3 could work fine but I havent tested it)
- Squawkers McCaw birds (x4)
- Wires
- 4 x 2-channel Solid State Relay
- 4-channel Relay
- 3 x 3.5mm Male to Male Auxiliary Audio Cable (there are 6 in this)
- 3 X Plugable USB Audio Adapter
- Anker 7-Port USB 3.0 Data Hub with 36W Power Adapter
- 2 Pieces Audio Amplifier Board
- IR motion sensor
- Mini spotlights
- Waterproof Outdoor Electrical Box
- Servo Motor Hat (for Drummers which is not yet implemented)
- Servo motors (for Drummers which is not yet implemented)
- 8-Pin Waterproof DT Connector(for easily conecting cables to box)
Audio Amplifier(for the speaker in the bird, currently not used)- other basic electronics tools
- Python 3.x
- Git
- Install libs for the Pi
sudo apt update
sudo apt upgrade
sudo apt-get install git-lfs
sudo apt-get install python3-pip python3-numpy libportaudio2 libsndfile1 screen git
- Clone this repository.
git clone https://github.com/emricht32/SquawkersMccaw.git
- Navigate to the project directory.
cd SquawkersMccaw
- Install the required Python packages. If you are developing on Mac or Linux machine and then transfering files to the Pi you can use:
pip3 install -r requirements.txt
But either way on, the Pi run:
pip3 install -r pi-requirements.txt
- (Optional) IR Remote Receiver setup (taken from https://www.ignorantofthings.com/2022/03/receiving-infrared-on-raspberry-pi-with.html) Enabling IR communication on the Raspberry Pi
Before we start, as always it’s best to update everything using sudo apt-get update && sudo apt-get upgrade
There are four main tasks we need to achieve:
Enable Device Tree overlays (dtoverlay) to enable the kernel to talk to the IR receiver:
Edit the Raspberry Pi config file:
sudo nano /boot/config.txt
Uncomment this to enable infrared communication. Change the pin to suit your configuration if required.
dtoverlay=gpio-ir,gpio_pin=4
Reboot when finished:
sudo reboot
Install ir-keytable to receive IR scancodes via the sensor:
Install the ir-keytable package and temporarily enable all protocols:
sudo apt-get install ir-keytable
sudo ir-keytable -p all
Note that the last command will not persist a reboot and is for testing only (we’ll take care of this later!)
- Squawkers McCaw: Disassemble the bird carefully and identify the control wires for the servo motors. Pic examples in docs/media.
- Wiring: Use the diagram provided in the
/hardware
folder for reference.
- Servo Motors: Connect the servo motors to the Raspberry Pi's GPIO pins. (For the Drummers which is a TODO)
- Edit the
config.json
file to set up GPIO pins, timers, and other settings.
To start the Enchanted Tiki Room experience, run:
python3 src/main.py
-
The music folder needs to have songs that have a samplerate of 48k. I had to use ffmpg to convert the files from 44.1k. This is due to the fact that the usb audio adapter seem to not support 44.1k. My music was playing slightly too fast.
-
I used https://vocalremover.org/ to split vocals and music into separate files so the singing could be piped to the speakers in the birds with the rest of the instruments going to a separate speaker. For the vocals, I also duplicated the files into two files and then separated the right and left channels to make different bird audio. File1 is Jose and Michael and File2 is Fritz and Pierre. To do this I used Audacity.
-
Id love to make a service/app that a non-technical person (aka my father-in-law who im building this for) could use to update/add songs to the birds. Im thinking a user could upload songs and config params via some UI. Im an iOS app developer with some go, java, python and c++ sprinkled in throughout the years in the real world and would love to discuss thoughts or suggestions with anyone who has any.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
!!!NOTE!!! I have ZERO professional experience with circuits and hardware. Im sure that there are things I missed (especially safetywise) when it comes to electricity and best practices. It would not have surprised me if I blew out my Pi or caused a mini fire during this process. Repeat my steps at your own risk.
This project is licensed under the MIT License. See the LICENSE
file for details.
I started this project a couple years ago. First I bought a Squawker Talker from J-Man. If you are only looking for a single bird setup I highly recommend and suggest using this. If I remember correctly it was about $80 and came with super easy to use instructions. You can email him at info@audioservocontroller.com. I also borrowed his images for disassembaling the bird and how to get access to the needed wires.