Our final week in the project included the assembly of the final model as well as code refinements. The model involved the use of four, mounted, hexagonal boxes (two of which were fitted with sensors and LEDs/RGBs). The two functional modules were fitted with an Arduino Uno each to accommodate for two separate codes, one of which to change brightness according to distance and the other to change colour from blue to red.
Despite the use of 11 leds for the brightness changing box and 8 rbs (16 leds) for the colour changing box, only 2 PWM pins from each Arduino were used without fully draining the 5v supply. Last week the colour changing RGBs had an issue where the colour would transition from red to blue within 5cm of the ultrasonic sensor when the RGB should have stayed red. This issue was fixed when the code was altered to remove map functions.
For our penultimate week we focused on beginning the frame of the final model as well as scaling up the coding to accommodate for more sensors and lights. We started by purchasing new HC-SR04 ultrasonic rangefinders as they were less expensive than our original sensor and hence could be used in greater volume. This variety of sensor has 4 pins instead of the 3 from the parallax sensor (VCC, TRIG, ECHO, GND) and required extra coding to convert the time between emitting and receiving the signal to mm.
Our final composition is made up of 4 separate hexagons, each with an HC-SR04 along with an undecided number of LEDs/RGBs depending on the thickness of the light diffusers. Each Arduino UNO has enough digital pins to power 2 hexagons.
As of this week our model has a completed infrastructure, comprised of cardboard inserts inside hexagonal boxes that are in turn mounted on a vertical board. These have holes drilled through their backs to thread the cables through.
Week 3 of this project involved the testing and implementation of an ultrasonic range-finding sensor into our design for an interactive lighting system.
The sensor in question is a parallax ultrasonic ping sensor (#28015), which emits an inaudible longitudinal wave towards an object and measures the distance between it and said object by measuring the time taken for the wave to deflect back to the receiver.
After learning about the basic coding of the sensor via it’s sample code, the component was combined with the LED fading sketch from week 2 to activate the LED within a range of 20cm from an object and then fade up to maximum brightness at 0cm (and vice versa when moving the object away). As we wanted to incorporate a more hands-on experience with our project, we set the sensors maximum range to within close proximity of the user’s hand.
After conducting the test, we are now able to expand this to multiple LEDs instead of just 1 and to use RGBs so that the colours can be altered during fading (new concepts below). Hence we were able to resolve our product more than in previous weeks.
For our first week, we focused on concept ideation and research into sensors. Project Ilum endeavours to create an interactive, illuminating user experience by utilising ambient lighting via the use of LED’s and touch sensors.
Our initial ideas focused on creating lights that can change colour based on the speed at which the user moves his/her hand over a sensor. We then looked into creating interactive light interfaces built onto walls for use by multiple people.
We conducted research on touch sensors, such as capacitive touch sensors and PIR touch sensors.
However, these components would compromise the aesthetic and interactive appeal we want to put across to the user. Hence, we moved onto researching conductive paint.
This conductive paint could be used to create custom circuits that go beyond the breadboard and can be used to detect when a person touches it to turn on LED’s accordingly.
For our final week, we focused on construction of the final prototype. We established the flow chart for our code before assembly of the final model.
The construction of the final model was intent on reducing friction so that the DC motors (with their low torque output) could be able to move the segments. The segments were made using lower thickness PLA as well as use of washers to split the segments and reduce friction.
The motor shield required installation of the adafruit library into the Arduino software. Once installed, the DC motor ran continuously. However, the segments were still too heavy for the motors to move.
To further refine our prototype, our final proposal is that we would motors with inbuilt gearboxes to increase the torque output. The segments would also be replaced with two chassis pieces that are joined via two flexible plastic tubes. This would better emulate the form of a caterpillar’s movement.
This week we focused on the general refinement of our first prototype. After discussion, we concluded that servos would be impractical due to their torque output being too high for the movement of the device. We concluded with using DC motors and wheels, however, this in turn caused more issues to arise.
Firstly, we needed to reduce friction in the 3 main pivots, which was achieved with minor adjustments and higher component quality. Finally, we installed small feet on the segments to constrain the movement within a certain bracket. This was necessary as the direction of the driving force of the motor needed to not go through the pivot.
We were also given an ‘Infra Red Obstacle Avoidance’ sensor to allow us to code the device so that it would not collide with physical objects as well as change its speed accordingly.
During the second week we continued to learn and explore the Arduino software. We successfully operated LED lights and added resistors to control and reduce the current flow. We discovered that the amount of resistance was dependent on the type of resistors that were given using the ‘electric colour code’ a system, and that having resistors in circuits was necessary due to Ohms law whereby the current through a conductor is directly proportional the voltage with the resistance acting as a constant of proportionality. We learnt the effects of connecting resistances is parallel and in series and the circumstances as to when one is advantageous to the other. We also connected a push button to the circuit board that enabled the LED to be switched on or off.
We discovered how to read data using the serial monitor as after having read the code it produced a series of 1’s and 0’s that were produced by pressing the button, this diagnostic told us whether our circuit and code was set up correctly.
For the first week we began to search for inspiration and product our initial concepts. From the first session of learning to make an LED blink on an Arduino board, we began by brainstorming ideas related to a heart pulse rate in humans and other mammals. Due to the distinct nature of a heart pulse, a system of flashing LED’s that visually emulated the sound would be very recognisable.
We also explored the art of snake charming in which snakes are hypnotised by the sound of a Pungi instrument that causes vibrations within the skull structure. This causes the snakes to become transfixed and thus they calmly wave around and twirl. This system could be potentially replicated using electric motors/servos that activate when sound is detected to oscillate a small sculpture that would emulate a cobra’s movement.