Overview
This top was designed to display the number of steps taken by the wearer.
The video above shows how the tank top works.
The numbers displayed at the pocket side shows the number of steps taken by the wearer.
Process images and review
The three major components used: arduino pro mini board, ADXL335 accelerometer and 0.56″ 7-segment LED
At the beginning of this project, the main focus is to start with getting the basic working functionality of the accelerometer. To achieve this, I started with the arduino uno board and the jumper wires connection because I was more comfortable using that. The circuit of this first circuit built is shown in the image below:
After getting the basic functionality of the accelerometer, I wanted to transform the circuit to a more miniature circuit that can easily fit into a clothing/wearable. This could be done by firstly replacing the jumper wires with soft conductive wires and replacing the arduino uno board with the arduino pro mini board that is smaller. The image below shows the transformed circuit.
The video above shows the testing of the accelerometer using the arduino uno board.
The miniature circuit turned out as expected, which is to fit easily on a clothing. However, this was where I faced most of the challenges. Firstly, the soldering process was unexpectedly difficult. It could probably be either it is because this is my first soldering experience or because the components I used were so small for a newbie at soldering. At a point, I had an disconnection in my circuit, I tried to debug using the multi-meter but I could not figure it out for hours. This was really frustrating, but I was eventually able to identify this disconnection, which turned out to be a gnd disconnection on the arduino pro mini board.
Secondly, it was difficult at first to figure out the wearable friendly components that can be used to replace the electronic components in the first circuit. I had to interact with people that have knowledge about wearable technology (Garth and Olivia) who pointed me to the right materials to use to implement this project.
Thirdly, the project took a different shape because the initial plan was to make a stepometer tank top, but during the development process, I realized that the tank top does more of counting number of jumps than steps. That was quite funny though. It could easily pass for a jumpometer instead of a stepometer.
Discussion
Overall, the critiques were genuine and sincere. Most of the critiques agrees that the design is really beautiful which I agree with I say. I really love the aesthetic part of the project. One of the critique highlights that I should try and compare the steps taken from the shirt with that of the accelerometer on my phone. That would have been a great way to check if the steps are being counted accurately, if I had known earlier before the project presentation in class. Another critique suggested I use a solar panel instead of a power bank. I thought about that but I think that is too much of work for a second project in this course. However, going forward, in the future, I will definitely consider that.
I am really happy with the outcome of the project because of two major reasons. I have been able to achieve my goal that I came to this class with which is to successfully implement a wearable technology, no matter how basic its functionality is. This was achieved because I could recall that I wore that shirt to class on that day, which was pretty exciting. The second reason I am happy with the outcome of this project is that I was able to try soldering process for the very first time in my life and it worked! However, something I would love to improve in this project is to implement the code better. I could not do this because a larger amount of time was invested in the mechanical coupling than the software implementation.
One major thing I have learnt in this exercise is to speak out! This project actually pushed me out of my comfort zone to discuss with people, get ideas, and that really made my life easier. Also, prototyping helped me to get the pictorial view of what the end product would look like instead of having to imagine it in my mind.
Next steps if I am to build another iteration would be to think more in the line of soft-wearable friendly components to use instead of the mechanical components. Also, to learn more about the Adafruits tutorials and products online, since most of their products and lessons are wearable-related.
Furthermore, I will pay closer attention to the soldering process in order to avoid broken connection that is difficult to find.
Technical Information
/* Project 2 - Counting steps tank top Olaitan Adisa (okadisa) Collaboration: // Resource used: http://arduinoprojectsforbeginners.blogspot.com/2018/07/measuring-steps-using-adxl335.html Challenge: The biggest challenge was more of the mechanical coupling rather than software. Description: The purpose is to create an assistive tank top that can display the number of steps taken on a 4 digit seven segment LED attached to the shirt. Pin mapping: pin | mode | description -----|-------|------------ A1 input x-axis A2 input y-axis A3 input z-axis A0 input ST 2 output CLK 3 output DIO */ #include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc. #include <Adafruit_GFX.h> #include "Adafruit_LEDBackpack.h" // initializing the constant variables const int xpin = A1; const int ypin = A2; const int zpin = A3; // initializing the variables int step_count = 0; float threshhold = 500.0; float xval[100] = {0}; float yval[100] = {0}; float zval[100] = {0}; float xavg; float yavg; float zavg; int steps = 0; int state = 0; // setting the LED Adafruit_7segment matrix = Adafruit_7segment(); void setup() { #ifndef __AVR_ATtiny85__ Serial.begin(9600); Serial.println("7 Segment Backpack Test"); #endif matrix.begin(0x70); pinMode(xpin, INPUT); pinMode(ypin, INPUT); pinMode(zpin, INPUT); Serial.begin(9600); } void loop() { int acc = 0; float totvect[100] = {0}; float totave[100] = {0}; float xaccl[100] = {0}; float yaccl[100] = {0}; float zaccl[100] = {0}; for (int i = 0; i < 100; i++) { xaccl[i] = float(analogRead(xpin)); yaccl[i] = float(analogRead(ypin)); zaccl[i] = float(analogRead(zpin)); totvect[i] = sqrt(((xaccl[i] - xavg) * (xaccl[i] - xavg)) + ((yaccl[i] - yavg) * (yaccl[i] - yavg)) + ((zval[i] - zavg) * (zval[i] - zavg))); totave[i] = (totvect[i] + totvect[i - 1]) / 2 ; Serial.println(totave[i]); delay(200); //calculating number of steps if (totave[i] > threshhold && state == 0) { steps = steps + 1; state = 1; } if (totave[i] < threshhold && state == 1) { state = 0; } matrix.print(steps, DEC); matrix.writeDisplay(); }; delay(1000); }
Comments are closed.