What materials we use for this project?
For this project, the major components that we are using:
Why we chose the materials for this project?
Raspberry Pi 3: We decided on using a Raspberry Pi 3 for our project because it has all the necessary components our project needs. It has a HDMI input, multiple USB inputs, SD card slot to change your OS if necessary, a processor and memory. The Raspberry Pi is capable of running multiple projects at once, which we will need due to the amount of modules we are running for this project. Also, we will be implementing the IR Touch Overlay, Google Assistant, and a camera to the Raspberry Pi. These three components will help with the functionality of the Smart Mirror.
IR Touch Overlay: This will be the main function for our project. Users will be able to navigate around the Smart Mirror interface and access certain modules. We included this feature because we want to give the users more flexibility for what they want to do with the mirror. It will make the users mornings much more efficient knowing that they can click around with their fingers. They will be able to save their own set layouts for what they prefer to see every morning.
Google Assistant: We connected a Google Assistant to our project because we want the user to be able to ask questions and access applications using their voice. It will be another way for the user to communicate with their mirror rather than physically interacting with the mirror in the morning. This can be treated like a mini Google Home but without the bulky size of it. We will be connecting the Google Assistant to the Raspberry Pi and it will be hidden somewhere behind the mirror. This will make a cleaner look on the mirror and the user will not need to buy or see the Google Home in the morning.
Hardships: (Any difficulties we faced while working on the project. Whether it be researching, purchasing materials, coding, implementing camera/google assistant with the raspberry pi)
There were difficulties we faced as a group while designing and implementing this project. In the beginning, we had conflicting thoughts on whether or not the double sided mirror we plan to order will work because of its dimensions. The mirror that we originally purchased, was too big and we had to find a place that would help us cut the glass. When we found a place, they tried to cut the glass but found out the glass was tempered glass. Since it was tempered glass, if they attempted to cut the mirror, everything would shatter to pieces. After thinking about our situation, we went with the plan to ask the store to help us order a new two way glass mirror that would fit the same dimensions as the frame that we just built.
When we got our LCD monitor and the IR Touch Overlay, we started to test it out. The IR Touch Overlay was simple to use because it was plug and play. While testing both the monitor and touch overlay together, the LCD monitor was too small to be used with the IR Touch Overlay. Our assumptions were wrong to think that the monitor was going to fit with the overlay that we ordered. Now we know we should have purchased the touch overlay first to see what monitor size we would need to make both fit together.
During the whole process of discussing and ordering the components we need, we already started the beginning stages of our code. We were able to get it started and include some simple modules to see the layout of our Smart Mirror. When we trying to include some other functions to implement more of the touch feature, some of the existing modules would break. We would spend at least an hour trying to debug the code to find out the problem before we remove the module completely and try to add something else. When we find a module that may be helpful but are unable to get it to work, we push it to the side and come back to it at a later time.
Towards the end of our project, we add Google Assistant to our Smart Mirror. The Google Assistant main function is for the user to get their questions answered in a timely manner. It took a bit of time to get it to work because we had trouble connecting the Google Assistant to the Raspberry Pi and getting the microphone to work properly. Currently, the Google Assistant works properly and connects to the Google Assistant SDK, where it can connect to users Google accounts.
Future Work: (what we can improve on if we were given more time and budget for the smart mirror)
For our Smart Mirror, we were successful in implementing our project the way we envisioned it. To further improve our Smart Mirror, we can improve on the code and the style/layout of the interface. For the code, we can make it more efficient and clear for users to understand. We can either remove certain unused code or simplifying the code that we have currently. This will make it easy for users to read and understand the code when they want to change certain modules when personalizing their own Smart Mirror. Also, we can change the whole interface to make it user touch friendly. This will allow users to interact more with the interface rather than just certain features. The touch interface can include but not limited to swiping up and down to change the volume with a two fingers, swiping left to right to change the different pages, and pinching or stretching to zoom in and out of the page. In addition, we can improve on the LCD monitor and the IR Touch Overlay. Currently, both these components are not best, but it does the job of showing what we have and the functionality of our Smart Mirror.