10조

MIE capstone
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 임베디드 시스템을 활용한 동력제어 카트

영문 : Power Control Cart Using Embedded System

과제 팀명

10조 참 쉽죠

지도교수

신동헌 교수님

개발기간

2018년 9월 ~ 2018년 12월 (총 4개월)

구성원 소개

서울시립대학교 기계정보공학과 2015430** 채**(팀장)

서울시립대학교 기계정보공학과 2015430** 김**

서울시립대학교 기계정보공학과 20154300** 방**

서울시립대학교 기계정보공학과 20154300** 이**

서울시립대학교 기계정보공학과 20174300** 유**

서론

개발 과제의 개요

개발 과제 요약

 본 과제의 목적은 65세 이상의 노인들이 재래시장이나 개인슈퍼를 이용할 때 사용하여 사용자가 직접 가하는 힘을 최소화해 사용자가 느끼는 신체적 부담을 줄여주는 ‘임베디드 시스템을 활용한 동력제어 카트’를 설계함에 있다. 또한 오르막길이나 내리막길같이 경사진 도로에서도 적절한 동력제어를 통해 신체적 부담을 줄이고 사용자가 직관적으로 사용할 수 있도록 한다.

개발 과제의 배경 및 효과

  • 과제의 배경 및 동기

평균수명 증가로 인해 한국의 65세 이상의 노인 인구는 2018년 기준으로 14.3%를 초과하여 UN에서 규정한 고령사회에 이르렀다. 통계청은 2019년 장래인구추계에서 2026년에는 20%를 초과하는 초고령사회가 될 것으로 예상했고, 이에 대비하여 고령 친화 도시 네트워크를 운영하고 있으며 소규모적으로는 도시 및 농촌에서 노인의 물리적 접근성 및 사회활동을 필수사항으로 고려하는 고령친화마을 만들기와 같은 활동들을 추진하고 있다.

카트1.png

이와 같은 사회적 배경에 따라 노인의 사회활동에 대한 연구는 많이 이루어져 있다. 그중 노인이나 사회적 활동의 중심형성이나 집중을 분석하는데 이용되는 지표인 중심성(Degree)으로 분석한 결과를 Fig 2에서 확인할 수 있다. 이때 파란색 실선인 중심성(Degree)은 1에 가까울수록 노인이 사회적 활동을 많이 하는 곳임을 의미한다. 따라서 노인들의 사회적 활동은 약국, 병의원, 금융시설 순서대로 높으며, 그중 6순위로 시장(0.75)에서 활동한다. 그리고 이는 연결 정도 중심성(Degree)이 평균(0.33)보다 훨씬 큰 값을 갖고 대형마트의 경우(0.66)보다도 높은 것으로 보아 노인들의 시장사용이 얼마나 활발한지 알 수 있다.

카트2.png

하지만 시장을 이용할 때 노인들은 불편함에 직면한다. Fig 3에서 확인할 수 있듯이, 재래시장의 소비 형태에서 가장 큰 비율을 차지하는 부분은 농·축·수산물과 같은 1차 상품이다. 하지만 대형마트와는 다르게 소분되어 있지 않기 때문에 부피가 크고 무게도 많이 나가는 경향을 띠어 젊은이들보다 상대적으로 힘이 적은 노인들은 불편함을 느낀다.

카트3.png

이러한 불편함을 해소하고자 고안한 것이 ‘임베디드 시스템을 활용한 동력제어 카트’ 이다. 대형마트에서 사용하는 4륜 카트는 시장의 물리적 구조와 소비 형태와 맞지 않게 그 부피가 크다. 부피를 최소화하며 가정 내에 보관하기 쉽도록 접이식으로 설계하고, 어떠한 지형에서 사용하더라도 노인들의 신체적 부담을 덜기 위한 설계를 할 것이다.

  • 과제의 기대효과

일반적으로 사람들이 사용하는 카트는 Fig 4처럼 접이식 핸드카트와 캠핑용도, 산업 용도와 같이 특정 목적을 갖고서 사용하는 핸드카트가 존재한다. 하지만 이와 같은 핸드카트는 많은 양의 짐을 탑재하는 것을 목적으로 하는 것이지 우리의 과제와 같이 노인들의 신체적 부담을 줄져주는 것을 목적으로 하지 않는다. 따라서 이제껏 존재하지 않은 핸드카트를 만드는 것이기 때문에 그 자체로 의미가 있을 것이다.

카트를 끌 때 동력전달장치의 보조를 받으므로 노인들의 신체적 부담 완화 및 건강과 삶의 질을 향상시킬 수 있을 것이다. 그리고 이는 노인질환에 소요되는 사회적 비용이 절감될 것이라 예상된다. 또한 노인들의 시장 이용 증가로 인한 재래시장경제 활성화가 이루어질 수 있을 것이다.

카트4.png

개발 과제의 목표와 내용

  • 개발 목표
 본 과제에서 핸드카트는 압력센서, 자이로센서, 가속도센서를 활용하여 사용자가 현재 카트를 사용하고 있는 환경적인 요소에 대한 정보를 얻고, 이를 바탕으로 제어부에 설치되어 있는 임베디드 컴퓨터를 사용해 상황을 판단하여 모터를 제어한다. 따라서 오르막길이나 내리막길 같이 노인들의 신체 능력상 기존의 카트를 끌고 가는 것에 불편함이 생기는 환경을 판단하고 동력을 제어하여 보다 쉽게 카트를 운반할 수 있음을 목적으로 한다.

카트5.png

  • 개발 내용
(가) 지형에 따른 모터 제어

먼저 손잡이에 부착된 압력센서(Fig 6)를 이용하여 사용자가 카트를 끌고 있는지 확인 여부를 판단한다. 이후 모터 동력을 제어하기 위해 카트가 있는 지형의 환경적인 요소들을 판단해야 한다. 오르막인지 내리막인지, 또는 얼마만큼 경사진 곳인지를 판단한 후 그 상황에 따라 모터를 제어하여 카트를 운반하기 쉽게 만든다. 먼저 지형 판단에는 자이로센서와 가속도센서가 사용되게 된다. 가속도센서의 경우(Fig 7) 기본적으로 중력가속도를 감지하여 3축에 얼마만큼의 힘이 가해지는지를 통해 기울기를 구할 수 있다. 이는 정지상태일 경우엔 확실한 기울기를 구할 수 있지만, 카트가 움직이면 다른 성분의 가속도가 생겨 정확한 기울기를 구하지 못하게 된다. 반대로 자이로센서의 경우(Fig 8), 움직임이 생길 때, 각속도를 검출하여 각도를 계산할 수 있게 해준다. 하지만 각속도를 통한 각도 계산은 시간이 지날수록 오차(Fig 9)가 커질 수 있으므로 가속도센서를 같이 이용하여 오차를 최대한 줄여주는 것을 목표로 한다. 두 센서를 통해 입력된 각도 정보와 압력센서를 통해 수집된 사용자 정보에 따라 라즈베리 파이 또는 아두이노를 이용하여 오르막길과 내리막길 때 모터를 제어할 계획이다.

카트6.png

(나) 전체적인 구조


본 과제는 카트 자체 무게뿐만 아니라, 일정 수준 내용물의 무게까지 고려해야 되기 때문에 어느 정도의 하중을 버틸 수 있는 구조적인 틀 또한 중요하다. 이는 ANSYS Structure 프로그램을 아용하셔 구조해석을 진행해 설계한다. 노인들이 사용하기 편하게 하기 위해 카트는 철보다는 가벼운 재질인 스테인리스를 이용해 제작할 것이다. 앞서 Fig 4에서 언급한 캠핑 카트의 경우 35kg 적재 하중일 때의 크기는 (탑재부)460x380x990 이였다. 하지만 우리가 제작하고자 하는 카트는 모터가 탑재 되어야 하므로 바닥면의 세로는 늘리고 반대로 높이를 줄이는 방향으로 제작할 것이다. 그리하여 예상하는 크기는 (탑재부)450x600x600 이다. 또한 긴급 상황에 대비하여 브레이크를 탑재할 예정이다.

카트7.png

관련 기술의 현황

State of art

  • 개요
 본 과제의 핵심부품인 구동모터와 배터리, 가속도 및 자이로스코프 센서의 현황에 대해서 조사해본 바이다.
  • BLDC 모터

직류 브러쉬 모터와 BLDC 모터는 전기적 특성이 유사하지만, BLDC 모터는 정류자와 브러쉬가 없는 형태이며 정류작용은 별도의 드라이버와 제어회로에 의하여 신호의 형태로 작동된다. 본래 인위적으로 국성을 변화시켜 주는 것이 브러쉬의 역할이지만 BLDC 모터는 다른 방식으로 작동한다. 전기로 동작하는 모빌리티가 요구하는 모터의 특성은 높은 효율이다. 작고 가벼운 모터에서 큰 토크를 이용하며 열 발생이 적고 제어가 쉬워야 한다. 모터의 회전각도까지 정밀제어가 필요한 로봇과 같은 경우가 아니라 기계적 요소로 제어가 가능하면 된다. BLDC 모터는 내연기관과 달리 별도의 윤활이 필요 없고 회전속도가 빠르며 처음부터 높은 토크가 나온다는 특징이 있다. BLDC 모터는 회전자의 위치 정보를 사용하여 반도체 스위치를 통해 직류 브러쉬 모터의 치명적인 단점을 해결한 모터이다. 이를 통해 저속 전기 자동차 혹은 모빌리티는 별도의 변속기 없이 감속기만으로도 속도제어가 가능하다. 이전에는 DC 모터를 많이 이용했으나 최근에는 이런 내전형 BLDC 모터를 많이 사용하는 추세이다. 다음은 직류 브러쉬 모터와 BLDC 모터의 구조 차이를 설명한 사진과 BLDC 모터 구동 시스템이다.

카트8.png

  • 리튬 배터리

리튬 계열 배터리는 1.2V의 니켈 카드늄, 니켈 수소 전지보다 전압이 3.7V로 매우 높아 공간효율이 1/3 이하로 줄어든다는 장점이 있다. 리튬 이온 배터리의 전해질로는 수용액 대신에 액체 유기용매를 사용한다. 다음은 충방전 시 리튬 이온 배터리의 동작 원리를 나타낸다.

카트9.png


리튬 이온 배터리의 장점은 용량이 커서 충전 후 오래 사용할 수 있고, 다른 배터리보다 가볍다는 점이다. 그러나 다른 배터리보다 위험하며, 안전성 문제로 인하여 고전류를 흘릴 수 있는 고출력 배터리를 만들기는 힘든 것이 단점이다. 리튬 이온 배터리는 휴대전화와 노트북 등의 소형 전자 제품 등에서 아주 급속도의 연구가 진행되고 있으며 전기 자동차 및 하이브리드 용으로 각광받고 있다. 리튬 이온 배터리는 BMS(Battery Management System)의 기능이 아주 중요하다. 이는 배터리의 상태를 모니터링하여 최적의 조건에서 유지/사용 할 수 있도록 배터리 시스템을 자동 관리하고, 배터리의 교체 시기를 예측하고 문제의 배터리를 사전에 발견하는 등 여러 모니터링의 역할을 수행한다.

  • 자이로스코프 센서

자이로스코프는 3가지 성질을 갖고 있다. 우선 방향 안정의 역할로 고속으로 회전하는 로터에 어떠한 외부적인 힘도 작용하지 않는 경우, 로터의 각운동량 벡터는 항상 일정하여 최초의 각운동량 벡터의 방향과 크기는 시간의 흐름과 관계없이 일정하게 된다. 즉 뉴턴의 운동 제 1법칙에 따라 외부에서 힘이 작용하지 않는 한 최초의 운동 상태를 유지하려는 성질이 있으며, 회전축의 방향을 바꾸려는 어떤 시도에 대해서도 저항하려 하는 특성을 가지고 있다. 최초 설정된 방향을 그대로 유지하려는 자이로스코프의 성질은 관성항법장치, 카메라, 방송장비 등에 이용된다. 다음 성질은 세차운동으로, 세차운동은 회전하는 자이로스코프에 힘을 가하면 회전하고 있기 때문에 회전방향과 힘을 가한 방향의 합성 벡터방향으로 축이 선회하는 현상을 말한다. 마지막 성질은 피상으로, 지구의 자전 특성 때문에 일어난다고 볼 수 있다. 이런 자이로스코프의 성질을 활용한 것이 자이로 센서이다. 이중 코리올리의 힘을 이용한 튜닝포크 방식의 MEMS 센서가 가장 좋은 성능을 보이고, 모바일 기기에 가장 많이 이용 되곤 한다. 아직까지 크기나 비용적인 측면에서 MEMS 방식을 따라올 것이 없다. 다음은 어떤 방향으로 회전력이 가해져도 측정이 가능하도록 반대방향으로 끊임없이 진동하는 2개의 추를 배치하여 사용하는 방식을 사용한 튜닝포크 방식의 MEMS 자이로 센서이다.

카트10.png

기술 로드맵

카트11.png

특허조사

  • 토이카트용 프레임


등록번호 : 30-0935656 출원번호 : 30-2017-0029222

본원 디자인의 재질은 합성수지 및 금속재임. 본원 디자인은 상면에 유아 승용완구를 안착시킴은 물론 양측 실린더와 연결시켜 후방으로 들어 올릴 수 있어 주차 공간을 확보할 수 있어 사용상의 편의성이 제공되는 것임. 본원 “토이카트용 프레임”의 형상과 모양의 결합을 디자인 창작내용의 요점으로 함.

카트12.png

  • 골프 카트의 조향장치(STEERING UNIT OF GOLF CART)

등록번호 : 10-1289822 출원번호 : 10-2012-0041901

 본 발명은 좁은 회전 방향을 통해 카트 도로에서도 골프 카트가 원활이 조향하면서 이동할 수 있도록 하는 골프카트의 조향장치에 관한 것으로, 차체의 양편에 고정핀을 통해 회동구조로 설치되며, 조향륜이 마련된 한 쌍의 조향허브와 핸들로부터 회전력을 인가받아 진퇴로드를 진퇴시키는 조향박스와 상기 조향박스의 진퇴로드와 조향허브의 편심부를 연결하는 래디어스 로드를 포함하여 구성되고, 핸들의 회전에 의해 조향 허브가 고정핀을 중심으로 회전하여 조향륜의 조향각을 조절하는 골프 카트용 조향장치에 있어서, 상기 차체의 중앙부에는 제어부의 제어에 의해 보조륜이 승강되는 보조륜부가 설치되고, 상기 제어부에는 조향허브의 조향각을 계측 하는 조향각 계측센서가 마련되어, 제어부는 조향각 계측 센서를 통해 계측된 조향허브의 조향각이 설정값을 초과하면, 제어부는 보조륜부에 마련된 보조륜을 지면에 접단시켜 보조륜을 통해 일편이 지지된 상태로 차체가 조향하도록 구성된 것을 특징으로 한다.

카트13.png

  • 자이로센서를 이용한 저속 전기차의 모터제어장치

공개번호 : 10-2018-0116559 출원번호 : 10-2017-0048989

 본 발명은 자이로센서를 이용한 전동차의 배터리 제어장치에 관한 것으로서, 더욱 상세하게는 자이로센서를 통해 제공되는 값을 획득하여 기울기와 가속도에 따른 모터 속도를 제어하여 안전한 운행과 배터리 소모량을 최적화하는 제어시스템을 제공하는데 그 특징이 있다. 이는 자이로센서에 의해 미리 저장된 기준치 이상으로 기울어질 경우에는 메인컨트롤러로 감속 및 가속 신호를 전달하여 미리 저장된 기준치 속도로 변속 되어 제어하는 것을 특징으로 한다.

카트14.png

특허전략

본 과제에서 핸드카트는 압력센서, 자이로센서, 가속도센서를 활용하여 사용자가 현재 카트를 사용하고 있는 환경적인 요소에 대한 정보를 얻고, 이를 바탕으로 제어부에 설치되어 있는 임베디드 컴퓨터를 사용해 상황을 판단하여 모터를 제어하는 것을 목표로 한다. 이를 위해서는 구조물, 제어부, 그리고 구동부로서 역할을 나눌 수 있다.


구조물을 제작할 때, 위에서 언급한 ‘토이카트용 프레임’의 구조를 이용해 제작한다. 하지만 토이카트용 프레임의 경우 재질을 합성수지와 금속재 2개를 혼용하여 제작하였기 때문에, 우리가 제작하는 ‘임베디드 시스템을 활용한 동력제어 카트’가 스테인리스강을 이용해 제작한다는 점에 입각하여 보면 안정성 있는 결과를 얻을지는 확신할 수 없다. 따라서 토이카트용 프레임의 구조에 대해 재료 성분을 이용해 ANSYS Structure 해석을 실시하여 안정성 있는 구조물을 얻는다. 또한, 구동부를 뒷바퀴 쪽에 탑재하고 기존의 토이카트가 정면으로 끌고 가는 것이라는 점이 본 과제와 다르기 때문에 프레임의 방향을 달리하고, 구동부의 하중까지 버틸 수 있는 프레임 제작을 한다.


'가속도 및 자이로센서를 이용한 밸런스 보행장치’와 ‘자이로센서를 이용한 저속 전기차의 모터제어장치’를 통해 본 과제에서 목표로 하는 제어부를 만들 수 있다. 이를 위해서 가속도 및 자이로센서를 2개씩 탑재하여 기울기와 가속도에 따른 모터 속도(구동부)를 제어함과 동시에 안전한 운행과 배터리 소모량을 최적화하는 제어시스템을 구현한다.


언급한 것 이외에도 압력센서를 탑재하여 카트의 긴급한 제동이 필요한 상황을 판단하여 제동한다. 이 기능들을 모두 탑재한 본 과제는 지금까지 존재하지 않은 발명품이라 할 수 있기 때문에 시스템로직과 디자인 모두 특허 출원을 할 수 있을 것이고, 이를 통해 지적 재산권을 보호받을 수 있을 것이라 사료된다.

관련 시장에 대한 분석

경쟁제품 조사 비교

파일:카트15.png

 본 과제인 동력제어 카트와 시장점유에서 경쟁할 만한 경쟁사 제품들의 특징을 조사해보았다. 현재 대중적으로 많이 쓰이는 수동 핸드카트를 제외하고는 일라이와 같은 스마트 카트, 모도백과 같은 동력제어 캐리어와 같이 상당한 기술력이 많이 접목된 카트들이 많았다. 하지만 대부분의 경우 가격이 비싸고, 본 과제의 주 사용자인 노인들이 사용하기에 직관적이지 않은 제품들이 대부분 이였다. 그리고 기존의 핸드카트의 경우, 저렴한 가격과 휴대성으로 인해 가정 내 보관이 쉽지만 적재량에 관계없이 사용자의 완력에 따라 사용 시 불편함이 따르는 경우가 있었다. 따라서 본 과제는 기존 시장에 존재하는 카트들보다 저렴하고 직관적으로 제작하여, 주 예상 사용자인 고령자 계층에서의 시장경쟁력을 갖추고자 한다.

마케팅 전략

카트16.png

 먼저 본 과제의 시장성을 알아보기 위하여 PEST분석을 진행하였다. 현재 대한민국에서는 고령인구 비율이 올라감에 따라, 정부 차원에서 노인 인적자원을 적극 활용하는 정책과 사업을 추진 중인 것을 확인할 수 있었다. 또한, 실제로 예년에 비해 노인들의 평균 교육수준과, 경제활동 비율이 올라가 있었고, 따라서 시장 내의 노인들이 미치는 영향력이 예년에 비해 많이 상승됐음을 알 수 있었다. 이런 사회적 변화에 맞춰 이미 시중에는 노인 대상의 웨어러블 기기도 많이 상용화되어 있었다. 하지만 반대로 전동킥보드나 세그웨이같이 청년층 대상의 동력제어 기기는 상당히 많은 발전이 있었지만, 노인들 대상의 동력제어 기기는 그 수나 종류가 매우 적음을 확인할 수 있었다. 따라서 본 과제의 동력 제어카트는 그 수와 영향력이 늘어나는 고령인구를 예상 사용자로 삼고 있지만, 기존에 그와 비슷한 역할을 하는 상용화된 제품이 많이 없기에 충분한 시장성을 가지고 있다고 판단한다.

카트17.png

 앞서 PEST 분석을 통해 시장성을 확인하고, SWOT 분석을 통해 강점과 약점, 외부 환경을 고려한 마케팅 전략을 구상했다. 본 과제에서의 마케팅 전략은 체험을 바탕으로 선정하였다. 정보 격차의 확대재생산이라는 문헌에 따르면, 노인들의 신문물에 대한 거부감이 청년층에 비해 확연히 크다는 것을 알 수 있었고, 이를 통해 기존에 효과가 크던 마케팅 전략인 SNS이용과 같은 전략은 주 예상 사용자인 노인들을 대상으로는 맞지 않다고 판단하였다. 따라서 현장에서의 체험을 제공해주고 이를 통한 피드백을 바탕으로 한 마케팅이 본 과제에 적합할 것이라 판단한다. 예를 들어 대여 사업이나 시장홍보와 같은 현장에서 노인들이 직접 본 시제품을 느낄 수 있는 방향의 마케팅 전략이 더 효과적일 것이라고 생각된다.

개발과제의 기대효과

기술적 기대효과

◇ 단순하게 인력에 의해 끌려 다니기만 하는 카트가 아니라 지형과 사용자의 상태를 파악하여 보다 자율주행에 가까운 동작 : 완전 자율주행은 아니지만 보다 간단한 구조로 사용자의 현 상황을 수시로 확인하고 이를 피드백 로직을 통하여 각 사용자의 걸음 속도에 맞게 자동으로 조절되고, 노인들이 도움 없이 무거운 카트를 끌고 가기엔 부담이 되는 오르막길 같은 경우에서도 적절한 속도로 동력이 보조되므로 신체적 부담을 훨씬 절감시켜줄 수 있다.

◇ 보조 제동장치의 설치로 안전성이 향상 : 일반적인 장바구니 카트에는 없는 보조 제동장치의 설치를 통해 내리막에서는 사용자가 원하는 만큼 제동을 걸어 신체적 부담을 덜어줄 수 있고, 경사로에 세워두거나 잠시 정지하는 순간에 외부변수에 의해 카트가 혼자 굴러가는 상황을 방지할 수 있다.

◇ 동력카트의 플랫폼을 활용하여 다른 분야로의 확장 가능성 : 압력센서, 자이로센서 그리고 가속도센서를 이용한 사용자와 지형에 따라 동력을 보조하는 플랫폼을 그대로 활용하고, 장착되는 모터나 장바구니부분만을 다른 것으로 대체한다면 쓰레기 수거, 휠체어 등 다양한 분야로의 확장가능성을 지니고 있다.

경제적 및 사회적 파급효과

◇ 노인들의 신체적 부담을 줄여줄 수 있는 합리적 가격의 신제품 등장 (지금까지 없던 새로운 제품등장)

노인들의 신체적 부담을 줄여주는 동력 보조카트는 현재까지 존재하지 않았다. 수동식 핸드카트보다는 비싸지만 자율주행상품에 비하면 구조가 매우 단순하고 가격도 합리적으로 제작이 가능하여 노인들이 구매하기에 부담이 적을 것이다. 출발지에서 시장까지 평균 이동시간이 17.7분인 것과 중년과 대비하여 노인여성의 걸음 속도를 고려하면 (17.7min / 1.22 m/sec * 1.36 m/sec) 노인들은 평균적으로 19.7분 정도 이동한다고 할 수 있고, 이때 이동거리는 약 1.44km정도로 예측된다. 장바구니 무게로 인하여 복귀할 때만 택시를 이용한다고 가정하면 1회 장보기마다 약 3800원(서울택시 기본요금 기준)을 절약할 수 있다.


◇ 노인들의 시장 이용 증가로 인한 재래시장경제 활성화

재래시장 매출액이 대형마트에 비해 턱없이 적은 현재 상황에서, 장보기에 어려움을 겪던 노인들에 대한 접근성이 향상되므로, 재래시장이용을 방해하던 요소가 해소되어 자연스레 방문 빈도가 상승할 것이고 재래시장 내의 경제가 활성화 될 것으로 기대할 수 있다. 추가적으로 재래시장 현대 사업에 의한 재래시장 활성화에 따른 매출증가 점포비율에 대한 효과가 미실시 시장(2.7%)에 비해 19.3%로 증가했던 결과로 미루어보아 동력제어카트 대여 서비스 등을 제공한다면 시장의 현대화에 한 부분으로 재래시장경제를 활성화 한다고 생각 할 수 있다.

◇ 노인들의 외출 빈도가 증가하고 그에 따른 건강과 삶의 질 향상

신체적으로 부담이 되어 재래시장 장보기를 꺼리던 노인들도 동력보조를 받는 카트를 사용함으로써 부담이 완화되고 자연스레 장보기를 위한 외출 빈도가 늘어날 것이며 외출을 통해 자연스레 걷기운동량이 증가(평균 이동거리 약 4km)한다. 참고자료의 내용에 따라 걷기 운동은 노인의 자아존중감과 생활 만족도를 증가시키며 우울을 감소시키는데 효과적이었고, 생리적 지수와 체력을 향상시키는데도 비교적 효과적인 것을 알 수 있었다.

구성원 및 추진체계

  • 개발 일정

카트18.PNG

  • 구성원 및 추진체계

카트19.PNG

설계

설계사양

  • 제품 요구사항

카트20.PNG

 조원들과 우리가 목표로 하는 ‘임베디드 시스템을 이용한 동력 제어카트’의 요구사항을 정리한 표이다. 사용자가 전자기기 사용에 능하지 않은 노인이기 때문에, 사용자가 직관적으로 사용할 수 있는 구조를 만들고 외부에서 특별한 제어를 하지 않더라도 원하는 출력으로 바뀌는 ‘자동화’가 매우 중요하다고 생각했다. 따라서 그와 관련된 1번, 18번, 8번 요구 사항을 Demand 사항으로 결정했다. 또한 카트이기 때문에 배터리 능률과 총 용량이 중요했고 무엇보다 목표로 하는 양을 탑재했을 때 파손이 일어나지 않게 하기 위해 2번, 5번, 6번, 7번, 17번 요구 사항을 Demand 사항으로 결정했다.
  • 평가내용

○ 목적계통도

카트21.png

위의 제품 요구사항을 기반으로 목적계통도를 만들었다. 크게 기능성, 안정성, 경제성으로 나눌 수 있게 된다. 기능성이란 각 부품이 얼마나 정확하고 우리가 원하는 만큼의 성능을 보여주는 지표로서 정확성과 동작성을 명시하였다. 또한 동력을 제공했을 때 그 효율과 오래 가는 지 확인하는 지표로서 효율성과 지속성을 명시하였다.

안정성이란 ‘임베디드 시스템을 이용한 동력 카트’에는 여러 전기 부품이 들어가기 때문에 해당 전기 부품 중 하나라도 사고가 일어나게 된다면 연쇄적으로 매우 큰 사고가 일어날 수 있다. 그리고 경사진 상황이나, 급제동을 해야 하는 상황 속에서 제동장치의 안정성은 매우 중요하다. 따라서 그에 따른 안정성을 제시하였다. 그리고 이 안정성에는 내구성이 포함되는데, 카트를 만드는 것을 목표로 하기 때문에 카트 자체가 부서지지 않을 정도의 내구성을 명시하였다.

경제성 항목은 해당 카트는 개발하는 것 자체의 목적을 두긴 하지만 이후 판매를 한다는 관점에서 봤을 때 제작비용이 적을수록 좋을 것이다. 이를 위해 각 제품을 살 때 제품 가격을 평가하고 이후에 소모품으로 계산되는 브레이크 케이블은 구비하기 편한 것과 배터리는 충전을 할 수 있는 방식을 채택하는 것을 유지 보수성이라 명시하였다.

○ QFD(Quality Function Deployment)

카트22.PNG


목적 계통도를 기반으로 QFD(Quality Function Deployment)를 작성하였다. 이는 Fig 26 와 같다. QFD의 기본개념은 고객의 요구사항을 제품의 기술특성으로 변환하고, 이를 다시 부품특성과 공정특성, 그리고 생산에서의 구체적인 사양과 활동으로까지 변환하는 것이다.

이 목적에 맞도록 Fig 24에서 언급한 요구 사항을 7개의 기술특성 프레임 구조, 프레임 재료, 배터리 지속시간, 모터출력, 자동제어, 응답시간, 제품유지관리 로 나누어 평가하였다. 이를 통해 제품 평가 점수가 1점부터 5점까지 차등 분배를 할 수 있었는데, 이전의 목적 계통도와 요구 사항 중 Demand로 결정했던 사항들이 대부분 고득점을 하였다. 하지만, Demand 사항 중 3점에서 5점까지 굳이 중요도를 선정하자면 선정할 수 있는 결과를 얻었다. 따라서 우린 이후 3. 개념설계안을 진행할 때, 이를 이용해 각각의 가중치를 계산하고, 이를 통해 각 개념설계안의 최적의 선택을 할 것이다.

개념설계안

가-(1). 평가 기준 - 브레이크 시스템

◇ 제작의 용이성 : 설계 작품에 적용하는데 어려움은 없는가?
◇ 제동력 : 충분한 제동력과 그 유지 능력이 있는가?
◇ 가격 : 제작 비용은 저렴한가?
◇ 유지보수비용 (정비성) : 유지보수 비용은 저렴한가?
◇ 내구성 : 내구성은 뛰어난가?
◇ 무게 : 무게는 가벼운가?

카트23.PNG

가-(2). 평가 내용 – 브레이크 시스템

카트24.PNG

- 구동축(후륜) 1축 제동으로 설계 : 자전거와 구조적으로 다르기 때문에 공통적으로 구동축 상에 브레이크 시스템이 장착될 브라켓과 공간이 필요함.

◇ 밴드 : 레버와 케이블 부분은 설치가 간단 하지만 구동축에 드럼을 장착해야 하고 드럼울 둘러싼 슈를 잡아주기 위한 공간확보와 브라켓 제작이 어렵다. 제동력은 비교 대상에 비해 제일 약한 편이고 제동 시 소음이 많이 발생한다. 최초 설치 시 브레이크 자체 부품 비용은 약 16000원 대부터 형성된다. 수리를 요할 시에 구동계를 모두 분해하여야 한다는 단점이 있다. 하지만 구조가 단순하고 부품이 오래가기 때문에 내구성이 좋다. 무게는 가벼운 편이다.

◇ V 브레이크 : 림 직접 제동이 불가능(휠에서 제동하기엔 공간이 협소하고 제동이 가능한 림이 없음)하여 구동 축 상 림 대체제의 용접 필요하다. 하지만 이를 제외한 나머지는 구조가 매우 간단하므로 제작이 매우 쉽다. 제동력은 비교 대상들 중 중간인 편이다. 최초 설치 시 브레이크 자체 부품 비용은 약 2000원 대부터 형성되어 매우 저렴한 가격을 자랑한다. 또한 간단한 구조와 자전거와의 높은 범용성으로 자가 정비성 및 호환성이 우수하다. 내구성도 충분하고 무게는 매우 가볍다.

◇ 케이블디스크 : 레버 부분은 밴드, V브레이크와 다를 것이 없지만, 디스크와 캘리퍼를 구동축 근처에 따로 장착할 필요가 있다. 제동 능력은 비교 대상들 중 가장 우수하다. 또한 오염에 강하다. 최초 설치 시 브레이크 자체 부품 비용은 약 40000원 대부터 형성된다. 소모품의 내구성은 뛰어난 편이지만 자가정비가 어렵고, 소모품이 V 브레이크에 비해 비싸다. 무게는 유압 디스크보다는 가벼운 편이다.

◇ 유압디스크 : 레버 외에 유압 실린더를 장착할 공간이 필요하고 구조상 설치하기도 쉽지 않다. 또한 유압 호스가 지나가야 하고 디스크와 캘리퍼를 구동축 근처에 따로 장착할 필요가 있다. 제동능력은 비교 대상들 중 가장 우수하다. 또한 오염에 강하다. 하지만 다양한 부품들이 필요하며 구조가 복잡하고 최초 설치 시 브레이크 자체 부품 비용은 약 80000원 대부터 형성된다. 캘리퍼의 피스톤 고착 가능성이 있고, 주기적으로 브레이크 작동유 관리가 필요하다. 제일 많은 부품들로 이루어져 있어 무게가 가장 무겁다.


나-(1). 평가 기준 – 모터

◇ 출력 : 동일 전압 안에서 충분한 출력을 낼 수 있는가?
◇ 제어난이도 : 모터 속도제어가 용이한가?
◇ 가격 : 모터 자체의 비용이 저렴한가?
◇ 유지보수비용 (정비성) : 유지보수 비용은 저렴한가?
◇ 내구성 : 내구성은 뛰어난가?
◇ 무게 : 무게는 가벼운가?

카트25.PNG

나-(2). 평가 내용 – 모터

카트26.PNG

◇ DC 모터 : DC 모터는 기본적으로 AC 모터에 비하여 높은 토크 출력을 낼 수 있기 때문에 등판력이 어느 정도 중요한 본 과제에 적합한 모터라고 판단된다. 속도 제어와 정역전이 용이하기 때문에 다른 종류의 모터에 비해 제어난이도가 낮고, 제어 정확도가 높다고 판단된다. 하지만 코깅토크로 인한 저속에서의 속도제어가 불편하지만, 이와 같은 부분은 기어박스나, 체인 스프로킷을 이용하여 모터 자체는 고속으로 제어하되, 전달되는 회전속도는 낮게 하는 방식으로 단점을 기계적으로 보완할 수 있다. 가격대는 200W 출력의 모터 기준, 평균적으로 3만원대부터 형성되어 있다.

◇ BLDC 모터 : BLDC 모터는 DC 모터의 한 종류로서 브러쉬가 없는(BRUSH LESS) DC모터이다. 브러쉬가 없다는 점 때문에 진동이나 소음이 일반적인 DC 모터보다 적어 배터리 효율이 좋아질 수 있다. 하지만 별도의 구동회로의 존재로 인해 반영구적인 수명에도 불구하고, 유지보수비용과 난이도가 높다. 또한 구동 회로로 인해 그 자체 제어 난이도가 높아, 제어 정확도가 떨어질 가능성이 있다. 기본적으로 동일 출력일 경우 DC 모터에 비해 평균적으로 4,5배의 가격을 보이고 있다. 이 또한 한정된 자본에서 수행하는 본 과제에 있어서는 큰 단점이다.

◇ AC 모터 : 교류 전류를 사용하는 모터로서 전압이 일정하지 않은 교류전원의 특성상 모터제어나 설계에 있어 전압에 대한 공차설계가 요구된다. 따라서 제어 난이도가 높아지고, 공차에 의해 제어 정확도도 DC 모터에 비하여 떨어지게 된다. DC모터에 비하여 저렴하지만, 출력 토크가 낮아 본 과제에 맞는 출력을 요하는 모터는 6 만원대로 DC 모터에 비하여 비싸다. 따라서 AC 모터의 낮은 가격도 본 과제에는 적합하지 않다.

다-(1). 평가 기준 – 카트 밑면의 형상

◇ 제작의 용이성 : 설계 작품에 적용하는데 어려움은 없는가?
◇ 내구성 : 100kg의 하중을 가할 때 버티는데 어려움이 없는가?
◇ 탑재성 : 물품이 누출될 위험도가 낮은가?
◇ 무게 : 무게는 가벼운가?

카트27.PNG

다-(2). 평가 내용 – 카트 밑면의 형상

카트28.PNG


각 평가 기준마다 최저 1점에서 최고 5점까지 평가한다. 평가한 점수에서 가중치를 곱하여 총점에 반영하고 점수에 따라 순위를 매긴다.

내구성 항목의 경우 ANSYS Program을 이용해 Static Structual 해석을 실시했다. 탑재부의 중심에 집중하중으로 100kg에 상응하는 1000N을 가했고, 이에 따른 응력 분포를 확인한 것이 다음과 같다.

카트29.png

카트30.png

카트31.png

◇ X 형상 밑면 : Stainless 재료에 대해 용접을 진행할 때, 용접 해야할 부분이 많을수록 용접이 잘 수행되지 않을 불확실성이 커진다. 또한, 용접 부위가 모서리 부분이 꼭짓점 부분보다 용접을 쉽게 할 수 있다. 이점에 비추어 볼 때, X 형상은 4지점 모두 꼭짓점 부분이란 점에서 제작의 용이성이 낮아 해당 점수를 부여했다. 100kg의 하중이 가해질 때, Frame은 집중하중이 작용하는 지점 근방에서 최대 5.6 MPa의 응력이 발생하고, 용접 부근에서 1.24 MPa의 응력이 발생한다. 이는 다른 개념 설계안과 비교했을 때OO등이기 때문에 해당 점수를 부여했다. ╋ 형상과 비슷하게 밑면의 80%를 천으로 덮어야 하지만, ╋ 형상보다 더 큰 물품이 누출 될 가능성이 높기 때문에 해당 점수를 부여했다. 이 Frame만의 무게는 1.38kg 이기에 해당 점수를 부여했다.

◇ ╋ 형상 밑면 : 해당 형상은 모두 모서리 부분을 용접할 뿐 아니라 2개의 봉만을 용접하기 때문에 제작의 용이성 부분에서 가장 높은 점수를 부여했다. 100kg의 하중이 가해질 때, Frame은 집중하중이 작용하는 지점 근방에서 최대 4.11 MPa의 응력이 발생하고, 용접 부근에서 0.9MPa의 응력이 발생한다. 이는 다른 개념 설계안과 비교했을 때 1등이기 때문에 해당 점수를 부여했다. X 형상과 비슷하게 밑면의 80%를 천으로 덮어야 하지만, X 형상보다 더 큰 물품이 누출 될 가능성이 낮기 때문에 해당 점수를 부여했다. 이 Frame만의 무게는 1.32kg 이기에 해당 점수를 부여했다.

◇ 대각선 형상 밑면 : Stainless 재료에 대해 용접을 진행할 때, 용접해야할 부분이 많을수록 용접이 잘 수행되지 않을 불확실성이 커진다. 또한, 용접 부위가 모서리 부분이 꼭짓점 부분보다 용접을 쉽게 할 수 있다. 이점에 비추어 볼 때, 대각선 형상은 2개의 꼭짓점 부분의 용접과 4개의 모서리 부분의 용접이 필요하단 점에서 제작이 가장 힘들다고 할 수 있기에 해당 점수를 부여했다. 100kg의 하중이 가해질 때, Frame은 집중하중이 작용하는 지점 근방에서 최대 9.65 MPa의 응력이 발생하고, 용접 부근에서 3.21MPa의 응력이 발생한다. 이는 다른 개념 설계안과 비교했을 때 3등이기 때문에 해당 점수를 부여했다. 다른 개념 설계안과 다르게 밑면의 70%를 천으로 덮어야 하기에 가장 높은 점수를 탑재성 부분에 부여했다. 이 Frame만의 무게는 2.065kg 이기에 해당 점수를 부여했다.

"""라-(1). 평가 기준 – 배터리"""

◇ 방전률 : 배터리의 출력이 적합한가?
◇ 지속성 : 배터리가 오래 지속되는가?
◇ 충전용이성 : 충전에 걸리는 시간이 적합한가?
◇ 무게 및 부피 : 무게와 부피가 가벼운가?
◇ 안전성 : 위험성은 없는가?
◇ 가격 : 가격이 합리적인가?

카트32.PNG

라-(2). 평가 내용 – 배터리

카트33.PNG

◇ 납-축전지 : 공칭전압과 방전율은 시중에 있는 제품으로 원하는 동작을 구현할 스펙이 가능하지만, 무게와 부피가 너무 많이 나가고 충전 관리가 까다로워 총점이 좋지 않게 나온 배터리이다. 다만, 가격이 아주 저렴하게 형성되어 있고 여러 전압 및 Ah의 스펙이 존재하기 때문에 적합한 무게가 나온다면 차선책으로 생각할 수 있다.

◇ 리튬 이온 : 가장 대중적으로 이용되는 2차전지로서, 다양한 전압 및 Ah에 대한 스펙이 시중에 존재해서 가장 적합한 배터리라고 생각되는 모델이다. 후보군 들 중 출력 및 무게 문제에서 가장 우수한 점수를 나타내고, 충전 및 지속 문제도 가장 훌륭한 양상을 띄고 있다. 다만, 케이스 문제 등으로 인한 미약한 발화 가능성이 존재하고 가격대가 높게 형성되어있는 단점이 있다.

◇ 리튬 인산철 : 리튬이온과 아주 유사하지만, 결정적으로 무게가 20%정도 더 나가는 제품이라 상대적으로 리튬 이온보다 성능이 좋다고 볼 수 없다. 다만, 폭발 위험성은 가장 적은 제품이지만, 시중에 있는 제품을 사용하는 것에 있어서 큰 장점이라고는 여겨지지 않는다. 또한, 시중에 전압과 Ah에 대한 스펙이 다양하지 않아 원하는 출력을 구성하는 것에 어려움을 겪을 수 있다.

마-(1). 평가 기준 – 제어 로직
◇ 제작의 용이성: 설계 작품에 적용하는데 어려움은 없는가?
◇ 안전성: 제품을 사용하는 데에 위험 요소는 없는가?
◇ 정확성: 목표하는 값에 정확히 도달할 수 있는가?
◇ 실시간성: 외부 요인에 따른 응답 속도는 얼마나 빠른가?

카트34.PNG

마-(2). 평가 내용 – 제어 로직

카트35.PNG

◇ 비례 제어 : 비례 제어는 조작량과 목표값과의 차이에 비례상수만을 곱하여 제어 신호를 만들기 때문에 그 구조가 간단하여 비례 제어기를 제작함에 큰 어려움은 없다. 따라서 가장 제작 용이성에서 가장 높은 점수를 줬다. 비례 제어는 안전성에 있어서 조작량이 목표값을 초과할 수 없으므로 출력값이 값자기 크게 증가하여 생기는 안전사고의 위험성이 낮다. 따라서 네 가지 제어 방법 중에서 가장 높은 점수를 줬다. 다만 조작량이 목표값에 도달할 수 없으므로 정확성은 가장 낮은 점수를 줬다. 실시간성은 비례 제어를 기준으로 삼기 위해 중간 점수를 줬다.

◇ 적분 제어 : 적분 제어는 비례 제어기와 함께 사용해야 하므로 비례 제어보다는 제작이 까다롭다. 따라서 비례 제어보다 낮은 점수를 줬다. 안전성에 있어서 구동기 포화 문제가 발생할 수 있으므로 가장 낮은 점수를 줬다. 정확성 부분에서는 비례 제어에서 발생하는 정상상태 오차를 해결할 수 있으므로 두 번째로 높은 점수를 줬다. 적분 제어의 경우 응답 속도가 느려질 수 있으므로 실시간성은 가장 낮은 점수를 줬다.

◇ 미분 제어 : 미분 제어는 비례 제어기와 함께 사용해야 하므로 비례 제어보다는 제작이 까다롭다. 따라서 비례 제어보다 낮은 점수를 줬다. 안정성에 있어서 과도응답 특성을 개선한다는 점과 외란에 대한 저항력을 높여준다는 점에서 가장 높은 점수를 줬다. 정확성은 과도응답 특성을 개선하고 외란에 대한 저항력은 높여주지만 정상상태 오차는 개선하지 못한다는 점에서 두 번째로 낮은 점수를 줬다. 실시간성은 비례 제어와 마찬가지로 중간 점수를 줬다.

◇ PID 제어 : PID 제어는 비례, 적분, 미분 제어를 모두 조합한 제어 방법이기 때문에 제작하기가 가장 까다롭다. 제작 용이성에서 가장 낮은 점수를 줬다. 안전성에서는 오버슈트나 언더슈트의 발생 가능성이 존재하지만 설계하기에 따라 해당 요소들을 충분히 조절할 수 있으므로 중간 점수를 줬다. 정확성에서는 목표값에 가장 빠르고 정확하게 도달할 수 있는 방법이기 때문에 가장 높은 점수를 줬다. 마찬가지로 실시간성에서도 가장 높은 점수를 줬다.

바. 최종 정리

카트36.PNG

위의 표는 지금까지의 개념설계 안을 목적계통도에 맞게 평가 항목을 정리하여 나타낸 표이다. 우리가 제작 하려는 ‘임베디드 시스템을 이용한 동력 카트’는 ╂ 형상의 Frame을 가지며 DC 모터와 리튬이온 배터리를 이용해 카트를 구동한다. 이때 제어는 PID 제어 시스템을 이용해 Feed back 제어를 할 예정이고 급작스러운 상황에서 제동을 V 브레이크를 이용해 구축할 예정이다. 이후 상세 설계에서는 쓰려는 재료에 대한 상세 사양을 결정할 뿐 아니라, Frame의 두께를 ANSYS Structure 해석을 이용해 경량화를 목표로 설정할 예정이다.

이론적 계산 및 시뮬레이션

가. 이론적 계산 및 시뮬레이션의 목적

 이론적 계산과 해석프로그램을 이용해 제품의 정확한 치수 및 응력 집중 현상이 일어나는 부분을 찾아 보강하여 적절한 안전계수를 갖는 ‘임베디드 시스템을 활용한 동력제어 카트’를 만든다. 또한, 목표로 하는 안전적인 모터 제어와, 내구성을 갖는지 확인할 수 있고 이 과정을 통해 자재비와 실제 제작하는 시간을 줄이는 효율적인 카트를 설계하는 것을 목표로 한다.

나. 초기 설정 모델 및 이론적 계산

◇ 카트의 초기 모델 설정

(1) 카트의 각 프레임은 20x20(mm) 사이즈의 사각봉을 사용한다.
   (2) 카트의 각 프레임의 재료는 강철 또는 주철로 만든다.
   (3) 카트의 전체 사이즈는 450x600x600(mm)를 넘지 않는다.
   (4) 카트의 최대 속도는 5km/h이다.
   (5) 카트의 최대 운행 가능 시간은 2시간이다.

◇ 이론적 계산

(1) 카트의 각 프레임은 강철 또는 주철의 20x20(mm) 사이즈 사각봉을 사용한다.

본 제품은 제작의 용이성을 위해 카트의 프레임의 크기는 모두 동일하게 제작할 예정이다. 이를 위해서는 프레임에 가해지는 하중에 따라 가장 취약한 부분에서의 안전계수가 얼마나 클지 확인하는 과정이 필요하다. 이를 위해서 우선 20x20(mm) 사이즈로 결정하였고, 재료를 강철 또는 주철로 결정했다. 이러한 기본적인 조건을 갖고서 단순지지보로서 우리가 목표로 하는 30kg의 하중이 주어진다고 했을 때 양 끝단에서 작용하는 하중은 다음과 같다.

카트37.PNG


각 끝단에 작용하는 하중은 150N으로 모두 동일하게 작용한다. 전체 길이 L을 프레임의 가장 긴 부분인 600mm라 가정하고 해당 하중을 20x20(mm) 단면에 작용하는 벤딩 모멘트를 구한다. 전단력에 의한 모멘트는 고려하지 않는데, 그 이유는 ‘보’라는 구조물 자체가 전단력에 의한 영향보다 모멘트에 의한 영향력이 큰 부재이고 벤딩 모멘트가 최대인 지점에서 전단력은 최소이기 때문에 고려하지 않는다.

카트38.PNG

즉, 하나의 고정 지지보에 작용하는 최대 응력은 56.25MPa 이다.

카트39.png


주철의 두께가 30mm 이상인 경우 항복강도는 250MPa 이상이다. 해당 설계 모델의 단면은 20mm 이기 때문에 항복강도는 250MPa 이하이다. 이를 과감하게 220MPa 이라 설정하게 된다면 해당 모델의 안전계수는 3.91이다.

카트40.PNG

이는 다음 표에서 잘 알려진 재료이지만 불확실한 환경과 응력 조건에서 사용할 때, 매우 안전하다고 판단할 수 있는 안전계수이다. 따라서 우린, 안전계수 2.5 ~ 3 이내로 설계하는 것을 목표로 하였는데 이는 ‘평범한 조건에서 보통의 재료를 사용하고. 하중과 응력의 크기를 알아낼 수 있는 경우’ 에 부합하는 안전계수이다.

카트41.png

또한 실제로 카트에 작용하는 하중은 단순지지보 형태의 집중 하중이 아니라 분포 하중이고 형상도 복잡한 형상일 것이다. 이는 집중하중의 단순지지보가 가장 보수적으로 적용했을 때를 이용해 계산하게 됐을 때 안전하다면 실제 형상에서도 적용 가능할 것이기 때문에 적용하였다.

(2) 카트의 각 프레임의 재료는 강철 또는 주철로 만든다.

위에서 언급한 것처럼 안전계수가 3.91이라는 높은 수치를 얻을 수 있었기 때문에, 매우 보수적인 설계를 할 수 있을 것이다. 하지만 안전계수가 너무 높다는 것은 우리가 목표로 하는 출력과 기계의 수명을 갖게 하더라도 재료의 낭비가 심할 수 있다. 이는 주철의 밀도가 7.85 란 점에서 더욱 큰 낭비를 유발하게 된다. 따라서 우린 안전계수를 줄이고 밀도가 작은 재료를 이용할 필요성을 느낄 수 있다.

(3) 카트의 전체 사이즈는 450x600x600(mm)를 넘지 않는다.

카트의 전체 사이즈는 카트를 폈을 때, 그리고 두께의 외관까지 고려한 결과이다. 이를 탑재부만 고려했을 때 사이즈는 360x400x450(mm) 가 된다. 해당 제품은 재래시장에서 사용할 것을 목표로 하기 때문에, 여러 음식을 Packaging해서 운반할 것으로 예상한다. 즉, 카트의 탑재부의 용량은 문제되지 않는다고 사료된다. 하지만 이를 정량적으로 분석하기 위해서 우체국택배 상자 규격과 비교해본다.

(4) 카트의 최대속도는 5km/h이다.

본 과제에서의 카트는 보행자의 걷는 속도에 맞춰 이동해야하기 때문에, 전동킥보드나 전동자전거 같은 퍼스널 모빌리티와는 다르게 빠른 속도보다는 경사를 올라갈 수 있는 충분한 토크가 중요하다. 따라서 모터 스펙과 기어박스의 기어비를 설정할 때에는 등판력에 초점을 두고 결정한다. 먼저 본 과제에서 사용하는 바퀴의 크기는 6“이므로 이에 맞춰 필요한 스펙의 단위를 계산한다. 그 과정은 다음과 같다.

카트43.png

위의 식을 확인해 보면 최대 속도 5km/h가 되려면 최소 176.84의 rpm이 필요하다. 이는 시중에 판매하는 일반적인 퍼스널 모빌리티 출력 rpm에 비하면 상당히 낮은 수치이지만, 본 과제에서는 본체 무게를 포함하여 약 40kg의 무게를 운반하는 것을 목표로 하고 있기 때문에 rpm뿐만 아니라 등판력과 관련있는 토크, 출력 등을 고려해야 한다. 이제 등판을 하는 경우에서의 필요 동력을 계산해본다.

카트44.png

위의 그림은 등판시 작용하는 힘에 대한 힘의 평형도이다. 이 때 본 과제의 카트의 바퀴는 미끄러짐없는 회전운동을 한다고 가정하고 필요동력을 계산해본다. 이때 경사의 각도 θ는 국가법령정보센터에서 발췌한 도로의 구조, 시설기준에 관한 규칙에 명시되어 있는 소형차 도로 종단경사 규정을 참고 하여 결정하였다.

카트45.png

위의 표는 국가법령정보센터에서 발췌한 소형차 도로 종단경사 규정이다. 경사도로 표시되어 있는데 이는 경사각도 θ에 대한 tan값을 퍼센트로 환산한 값이고, 여기서 각 도로에 대한 최대 경사는 1퍼센트를 더 더할 수 있다. 따라서 θ값에 대한 tan 최대값은 0.18이고, 이를 tan에 대한 역함수로 구하면 약 θ = 10.2(degree)의 값을 얻을 수 있다. 이제 규정을 참고하여 정한 θ값에 따른 동력을 구하고자 한다. 그 식은 다음과 같다.

카트46.png

위 식의 계산값에 따르면 10.2도의 경사를 5km/h로 등판하는데 필요한 동력은 약 96.41W가 나온다는 것을 확인할 수 있다. 따라서 본 과제에서의 모터는 위에서 구한 최소 출력 rpm과 동력을 모두 만족시켜야 한다.

(5) 카트의 최대 지속가능시간은 2시간 이다.

카트47.png

본 과제에서 사용할 트랜스엑슬 모터의 명판 데이터 표이다. 앞서 계산한 모터 필요 rpm과 동력에 따라 모터가 필요한 Amps와 Volts 수를 정한다. 먼저 최소 176.84 rpm의 출력 rpm이 필요한데 이는 트랜스엑슬 모터에 부착되어 있는 기어박스의 기어비가 21:1 것을 고려할 때, 최소 모터의 출력 rpm은 3713.64 rpm이 되어야 한다. 또한 앞서 구한 필요 동력이 96.41W 이고 위의 표에서 출력 동력을 나타내는 Wout 살펴보면 8,9,10번 데이터가 적합한 값이 된다. 필요 Volts는 3개의 데이터가 모두 대략 24V로 비슷한 값을 갖고, 필요 Amps 값은 경제성을 고려했을 때 가장 낮은 8번 데이터의 6.07A가 제일 적합하다. 따라서 2시간을 운행하기 위해서는 최소 12140mAh의 용량을 가진 배터리가 필요하다.

다. 최종 설계안의 구체적 내용 (1) 최종 설계안의 외형

카트48.png

최종 설계안의 외형이다. 7인치 바퀴와 개념설계 보고서에서 언급한 모터와 기어박스를 사용하여 구동부를 이룬다. 또한 하중 계산을 통해 각 프레임의 두께를 결정하였고, 결정한 프레임을 감싸는 천으로 탑재부를 만들 것이다.

구동부를 이루고 있는 모터와 기어박스는 아크릴 판 또는 철판으로 하나의 공간을 만들어 탑재할 것이고, 탑재부의 아래에 아두이노와 배선까지 모두 배치할 수 있도록 설계한다. 전체적으로 가볍게 만들기 위해 프레임을 얇게 만들었으나, 모터가 구동하거나 손잡이로 끌 때, 파손이 일어나는 일은 없도록 설계하였다.

(2) 프레임의 재료

앞서 우리는 주철을 이용해 프레임을 제작하려고 목표했었다. 하지만 너무 큰 안전 계수 및 밀도로 인해서 경량화를 이룰 수 없을 것이라 예상되기에 프레임의 재료를 변경하고자 하였다. 주로 사용하는 스테인리스 강은 크롬(Cr)이 12%이상이 함유된다. 이는 철을 주성분으로 하면서도 보통 강이 가지고 있지 않은 여러 가지 특성 즉, 표면이 아름다운 점, 녹이 잘 슬지 않는 점, 열에 견디기 좋은 점, 또한 외부 충격에 대해 강하다는 점을 볼 때 우수한 특성을 갖추고 있다.

또한 스테인리스 강은 광택이 있다는 점에서 따로 도색을 할 필요성도 없기에 경제적이고, 우리가 사용하려 하는 STS 304의 경우 오스테나이트계로서 기계적 성질이 매우 뛰어나, 목표로 하는 내구성 강한 경량화를 성공할 수 있을 것이라 사료된다.

카트49.png

위의 표에서 알 수 있듯이, STS304는 205 이상의 항복 강도를 갖고 있다. 이는 ‘초기 설계’에서 주철의 항복강도 220MPa과 15MPa밖에 차이가 나지 않지만 스테인리스 강의 밀도가 2.5 이란 점에서 3배 이상의 효율을 낼 수 있을 것이라 사료 된다. 따라서 이후 설계안에서는 스테인리스 강을 대표하는 STS 304 재료를 이용해 설계하는 것으로 한다.

(3) 프레임의 두께

프레임의 두께를 결정하기 위해서 ANSYS Structure 해석을 실시했다. 그 결과 8mm 두께에 해당하는 프레임의 두께를 얻어낼 수 있었다. 해당 결과를 도출하기 위해 프레임의 옆면을 고정하고 탑재부의 중간 지점에 300N의 집중하중을 가하였다. 그리고 구동부를 담을 박스에는 실제 구동부를 배치하는 것이 아니라 Remote Force로서 5kg에 해당하는 50N을 작용하여 구한 것이 다음과 같다.

해당 결과를 통해 우리는 최대 응력이 집중 하중이 작용하는 부근에서 68.4MPa 로 작용된다는 사실을 알 수 있다. 이를 이전의 항복강도와 연관 지어 안전계수를 구한다.

카트50.PNG

그 결과 안전계수 값이 거의 3에 임박하는 사실을 알 수 있었다. 이는 집중하중으로 치환해서 구한 값이기에 실제 구조물에 가해지는 힘으로 안전계수를 구한다면 3보다 큰 안전계수를 얻을 수 있을 것이라 사료되기에 프레임은 8x8(mm) STS304 사각봉을 이용해 제작하는 것으로 한다.

카트51.png

(4) 손잡이 프레임

여기서 언급하는 손잡이 프레임이란 파이프로 이어진 손잡이와 카트의 본체가 연결되는 부분을 말한다. 이 또한 이전에서 언급한 것처럼 프레임의 옆면을 고정하고 탑재부의 중간 지점에 300N의 집중하중을 가하였다. 그리고 구동부를 담을 박스에는 실제 구동부를 배치하는 것이 아니라 Remote Force로서 5kg에 해당하는 50N을 작용하였다. 하지만 여기서 그치지 않고 사람이 손잡이를 잡고 끄는 것을 고려하여 x축 방향으로 200N의 힘을 작용하여 분석하였다.

카트52.png

그 결과 최대응력 161MPa을 구할 수 있었다. 이를 통해 안전계수를 구한다면 다음과 같다.

카트53.PNG


너무 작은 안전계수 값 1.27을 구할 수 있었다. 이는 매우 관리가 가능한 조건에서 매우 신뢰성 있는 재료를 사용하고, 작용하는 하중 및 응력의 크기를 정확히 아는 경우. 무게의 경량화를 특히 중요하게 고려해야 하는 응용 분야에서 사용할 때에만 고려하는 것이기에 안전계수가 너무 낮다고 판단됐다. 이를 해소하기 위해서는 응력 집중이 일어나는 부분에 보조재를 두는 것으로 해소하고자 하였고 이는 다음 그림과 같다.

카트54.png


이를 이용해 동일한 조건에서 ANSYS Structure 해석을 한 결과와 안전계수는 다음과 같다. 이는 우리가 허용하는 안전계수에 부합하다고 할 수 있다.

카트55.png

카트56.PNG

(5) 배터리와 전압 (공칭전압이랑)

앞선 개념설계에서 리튬이온배터리를 선정하였는데, 모터의 스펙과 제품에 요구되는 상황에 알맞은 방전율과 용량에 대한 정확한 스펙선정이 필요하다. 스펙 선정에 앞서, 해당 제품은 크기가 작아야하고 고출력이 가능한 배터리 스펙을 요구하기에 방전율을 우선적으로 고려해야 한다. 방전율이 중요한 이유는, 출력이 약한 편에 속하는 250W 모터라도 최대 14A전류까지 필요로 하기 때문에 필수적으로 고려해야하는 부분이다. 방전율(C)에서 1C는 해당 배터리의 용량을 1시간 동안 출력할 수 있다는 의미를 가진다. 250W 기준 최대 14A까지 필요로하는 스펙을 고려했을 때, 넉넉하게 20~30A의 전류를 공급할 수 있는 배터리 스펙이 요구될 것이다. 현재 기성품으로 판매되고 있는 18650셀로 이루어진 배터리팩의 방전율은 대부분 3C(10A)이다. 또한, 이전 모터와 기어박스의 기어비를 고려하여 계산한 최소모터 출력 약 3700 rpm을 통해 나온 24V, 6.07A를 고려하여 선정한 배터리 스펙은 다음과 같다. 해당 모터에 요구되는 동력은 약 96W로 이전에 계산되었다.

카트57.png

24V의 모터를 구동하기 위해서 해당 배터리팩 2개를 직렬 연결하여 방전율을 최대 30A까지 끌어올리고, 만충전압을 12.6V*2=25.2V 까지 끌어올려 사용할 예정이다.


(6) 모터 및 기어박스

앞서 구한 필요 rpm과 필요 동력을 이용하여 모터의 스펙을 선정하였다. 먼저 진행한 필요 스펙 계산 후 그 스펙에 맞는 모터를 찾아보았다. 그 결과 270W, 24V 트랜스엑슬 모터를 선정하게 되었 다. 구매사이트에서 확인해본 결과 선정한 모터는 21:1의 기어비를 갖고 있는 기어박스가 부착되어 있는 모델이다. 이를 고려하여 적합성을 확인하고자 한다.

카트58.png


위의 그래프는 구매사이트에서 발췌한 모터의 효율과 토크, rpm을 명시한 T-N 커브 그래프이다. 먼저 T-N 커브 그래프에서 모터 효율이 가장 좋은 구간을 normal range라고 하는데, 주로 모터를 사용할 때에는 이 normal range안에 속하는 스펙 안에서 사용하기 때문에 이를 바탕으로 적합성 판단을 하고자 한다. 먼저 normal range 안에 가장 높은 rpm 값은 약 4300rpm이다. 여기에 모터에 부착되어 있는 기어박스의 기어비를 적용하면 출력 rpm이 계산된다. 출력rpm N=4300/21 ≈ 204.76rpm으로 우리가 앞서 요구했던 최소 rpm인 176.84를 만족하는 것을 알 수 있다. 다음으로는 normal range안에서 가장 낮은 rpm을 확인해 본다. 가장 낮은 rpm은 약 3800/2 ≈ 180.95rpm이 나오는 것을 확인할 수 있다. 따라서 사용하고자 하는 트랜스엑슬 모터는 속도출력의 면에서는 우리가 요구하는 사항을 만족함을 알 수 있다. 그 다음으로 등판력과 연관되는 출력 동력에 대한 부분을 판단하고자 한다. 동력의 경우, 입력과 출력으로 나뉘어 있는데, 출력 동력을 확인한다. 출력 동력이 normal range안에서 가장 낮은 곳은 약 160W로 우리가 앞서 계산했던 96.41W보다 높음을 알 수 있다. 따라서 본 과제에 사용할 트랜스엑슬 모터는 과제에서 요구되는 스펙을 전부 만족함을 알 수 있다.

조립도

조립도

카트59.png

조립순서

◇ 프레임 제작 ◇ 구동부 제작 ◇ 앞쪽 손잡이 제작 ◇ 임베디드 시스템 제작 ◇ 브레이크 시스템

⓵ 브레이크 레버 : 레버와 동봉된 볼트를 이용하여 손잡이에 고정

카트60.png

⓶ 브레이크 레버 연결대 : 브레이크 레버 끝부분을 절단한 후 레버 두께에 맞춰 제작된 연결대에 본드를 발라 끼워 넣음

카트61.png

⓷ 브레이크 홀더 (주차용) : ABS재질의 탄성을 이용하여 손잡이에 끼움


카트62.png

⓸ 브레이크 디스크 : 트랜스액슬 구동축 상에 브레이크 디스크를 용접함

카트63.png

⓹ V브레이크 캘리퍼 : 프레임에 붙은 브라켓에 양쪽 캘리퍼를 동봉된 볼트-육각렌치를 이용하여 고정

카트64.png

부품도

◇ 모터 & 기어박스 & 축

카트65.png

◇ 밑면의 형상

카트66.png

◇ 카트 프레임

카트67.png

◇ 손잡이 프레임과 카트 프레임의 연결부

카트68.png

◇ 카트 손잡이

카트69.png

제어부 및 회로설계

카트70.png


가속도&자이로 센서와 압력센서는 아두이노와 연결되어 현재 사용자가 가하는 압력의 크기와 사용자가 지나고 있는 지형의 기울기를 계산하는 데에 사용한다.

◇배터리는 아두이노와 모터에 전력을 공급하는 데에 사용한다.
◇컨버터는 24v 배터리의 전력을 아두이노의 공급전력인 9~12V로 낮추어 아두이노에 전달해주는 데에 사용한다.
◇모터 드라이버는 아두이노를 이용해 모터를 제어하기 위해 사용한다.
◇모터는 카트에 보조 동력을 전달해주기 위해 사용한다.

(1) 압력센서

카트71.png

해당 제품에 사용할 압력센서는 FSR 압력센서로 몇 개의 레이어로 구성되어 있음을 확인할 수 있다. 원리는 Active Area 의 면적 중 semiconductor에 닿는 면적이 증가하면서 저항값이 줄어드는 원리이다.

위의 그래프를 보면 압력센서는 물리적 압력의 크기에 따라 저항값이 변하게 된다. 압력이 없을 경우 센서는 무한대의 저항값을 가지며, 약간의 압력에서 100kΩ의 저항부터 저항값이 점차 떨어지는 양상이다. 해당 센서를 풀다운 시키는 방식으로 저항값을 시리얼값으로 읽어드리는 방식으로 모터 제어를 할 예정이다. 압력을 감지시 해당 저항값을 시리얼값으로 환산하고 해당 값에 따라 필요한 모터 동력을 계산하여 제어한다.

(2) 자이로 센서

해당 제품에 사용할 자이로 센서는 MPU6050 가속도/자이로 센서로 제어에 있어 가장 핵심적인 센서라고 볼 수 있다. 해당 모듈에서 측정된 값은 곧바로 회전각으로 받아들일 수 는 없고, 오일러의 각 공식을 통해 정확한 각도계산이 필요하다. mpu6050 모듈에서 얻을 수 있는 값은 가속도(x,y,z) 각속도(x,y,z)와 온도값으로 가속도와 각속도 벡터를 반환하여 오일러의 각도 공식을 통해 각도를 계산한다.

카트72.png

아두이노에 내장된 코드를 통해 얻어진 각도계산은 힘이 일정하다면 정확한 각도 값을 얻어낼 수 있지만 진동과 같은 떨림에 약하다는 단점이 있다. 특히 가속도 센서의 경우 진동에 민감하기 때문에, 짧은 시간의 변화에 정확하지 않을 수 있고, 자이로센서의 경우 진동에 강하기에 긴 시간 동안 오차가 쌓일 수 있는 우려가 존재한다. 이 문제를 해결하기 위해 상보필터를 제어로직에 적용한다. 상보필터는 상호보완적인 필터로, 자이로센서와 가속도센서 둘의 장점을 취하여 정확한 각도값을 계산하기 위한 필터이다.

카트73.png

ALPHA 값의 조절로 가중치를 적용할 수 있으며, 상보필터 라이브러리를 사용하여 제어 로직에 사용할 예정이다. 모듈과 아두이노 보드를 연결하는 기본 회로도는 다음과 같다.

카트74.png

소프트웨어 설계

카트75.png

◇기본 알고리즘: 아두이노에서 압력 센서로부터 받는 전압을 압력으로 변환 후 압력이 0을 초과하는 경우 압력에 비례하는 속도의 모터 출력 PWM 신호를 모터 드라이버를 통해 전달한다. 동시에 가속도&자이로 센서로부터 가속도 값과 각속도 값을 얻어 각도를 계산한 뒤 상보필터를 사용해 더 정확한 카트 진행 방향의 각도를 계산한다. 만약 이 각도가 특정 값 이상일 경우 압력 센서로부터 출력되는 모터 속도에 추가적인 속도를 더하여 PWM 신호를 모터 드라이버를 통해 전달한다. 이때 브레이크가 동작할 경우 아두이노 전원 쪽에 연결된 리버스 스위치가 작동하면서 아두이노 전원이 차단되어 모터 동작이 차단된다.

◇ 본 프로젝트에서는 아두이노에서 센서값을 받고 아두이노로 모터를 제어한다. 따라서 모든 소프트웨어 작성은 아두이노에서 이루어진다. 아두이노에 소프트웨어 코드를 작성하여 업로드하는 툴은 아두이노 ‘스케치’라도 불리는 아두이노 통합개발환경(Arduino IDE)이다. 이는 편집기, 컴파일러, 업로더 등이 합쳐진 소프트웨어 개발환경으로 각종 라이브러리를 관리할 수 있다. (본 프로젝트에서는 소프트웨어 작성을 원활하게 하기 위해 자이로센서 사용 관련 라이브러리를 사용한다.) 또한, 컴퓨터와 아두이노간의 통신을 위한 가상 시리얼 모니터를 사용할 수 있다. (본 프로젝트에서는 센서값을 확인하고 모터에 입력할 신호값을 실험적으로 결정하기 위해 시리얼 모니터를 사용한다.)

◇ 자이로센서의 경우 아두이노에서 읽어들이는 센서 값을 직관적인 각도값으로 변환해줄 필요가 있으며 그 과정이 복잡하다. 따라서 일련의 과정을 쉽게 진행할 수 있는 라이브러리를 따로 다운받아 사용한다. 사용하는 라이브러리는 센서의 가속도, 자이로값을 읽어서 각도로 변환하는데 사용되는 함수가 저장된 ‘MPU6050’, i2c통신을 위한 함수가 저장된 ‘i2cDev’로 (https://github.com/jrowberg/i2cdevlib) 이 주소에서 다운로드받을 수 있다. 자이로 센서를 사용하면 pitch, roll, yaw 3축에 대한 회전 값을 얻을 수 있지만 본 프로젝트에서는 방향전환이나 좌우 회전에 대한 동력보조는 고려하지 않기 때문에 한 축에 대한 회전 값만을 사용하여 필요한 추가 동력을 계산한다.

◇ 압력 센서를 통해 사용자가 카트에 가하는 힘을 계산하여 모터 출력을 내보낸다. 계산된 압력은 0~255사이의 값으로 변환하는데 이는 모터를 PWM 제어를 할 때 가능한 모터 출력의 범위이다. 실제 구현에서는 안전을 위해 보수적으로 압력값을 0~200사이의 값으로 변환했다. 이렇게 변환된 값은 모터의 PWM 제어 신호로 전달되는데 전달하기 전 자이로 센서를 통해 계산한 추가 모터 출력을 더해준다. 그리고 마지막으로 모터에 신호를 전달하기 전 압력센서의 값이 일정 범위 이상인지를 확인하여 일정 범위 이하일 경우 모터 출력을 0으로 변환하는 과정을 거친다. 이는 카트가 자체가 기울기가 있어도 압력값이 0에 가까우면 모터가 작동하지 않게 하기 위함으로 경사진 지형에서 카트가 혼자 작동하는 경우를 방지하기 위함이다.

자재소요서

카트76.PNG

결과 및 평가

완료작품 소개

프로토타입 사진

이전 단계들에서 결정한 스펙으로 프로토타입을 제작하였다. 3D모델링을 도면화하여 1:1사이즈로 제작하였다. 프레임은 도면과 변화없이 동일하게 제작하였지만 손잡이와 브레이크가 연결되는 부분 그리고 모터가 고정되는 방향 등 제작과정에서 불가능하거나 수정이 필수적인 부분은 바로바로 설계를 변경하여 제작할 수밖에 없었다. 또한 제어적인 요소들도 실제 회로 구성과 동작테스트를 통하여 문제가 있는 부분은 즉각적으로 대응하여 설계 수정을 진행하였다.

◇ 프레임 : 8mm 스텐 사각봉 재단 및 용접

카트77.png


◇ 브레이크 디스크 가공/조립 시 축과의 체결 방법을 용접에서 볼트 조임방식으로 변경하고, 이에따라 디스크 패널의 위치 변경으로 인하여 브레이크 캘리퍼 브라켓 위치를 실측하여 수정하였다. 또한 브레이크 캘리퍼가 연결되는 방향도 반대로 뒤집었다.


카트78.png

◇ 손잡이와 프레임을 연결하는 부분을 용접으로 처리하는 방식에서 조립 해체의 용이성을 위해 설계를 변경하여 손잡이에 볼트를 용접한 후 프레임 구멍에 넣어 너트로 결합하는 방식으로 탈부착이 가능하게 재설계하였다. 테스트 결과 충분한 결합력을 보여주어 용접이 필요 없다고 판단하였다.

카트79.png

◇ 모터가 프레임 아래로 완전히 내려갈 수 있도록 기어박스에 부착된 모터를 3D모델보다 90도 회전시켜 전진 방향쪽 프레임 아래로 들어가도록 하였다.

카트80.png

◇ 하나의 배터리에서 모터와 아두이노에 전원을 공급하지 않고 모터용 전원과 아두이노용 전원을 따로 설계하였다. 이론적으로는 하나의 배터리에서 아두이노와 모터에 전원을 공급하는 것은 문제가 없으나 안정적으로 전원을 공급하고 안전성을 높이기 위해 전원을 둘로 나누었다.

카트81.png

◇ 브레이크 동작을 보조하기 위한 리버스 스위치를 추가했다. 기존 설계에서 브레이크를 동작할 경우 모터 축에 달린 디스크를 잡음으로써 물리적인 회전을 억제한다. 이때 브레이크의 동작 여부를 모터 컨트롤러인 아두이노에서 감지하여 아두이노에서 모터에 보내는 신호도 억제해야 한다. 따라서 물리적 브레이크가 동작할 경우 아두이노의 전원을 일시적으로 차단하기 위해 브레이크와 연결할 리버스 스위치를 회로상에 추가했다. 아두이노 신호 회로에 리버스 스위치를 추가하여 브레이크 동작여부를 판단한 뒤 모터에 가는 동작 신호만을 차단하는 것이 아닌 전원 회로에 리버스 스위치를 추가하여 아두이노 전원자체를 차단하는 이유는 브레이크가 동작하여 모터가 멈추는 경우와 압력 센서에 작용하는 힘이 없어서 모터가 멈추는 경우를 구분하기 위함이다.

카트82.png

◇ 전자 장치의 전원을 제어하기 위한 스위치를 전원 회로에 추가했다. 이는 카트를 사용하지 않을 경우 안전성을 향상시키고 카트를 수동으로 사용하기 위해 추가했다. 스위치가 없어 항상 아두이노에 전원이 연결되어 있으면 모터에 부하가 걸려 동력보조 없이 수동으로 카트를 사용할 수 없다. 하지만 스위치를 추가하게 되면 스위치 ON 상태일 때는 기존의 설계처럼 동력보조를 받으며 카트를 사용할 수 있고 스위치 OFF 상태일 때는 동력보조 없이 일반 카트처럼 수동으로 카트를 사용할 수 있다.

카트83.png

◇ 기존 설계에서는 PID 제어를 사용하여 목표한 모터 출력을 계산하기로 했다. 하지만 실제 설계에서는 비례 제어를 적용하였다. 왜냐하면 제어하고자하는 목표값이 실시간으로 바뀌기 때문에 이전 목표값의 오차를 같이 사용하는 PID 제어를 사용할 경우 합리적인 모터 출력이 계산되지 않기 때문이다. 이상적인 알고리즘으로는 아래 그림에 보이는 순서대로 압력 데이터를 통해 목표하고자 하는 모터 출력값을 계산한 뒤 비례상수, 미분상수, 적분상수 등을 통해 모터 출력을 계산한 다음 그 출력을 내보내고 오차를 계산하여 다시 계산한 목표에 더 가까운 모터 출력을 계산해야 한다. 하지만 제어 환경 특성상 목표하고자 하는 모터 출력이 매 순간 바뀐다. 즉 새로운 오차를 계산하여 새로운 모터 출력을 계산하기 전에 목표하는 출력이 바뀌어 모터 출력이 순간적으로 엉뚱한 값으로 계산될 경우가 발생한다(압력이 매우 급작스럽게 변할 경우). 따라서 안정 문제가 우려되어 2번째 설계 우선순위를 가진 비례제어를 통해 모터 출력을 계산했다.

카트84.png

◇ 완성된 최종 모델 사진

카트85.png

포스터

카트86.png

특허출원번호 통지서

내용

개발사업비 내역서

카트87.PNG

완료 작품의 평가

카트88.PNG

향후평가

다양한 사용 환경에서 사용 가능 시간에 대해 더 많은 실제 실험을 통하여 배터리용량 및 지속시간에 대한 확실한 분석이 추가로 필요할 것이다. 카트 자체의 무게가 개발 목표치의 약 2.87배를 나타내었으므로 무게 경량화가 필요하다. 이는 지금의 프레임이 충분한 강성을 갖추었으므로 조금 더 가벼운 소재를 사용하고, 구매한 모터 옆에 부착된 전자브레이크를 제거하고 브레이크 디스크 패널과 휠의 재질 변경 등의 방법을 통해 경량화가 가능할 것이다. 또한 전자 브레이크를 제거한다면 브레이크 캘리퍼가 들어갈 수 있는 여유 공간이 추가로 생기므로 브레이크 패드의 방향을 90도 회전시키고 캘리퍼 아래쪽으로 옮기는 과정을 통해 캘리퍼가 움직임에 따라 패드의 움직임을 더 크게 하여 제동력을 더 키울 수도 있다. 이외에 기능적인 측면에서는 프레임 사이즈를 특정한 사용목적에 부합하게 변경한다면 다양한 분야에서도 사용이 가능하고 손잡이의 반대방향에 압력센서와 이를 제어하는 제어로직을 추가한다면 반대방향으로의 주행도 겸용할 수 있을 것이다. 또한 타이어의 지름을 변경함으로써 최고속도와 토크를 변경할 수 있고 기어박스를 자체 제작한다면 사용하는 기어형식을 다르게 채택하여 전원공급없이 주행 시 회전저항을 조금 더 줄일 수 있을 것이라 기대한다. 그리고 현재 모터에 전원을 공급하는 배터리는 충전이 가능한 방식이다. 하지만 배터리의 잔량을 확인할 수 없어 현재 남은 배터리 전원으로 얼마나 더 카트를 사용할 수 있는지 확인하기가 어렵다. 따라서 배터리 잔량을 확인할 수 있는 회로와 장치를 추가하여 배터리 잔량을 확인할 수 있도록 개선하면 사용자 편의성이 향상될 것이다. 추가적으로 배터리를 탈부착하기 용이하게 배치하면 충전하는데 있어 편의성을 향상 시킬 수 있을 것이고 스위치와 같은 부품을 조금 더 깔끔하게 배치한다면 심미성도 향상 될 것이다. 마지막으로 제작비용 측면에서 우선은 제작 중 실패를 대비하여 부품을 여유있게 구매한 것과 최종소비자 입장에서 각각의 부품과 재료들을 소규모로 구매한 측면에서 자재가격이 비쌀 수밖에 없었다. 이는 추후 실제 양산시 직접 가공을 진행하고 해외 대량 구매 등의 방법을 통해 구매 단가와 가공단가를 절감한다면 충분히 많은 금액적인 부분을 절감할 수 있을 것이라고 기대한다.

부록

참고문헌 및 참고사이트

◇ 황금회, 김승렬 (2016). 노인의 사회활동 중심성과 핵심요인 분석. 지방정부연구, 20(1), 375-401.
◇ “2017년 전통시장•상점가 및 점포경영 실태조사 결과보고서”, <전국상인연합회>, 2019년 3월 19일, <http://koreama.org/alliance/>.
◇ 박희영, 전통시장과 기업형슈퍼마켓(SSM) 방문객의 이용특성 비교 : 서울 수유시장과 중곡 제일시장을 대상으로, 서울 : 서울대학교 환경대학원, 2013
◇ 진수정, 길의 경사도에 따른 보행패턴의 변화가 에너지소비량에 미치는 영향, 서울 : 국민대학교 대학원, 2008
◇ 손조욱, 걷기운동이 양로시설 여성노인의 생리적 지수, 체력, 자아존중감, 우울과 생활만족도에 미치는 효과, 부산 : 고신대학교 대학원, 2006
◇ 조주은, 정보 격차의 확대재생산, 한국사회학, 48(5), 2014.1
◇ 이진호, 전통시장 현대화를 통한 지역경제 활성화, 서울연구원 2009

관련특허

◇ 토이카트용 프레임

등록번호 : 30-0935656 출원번호 : 30-2017-0029222

◇ 골프 카트의 조향장치(STEERING UNIT OF GOLF CART)

등록번호 : 10-1289822 출원번호 : 10-2012-0041901

◇ 가속도 및 자이로센서를 이용한 밸런스 보행장치

등록번호 : 10-1696674 출원번호 : 10-2015-0029365

◇ 자이로센서를 이용한 저속 전기차의 모터제어장치

공개번호 : 10-2018-0116559 출원번호 : 10-2017-0048989

소프트웨어 프로그램 소스

  1. include "I2Cdev.h"
  2. include "MPU6050_6Axis_MotionApps20.h"
  3. include "Wire.h"

MPU6050 mpu;

  1. define INTERRUPT_PIN 2 // use pin 2 on Arduino Uno & most boards

// MPU control/status vars bool dmpReady = false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer[64];

Quaternion q; // [w, x, y, z] quaternion container VectorFloat gravity; // [x, y, z] gravity vector float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector

volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high void dmpDataReady() {

   mpuInterrupt = true;

}

int yaw; int pitch; int roll; int garbage = 0; int led = 13;

const int FSR_PIN = A0; // Pin connected to FSR/resistor divider const int FSR_PIN2 = A1; const float VCC = 4.98; // Measured voltage of Ardunio 5V line const float R_DIV = 3230.0; // Measured resistance of 3.3k resistor

float Kp = 0.5; // float Ki = 0.5; // float Kd = 0.5;

float error; // float pre_error;

float obj_speed; float motor_speed = 0;

double PControl, IControl, DControl; // 비례, 적분, 미분 제어항의 결과 값 // double PIDControl; // P,I,D Contorl의 결과값

void setup() {

   Wire.begin();
   Wire.setClock(400000); // 400kHz I2C clock. Comment this line if having compilation difficulties
   Serial.begin(115200);
   
   Serial.println(F("Initializing I2C devices..."));
   
   mpu.initialize();
   pinMode(INTERRUPT_PIN, INPUT);
   // verify connection
   Serial.println(F("Testing device connections..."));
   Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
   // load and configure the DMP
   Serial.println(F("Initializing DMP..."));
   devStatus = mpu.dmpInitialize();
   // supply your own gyro offsets here, scaled for min sensitivity
   mpu.setXGyroOffset(220);
   mpu.setYGyroOffset(76);
   mpu.setZGyroOffset(-85);
   mpu.setZAccelOffset(1788); // 1688 factory default for my test chip
   // make sure it worked (returns 0 if so)
   if (devStatus == 0) {
       // turn on the DMP, now that it's ready
       Serial.println(F("Enabling DMP..."));
       mpu.setDMPEnabled(true);
       // enable Arduino interrupt detection
       Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)..."));
       attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), dmpDataReady, RISING);
       mpuIntStatus = mpu.getIntStatus();
       // set our DMP Ready flag so the main loop() function knows it's okay to use it
       Serial.println(F("DMP ready! Waiting for first interrupt..."));
       dmpReady = true;
       // get expected DMP packet size for later comparison
       packetSize = mpu.dmpGetFIFOPacketSize();
   } else {
       // ERROR!
       // 1 = initial memory load failed
       // 2 = DMP configuration updates failed
       // (if it's going to break, usually the code will be 1)
       Serial.print(F("DMP Initialization failed (code "));
       Serial.print(devStatus);
       Serial.println(F(")"));
   }


 pinMode(FSR_PIN, INPUT);
 pinMode(FSR_PIN2, INPUT);
 pinMode(5,OUTPUT);  
 pinMode(6,OUTPUT);  
 pinMode(7,OUTPUT);  
 pinMode(8,OUTPUT);  
 digitalWrite(7,HIGH);  
 digitalWrite(8,HIGH);    
 pinMode(led, OUTPUT);

}

void loop() {

   // if programming failed, don't try to do anything
   if (!dmpReady) return;
   // wait for MPU interrupt or extra packet(s) available
   while (!mpuInterrupt && fifoCount < packetSize);
   // reset interrupt flag and get INT_STATUS byte
   mpuInterrupt = false;
   mpuIntStatus = mpu.getIntStatus();
   // get current FIFO count
   fifoCount = mpu.getFIFOCount();
   
   if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
       // reset so we can continue cleanly
       mpu.resetFIFO();
       Serial.println(F("FIFO overflow!"));    
   } else if (mpuIntStatus & 0x02) {
       
       // wait for correct available data length, should be a VERY short wait
       while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();
       // read a packet from FIFO
       mpu.getFIFOBytes(fifoBuffer, packetSize);
       
       // track FIFO count here in case there is > 1 packet available
       // (this lets us immediately read more without waiting for an interrupt)
       fifoCount -= packetSize;


       mpu.dmpGetQuaternion(&q, fifoBuffer);
       mpu.dmpGetGravity(&gravity, &q);
       mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
       yaw = ypr[0] * 180.0/M_PI;
       pitch = ypr[1] * 180/M_PI;
       roll = ypr[2] * 180/M_PI;
       garbage += 1;
       if (garbage < 10){
         roll = 0;
       }
       else if (garbage > 10){
         garbage = 10;
       }
       
       Serial.print(yaw);
       Serial.print("\t");
       Serial.print(pitch);
       Serial.print("\t");
       Serial.println(roll);
   }


 int fsrADC = analogRead(FSR_PIN);
 float fsrV = fsrADC * VCC / 1023.0;
 float fsrR = R_DIV * (VCC / fsrV - 1.0);
 //Serial.println("Resistance: " + String(fsrR) + " ohms");
 float force1;
 float fsrG = 1.0 / fsrR; // Calculate conductance
 if (fsrR <= 600) 
   force1 = (fsrG - 0.00075) / 0.00000032639;
 else
   force1 =  fsrG / 0.000000642857;
 int fsrADC2 = analogRead(FSR_PIN2);
 float fsrV2 = fsrADC2 * VCC / 1023.0;
 float fsrR2 = R_DIV * (VCC / fsrV2 - 1.0);
 //Serial.println("Resistance: " + String(fsrR) + " ohms");
 float force2;
 float fsrG2 = 1.0 / fsrR2; // Calculate conductance
 if (fsrR2 <= 600) 
   force2 = (fsrG2 - 0.00075) / 0.00000032639;
 else
   force2 =  fsrG2 / 0.000000642857;
 float force;
 
 if (force1 < 10 || force2 < 10){
   force = max(force1, force2);
 }
 else {
   force = (force1 + force2) / 2;
 }
 
 obj_speed = constrain(force/60, 0, 200);
 // Serial.println("목표 = " + String(obj_speed));
 error = obj_speed - motor_speed;
   
 PControl = Kp * error;
 motor_speed = motor_speed + PControl;
 if (roll < 10) {
 }
 else if (roll < 45) {
   motor_speed = motor_speed + roll - 10;
 }
 else {
   motor_speed += 40;
 }
 if(force > 1000){
   digitalWrite(7,HIGH);
   digitalWrite(6,HIGH);
   
 }
 else{
   motor_speed = 0;
   digitalWrite(7,LOW);
   digitalWrite(6,LOW);
 }
 // Serial.println("Force: " + String(force) + " g");
 Serial.println("motor speed:" + String(motor_speed));
 Serial.println();
 
 digitalWrite(5,LOW);
 analogWrite(6,motor_speed);
 digitalWrite(led, LOW);
 delay(100);
 digitalWrite(led, HIGH);

}