프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

Stepper 운동기구 카운터 만들기 [PART 1]

2015-05-15 11:44:03

노출의 계절 여름이 다가왔습니다~☆ 그동안 운동은 많이 하셨나요??? ㅎㅎ 아마 많은 분들이 시간이 없다는 이유로

게을리 하셨을텐데요....ㅠ_ㅠ 이런 분들을 위해 실내에서 운동 할 수 있도록 '스텝퍼'라는 운동기구가 나왔었죠~

이런 실내 운동을 하면서 '내가 이 운동을 하면서 칼로리를 얼마나 소모했지?', '내가 총 몇 회를 했지??? 백만스물하나였나..'

등의 생각을 하시는 분들이 많을 텐데요...(저도 마찬가지..ㅎㅎㅎ) 운동을 하면서 필요한 정보를 수집 할 수 있도록 하면

어떨까 하는 생각을 해보았습니다.

그래서 이번 프로젝트에서는 스테퍼 운동 횟수를 카운트 하고 그 정보를 스마트폰 앱으로 전송하여 칼로리 소모량과 운동 횟 수

등을 한눈에 볼 수 있는 장치를 만들어볼까 합니다.

 

 

 


개요

 

[PART 1] 커패시턴스 터치 라이브러리를 이용하여 스텝핑 횟수를 카운트하여 LCD에 표시해 봅니다.

 

[PART 2] 카운트한 값을 스마트폰 어플리케이션으로 전송하여 여러가지 정보로 나타내 봅니다.

 

 

 

 


사전 필요 지식

 

LCD 사용하기

 

커패시턴스 라이브러리 사용하기

 

 

 

 


동영상 미리보기

 

 

 

 

 

 


필요한 부품

 

NO PART QTY ETC
1 Orange Board 1  
2 LCD Display 1 1602
3 Resistor 2 1K Ohm
4 은박지 2  
5 Jumper Cable -  
6 Bread Board 2 Small Size

 

 

Orange Board 1602 LCD Resister 은박지

 

 

 


하드웨어 메이킹

 

 

 


제작과정

 

 

이번 스테퍼 카운터 역시 늘 사용하던 LED(선택)와 LCD를 사용하는 장치로 제작은 어렵지 않습니다^^.

다만 LCD가 잘 보일 수 있도록 배선 정리를 잘해주는 것은 항상 중요합니다~

이 장치를 만들면서 주의하실점은 LCD 선 연결 외엔 크게 문제될 것은 없습니다.

 

구동시 모습입니다. 역시 점퍼케이블들이 시야를 장악하고 있네요.... 저는 9V 어댑터를 이용하여 전원 공급을 하였지만

9V 건전지를 연결하여 사용하셔도 됩니다.

 

이 부분이 가장 중요하지만 어렵지 않습니다. 발사이즈 크기 만큼 은박지를 오려서 붙여주시면 됩니다.

커패시턴스 터치를 사용할 점퍼 케이블은 접점이 떨어지지 않도록 은박지에 꼭꼭 잘 붙여 주셔야 합니다.

 

 

 

 


아두이노 소스

 

 

#include <CapacitiveSensor.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int i = 0;
int flag = true;
int Led = 7;

CapacitiveSensor   cs_8_9 = CapacitiveSensor(12,9);   //용량성 터치 패드 1번 설정
CapacitiveSensor   cs_8_10 = CapacitiveSensor(8,10);  //용량성 터치 패드 2번 설정

void setup() 
{
  cs_12_9.set_CS_AutocaL_Millis(0xFFFFFFFF);          //용량성 터치 패드 수신 딜레이
  lcd.begin(16, 2);             
  Serial.begin(9600);
  pinMode(Led,OUTPUT);
  Serial.println("COUNT");
}

void loop()
{
     lcd.setCursor(0, 0);
     lcd.print("COUNT");
     lcd.setCursor(0, 1);
     lcd.print(i,DEC);                                //카운트 값 LCD 출력

     long Step1 = cs_12_9.capacitiveSensor(30);       //1번 용량성 터치 패드값
     long Step2 = cs_8_10.capacitiveSensor(30);       //2번 용량성 터치 패드값
     
     Serial.print(Step1);
     Serial.print("  ");
     Serial.println(Step2);


     if(Step1 > 20)                                   // 1번 먼저 밟을 경우
     {
       if(Step2 > 20)
       {
         if(flag == true)
         {
          i=i+1;
          flag = false;
          Serial.println(i,DEC);
          digitalWrite(Led,HIGH);
          delay(1000);
          digitalWrite(Led,LOW);
         }
       }
       else
       {
         flag = true;           
       }
    }
    else if(Step2 > 20)                               // 2번 먼저 밟을 경우
    {
       if(Step1 > 20)
       {
         if(flag == true)
         {
          i=i+1;
          flag = false;
          Serial.println(i,DEC);
          digitalWrite(Led,HIGH);
          delay(1000);
          digitalWrite(Led,LOW);
         }
       }
       else
       {
         flag = true;           
       }
    } 

}

 

이번 프로젝트에서 중요한 점은 두 발이 올라가고 나서 카운트값이 1 증가하고 멈추게 해야 한다는 점입니다. (두 발이 올라가있는 동안 카운트가 계속 올라가면 안되요!!!!)

적절한 플래그를 사용하여 스테핑 동작에 대한 여러 변수에 대해 대비하는 것이 중요합니다.

 

이번 프로젝트에서는 간단한 동작을 구현을 해보았는데요, 다음 시간에는 블루투스를 통해 스마트폰으로 데이터를 전송하고 그 데이터를 가공하는 것과 스테퍼 기구의 외형을

좀 더 예쁘게 꾸며보도록 하겠습니다 ^^

SaBo

스텝퍼, Stepper,LCD,Capacitance Touch