Window Shade Alarm Log
Cole, Arnob, and Sam:
Met as a group to brainstorm ideas. Ultimately came up with this proposal: We are hoping to create an apparatus that opens your window shades automatically in the morning which would act as a nicer way to wake up than an annoying alarm. We would a servo motor to open the shades paired with an Arduino. The stimuli to open the shades could be activated based on time, light sensor, noise, and/or power from a solar panel.
Cole, Arnob, and Sam: Met again to come up with a list of supplies needed.
Cole: Focused on the hardware needed for the frame (wood, blind, screws, etc.).
Arnob: Focused on the hardware needed to make the shade move (servo motor, gears, etc.).
Sam: Focused on the Raspberry Pi and the software needed.
Cole, Arnob, and Sam: Met with Andrew on 9/12/17 for weekly meeting and discussed progress so far. Also set following tasks to for the week.
Arnob: Familiarizing himself with 3D modeling software and making gear.
Sam: Familiarizing himself with Raspberry Pi and making the display work.
Cole: Familiarizing himself with Raspberry Pi and making the motor work.
Cole, Arnob, and Sam: Met with Professor Feher and Andrew on 9/15/17 to discuss project.
Cole, Arnob, and Sam: Met as a group for 2 hours on 9/17/17 to continue working with Raspberry PI (display and servo motors). Finalized supply list. Had some difficulty getting servo motor connected to Raspberry PI.
Cole, Arnob, and Sam: Met with Andrew on 9/19/17 for weekly meeting. Each member worked with Andrew on their currents individual tasks as detailed below 1 hour. With the help of Andrew, we decided that we would use an Arduino Dual Step Motor Driver Shield paired with the stepper motor, which can be controlled by HIGH and LOW outputs from either an Arduino or Raspberry PI.
Cole: Worked on connecting stepper motor set up. This included determining that we will use an Arduino to control the motors as well as cutting and re-soldering the servo motor wires.
Sam: Continued to set up LCD display to work with Raspberry Pi. This included installing the necessary drivers to the Raspberry Pi and writing the necessary code.
Arnob: Continued to 3D model the gears with SolidWorks so they can help open the blinds.
Each member continued to work on their individual tasks over the weekend, as detailed below. Also worked on their group presentation.
Sam: In the afternoon of Sep 22nd (Friday), Sam spent 2 hours installing the arduino library for the 7-segment LED backpack, a substitute for Raspberry Pi LCD touchscreen. Sam programmed the arduino to make it available for users to set their time with two buttons. Video for Friday's work Spent 2 hours on 9/24 afternoon figuring out the serial communication between Rpi and arduino.
Arnob: Spent 1 hour on Sunday 9/24 making presentation for class on 9/29. Spent 2 hours on Monday 9/25 creating models of gears on SolidWorks. Referenced McMaster-Carr for ideas on different types of gears.
Cole: Spent 2.5 hours in lab on 9/24 to get stepper motor working and update wiki page and log. Finished wiring and successfully programmed it to turn. Stepper motor would only vibrate, not turn. Determined that battery pack is needed in order to provide more voltage (12V).
Met as a group with Andrew and Professor Feher for weekly meeting on 9/26. Each member discussed and worked on their individual components of the project.
Cole: Got the stepper motoring working (with the help of Sam and Andrew). Solution was to unplug one of direction wires. Still unsure of why this works (possibly were sending opposing signals to each other). Will continue to investigate.
Arnob: write what you did at weekly meeting here
Sam: write what you did at weekly meeting here
Cole: Worked in the lab on 9/28. Improved the functionality of the stepper motors, discovered root of wiring problem with Andrew's help, and figured out how to write code for the stepper.
Sam: Worked in the lab on 10/1 fo 3 and half hours in total. First worked with Cole to get NTP running on the RPI. And then installing the LED backpack library and other neccessary standard library (SPI.h) for the Arduino IDE on Raspberry Pi. Improved the code I have before to enable the Arduino correctly print out the time transmitted given by raspberryPi.
Cole: Worked in the lab for 1.5 hours on 10/1 with Sam in order to control the Stepper Motor via the Raspberry PI. It was successful. Also worked with Sam to get NTP running on the RPI. Also spent 45 minutes outside of lab learning how to retrieve local weather data from a Raspberry Pi using the Wunderground API.
Arnob: 3D-printed first gear that will be directly connected to the Stepper motor. Researched the different possibilities for the other parts of our machine, and downloaded the respective templates from McMaster-Carr. Finally, started editing these parts on SolidWorks so we can utilize them for our Window Shade Alarm.
Next steps for group:
- Have RPI send time to Arduino
- Have Arduino accept time from used
- Have Arduino run code at given time
Team met with Andrew on 10/3/17 for weekly meeting. Team discussed mechanical design of project, showed progress so far, and discussed goals for the week.
Cole: Before meeting spent 1.5 hours getting Raspberry Pi to retrieve current weather data and print in nice format. Used sample Python code found on this website for a base, changed it slightly. Goal for the week is to get RPi to print 3 day forecast.
Arnob: On 10/8, spent a few hours modelling 3 different parts on SolidWorks for the assembly, including redesigning the gear which is directly attached to the stepper motor (changing the number of teeth and diameter of the hole), modelling a much bigger gear with 4x the number of teeth (which will attach to the stepper motor gear and increase torque), and a small metal bar/cylinder which will hold the larger gear. Attached is a hand-drawn diagram of the assembly.
Cole: Spent a few hours during the week working to have the Raspberry Pi send the current weather data (that it now successfully fetches) to the Arduino in order to display the weather to the user.
Group met in lab to work together for a few hours on 10/8/17.
Cole: Successfully sent weather data from Raspberry Pi to Arduino with help of Sam. Next step is to have Arduino collect and store time and weather data from RPi using arrays so it can be printed to LCD later.
Sam: Spent one and half hour figuring out how to request print and update time in python and led backpack. It works successfually and I also completed the program of setting time, displaying time and compare setting time with the display time. However, on Sunday, the ledbackpack goes wrong without any reason; it can not display any digit we told it to print and any arduino program got into conflict it(program in loop() is not running. Cole and I spent over 1.5 hours on that, but it shows no sign of getting better.
- Begin to order parts
- Get LCD display working to display time and weather
- Trigger stepper motor at certain time set by user
- Begin to assemble physical apparatus
Group met with Andrew at normal meeting time. Discussed progress and goals for the week. Ordered new LCD parts. Fall break.
Met with Andrew on Thursday due to fall break. Discussed further progress and discussed goals for the week.
Cole: Soldered new LCD backpack and worked on code for sending weather to Arduino with Sam's help.
Sam: Worked on code for sending weather to Arduino. Worked on asselmbling codes of time display, motor control and weather display together.
Arnob: Spent a total of 3 hours this week watching videos to about SolidWorks. Although I have already downloaded a few objects from McMaster-Carr and successfully edited the models on SolidWorks, I still have a lot to learn about the various functions on SolidWorks, and I need this information the complete our project well. As a result, I thought spending those 3 hours watching videos was extremely helpful! Because of these videos, I should be able to model the complete assembly of all the different parts I need for the project (at least a good draft of the assembly), and show this assembly to Andrew on Tuesday 10/31 for feedback. This YouTube channel has been very helpful for learning SolidWorks: https://www.youtube.com/user/solidworks/featured
Cole, Arnob, and Sam: Traveled to Home Depot from 9-11AM on Tuesday, 10/24 to buy supplies needed for the construction of our device. These supplies included 2X4's, nuts, screws, and other supplies which are listed in our budget list. We should now have everything we need to complete the project.
Cole: Finalized Python code that sends string of weather data to Arduino. Sam also worked a lot on this code. Also researched how to use the second LCD that was purchased recently which will be used to display the weather data. Ordered the blind. Plan on building the frame in the upcoming week.
On Tuesday, 10/24 spent one hour or so to make a basic setup to the "advanced" LCD with Andrew and Cole. Assisted Andrew finish the soldering part. On Sunday afternoon, 10/29, from 15:00 to 18:30, assembling all the code we have before together, including time display on both RPI and Arduino, user input with no delay functions (so we can update time from time to time without blocking the thread) and stepper motor.
Arnob: Spent 3.5 hours on Monday 10/30 finishing watching videos and finishing modelling about 30% of all parts needed for the project (on Autodesk Inventor).
The next big step in terms of the Arduino/Raspberry Pi is to create one script that calls on all of our other scripts in order to have all the programs run together as one cohesive unit.
Cole: Spent time on 11/2 in lab making adjustments to code that displays weather on LCD.
Cole and Sam: Spent 3 hours on 11/5 assembling frame for window shade and attaching the blinds to it. Had to use a saw and a power-drill. Added metal screw eye in order to keep blind pull strings at proper angle.
Arnob: Spent 2.5 hours on 11/6 continuing modelling various parts on Autodesk Inventor for the project. These parts include the larger 36 teeth gear and the spool attached to the gear (which will be used to hold the thread). Should be able to print these parts tomorrow (11/7) after Andrew approves them
Cole: Worked with Sam on weather program. Also worked on planning the physical layout and modeling the box for housing the electronics and LCDs.
Sam: Spent 40 minutes after group meeting on Tuesday (11.7) to debug the weather display on the LCD shield. Spent Two and half hours finishing assemblying all parts of programs.
Arnob: Spent 1 hour on Inventor modelling the mechanism that will be used to twist the rod that opens the blinds. (Sorry I did not spend much time working this weekend, for I had to study for my 3 exams this week. I will make up for lost time by spending double the amount of time working next weekend I promise)
Cole: worked on making box that houses electronics
Cole: Finished making box that will house electronics over the weekend. Hopes to print this week.
Group met with Andrew and discussed progress as well as plans for this week. Group plans to have shade operational by the beginning of Thanksgiving break. Group plans to work on poster and final wiki page after that.
Cole: Spent 3.5 hours remodeling electronic box (made a mistake in original one) as well as modeling a mount for the stepper motor.
The group spent about 4 hours working in the lab on 11/19 finalizing our design and beginning to put everything together. The stepper motor was not able to pull up the blinds. Group spent time trouble shooting and will return to lab tomorrow to continue to work. We hope that creating a gear with a larger radius will fix this issue.
Also did some research and found that running stepper motor at lower voltage limits the motor's torque. Will investigate out current setup tomorrow and come up with a solution.
Met in lab again on 11/20. Found that previous power adapter only supplies 9V whereas stepper motor works best at 12V. Spent 4 hours working. Successfully raised shade about 2/3 of way, but stepper did not have enough power to raise it all the way. VIDEO. Our hope is that with a 12V power supply (which we ordered), a larger gear (work in progress), and using a second stepper motor to help turn the larger gear, we will successfully raise it all the way.
Sam: Worked in lab from 12AM to 9PM on 11/24 and 11/25 to finish adding the feature that user can select their location on arduino. main steps left
- Attach second stepper and larger gear
- Finalize stepper code to turn for the correct amount of time
- Program Raspberry Pi to run python code on startup
- Program code to refresh weather data
- Attach LCDs to frame
Worked in lab as a group for 5 hours. Tested shade with 12V power supply. Made it almost to the top! Added a second stepper motor to the device. The shade was successfully opened all the way at a decent speed! POSTER.
Spent 3.5 hours in lab working. Good news: raising shade works, weather program works...
What we still need to work on:
- Our python program won't run on RPi startup for some reason
- We also need our Arduino code to upload on startup, which seems very difficult
- The stepper code causes huge delays in rest of arduino code, rendering distance sensor (which stops the shade at the top) useless
But, everything else is more or less working.
11/29/17: Cole spent 2.5 hours in lab. Sam spent a lot more...
Photos of device as it is on Thursday, Nov. 11 (day before demo):