Many people around me working in an office have neck/shoulder/and or lower back pain. (Is this part of aging!? I don't think so.) When you sit longer than an hour, it is advised by many health studies that you should stand up and do some stretches before sitting again.
Many of us know that stretching is something we have to do to feel better. Yet why don't we do what is good for us?
With my prototype, I want to introduce a playful visual reminder in the office space to stretch. I care for this idea especially because many of my loved ones and friends in their thirties are currently struggling with these health issues. And although we all know (to varying extends) the importance of stretching and doing physical exercise, it is hard to include it in our daily lives and make it a habit.
A crankie - illustration box which my project takes inspiration from.
I was inspired for this project by 3 different occurrences happening in the same period:
1) Seeing family, friends and colleagues with unresolved long-lasting neck and back pain. Even though they have access to physiotherapy and exercising.
2) Reading about the power of habit. Also seeing this in practice working. My husband introduced stretching in his mourning routine, linking a 5 minute stretch while wating for the coffee maker to finish. I noticed it became a healthy habit that is still lasting 3 months later.
3) Learning about gamification. In my prototype I want to include aspects of gamification to make sure the users will be drawn to exercising and motivated to keep doing it until the power of habit kicks in.
I downloaded the drawings for the electronic components to include in my drawing from grabcad. This is an open source community platform. I download the drawings for the Arduino uno, the stepper motors, gears, buttons and adaptor for example.
The files that are compatible with Fusion360 are STEP file or IGES files.
I started drawing a bit early to practice drawing in Fusion 360 again. It will be easier to actually start with the electronic components and the physical mechanism of the turning belt and then make the enclosure around that based on the actual dimensions. This to avoid having too much empty space or having to push in the electronic components to make them fit.
In Fusion360 I started by creating a new component and saving it under the name stretch box. I used rectangular pattern and mirroring for the openings for the T-slots.
Initially I decided to make the box 30 cm long by 12 cm width. After receiving the hardware and testing some things I can revise and adjust this.
After downloading some of the components needed for my project in grabcad, I noticed it was already getting crowded on my base panel. I will be able to attach the arduino higher up on the back panel. Maybe some other parts will also find a better place higher in the box. I will collect all parts and measure them before continuing with the drawing.
After downloading some of the components needed for my project in grabcad, I noticed it was already getting crowded on my base panel. I will be able to attach the arduino higher up on the back panel. Maybe some other parts will also find a better place higher in the box. I will collect all parts and measure them before continuing with the drawing.
After drawing the enclosure I also drew the acrylic face. I added the nema 17 motors, brackets and buttons.
I used 3 sheets of 3 mm plywood.
I fixed the sheet on the laserbed, set the focal lens and set the frame.
After importing the file from the computer I started the laser. The 4 sheets only took around 18 minutes to cut/engrave.
I used cutting with 45 speed and 50 power for all the outlines and slots.
I used scanning for the illustrations and used tape to avoid burn marks and imit post process sanding. Scanning parameters were speed 250 and power 25.
I imported the drawings in RD works and set the cutting parameters. Then I exported to .ai file.
I transferred the drawings to the computer connected to the ML Elmalky laser cutter.
I added some tape to protect the wood around the scan area.
I printed 2 brackets for the Nema 17. The file is from Thingiverse. I also made a disc to sit on top of the stepper motor connector, at the bottom of the metal rod. This to avoid the paper roll to fall down or shift while rolling or unrolling.
Link: Thingiverse motor mount
I used purple PLA on the MK3 Prusa 3D printer.
The ring was made in Fusion360 and then exported as a mesh.
Both stl files were opened in Curamaker, sliced and put on the SD card to be inserted in the Prusa.
Temperature of printing 215 degrees.
Base plate 60 degrees.
The print took 2 hours and 6 minutes and used 15 grams of PLA. The infill was 20%. The cooling 20% as indicated by the lab specialist for this printer.
The 2 stepper motors are the most vital part of the circuit. One of the challenges is to make them work together and move in the same direction at the same speed. This to make the roll of illustrations move smoothly.
Some useful links on this topic:
Connections - source
Article: How a stepper motor works
The stretch box will play a relaxing background sound during the activity/stretching routine.
On youtube I found this video explaining different options to use. Video: 3 ways to play audio on arduino
First I looked for wav files, but the sounds were not so nice and often too short. So I downloaded an mp3 sound and converted it to a wav file.
The push button indicates the user is ready in front of the box and will be able to start the exercise. They will press the button to start the movement of the illustrations and play some relaxing music from the speaker.
Initially I wanted to use a 5 volt adaptor for powering the arduino and the speaker and use a 12 volt adaptor for the stepper motors.
This setup workedm but it was a hassle and not user friendly. Instructor Abdelrahman advised me to use only the 12 volt adaptor since arduino can take it.
The 2 stepper motors and drivers need a lot of power as I tested them with 9 volt and they did not run smoothly. After moving to the 12 volt adaptor they both ran smoothly. Throughout the different tests I have used the avometer to test the actual voltage reaching the wires going to the motors.
I used the libraries of the Accelstepper and the minimp3 player.
The stepper motors have to move 2000 steps per cycle, for the test run I made it move 4 times to show 4 different illustrations. The speed of movement should be fast enough but not too fast to be stressful for the motor or the illustrations roll, so 500 steps is a smooth speed.
Between the illustrations we need 10 seconds atleast, for the testphase I made it 1 second.
I named the stepper and made the pins known to arduino for the step and the directions pins of both drivers.
I named the button and the speaker and their respective pins on arduino.
In the void setup I initially used the serial option to read and troubleshoot the push button and the speaker while connected to the computer.
Void loop
I used the IF condition to activate the speaker and the stepper motors at the same time in case the button is pushed.
The MiniMP3 will play the first song on the list of the sd mini card.
The stepper motors will make the moves set above and return to their initial position afterwards until the button is pushed again.
After having 3 separate working codes for the push button, the speaker and the stepper motors, I started by integrating the push button to the speaker.
After this worked successfully, I added the code of the stepper motors.
The testing was mostly done at the end by adjusting the motor movement to the illustrations. I also increased the volume of the speaker again to 30 after hearing the motor's noise too much.
First test run, to see how the movement of the motors reflects on the movement of the drawings. I changed it from 2000 to 3000 steps after this test run to show one illustration per movement. Check the final video in the final project proposal.
Instructor Abdelrahman saw I was using 2 different power sources. A 5 volt adaptor for my arduino and a 12 volt adaptor for my servo motors.
He gave the tip to only use the 12 volt power source as it will work fine and it will make it easier to manage the cables and power sources overall.
2 other students had the same mp3 mini player and asked for help with the code. So I was happy to be able to help with that by sharing the code I had found online and the instruction video on youtube.
We didn't work with the stepper motors yet and these will be the vital parts of my circuit. So I researched online how to work with them.
I found many useful instruction videos on youtube explaining how the stepper motor works with the motor driver and arduino.
I struggled with making the stepper motor work after following many tutorials. Instructor Eman shared a very nice instruction video on youtube: coordinated stepper motors
But after following the video and using the code, the circuit still didn't work. So I left the Thursday session and tried again on Friday and Saturday. It still didn't work so I reached out on slack and coordinator Ahmed gave a good tip on setting the current limit.
Next time, with more time and experience, I would add a timer and a reward distribution. These were some initial ideas I had, but after learning more about arduino and coding I wanted to simplify the design to be able to succeed with a low fidelity, working prototype