By: Nicole Yu
Overview
Description:
A remote controlled device that switches the light on and off from anywhere in the room.
Device In Motion:
Overall Photo:
Detail Photos:
Device in Use:
Process Images & Review:
Wooden Casing:
This was the first time I used a laser cutter and 3D printer, so each step was very new and unknown, but overall, it was a great experience.
Pulley Pivot:
The main issue with the pulley was that the string would constantly come loose due to the strong force of the stepper motor. This caused me a lot of trouble, but eventually I believe I came with a that works well. Next time, I’d 3D print a disc with larger grooves and pre-made holes to tie the string to.
Discussion:
The comments gathered from my critique were an interesting mix, since some points others critiqued, others liked. Regarding the critiques about the device, one mentioned, “Work on mechanical noise, especially if it’s being used late at night.” Another stated that they liked the thunk sound, but I have to agree with the first person. Since it is to be used late at night, the sound, though quick, is a little loud. If I made another one, I could definitely try to find a way to dampen the noise through slowing the motor down or placing foam in places where pieces touch. Another critique I agreed with was, “The chair looks like it’s in the way a bit, maybe make a shelf for the power bank or tape it to the wall (in a nice way) so that you can move more easily in and out of the room.“ My original design didn’t use the massive power bank but instead the battery that came with the kit, which fit in the wooden casing. However, whenever I used it, I found that the stepper motor would jitter a lot. As a result, I changed to a power bank. I temporarily used a chair to keep the power bank from falling to the floor, and later used a headphone case to hang the power bank on the wall. In the future, I would make a wooden casing or shelf that could integrate the power bank well. What I found most difficult was making the pulley mechanism. I haven’t had much experience making mechanism, so my theory of how the device works didn’t always line up with how it actually behaved. If there was more time for this project, I think I would’ve started by experimenting with how the mechanism would work first. That would smooth out the workflow a lot.
Overall, I’m pretty happy with the outcome, all things considered. A comment basically sums up my goal, “I really like the thought that went into designing the actuation and how it interfaces with the light switch.” I wanted to create a device that would look like it’s a part of the light switch, and also work. Ideally, the device would be thinner or be pushed into the wall, but with current constraints, (large stepper motor, renting), that wouldn’t be possible. I think the craft could have been improved, but given that this was my first time using a laser cutter and 3D printer I think it’s not horrible, and now that I have this experience, I know what works and doesn’t, and my device designs can only improve from now. If I could give advice to my past self, I’d say that when using new machines, it’s best to start working on them early, so if something fails, there’s time to use the machine again.
Technical Information:
Functional Block and Schematic Diagrams:
Code:
/* Personal Assistive Device: Light Switcher By: Nicole Yu Description: A device that flips the light switch on and off from a distance Pin Mapping: Arduino pin | type | description ------------|--------|------------- 9 output Stepper Motor [Step Pin] 10 output Stepper Motor [Direction Pin] 11 input IR Sensor Credit: 1. How to wire and code the stepper motor: www.youtube.com/watch?v=GgfgWU0bpHk 2. How to code the IR Sensor: www.youtube.com/watch?v=9cJT-tfODsg */ #include <IRremote.h> const int STEPPIN = 9; //pin to pulse for steps const int DIRPIN = 10; //pin to change step direction const int RECVPIN = 11; //IR sensor void setup() { Serial.begin(9600); // IR SENSOR PINS IrReceiver.begin(RECVPIN, ENABLE_LED_FEEDBACK); // STEPPER MOTOR PINS pinMode(STEPPIN, OUTPUT); pinMode(DIRPIN, OUTPUT); } void loop() { if (IrReceiver.decode()) { Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); switch (IrReceiver.decodedIRData.decodedRawData) { // TURN OFF LIGHT case 0xF609FF00: // remote: down button stepperREV(); // flip switch down for (int i = 0; i < 50; i++) { motorStep(); delay(1); } stepperFWD(); // back to center for (int i = 0; i < 50; i++) { motorStep(); delay(1); } break; // TURN ON LIGHT case 0xF807FF00: // remote: up button stepperFWD(); // flip switch up for (int i = 0; i < 50; i++) { motorStep(); delay(1); } stepperREV(); // back to center for (int i = 0; i < 50; i++) { motorStep(); delay(1); } break; } IrReceiver.resume(); } delay(10); } // DIRECTION OF STEPPER //change the stepper direction to forward void stepperFWD() { digitalWrite(DIRPIN, HIGH); } //change the stepper direction to reverse void stepperREV() { digitalWrite(DIRPIN, LOW); } // STEPS STEPPER TAKES //have the stepper motor take one step void motorStep() { digitalWrite(STEPPIN, HIGH); delay(1); digitalWrite(STEPPIN, LOW); }