Overall, our system is able to adjust to the angle of the light. When holding a lamp pretty close to the blinds, our system responds intelligently and correctly. Although the system seems accurate to the human eye, there are many aspects that prevent further accuracy.
When implementing the LEDs, we noticed that the ADC itself seemed to be affecting the signal itself. After implementing the op-amp (see hardware section), we then noticed that our signals were affected by 60 Hz interference from the electricity lines in the room. We added a very low-pass filter which corrected for this problem. Further, although we intended to opto-isolate our H-bridge, we ran out of room for the extra hardware. We did not notice any problems with the MCU resetting, so we decided not to add any opto-isolation.
Since our code only has a few tasks, it does not tax the MCU too heavily. Our keypad seemed very responsive as can been seen in updown mode when the motor responds instantaneously to the press of the keypad. The only interrupt is for timer 0 which keeps track of time for each of the tasks (it only has four lines of code). Although we did not have any concurrency code to prevent multiple tasks from accessing the same variable, we did not see any problems with the code sinc ethe tasks run serially. Further, we did not think this was a problem since tasks cannot interrupt each other and are run on a best effort basis. The only bug that we noticed was in the user interface where the user sometimes needed to press the ‘*’ button more than once to reach the menu.
Most of the inaccuracies are seed in the optimize mode. First, the LEDs are hand adjusted to an approximate angle. Since we only have three LEDs, we decided to have one horizontal and two approximately 45 degrees above and below horizontal. Adding more LEDs to increase sensor angle accuracy would require better precision in mounting the LEDs instead of simply hand adjusting the LED wires to the desired direction. Further, since the LEDs are mounted behind the blinds, the angle of the blinds sometimes affects the perceived angle of directed light. Since some light is able to penetrate the blinds, we did not feel the need to use more LEDs to detect the angle. Sometimes turning the blinds from a down angle to a horizontal angle would cause our system to think it needed to first go to a higher angle.
Next, although we originally wanted our project to follow the sun’s rays, we realized that there is too much ambient light and not enough direct light to accurately detect the sun’s position. Further, it would be very hard to adjust the sun when wanted for testing. Instead, we used the lab lamp to test our SmartBlinds since it was easily accessible and could provide intense, directed light at whatever angle we wanted.
Additionally, the mechanical system that was used to adjust the blinds angles caused the largest inaccuracies in our system. Even though our Hall Effect sensor could accurately determine the blind shaft’s rotations, we cannot accurately account for the give caused by changing rotation directions on mechanical shaft. Since miniblinds are not designed as precision instruments, we could not reliably adjust the blinds to more than three different positions because of this give. Although our system starts our pretty accurately (to the human eye at least), it tends to lose track of its position over time due to the give in the mechanical system. To improve this, we would need a better system of detecting the blind angle rather than counting rotations through the Hall Effect sensor.
Since the other modes are affected by time rather than the LED input, we were able to provide accurate results. Since the tasks affecting the alarm run multiple times a second, the user would not be able to detect any accuracy, since the motor itself takes a few seconds to open the blinds in alarm mode. The updown mode which allows the user to manually adjust the blinds is able to give response to the user under 300 milliseconds since the task is run so often.
We practiced safety by switching the motor power supply off when not in use. Since we used DC voltage, touching the wires would not be very harmful. The most dangerous aspect of our project was creating the wood mounting bracket in which to mount our LEDs and motor. The screws used for the wood were too long and went through the boards and would be dangerous to touch. We tried not to interfere with any other people’s designs as we did not general any RF interference or any obnoxious noises. The only aspect which might have distracted the other students was the light source that we waved around when testing our design. We suppose it would not be pleasant to look directly into a lamp although not extremely harmful (and a lot less dangerous than looking into the sun).