Instructables

Build a real bell-striking clock for your PC and a fire extinguisher-striking clock.

Featured
Picture of Build a real bell-striking clock for your PC and a fire extinguisher-striking clock.
assieme.JPG
A brass bell, a small relay a few more things and a real bell can strike the hours on your desktop.
Though this project runs on Windows and Mac OS X also, I idecided to install Ubuntu Linux on a PC I found in the trash and work on that : I had never worked with Linux before, I learned some Processing language and wrote a sketch to run an analog clock on it.
Then I interfaced the bell to the serial port of the PC and built this bell striking clock.

Read further and learn how to make a fire extinguisher striking clock also.

In the video the clapper strikes a bit too fast for the camera...


 
Remove these adsRemove these ads by Signing Up

Step 1: Processing

Picture of Processing
Processing Processing is both a programming language and an integrated development environment aimed at electronic arts and visual design. It is based on Java and is open source as most good things are now. It can be downloaded from Processing's home page.
In its basic use it is very simple to learn and gives "instant gratification of visual feedback" as aptly written in Wikipedia.
I'm not much of a programmer but it took a few hours to me to get to the result from scratch thanks to a great deal of examples and tutorial.
Many stunning visual artistic performances are given with the aid of Processing and many of them have their Processing source code available for download. One of my preferred is Substrate : I spent a lot of time looking at the drawing build under my eyes.

The code i wrote is very basic : it creates a canvas, assigns color for the background. Every hand of the clock is drawn the same vertical position with respect of the coordinate system, the trick is to displace and rotate the coordinate system. A common trick I saw on many examples : the angle of rotation is in linear ratio with the seconds, minutes and hours.

At the hours a burst of space characters is sent to the serial port. The number of characters per burst being the number of strikes I want the bell to ring, the hours actually.

You don't really have to learn Processing to replicate this toy. In the analog_clock.zip attached you'll find the applications ready to run on Linux, Windows and MAC OS X.
For windows just extract the application.windows directory and run the exe. That's it.
The program will look for the first COM port available (serial port COM1 if you don't use it) and attach to it. The character to drive the bell will come out of it.
beehard443 years ago
on a recent trip to switzerland, the church bell has 2 tones, one for quarter minutes and a lower one for the hours. If it's 1215, the bell will ring one time in the higher pitch. If it's 1245, it will ring three times in the higher pitch. If it's 1300, it will ring 4 times in the higher pitch, few seconds pause, then one time in the lower pitch (it's 12 hour, not 24 hour)
Just a suggestion
5Volt (author)  beehard443 years ago
Nice improv. It might be time to use the other stand-alone version and modify the code for use of two separate bells : http://www.5volt.eu/archives/16
Ciao
A.
Rob K5 years ago
I have build the circuit but I am having problems.

So far it is just a relay, it doesn't click, . Can you explain this a litte better for me

Larger relay may require two space characters per click, others may require a larger Baud rate than the current 300 for a shorter pulse.
Where does this exactly get changed. I looked at where it might be but just messed up the .pde.

It is a fairly good size 5v relay. 115ma coil. 240v 16A. I was able to make it click like crazy when I ran the MiniPOV programing.
3293859947_91650913b8_o.jpg
5Volt (author)  Rob K5 years ago
Ciao Rob, sorry for not replying sooner but I was on business travel and did not have a reasonable access to the Internet.

Anyways, since it is the pulse on the serial port that makes the relay click, too short a pulse would not give time enough to the relay to move, It's just like hitting an open door with a fist : the door would not shut. To shut it a more gradual and prolonged push is necessary.
The relay seems OK, try replacing it with an LED + 150 Ohm resistor : you should be able to see it blink very shortly, stare at it in a very dim light. If not ( which I suspect ) the serial pulses are not going out through the serial port you are using. Look at the bottom of the Processing window (the console, at the bottom of the one with the code) and look at the list of the serial ports that processing has access to. Make sure you are using the first one in the list.
In case you can't or don't want whatever the reason, just change the 0 between square brackets in the line
port = new Serial(this, Serial.list ... , 300);
with the number you are using and which is in the list in the console window, possibly 1 or 2.
I haven't tried through USB to serial port converters, are you using one of these ?

If the LED blinks, it probably means it is too short for the relay, in case just change the lines (two of them one at the top and one at the bottom of the source code)
port.write(" ");
with
port.write(" ");
where I added 2 more spaces within the inverted commas. In case add more spaces. The LED should blink quite visibly now.

port.write(..) is the instruction that pushes a space character into the serial port
port = new Serial(this, Serial.list ... , 300);
tells the system you want to use the first serial port available with 300 baud speed.

Make sure you are powering the circuit, in case try with an external 5Volt supply (3 AA batteries will do)

Hope this helps.
Ciao

P.S. I did not write completely the line with the "..." not because I'm lazy (which I am) but because for some reason the Reply editor refused to accept brackets (round and square ones)... Do not copy and paste the lines above, just do your typing ! (one number and/or 1-2 spaces)
Best

Rob K 5Volt5 years ago
I will try that,thank you.

So far it is working when I apply 5 volts to the other side of the diode on pin 3 of the serial port( at least the circuit is right). I have always been partial to the if it low voltage and low amps Check it With Your Tongue. I didn't feel anything when the clock did its thing. It is a USB to serial converter. The computer and the and the Processing program finds it as COM8. or as 1 in the black text field below all of the code.

Below is a picture of the modified relay (striker). It works fairly well after I stretched one of the contacts and bent the actuator a little. It has 2.5mm (10 gauge US) copper wire JB welded to it. One piece for a striker and another piece for a stand that will be screwed to the base.

I am taking pictures as I go(so far at 22). I get this done, it is going into a big slide show. The pictures can be found here on my flicker SET page.
http://www.flickr.com/photos/20102150@N06/sets/72157613856120191/
It would not let me do a name of link for some reason.

Thanks again
Rob
3302307776_e72f1edeec_o.jpg
Rob K5 years ago
I would like to try the fire extinguisher striking clock, but I don't have a Arduino or have a parallel or a serial port on this computer. I found the fire extinguisher clock while searching around on Youtube for LED clocks.
5Volt (author)  Rob K5 years ago
The lack of the serial port could be overcome with an USB to serial cable which now come for a few dollar. haven't tried though, but it should be OK then. Did you enjoy the fire ext clock ? Ciao Alex
Rob K 5Volt5 years ago
I liked the clock. It gave me a idea on what I can possibly use a metal motor shroud for. It has a nice clang to it when you tap it with a knuckle.
5Volt (author)  Rob K5 years ago
Great ! Just remember to post pictures / video. Ciao Alex
Rob K 5Volt5 years ago
I looked into parts for this. Looks like for the electronics $8 US and for a USB to serial/parallel (parallel for the minipov) around $9 US.
5Volt (author)  Rob K5 years ago
$8 for the electronics ? Aren't you going to scavenge any broken electronic device ? :) Remember to post pictures/video ! One of my simplest projects, yet I'm so proud of it... Ciao Alex
Rob K 5Volt5 years ago
I don't really have anything to scavenge through. Well I had a old printer but all that got me was a broken powersupply and 2 stepper motors. The cast aluminum motor shroud is maybe worth 50-60 bucks and the heat sink for the control board about 30. The metal motor shroud and heat sink is from a Titan 440XC paint sprayer. I should be able to fit the electronics inside that control board heat sink or inside the shroud itself.
Titan 440 big.jpg
I like this! one question, 5Volt, I haven't taken a look at Processing, but would it be possible to program it to strike ship's time?
5Volt (author)  Jack of Most Trades6 years ago
Hello Jack, The bell strikes the time of the PC whatever it is : as long as the time on the PC is the one you want the bell to strike, you're all set. Otherwise Processing could read the time (if GPS time, through a serial port ) and time-zone correct it and use it as the time to strike (through another serial port). Hope I got the point, not really sure, though. In case, just write. Thank you, happy you like it.
I don't have a motor. This bell is from the 1880's and was used at a missionary church for the Slickpoo (Nez Pierce) in Idaho. It's cast iron, has a cast iron frame, and a wheel which pulled by a rope, swings the bell. It takes two people to even maneuver it on a dolly. Is it okay to post pictures here without an instructable, or should I forward the pics to somebody who can do something with them? Also, since I know where more bells can be found, is there a way to set up a sequence of bells ringing? Thus "chimes". Warning: bells are pricey: $200 for small antique farm bells, over $2K for church bells like mine (I was in the right place at the right time), and these are just the cast iron ones; brass is only for the rich, so unless you buy an Indian Fake Ship's bell fugettaboutit. All the ship's officers vied to get the bell from their decommissioned ships. Still, there's no reason not to collect a lot of misc. bells and have a go.
You can leave another comment w/ your pics at the bottom just click add images when writing a new comment and upload them to your instructables library.
5Volt (author)  Doc Holliday6 years ago
Two people to maneuver ! I think it works swinging the bell and leaving the clapper alone to hit the bell. I suspect that an electromagnet alone wouldn't be sufficient to move the clapper.
More likely a motor with a cam and positional switches.
For now post pictures of the bell here within a comment. Photograph the bell together with some dimensional reference (like yourself) near the bell so we can see the beast you'll be dealing with.
To play tunes you just need a few bells with electromechanical actuators: as always depending on the size of the bell it might be a cam motor or electromagnet. Each actuator would be driven by a low/medium power relay and the relay would be driven by an interface to a computer or standalone clock. The interface would be more complicated than the current.
The one described here can be modified easily with more outputs. The PC's serial port isn't.
Ciao
5Volt (author)  5Volt6 years ago
As a second thought, playing chimes has something to do with MIDI : there are DIY serial interfaces to connect to the serial port designed to receive MIDI commands and drive relays accordingly. Again, ciao
I'll get pics. It's at a friend's place in the country now. When we moved to the city, I had to store lotsa stuff. And sell my farm equipment...I miss my tractor, and my trout pond, workshop, lumber supply, storage areas ... 8<{( Working on moving back. The bell swings as you describe and the clapper hits it. However, hitting the rim of the bell with a piece of metal or even a rock works just fine. I also have one of those "one-lung" gas engines (ca 1920) what I swapped a bell for. It was used to pump water in a well house, so came with a hydraulic ram and is in really nice condition. I want to take both it and the bell and place them under glass tops as "end tables" in one of our courtyards. Ring the bell, fire up the engine. Back to the bell: what I saw in Tacoma (Point Defiance Park) was essentially a hammer head striking the inside rim of the bell (it's sheltered that way) and it looked to be driven by a large solenoid similar to those in washing machines (120V). Maybe X10 has something that would help me cobble this together? I'd like to do it this year, since I'm planning on building another country place real soon, and getting lesser projects done now is helpful.
ARIrish6 years ago
I believe this is my first ever comment...I'm absolutely trying this out, just as soon as I can get hold of a nice bell. I wonder if I can then get it to ring when the phone or doorbell rings...that would be great.
5Volt (author)  ARIrish6 years ago
If you're lucky enough to live by the sea you could easily find great bells for boats. They're not really expensive and have a great sound.
To make a single 'dong' when used as a doorbell just try to supply the clapper's relay with dc voltage (as in this design) and put a large capacitor (1000uF...4700uF, depends on the relay's coil specs) in series with the relay and a resistor (10kOhm) in parallel to the capacitor.
A presto
I have a *huge" wheel driven antique iron church bell, and want to automate a "BAWAOOONG" using this idea. I saw something along these lines at a waterfront park in Tacoma, WA. A hammer mounted to a solenoid slammed against the inside rim of the bell. I think I'd need a 120v washing machine solenoid and an old hammer head to do this, but have no clue about how to get a computer to activate it. Would appreciate ideas, and then send resulting pictures (and sound!) to here.
5Volt (author)  Doc Holliday6 years ago
You have a huge bell to work with ?!
Thanks a lot : I'm suffering from envy of the bell now :)

Do not forget to post video and pictures.

At http://www.5volt.eu a stand-alone version is available. Just the schematic and software and a few instructions though, not a real Instructable. It is based on Arduino.

As joe.08 suggests, a relay is the best option.

Due to the inertia of your system, a wider pulse might be necessary though.

For now why don't you send pictures with details of motor, bell and everything else ? I'd be very happy to help.

Consider also that in the Arduino version the display is not really necessary (unless you really want to know the time and not just enjoy the bell). After all with a huge bell would anyone notice the 1 Inch displays ? With a minor modification in the code the time could be sent to the serial port and thus monitored while setting the time.

If working with this PC-based version, to lengthen the pulse duration just modify the code and make it send a number of space characters through the serial port instead of just one.
Ciao
just use a relay
maestro86 years ago
Ack! Looks like someone hasn't read "The Art of Electronics"... Never forget that every digital circuit is, at heart, a specially-designed analog circuit! Your circuit has a few shortcomings that may bite some unwary hobbyist in the arse, if she makes a poor component selection. I'd be a bit concerned about connecting this circuit to my USB port... you don't seem to have any provision for limiting the current drawn from the USB's 5 volt supply! Why not add a resistor between the NPN's emitter and ground? I'm also concerned about your use of the RS232 signal. According to spec (which isn't often followed) it may swing as much as 15 volts. Between the diode and the NPN's base-emitter junction, only 1.5 volts will be "dropped". The rest of the drop will happen in the resistor, causing a current draw on the order of 10 mA. This is more than enough to charge the cap and saturate the transistor... luckily, most RS232 drivers have short-circuit protection. Don't depend on source protection in all your designs, though! It's a bad habit to get into... Lastly, there doesn't seem to be a clear path for the capacitor's current to flow to ground, other than by leaking through the NPN's base-emitter junction. This makes it quite difficult to determine the RC time constant for your switch. An easy fix for this would be to add a resistor across the capacitor. A more elegant fix would be to introduce a 555 timer IC in "single shot" mode... just be sure to keep the wide swing of the RS232 signal in mind.
5Volt (author)  maestro86 years ago

> if she makes a poor component selection

Are you assuming that if someone makes a poor component selection it must be a woman ?
LinuxH4x0r6 years ago
Cool! might have to try this
technick296 years ago
This is great! I can't wait to try this myself...
5Volt (author)  technick296 years ago
...and post pictures !
Smart.
Way too complicated for me, but amazing job you did anyways, a very good job.
5Volt (author)  GorillazMiko6 years ago
It isn't too complicated : now the exe is there, Meccano you borrow from a friend of brother or your own drawer, and the soldering stuff can be done by a friend or yourself : it is very basic. Ciao
nf1196 years ago
I love this kind of stuff. Did you have to disable flow control on the serial line?
5Volt (author)  nf1196 years ago
The program, ehr...the sketch, takes care of it all.
nrlaing6 years ago
That's self defeatist. Nothing is too complicated, given enough time... :)
5Volt (author)  nrlaing6 years ago
No, no ! This really isn't (too) complicated. To remove the Processing IDE step I uploaded a zip file with the executables ready to run on Windows, Linux and Mac OS X : just extract the 'application.windows directory and run the .exe.
That's the clock showing up. One step off.
The electronics can be wired by anyone with a minimum skills. A friend in any case is always available.
And Meccano, don't even mention it !
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!