Introduction: Interactive Gym

Picture of Interactive Gym

This project seeks to incorporate the interactive wall and floor system by push, sensors and lights, this project seeks to invigorate the conventional exercises of a normal gym.

Step 1: MATERIALS

Picture of MATERIALS

* 6 Push buttons:

* 12 Resistences: They are electronic components that have the property of objecting to the passage of electric current.

* Jumper: They are cables connected to the Protoboard.

* 6 Universal Plate: Electronic component that serves to form circuits by welding.

* 6 Led: It is a two-lead semiconductor light source.

* 1 Arduino: It is a platform of electronic prototyping with open source.

* Multimeter: It is a tool for measuring electrical quantities. Electric Welder: It is a simple electrical tool that has a set of elements that when properly connected generate welds electrical and electronic circuits.

Step 2: PROCESS

Picture of PROCESS

* To conduct the tests, one Protoboard and a push button was used to check the operation of the code.
Other push button were placing each with its respective LED (330ohms) and resistances (220ohms).

* None of the push button was connected to 5V, but it was necessary to connect the Protoboard to a source at 5V at Arduino without need that button and the LED have the same connection.

* After checking the operation and to see that the test result positive, breadboards (5cm x 7cm) was purchased, here the push were installed with their respective LED to a different distribution for the hererogeneity of the breadboards.

* Finally the code was introduced

Step 3: INDUSTRIAL MATERIALS

Picture of INDUSTRIAL  MATERIALS

The materials for aesthetic design were as follow:


1 Table of MDF

Screws

Triplex wood

Policarbonato

Gluer

Scissors

Duct tape

Laser cutter

Paint and bruses

Liquid silicone

Balsa sticks

Step 4: Process

Picture of Process

To design the prototype was made the following:
MDF wood (100cm x 70cm) was purchased, it was cut with six circles of 30cm diameter in the laser cutting machine.

Triplex Wood was cut in the laser cutting machine, with a measure of 30cmx30cm , 12 small circles of 6 cm diameter In this wood policarbonato was installed, each of these cut with the same measure of 15cmx15cm To install each square on the MDF, screws were used.

Triplex wood was purchased for to be the basis of the entire circuit. 16 polystyrene were placed in support of the table MDF (were distributed so that is organized and without interrupting the passage of other circuits).

The policarbonato stuck in the base with duct tape so that it had more firmly.

For the base holding each sensor, balsa sticks was placed, three for each sensor, each balsa sticks opened a hole to make it easier to hold the sensor, after hitting the sticks, the three sticks were place in a paperboard. When was installed the base of sensors, the top was placed on the basis of polystyrene.

After, each sensor was stuck to the policarbonato (the sensors were stuck to the back of the square).

Finally, the name of the Project was stuck on top.

These were cut buy laser cutting machine with an optimal measure for will not affect the operation thereof.

Step 5: Code

#include
SoftwareSerial BT1(4, 2); // RX, TX they cross

#define piezo1 A0

#define piezo2 A1

#define piezo3 A2

#define piezo4 A3

#define piezo5 A4

#define piezo6 A5

#define Led1 7

#define Led2 6

#define Led3 5

#define Led4 4

#define Led5 3

#define Led6 2

#define umbral 50

boolean s1, l1;

boolean s2, l2;

boolean s3, l3;

boolean s4, l4;

boolean s5, l5;

boolean s6, l6;


int accountant;

int numSerie;


void setup() {

pinMode(Led1, OUTPUT);

pinMode(Led2, OUTPUT);

pinMode(Led3, OUTPUT);

pinMode(Led4, OUTPUT);

pinMode(Led5, OUTPUT);

pinMode(Led6, OUTPUT);

l1 = true; l2 = false; l3 = false; l4 = false; l5 = false; l6 = false;

accountant = 0;

numSeries = 1;

Serial.begin(9600);

BT2.begin(9600);

}


void loop() { i

nputReadings();

process ();

if ( numSeries < 3) {

delay(100);

} else if ( numSeries == 4) {

l1 = l2 = l3 = l4 = l5 = l6 = false;

numSeries ++;

Serial.println("end exercise");

BT2.println("end exercise");

} else if ( numSeries > 4) {

delay(15000);

Serial.println("starts new excerise");

BT2.println("starts new excerise");

numSeries = 1; l1 = true;

}

writeOutputs ();

}



void inputReadings() {

s1 = analogRead(piezo1) > umbral;

s2 = analogRead(piezo2) > umbral;

s3 = analogRead(piezo3) > umbral;

s4 = analogRead(piezo4) > umbral;

s5 = analogRead(piezo5) > umbral;

s6 = analogRead(piezo6) > umbral;

}


void writeOutputs() {

digitalWrite(Led1, l1);

digitalWrite(Led2, l2);

digitalWrite(Led3, l3);

digitalWrite(Led4, l4);

digitalWrite(Led5, l5);

digitalWrite(Led6, l6);

}


void process () {

checkPiezo1 ();

checkPiezo2 ();

checkPiezo3 ();

checkPiezo4 ();

checkPiezo5 ();

checkPiezo6 ();

nextSeries ();

}


void checkPiezo1 () {

if ( s1 == true && l1 == true) {

accountant++; l1 = false;

int r = random(100);

if ( r < 20) { l2 = true;

} else if (r < 40) { l3 = true;

} else if (r < 60) {

l4 = true;

} else if (r < 80) { l5 = true;

} else {

l6 = true;

}

}

}


void checkPiezo2 () {

if ( s2 == true && l2 == true) {

accountant++; l2 = false;

int r = random(100);

if ( r < 20) {

l1 = true;

} else if (r < 40) {

l3= true;

} else if (r < 60) {

l4 = true;

} else if (r < 80) {

l5 = true;

} else {

l6 = true;

}

}

}


void checkPiezo3 () {

if ( s3 == true && l3 == true) {

accountant++;

l3 = false;

int r = random(100);

if ( r < 20) {

l2 = true;

} else if (r < 40) {

l1 = true;

} else if (r < 60) {

l4 = true;

} else if (r < 80) {

l5 = true;

} else {

l6 = true;

}

}

}




void checkPiezo4 () {

if ( s4 == true && l4 == true) {

accountant++;

l4 = false;

int r = random(100);

if ( r < 20) {

l3 = true;

} else if (r < 40) {

l2 = true;

} else if (r < 60) {

l1 = true;

} else if (r < 80) {

l5 = true; }

else {

l6 = true;

}

}

}



void checkPiezo5 () {

if ( s5 == true && l5 == true) {

accountant++;

l5 = false;

int r = random(100);

if ( r < 20) {

l4 = true;

} else if (r < 40) {

l3 = true;

} else if (r < 60) {

l2 = true;

} else if (r < 80) {

l1 = true;

} else {

l6 = true;

}

}

}




void checkPiezo6 () {

if ( s6 == true && l6 == true) {

accountant++;

l6 = false;

int r = random(100);

if ( r < 20) {

l5 = true;

} else if (r < 40) {

l4 = true;

} else if (r < 60) {

l3 = true;

} else if (r < 80) {

l2 = true;

} else {

l1 = true;

}

}

}





void nextSeries () {

if ( accountant > 10) {

accountant = 0;

numSeries++;

Serial.print("changing series: ");

Serial.println(numSeries);

BT2.print(numSeries- 1);

BT2.println("finished");

}

}

Step 6: APP (BLUETOOTH AND ARDUINO)

Picture of APP (BLUETOOTH AND ARDUINO)

To transfer data to the Application Arduino a Bluetooth module was used, and a protoboard.
* Bluetooth HC 05

Each of the modules handles a different connection.

Step 7: APP (INTERFACE)

Picture of APP (INTERFACE)

Step 8: Code App

Picture of Code App

These are perspective images of the development of the mobile application of the system, implemented in ionic.

for this also the arduino program was used to capture the intermissions and send them to the application via bluettoth, which when taking this data, are processed in a window of the application to provide feedback to the user of its process.

Step 9: Tests

Picture of Tests

Tests were carried out with different users, to determine the operation of the prototype

Step 10: Video

Visual test of the operation of the interactive gym

Comments

Swansong (author)2017-11-21

That's a great idea! It looks like a lot of fun :)

About This Instructable

216views

4favorites

License:

More by pacho.1712:Interactive Gym
Add instructable to: