November 22, 2024

디바이스마트 미디어:

[66호] 원하는 색상으로 제어가 가능한 아두이노 IoT 스마트 무드등 키트 -

2021-06-25

★2021 ICT 융합 프로젝트 공모전 결과 발표! -

2021-05-12

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[28호]ICT 융합 공모전 – 지능형 계단 청소 로봇

2014 ICT 융합 프로젝트 공모전 입선작
지능형 계단 청소 로봇

 글 | 명지대학교 김정훈, 정영진

심사평
싱크웍스 잘 만들어지면 좋은 작품이 되겠으나, 현재까지 완성도를 볼 수 있는 실험 결과가 없다.
JK전자 창의적이고 새로운 생각은 아니지만 2명의 학생이 3개월 동안 기구 설계와 펌웨어 작업을 모두 완료하였다면 보통 이상의 수준을 뛰어넘는 재능과 실력을 가진 것 같다. 작품의 완성도와 구현의 난이도에 높은 점수를 주고 싶다.
뉴티씨 누군가는 청소를 해야하는 계단의 경우, 실제로 많은 업체들이 어렵게 청소를 진행하고 있다. 이를 자동으로 로봇이 할 수 있게 한다면, 매우 좋은 어플리케이션이 되리라 생각한다. 따라서, 매우 훌륭한 시도라고 생각된다. 다만, 현재 구현되어 있는 상태가 로봇의 계단 이동까지만 설계된 것으로 보이며, 이를 앞으로 좀 더 보완하여 청소 부분까지 구현된다면 매우 좋은 어플리케이션이 되리라고 생각된다. 정해진 싸이즈의 계단 외에도 다양한 계단에 대해 일부 대응이 가능할 것으로 생각되지만, 좀 더 작은 싸이즈의 계단에 대한 고려도 필요하리라 생각된다. 청소 부분이 어떻게 될 것인지도 매우 중요한 요소가 아닌가 생각된다. 이 부분에 대한 필요성 말고도 실질적인 솔루션이 소개되었다면 좀 더 좋은 작품이 아닐까 생각되며 다음 작품을 기대해 본다.
펌테크 학생이 만들기에는 하드웨어, 소프트웨어 구성상에 다소 높은 난이도가 예상되지만 그럼에도 불구하고 완성도를 높여 동작되는 데모 가능한 작품만으로도 큰 의미가 있다고 생각합니다.

1. 선정 배경
1. 계단청소 로봇의 필요성
해외 및 국내를 포함하여 최근의 건물들은 점점 고층화 되는 추세에 있다. 그리고 모든 건물은 화재, 지진 등 비상 상황을 대비하거나 편의를 위해 계단을 포함하고 있다.
건물의 높이가 높을수록 계단의 개수도 늘어난다. 건물의 유지 관리를 위해 수 많은 계단을 청소하는 일을 누군가 해야 한다. 수 많은 계단을 사람이 직접 청소하기 위해서는 많은 인력을 필요로 할 뿐만 아니라 계단을 청소하며 발생할 수 있는 위험도 감수해야 한다. 따라서 사람 대신 계단을 청소할 수 있는 로봇 청소기의 필요성은 점점 늘어나고 있다.
옛날에 비해 많은 가정에서는 청소하는 데 필요한 인력을 줄이기 위해 로봇 청소기를 사용하고 있다. 해가 지날수록 로봇 청소기의 수요는 점점 늘어나는 추세에 있다. 하지만 계단을 스스로 청소할 수 있도록 만들어진 로봇은 시중에 출시된 제품이 현재 없는 실정이다.

지능형 계단 청소 로봇 지능형 계단 청소 로봇 (1)
[그림 1] 연도별 로봇 청소기 시장 전망 [그림 2] 인력을 통한 계단청소

2. 다양한 종류의 계단

지능형 계단 청소 로봇 (2)
[그림 3] 다양한 종류의 계단

계단은 다양한 종류가 있으며 그 용도 및 길이도 다양하다. [그림 3]은 목적이 다른 다양한 형태의 계단을 보여 준다. 계단의 용도는 등산, 디자인, 가정, 일반적인 건물 등으로 다양하다. 등산을 위한 계단은 통나무나 나무 판자를 덧대어 사람이 미끄러지지 않고 산을 오를 수 있는 형태로 만들며 디자인을 위한 계단은 실용적인 계단이 아닌 새로운 형태로의 시도와 창의적 설계를 목적으로 하고 있다. 반면, 가정에서 사용하거나 일반적인 건물에서 사용하는 계단은 계단의 형태가 일정하지 않거나 디자인, 창의성을 접목한 설계를 하지 않는다. 실생활에서 사람이 오르내리기 위해 실용적인 형태로 만들며 각 계단은 일정한 형태의 반복으로 만들어져 있다.
본 프로젝트의 아이디어는 고층 빌딩의 계단을 청소하는 데 필요한 인력과 위험, 비용을 줄이기 위함에 있다. 따라서 프로젝트에서 타깃으로 하는 형태의 계단은 디자인이나 등산을 위한 계단이 아닌 일반적인 형태의 고층 빌딩에서 사용하는 계단이다.

2. 개발 목적
1. 계단 유지 관리를 위한 인력의 최소화

지능형 계단 청소 로봇 (3)
[그림 4] 계단청소 업체

현대식 건물들은 보통 3~4층 이상으로 지어진 경우가 대다수이며 아파트의 경우에는 최소 10층부터 30층 이상까지 지어진 경우가 많다. 보통 건물을 관리하는 업체가 있는 경우 업체에서 청소를 담당하지만, 그렇지 않은 경우 직접 청소를 하기도 하지만, 양이 많아 모두 청소하기 어렵기 때문에 전문적으로 계단을 청소해주는 업체에 맡기는 경우가 많다. 계단 청소 업체에서는 계단을 청소하기 위해 필요한 세척제, 전문 청소도구를 사용하지만 사람이 모든 칸을 직접 청소해야 하는 것은 다를 바 없다. 하지만, 계단 청소 로봇을 활용할 경우 계단 청소에 드는 인력을 최소화할 수 있다. 항시 청소가 가능하기 때문에 계단이 크게 더러워질 염려가 적으며, 고층 아파트와 같이 계단 및 시설물들을 관리해주는 업체가 있지 않은 경우, 사람을 부르지 않고도 어렵지 않게 청소할 수 있다.

2. 고층 빌딩 계단청소의 안전 보장

지능형 계단 청소 로봇 (4)
[그림 5] 계단 사이 폭이 넓은 계단

고층계단을 청소하다 보면 항상 추락, 미끄러짐으로 인한 사고의 위험이 따른다. 계단의 길이가 길거나 계단 한 칸의 높이가 높은 경우 넘어질 때 크게 부상을 당하기 쉬우며 심한 경우 사망에 이를 가능성이 있다. 건물 내 계단의 구조따라 [그림 5]와 같이 계단 사이의 폭이 넓은 경우도 있다. 이를 계단청소 로봇이 대체할 경우 발생할 수 있는 계단 사고를 방지할 수 있다.

3. 기술 동향
1. 로봇 청소기

지능형 계단 청소 로봇 (5)
[그림 6] 기존의 로봇 청소기

사람이 직접 바닥을 청소하는 대신 가정이나 사무실에서 로봇청소기를 켜 놓고 있으면 신경 쓰지 않아도 알아서 바닥을 청소해준다. 편의성 때문에 점점 많은 가정이나 사무실에서 로봇청소기를 활용하고 있으며, 국내 뿐만 아니라 해외에서도 많은 인기를 누리고 있다. 이를 증명하듯 많은 업체에서 다양한 기능과 디자인을 탑재한 로봇청소기를 출시하고 있다. 특히 삼성에서는 ‘탱고’라는 이름으로 로봇청소기를 출시해 높은 인기를 끌고 있다.

2. 화재진압용 무인방수 로봇

지능형 계단 청소 로봇 (6)
[그림 7] 화재 진압용 계단 이동 로봇

폭발위험이 있거나 방사능과 같은 위험물질이 누출된 곳, 강렬한 복사열 등으로 소방관이 다가가기 어려운 위험한 대형화재 현장이나 길이 막혀 소방차가 들어가기 어려운 곳에서 화재진압 및 인명 검색 활동을 하게 된다. 이 로봇은 중량 160kg에 길이 1250mm, 너비 730mm, 높이 750mm로 한 번 충전으로 120분 이상 운용이 가능하다. 화재현장에서 100m 이상 떨어진 외부에서 무선으로 조종이 가능하며 열 화상카메라 1대를 탑재해 내부의 화점 및 인명 검색에 탁월한 능력을 가지고 있다. 또 최대 사거리 40m의 소방포를 장착하고 있어 원거리의 화재진압에도 활용이 가능하다.

3. 사물 운반용 계단 이동장비

지능형 계단 청소 로봇 (8)
[그림 9] 계단 이동이 가능한 휠체어

엘리베이터가 없는 다층 건물에서의 이삿짐, 택배 등 짐을 운반할 때 수월하게 운반할 수 있도록 만들어진 장비이다. 계단을 오르내리기 위해 3개의 바퀴를 사용하고 있다.

4. 휠체어 로봇
거동이 불편한 환자를 위한 휠체어는 많이 있다. 하지만, 휠체어를 사용하면서 부딪히는 문제는 계단을 오르내리기 힘들다는 점이다. 계단에 휠체어용 리프트나 미끄럼틀이 설치되어 있지 않은 경우 휠체어를 타고 계단을 오르거나 내려갈 수 없다. 이러한 경우를 위해 평지에서 이동이 가능하면서 계단을 오르내릴 수 있는 로봇이 만들어졌다.

4. 개발 목표
1. 계단 이동에 쉽고 청소에 효율적인 구조 설계
(1) Shift wheel
상하로 움직일 수 있는 shift wheel을 채택하여 기구부를 다음 계단으로 이동시킬 수 있게 한다.

(2) 회전모터를 이용한 회전 바퀴
90도로 꺾을 수 있는 바퀴를 사용함으로써 로봇청소기가 한 계단을 청소할 수 있도록 이동하며 다시 90도로 꺾어 턴 구간에서 전진할 수 있도록 한다.

2. 계단의 이물질을 제거
(1) 흡입 모듈
기존 로봇 청소기에서 사용하는 흡입 모듈을 사용하여 계단에 있는 이물질을 흡입할 수 있도록 한다.

(2) 적외선 센서
한 계단의 칸 끝에 도달했는지 파악하기 위해 적외선 센서를 사용한다.

3. 계단의 턴 구간 청소
(1) 수직 이동을 위한 초음파센서
바퀴를 이용해 이동하면 조금의 틀어짐이 발생할 경우 로봇청소기의 이동경로가 잘못될 수 있다. 따라서 틀어질 경우를 판단하기 위해 초음파센서를 벽에 쏘아 일정거리를 유지하며 수직으로 이동할 수 있도록 바퀴를 조절한다.

5. 개발 내용
1. 하드웨어
(1) 하드웨어 구성

지능형 계단 청소 로봇 (9)
[그림 10] 로봇구성

청소로봇에는 모터구동 바퀴가 장착된 360도 회전이 가능한 4개의 다리를 가지며 같은 쪽의 다리는 서로 충돌하지 않는 구조의 사족로봇형태이다. 각 다리에는 50W급 웜기어 모터가 장착되어 있어 이동시에 강력한 힘을 낼 수 있고, 웜 기어의 특성상 출력측의 힘이 입력측 모터로 힘 전달이 안되기 때문에 효율적인 측면에서 장점이 크다. 로봇의 정면, 측면, 바닥면에 거리측정 센서가 총 8개가 장착되어 있어 지형정보를 쉽게 얻어 올 수 있다.

(2) 프레임

지능형 계단 청소 로봇 (10)
[그림 11] 프레임
지능형 계단 청소 로봇 (11)
[그림 12] 구성 부품
[그림 11]은 로봇청소기의 메인프레임이다. 알루미늄 재질을 가공하여 볼트로 체결한 형태로 H형태로 구성되었다. 로봇의 메인프레임이므로 뒤틀림이 발생하게 되면 동작성에 문제가 생기므로 가운데 프레임은 이중프레임 구조로 되어 있어 강성을 높여 주었고, 그 이외에 무게를 차지하는 불필요한 부분은 제거하여 프레임의 무게를 줄였다.

(3) 마그네틱센서

지능형 계단 청소 로봇 (12)
[그림 13] 마그네틱센서                                                      [그림 14] 자석의 위치

현재 로봇의 다리 각도를 알아야 사족보행을 위한 모션을 생성할 수가 있다. 그래서 각 관절에 마그네틱 로터리 엔코더(Magnetic Rotary Encoder)를 각 다리에 설치하였다. 엔코더의 출력형태는 360도를 14bit로 분해하여 디지털 출력을 해주므로 섬세한 위치 피드백이 가능하다.
자석의 위치는 관절기어의 중심에 위치하고 있다. 자석의 크기는 6x6x6mm의 네오디움 자석을 장착하여 자력을 충분히 마그네틱 로터리 엔코더에 전달할 수 있다.

(4) 구동모터 전력전달

지능형 계단 청소 로봇 (13)
[그림 15] 다리회전
지능형 계단 청소 로봇 (14)
[그림 16] 원형 동판구조

로봇이 평지이동에서는 구동모터를 이용하여 이동한다. 그 이유는 다리를 이용하여 보행하는 것보다 바퀴로 이동하는 것이 흔들림없이 안정적으로 이동이 가능하다. 계단을 이동할 때는 다리를 360도 회전하게 되는데, 이때 구동모터의 전원이 전선으로 연결되어 있을 경우 회전에 의하여 꼬임이 발생하다가 결국은 단선이 된다.
[그림 16]과 같은 원형의 동판을 구성하고 핸드폰의 배터리 연결 단자를 응용하여 전력전달을 하였다. 배터리연결 단자의 도체부분이 탄성이 있어서 지속적인 전력 전달에 적합한 구조로 되어 있다.

6. 소프트웨어
1. 제어알고리즘
펌웨어에서는 [그림16]과 같은 모듈들을 제어하게 된다. 기구부가 한 계단에서 이동하는 동안 하단에 달려 있는 적외선 센서를 통해 주기적으로 계단의 끝에 도달했는지 파악한다. 계단 중에는 한 계단의 끝이 막혀 있는 경우가 있는 반면, 막혀 있지 않은 경우도 있다. 이러한 경우 펌웨어는 적외선 센서를 통해 막혀 있는 부분을 찾는 것이 아닌 바닥이 뚫려 있는 부분을 찾는다. 바닥이 뚫려 있는 부분은 로봇청소기가 청소를 진행할 수 없는 계단의 끝에 해당하기 때문이다. 펌웨어는 로봇 청소기가 턴구간에 올라왔는지 판단할 수 있어야 한다. 계단을 한칸 올라올 때마다 적외선 센서를 이용해 다음 계단이 있는지 판단하여 다음 계단이 없는 경우 턴 구간으로 판단한다. [그림15]는 이러한 펌웨어의 동작을 플로우차트로 보여준다. 턴 구간에서 펌웨어는 다음 층계의 위치를 파악하기 위해 상단에 달려 있는 적외선 센서로 뚫려 있는 공간을 찾으며 해당 위치를 기억해둔 뒤, 턴 구간이 완료된 다음 서보모터를 제어해 찾았던 턴 구간으로 이동한다.

지능형 계단 청소 로봇 (15)
[그림 17] 펌웨어 컨트롤 플로우차트
지능형 계단 청소 로봇 (16)
[그림 18] 계단 청소 로봇의 모듈

턴 구간을 청소하는 도중에는 주기적으로 초음파 센서를 통해 벽과의 거리를 파악한다. 처음에 측정된 거리에서 벗어나는 경우 거리와 일치시키면서 서보모터를 조절하여 수직 이동을 유지한다. 그리고 초음파센서와 벽 사이의 거리가 0에 가까울 경우 턴 구간을 모두 청소했다고 판단한다.

2. 계단 상승 제어

지능형 계단 청소 로봇 (17)
[그림 19] 계단 등반

1. 좌측면의 다리 2개와 우측면의 다리 2개를 로봇의 하단으로 회전하면서 바닥을 딛고 일어난다.
2. 다음 계단으로 올라가기 위해 전방의 다리 1개만 다음 계단에 딛는다. 청소기 로봇은 4개의 다리를 활용하기 때문에 1개의 다리를 들더라도 3개의 다리로 중심을 잡는 것이 가능하다. 남은 3개의 다리로 삼각형의 꼭지점을 만들 수 있으므로, 다음 계단을 오를 때 넘어지지 않을 수 있다.
3. 전방의 남은 1개의 다리를 다음 계단에 딛는다. 다리를 올리는 동안 후방 2개의 다리와 미리 딛은 전방 1개의 다리로 중심을 잡을 수 있다.
4. 4개의 다리 끝의 구동모터를 동작시켜 이동 가능한 부분까지 측정하여 앞으로 이동한다.
5. 전방 2개의 다리를 모두 안쪽으로 접어 바닥을 딛지 않도록 한다. 이때 다음 계단에 올라온 로봇 청소기의 바퀴와 후방 2개의 다리로 중심을 잡을 수 있다.
6. 청소기의 바퀴와 후방 2개 다리의 바퀴로 계단의 폭을 조금 더 이동하여 완전히 다음 계단으로 본체를 이동한다.
7. 후방 2개의 다리를 접어 이동을 완료한다.
8. 층계를 청소하기 위해 청소기 회전을 담당하는 구동모터를 동작시켜 청소기만 90도 회전한다.
9. 흡입모듈을 ON시키고 층계의 끝에 도달할 때까지 적외선 센서를 이용해 점검하면서 한 층계를 청소한다.
10. 층계의 끝에 도달하면 흡입모듈을 OFF시키고 다시 구동모터를 동작시켜 청소기만 90도 회전한다.

3. 14-bit angular position sensor
로봇의 다리를 제어하기 위해서는 현재 다리가 어느 위치에 있는지 판단할 수 있어야 한다. 본 프로젝트에서 로봇의 다리는 360도 회전하기 때문에 다리의 위치를 판단하는 것은 현재 다리의 각도를 판단하는 것과 같다. 0도에서 다리가 움직일 때마다 상대적으로 다리의 위치를 계산하다보면 관성/마찰력에 의해 계산이 틀어질 수 있고 시간이 지나면 높은 오차가 생길 수 있다. 따라서 현재 다리가 위치한 절대각도를 판단해야 할 필요가 있으며, 이를 위해 14-bit angular position sensor를 사용했다. N극과 S극이 서로 붙어있는 자석을 활용해서 센서가 자석의 각도를 얻어낼 수 있으며 해당 센서는 PWM, I2C, SPI통신을 지원한다.

4. Infared sensor
로봇이 벽의 끝에 도달하거나, 한 층계를 청소하다 끝 부분에 도달하거나 혹은 마지막 층계에 도달해서 다음 계단의 유무를 판단하는 경우 활용된다. 한 층계의 끝에 도달할 경우의 판단을 위해 전방의 바닥을 센싱하고 있다가 바닥이 없을 경우 값이 멀어져 끝에 도달했는지 판단한다. 벽의 끝에 도달하는 경우의 판단은 센서의 거리 값이 짧아지는 경우 벽에 도달했는지 판단한다. 마지막 층계에 도달하는 경우는 다음 계단이 없을 땐 로봇의 앞이 비어있으므로 거리 값이 멀어지는 경우 다음 계단이 없는 것으로 판단한다.

5. 로봇 제어를 위해 펌웨어가 사용한 통신
(1) SPI
다리의 절대 각도를 센싱하기 위해 magnetic sensor를 제어하는 데 사용했다. 다리의 각도를 센싱하여 일정 각도에 도달할 경우 다리의 회전을 멈추도록 제어할 수 있다. 개수가 제한적인 핀을 효율적으로 사용하고 많은 주변장치들을 제어하기 위해 SPI를 사용했다. MISO(Master In Slave Out), MOSI(Master Out Slave In), SCK(Clock), NSS(Chip Select) 4개의 핀을 필요로 하며 여기에 다른 주변장치를 더 사용하기 위해서는 NSS1개의 핀만을 더 필요로한다. MISO는 master에서 slave로 데이터를 보내기 위한 용도, MOSI는 slave가 master로 데이터를 보내기 위한 용도, SCK는 데이터를 보내는 타이밍을 맞추기 위한 용도로 사용되며 NSS는많은 주변장치 중 어느 주변장치와 통신할 것인지 선택하기 위한 용도로 사용된다.

(2) PWM
구동모터 드라이버를 제어하는데 사용했다. 펄스의 변화를 통해 모터의 속도를 변화시키며 이 값을 구동모터 드라이버로 전달해준다. 구동모터 드라이버는 1개당 2개의 구동모터를 제어할 수 있으며, 본 프로젝트에서는 로봇의 다리 끝에 달려 있는 바퀴를 제어하고 청소기 본체의 회전을 제어하기 위해 사용된다. 4개의 바퀴를 사용하기 때문에 4개의 PWM 핀과 본체의 회전을 담당할 1개의 PWM핀을 사용했으며, 여기에 추가적으로 구동모터에 방향을 정해주기 위한 5개의 GPIO핀을 사용했다. 펄스 제어와 GPIO를 통해 각각 속도와 바퀴 회전 방향을 지정할 수 있다.

(3) ADC
아날로그 신호를 디지털로 변환하기 위한 용도로 사용되며, 해당 프로젝트에서는 적외선 센서의 값을 읽어오는 데 사용됐다. 여러 적외선 센서가 필요하기 때문에 다수의 ADC 핀을 활용했다. 적외선 센서를 통해 계단의 끝에 도달했는지 혹은 마지막 계단에 도달했는지 판단할 수 있다.

(4) USART
디버깅을 위한 용도, Worm geared 모터를 제어하기 위한 용도로 사용했다. 호스트 PC와 ARM Cortex-M3 보드가 서로 전달하기 위한 용도로 1개의 USART와 Worm geared 모터 드라이버를 제어하기 위해 2개의 USART가 사용되어 총 3개가 사용됐다. Worm geared 모터 드라이버는 미리 정해진 드라이버 명령어를 serial text로 전달해주면 명령어에 지정해 준 속도, 방향, 모터 select 정보에 따라 바퀴를 제어한다. Worm geared 모터 1개당 2개의 모터를 제어할 수 있으며 본 프로젝트에서는 다리의 회전을 제어하는 용도로 2개의 Worm geared 모터가 사용됐다.

(5) GPIO
흡입모듈을 제어하기 위한 용도, PWM와 함께 구동모터에 제어정보를 전달하기 위한 용도로 사용됐다. 구동모터의 회전 방향을 정하기 위해 High/Low를 바꾸어주는 용도로 활용했다. 청소기의 흡입 모듈은 단순히 펄스에 따라 ON/OFF만 지정하면 제어가 가능하기 때문에 흡입모듈을 제어하는 데 사용됐다.

6. GUI

지능형 계단 청소 로봇 (18)
[그림 20] 로봇제어 GUI

MFC를 통해 로봇을 제어할 수 있는 windows용 어플리케이션을 추가적으로 구현했다. 어플리케이션에서는 로봇으로 시리얼 통신을 통해 메시지를 전달하거나 로봇에서 보내는 출력 메시지를 받아 텍스트 창에 출력할 수 있다. 출력하는 텍스트의 포맷을 ASCII와 HEX로 바꾸어 가면서 출력 가능하다. 로봇을 제어하는 동작을 단계별로 나누어 버튼 클릭을 통해 간단하게 수행시킬 수 있다. 계단을 오르는 과정, 다리를 펴서 일어나는 과정, 다리를 접어 동작을 리셋하는 과정, 바퀴와 다리를 회전하는 과정을 제어할 수 있다. 그리고 현재 로봇 다리의 절대 각도를 어플리케이션에서 확인할 수 있다.

7. 개발 환경
1. Board
ARM Cortex M3

2. Language
C 언어

3. Development Tool
gcc
vim
inventor

8. 역할 분담
김정훈 : 기구부 설계 및 부품 선정 / 기구부 제작
정영진 : 센서 제어 펌웨어 설계 및 구현 / 센서 모듈 제어

9. 개발 부품

번호 부품명 수량 사용목적
1 BLDC감속모터 BL2232 + IG22 (24V) 4 모터
2 웜기어드 윈도우모터 DWL-UT404122L (LEFT형) 2 모터
3 웜기어드 윈도우모터 DWL-UT404122R (RIGHT형) 2 모터
4 STM32F103VBT6 5 CPU
5 GP2Y0A710K0F 1 센서
6 GP2Y0A41SK0F[케이블포함] 4 센서
7 NT-S-DCDM1210 3 드라이버
8 NT-VNH20SV1 1 드라이버
9 NT-BL3V(소형 BLDC드라이버) 1 드라이버
10 OZBV-05A-D2M2 (속도제어형 BLDC모터 드라이버) 5 드라이버
11 블루투스 임베디드 모듈(FB155BC) 2 통신모듈
12 WGM-6R 01K 1 모터
13 24V [ 1:1656 ] Micro Worm Gear Motor (WGM370) 1 모터
14 AGAiT EC mini 로봇청소기 1 청소모듈

 

10. 용어 정리
1. 펌웨어
펌웨어는 일반적으로 롬(ROM)에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미한다. 프로그램이라는 관점에서는 소프트웨어와 동일하지만 하드웨어와 밀접한 관계를 가지고 있다는 점에서 일반 응용소프트웨어와 구분되어 펌웨어는 소프트웨어와 하드웨어의 특성을 모두 가지고 있다고 할 수 있다.

2. Gadget
일반 PC에서는 Linux가 설치된 PC가 Master이기 때문에 이 기능이 활성화 되어 있지않다. 하지만 임베디드 보드에 올라간 Linux는 PC와 연결 될 때 Client로 동작해야 하기 때문에 USB Gadget을 수정하여 이 Device의 역할을 Slave로 만들어 준다.

3. Device Driver
소프트웨어에서 하드웨어 디바이스 장치를 호출하고 사용하기 위한 추상화 계층을 제공하는 인터페이스로 잘 정의된 내부 프로그래밍 인터페이스에 하드웨어 구성 요소가 응답하게 해준다. 디바이스 드라이버는 실제로 디바이스가 어떻게 동작하는지에 관한 세부 사항을 완전히 숨김으로 완벽하게 추상화된 블랙박스 같이 동작한다.

4. SPI
직렬 주변기기 인터페이스 버스 또는 SPI 버스는 아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처에 이름을 딴 동기화 직렬 데이터 연결 표준이다. 장치들은 마스터 슬레이브 모드로 통신하며 여기서 마스터 장치는 데이터 프레임을 초기화한다. 여러 슬레이브 장치들은 개별 슬레이브 셀렉트 라인과 함께 동작할 수 있다.

5. PWM
PWM이란 Pulse Width Modulation의 줄임말로 펄스 폭 변조를 의미한다. 펄스 폭을 전송하고자 하는 신호에 따라 변화시키는 변조 방식을 PWM방식이라 하며, 모터 제어나 전압제어에 많이 사용된다.

6. ADC
아날로그 신호를 디지털 신호로 변환해 주는 장치이다. 일반적으로 빛의 밝기, 온도, 소리의 크기, 압력. 등의 변화를 측정할 때 주로 쓰이며, 이런 자연변화 상태를 전압의 상태로 변환해 주는 센서를 거친 후 AD 컨버터에서 디지털로 바꾸어 주는 과정을 거친다.

11. 참고 문헌
· 두산백과
· Technical Teature / 2005년 3월 호
· http://www.linux-usb.org/gadget/
· http://dsk114.com.ne.kr/hdd/f_system.html

 

 

Leave A Comment

*