January 25, 2020

디바이스마트 미디어:

[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 작품을 만들어 보세요.

 

 

 

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

[55호]시각장애인을 위한 텍스트의 변환과 점자 디바이스

55 ICT 시각장애인점자디바이스 (2)

55 ICT 시각장애인점자디바이스 (1)

2019 ICT 융합 프로젝트 공모전 우수상

시각장애인을 위한 텍스트의 변환과 점자 디바이스

글 | 부산대학교 이세진, 이승미, 황지수

 

 1. 심사평

칩센 시각 장애인을 위해 필수적으로 필요한 것이 점자인 것을 알고 있었지만, 이러한 방식의 interactive 한 점자 디바이스를 만든다는 생각을 먼저 했다는 것이 놀랍습니다. 다른 기술이라면 문자 인식 및 오류에 대한 부분을 먼저 따져보아야겠지만, 단순히 몇 개의 글자를 오인식하는 오류 보다는 이러한 장치가 가져다 줄 긍정적인 면이 먼저 보이는 작품입니다. 코일과 자기장를 이용하여 점자를 표시한다는 발상도 매우 놀랍습니다. 소형화 및 한글화 점자는 어떻게 될지도 궁금해지는 작품입니다.
뉴티씨 시각장애인들을 위하여, 스마트폰으로 글을 읽어서 이를 점자로 변경해주는 기능을 실제로 구현한 점에 그 따뜻한 마음을 읽을 수 있어서 좋았습니다. 또한, ‘시각장애인들이 그러한 어려움이 있겠구나’ 하고 간접적으로 느낄 수 있는 작품이기도 했습니다. 주변에 어려운 사람들이 많은데, 그들을 돕는 손길들이 더 많아졌으면 하고 생각해 봅니다.
위드로봇 피에조 액츄에이터를 이용하여 점자 생성기 부분을 소형화하는 추후 연구를 제안합니다.
펌테크 작품의 아이디어와 창의성이 돋보이며 추후 작품 완성도를 높일 경우 실제 시각장애인을 위한 점자 디바이스 장치로도 활용이 가능할 것으로 예상되는 우수한 작품이라고 생각합니다. 무엇보다도 스마트폰으로 글자를 읽어들인 후 분석하여 무선 전송 후 이를 점자로 변환하는 과정과, 점자 디바이스 설계 방식등 전체적인 기술 구현방식이 훌륭했다고 생각합니다. 작품의 기획의도, 기술 구현도, 완성도 등에서 높은 평가를 주고 싶은 작품입니다.

2. 작품 개요
본 작품은 시각장애인이 다양한 소설, 책, 문서를 곧바로 점자로 바꾸어 읽을 수 있도록 한 점자 구현 디바이스이다. 크게 두 가지 기능으로 나누어진다. 첫째, 도서나 문서를 촬영하여 txt파일로 변환하여 주는 OCR기능을 가진 어플, 둘째, txt파일을 SD카드에 저장하고 점자로 구현하여 주는 디바이스이다.

2.1. 아이디어 제안 목적
기술이 발전함에 따라 현대인들은 많은 편의를 누리고 있지만 여전히 시각장애인들을 위한 기술들은 부족한 상황이다. 비록 점자책이 나와 있지만 시작장애인들이 이를 얻기 위해 얻는 수고는 상당할 것이다. 이들에게 조금이나마 나은 편의를 주기 위해 고안해 낸 것이 스마트 점자책이다. 읽고 싶은 책을 사진으로 찍기만 하면 디바이스에 자동으로 점자로 변환되어 올라올 수 있게 하는게 이 아이디어의 핵심이다. 이뿐만 아니라 기존의 서적들도 텍스트 파일이 존재하기만 하면 SD카드로부터 불러들여 자동으로 점자 변환할 수 있게끔 할 수 있다.
이 아이디어를 통해 시각장애인들도 손쉽게 점자책을 구할 수 있게 하여 실생활에 큰 도움을 주고자 한다.

3. 작품 설명 및 단계별 제작 과정
3.1. 디바이스 구현 방식

55 ICT 시각장애인점자디바이스 (2) 55 ICT 시각장애인점자디바이스 (3) 55 ICT 시각장애인점자디바이스 (2)

디바이스 구현 방식은 크게 3가지로 나뉜다. 먼저 스마트폰의 어플을 통해 카메라로 책이나 문서의 글자를 촬영하면 이를 인식하여 텍스트로 변환시키고, 이 텍스트를 블루투스 기능을 이용해 아두이노에 연결된 SD카드로 전송 및 저장하게 한다. 마지막으로 이 전송된 데이터를 아두이노를 통해 점자로 구현하게 한다.

3.1.1. OCR어플리케이션

55 ICT 시각장애인점자디바이스 (5)

55 ICT 시각장애인점자디바이스 (6)

 

55 ICT 시각장애인점자디바이스 (3) 55-ICT-시각장애인점자디바이스-5050

android studio를 이용하여 app을 제작한다. 기본적으로 camera와 문서를 읽고 쓸 수 있는 등의 권한을 필요로 한다. 화면을 구성하는 xml은 ①블루투스를 연결할 수 있는 디바이스를 보여주는 목록, ②블루투스 연결 상태를 알려주는 표시창, ③블루투스 연결을 위한 버튼 ④연결을 끊기 위한 버튼, ⑤글자인식을 위한 카메라 화면으로 구성된다.
먼저 아두이노와 블루투스연결을 한 후, 점자로 번역할 글자를 카메라에 인식시킨다. 인식된 글자를 터치하면, 음성기능을 통해 들려주는 동시에 txt로 변환하여 블루투스 통신을 통해 아두이노로 전송한다.

3.1.2. app으로부터 txt전송
변환된 txt를 스마트폰에 탑재되어 있는 블루투스 기능과 아두이노에 장착된 블루투스 모듈(HC-06)을 이용해 스마트폰과 아두이노 간의 데이터 송수신이 가능하게 하였다.

3.1.3. txt파일 저장
app으로부터 전송받은 txt를 아두이노에 연결된 SD카드에 파일로 만들어 저장할 수 있도록 하였다. 이를 통해 app으로 촬영한 내용 외에 텍스트로 이뤄진 책을 SD카드로 저장하기만 하면 점자로 구현할 수 있는 기능을 갖추게 된다. 여기서 아두이노와 SD카드 인식장치를 사용한다.(아두이노 UNO의 핀 개수가 모자랄 경우 Arduino MEGA를 사용하여 문제를 해결한다.)

55 ICT 시각장애인점자디바이스 (7)

3.1.4. 점자구현

우선 아두이노 코딩에 각 문자마다 2진수로 구성된 배열들을 정의해준다. 예를 들면, 현재 통용되고 있는 알파벳 ‘A’의 점자는 총 6개의 점자에서 좌측 상단에만 튀어올라오도록 되어있다. 그래서 ‘A’는 0b100000로 설정, 알파벳 ‘B’는 좌측 상단, 좌측 중단에 있는 점만 튀어올라오도록 되어있기 때문에 0b110000과 같이 코딩의 헤더 파일에 설정을 해준다. 이 데이터 값을 받기 위해서 74HC595라는 Shift Register(data, letch, clock 3개의 핀으로 8개의 데이터 출력을 제어한다.)를 사용했는데 이는 총 8개의 데이터를 받아올 수 있게 하는 소자로서 점자가 문자 한 개를 구현하기 위해서 필요한 데이터가 6개인 걸 감안했을 때, 매우 효율적인 소자라고 할 수 있다. 구현하고자 하는 디바이스가 10글자이므로 문자 한 개당 1개의 소자로 총 10개의 Shift Register를 이용하면 된다. 그리고나서 SD카드로부터 저장된 txt 파일을 아두이노로 불러와 txt의 문자를 읽어 들인다. 읽어들인 문자를 10개씩 끊어볼 수 있도록 코딩하여 한 번에 10개씩 문자를 받아들일 수 있도록 하였다. 10글자를 읽고나면 프레임의 우측에 있는 버튼을 클릭하여 다음 10글자에 대한 점자 변환을 수행할 수 있도록 하였다.

3.2. 하드웨어 구성
기본적인 원리는 코일에 전류를 흘려주었을 때, 생겨나는 자기장을 이용하는 것이다.
이때 생겨난 자기장의 극과 자석의 극이 서로 밀어내는 힘을 사용해 점자를 띄우고 내린다. 외부 실린더와 내부 실린더로 구성하여 내부 실린더에 얇은 에나멜 선을 감아 코일의 역할을 하도록 한다. 외부 실린더 바닥에는 자석을 두어 내부 실린더의 에나멜 선에 전류를 흘려주었을 때, 내부 실린더가 뜰 수 있도록 한다. 외부 실린더 1개와 내부 실린더 1개가 점자 하나를 이루고, 6개가 모여 한 글자를 표현한다. 총 10글자를 구현 가능하도록 제작하여 10글자씩 읽을 수 있도록 한다. 버튼 등을 이용해 다음 문장으로 넘어갈 수 있도록 한다.
Arduino에 연결된 Shift Register로부터 신호를 받아, 점자를 띄울지 말지의 여부를 결정한다. 코일에 흘려주는 전원은 외부전원 13V 배터리를 사용한다. 이때 배터리의 13V가 코일로 가기 이전에 buffer를 지남으로써, 코일에 전원을 일정하게 공급하여 안정성을 높인다.

55 ICT 시각장애인점자디바이스 (8) 55 ICT 시각장애인점자디바이스 (9) 55 ICT 시각장애인점자디바이스 (10) 55 ICT 시각장애인점자디바이스 (11) 55 ICT 시각장애인점자디바이스 (12)

 

55 ICT 시각장애인점자디바이스 (2)

55 ICT 시각장애인점자디바이스 (3)

55 ICT 시각장애인점자디바이스 (4)

55 ICT 시각장애인점자디바이스 (13)

 

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

55 ICT 시각장애인점자디바이스 (14)

4.2. 전체 제작 과정 정리 

 

 

55 ICT 시각장애인점자디바이스 (15)

 

 

 

[55호]스마트 사물함

55 ICT 스마트사물함 (3)

55 ICT 스마트사물함 (1)

2019 ICT 융합 프로젝트 공모전 입선

스마트 사물함

글 | 국민대학교 이우섭 이다연 유지호 채인석

1. 심사평
칩센 음성 인식 기술을 이용한 여러가지 서비스가 새로이 만들어지고 있는 최근 시점에 맞추어 볼때 재미있는 작품을 본듯 합니다. 음성 인식을 진행할 음원을 등록하는 과정 등에서 현재 개발 작품에 사용된 솔루션의 경우 분명한 제약이 있습니다만, 최근 AWS 및 여타 음성 인식 솔루션을 도입한다면 훨씬 다양한 어플리케이션에 접목이 가능할 것으로 보입니다. 음성 인식과 관련하여 추가적인 연구와 개발을 진행하면 더 좋은 아이디어가 나올수 있으리라는 기대가 됩니다.
뉴티씨 매우 간단한 것이지만, 아주 유용하게 사용될 수 있을 것이라고 생각됩니다. 사실, 어떤 부품이 어디에 있는지 찾는 것도 일이니까요. 종류가 작으면 모르는데, 많아지게 되면 점점 더 어려워지게 되지요. 이 스마트 사물함은 택배, 공구, 부품, 약재 등을 자동으로 찾아서 필요한 수량만큼씩 내려주는 시스템으로 발전할 가능성도 있다고 생각됩니다.
위드로봇 일상에서 아이디어를 얻은 실용성이 높은 작품으로 평가됩니다. 모터 제어 부분을 좀 더 보강하면 더욱 좋은 작품이 될 것 같습니다.
펌테크 키 패드 등의 터치 방식이 아닌 음성인식 방식을 통해 슬라이더 와 서보모터를 구동시키는 등 아이디어가 우수한 작품이라고 생각합니다. 작품의 완성도가 높았으며 학부과정의 학생이 구현하기에 적정한 난이도를 가진 작품이라고 생각합니다.

2. 작품 개요
주제를 선정하는데 있어 2가지를 고려하기로 결정했다.
첫째는, 4차 산업시대에 발맞춰 관련된 주제를 선정할 것이다.
최근 ‘2017년부터 세상을 지배할 4M’ 이라는 기고 글에서 4가지 트렌드를 이야기했다. 글로벌 음성인식 시장은 폭풍 성장하였고, 금년 초 글로벌 시장 조사업체인 트랜드포스에 따르면 전 세계 음성인식 솔루션 시장은 4년 뒤인 2021년까지 159억 8000만 달러로 급성장할 것으로 전망하였다. 지난해 26억 1000만 달러와 비교하면 불과 5년 새에 6배가량 폭풍 성장한 것이다. 연 평균 성장률이 43.6[%]을 웃돌고 있다. 그런데 전 세계가 본격적인 음성인식 시대를 맞았지만 한국 기업들은 주도권 다툼에서 크게 밀리는 것으로 나타났으며 가전제품에 기능은 도입했지만 향후 시장을 주도할 플랫폼이나 생태계 경쟁에서는 이제 겨우 걸음마를 딛는 수준이다. 그 대신 아마존, 구글 등 미국 기업들이 음성인식 시장을 주도하고 있는 양상이다. 실제 작년 초 미국 라스베이거스에서 열린 시계 최대 쇼인 ‘CES 2017’ 에서는 인공지능과 결합한 음성인식 기술을 적용한 가전제품, 자율주행 자동차가 쏟아져 나왔다.

55 ICT 스마트사물함 (2)

둘째는 일상생활에서 실제로 겪었던 불편함에 대해 생각해볼 것이다,
재학 당시 국가근로장학생으로 실습준비실에서 근로를 한 적이 있었다.
실습준비실에는 수없이 많은 저항과 커패시터 등 여러 IC 소자들이 있었는데 학생들이 필요로 하는 소자를 일일이 서랍을 직접 열면서 내용물을 찾아야하는 서랍형 수납함에 불편함을 느꼈습니다. 따라서 음성인식과 결합하여 ‘음성인식 수납함’을 제작한다면 여러 분야에 적용 가능할 것으로 판단하였고, 결과적으로 ICT 융합 프로젝트에 참여하는 계기가 되었습니다.

3. 작품 설명

55 ICT 스마트사물함 (3)

음성인식 수납함이다. 재학 당시 국가근로장학생으로 실습 준비실에서 근로를 한 적이 있었는데 실습준비실에는 수없이 많은 저항과 커패시터 등 여러 IC 소자들이 있다.
학생들이 필요로 하는 소자는 무수히 많았으며 이를 일일이 서랍을 직접 열면서 내용물을 찾아야하는 서랍형 수납함에 불편함을 느꼈고, 따라서 VoiceRecognition V3을 이용하여 음성으로 말하는 원하는 물건이 들어있는 수납함이 열려 위치를 알려주는 것이다. 이번 작품의 핵심 기술인 물품 탐색 기능은 수십 개로 구성된 서랍형 수납함뿐만 아니라 기업의 물류창고 및 도서관 등에서도 활용 될 수 있다. 특히 본 작품에서 사용한 시스템을 응용하여 출력방식을 LED에서 소리로, 입력방식을 음성에서 타이핑 형식으로 변경할 경우 시각·청각 장애인들을 위한 물품탐색까지도 활용 가능하다는 것이 장점이다. 또한, 모터 슬라이더 포텐셔미터를 이용하기 때문에 지정된 위치로 즉각 이동하여 시간지체를 최소화할 수 있다.

3.1. 주요 동작 및 특성 / 전체 시스템 구성
3.1.1. 기획 기술의 개요
제어 순서도

55 ICT 스마트사물함 (4)

기존의 사물함은 직접 목표한 사물함을 찾고 움직여야 하는 번거로움이 있으나 본 작품은 VoiceRecognition V3을 활용하여 음성인식을 하고 이후 내장된 코드에 따라 모터 슬라이더 포텐셔미터 및 ServoMotor가 동작하여 입력한 사물함이 열리게 된다. 따라서 불필요한 움직임을 최소화하여 시간을 절약할 수 있다.

3.1.2. 기획 기술의 목표

55 ICT 스마트사물함 (5)

3.1.3. 작품 구조

1) Arduino Uno : 본 프로젝트에서 핵심 부품 중 하나입니다. 모터 슬라이더 포텐셔미터 및 ServoMotor, VoiceRecognition V3을 코딩을 통해 제어한다.
2) VoiceRecognition V3 : 내장 마이크가 아니라 3.5[mm] mono-channel 마이크로폰을 이용하며, 음성명령 또한 정해진 명령이 아니라 사용자가 직접 음성명령을 등록하는 방식이다. UART 통신으로 아두이노와 연결될 수 있다. 사용자가 직접 음성명령을 등록하는 과정을 Train이라고 하며, 모듈에 Train된 음성 명령을 복사하는 것을 Load 라고 한다. 최대 80개까지 음성명령을 Load 할 수 있으며 그룹화 하여 한 그룹에는 최대 7개의 음성 명령이 사용 가능하다.
3) 모터 슬라이더 포텐셔미터 : 모터 슬라이더 포텐셔미터는 기본적으로 작은 모터와 벨트에 의해 동작되는 슬라이더 포텐셔미터이다. 슬라이더 두 개의 10K 리니어 taper 포텐셔미터를 포함하고 있어 하나는 슬라이더의 위치를 읽기 위한 서보 피드백으로 사용이 가능하고 다른 하나는 제어하고자 하는 타겟에 사용이 가능하다. 또한 금속 슬라이더 탭에 전기적으로 직접 연결된 터치 센스 라인이 있어 슬라이더를 정전식 터치 회로에 인터페이스 할 수 있다.
본 모터 슬라이더는 미리 설정된 위치들로 점프하여 이동하거나 가상 컨트롤러에게서 물리적인 피드백을 얻고자할 때 유용하다. 이외에도 모터에 펄스를 주어 즉각적인 피드백을 주거나 가벼운 경로봇을 위해 리니어 엑추에이터로도 사용이 가능하다.
4) Servo Motor : 모터 슬라이더 포텐셔미터를 이용하여 x축과 y축의 이동을 담당한다면 Servo Motor는 지정된 위치로 이동한 뒤 서랍을 밀어주기 위해 동작한다.
5) L293 Motor Shield : 모터 슬라이더 포텐셔미터 역시 DC모터와 벨트의 조합이기 때문에 양방향 제어를 위해 L293 Motor Shield를 이용하였다. L293 Motor Shield의 내부회로는 Full-Bridge로 구성되어 있다.
6) Transistor C1815 : 모터 슬라이더 포텐셔미터는 DC모터와 가변저항의 결합이다 따라서 원하지 않은 값을 읽어 프로그램이 멈추는 경우가 발생하였다. 따라서 Transistor는 하나의 스위치 역할이 가능하기 때문에 안정적인 구동을 위해 사용하게 되었다.
7) 그 외의 재료로는 만능기판과, LED 발광 다이오드가 있습니다.

3.2. 개발 환경
3.2.1. Hardware(회로도)

55 ICT 스마트사물함 (6)

3.2.2. Software(코딩)

작품을 개발하기에 앞서 가장 주요한 모터 슬라이더 포텐셔미터, Voice Recognition V3 및 ServoMotor를 제어하기 위하여 C언어를 기반으로 한 Arduino Uno를 이용하였습니다.

3.2.3. 음성명령을 등록하는 Train 과정
기본적으로 들어있는 코딩 라이브러리입니다. 키 코드를 이용하여 VoiceRecognition V3에 사용자가 직접 음성 명령을 등록할 수 있습니다. 사용자가 직접 음성 명령을 등록하는 과정을 Train이라고 하며, 모듈에 Train된 음성 명령을 복사하는 것을 ‘Load’ 라고 하며 최대 80개까지 음성명령을 Load 할 수 있습니다. 그룹화하여 한 그룹에는 최대 7개의 음성 명령이 사용 가능하다. 즉, 한 그룹만 존재한다고 하면 최대 7개의 명령만 등록할 수 있습니다.

55 ICT 스마트사물함 (7) 55 ICT 스마트사물함 (8) 55 ICT 스마트사물함 (9) 55 ICT 스마트사물함 (10)

3.2.4. 모터 슬라이더 포텐셔미터 및 Servo Motor 제어를 위한 코딩

#include <VoiceRecognitionV3.h> //앞서 설정한 Train 라이브러리
#include <Servo.h> // 서보모터 사용을 위한 라이브러리
Servo servomotor;
Servo servomotor1;
VR myVR(2,3); // 2:RX 3:TX
uint8_t records[7];
uint8_t buf[64];
#define one 1
#define two 2
#define three 3
#define four 4
#define five 5
#define six 6

int Hold=0;
int S1=A0; // X축 가변저항
int S2=A1; // Y축 가변저항
int EN1=4;
int IN1=5;
int EN2=7;
int IN2=6;
int SW1 = 8;
int SW2 = 9;
int pos = 90;

void setup()
{
pinMode(S1,INPUT);
pinMode(S2,INPUT);
pinMode(EN1,OUTPUT);
pinMode(EN1,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(SW1,OUTPUT);
pinMode(SW2,OUTPUT);
servomotor.attach(10);
servomotor1.attach(11);
myVR.begin(9600);
Serial.begin(115200);
}

void loop()
{
int ret;
ret = myVR.recognize(buf, 50);
if(ret>0){
switch(buf[1]){
case one:
Serial.println(“1″);
Hold=1;
break;

case two:
Serial.println(“2″);
Hold=2;
break;

case three:
Serial.println(“3″);
Hold=3;
break;

case four:
Serial.println(“4″);
Hold=4;
break;

case five:
Serial.println(“5″);
Hold=5;
break;

case six:
Serial.println(“6″);
Hold=6;
break;

default:
Serial.println(“Record function undefined”);
break;
}

}
if(Hold>0){
MotorState(Hold);
Hold=0;
}

}

void MotorState(int State){
int LX,HX,LY,HY;
int MS1=0;
int MS2=0;
int X=0;
int Y=0;
boolean XST=LOW;
boolean YST=LOW;

while(State==1,2,3,4,5,6){
if(State==1){
LX=5;
HX=10;
LY=70;
HY=75;
XST=HIGH;
MS1=1;
break;
}
else if(State==2){
LX=10;
HX=15;
LY=70;
HY=75;
XST=HIGH;
MS2=1;
break;
}
else if(State==3){
LX=95;
HX=100;
LY=70;
HY=75;
XST=HIGH;
MS2=1;
break;
}
else if(State==4){
LX=5;
HX=10;
LY=0;
HY=5;
XST=HIGH;
MS1=1;
break;
}
else if(State==5){
LX=10;
HX=15;
LY=0;
HY=5;
XST=HIGH;
MS2=1;
break;
}
else if(State==6){
LX=95;
HX=100;
LY=0;
HY=5;
XST=HIGH;
MS2=1;
break;
}
}

while(XST==HIGH){
X=map(analogRead(S1),0,1023,0,115);
digitalWrite(SW1,LOW);
digitalWrite(SW2,HIGH);
if((LX<X)&&(X<HX)){
digitalWrite(EN1,LOW);
analogWrite(IN1,0);
XST=LOW;
YST=HIGH;
break;
}
else if(X>=HX){
digitalWrite(EN1,HIGH);
analogWrite(IN1,250);
}
else if(X<=LX){
digitalWrite(EN1,LOW);
analogWrite(IN1,250);
}
}

while(YST==HIGH){
Y=map(analogRead(S2),0,1023,0,116);
digitalWrite(SW1,HIGH);
digitalWrite(SW2,LOW);
if((LY<Y)&&(Y<HY)){
digitalWrite(EN2,LOW);
analogWrite(IN2,0);
YST=LOW;
servomotor.write(-(pos*MS1)+90);
servomotor1.write(pos*MS2+90);
break;
}
else if(Y>=HY){
digitalWrite(EN2,LOW);
analogWrite(IN2,250);
}
else if(Y<=LY){
digitalWrite(EN2,HIGH);
analogWrite(IN2,250);
}

}
delay(600);
servomotor.write(90);
servomotor1.write(90);
MS1,MS2=0;

return;
}

모터 슬라이더 포텐셔미터는 금속 슬라이더 탭에 전기적으로 직접 연결된 터치 센트 라인이 있어 슬라이더를 정전식 터치 회로에 인터페이스 할 수 있다.
본 모터 슬라이더는 미리 설정된 위치들로 점프하여 이동하거나 가상 컨트롤러에게서 물리적인 피드백을 얻고자할 때 유용하다.
위의 코딩은 모터 슬라이더 포텐셔미터의 위치를 설정해주는 것이다.

4. 단계별 제작과정
서랍장에 모터 슬라이드 포텐셔미터를 뒤쪽에 설치함 ▶ 글루건을 이용하여 고정 ▶ 필요한 전선 연결 ▶ 모터 슬라이드 포텐셔미터 및 서보모터 연결 ▶ 아두이노 및 음성 쉴드 부착 ▶ 아두이노및 음성 쉴드 수납장에 부착 ▶ 브래드보드에 서보모터와 아두이노 와이어 연결 및 납땜. ▶ 수납장에 외함 및 뚜껑 부착

4.1. 서보모터 및 모터 슬라이드 포텐셔미터 동작 확인

55 ICT 스마트사물함 (1) 55 ICT 스마트사물함 (2)

이번 작품의 핵심은 바로 모터 슬라이더 포텐셔미터와 서보모터입니다. 가변저항과 DC모터의 결합으로 이루어진 모터 슬라이더 포텐셔미터의 경우 x축과 y축 이동을 담당하며 서보모터의 경우에는 서랍이 나올 수 있도록 하는 역할입니다. 이를 확인해보기 위해서 DC모터 방향 제어하는 L293 Motor Shield를 이용하여 정상 동작을 확인하는 과정을 거쳤습니다.

4.2. 조립과정 : 모터 슬라이더 포텐셔미터 결합

55 ICT 스마트사물함 (3)

서랍과 모터 슬라이더 포텐셔미터를 결합하는 과정입니다. 왼쪽 상단부터 1번이며 총 6번까지 존재하며 지정된 위치에 따라 x축과 y축으로 이동하는 역할을 담당한다.

4.3. 조립과정 : 서보모터 결합하기

55 ICT 스마트사물함 (4)

모터 슬라이더 포텐셔미터를 이용하여 원하는 위치로 이동했다면 서보모터의 경우에는 지정된 위치 도달시 서랍을 밀어주는 역할을 합니다. 또한 서보모터로 적절히 밀어줄만한 막대가 필요했지만 원하는 부품을 구할 수 없었기 때문에 직접 Fusion360을 이용하여 설계 및 3D 프린터를 이용하여 출력한다.

4.4. 서랍 네이밍

55 ICT 스마트사물함 (5)

의로 구분하기 위해 서랍에 번호를 부여함으로써 구분하게 쉽게 하는 과정이다. 녹음 과정 당시 1번, 2번 등으로 설정했지만 원한다면 다른 방법으로 설정해도 무관하다.

4.5. 외관 꾸미기

55 ICT 스마트사물함 (6)

동작을 위해 사용한 Arduino와 각종 부품을 가리기 위해 외관을 제작해서 붙이는 과정입니다. 저희 조 이름인 ‘1등은 우리꺼조‘를 적은 모습이다.

4.6. 최종 시연

55 ICT 스마트사물함 (3)

완성된 작품으로 몇 가지 테스트를 진행했습니다. 기획 당시 세운 목표는 다음과 같습니다.

55 ICT 스마트사물함 (12)

이에 대한 테스트 결과 우선 인식을 한다면 매우 빠른 속도로 동작한다는 것을 확인할 수 있었으며 주위 소음 여부에 따른 인식률에 대해 실험을 진행했다.

55 ICT 스마트사물함 (13)

위 실험은 1세트당 10번씩 진행 했으며 주위에 블루투스 스피커를 이용하여 노래를 틀거나 학교 앞 카페에서 측정하였습니다. 위 실험 결과를 바탕으로 어느 정도 시끄럽더라도 인식한다는 것을 알 수 있다.

5. 향후 개선방안
5.1. 시각적인 효과 추가
본 작품개발 초기 단계에 서랍이 열리면 그림과 같이 LED가 들어오게 함으로써 서랍의 개수가 늘어나더라도 어느 위치의 서랍이 열렸는지 정확히 알 수 있게 하려고 했다. 하지만 LED에 전원을 어떤식으로 공급할지, 선 정리는 어떻게 할지에 대한 문제에 직면하여 이번 작품에서는 제외하기로 했습니다. 따라서 향후 본 문제를 팀원과 회의를 통해 개선할 예정이다.

55 ICT 스마트사물함 (7)

5.1.1. 시·청각 장애인을 위한 시스템

본 작품에 도입된 시스템을 응용하여 출력방식을 소리로, 입력방식을 음성에서 타이핑 형식으로 변경할 경우 시·청각 장애인들을 위한 물품탐색도 가능하다고 생각하였습니다. 따라서 추후 관련된 작품 역시 응용해서 제작할 예정이다.

5.2. 참고문헌
음성인식 기술 어디까지 왔나? : https://m.post.naver.com/viewer/postView.nhn?volumeNo=16706161&memberNo=39046504&vType=VERTICAL

 

 

[55호]2019 한국전자제조산업전

55 hot 전자제조산업전 (2)

 

55 국제전자제조산업전

ELECTRONICS MANUFACTURING KOREA 2019

2019 한국전자제조산업전

글 | 심혜린 기자 linda@ntrex.co.kr

 

올해 20주년을 맞이한 한국전자제조산업전(이하 EMK 2019)과 한국자동차전장제조산업전(이하 AMK 2019)이 5월 15일부터 17일까지 코엑스에서 세계 최대 전시 주최사인 Reed Exhibition와 국내 전문 주최사인 K.Fairs(주)의 합작법인인 리드케이훼어스 유한회사의 주최, 산업통상자원부 후원, 한화정밀기계 협찬으로 진행되었다. EMK 2019는 총 다섯 가지의 세부 주제 SMT/PCB & NEPCON Korea, 국제 인쇄전자 및 전자재료 산업전, 국제 기능성 필름 산업전, 포토닉스 & LED 서울, 협동 로봇 특별관 등으로 이루어졌다.

55 hot 전자제조산업전 (1) 55 hot 전자제조산업전 (2)

먼저 (주)테솔에서는 다양한 통신 모듈과 인터페이스 보드 등의 제품군을 선보였다. 먼저 (주)테솔의 Xbee RF 통신 모듈인 XBee ZB TH은 효율적인 비용으로 에너지, 태양광, 자동화 및 무선제어 애플리케이션 등을 효율적으로 제작할 수 있도록 도와주는 모듈로, 빠른 속도의 인터페이스, RF 성능과 뛰어난 보안성을 자랑해 제품 개발에 따른 비용 및 시간을 획기적으로 줄일 수 있다. 또한 XBee Wi-Fi는 손쉽게 국내에서 사용되는 AP 들과 연결이 가능하며 기존 Xbee 모듈과 호환되며, 각 디바이스 측에 모듈을 설치해 스마트폰이나 PC에서 간편하게 모니터링할 수 있도록 구성이 가능하다. USB 형태의 Xstick도 선보였는데, 이 제품은 USB로 간단하게 연결을 할 수 있어 사용자에게 친숙하며 휴대용으로 사용하기에 좋아서 어디서나 쉽게 무선 네트워크 구성이 가능하다. 노트북과 PC에서 즉각적으로 무선 연결이 되어 네트워크 구성, 진단, 모니터링을 현장에서 손쉽게 수행할 수 있다. 별도의 배터리나 전원 어댑터도 필요하지 않다. Xbee 구성을 기반으로 한 키트 제품도 볼 수 있었는데, XBee3 ZigBee Mesh Kit는 지그비 기반 Mesh 네트워킹을 위한 XBee3 RF 모듈을 사용하는 방법을 배울 수 있는 좋은 기회를 제공한다. Mesh 네트워킹은 데이터를 라우팅할 수 있는 적합한 방법으로 SMT 타입의 모듈이 3개가 제공되어 효과적으로 Mesh 네트워크를 구성하 수 있으며 3개의 인터페이스 보드와 안테나까지 포함으로 구성되어 있어 학습하기에 적합하다.

55 hot 전자제조산업전 (3)

(주)리텍에프이에스는 미세한 Semi Dry Fog를 이용한 옥외나 대공간을 냉방하는 시스템은 쿨링포그와 공장, 각종 작업 현장에서 사용하는 산업공조가습 시스템 아미키스트를 시공 및 설치하는 전문 기업이다. 먼저 산업용 가습기인 아키미스트(Akimist E)는 세계 특허의 AKUet 노즐로 양질의 안개를 4M 이상 비상시켜 효과적이며 박테리아를 발생시키지 않는 초소형 탱크를 채용했다. 젖지 않는 연무의 이케우치 가습 기술로 만들어진 이 제품은 외형이 연무가 아닌 연기와 같다. 대상물에 부딪혀도 튕기기 때문에 대상물이 젖지 않으며, Dry Fog는 상당히 작은 연무여서 대상물에 부딪혀도 물방울이 파열되지 않고 대상물을 적시지 않는다. 또한 타이머나 습도자동제어기로 자동으로 운전하며, 소형으로 저가의 수질정화기(AKIMiz)을 병용하면 물에 포함되어 있는 스케일 성분을 제거하여 백화현상의 발생을 억제시켜 노즐의 분무이상을 방지할 수 있다. 시스템의 구성은 기본적으로 노즐 4개가 부착되어 있어, 필요에 따라 탈부착이 가능하다. AE-UT 아답타는 노즐과 함께 부착하여 분무 각도를 자유자재로 조절할 수 있다. On/Off 타입이 콘트롤러로 센서는 발판 센서 방식 및 근접센서, 레이저 방식 센서 등을 사용해 원하는 사양으로 선택이 가능하다. 이 제품을 사용하면, 큰 작업 공간에서도 습도를 일정하게 유지 및 제어할 수 있으며 정전기에 의한 트러블을 해소하고 제품의 품질을 향상시키고 불량품과 화재 발생율 감소에 효과적이다. 또한 약 2도의 냉방 효과로 냉방 부담을 크게 줄여 에너지 절약 효과를 발휘한다. 이 제품은 인쇄, 전자, 플라스틱 등 각종 분야에서 다양한 공정에 맞춘 최적의 습도 환경을 갖출 수 있다.

55 hot 전자제조산업전 (4)

(주)와이제이링크는 SMT 자동화 공정의 보드 핸들링 기기, 레이저 마킹 장비, 라우터를 제조 및 수출하는 글로벌 기업으로 국내 SMT 주변 기기 전문 제조사로써 제품 품질과 대응력을 인정받은 바 있다. 스마트 팩토리 솔루션 산업용 증강현실(AR) 장비를 선보여 관람객들의 이목을 끌었다. YJ 화상지원과 YJ 스마트뷰 2가지 제품을 볼 수 있었는데, YJ 화상지원은 AR 글래스를 통해서 현장 근로자가 보는 시점을 직관적으로 전문가와 공유하고 전문가가 화면에서 확인해 정확한 피드백을 줄 수 있는 솔루션이다. 현장에 가지 않아도 손쉽게 문제를 해결해 시간을 절약할 수 있으며, 인력비나 기타 운영비를 크게 절감시킬 수 있는 장점이 있다. YJ 스마트뷰는 현장 근로자가 보유한 태블릿이나 스마트폰 등에서 증강 현실 기반의 기술로 실시간 장비 상태를 확인할 수 있어 장비를 사전 점검하는데 효과적이다. 앱에서 장비 진단 기능을 실행해 모바일 기기의 카메라를 장비에 있는 바코드를 비추면 장비 상태를 확인하며, 문제가 확인되면 해결법 또한 알려준다.

55 hot 전자제조산업전 (5)

헬러코리아(주)는 국내 PCB 제조 과정 중에서 마지막 공정에 해당하는 리플로어 오븐을 전문으로 제조하는 기업으로 전시회에서 셀렉티브 솔더링 공정을 위한 토탈 솔루션 제품을 선보였다. 고속 셀렉티브 솔더링 시스템 Maxi Selective-HS은 20초 미만의 최단 사이클 타임을 보장하며, 단일 제품 생산 시스템으로 대량 생산에 가장 적합하다. 제품 종류에 특화된 다중 노즐 치구를 사용한 고정도 다중 웨이브 솔더링 프로세스로 질소 공급 방식의 다중 웨이브 고품질의 솔더링과 최소한의 유지 보수를 보장한다.

55 hot 전자제조산업전 (6)

PARMI는 SMT 과정에서 스크린 프린터의 솔더 품질을 판정하는 SPI 장비 SIGMA X, 마운터 이후에 실장 상태를 검사하는 3D AOI 장비인 엑시드(Xceed)를 선보여 눈길을 끌었다. 엑시드(Xceeed)는 일반적인 카메라 기술이 아닌 듀얼 레이저 기술을 활용한 고속 CMOS 카메라가 갖춰져 있어 특정 부위만 촬영하는 카메라 검사 방식과 달리 지그재그 형태로 스캔해 전체를 정확하게 확인할 수 있다는 점이 장점이다. 스캔된 기판은 3D 이미지로 구현이 되어 화면에 띄어지며 카메라가 닿지 않는 곳까지 감지된다. 실제로 스캔된 이미지는 고급 신호 처리로 노이즈가 적고 선명해 보다 정확한 3D 이미지를 얻을 수 있다. PARMI가 독자적으로 개발한 인터페이스는 간단하게 구성되어 있어 사용자가 이용하기에 편리하다. 또한 1D, 2D, QR 레이저 마킹 및 인쇄 바코드까지 인식이 되어 더욱 유용하다.

55 hot 전자제조산업전 (1)

 

55 hot 전자제조산업전 (7)

(주)한화정밀기계는 국내 최초로 칩마운터를 개발하였으며 SMT 마운터, 반도체 설비, 수삽자동화 설비, 협동로봇, 산업용 설비 및 소프트웨어 솔루션을 제공하는 스마트 팩토리 솔루션 전문 제조 기업이다. 전시된 제품 중에 HM520(커팅-엣시 모듈러 마운터)는 모듈러 헤드와 다양한 생산 모드 적용이 가능해 유연한 생산라인을 구축할 수 있는 스마트팩토리 솔루션으로 소프트웨어를 통해 무인화, 무정지, 무결점의 생산을 구현시킨다. 로터리 헤드를 장착해 실제 현장에서 사용해보면 일반 피아노헤드보다 실 생산성이 높다. 소형 칩에도 대응이 가능해 0201부터 칩을 장착할 수 있으며, 헤드를 경량화해서 기존 제품보다 CPH를 높였다. 또한 스테이지 카메라가 작아지면서 이동경로가 축소돼 효율성이 크게 향상되었으며, 20 Spindle을 한 번에 빠르게 인식할 수 있다. 고해상도 카메라로 소형 LED 칩뿐만 아니라 모바일 PCB의 미소칩 (0402, 0603)도 실 생산성의 감소 없이 고속, 고정도 실장이 가능하다. 이 제품의 강점인 소프트웨어는 오프라인 프로그래밍이 가능해 CAD 인터페이스를 최적화시킬 수 있으며 교대 근무, 휴식 시간 및 피더, 노즐, 백업핀 교체 시간 등을 고려하여 여러 생산 모델의 생산 계획을 수립한다. 또한 내장된 카메라를 통해서 신규 부품 정보를 빠르게 등록이 가능하며, 부품 정보의 변동을 통합 관리 할 수 있다. 부품 데이터베이스 내 등록된 부품 정보를 쉽게 검색, 수정, 복제, 삭제할 수 있다. 각 부품 릴의 바코드를 발행하고 등록하는 기능이 내장되어 있어 사용자는 손쉽게 바코드 생성 및 관리가 가능하다는 점도 장점이다. HM520 제품 이외에도 스마트팩토리에 효율적인 DECAN 시리즈와 SM Plus 시리즈 등을 전시했다.

55 hot 전자제조산업전 (8)

(주)펨트론은 3차원 정밀 측정 및 Vision 원천기술을 바탕으로 SMT, 자동차 전장, 2차 전지, 반도체 등 다양한 분야에 사용되는 납도포 검사장비(3D SPI), 3차원 장착 검사 장비(3D AOI, MOI), Wafer Bump 3D 검사 장비, Wire Bonding 3D 검사 장비, 2차 전지 리드탭 공정 및 검사 장비를 개발 및 공급하고 있는 기업이다. 이번 전시 부스에서 주요 검사 장비로 컬러 3D 인라인 SPI 장비인 ‘세턴’, 3D AOI 장비 ‘아데나’ 등을 선보였다. 먼저 ‘세턴’은 3D 조명의 듀얼 프로젝션을 적용해 그림자 효과를 최소화 했으며, 카메라 리니어 모터를 달아 정밀도를 크게 높였다. 또한 정밀 컬러 3D 알고리즘에 대한 특허기술을 바탕으로 40마이크로미터 미만의 솔더도 검출이 가능하고, 숄더를 360도 회전해 3차원 입체 형상으로도 구현이 가능하다.

55 hot 전자제조산업전 (9)

아데나는 검증된 무아레(Moire) 위상 측정법이 적용된 AOI 장비로 8방향에서 동시에 조명을 비춰 촬영하는 ‘8 way projection’ 기반의 3D 기술을 적용하고 2D와 3D 알고리즘을 동시에 적용해 검사를 진행하는 제품으로 최대 40mm의 높은 부품 3D 측정이 가능해 그림자가 발생하지 않아 밀집도가 높은 PCB 보드 검사에 더욱 효과적이다.

55 hot 전자제조산업전 (2)

YAMAHA의 한국 공식 대리점 (주)엔와이에스는 YAMAHA의 제품을 모델별로 다양하게 선보였다. YAMAHA의 초고속 칩 마운터 ‘YSM40R’은 혁신적인 생산성을 위해 개발된 초고속 모듈러 마운터이다. 하나의 플랫폼에서 다양한 기능을 제공하는 장비로 좁은 공간에서 최대로 공간을 활용할 수 있다는 점이 특장점이다. RS 헤드를 기존의 로터리 헤드보다 절반으로 픽업할 수 있게 업계 최초로 혁신적으로 개발해 새로운 모델 알고리즘을 적용시켜 더 빠르게 서보 모터 제어가 가능하며, 이전 HS 헤드에 비해 무게가 50% 이상 가벼워졌다. 또한 고성능 진공 펌프를 통해 강력한 흡입력으로 안정적인 성능을 구현한다. 0201 크기의 소형 칩 부품 처리가 가능해져 고품질의 마운팅을 처리할 수 있으며, 섬세한 작업도 가능하기 때문에 칩 밀집도가 높은 제품에 대응이 잘 된다. RS 헤드는 샤프트 끝부분에 필터가 장착되어 있어 헤드 내부를 깨끗하게 유지할 수 있으며, Blow Station의 표준 제공으로 노즐 샤프트가 자동으로 청소되어 유지 보수에 용이하다.

이번 전시회에서는 관람객들을 위해 20주년을 기념하여 스마트 팩토리 반응형 SMT 데모 라인 시연도 선보였으며, 재료연구소의 전기·전자용 첨단 기술 설명회, KAMP 춘계 심포지엄, 2019 국제 미래 자동차 포럼과 20주년 환영 리셉션, 20주년 특별 어워즈 등 다양한 행사가 준비되었다. 다만 국내 기업보다는 해외 기업 부스가 더 많이 보여 아쉬웠는데, 내년에는 우수한 기술력을 갖춘 국내 기업을 좀 더 많이 둘러볼 수 있기를 기대하며 이번 관람기를 마친다.

 

 

 

 

[55호]스마트 킁킁본

55 ICT 스마트킁킁본 (1)

55 ICT 스마트킁킁본 (1)

2019 ICT 융합 프로젝트 공모전 우수상

스마트 킁킁본

글 | 국민대학교 이우섭 이다연 유지호 채인석

1. 심사평
칩센 매우 간단한, 하지만 효율적이고 이해가 쉬운 작품이다. 보고서에 언급되었듯이 반려동물을 위한 시장은 매년 크게 성장하고 있으며, 이러한 시장성을 고려했을때도 가능성이 있어 보이는 작품이다. 실제 시연과 동작의 모습을 동영상으로 확인이 가능했다면 더 좋았을 것 같은 아쉬움이 들지만, 실용성과 창의성이 포함된 아이디어 만으로도 충분히 높은 평가를 줄수 있을 것으로 보인다.
뉴티씨 매우 재미있고, 좋은 아이템 같습니다. 요즘 반려견들에 대한 관심이 높은 지금 멀리 있을 때에 핸드폰으로 보면서, 집에서라도 이 장치로 반려견을 살피고 먹이도 주고싶을 것입니다. 기존에 카메라로 보고, 개와 마이크와 스피커로 대화하고, 먹이도 주고, 물도 주고 할 수 있는 장치들은 있었는데, 제자리에서 움직이지 않는 형태로 제공되었습니다. 하지만, 판매량이 대량으로 늘어나지 못한 아쉬움이 있는데, 이는 여러가지 원인이 있겠지만, 무엇보다도 높이 형성된 가격때문이라고 할 수 있습니다. 실제로, 금형 제작과 고사양 스펙으로 높은 가격을 형성하게 되었지만, 필요성과 실용성에 대해서는 항상 요구되어 왔던 것도 사실입니다. 여기에 모터 등으로 움직이는 부분도 붙어 있으므로, 가격에 좀 더 고민해 보아야 합니다. 좀 더 이런 부분에 대한 고민을 더 해서, 좋은 제품으로 시중에 내놓을수도 있게 되기를 바래봅니다.
위드로봇 아이디어가 뛰어난 작품입니다. 소프트웨어 완성도를 더 끌어 올리면 더욱 좋은 작품이 될 것 같습니다.
펌테크 아이디어와 실용성, 상업성을 두루 갖춘 작품이라고 생각합니다. 국내 반려견 인구가 1000만명 시대인 점을 감안한다면 이러한 작품은 상업적으로 큰 가치를 가질 수 있는 작품이라고 생각을 합니다. 아쉬운 점은 제출된 문서상에서는 스마트폰과 연동되는 일부 내용만 확인되었을 뿐 구동되는 동작 영상을 확인할 수 없었습니다. 이러한 점을 감안한다면 최종 완성이 되지는 않은 것으로 판단됩니다.

2. 작품 개요
킁킁본이란 반려견의 특성인 노즈워크(Nose-work, 반려견이 코로 냄새를 맡으며 하는 모든 활동)를 본 딴 의성어 ‘킁킁’과 ‘뼈다귀’(Bone)가 합쳐진 말이다. 이 작품을 통해 반려견의 상태 확인 및 케어, 어플리케이션 연동, 분리불안 및 우울증 예방, 원격 사료 지급을 확인할 수 있다.

2.1. 제안 배경
2.1.1. 사회적 배경
· 1인 가구 및 맞벌이 가정의 증가
· 바쁜 사회 속 반려견에 대한 관심 결여

2.1.2. 문제
· 반려견의 분리 불안 및 우울증 증가
· 반려인 부재 시 반려견에 대한 케어 불가능

2.1.3. 목적
· 상호 통신(양방향 통화)을 통한 반려견의 상태 확인 및 케어
· 반려견에게 끊임없는 관심사 제공으로 분리 불안 및 우울증 예방
· 자동 / 사동 수료 지급

2.2. 시장 분석
2.2.1. 애견용품 시장의 높은 성장률
농협경제연구소가 발표한 보고서에 따르면 국내 반려동물 용품 시장은 사회구조적 변화와 반려동물에 대한 의식 발전에 기인하여 연평균 25%의 속도로 급성장하고 있다.

2.2.2. 디자인, 마케팅 위주의 애견 시장
애견용품 시장의 규모는 계속해서 커져만 가고 있지만 대부분의 애견 용품들의 기능은 비슷한 수준이며 디자인, 마케팅 측면에서만 경쟁을 하고 있다.

2.2.3. 반려견에 대한 사회적 의식 발전
반려동물을 단순히 애완용이 아닌, 가족 구성원으로서 대하는 사회적 인식이 많아짐에 따라 애견용품에 대한 씀씀이도 커져가고 있다.

3. 작품설명
3.1. 주요 동작 및 특징

55 ICT 스마트킁킁본 (1)
마이크로프로세서가 내장된 뼈다귀 모양 애견 장난감

3.1.1. 구성
마이크로프로세서(ATmega128), DC모터, 서보모터, 카메라, 스피커, 마이크, 초음파 센서, 블루투스 모듈, 사료통 등

3.1.2. 제품 소개
· 어플리케이션 연동 제어 : DC모터 제어(전진, 후진, 좌회전, 우회전), 서보모터 제어(사료 수동 / 자동 지급)
· 내장 카메라, 스피커 및 마이크 활용 : 반려견, 집 내부 영상 실시간 확인, 양방향 음성 통화, 동영상, 사진 촬영 기능
· 초음파 센서 : 자동 주행 모드(장애물을 인식하여 20cm 전방에 장애물이 있을 시 이를 회피하여 주행. 시간 설정 가능)
· 반려견에게 친숙한 뼈다귀 모양의 디자인

3.1.3. 경쟁력
· 반려견의 특성을 이용한 끊임없는 관심사 제공 : 움직이는 사물 및 청각/후각적 자극에 예민한 반려견의 특성을 활용, 모터 제어를 통한 자유로운 움직임, 사료통의 개폐구 조절을 통한 후각적 자극, 주인의 목소리로 소통 및 관심 유도, 불리 불안 해소
· 원격 사료 지급 : 사용자가 지정한 시간에 사료를 지급하는 자동모드, 임의로 사료를 지급하는 수동모드
· 4차 산업혁명 시대에 발맞춘 어플리케이션 연동 : 반려인의 위치에 구애받지 않고 원격으로 반려견의 상태 확인 및 케어 가능
· 시장 경쟁력 : 디자인, 마케팅 측면에만 의존하던 애견용품 시장에서 차별화 된 스마트 기술로 혁신을 주도
· 디자인 : 반려견에게 친숙한 뼈다귀 모양의 디자인

3.2. 전체 시스템 구성
3.2.1. 어플리케이션 연동 제어
‘스마트 킁킁본’의 모든 동작은 어플리케이션 연동을 기본으로 한다. 제어에 있어 두 종류의 어플리케이션을 동시에 사용하는데, 카메라 및 스피커 제어용 APPⅠ, ATmega128 제어용 앱인벤터 APPⅡ로 나뉜다.

55 ICT 스마트킁킁본 (2)

① 실시간 영상 : 카메라로 촬영된 영상을 어플리케이션에서 실시간으로 확인할 수 있다.
② 전체화면 : 스위치가 감춰지는 전체화면 모드로 전환한다.
③ 음성 전송(통화) : 스마트 폰에 음성을 입력해 스피커로 출력한다.
④ 볼륨 : 마이크에 입력되는 음성이 어플리케이션으로 출력되는 볼륨
⑤ 사료통 개폐조절 : 서보모터를 작동시켜 사료통의 개폐여부를 조작한다.

55 ICT 스마트킁킁본 (2)

① 블루투스 연결 : 블루투스 모듈을 연동시켜 ATmega128과 스마트 폰을 연결한다.
② 방향키(상하좌우) : DC모터를 작동시켜 ‘스마트 킁킁본’을 이동시킨다.
③ 정지 : 작동중인 DC모터를 중지시켜 ‘스마트 킁킁본’을 정지시킨다.
④ 자동주행모드 : 초음파 센서를 사용하여 전방 20cm에 장애물이 있을 경우 이를 회피하여 주행하는 ‘자동주행모드’를 작동한다.

3.2.2. 내장 카메라 활용

55 ICT 스마트킁킁본 (3)

3.2.3. DC모터 작동

55 ICT 스마트킁킁본 (4)

3.2.4. 서보모터 작동

55 ICT 스마트킁킁본 (3)

3.2.5. 양방향 통화

55 ICT 스마트킁킁본 (5)

3.3. 개발 환경
3.3.1. 사용 시스템
① 마이크로프로세서(ATmega128) : C를 사용한 코딩
② 앱인벤터 : Scratch를 사용한 코딩

3.3.2. 사용 부품
① ATmega128 [JMOD-128-1] ② DC모터 [RC0004] ③ 배터리 [티웨이 USB식 충전용 건전지] ⑤ 카메라, 스피커 서보모터 및 마이크 [MJSXJ01CM] ⑥ 초음파 센서 [HC-SR04] ⑦ 블루투스 모듈 [HC-06] ⑧ 사료통
⑨ 모터 드라이버 [SZH-EK001]

4. 단계별 제작 과정
4.1. 캡스톤 디자인 연계 제작 과정
①문제인식 – 바쁜 사회 속 반려견에 대한 관심 결여, 1인 가구 및 맞벌이 가정 증가로 인한 반려견의 분리불안+우울증 발생
② 반려견의 분리불안+우울증을 예방할 수 있을만한 관심거리를 제공함과 동시에 반려인이 실시간으로 반려견을 확인/케어 할 수 있도록 설계하는 것을 목표로 설정
③ 반려견의 관심거리 연구를 위해 실제 강아지 관찰
④ 움직이는 물체, 후각+청각적 자극에 호기심을 많이 느낌을 확인
⑤ 뼈다귀모양의 본체에 모터를 연동하여 원격제어 및 통신이 가능한 스마트 킁킁본 구상
⑥ 아트메가128로 카메라를 구현하기에 기술적인 한계
⑦ 어플리케이션 연동이 가능한 카메라[MJSXJ01CM]를 구입하여 분해 및 연구 후 장착
⑧ 원격 제어를 목표로 하였지만 통신에 있어서 제한된 환경에 한계
⑨ 블루투스 및 앱 인벤터를 통해 시제품 개발 성공
⑩ 제한된 환경에서 배터리를 계속하여 소모하기에 어려움을 느낌
⑪ 티웨이사에서 출시한 충전형 배터리 구입
⑫ 최종 결과로 ATmega128이 내장되어 있는 뼈다귀 모양 스마트 애견 장난감 ‘스마트 킁킁본‘ 제작.

4.2. 소스코드(ATmega128)

#include <avr/io.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#define Trigger_1A PORTC|=0×01 //초음파 트리거
#define Trigger_0A PORTC&=~0×01//초음파 트리거
#define Echo (PINC&0×04) //초음파 에코

volatile unsigned char data;
volatile int range;
volatile unsigned char sec=0,min=0;//날짜
volatile int flag=0;
void getEcho(void);
void pulse(void);
void control(void);
void getEcho(void)
{
while(!Echo); // high가 될때까지 대기 //
TCNT3=0×00;
TCCR3B=0×02; // 카운터 시작, 8분주 = 0.5us //
while(Echo); // low가 될때까지 대기 //
TCCR3B=0×08; // 카운터 정지 //
range=TCNT3/116; // Cm로 변경 //
}
void pulse(void)
{
Trigger_1A; _delay_us(10); Trigger_0A; // 10uS 이거 줘야지 신호시작
getEcho();
if(range< 50) { PORTB = 0X01;}
else {PORTB= 0X05;}
}
void control (void)
{
data=UDR0; // udr-> data save or transmit
if(data==’F')
{
PORTB=0×05;
flag=0;
}
if(data==’S')
{
PORTB=0×00;
flag=0;
}
if(data==’L')
{
PORTB=0×01;
flag=0;
}
if(data==’R')
{
PORTB=0×04;
flag=0;
}
if(data==’B')
{
PORTB=0x0A;
flag=0;
}
if(data==’A')
{
flag=1;
}
}
ISR(USART0_RX_vect)
{
control();
}
ISR(TIMER1_OVF_vect) // uart
{
cli();
TCNT1H = 0xC2;
TCNT1L = 0xF6;
UCSR0C = (0<<UPM01)|(1<<UPM00)|(1<<UCSZ01)|(1<<UCSZ00); // 패리티 01로 바꿈
UCSR0B = (1<<RXEN0)|(0<<TXEN0)|(1<<RXCIE0);
UBRR0H = 0X00;
UBRR0L = 0X67;
PORTA^= 0X01;
if(flag==1){
sec++;
if(sec==60){ sec=0; min++;
if(min==60) min =0;
}
if(min <1)
{pulse();}
else PORTB =0X00;
}
else min=sec=0;
sei();
}
int main(void)
{
cli();
DDRB = 0xff;
DDRE = 0X02;
DDRC = 0×01; // PC0 ouput Trigger, PC1 input Echo
DDRD = 0XFF;
DDRA = 0XFF;
TCCR3A=0×00; TCCR3B=0×08; // CTC mode
TIMSK=0×04;
TCCR1A=0×00;
TCCR1B=0×05;//prescale 1024
TCNT1H=0xFF;//initialize
TCNT1L=0xC0;
sei();
do
{
}while(1);
}


4.3. Scratch(앱인벤터)

55 ICT 스마트킁킁본 (4)
4.4. 회로도(ATmega128)

55 ICT 스마트킁킁본 (5)
4.5. 참고문헌
· ‘AVR-ATmega128 마이크로컨트롤러 프로그래밍과 인터페이싱, ITC출판사’
· ‘마이크로컨트롤러 – 따라하면서 배우는, ATmega2560으로 프로그래밍하기, 한빛아카데미’

 

 

 

[55호]국제전자회로 및 실장산업전

55hot 국제전자회로전 (2)

55 국제전자회로전

Int’l Electronic Circuits add Packaging Show

국제전자회로 및 실장산업전

글 | 심혜린 기자 linda@ntrex.co.kr

전자회로기판은 일반 가전제품에서부터 컴퓨터, 스마트폰, 스마트카, 사물인터넷 등에 사용되어 일상생활에서 뗄 수 없는 중요한 부품이다. 올해 16회째를 맞이하는 국내 최대 전자회로·실장 전문 국제 전시회인 2019 국제전자회로 및 실장산업전 (KPCA show)이 4월 24일부터 26일까지 사흘간 경기도 고양 킨텍스에서 개최되었다. 국내 전자회로기판(PCB) 산업의 대표 전시회로 기판 제조업체와 원자재, 설비, 약품 업체 등이 한자리에 모여 최신 정보를 교류하고 국내외 신규 시장을 개척하는 기회를 얻을 수 있었다.

55hot 국제전자회로전 (1)

주식회사 알파글로벌은 2011년 설립되어 전기, 전자, 반도체, 통신, 우주항공, 철도, 의료 및 국방 기기 장착용 PCB 모듈 제조를 위한 BGA, SMT & PCB 조립 장비와 금속부품의 가공 및 생산 장비를 공급하는 업체로 다양한 제품을 선보였다. 친환경 PCB, PCBA, SMT & Package 수 세정 장비인 PBT-800P는 PCB를 세정-헹굼-건조의 프로세스로 자동 세척기능을 갖추고 있으며 640x560mm의 넓은 세척 공간을 자랑한다. 1회에 많은 세척이 가능한 1~3층 바스켓이 있으며, 정밀한 수 세척을 위해 바스켓을 전후로 이동시킬 수 있다. 또한 터치스크린 운영으로 사용자 친화적인 인터페이스가 돋보인다.

55hot 국제전자회로전 (1)

PCB, PCBA, SMT & LED 잉크젯 마킹 장비 APC-IJET 500 Series는 1D & 2D 잉크젯을 마킹할 수 있으며 경화 전에 손쉽게 마킹을 수정할 수 있다. 롯트 번호, 생산자 정보, 생산 일자 등 1D 바코드 및 2D QR 코드 마킹 장비, 다양한 분야에 적용이 가능해 저렴한 비용으로 생산성의 극대화를 실현할 수 있다.

55hot 국제전자회로전 (2)

슈말츠는 진공을 이용한 자동화와 인체공학적 핸들링 시스템 부문에서 세계적인 선도 기업이다. 진공 자동화 제품은 물류, 자동차, 전자 산업 등 전 제조 물류 과정에서 사용되고 있다. 선보인 제품은 디스플레이, 배터리 씰 등의 초박형, 소형 작업물 솔루션에 최적화된 제품으로, 넓은 면적에 낮은 진공도 형성으로 손상 없이 안전하게 핸들링할 수 있다. 또한 민감한 글라스에 스크래치 및 화학적 손상을 주지 않는다. 모바일 디스플레이, 고정밀 스태킹 공정 및 로딩, 디스플레이 검사 공정 등에 활용할 수 있다.

55hot 국제전자회로전 (3)

 

55hot 국제전자회로전 (4)

아이티즈는 VOLTERA의 PCB 회로설계시스템인 PCB 프린터를 선보였다. 이 PCB 프린터를 사용하면, 수작업으로 납땜 시에 발생하는 안전상의 문제를 크게 줄일 수 있으며, 소프트웨어를 통해 작업의 진행 상황을 관찰하고 프린터 상태를 LED로 확인할 수 있어 안전한 작업이 가능하다. 소프트웨어는 이해하기 쉽게 가이드 동영상을 보며 프로그램 사용법을 배울 수 있으며, 거버 파일 가져오기 기능부터 인쇄를 누르는 순간까지 각 단계를 진행하면서 손쉽게 순차적으로 진행할 수 있도록 인터페이스 구성이 잘 되어 있다. PCB 제작의 여러 단계의 공정을 거치지 않고도 한 번에 인쇄가 되며, 작은 크기와 가벼운 PCB 프린터의 무게는 사용자에게 설치와 작업의 편의성을 크게 증대시킨다. 또한 PCB 파일과 거버파일만으로 패턴 수정 및 부품 실장이 가능해 확장성이 높으며 실제 회로 구성이 가능해 교육용, 연구용 등으로 다양하게 사용이 가능하다.

55hot 국제전자회로전 (5)

(주)세일테크노는 영국 Vision Engineering Ltd. 사가 세계 최초로 개발한 접안렌즈가 없는 특허 현미경을 주축으로 전자, 전기, 기계 부품 등 생산 현장의 제품 개발, 품질 관리, 생산성 향상을 도모하여 산업 발전에 크게 기여하고 있는 기업이다. 전시회에서 선보인 LYNX-EVO는 현미경의 인체 공학 편의를 위해 많은 노력을 기울인 제품으로 기술력이 뛰어난 3D 이미지 기술을 통해 생산성을 향상시켜주는 접안렌즈 비장착 고성능 입체 현미경이다. 특허 출원된 아이피스리스(Eyepieceless) 광학 기술은 탁월한 사용 편의성과 인체공학적 성능을 통해 효율성을 극대화함으로써, 사용자의 작업 제한성을 해소시켜준다. 또한 모듈 방식의 설계로 사용자의 요구 사항에 대한 맞춤형 기능을 제공하는데 10:1 줌(Zoom) 기능으로 기본 1x 배율 렌즈로 6x~60x까지 확대가 가능하며, 보조 렌즈를 통해 240x까지 확대할 수 있다. 또한, 밝기 조절이 가능한 8-포인트 LED 링라이트와 난반사 보정을 위해 내장된 디퓨저 필터 기능으로 효과적인 조명 조절이 가능하다.

55hot 국제전자회로전 (2)

고해상도 디지털 현미경인 에보캠2는 60프레임의 속도로 끊김없는 검사가 가능하고, 기능이 탑재되어 있어 자동 초점, 자동 노출 및 수동 제어가 가능해 복잡한 피사체도 효율적인 검사가 가능하다. 초고해상도에 대비해 정밀 배율 관찰에 최적화된 우수한 렌즈를 사용하였으며 넓은 제품 검사에 적합한 시야 및 작업 거리 확보가 가능한 렌즈를 적용하였다. 360도 회전하며 제품을 다각도로 검사할 수 있으며, 작업 환경 및 검사 제품의 상태에 따라 다양한 형태의 스탠드를 사용할 수 있다. 또한 각종 공작 기계에 간편하게 장착하여 검사 및 측정이 가능하도록 손쉽게 커스터마이징이 가능하다.

55hot 국제전자회로전 (6)

(주)한국케미테크가 선보인 UV 경화도 측정기는 비접촉, 비퐈괴로 UV의 경화 상태를 측정 가능한 제품이다. 샘플에 직접 닿는 일 없이 측정할 수 있어 In-Line에서도 비파괴 검사가 가능하며, UV 경화 수지에 의한 필름 접착 등 샘플이 유리나 필름에 부착된 경우에도 보다 손쉽게 측정이 가능하다. 0.1초로 측정할 수 있어 In-Line 검사나 폐수 관리에 최적화되어 있으며, 자외선을 조사하면서 경사 변화를 실시간으로 측정할 수 있다는 장점이 있다.

55hot 국제전자회로전 (7)

(주)보성초음파산업은 1990년 창립해 초음파를 이용한 세척기 (반도체, LCD 및 PCB 등), 각종 부품류 세척기, 자동 및 수동 세척기, 식기세척기, 메가소닉 등을 제조하여 판매하는 기업이다. 오로지 초음파의 한 분야에서 전문적이고 지속적인 연구 개발 및 품질 혁신을 통해 국내 시장에서 전문적인 기업으로 손꼽힌다. 전시회에서 다양한 초음파 세척기를 선보였는데, 일체형 초음파 세척기는 발진부와 진동부를 일체형으로 제작하여 설치와 이동이 용이하고 작동이 간편하다. 피 세척물의 상태, 크기, 물량 및 오염물의 내용에 따라 세척기의 전체 구성이 달라질 수 있으며, 반도체 부품, 전자 및 전기부품, 정밀기계 부품, 광학부품, 의료기구 등을 세척하는 데 활용할 수 있다.

55hot 국제전자회로전 (8)

다양한 탁상용 미니 세척기 시리즈도 볼 수 있었는데, 탁상에 간편하게 놓고 사용하면서 안경 및 액세서리, 실험용 시편 및 부품 등을 세척하는 데 적합하다. 다양한 출력은 물론 히터 및 타이머 기능을 구비하고 있어 세척력의 효율을 크게 높일 수 있다.

55hot 국제전자회로전 (3)

(주)넥스트에이오아이는 화상 측정 시스템 전문 기업으로 형상 측정 및 이미지 획득이 가능한 이미지 처리 소프트웨어 개발을 전문적으로 하고 있다. ‘사용하기 쉽고, 유일하고 강력한 제품’ 이라는 모토로 원샷 화상 측정 시스템을 출시하여 전시회에서 선보였다. 1픽셀을 100분의 1로 나누어 서브 픽셀로 측정하고, 2000만 화소의 고해상도 카메라를 사용하기 때문에, 100mm 부품의 길이를 측정할 때 반복 정밀도가 약 1μm이고 위치를 여러 방향으로 움직이더라도 약 5μm의 높은 성능을 자랑한다. 또한 텔레센트릭렌즈를 사용해 이미지의 왜곡이 적다. 사용자는 시간을 단축해 생산성을 크게 향상시킬 수 있는데, 처음에 시작할 때 한 번만 설정해두면 비숙련자라도 클릭 한 번으로 1초 만에 자동으로 측정이 된다. 소프트웨어는 기능별로 동영상 매뉴얼이 있어 손쉽게 사용이 가능하며, 측정 결과 값이 컴퓨터에 자동으로 저장이 되어 간편하게 조회할 수 있다.

55hot 국제전자회로전 (9)

(주)대덕이미지는 고해상육안검사시스템, 주사전자현미경(Mini-SEM), 성분분석기(EDS), 시료전처리장비를 제조 및 판매하는 영상 관련 전문 기업이다. 전시회에서 선보인 고해상육안검사시스템은 눈으로 현미경을 통해 산업체 부품들을 검사하는 것이 아니라 고해상 모니터를 통해 검사할 수 있어 산업체의 모든 부품의 검사판, 불 장비로 사용이 가능하다. 작업자가 장시간 동안 눈으로 검사할 경우에는 생산성의 저하, 산업재해, 근로자 이직 등이 발생할 우려가 있지만 이 장비를 사용할 경우 효과적으로 방지가 가능하다. 기존 현미경 재물대는 움직이는 범위가 제한되어 있으나 고해상도육안검사장비는 움직이는 범위가 X, Y 방향으로 430mm를 에약 없이 슬라이딩 방식으로 움직인다. 모니터에 보이는 영상을 컴퓨터 없이 저장 가능하며 측정 소프트웨어가 내장되어 있다. 링 라이트는 특수 설계되어 난반사를 최소화할 수 있으며 샘플들을 자연스럽게 모니터에 표현할 수 있다는 점이 장점이다.
이번 전시회는 15개국 226개 사가 참가하여 전자회로 및 실장산업의 현주소를 볼 수 있었다. 전시부스 이외에도 전시장에서는 신기술, 신제품을 선보인 업체에게 시상하는 PCB 산업인상 홍보관, 세계일류화 상품으로 등록된 기업을 소개하는 세계일류상품소개관, 또한 구인구직에 대한 다양한 정보를 제공하는 취업정보코너 등 다양한 특별관을 운영하고 있어 관련 업계 관계자들에게 크게 도움이 되었다. 올해 국내의 PCB 시장이 전년 대비 줄어든 1.8% 줄어든 9조 6천 500억 원이 예상된다고 전해진다. 어려운 시장 상황 속에서 개최된 2019 국제전자회로 및 실장산업전이 성황리에 끝을 마쳐, 국내 PCB 시장이 재도약할 수 있을지 기대된다.