At the beginning I would like to say hello, because as you can see this is my first post. After the electrode, I have been calling for a long time, but I have never been on the forum. Today I decided to take a step forward, show me something specific.
The idea of the project tries as much as the world, repeatedly rolled on the forum. Nevertheless, I would like to show my realization of this idea.
The system consists of two main parts: a programmable propeller and a drive part.
The heart of the system is the ATMEGA32 microcontroller managing the display content. It controls 32 blue smd diodes via the 4 serial LED drivers MBI5170. The time is taken from the RTC DS1307 system, with the uC connecting it to the I2C bus. The image synchronization is of course carried out via an optoelectronic sensor. 32 KB flash memory in the instant allows support for multiple display modes.
I tried many solutions and the best engine turned out to be HDD. It works almost silently, has a high speed, 6 threaded holes for easy attachment of the propeller. The use of such an engine, however, was associated with the use of a special control. The optimal solution seemed to me to use a dedicated PHILIPS TDA5140A driver working in a standard configuration (though not entirely because the motor winding is connected to a triangle, so you had to create an artificial center point). Energy transport is carried out using brushes. I am aware of the imperfection of this solution, but I did not want to complicate the project further. In this matter, I leave myself an open gate in the design of the next version.
As you can see, the casing is made in 15 millimeter plexiglass. Such thick walls make that at 50 revolutions per second the noise level produced by the clock remains at a very decent level. In addition, if something happened inside, nobody surrounded by the head would lose. The rear cover is fixed on 4 screws, the rest of the structure glued with ACRIFIX 192 adhesive.
Because I am not a professional, the documentation created during the clock production has many shortcomings, therefore I do not attach it yet. I will try to fine-tune it a bit and then I will put it on the forum.
I am open to any suggestions regarding the project.
Below is a link to the video showing the work of the clock:
and one more question how did you balance it that it is so ideal? Did you have a lot of work with it?
It's probably not a matter of balancing, but the fact that it is so solidly attached, and finally the engine from HDD is quite strong.
I still have a question, what is the display synchronization with this optoelectronic system? I know that the sensor detects that the plate has turned (made a circle) and then it calculates the speed of rotation? But how does it synchronize it all so that these letters and tips do not go off? I know that on the elce was a project in which someone had such a synchronization, regardless of the speed of rotation always displayed correctly, thanks to this sensor. If I had to program it myself, I would not even know how to do it
Could you discuss this programming process in more detail?
I am impressed, the design is well designed and what showy!
You have to admit that you have the skills when it comes to programming, and in the spectral clocks, the issue of software - as you can see in your example - can make a difference. I greet and wish you further, successful projects.
I have one question: would it be possible to use a motor with a larger computer fan, eg 12cm instead of a motor with HDD? I would make such a watch myself, but I do not have such manual skills, I would have a problem with the mechanics of the system.
It's probably not a matter of balancing, only that it is so solidly attached, and finally the engine from HDD is quite strong.
There is a lot of truth in it. The propeller is bolted in several places and in addition the engine has such a compact construction that I have the impression that the car could drive over it. Nevertheless, when designing the tile, I tried to arrange the elements reasonably well, so as to minimize vibrations. However, I did not use any advanced tools, I rather did it by eye and peasant reason
I will present the software model. First of all, let me add that atmega works with an external 16 MHz quartz, and all counters work on a f / 8 countercatalogor.
The key element is the optoelectronic sensor (nothing other than the IR diode and phototransistor in one compact housing) which when the propeller passes for 12 hours sets the high state INT0 causing a corresponding interrupt. In this interrupt, the state of the 16-bit counter TIMER1 is reset. Then nothing happens until the next interruption coming from INT0. Then the program checks the TCNT1 value. If it is too big or the overflow of this meter has been noted, it means that the propeller is spinning too slowly to display anything, because the image obtained would be of low quality due to blinking. However, if the TCNT1 value is below the threshold value, the system works as follows:
1) writes to the global variable the value of gClicksPerStep = TCNT1 / 240; 2) initializes this value 8 bit counter TIMER0, TCNT0 = 255 - gClicksPerStep; 3) activates the interrupt caused by the TIMER0 overflow 4) resets TCNT1;
In this way, with every rotation of the propeller, the current gClicksPerStep variable always holds the current number of clocks (with a prescaler) which the system needs to cover 1.5 degree angles (higher resolutions no longer improve the image quality).
It only remains in the interruption of TIMER0 to handle the diodes, checking first in which step the propeller is located and then sending the corresponding data to the LED drivers.
Added after 10 [minutes]:
I have one question: would it be possible to use an engine with a larger computer fan, eg 12cm instead of a motor with HDD?
The first version (PCB was still in the shape of a circle) was driving this kind of engine. However, I could not get high rotational speeds at a relatively low voltage, so I could see how the image blinks. Besides, mounting the propeller was cumbersome.
Very nice design. Write if the big problem is the use of graphics in the project. The one you presented is a revelation to me, I did not meet with a clock displaying such graphics. What do you think ? how much this clock can withstand on the assumption that it will work 24/7. Did the changes shown in the movie in the display of the content were entered into the program or maybe you switched them with an additional impulse in the power supply? I have not seen the IR receiver.
The graphics were not a big problem. Writing a simple C ++ converter from a monochrome bitmap to something I can upload to prock was a matter of one evening of knocking. The rotating cube is composed of 15 frames (only enough because of its symmetry).
Durability, due to the brushes used, probably will not be delightful, but you should enjoy it while it shines
The modes switch on the video themselves. In the final version, each time the device is turned on, the program reads from the internal eeproma in which mode it last worked, goes to the next one and then saves it back to the eeprom, and so on and on.
Once, probably on Youtube, there was a movie showing interesting rims - pimpstar. The idea was based on a spectral display, it consisted of three light lines, additionally equipped with multi-colored LEDs. It looked nice, you could import a bitmap. I thought so, that maybe it will be an inspiration for you if you have not seen it
I have to congratulate you because the whole construction is at a very high level !! I wanted to do something similar, but it's still beyond my strength. I was interested in the cost of building this wonder
Copper is relatively soft, but the brushes work on the commutator with very little force, which is why I think that for a long time I will be able to enjoy the still active clock. But anyway, brushes are brushes, they will surely wear out sometime.
Determining the construction price is a bit cumbersome. While the cost of the propeller and engine driver can be estimated on the basis of the price of parts (PLN 50-60), the rest comes from domestic scrap. The engine was removed from the Seagate 120 GB combined drive (four years ago it cost over PLN 400
) and the casing was made of a piece of plexiglass, which lay so long that even the protective film on it was dry and cracked. The glue used was brutally forced out of the seemingly empty tube
. Sometimes it's good to fly around the house and collect old lumber, you never know what interesting you can put together
Hello, of course, a great job! congratulations, but I still ask you about the control of this engine from HDD .... you provided a PDF and it's fun only whose application you have used from page 9 or from page 11
there is a different scare - could you illuminate it more accurately? or what to pay attention to - because I have some old HDD and I would like to use it for such "nefarious" purposes
and it's only cool, whose application you used the one from page 9 or from page no.
Actually, I forgot that there are two. I used the simplest one, on page 9. It's not too much to describe, put the system in a few passive elements and you can connect it to the motor.
What does setting up and remembering hours look like?
time is set programmatically. It looks like: 1) I am uploading a program in which the time is set, e.g. at 12:00 2) I turn on the watch at 12:00 3) not switching off I upload a new program that no longer sets the time.
Time is kept in the DS1307 system, and thanks to the use of a backup battery (shown in the picture), it stays there for a very long time. The accuracy of the watch is satisfying.