January 19, 2021

디바이스마트 미디어:

★총 상금 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

[디웰전자] 전류센서 파격할인!! 50% 할인이벤트!! -

2015-02-02

[에스엔에스] 신상품 대량 입고기념 할인이벤트!! -

2015-02-02

[Uni-Trend] 인기상품 10종 할인이벤트!! -

2015-02-02

[30호] 너무 쉬운 아두이노 DIY ② – 카멜레온 반지 + 빨노파 게임기 만들기

30 아두이노 카멜레온

30 아두이노 카멜레온

             글 ㅣ 신상석 ssshin@jcnet.co.kr

 

  여러분, 안녕하세요. 앞으로 1년에 걸쳐(6번 정도) [너무 쉬운 아두이노 DIY(Do It Yourself)] 강의를 진행할 강사 신상석입니다.
제 소개 간단히 드립니다.
· 서울대 제어계측공학과(학사) →, KAIST 전산과(석사) → KAIST 전산과(박사 수료)
· ETRI 책임연구원 → 해동정보통신 연구소장 → 욱성전자 연구소장 → (현재) 제이씨넷 연구소장, 상명대학교 컴퓨터시스템공학과 겸임교수, 임베디드홀릭 카페(http://cafe.naver.com/lazydigital) 부매니저, 아두이노 / AVR 강사
· 자격증 : 전자계산기 기술사
· 취미 : 영화보기, 바둑두기, 책읽기, 글쓰기(?), 여행하기, 이야기하기
· 연락처 : ssshin@jcnet.co.kr, 있는그대(cafe.naver.com/lazydigital)이 강의는 아두이노를 가지고 간단하게 생활에 필요한 용품을 만들어 보는 강의입니다. 뚝딱뚝딱 뭔가 자신만의 DIY 용품을 만들어 보는 쏠쏠한 재미가 있는 강의라고나 할까요? 이미 주변에 아두이노와 관련한 많은 책이 출간되었고 카페나 블로그를 통하여 강의가 진행된 경우도 꽤나 많이 있는데도 불구하고, 이 지면을 통하여 강의를 개설한 이유는 다음과 같습니다. 

1. 아두이노의 초보자들을 위한 쉽고 재미있는 강의가 거의 없는 것 같아, 가능하면 초등학생(?)까지도 함께 해 볼 수 있는 그런 강의를 한 번 해보고 싶어서…
2. 아두이노를 가지고 뭔가 조금은 다른, 자신만의 창의적인(?) DIY를 할 수 있는 자리를 만들어주고 싶어서…
3. 디바이스마트매거진은 임베디드와 관련된 독자들이 많고, 발행 부수도 많아, 저와 제가 속한 회사(제이씨넷) 그리고 임베디드홀릭 카페의 홍보에 도움이 될 것 같아서…

아두이노 계획표현재 구상하고 있는 회차별 내용을 간략하게 정리해 보면 다음과 같습니다. (변경될 수 있습니다.) 앞으로 즐겁고 알찬 강의가 될 수 있도록 최선을 다할 것을 약속 드리며, 이 강의를 보는 독자들도 메일이나 카페를  통하여 Q&A(Question & Answer)나 피드백을 주셔서, 함께 정감을 나눌 수 있는 계기가 되기를 기대해 봅니다.

   여러분, 안녕하세요. 신상석 강사입니다. 이번 회에서는 컬러 LED를 가지고 만들 수 있는 DIY 작품을 2가지를 만들어 보겠습니다. 하나는 여러가지 색깔로 변하는 ‘카멜레온 반지’이고, 또 하나는 가위 바위 보 게임과 비슷한 ‘빨노파 게임기’입니다. 간단하고 재미있는 DIY이므로, 이를 약간씩 응용하여 최종적으로는 각자 자신만의 개성있는 DIY 작품을 만들어 보면 좋겠습니다.

 

 ■ 카멜레온 반지                                                                                            

   카멜레온(chameleon)을 아시나요? ‘땅 위의 사자’라는 뜻을 가진 그리이스어에서 유래한 카멜레온은 주변의 색에 따라 아주 비슷한 보호색으로 변하는 능력을 가진 재주꾼입니다. 자신의 감정을 표현하기 위하여 자신이 원하는 색깔로 변할 수도 있다고 하니, 세상에는 인간 말고도 오묘한 동물이 정말 많은 것 같네요.

30 카멜레온반지 02

 그런데 “카멜레온 반지”가 뭐냐구요? 아마도 다들 모르실텐데요. 왜냐하면 제가 얼마 전에 작명한 이름이어서요. 카멜레온 반지는 카멜레온처럼 반지의 색깔이 자유자재로 변하는 반지를 말합니다. 가만히 있으면 저절로 색깔이 변하는 반지라고나 할까요?.

 

아래 그림은 12개의 달을 상징하는 보석으로 탄생석입니다. 에머랄드, 다이아몬드, 루비… 참 아름답지요. 무엇보다도 알록달록한 색깔이 압권입니다.

 

30 카멜레온반지 03

 

   그래서 오늘은 이렇게 멋진 보석이 콕 박혀있는 반지를 상상하며 12개의 보석으로 변신이 가능한 카멜레온 반지를 만들어볼까 합니다. 반지의 링은 준비가 되었다고 가정하고 보석 부분만 카멜레온처럼 색깔이 변하도록 만들면 될 것 같네요. 그런데, 어떻게 만드냐구요? 예. 컬러 LED로 만들지요.

 ■ 컬러 LED                                                                                              

   컬러 LED는 빨강, 녹색, 파랑 LED 3개를 하나로 모아 1개의 캡슐로 씌운 LED입니다. 그러니까 3개의 LED를 바짝 붙여서 한 개의 전구 속에 넣은 것이지요. 요렇게요.

30 카멜레온반지 04

다리가 가장 긴 것이 공통 애노드(Anode, +), 또는 공통 캐소드(Cathode, -)로 공통 애노드 타입의 경우는 (+) 핀을 High(VCC, 5V)에 연결하고, R, G, B 핀에는 Low(GND, 0V) 값을 연결하는 경우에만 불이 들어오고, 공통 캐소드 타입의 경우는 반대로 (-) 핀을 Low(GND, 0V)에 연결하고, R, G, B 핀에는 High(VCC, 5V) 값을 연결하는 경우만 불이 들어옵니다. (물론, 지난번 설명처럼 직렬 저항은 연결한다고 가정하였습니다.) 여기서는 아래와 같이 공통 캐소드 타입의 컬러 LED를 사용하여 제작해 보는 것으로 하겠습니다.

30 카멜레온반지 05

 

(53N RGB 262C-9001, 참조 : 디바이스마트)

 

  어 그런데, LED가 3개면 다리가 6개라야 되는 것 아닌가요? 다리가 4개 밖에 없는데…

  예, 원래는 6개지만 (-)에 해당되는 다리는 공통이니까(공통 캐소드), 빨강, 녹색, 파랑, 공통 (-), 이렇게 다리를 4개로 줄일 수 있겠습니다. 지난번 3색 신호등을 만들 때 각 LED의 (-)에 해당되는 것은 모두 GND로 함께 연결한 것을 생각해 보면 쉽게 이해가 갈 겁니다..

  그렇다면, 이 컬러 LED는 빨강, 녹색, 파랑으로 색깔이 고정되어 있는데, 어떻게 카멜레온처럼 여러가지 오묘한 색깔을 나타낼 수 있을까요?

  이 질문에 대한 해답은 바로 빛의 혼합에 있습니다.

  아래 그림은 누구나 초등학교 시절에 한 번은 보았을 것입니다.

30 카멜레온반지 06

 

  왼쪽은 빛의 삼원색(빨강(Red), 녹색(Green), 파랑(Blue), RGB)이고, 오른쪽은 색의 삼원색(자홍(Magenta), 청록(Cyan), 노랑(Yellow))입니다. 우리는 LED를 가지고 색깔을 만들 예정이므로 빛의 3원색의 경우만 보면, 3개의 빛이 합해지는 부분에 다른 색이 나타나는 것을 볼 수 있습니다.

 

   ■ 빨강 + 녹색 = 노랑

   ■ 녹색 + 파랑 = 청록

   ■ 파랑 + 빨강 = 자홍

   ■ 빨강 + 녹색 + 파랑 = 흰색

 

  오. 그렇네요. 이렇게 하니까 4개의 색이 더 만들어졌습니다. 하지만, 탄생석과 같이 알록달록한 여러가지 색은 아직도 만들어지지 않았는데 이것은 어떻게 만들 수 있을까요?

  이것은 광량(빛의 양)에 해답이 있습니다.

  즉, 빨강과 녹색, 파랑을 각각 100%씩 섞으면 흰색이 나오지만, 예를 들어 빨강 100% + 녹색 75% + 파랑 75% 로 빛을 섞으면 핑크(Pink)색이 나오는 원리입니다.

  결국 관건은 우리가 3가지 LED의 광량을 강하게 했다 약하게 했다 조절할 수 있느냐 하는 것인데 결론은 “할 수 있다” 입니다.

  아래 그림을 보시지요.

30 카멜레온반지 07

 

  원래 디지털 값은 High(1, 5V, 100%), Low(0, GND, 0%)의 2가지 값밖에 존재하지 않지만, 위 그림과 같이 어떤 핀의 값을 High ▶ Low ▶ High ▶ Low … 형태로 상태를 변환시키게 되면, 출력 전압의 평균(%)은 빨강색 점선과 같은 값을 갖게 됩니다. 예를 들어 High를 유지하는 시간과 Low를 유지하는 시간의 비율이 3:7이라면 평균값은 High값의 30%가 된다고 말할 수 있는 것이지요. 이렇게 주기적으로 High ▶ Low를 반복하는 신호를 펄스(Pulse)라고 하는데, 이 펄스(Pulse)의 폭(Width)을 조절(Modulation)하여 평균값을 조절하는 방법을 PWM(Pulse Width Modulation)이라고 합니다. 즉, PWM을 이용하면 디지털 출력인 High(1)와 Low(0)을 가지고 0.3(30%), 0.85(85%)와 같은 아날로그 값을 만들 수 있게 되는 것입니다. 핑크색을 컬러 LED로 표현해 본다면 아래와 같이 되겠네요.

    ■ 핑크 = 빨강 PWM 100% + 녹색 PWM 75% + 파랑 PWM 75%

 

 

 ■ PWM 출력을 만드는 방법                                                                   

  이제 PWM 출력을 만드는 방법을 알아봅시다. 아두이노에서는 다음과 같은 analogWirte( ) 라이브러리 함수를 제공하는데 이것을 이용하면 PWM 0% ~ PWM 100% 까지의 펄스를 아주 쉽게 만들 수 있습니다. 단, analogWrite( ) 함수를 사용할 수 있는 핀은 핀 번호 앞에 틸드(~) 표시가 있는 핀으로 한정되어 있다는 점은 주의하셔야 합니다.

 

    ■ analogWrite(pin, value)

    ■ pin : 입출력핀 번호에 해당되는 숫자, 틸드(~) 표시가 되어 있는 핀만 가능

    ■ value : 0~255까지의 값으로 0이면 PWM 0%, 255이면 PWM 100%를 의미함

 

  예를 들어 “analogWrite(5, 128)”으로 프로그램 한다면, 핀 5번의 출력을 PWM 50%(128/256 = 0.5 = 50%)로 출력한다는 의미가 되겠습니다.

  왜 value 값으로 알기 쉽게 0~100을 사용하지 않고 0~255를 사용하게 되었을까요? 사실 그렇게 라이브러리를 만들 수도 있겠지만 디지털 세계는 2진법으로 이루어져 있어, 1, 2, 4, 8, 16, 32, 64, 128, 256 이렇게 만들어지는 수를 더욱 좋아한답니다. 아두이노 내부적으로 본다면 Atmega328, 타이머, ADC(Analog Digital Converter) 등 좀 더 자세하게 알아야 할 것이 많지만 우리는 그냥 이 정도만 알고 넘어가는 것으로 하겠습니다.

  이제 색의 배합을 %로 할 수 있다는 것을 배웠으므로, 간단히 한 번 연습해 보지요.

  노랑과 흰색, 핑크를 R, G, B의 value 값으로 표현해 보세요. 아래와 같이 나오면 정답!.

 

   ▶ 노랑 : R(255), G(255), B(0)

   ▶ 흰색 : R(255), G(255), B(255)

   ▶ 핑크 : R(255), G(192), B(192) // 192/256 = 0.75 = 75%

 

 ■ 컬러 LED 연결                                                                    

 

  자, 그럼 이제 기본 원리는 모두 이해했으니, 프로그램을 하기 전에 컬러 LED를 아두이노와 연결해 보겠습니다. 컬러 LED는 시중에서 구할 수 있는 것 아무거나 구하셔도 됩니다.  R, G, B 및 (-) 핀을 아래와 같이 연결하면 되겠네요.

 

    ■ R (가장 왼쪽) ←→ 330오옴 저항 ←→ 아두이노 6번핀

    ■ (-) (왼쪽에서 2번째, 길이가 가장 긴 다리) ←→ 아두이노 GND

    ■ G (오른쪽에서 2번째) ←→ 330오옴 저항 ←→ 아두이노 5번핀

    ■ B (가장 오른쪽) ←→ 330오옴 저항 ←→ 아두이노 3번핀

 

  우리가 연결한 아두이노 6번, 5번, 3번 핀의 옆쪽에 실크로 쓰여진 숫자에는 틸드(~) 표시가 되어 있는데, 이것은 아두이노 핀 중에서 analog_write( ) 함수로 PWM 신호를 만들어 낼 수 있는 핀이라는 것은 앞에서 설명하였습니다. 우리는 3개 핀에 모두 PWM을 사용하여야 하므로 반드시 틸드(~) 표시가 연결된 핀을 R, G, B에 연결해야 합니다. 아래의 그림처럼 연결이 되겠네요.

 30 카멜레온반지 08

 

 

 ■ 연습 프로그램 작성                                                                   

  이제 연결은 끝났으니 프로그램을 작성하여 실행할 차례입니다.

  최종 목표는 카멜레온 반지이지만 기왕 회로를 꾸몄으니 지난번 배운 것도 복습할 겸 7가지 색(빨강, 녹색, 파랑, 노랑, 청록, 자홍, 흰색)을 먼저 만들어 보도록 하겠습니다.

  아래는 기능 규격입니다.

 

[7가지 색 만들기 기능 규격]

  1. LED가 ON되는 순서는 빨강 ▶ 녹색 ▶ 파랑 ▶ 노랑 ▶ 청록 ▶ 자홍 ▶ 흰색 ▶ 빨강 ▶ … 으로 무한 반복됨

  2. LED는 어떤 한 순간 한가지 색깔만 표시함

  3. 표시된 색깔은 1초 동안 켜진 상태를 유지함

 

  위의 7가지 색 중 노랑, 청록, 자홍은 동시에 2개의 LED를 ON 하면 얻을 수 있고 흰색은 3개의 LED를 동시에 ON하면 얻을 수 있으므로 analogWrite( ) 함수를 사용하지 않고 digitalWrite( ) 함수만 사용하여도 충분히 구현이 가능하겠습니다. 스스로 혼자 구현해 보신 후 10분 후에 함께 해보도록 하지요. (10분간 실시!)

(1분), (2분), ……, (10분)

모두 잘 되셨으리라 생각합니다. 함께 해 보겠습니다.

#define RED_LED 6

#define GREEN_LED 5

#define BLUE_LED 3

void setup()

{

 pinMode(RED_LED, OUTPUT);

 pinMode(GREEN_LED, OUTPUT);

 pinMode(BLUE_LED, OUTPUT);

}

void loop()

{

 digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, LOW); // R=ON, G=OFF, B=OFF –> 빨강(Red)

 delay(1000);

 digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=OFF, G=ON, B=OFF –> 녹색(Green)

 delay(1000);

 digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=OFF, B=ON –> 파랑(Blue)

 delay(1000);

 digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=ON, G=ON, B=OFF –> 노랑(Yellow)

 delay(1000);

digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=ON, B=ON –> 청록(Cyan)

 delay(1000);

digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=ON, G=OFF, B=ON –> 다홍(Magenta)

 delay(1000);

digitalWrite(RED_LED, HIGH);   digitalWrite(GREEN_LED, HIGH);    digitalWrite(BLUE_LED, HIGH); // R=ON, G=ON, B=ON –> 흰색(White)

 delay(1000);

}

약간 긴 듯하지만 알고리즘은 지난번과 거의 비슷하고 간단합니다.

자, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 그리고 결과는 ?

동영상에서는 LED 빛이 너무 밝아서 색깔 구별이 또렷하지 않지만, 실제 눈으로 보면 아주 예쁜 7가지 색깔이 나옵니다. 이 정도면 만족스럽네요.

 ■ 컬러 및 컬러값 선택                                                                   

  연습으로 몸을 풀었으니, 이제 본격적으로 카멜레온 반지를 D.I.Y.하러 가겠습니다. 우리가 할 일은 12개 탄생석의 대표색을 찾아서 이것이 R, G, B의 어떤 값(어떤 세기, %)으로 표현되는지를 알아낸 다음 이것을 analog_write( ) 함수를 이용하여 구현하면 될 것 같습니다.

  자, 이제 탄생석의 색깔에 알맞은 R, G, B의 값을 찾아내면 되겠는데… 2가지 방법이 있습니다.

1. 색상표를 이용하는 방법

  아래와 같이 색상표가 있으므로 이것을 보고 탄생석과 가장 비슷한 색깔을 찾아 그 코드값을 추출하는 방법입니다. 6개의 숫자는 16진법으로 나타낸 코드 값으로 앞의 2개는 R(Red), 중간 2개는 G(Green), 마지막 2개는 B(Blue)에 해당되는 값을 나타냅니다. (혹, 2진법, 10진법, 16진법의 표기법이나 변환이 익숙하지 않은 분은 이 부분에 대하여 따로 각자 공부하신 후 다시 오시기 바랍니다.) 가장 왼쪽 줄의 위에서 6번째 색상이 노랑인데, 이 값을 보면 FFFF00 으로 표기되어 있으니까 [R(FF), G(FF) B(00)] ▶ [R(255), G(255), B(0)]가 되어 노랑색 PWM 표기값과 동일하다는 것을 확인할 수 있습니다.

 

30 카멜레온반지 10

2. 컬러 추출 응용프로그램을 이용하는 방법

  PC 상에서 특정 컬러에 대한 코드값을 추출해 내는 응용프로그램을 실행시켜서 원하는 색상을 클릭하여 코드값을 추출하는 방법입니다.

 

30 카멜레온반지 11

   탄생석은 코드표로 똑 떨어지는 색상이 아니고 우리가 색상을 직접 추출해보는 것도 재미있을 것 같으니까 우리는 두번째 방법을 사용하도록 하지요. 여러가지 프로그램이 있겠지만 여기서는 그냥 간단하게 실행시킬 수 있는 컬러캅(ColorCop)이라는 무료 프로그램을 사용하는 것으로 하겠습니다. (인터넷에서 찾아 다운로드받아 실행하면 됩니다.) 아래와 같은 화면이 나오는데요. 중간 왼쪽에 있는 스포이드처럼 생긴 아이콘을 드래그(클릭한 후 끌기)하여 원하는 컬러 위치에 가져다 놓으면 10진수로 표시된 R, G, B 값이 나타나게 됩니다. 참 쉽네요.

  자, 그러면 지금부터는 탄생석의 대표색에 대한 코드값를 추출해 보는 시간입니다. 색깔도 감상해 가면서 즐거운 마음으로 표를 작성해 보면 더욱 좋겠네요.

  코드 추출은 혼자서도 가능하겠지요? 12분 드립니다.

 

1분, 2분, …, 11분, 12분

 

  제가 직접 찍어서 추출한 값은 아래와 같습니다. (각자 다를 수 있습니다.)

한글 이름 영어 이름 R G B
1 가넷 garnet 254 26 27
2 자수정 amethyst 179 117 180
3 아쿠아마린 aquamarine 211 146 251
4 다이아몬드 diamond 254 155 255
5 에메랄드 emerald 14 219 133
6 진주 pearl 246 241 237
7 루비 ruby 206 3 163
8 페리도트 peridot 167 212 31
9 사파이어 sapphaire 26 27 216
10 오팔 opal 203 200 149
11 토파즈 topaz 254 198 40
12 터키석 turquoise 58 197 189

참, 가넷이라는 보석은 얼마전 종료된 ‘지니어스’라는 TV 프로에 이름이 소개되었던 짙은 자주색계통의 보석이지요. 꽤나 재미있었던 시리즈물이었는데 여러분들도 기회가 되면 꼭 한 번 시청해 보시기 바랍니다.

 

 

 ■ 카멜레온 반지 프로그램 작성                                                                          

 

  모든 준비가 끝났으니 이제 목표 프로그램을 작성하여 실행할 차례입니다. 우리가 원하는 기능 규격을 작성해 보지요.

 

[12가지 탄생석의 대표색을 디스플레이하는 카멜레온 반지 기능 규격]

  1. 컬러 LED로 12개 탄생석의 대표색 12개를 차례대로 ON하며, 무한 반복된다.

  2. 한 가지의 색은 1초 동안 켜진 상태를 유지한다.

 

  지난번에는 digitalWrite( ) 함수를 사용했지만 이번에는 analogWrite( )를 사용하고 작성된 표를 참조하여 R, G, B에 해당하는 PWM value값을 정해주는 것만 조금 다를 것 같습니다.

  같이 한 번 작성해 보시지요.

#define RED_LED 6

#define GREEN_LED 5

#define BLUE_LED 3

void setup()

{

 pinMode(RED_LED, OUTPUT);

 pinMode(GREEN_LED, OUTPUT);

 pinMode(BLUE_LED, OUTPUT);

}

void loop()

{

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷

delay(1000);

 analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정

delay(1000);

 analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린

delay(1000);

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드

delay(1000);

 analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드

delay(1000);

 analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주

delay(1000);

 analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비

delay(1000);

 analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트

delay(1000);

 analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어

delay(1000);

 analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔

delay(1000);

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈

delay(1000);

 analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석

delay(1000);

}

  음. 조금 많이 길긴 하지만…

  일단, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 결과는?

  카메라에 찍힌 것은 색깔 구별이 또렷하지는 않은데, 실제로 보면 아름다운 색깔이 구분되어 나타납니다. 보석에 비할 수는 없지만 그래도 아주 색상이 화려하고 아름답습니다.

  그런데 프로그램 짜면서 조금 마음에 걸리는 것이 있습니다.

  무엇이냐구요? 비슷한 내용이 12번이나 반복되고 코드 값을 일일이 입력해 주는 것이 조금 불편한 듯 하네요. 그래서, 12번 반복하는 것은 for 문을 이용하여 수정하고, 코드 값은 미리 어레이에 지정해 놓았다가 사용하도록 하여 위 코드를 조금 단순화시켜 보겠습니다. 아래와 같이 될 것 같습니다.

#define RED_LED 6

#define GREEN_LED 5

#define BLUE_LED 3

void setup()

{

 pinMode(RED_LED, OUTPUT);

 pinMode(GREEN_LED, OUTPUT);

 pinMode(BLUE_LED, OUTPUT);

}

void loop()

{

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷

delay(1000);

 analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정

delay(1000);

 analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린

delay(1000);

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드

delay(1000);

 analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드

delay(1000);

 analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주

delay(1000);

 analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비

delay(1000);

 analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트

delay(1000);

 analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어

delay(1000);

 analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔

delay(1000);

 analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈

delay(1000);

 analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석

delay(1000);

}

  예. 요렇게 작성해서 다시 실행시켜보면… 처음 프로그램하고 똑같이 실행되는 것을 알 수 있습니다. 이것도 당근 성공이겠죠?

  그럼, 마지막으로… 이 반지를 진짜 반지처럼 한 번 연출해 볼까요?

  손가락에 켜보는 형태로 흉내를 내보지요.

  컬러 LED를 뽑아서 4개의 다리에 선을 연결하고 이선을 원래 LED가 위치했던 브레드보드의 핀 위치에 꼽으면 원래 회로와 똑같은 회로입니다. 이것을 반지 모양으로 손가락 앞쪽으로 LED만 보이게 만들고 아두이노에 전원을 넣으면?

30 카멜레온반지 14

30 카멜레온반지 15

 

  야호~~~ 카멜레온 반지가 완성되었습니다.

  소품을 이용하여 잘 만들면 어느 정도 쓸만한 것도 만들 수 있을 것 같은데, 이것은 여러분들이 D.I.Y. 해보시기 바랍니다. 잘 만들어졌으면 주변에 자랑도 한 번 해 보시구요.

  시간나실 때 아래 과제도 한 번 해보시면 더욱 좋겠죠?

 [과제-카멜레온반지-1]

 R, G, B 색이 임의로 변하는 카멜레온 링을 만들어 보세요.

 [과제-카멜레온반지-1]

 R, G, B 각각이 0~255까지 짧은 시간 내에 계속 변화하면서 모든 색상을 디스플레이할 수 있는 카  멜레온링을 만들어 보세요. 총 256 x 256 x 256 = 16,777,226 가지의 색깔을 만들수 있을까요?

 

 

 

 ■ 스위치 연결                                                                                

  바로 전 강의까지 우리는 아두이노로 할 수 있는 2가지 기초 기능을 다루어 보았습니다. 디지털 출력(digitalWrite())과 아날로그 출력(analogWrite())이지요. 여기서의 아날로그 출력은 엄밀히 말하면 디지털 출력을 PWM을 이용하여 만든 유사 아날로그 출력이지만요.

 

  기본적인 출력을 2가지 해보았으니 이번에는 기본적인 입력을 이용하여 ‘빨노파 게임기’ D.I.Y.에 도전해 보겠습니다. 빨노파게임기란 빨강 ▶ 노랑 ▶ 파랑 순으로 LED 색깔이 상당히 빠르게(0.1초 이내) 변하다가 스위치를 누르는 순간 빨강, 노랑, 파랑 중의 1가지로 약 5초 정도 고정되는 LED 디스플레이어입니다. 아주 빠르게 색깔이 변하므로 사람이 임의로 색깔의 변화를 읽어서 스위치를 누른다는 것은 불가능하다고 볼 수 있으므로 임의의 색깔이 나타나는 상황이 됩니다. 그러므로 가위바위보 게임과 비슷하게 빨강은 파랑을 이기고, 노랑은 빨강을 이기고, 파랑은 노랑을 이긴다고 룰을 정한 후 두 사람이 스위치를 순서대로 눌러서 나온 색깔로 승부를 가린다면 간단한 게임기가 될 수 있겠습니다.

  아 참, 이건 여담인데, 빨노파… 하니까 생각나는게 하나 있네요. ‘개그콘서트’라는 TV 프로의 ‘나는 킬러다’ 코너에 등장하는 빨노파 3형제…  ‘일소일소(一笑一少)’라는 말이 있는데 한 번 웃으면 한 번 젊어진다고 하니, 여러분도 틈나는 대로 개그 프로 열심히 보면서 많이 웃으시기 바랍니다.

  LED가 대표적인 기본 디지털 출력 부품이라면, 스위치는 대표적인 기본 디지털 입력 부품입니다. 스위치를 모르는 사람은 천지(天地)에 없겠지만, 기왕 말이 나왔으니까 많이 쓰는 스위치 2-3가지만 조금 살펴보고 가는 것도 나쁘지는 않을 듯 합니다.

  우리가 제일 흔하게 많이 보고 많이 쓰는 스위치는 무엇일까요?

  요렇게 생긴 것이겠죠? 전자기기 전원 껐다 켰다 하는 스위치, 형광등 껐다 켰다 스위치.

30 카멜레온반지 16

(KCD1-101A RED, 상품코드: 1790)

  실생활에서 가장 많이 쓰이는 스위치로 이름은 로커(Locker) 스위치입니다. 잠긴(lock) 것처럼 ON이거나 OFF이거나 한가지 상태로 존재하지요.

  또, 어떤 스위치가 있을까요? 아래와 같이 생긴 슬라이드(Slide) 스위치도 많이 사용됩니다. 왼쪽이나 오른쪽으로 옮기면 각각 가운데 신호가 왼쪽이나 오른쪽에 연결된 신호와 연결되는 구조를 가진 스위치입니다. 요건 2단으로 되어 있어 2개의 서로 다른 신호가 동시에 왼쪽 또는 오른쪽으로 연결되는 형태네요.

30 카멜레온반지 17

 

(MSL-1C2P(듀얼)-2mm, 상품코드: 30530)

  이번 강의에서 사용할 스위치는 아래와 같이 생긴 택트(Tact) 스위치입니다. 이것도 굉장히 많이 사용됩니다. 아마도 contact에서 이름이 유래(?)된 듯한데, 손가락으로 누르면(contact 되면) ON, 떼면 OFF 상태가 되는 스위치이지요.

  아래 것은 다리가 4개가 있어서 2쌍의 신호가 한꺼번에 연결되거나(ON), 끊어지거나(OFF) 하는 스위치가 되겠습니다.

30 카멜레온반지 18

(ITS-1105-5mm, 상품코드: 34555)

  자, 스위치가 결정되었으니 그럼 이제 스위치를 연결해 볼까요?

  스위치 심볼은 보통 아래와 같은 2가지 형태를 취합니다. 스위치가 눌려지면 왼쪽과 오른쪽에 연결된 전선이 연결되는 것이지요. 스위치를 놓으면 양쪽의 연결은 끊어지는 것이구요.

30 카멜레온반지 19

30 카멜레온반지 20

  스위치가 디지털 입력이라고 하였고, 스위치는 양쪽 끝이 있으니까 한 쪽은 당연히 아두이노의 디지털 신호선 중 하나에 연결하여야 할 것이고, 다른 한쪽은 어디에 연결해야 할까요? 스위치를 눌렀을 때 ‘1’(HIGH)이나 ‘0’(LOW)이 입력되어야 하므로, ‘1’이 연결되려면 VCC(+5V)가 연결되어야 하고, ‘0’이 입력되려면 GND(0V, Ground)가 연결되어야 할 것입니다.

  그러면 이렇게 연결이 되겠네요.

 30 카멜레온반지 21

 

30 카멜레온반지 22

 

  그런데 가만히 보니까, 스위치를 눌렀을 때는 연결된 상태에 따라서 +5V 또는 0V(GND)가 연결되지만 스위치가 눌리지 않았을 때는 선이 끊어진 상태(floating 상태)가 되는데… 어라, 이렇게 되면 아두이노는 이 핀의 값을 HIGH(1)로 판단할까요? 아니면, LOW(0)로 판단할까요? 조금 어려운 문제인데 이것은 아두이노의 내부 로직과 상태에 따라 값이 결정될 수 있으므로 정확하게 HIGH 또는 LOW라고 단정지어 말할 수 없습니다. 즉, 상황에 따라 HIGH가 될 수도 있고 LOW로 될 수도 있다는 뜻인데, 이렇게 되면 값이 확정되지 않으므로 프로그램을 작성하는 사람은 대략난감(大略難堪, 이러지도 저러지도 못하는 당황스러운 상황)하게 됩니다. 그래서, 이렇게 선이 끊어진 상태가 될 때는 아두이노가 HIGH 또는 LOW 중, 하나의 값으로만 결정되도록 만들어 주는 조치가 필요합니다. 즉, 스위치를 눌렀을 때 HIGH가 되는 회로는 눌러지지 않았을 때 LOW가 되도록 조치해 놓아야 하고, 반대로 스위치를 눌렸을 때 LOW가 되는 회로는 눌러지지 않았을 때는 HIGH가 되도록 조치해 놓아야 하겠습니다. 아래와 같이 될 것 같습니다.

30 카멜레온반지 23

30 카멜레온반지 24

  하지만 위 그림도 아직은 문제가 있어 보입니다. 왜냐하면 스위치가 눌려졌다고 생각하면 위 2개 회로 모두가 +5V와 GND가 직접 연결되는 형상이 되어 버리니까요.

  뿌직~~~ 번쩍! 푸쉬푸쉬~~~

  무엇인가 터지던지… 불꽃이 튀던지… 연기가 나던지… 뭔가 문제가 생길 것 같습니다. 그래서 이런 경우를 방지하기 위한 대비책이 필요한데 이 역할을 수행하는 것은 저항입니다. 아래와 같이 스위치가 눌렸을 때와 눌려지지 않았을 때의 값이 서로 다르게 입력되는 위치에 저항을 달면 문제가 해결되겠습니다. (저항값은 보통 1K~10K 정도를 사용합니다.) 참고로 GND에 저항이 연결되는 것을 풀다운(pull down) 저항이라고 하고, VCC(+5V)에 연결되는 것을 풀업(pull up) 저항이라고 합니다.

30 카멜레온반지 25

 

30 카멜레온반지 26

 

 

  하나 하나 설명하다보니 조금 장황해졌는데요. 어쨌든 이제 연결 방법은 알았으니, 실제로 회로를 아두이노에 연결해 봅시다. 조금 전에 만들었던 카멜레온반지 회로에 스위치 한 개를 추가하여 2번핀(D2)에 연결하는 것으로 하겠습니다. 아래와 같이 되겠네요.

 30 카멜레온반지 27

  오, 그럴듯하게 잘 꾸며진 것 같습니다. 만족? 만족!

 

 

 ■ 신호등 게임기 프로그램 작성                                                  

 

  이제 프로그램을 작성하여야 하는데요. 언제나 마찬가지로 일단 원하는 기능 규격을 작성해 봅시다.

 

[신호등 게임기 기능 규격]

  1. 컬러 LED,의 색깔은 0.1초 마다 빨강 ▶ 노랑 ▶ 파랑 ▶ 빨강 ▶ 노랑 ▶ 파랑… 의 순으로 계속 바뀐다..

  2. 스위치를 누르는 순간 5초 동안만 현재의 LED 색이 유지되었다가 다시 ‘1’번을 수행한다.

 

  컬러 LED의 색깔이 바뀌는 것은 지난번에 했으니까 별 문제가 없을 것이고, 스위치 값을 읽어서 그 값이 0(LOW, 스위치 눌림)인지 1(HIGH, 스위치 눌리지 않음)인지를 검사할 수만 있으면 쉽게 해결될 것 같습니다. 이런 경우에 대비해서 아두이노에서는 digitalRead(pin)라는 기능의 함수를 제공하므로 이것을 이용하도록 합니다.

 

digitalRead(pin)

  ■  pin : 핀 번호

  ■  return 값 : pin을 통하여 들어온 디지털 값으로 0 또는 1

 

  이제 기능 규격을 만족할 수 있는 프로그램의 알고리즘을 만들어 보지요. 아래를 보기 전에 각자 먼저 5분 정도 생각해 보시구요.

… (1분) … (2분) … (3분) … (4분) … (5분)

  아래와 같은 모습이 될 것 같습니다.

30 카멜레온반지 28

  이제 프로그램을 함께 해볼까요?

int SW=2; // #define을 이용해도 되지만 이와 같이 변수로 선언하는 것도 방법

int BLUE_LED=3

int GREEN_LED=5;

int RED_LED=6;

void setup()

{

 pinMode(SW, INPUT); // 2번핀은 스위치 입력

 pinMode(BLUE_LED, OUTPUT); // 3번핀은 파랑 LED 출력

 pinMode(GREEN_LED, OUTPUT); // 5번핀은 녹색 LED 출력

 pinMode(RED_LED, OUTPUT); // 6번핀은 빨강 LED 출력

}

void loop()

{

analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 0); // 빨강

if (digitalRead() == 0)

   delay(5000); // 스위치를 눌렀으면 5초 대기

else

delay(100); // 스위치를 누르지 않았으면 0.1초만 대기

analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 0);   // 노랑

if (digitalRead() == 0)

   delay(5000);

else

delay(100);

analogWrite(RED_LED, 0);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 255); // 파랑

if (digitalRead() == 0)

   delay(5000);

else

delay(100);

}

  digitalRead()를 수행하여 값이 ‘0’인 상태가 나타나면 스위치가 눌려진 것이니까 그 상태에서 delay(5000); (5초 동안 아무것도 하지 않음)을 수행하게 되므로 LED가 5초 동안 한가지 색깔을 유지하게 됩니다. 자신의 색깔이 결정되는 것이지요.

  작성이 다 되었으면… 컴파일 ▶ 업로드 ▶ 실행! 잘 나오나요?

 30 카멜레온반지 29

  옆에 있는 가족/친구/상사/동료와 간단히 게임 한 번 해 보시지요! 나는 빨강, 상대는 파랑, 야호~ 내가 이겼다. 밥 먹으러 갑시다.

  오늘은 여기까지입니다. 다음 시간에는 FND(Flexible Numeric Display)를 가지고 007 영화에 항상 등장하는 카운트다운 계수기 D.I.Y.에 도전해 보겠습니다. 아래 과제는 짬을 내서 해보시고 다음 강의에서 예쁜 얼굴로 또 만나겠습니다. 감사합니다.

 [과제-빨노파게임기-1]

 스위치를 누르면 ‘1’이 되도록 연결하고 프로그램해 보세요.

 [과제-빨노파게임기-2]

 스위치를 2개 사용하여 더 재미있는 DIY 작품을 만들어 보세요.

 

 

 

아두이노 구매하러 가기 : 클릭!

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

공모전

2021 ICT 융합 프로젝트 공모전 응모요강

1. 응모자격: 국내외 대학생, 대학원생 및 일반인 누구나 응모 가능

2. 주제: 전자, 로봇, 기계분야 중 자유주제

3. 접수기간: 2021년 2월 1일(월) ~ 3월 31일(수)

4. 응모요령 

◌ 응모원고: A4 20-30매 내외 (회로도, 소스코드 외 제작 과정 일체) +참가 신청서

5. 시상내역: 총 상금 500만원 상당
◌ 대상 (1)  100만원 , 최우수상 (2) 50만원, 우수상(5) 20만원 , 장려상(20) 10만원

6.접수 및 문의처

◌ 접수방법: 이메일 접수 (press@ntrex.co.kr)

◌ 문의처: Tel 070-4342-6314 / 070-4342-6312 (문의 가능 시간: 9:00 ~ 18:00)

[원고 작성 유의사항]

1. 파일 형식 : DOC, HWP 중 택 1

2. 작성 분량 : A4 20-30매 내외(최대 글자 크기 12 point)

3. 아래의 작성 목록을 기준으로 원고를 작성하여 주시기 바랍니다.

-작성 목록(최대한 자세하게 기술)

(1)작품 제목

(2)작품 개요

(3) 작품 설명

(3-1) 주요 동작 및 특징

(3-2 )전체 시스템 구성

(3-3 )개발 환경(개발 언어, Tool, 사용 시스템 등)

(4)단계별 제작 과정

(5)사용한 제품 리스트( 제품명, 제품 링크 포함)

(6) 기타(회로도, 소스코드, 참고문헌 등)

4. 파일 접수 시 총 3개의 파일 (①+②+③)을 접수합니다.

①: 최종 원고

②: 최종 원고에 사용한 자료(이미지, 회로도, 소스코드 등 원본)를 압축한 파일

③: 공모전 참가신청서 (필수)

※ 제출 자료 주의사항

– 이미지 파일은 직접 촬영하거나 제작한 원본 이미지로

파일 확장자: jpg, tiff, pdf, png, bmp / 이미지 해상도: 300 DPI 이상의 이미지를 제출하시길 바랍니다. (해상도가 낮거나 시별 불가한 이미지 사용 불가)

– 소스코드는 이미지 파일이 아닌 TEXT 형식의 원본 파일로 제출해주시길 바랍니다.

 

자세한 사항은 아래 링크를 확인하시길 바랍니다 :)

공모전 안내 및 참가신청서 확인하러가기 

[63호]2020 로보월드

63 hot 2020 로보월드 (1)

63 hot 2020 로보월드 (1)

로봇 관련 전시회 중 올해 전 세계 최초로 개최된 전시회

2020 로보월드

글 | 박진아 기자 jin@ntrex.co.kr

 

지난 10월 4일간 킨텍스 제1전시장에서 2020 로보월드가 개최되었다. 산업통상자원부 주최, 한국로봇산업협회, 한국로봇 산업진흥원, 제어로봇 시스템학회의 공동 주관으로 진행된 2020 로보월드는 총 400여 부스의 국내외 로봇 관련 기업 150여 곳이 참가하였다.
제조, 물류, 서비스, 드론, 스마트 응용 SW 등 다양한 주제로 구성되어 각 분야에 맞는 최신 제품, 기술 등을 만나 볼 수 있었다. 특히 이번 전시는 온라인과 오프라인이 결합한 하이브리드 전시회로 온라인을 통해서도 해당 전시회에 출품된 제품들을 쉽게 만날 수 있었으며, 다채로운 부대행사를 통해 재미와 볼거리가 가득한 전시회를 만들었다.

63 hot 2020 로보월드 (2)

로보월드를 방문하자마자 좌, 우로 열을 맞춰 움직이는 로봇암들의 모습에 발길을 멈추게 되었다. 이곳은 제조용 로봇 전문 기업 로보스타의 부스로 산업용 로봇 RA004, RA007가 관람객을 대상으로 움직임을 시연하고 있었다. 초소형 다관절 로봇인 두 로봇은 고성능, 고기능 범용 로봇으로 조작이 간편하고, 사용이 용이하며, 완벽한 제어 능력으로 높은 제품 신뢰성이 특징이다.
가반 하중이 4, 7kg인 두 로봇에는 충격감지 및 힘 제어 등 협동 로봇 기능이 탑재돼 있으며, 기존 산업용 로봇과 달리 펜스 없이 사용할 수 있도록 설계됐다. 해당 로봇은 현재 각종 안정 인증 취득을 위한 절차를 밟고 있으며, 향후 2년 내 정식으로 출시할 예정이라고 한다.

63 hot 2020 로보월드 (3)

기자의 눈길을 끌은 또 다른 곳은 로봇암을 이용하여 촬영을 진행하고 있던 레인보우 로보틱스 부스였다. 레인보우 로보틱스는 카이스트 휴머노이드 로봇연구센터-휴보랩에서 창업된 벤처기업으로, 대한민국 최초의 이족보행 휴머노이드 로봇인 HUBO에 대한 모든 기술과 상표권을 갖고 있는 로봇 개발 회사이다. 특히 레인보우는 감속기를 제외한 핵심 부품을 자체적으로 개발 및 생산하는 기술 기반 회사로 다른 협동 로봇 제조사에 비해 높은 기술력을 갖춘 기업으로 인식되고 있다.

전시된 제품은 작업자와 함께하는 협동 로봇 RB 시리즈로 기존 제품과 달리 부품의 내재화를 통해 가격경쟁력을 갖췄고, 고객 요구 사항에 따라 커스터마이징이 가능하며 기반 하중은 5Kg, 10kg, 3kg으로 작업반경, 중량에 따라 필요 로봇을 선택할 수 있다.

현장에서는 스튜디오 촬영을 시연하고 있었는데 기존에 생각했던 로봇의 움직임보다 훨씬 안정적이고 섬세했으면 다양한 촬영 기법을 사용하는 모습을 보며 발전한 로봇 기술력에 감탄하였다. 또한, 서비스 시장에서 협동 로봇을 활성화하기 위해 제작된 음료 제조 로봇 믹스의 업그레이드 버전을 함께 전시하였으며, 이 믹스 플래폼은 이미 여러 장소에서 활용되고 있다.

반도체와 디스플레이, 신재생에너지, 제조 장비 공급업체인 제우스에서는 다관절 로봇인 제로, 스카라 로봇, 직교 로봇, 델타 로봇 등을 전시하였다. 주요 모델인 제로(ZERO)는 2019년도에 제우스 최초의 6축 다관절 산업용 로봇으로 가반 중량 5kg로 Pick -and-place, PCB 조립 및 비전 검사를 포함한 다양한 응용 분야를 위해 설계되었다. 산업용 로봇으로 높은 수준의 ±0.02mm 반복 정밀도를 구현하며, 모듈식 설계로 유지 보수 비용을 줄이고, 낮은 소비전력(250W), 사용성 좋은 PC 기반 프로그래밍 등 산업용 로봇 장점을 극대화한 제품이다.

63 hot 2020 로보월드 (1)

이 밖에 새로운 주력 제품인 스카라 로봇은 가반 하중 4Kg, 무게 16kg으로 중공축 모터 적용으로 컴팩트한 구조를 구현, 공간 효율성을 높였다. 10마이크론 즉 0.01mm의 정밀도를 제공하며 모터 및 감속기 등이 모듈화된 제품이다. 또한, 이미지에 나온 제품은 델타로봇으로 27Kg의 가벼운 무게로 기존 공정에서 라인을 멈추거나 개조할 필요 없이 즉시 설치가 가능하고, 무급유 베어링 기술을 채택, 기존 스프링 방식의 마모 등 여러가지 문제를 예방할 수 있는 특징이 있다.

63 hot 2020 로보월드 (2)

산업 현장에서 사용되는 로봇의 다양한 분야에서 최근 빠르게 활용도가 높아지는 분야는 물류 분야라고 할 수 있다. 이에 따라 전시장에서 가장 많은 눈길은 끈 것도 물류, 배송, 서빙 로봇이었다.

먼저 전시회장 곳곳을 누비며 신문이나 손소독제를 전달하는 트위니의 따르고 로봇을 만날 수 있었다. 따르고는 사람을 따라다니는 추종 로봇으로 대상의 색깔, 크기, 위치, 모양 정보 등을 기반으로 대상을 따르는 로봇이다.

다음 나르고는 자율 주행 로봇과 추종 로봇을 결합한 형태의 기차로봇으로 선두의 자율주행 로봇이 이동하면, 추종로봇들이 그 뒤를 차례대로 따라 이동한다. 나르고60은 QR코드, 비컨, UWB 등 인프라가 필요없는 완전 자율주행 로봇으로 좁고 복잡한 실내 공간 어디에도 적합한 운송로봇이다. 최대 2시간 충전으로 8시간 사용이 가능하며, 1.2m/s 속도를 가진 나르고 60은 대형 사무실, 택배, 우편, 물류창고 등에서 사용이 가능하다고 한다.

63 hot 2020 로보월드 (3)

로봇 시스템과 자율 주행 로봇을 개발 및 공급하는 시스콘에서는 물류 이송 로봇 SR 시리즈 및 IM을 선보였다.

시스콘의 자율 주행 로봇은 360도 라이더 센서를 이용하여 주변 감지, 장애물 감지를 통해 안전한 자율주행이 가능하며 고정된 경로 또는 최적의 경로를 운영자가 선택할 수 있어 작업의 유연성, 효율성 극대화의 효과를 거둘 수 있는 특징을 갖는다.
SR 시리즈는 자율 주행 이송 로봇으로 컨베이어, 팔레트타입, 모바일 매니퓰레이터와 같이 협업할 수 있고, 딜리버리 서비스 로봇인 IM시리즈는 안내, 서빙, 관리 등의 기능을 갖고 있는 서비스 모듈 장치를 결합할 수 있다. 즉 다양한 목적에 따라 상부 모듈 및 소프트웨어 변경이 가능하다.
특히 IM 시리즈는 창의적이고 혁신기술을 인정받아 2020 로보월드 어워드 우수 제품으로 선정되는 영광을 얻었다.

63 hot 2020 로보월드 (4)

LG 유플러스 부스에서는 물류 창고를 옮겨 놓은 듯한 대형 부스에서 다양한 이동식 물류 로봇 등이 쉴새 없이 움직이며 관람객의 발걸음을 멈추게 하였다. 이동통신사 중 유일하게 참여한 LG유플러스는 글로벌 지게차 업체 클라크, 물류 자동화 업체 케이엔, 인공지능 기반 물류 솔루션 업체 무샤이니 등과 5G 기반 무인 지게차-물류 로봇 등을 선보였다.
5G 무인 지게차는 관리자 없이 무인으로 이용할 수 있는 솔루션으로 10mm의 정밀한 위치 측위는 물론 한 명의 작업자가 최대 50대까지 동시 제어할 수 있다. 5G 물류 로봇은 공장이나 물류 센터 내 보관을 위한 운반 업무를 로봇이 대체하여 물류 처리 시간을 줄여 빠른 입출고 관리가 가능하다.

63 hot 2020 로보월드 (5)

로봇용 충돌, 근접 감지 안전센서 개발 전문 업체인 에이딘 로보틱스에서는 4족 보행 로봇 에이딘을 시연 및 전시하였다. 에이딘은 로봇의 다리가 지면에 닿을 때의 힘을 정확히 측정하는 다축 힘 토크 센서가 있기 때문에 자연스럽게 네발로 다닐 수 있으며, 바퀴형 로봇이 갈 수 없는 곳까지도 이동이 가능한 장점이 있다. 에이딘 로보틱스의 힘 토크 센서는 외부 충격에 강인하여 내구성이 보장되며, 3축 힘과 3축 모멘트 모두 측정이 가능한 6축 힘 토크 센서이다. 힘 토크 센서를 통해 엘리베이터의 버튼을 누르거나, 짐을 옮기거나, 차를 끄는 등 다른 사물들과 상호 작용이 가능하며 다양한 측정 장비를 탑재해 영상 촬영 또는 데이터 수집 목적으로도 사용이 가능하다.
또한, 함께 선보인 듀얼모드 근접 촉각 센서는 필드 센싱 기술인 메소 스케일의 변화를 감지해 자동화 공정 라인에서 작업자와 로봇의 출동을 사전에 방지해 준다.

63 hot 2020 로보월드 (6)

자율 주행 솔루션 업체 코가플렉스는 인식-제어 기술과 실내 자율주행 기술을 결합한 코나 시스템이 탑재된 서빙고 로봇을 전시했다.
서빙고는 키스트, 우리 로봇과 협력해 개발됐으며, 카메라와 위치센서로 공간을 파악하며 미리 입력된 알고리즘에 따라 행동한다.
일반 서빙 로봇이 식당 천장이나 테이블, 벽 등에 주행로봇이 인식할 수 있는 표식을 붙여야만 실내 주행이 가능했던 것과 달리, 표식 없이도 자율 주행으로 길을 찾을 수 있는 차별점이 있다.
또한, 이번 전시회에서는 로봇암, 이동식 로봇 외에도 사람의 건강관리와 정서 안정을 지원하는 로봇들도 한자리에서 확인할 수 있었다. 앞으로 발전가능성이 무궁무진한 헬스케어 로봇 중 먼저 로보 케어 부스의 실벗 제품을 확인할 수 있었다.

63 hot 2020 로보월드 (7)

로보케어는 KIST 1호 출자 회사로 설립된 기업으로 이번 전시회에서 치매예방 로봇 인지훈련 시스템 실벗과 일대일 개인형 인지훈련 로봇 보미를 소개하였다.
실벗은 그룹형 인지훈련 시스템으로 고령자 및 치매 위험이 있는 어르신을 대상으로 로봇을 이용한 두뇌향상 콘텐츠를 제공해 뇌 기능 활성 및 치매예방에 도움을 준다. 최대 12인이 동시에 훈련이 가능하며, 치매, 우울 검사 수행 및 학습 수준에 따라 난이도 조절이 가능하다는 장점이 있다. 보미는 I, II 2종으로 개인형 로봇과 탁상형 로봇 선택이 가능하고, 탁상형 로봇은 이동형 인지 훈련 데일리 케어 로봇이다. 이 역시 난이도 조절이 가능한 다양한 두뇌 콘텐츠를 통해 인지훈련이 가능하며, 응급 콜 서비스 및 복용약 알림 기능을 제공한다. 이중 실벗은 이번 전시 우수 제품으로 선정되었다.

63 hot 2020 로보월드 (8)

실벗과 보미가 인지훈련을 도와줬다면 티로보틱스의 Healbot-G는 KIST, 아산병원과 협력하여 마비 환자, 뇌졸중 환자의 보행 재활에 전문적인 도움을 준다.
티로보틱스는 진공로봇, 자율 주행 이송로봇뿐만 아니라 재활 및 근력 보조 용도의 외골격 로봇을 개발하여 공급하고 있으며 재활로봇은 두 가지로 Healbot-T와 Healbot-G가 있다.
Healbot-T는 뇌졸중 환자의 초기 보행운동 능력 회복을 위한 Treadmill 타입의 보행 보조 로봇으로 실제적인 보행운동 구현을 위한 14축 자유도가 지원되는 외골격 로봇이다. 사진 속 제품은 Healbot-G로 편마비 환자의 보행 행태를 지원하기 위한 Overground 타입의 외골격 보행보조 로봇으로 단계별 근력 보조 조절이 가능한 4축 외골격 로봇이다. 간편하게 조절 착용이 가능한 프리 피팅(Free-Fitting) 구조로 STS(Sit to Stand), 균형 및 보행 연습 등에 적용할 수 있다.

63 hot 2020 로보월드 (9)

다이나믹케어서는 최대 근력 측정 및 개인 맞춤형 운동 프로그램을 지원하는 파워 로그 제품을 직접 시연하였다.
파워 로그는 사용자가 발휘하는 힘에 대해 3/100SEC에 한 번씩 능동적으로 반응함으로써 최대 근력(1RM)을 끌어낼 수 있다. 또한, 측정된 부위별 1RM은 DB에 저장되며, 이를 바탕으로 개인 맞춤형 운동 프로그램을 자동으로 계산 및 제공된다.
APP으로 제공된 운동 프로그램은 키오스크에 자동 전송되어, 별도의 입력 없이 개인 맞춤형 운동을 POWER LOG를 통해 실행할 수 있으며 모든 데이터는 저장되어 운동 스케줄 관리를 도와준다.
이 제품은 트레이너의 전문성과 신뢰도를 향상시킬 수도 있고, 5단계 안전장치로 스스로 운동할 때 바벨, 덤델 등을 통해 다치는 것을 방지해 주는 특징이 있다. 이 제품은 재활센터, 운동센터 등에 설치하여 사용하거나 개인 운동기기로 사용이 가능하다.
이런 헬스 케어 로봇은 고령화에 따라 관리 인력의 문제를 해결하고, 코로나 장기화에 따른 비대면 의료, 개인 건강 관리에 도움을 줄 수 있기 때문에 앞으로의 기술발전과 실제 적용이 더욱더 기대되는 분야이다.

63 hot 2020 로보월드 (4)

코로나로 인해 이번 전시회 방문이 조심스러웠으나, 입구에서부터 열 체크, 신원확인, 음식물 섭취 금지, KF-80 이상의 마스크 착용도 감염 예방 수칙이 잘 마련되어 있어 안전하게 관람할 수 있었다. 하지만 갑작스럽게 취소되는 전시도 간혹 있으니 구독자분들이 전시회를 방문할 계획이라면 일정과 감염 예방을 위한 수칙 등을 사전에 확인해보고 방문하기 바란다.
올해 세계 처음으로 열린 2020 로봇 전시회는 많은 관람 제약과 시기가 좋지 않았음에도 불구하고, 전문 기업들이 다양한 제품을 선보여 관람 내내 볼거리가 많았으며 산업, 의료 분야의 전문 로봇뿐만 아니라 교육용 코딩 로봇, 라이다, 드론, 산업용 모터 등 완제품 및 부품 모두를 한자리에서 볼 수 있다.
정부에서도 앞으로 로봇 분야의 규제를 완화하고, 지원을 아끼지 않는다고 하니 더욱더 발전하는 로봇 산업, 로보월드 전시회를 기대하며 2020 로보월드 관람기를 마친다.

 

 

[63호]INTER BATTERY 2020

63 hot 인터배터리 (1)

63 hot 인터배터리 (1)

국내 최대규모 이차전지 산업 전문 전시회, 

INTER BATTERY 2020 

글 | 박진아 기자 jin@ntrex.co.kr

 

산업통산자원부가 주최하고 한국전지산업협회와 코엑스가 주관하는 인터배터리(InterBattery) 2020이 지난 10월 서울 코엑스 A홀에서 개최되었다. 올해 8회째를 맞는 인터배터리(InterBattery) 2020은 국내 최대 규모의 배터리 전시회로, 총 198개 기업, 380부스가 마련되어 배터리산업의 최신 제품과 기술정보를 종합적으로 관람할 수 있었다.
이번 전시회는 전기차에 대한 뜨거운 관심에 힘입어 인산인해를 이루었고, 한국 배터리 시장의 주요 3사인 LG화학, 삼성 SDI, SK이노베이션이 참여하여 다양한 차세대 제품을 선보이며 관람객의 눈길을 끌었다.

63 hot 인터배터리 (1)

 

63 hot 인터배터리 (2)

먼저 참가업체 중 최대 규모를 차지했던 LG 화학 부스를 살펴보았다. LG 화학에 따르면 이번 전시부스는 ‘더 나은 미래를 위해 과학을 인류의 삶에 연결한다’는 비전을 담아 4가지의 존으로 부스를 구성하였다.

63 hot 인터배터리 (2)

첫 번째 코어존에선 LG 화학의 핵심 기술인 라미 & 스택(Lami & Stack)’ 제조 기술, 안전성 강화 분리 막(SRS) 소재 기술, 냉각 일체형 모듈 제조 기술 등 배터리의 성능과 안전성을 극대화할 수 있는 기술을 확인할 수 있었다.

이 밖에 모어 파워풀 존, 모어 이피션시 존, 모어 스타일리시 존에서는 이러한 기술이 삶에 연결된 모습을 반영한 다양한 배터리 제품을 소개하였다. LG화학의 배터리를 탑재한 전기차·킥보드·가전 등이 과거 대비 얼마나 성능이 향상돼왔는지, 기존 대비 에너지밀도가 16%, 주행거리가 20% 이상 향상되는 전기차 배터리인 ‘롱-셀(Long Cell)’ 등을 선보였다. 또한, 에너지를 더 효율적으로 사용할 수 있게 해주는 에너지 저장 장치(ESS) 배터리 제품, 전기 차용 로우-하이트(Low-Height) 배터리 모듈부터 전기 스쿠터(e-Scooter)용 교체형 배터리 기술까지 확인할 수 있었고, 차세대 배터리 기술인 리튬황, 전고체, 장수명 배터리를 소개하며 지속 가능한 성장을 위한 LG 화학의 노력을 한자리에서 엿볼 수 있었다.

63 hot 인터배터리 (3)

63 hot 인터배터리 (4)

자동차용 배터리와 ESS용 배터리를 생산하고 있는 SK 이노베이션은 단순한 배터리 제조사가 아닌 E-모빌리티 등 배터리 연관 산업의 생태계 구축에 기여하며 성장 모델을 만들겠다는 전략 아래 이번 전시회를 준비 했다고 전했다. 이를 위해 3가지 주요 키워드로 안전성, 고속충전, 장거리 주행을 강조하며 해당 분야에서 차별적 우위를 보여주었고, ‘보다 안전하고 빠르고 오래가는 넥스트 배터리’라는 슬로건을 내세우며 6가지 주제로 다양한 부스를 구성했다. 또한, 별도 코너를 함께 마련해 상용화에 성공한 니켈, 코발트, 망간(NCM) 배터리 제조 기술도 선보였다.

SK 이노베이션은 업계 최초로 리튬이온 배터리에 고에너지밀도 소재를 적용하여 양산에 성공 했으며, 고품질 습식 분리막을 적용, 뛰어난 안전성/내열성 및 사이클 수명을 구현하는 차별성을 갖춘 기업이다.
현재 양산된 전기차 배터리 중 니켈의 비중이 가장 높은 것은 NCM811이며 니켈 비중이 높아질 수록 주행거리는 향상 되기때문에 전기차 배터리의 핵심은 니켈 비율라고도 한다. 다만 니켈 비중이 커질수록 폭발 위험성이 높아지는 단점을 갖고 있기 때문에 안전성 유지가 중요하다. 이에 SK 이노베이션은 업계 첫 개발인 니켈 비중을 더 높인 NCM9½½등의 제품 역량을 토대로 장거리 주행이 가능한 장수명 배터리 개발에도 집중하고 있다.

63 hot 인터배터리 (5)
많은 참관객으로 인산인해를 이루며 기자의 발걸음은 멈춘 또 다른 부스는 국내 주요 배터리 기업인 삼성 SDI였다. 삼성 SDI 부스 역시 우리가 창조하는 미래를 슬로건을 바탕으로 그린 테크놀로지, 지속 가능한 혁신, 그린 로드 스토리텔링 등 세 가지 키워드를 활용해 진보된 배터리 기술력과 이를 통해 만들어갈 친환경 미래상을 제시하였다.

소형 배터