Hi guys, my name is Philip and I am a rising sophomore at Staten Island Technical High School. I heard about BlueStamp from my school when there was a meeting for at our school’s library. The program seemed interesting so I decided to sign up for it. After I found out I was accepted I chose two projects, the TV-B-Gone and to program the Pebble Smartwatch. I chose to do the TV-B-Gone projects as my starter project because I thought it would be a cool and fun project as it enables the user to turn on and off almost every TV. For my main project I chose to program the Pebble Smartwatch because I was interested in developing my skills as a programmer. Within these few weeks I have been at BlueStamp I faced many problems with this project and through hard work I was able to solve my problems and successfully program the Pebble watch with a working pedometer. There are a lot more things that I can do with this watch and that I would like to do in the future. I hope that you guys enjoy reading my blog posts about my starter projects and about the milestones I achieved while programming the Pebble watch and I also hope that you guys build projects similar or better than mine!
__________________________________________________________________________________________________________________________________________________________________________________________________
Final Video: Pedometer
Hi guys this is Philip again an I am back for my final project blog post. I have come a long way with this program and I am finished with it, sorta. So after I succeeded with the second milestone I used those raw values that I was able to gather in order to calculate the minimums and maximums of the XYZ values of the pedometer when I swing my arm. After collecting the data for those I set up parameters or a designated space in which something can occur. So for the pedometer my parameters used greater than and less than, example below.
Along with the parameters you can also see how I count the steps. The if elseif statement that I have is making it so that in “if” if the value of the watches accelerometer are within these parameters when your arm swings forward then this will happen, but if that doesn’t happen then the “elseif” will occur which is for your arm swinging backwards and the same thing with the parameters will occur except there are different parameters because your arm is swinging the opposite direction. This method is pretty much accurate where it is only within 3 numbers off most of the time, but sometimes since I am using the parameters if you hold the watch in a specific position it will continuously count steps. For the most part if you don’t sit there with the watch and hold it in place and actually walk it will remain fairly accurate with your actual steps. Another thing that causes some problems is that it will not register your steps right away even if you are in the parameters so it will take about a second to fix itself. Other than these problems the pedometer works fine. I hope you guys enjoyed my projects progress throughout all of the milestones and I hope that anyone reading this will work hard and solve whatever problems they may face with this program and in their daily lives as well.
Google Drive folder with source code, bill of materials, and build plan here.
__________________________________________________________________________________________________________________________________________________________________________________________________
Second Milestone: Reading Raw Values off of the Accelerometer
Hi guys I am back for a second time with my second milestone. This is my first step towards the final form of my pedometer app, and it is to be able to read the raw values off of the accelerometer of the watch. I have been able to achieve that, thanks to help from some nice people of the Pebble Smartwatch community. So reading the raw values of an accelerometer means that I can gather the data from the accelerometer,which are the x, y, and z coordinates of the watch, and display it watch’s screen. Now using this I will modify this code further so that I can gather the minimums and maximums of a series of arm swings in order to get the best result for them. After finding that I have to modify the program again to count say one step per arm movement as long as it corresponds with the maximum and minimum values I have set before. __________________________________________________________________________________________________________________________________________________________________________________________________ First Milestone: Telling the Time
Hello guys I’m back with my first milestone for my main project of Bluestamp which is to program a watch. Ok so my first milestone was to program a watchface for the watch that told the time in hours, minutes, and seconds. It may seem very simple but it gave me quite a hard time. The first problem I faced was that because of the internet here where Bluestamp is being held my program would not install. This problem took me and my instructors two days to solve in which we ended up just connecting to a different internet connection that allowed me to install my programs. The second problem I faced was making the program itself. I had to look around on forums to figure out what functions I would have to use and also look at some samples to see how I have to start the program as this language is very weird and utilizes “C” but with their own twist on it. After figuring out what I had to do to make the program I was on my way. I constructed the program to tell me the time but it wasn’t updating the time as the minutes went by, it was only displaying the time from when my app was launched. To solve this I went back and looked at my code and then compared it to a working clock code. I found that I was missing one very important line in the code and once I put it in it worked perfectly. Pictures of how the code looked before and after I fixed it.
After getting the time to work I then went on to do the aesthetic touches. I changed the default font to a custom font and size to fit my liking. The hardest part of making this program was making the base for the program. Unlike other “C” programs where all you needed was int main after declaring your variables the CloudPebble programming was very different and I had to setup windows for the app and create text layers and a lot of it confused me but in the end after much research I was able to create a program to tell the time and understand it as well. Now my second task and main program is to create a pedometer app that displays the number of steps taken and the time. This is my video explaining my first milestone:
__________________________________________________________________________________________________________________________________________________________________________________________________ TV-B-Gone
This is my project the TV-B-Gone which utilizes IR light signals produced by LED’s to shut off and turn on TV’s. The components that are used are one button (the input device that begins the transmission of the code to create the IR signals), one green LED and four IR LED’s (the green LED blinks on and off to signal that the code is being sent, and the 4 IR LEDS’s are used to emit the IR light when triggered by the transistors), five transistors (function as switches when supplied with a voltage), two or three resistors depending on your location (restrict the flow of the electrical current though the circuit board), two capacitors (used to store an electric charge to be released), one oscillator (used as a timer and watch for the micro controller), and one micro controller and an eight pin socket which it is placed in (store the code that will be transmitted to the TV by IR light signals). The TV-B-Gone uses LED’s to transmit IR light signals to a TV in order for it to carry out the function of turning the TV on and off. The TV-B-Gone transmits the program in about 70 seconds and in that time cycles through all the codes for turning on and off a TV for all of the brands of TV that it is compatible with. So how it works is that when the button is pressed it triggers the micro controller to begin running code. The transistors then cause the LED’s to begin emitting IR light signals. The IR light signals are determined by the code for each specific brand of TV that the micro controller continuously cycles through them making numerous patterns of light.
This project was made possible by the kit supplied by adafruit.com. https://learn.adafruit.com/tv-b-gone-kit/overview