I love the Christmas season with all of the lights, decorations, and music – especially beautiful hand bell music. So… how could I resist making a Netduino-based Christmas Hand Bell project to make Christmas music whenever I wanted?
Construction
For the bells, I used a Kids Play 8 Note Handbell Set (Rhythm Band RBI08) I bought from Amazon. Although they are children’s bells, they are good quality and sound great. The 8 notes range from Middle C to High C without sharps or flats. It would have been nice to have the extra sharps and flats, but the 13 bell set was too large for my design. The bells are mounted to the underside of the cabinet shelves using aluminum straps and held in place using tie-wraps.
Figure 1.jpg 30.68KB
32 downloads
To ring each bell, I used a small 24V push/pull solenoid from Adafruit. I’m only driving them with 12V, but they still work fine. I found that I had to energize the coils for at least 25 ms to get a good “ding” out of the bells. Some weren’t as powerful as others, so I had to pick the best 8 of the 10 I bought. The solenoids are arranged to strike the back lip of the bells.
Figure 2.jpg 38.78KB
45 downloads
To add a visual effect along with the sound, I used four 12V low-current incandescent bulbs from Radio Shack to flash with the notes as they play. To give the effect of a brief pause between notes, the light is turned off 100ms early. Since I only had four lights to use, I matched them to pairs of bells: Middle C/D, E/F, G/A, and B/High C.
Of course, I used the Netduino Mini; my favorite option for embedded Netduino projects. The Mini is mounted in a specially designed circuit board for this project. I designed the board using the popular Fritzing software and had Fritzing build the board for me in Berlin. This was my first attempt to design and fabricate a circuit board. It was fun and turned out great. It really simplified assembly and my soldering time was cut significantly.
Figure 3.jpg 50.54KB
47 downloads
I used toggle switches for power on/off control and to add a 5 second / 5 minute selectable delay between songs. Even I might go crazy hearing these bells non-stop for hours on end!
As a final touch, I wanted to mount the bells in a display cabinet that I could be proud of. I made the cabinet out of Red Oak and stained it to match our décor. I really wanted it to look nice, so I put extra time into it.
Figure 4b.jpg 60.52KB
45 downloads
I mounted the electronics to the back of the cabinet, with a Plexiglas cover so I can see the electronics – sometimes I forget which side should face outward!
Figure 4a.jpg 48.96KB
31 downloads
Music
As it turns out, there are a lot of good Christmas songs available in the Middle-C / High-C range. I used a few songs from the song book that came with the bells, and several from a book called “Christmas Carols 110” for keyboards (1975, Hal Leonard Corp.) I have 26 songs in all.
I encoded the notes in a string for each song. Each note in the song is identified by a letter followed by its duration in eighth-note tics; for example, a “B” eighth note is coded as “B1” and an “F” quarter note is code as “F2” and so on. To differentiate between the two different C’s, I used the letter “H” for High C. “R” represents a rest.
Each song is in the format: string Name, integer Tempo in ms, and a string of Notes separated by spaces; such as: "O Come, O Come Emmanuel", 250, "D2 F2 A2 A2 A2 G2 B2 A2 G2 F6 G2 A2 F2 D2 F2 G2 E2 D2 C2 D6 G2 G2 D2 D2 E2 F4 E2 D2 C6 F2 G2 A2 A2 A2 G2 B2 A2 G2 F6 H2 H6 A2 A6 A2 G2 B2 A2 G2 F6 G2 A2 F2 D2 F2 G2 E2 D2 C2 D10 R4"
None of the songs have more than one note playing at the same time, so I could keep the programming simple. I considered several complicated approaches before I realized that I didn’t have to play more than one note at a time.
HandbellChimes Code Listing.zip 5KB
7 downloads
Operation
A simple on/off switch controls power to the set. After powering up, the software plays the scale to verify the operation of the bells and lights, waits 5 seconds, then begins playing songs. The software randomly selects a song from the list of available songs, but doesn’t repeat any of the last 5 songs.
The song is “played” by splitting the song string into an array of individual note strings using the split operation (space delimiter) and then using a foreach statement to sequence through each of the notes in the note array.
Each note is played by energizing the appropriate solenoid for 30 ms then delaying for the remainder the note (Tempo times the duration, minus 30ms). The appropriate light is energized when the note sounds, and turns off 100ms before it is scheduled to end.
Following the song, the software pauses either 5 seconds or 5 minutes (depending on the toggle switch) and then plays another song at random.
Example
http://www.youtube.c...h?v=lB3HUMoOf94
(pardon my thumb…)
Christmas Hand Bells
Started by patduino, Dec 25 2012 06:29 AM
4 replies to this topic
#2
Posted 25 December 2012 - 07:04 AM
I definitely need one of these in my home during the holidays.
What a great idea, and well executed. Thank you for sharing.
Chris
#3
Posted 25 December 2012 - 08:33 AM
Awesome! A netduino-driven carillon!
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#4
Posted 25 December 2012 - 01:11 PM
Very cool project! Nicely executed. Thanks for sharing... Gives me lots of ideas for a project for next Christmas.
#5
Posted 25 December 2012 - 03:56 PM
Fantastic job! I love the cabinetry as well. I can't wait to see some more projects coming from patduino
Merry Christmas!
Steve
Twiiter: https://twitter.com/Gutworks
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users