X(r/n)os
Virtually Maker Faire 2020
May 22nd-23rd
What is "time" ?
It’ s a matter of course. However, nobody knows its true form, because it is not a substance but simply a conception. Time flows continuously. The time represented by a digital number only captures the moments. Where does it come from? Where does it go? What hides behind it?
We can see the “hour” but “time” itself is invisible. Here we demonstrate an electrical clock which expresses the bilateral nature of “time” by digital numbers consisting of acrylic pillars and sinking them into an aquarium. Please think about the duality of "time" this clock emphasizes and the characteristic of the human kind that we catch only a glimpse.
[Software]
We developed only 2 types of firmware for Arduino, one is for main control board and the other is for peripheral board. The firmware of the main board is to manage the whole process to display the current time and it has the following functions: reading the hour from the RTC module, driving a vibration motor, adjusting parameters like offset values of the acrylic poles’ positions or the hour, and operating peripheral boards to rotate motors for the acrylic poles suspended from their rotors to move the correct positions so that they indicate digit numbers of the time. At the beginning of time-indicating process, it reads the current hour via I2C whenever receives interruption signal caused from RTC module in each second. Then, it transmits each digit number of the hour to each corresponding peripheral board. During working, it always shows the displaying time on a LCD and can be changed offset value of the acrylic poles’ position and the hour memorized in the RTC module with switches if required.
The peripheral board’s firmware controls a motor driver circuit connected to the board to rotate motors attached on the driver circuit when it receives an operation signal from the main control board. When receiving a digit number of the hour from the main board via I2C, it checks all positions of the acrylic poles and then finds which poles have to be wound up or down to make the ordered number. After that, to rotate a motor each 2 I/O ports on the peripheral board connected to a driver circuit change their voltage output with a proper order and the board totally uses 14 I/O ports. Each state of a pair of I/O ports transits as High and High, High and Low, Low and Low, and Low and High by turns. Every change of the output state of I/O ports brings rotates a motor at a few degrees angle, consequently the peripheral board repeats it for a certain times as which part of a digit number a suspended pole composes.
[Hardware]
This clock is composed of 5 microcontroller circuits, one main control board and 4 peripheral boards, 28 stepper motors and 7 driver circuits, RTC module, and vibration motor unit. The primary purpose of the device is to place 28 acrylic poles to make digit numbers of the current hour. In our case, we chose a 6-lead uni-polar stepper motor to handle the positions of acrylic poles, because we preferred to make the system simply as possible and this motor enable us to control its rotational speed and angle without any sensor. Firstly, the main board consists of one Arduino Uno and extension circuit equipped with LCD module and 5 switches. It mainly takes charge of indicating time and controls all other components. Next, the peripheral boards drive stepper motors to place them to make digit numbers of the hour. All boards have Arduino Pro Mini and connect to motor driver circuits. Each one operates 7 motors with 14 I/O ports connected to the motor drivers. For the sake of rotating stepper motors, we developed our own driver circuit, which has one logic inverter and two N-ch MOS-FET arrays. Without it the peripheral board is required to use 4 I/O ports for driving a uni-polar stepper motor with two phases on full-step drive method. However, our driver circuit can generate inverted signal of the output, which is necessary to drive with the above method, and consequently reduce the required number to only 2. RTC module always reckons the time even the main system powers off with its battery-backup mode. This module implements I2C communication pins for a device to acquire the current hour it counts, and generates programmable square-wave with 1 Hz frequency for an external interruption each second. At last, vibration motor is used for beating seconds with sound and ripple wave of water caused by shaking small jewels tied to it. A spotlight casts the light to the wavering water, then the water reflects the light, and it projects an optical image of the water ripple on the back wall.
[Technical Requirements]
This clock requires a stand whose size has W850 x H800 x D425 (mm). It receives electric power from USB (5V, 500mA) power adapter for logic circuits (microcontroller boards) and 5V 6.1A power adapter for demand of driving motors. We also use 3 spotlights, one is to project an optical image of water ripple on the back wall and remaining is cast the light behind the clock. The one spotlight casting a water image is fixed at approximately 3.6 meters far from the clock and 2.8 meters high from the ground and inclined at 30 degree of pitch angle under from horizontal.