[42호]간편한 온도측정, DTPA-3232-TestKit 출시
디웰전자
간편한 온도측정,
DTPA-3232-TestKit 출시
컨버터 및 각종 센서 전문 기업 디웰전자에서 어디에서든 온도 측정이 가능한 DTPA-3232-TestKit 제품을 출시했다. DTPA-3232-TestKit 제품은 보다 간편하게 사용 가능하면서도, 기능 또한 완벽하게 구현해 편의성과 정교함을 모두 갖춘 제품이다.
USB 케이블 연결만으로 작동 가능해 별도의 추가 전원이 불필요하며, 카메라 촬영 방식으로 매 측정시 온도 기록이 가능해 사용이 편리하다는 장점이 있다. 또한 알람 상황시에는 스피커를 통해 소리가 재생되어 쉽게 알아챌 수 있다. 프로그램을 실행하면 원하는 픽셀의 온도를 확인할 수 있으며 최대 5포인트의 온도 감시가 가능하다. 테스트 키트는 DTPA-UART-3232 모듈 본품, Communication board, 제품 연결 Cable의 세가지 품목으로 구성되어 있다.
제품에 대한 더욱 자세한 정보는 디바이스마트(http://www.devicemart.co.kr/) 홈페이지에서 확인할 수 있다.
제품 특징
· PC를 통해 간편하게 온도측정 가능.
· 사무실, 가정환경 등 어디에서든 간편하게 측정.
· 별도의 추가 회로, 전원 연결(USB 전원으로 작동)이 필요없는 제품.
· 매 측정시 온도 기록 가능.
· 최대 5 포인트 온도 감시 및 알람 기록 가능. (알람 상황시 스피커를 통한 소리 재생)
· 실시간 온도 저장 및 Chart View
· 1,024픽셀(32ⅹ32)
구성품
DTPA-UART-3232 : 1EA
Communication board : 1EA
제품 연결 Cable : 1EA
DTPA-3232-TestKit
www.diwellhome.cafe24.com
[42호]2017 한국전자제조산업전
ELECTRONICS MANUFACTURING KOREA 2017
한국전자제조산업전
한국 전자제조 산업의 발전과 성장을 한눈에 볼 수 있는 국내 최대 규모의 2017 한국전자제조산업전(Electronics Manufacturing Korea,
이하 EMK 2017)이 2017년 4월 5일(수)부터 7일(금)까지 서울 삼성동 코엑스 C홀과 D홀에서 개최됐다.
글 | 최희 기자 choihee427@ntrex.co.kr
EMK 2017은 세계 최대의 전시 주최사인 Reed Exhibitions의 합작법인인 리드케이훼어스 유한회사(Reed K.Fairs Ltd.)와 한국광학기기산업협회의 주최로, 2000년 최초 제1회 SMT/PCB KOREA 개최 이후 “한국전자제조산업전”이라는 통합 타이틀 아래 국제 공구 및 계측기기전(Tool & Measurement Expo) 론칭, 포토닉스 & LED 서울(Photonics & LED Seoul) 등 국내 최대 규모의 전자제조산업 전시회로 발전하고 있다. 특히 2017년부터는 자동차 전장 제조 분야 전시회인 “한국자동차전장제조산업전”이 동시 개최되어 국내 전자제조 산업분야의 더 큰 시너지 효과를 불러 일으켰다.
이번 전시에서는 국제 표면실장 및 인쇄 회로기판 생산기자재전(SMT/PCB & NEPCON KOREA), 포토닉스 & LED 서울 (PHOTONICS & LED SEOUL), 국제 인쇄전자 및 전자재료 산업전(PRINTED ELECTRONICS & ELECTRONIC MATERIALS SHOW), 국제 기능성 필름 산업전(FILM TECHNOLOGY SHOW), 국제 공구 및 계측기기전(TOOL & MEASUREMENT EXPO)을 5개의 세부 전시회로 구성, 각종 기술세미나를 부대 행사로 도입하여 참관객에게 보다 폭넓은 관람과 세미나를 통한 새로운 배움의 기회를 제공했다.
특히 이번 전시회에서는 국내 전시회 중 처음으로 시도되었던 현장 바이어 매치 메이킹 시스템(TAP : Targeted Attendee Program)이 높은 관심을 받았으며, 이를 통해 비즈니스를 극대화시키는 효과와 함께 국내 전자제조산업의 경쟁력 강화 및 발전에 기여할 것으로 보인다.
국내 최초 납땜인두 및 PCB 관련 장비 전문 업체인 주식회사 엑소(대표이사 문형세, www.exsotool.com)는 지속적인 기술 연구개발과 전기, 전자, 정밀 제품의 다양한 수출을 통해 수출유망 중소기업으로 지정된 업체이다. 이번 전시에서는 발전하는 로봇 산업에 맞춰 탁상용 4축 솔더링 자동 납땜 로봇을 선보였다.
AutoRo-5634는 사용자의 편의를 고려하여 장소와 위치에 구애받지 않고 설치가 용이하며, 휴대용 LCD 티칭 팬던트와 함께 프로그래밍이 간단하고 배우기 쉽도록 제작했다. 또한, 고효율 DIRECT HEATING 방식의 첨단기술을 인두팁에 구현하며, 원터치로 편리하게 교체가 가능하다. 납땜 인두 장치를 다양한 방향으로 조정할 수 있어 PCB 및 부품 손상을 막을 수 있을 뿐만 아니라, 긴 수명을 위해 솔더링 공정에서 솔더 팁의 빠른 열 회복과 비산방지를 위한 천공 시스템 방식을 적용했으며, 100℃~500℃ 범위 안에서 납땜 온도도 자유롭게 설정이 가능하다.
이밖에도 작업 범위와 이동속도에 차별점을 둔 AutoRo-4414와 AutoRo-2284도 함께 출시해 많은 관람객들의 관심을 끌었다.
(주)포럼에이트코리아는 IT혁명의 진전에 있어서 보다 선진적인 소프트웨어, 가상현실(VR,Virtual Reality) 개발에 주력하고 있는 주식회사 포럼에이트(1987년 설립, 일본 동경)의 한국대리점이다.
비추얼리티란 지형·해저지형 등 세계를 커버한 3차원 대규모 공간을 표준 DB, 다양한 모델·FBX모델을 지원한 Web 서버 DB 등을 이용한 간단한 PC조작으로 선형, 단면, 지형 처리부터 교통 설정 모델 처리 등 VR 데이터 작성과 실시간 정보 이용형 인간-자동차-교통흐름 상호작용 시뮬레이션이 가능한 3차원 실시간·가상 현실 소프트웨어를 구현한다.
UC-win/Road 드라이브 시뮬레이터는 본격적 사륜 실차형 드라이브 시뮬레이터 패키지 시스템으로, 완전한 제어 환경 하에서 다양한 주행 환경을 생성하고 반복재현이 가능하다. 주행 시뮬레이션도 가능하여 일조권, 교통류, 드라이브 시뮬레이션 등에 의한 고도의 실시간 시뮬레이션에 대응하고 엔지니어의 설계, 개발, 연구 업무를 지원한다. 또, IFC·Shape, Land XML, DWG등을 지원하며 BIM/CIM 데이터 교환 도구로 활용된다.
특히 일본·영국·프랑스·중국·한국의 5개 국어에 대응하고 있으며, 해외 유저도 증가하고 있다. 중국용 제품이나 영어권용의 제품도 증가하고 있어, 해외 영업 전개도 실시하고 있다고 업체측은 설명했다.
주식회사 태하(대표이사 한기용, www.taehacorp.com)는 액체 정량 토출기의 1액형 시스템인 토출장치와 자동화 설비의 ROBOT SYSTEM을 선보였다. 액체 정량 토출시스템은 기계, 제어, 화학 등 다양한 주변기술의 집합체로서 지속적인 연구와 새로운 기술 및 기법이 요구되는 산업으로, (주)태하에서는 꾸준한 신제품 개발과 사세 확장으로 다양한 제품을 상품화하여 소비자의 욕구를 충족시키며 최적의 솔루션을 제공하고 있다.
(주)태하의 Pro-Pump 시스템은 Progressive Cavity Pump인 Pro-Pump와 정밀모터로 Pulse를 제어하는 컨트롤러(Procon-100)로 구성된 연속적 밀폐공간 이송펌프 시스템이다. PRO-PUMP SYSTEM(프로펌프 시스템 1액형)은 정밀도와 수명이 우수한 토출장치로, Rotor와 Stator의 조립에 의해 만들어진 밀폐공간이 Rotor의 회전으로 앞으로 이동하면 펌프 입구와 출구 각각의 진공과 압력이 발생하면서 액체가 연속적으로 토출되는 구조이다. 특히 외부 환경에 의하여 액체의 점도변화 및 용기내 수두차의 변화에 관계없이 일정하게 토출이 가능하며, 조정 가능한 Suckback 기능이 있어서 노즐 끝에 액맺힘(ball-up현상) 없이 정/역회전 자유자재로 토출이 가능하다. 또, Pro-Pump는 액체의 흐름이 연속적이어서 맥동현상 없이 일정한 압력을 유지해 일정한 토출량을 구현하며, 구조가 간단해 Maintenance 시 분해/조립 및 세척이 용이한 장점이 있다.
주로 자동차에서는 후방센서, PTC히터, 에폭시몰딩에 사용되며, 반도체(전자)에서는 BGA 언더필, 실리콘 Molding/Potting, SMT, Soldering, Conformal Coating, VCM Epoxy Dotting, COB공정 등 LED, 화학관련 작업, 화장품, 식품 등 광범위하게 사용이 가능하다.
JR3000 SERIES ROBOT SYSTEM은 디스펜서, 악세사리와 조합하여 여러 작업을 자동화할 수 있고 간단한 조작이 가능하여 누구나 쉽게 사용할 수 있는 디스펜싱 소프트웨어다. 999개의 프로그램과 30,000포인트 입력이 가능한 대형 메모리 기능과 고강성 알루미늄 사출제를 채용하여 세련된 프레임으로 구성되었으며 밀폐형 테이블 구조로 외부 분진을 완벽하게 차단한다. 협소한 작업 공간에서도 설치가 가능한 컴팩트한 사이즈를 자랑하며, 손쉽게 모델 변경이 가능하고 대형 메모리를 장착하여 다품종 소량생산에 적합하다. 또, 서랍식 구조 채택으로 간편하고 쉽게 유지, 보수가 가능하고 각종 에러 메세지 표시 기능 및 알람 기능으로 장기간 오랜 수명을 유지할 수 있다. 특히 이 제품의 가장 큰 장점은 디스펜싱 전용 HEAD BRACKET 사용으로 니들 각각의 미세위치 조정이 가능하며, ±0.007mm의 반복정밀도 실현으로 정밀하고 집중적인 작업이 가능하다. 사용자 위주의 초간편한 티칭(Teaching) 방법 및 편집 기능까지 탑재되어있어, 사용자를 위한 배려가 돋보이는 제품이다.
다양한 분야에 사용되는 스위치를 선보인 건흥전기 주식회사(대표이사 고광훈. 브랜드명 Koino(코이노니아))는 산업용 자동제어기기를 제조하는 스위치 분야에서 국내 제일의 기술력과 시장 점유율을 확보하고 있다. 산업용 스위치 사업의 주요 생산 품목으로는 제어용 스위치를 비롯하여 제어용 계전기, 마이크로 스위치, 리미트 스위치, 호이스트 스위치 등을 생산하고 있으며 산업용 센서로는 유도형 근접센서, 적외선 포토센서와 그 외에도 단자대, 소켓, 타이머, 카운터 등을 생산 및 공급하고있다.
이번 전시회에서 참관객의 발길을 붙잡았던 제품은 방진용 컨트롤 스위치와 방우용 컨트롤 스위치이다. 방진용 컨트롤 스위치는 먼지가 많은 실내나 작업 환경에서 사용이 가능하며, 방우용 컨트롤 스위치는 방우 기능이 있어 외부 환경에서 비바람에도 견딜 수 있는 장점이있다.
실내,외 다양한 환경에서 사용이 용이하며, 사용자의 편의를 위해 기타 일반 스위치에 장착하여 사용이 가능한 방우, 방진용 고무캡을 별도로 제작하여 판매하고 있다.
세연테크놀로지(주)(대표이사 송영전. ceyon.co.kr)는 RFID 장비 전문업체로 (RFID : Radio Frequency IDentification, 무선인식이라고도 하며, 반도체 칩이 내장된 태그(Tag), 라벨(Label), 카드(Card) 등의 저장된 데이터를 무선주파수를 이용하여 비접촉으로 읽어내는 인식시스템이다.) 오토 릴 관리 시스템을 선보여 참관객들의 시선을 끌었다.
릴 관리에 최적화된 이 제품은 업무시간 단축을 위해 다양한 관리 시스템을 도입했다. 실시간 릴 관리와 부품관리로 자재 보유 현황을 자동으로 모니터링하고, 납기 판단 자료를 실시간으로 제공하며, 보관 자재의 실시간 위치 관리가 가능하다. 릴을 어디에 꽂아도 빠른시간 내에 자동으로 위치를 파악하여 부품 찾을 수 있어 신속하고 정확하게 자재 입출고 및 재고를 관리할 수 있는 장점이 있다.
자체 자동화 시스템으로 인해 불편한 부품 입고검수와 자재의 오출고를 방지하므로 비경력자의 생산업무 지원이 가능하여 간편하게 생산관리가 진행되고, 품목별 적정 재고량을 알려주며, 불용 자재에 대한 조회가 가능해 창고 활용의 효율성을 도모하므로 고정 비용 절감과 비교할 수 없을 정도로 업무시간이 단축되는 효과를 볼 수 있다. 또한, 릴 관리 시스템으로 부품오삽·생산 에러 예방으로 품질 향상 등 고객 만족도 상승을 기대하고, 개발 자재의 즉시 위치 확인으로 개발 업무 효율성을 증대하여 기업의 경쟁력 강화에 긍정적인 영향을 줄 수 있다.
계측기 전문기업 히오키코리아(HIOKI KOREA)는 실장기판 검사장치 플라잉 프로브 테스터 FA1240을 선보였다.
FA1240은 작업 흐름에 따라 조작하기만 하면 구동이 가능하며, 부품 높이까지 고려하여 단시간에 프로그램을 완성할 수 있다. UA1780과 병행하여 사용할 경우 Arm 자동 연산이 가능하다.
현재 최첨단 전자공학 기술 바탕으로 점점 더 고도화·고밀도화되는 프린트 기판의 제조현장에서 편리하고 합리적인 제품으로 각광받고는 히오키코리아의 제품은 다품종 소량기판 검사용인 X-Y 픽스처리스 타입부터 대량생산 기판 검사용인 프레스 타입까지 시리즈로 있어, 베어보드 검사공정과 실장기판 검사공정의 각 공정에 최적화된 기능과 가성비를 제공하고, BAG·CSP·부품내장기판·실리콘 인터포저 등 고도화되어가는 여러 요구사항에 대응하며 높은 정밀도와 신뢰성, 그리고 편리한 사용법을 통해 합리적인 생산 공정을 선보일 것을 약속했다.
한화테크윈㈜(대표이사 신현우, 이만섭)은 산업용 Robot, 반도체 장비, 광학기기, Jet Engine 개발, 생산을 통해 고속, 고정도 Mechanism의 전자 및 기구 설계기술, 공정기술, 생산기술 등을 바탕으로 고 생산성의 고속장비, 범용기형 다기능 장비를 개발·공급하고 있으며, 고기능, 경박단소화의 전자제품 및 통신기기의 제품에 있어 기본요소인 PCB를 조립하는 장비 Chip Mounter와 주변기기 SMT Total Solution을 제공하고 있다. 특히, SMT Total Solution(표면실장기술.Surface Mount Technology) 공정에서는 기존 장비의 기능과 장점을 극대화하고 사물인터넷(IoT) 기술을 접목해 정보통신기술(ICT)의 융합을 통한 4차 산업혁명을 선도하고 있다.
이번 전자제조산업전에서는 현재 정부에서 추진중인 공장 자동화 구축 사업인 스마트팩토리 열풍에 합류하여 칩마운터, 수삽자동화장비, 생산공정모니터링시스템 등을 선보였다.
SMT기술로 탄생한 SP Series SP2-C는 최고의 생산성과 6시그마 수준의 고품질 인쇄를 제공하는 고성능 프린이다. New Alignment Mechanism적용으로 고정도 인쇄를 지원하며, 마스크 개구부 검사기능으로 사전에 인쇄 불량을 방지할 수있고, 인쇄 불량이 생겼을 경우 불량 정보 피드백을 받아 생산 직행률 향상에 도움을 준다. 또, Dual Lane컨베이어(Bypass)적용 시 프린터 2대의 직렬 연결로 고속 혼류 생산이 가능하다. 무엇보다 사용자의 능률 향상을 위하여 생산 정보 모니터링으로 간편하게 조작할 수 있도록 조작의 편의성을 극대화시켜 기존 수작업을 자동화로 대체해 스마트팩토리 구현에 기여했다.
올해 열린 한국전자제조산업전(EMK,Electronics Manufacturing Korea)은 240개 업체가 참가했다.
5개의 세부전시와 한국자동차전장제조산업전의 동시 개최로 인해 동종업계 관련 종사자들 뿐 아니라 중국, 일본, 베트남 등 아시아 각지에서 온 대기업 생산 기술팀 및 구매 사절단 방문과 국내 최초로 진행되는 바이어 직접 타겟팅 프로그램(TAP : Targeted Attendee Program)으로 인해 2016년 진행되었던 전시회보다 더 큰 관심을 받았다.
특히, 이번 전시회는 공장 자동화 구축 사업인 스마트팩토리 열풍으로 인해 급속도로 성장하고있는 다양한 전문 검사장비를 좀 더 가까이 접하고 체험할 수 있었으며, 스마트팩토리 구현에한 단계 더 발전하고있음을 확인할 수 있었으나, 세부 전시회 중 국제 공구 및 계측기기전(TOOL & MEASUREMENT EXPO)은 공지된 전시 품목들에 비해 가장 적은 비중으로 관람에 아쉬움이 있었으며 내년에는 보다 더 폭넓은 전시와 신 장비들을 접할 수 있기를 바라며 EMK 2017 관람을 마무리했다.
추후 진행될 전시회가 더 큰 국제적인 행사로 거듭남으로써 세계에서 집중하는 전자 제조 국가로 발전하길 기원한다.
[42호]실시간 자세교정 도우미
2016 ICT 융합 프로젝트 공모전 우수상
실시간 자세교정 도우미
글 | 성균관대학교 구기원, 명지대학교 하진수, 한양대학교 이기범
심사평
JK전자 의자에 앉아 있는 시간이 점점 많아지는 현대사회에서 앞으로 꼭 필요한 작품이네요. 특히나 모바일 디바이스가 많아지면서 업무시간 뿐만이 아니라 이동중에도 모바일 디바이스를 이용하게 됨으로써 예전보다 훨씬 많은 시간을 좋지 못한 자세를 유지하게 되면서 여러가지 관절 관련 질환이 늘어나고 있습니다. 상용화가 된다면 대단히 인기가 좋을것 같네요.
뉴티씨 자세는 오랜기간 만들어지는 것으로, 몸의 형상과 균형을 좌우하여 개인의 장기적인 건강에 치명적으로 관여하게 된다. 사람의 자세를 PC에 집어 넣어서 유니티를 통하여 가상인물로 구현한 점은 매우 높은 점수를 주었다. 하지만, 실제로 자세를 교정하는 기기와 연결하여, 자세교정용 건강기기로 거듭난다면 더 좋은 작품이 되었을 것 같다. 허리가 구부정한 경우가 많아 컴퓨터 등의 부작용이 있는데, 이를 이 작품이 진화한 컴퓨터 교정기를 통하여 간단히 훈련받을 수 있다면 좋을 것 같아 아쉽고, 앞으로 기대도 된다.
칩센 거북목 예방하는 센서로 아이디어가 좋다. 재미있는 발상이고 개발과정이다.
위드로봇 작품의 완성도가 무척 높습니다. 단순한 측정을 넘어서 분석, 평가를 통해 사용자에게 피드백을 줄 수 있도록 만든 부분이 훌륭합니다. 보고서의 완성도도 뛰어나며, 상품성이 충분한 수준까지 제작한 것으로 보입니다.
개요
작품 개요
우리 작품은 자세교정을 목적으로 만든 웨어러블이다. 자세교정의 원리는 스포츠 웨어의 등과 허리 부분에 각도 측정 센서를 부착한다. 두 각도 센서의 측정된 각도 값 차이가 오차 범위를 넘어가면 신호를 주어 사용자 스스로 자세를 바로할 수 있도록 설계했다. 기존 자세교정 제품과는 달리 이동성, 정확성, 편리성을 갖춘 제품이다. 또한 핸드폰 앱을 통해 자신의 자세를 실시간으로 확인할 수 있도록 했다.
목적
작품의 주목적은 바른 자세를 습관화하여 허리·목 디스크를 예방하는 것이다. 책상에 앉아 있는 시간이 많아 발생하는 허리·목 디스크를 예방함으로써 그로 인한 합병증을 예방하고 경제적 이득도 기대할 수 있을 것이다. 우리는 디스크 예방을 넘어 ‘원격 진료’, ‘개인 운동 활용’, ‘과학적 훈련기법 활용’까지도 기대한다.
작품 설명
Software 구성
· AVR : avr studio를 통해 코딩가능하며 웨어러블 디바이스로부터 각도 값을 받아서 용도에 맞게 계산한다.
· Android : AVR에서 전송된 데이터를 소팅 후 Unity로 데이터를 넘겨준다.
· Unity : Android에서 전송된 데이터를 소팅한다.
· SQLite : AVR에서 전송된 데이터들을 데이터베이스에 입력하고 원하는 형태로 출력한다.
Software 흐름도 및 클래스 다이어그램
본 시스템의 시스템구성도(도면1)에 따르면 무선센서에서 보내지는 센서 값을 AVR부로 송신하고 이를 본체에 달린 시스템의 연산에 의해 정제해 Android부로 송신 후, Unity3D부 내부 엔진을 이용하여 3D모델을 움직이고 이를 디스플레이부에 표시한다. 또한 정제된 값을 SQLite 테이블에 입력하고 이를 통해 입력 값들의 통계적인 결과를 디스플레이부에 출력해준다. 본 시스템의 자세한 플로우차트는 첨부된 도면2와 같으며, 시스템 전반에 대한 실제 움직임을 표현하고 있다.
Software 기능
· AVR : 3개의 센서로부터 roll, pitch, yaw값을 받는다. 통신은 적외선 통신으로 이뤄지며 초당 5~15개의 값을 받는다. 이 hex 값을 avr에서 받은 후에 각도 값 변환 공식을 써서 실제 우리가 인지하기 쉬운 각도 값으로 바꾼다. 이때 만약 실시간 측정 스위치를 통해서 인터럽트 값이 들어오면 값은 계속적으로 저장->덮어쓰기를 반복한다. 이때 또 인터럽트가 calibration(눈금조정) 스위치를 통해서 들어오면 최근 100개의 값을 정자세의 값으로 인지하여 평균을 내고 블루투스 모듈을 통해서 앱으로 송신한다. 이후 다시 실시간 검사 스위치를 누르면 앱으로 실시간 각도값을 송신한다. 그리고 목부분의 센서와 허리위쪽의 roll 값의 차이를 계산하여 만약 차이값이 (10도이상&&5초이상) 지속될 경우 avr에 장착된 진동센서를 울려준다.
· Android : AVR에서 전송된 데이터를 소팅한다. 소팅된 데이터를 8가지 파라미터로 구분한 후 데이터를 저장후 Unity로 전송한다. 4가지 기준값을 갖는 파라미터와 실시간으로 적용되는 4가지 센서값을 바탕으로, 기준자세를 기반으로 한 상대적인 허리각도를 측정한다. 이후 측정값이 정자세로부터 10도이상 차이가 나는 경우 진동을 울려준다.
· Unity : Android에서 전송된 데이터를 소팅한다. 소팅된 데이터를 Object에 적용하여 물체를 움직인다. 소팅된 데이터에 따른 특이값(잘못된 허리각도)을 검출시 디스플레이부(의자부분)의 색을 변경시켜 사용자가 이를 쉽게 확인할 수 있다.
· SQLite : Android에서 전송된 데이터를 SQLite의 DB에 저장한다. 저장된 데이터를 허리각도 종류별 hj(3가지)로 각각 평균을 출력한다. 사용자의 선택에 따라서 시간별, 일별, 월별로 통계 데이터를 출력해 보여준다.
프로그램 사용법
※ 무빙을 통하여((ex)옆으로 밀기, 두 손가락으로 잡아당기기 등)화면을 옆이나 위에서 바라볼 수 있다.
개발환경 (언어, Tool, 사용시스템 등)
· 개발언어 : C, JAVA, javascript, C#, SQLite
· 개발Tool : AVR studio, Eclipse, Unity3d, Monodevelop
· 사용시스템 : Android
· OpenSource : BlueTerm(hyperterminal Application)
하드웨어 구성
9축 무선 센서 3ea를 사용하여 일상생활에서도 편리하게 사용할 수 있는 웨어러블 디바이스 기능을 구현하였다. 현재 6축을(3축 자이로센서, 3축 가속도센서) 사용했지만 이후에 더욱더 정밀한 자세데이터 출력을 위해 9축 무선센서를 사용하였다. 1cell 리튬폴리머배터리 충전회로를 내장하고 있으며 32mm X 24mm의 초소형 사이즈로 크기와 무게 면에서 큰 장점을 가지기 때문에 일상에서도 지장 없이 사용할 수 있다.
2.4GHz 무선 수신기로써 허리 및 목의 6축 센서로부터 받은 데이터 최대 100개를 무선 수신 및 처리를 할 수 있으며, 통신 속도는 9600bps~921600bps를 갖는다. RF SMA 커넥터에 안테나를 연결하여 데이터 수신을 원활하게 하며, 데이터 수신 상태를 수신 LED를 통해 확인할 수 있다.
atmega128(AVR)은 16MHz, 8bit microcontroller로써 RISC 구조를 갖는다. 또한 비휘발성 메모리이며 8 channel, 10bit ADC의 형태를 갖는다.
하드웨어 흐름도
본 디바이스의 전체적인 작동 흐름(도면4)에 따르면 웨어러블 디바이스에 장착되어 있는 6축 무선 센서에서 사용자의 목, 등, 허리 각도들을 측정한다. 그 후에 센서 수신기에 각도 값들을 전송을 한 후에 종합된 값들을 atmega128(AVR)로 송신을 한다. 그 후 허리의 굽어짐, 양옆으로 꺾임, 뒤틀림 각도를 등 부분에서 측정된 Roll, Pitch, Yaw의 각도 값과 허리 부분의 값의 차를 이용해 계산한다. 또한, 목의 굽어짐을 판단하기 위해 목 부분과 등 부분의 Roll 각도 값의 차를 이용하여 계산한다.
처음에 사용자의 맞춤형 바른 자세 각도를 Calibration한 후, 바른 자세의 오차범위에서 벗어나게 되면 진동센서에서 진동을 주어 사용자가 곧 바로 자세를 고칠 수 있게끔 하였다. 또한, AVR의 연산에 의해 정제된 값을 핸드폰의 Application으로 송신하여, 실시간으로 사용자가 자신의 자세를 3D display로 확인할 수 있게끔 하여 시각화에 의한 편리함을 주었다. 진동센서와 마찬가지로 바른 자세의 오차를 벗어나는 불량한 자세를 할 때, 핸드폰의 진동 및 Application 화면을 색깔 변화를 주어서 사용자가 한 번 더 자세를 고칠 수 있게끔 도움을 주었다. Roll, Pitch, Yaw의 바른 자세에 대한 오차의 Display 색 변화는 다음과 같다.
이로써 사용자가 굽어짐, 양옆으로 휘어짐, 뒤틀어짐 중 어느 자세로 불량한지를 파악하여 자세를 고치기도 쉬울 것이고, 어느 자세로 자주 불량 했는지도 파악하기 쉬울 것이다.
거기서 끝이 아니라 측정된 데이터 값들을 데이터베이스화하여 일, 주, 월, 년 단위로 통계치를 표시해줘서 얼마만큼 자신의 자세가 나아지고 있는지도 파악할 수 있도록 했다. 이에 따라 사용자가 자세를 고치는 데 더욱 동기부여를 가질 수 있을 것이다.
하드웨어 기능
· 웨어러블 디바이스 : 허리의 각도를 정확하게 측정하기 위해 몸에 안정감 있게 달라붙고, 편안함을 주는 스포츠 웨어에 센서를 부착한다. 또한, 목의 각도를 측정하기 위해 여름에는 쿨링 목토시, 겨울에는 워머에 센서를 부착한다.
· 6축 무선 센서 3ea : 웨어러블 디바이스를 통해 목, 등, 허리에 장착하여 6축의 각도를 측정한 후 그 값들을 센서 수신기로 송신 한다.
· 센서 수신기 : 6축 무선 센서로 부터의 데이터 값들을 수신한 후 종합하여, 그 값을 atmega128(AVR)로 송신한다.
· atmega128(AVR) : 센서로부터 수신한 데이터 값들을 용도에 맞게 계산한다. 허리와 등 부분에서 측정된 Roll, Pitch, Yaw 각도들의 차를 계산하여 허리의 굽힘, 양옆으로 꺾임, 뒤틀림 각도를 파악한다. 또한, 목과 등 부분에서 측정된 각도의 차를 계산하여 목의 굽어짐 정도를 파악하여 거북목을 예방할 수 있도록 한다. 거북목 예방 부분에서는 목의 굽은 정도만 측정하면 되기 때문에 Roll의 값만 이용해서 연산한다.
· 스위치 : 바른 자세 Calibration 등, 장치가 용도에 맞게 여러 가지 작동을 하도록 한다.
· Led : 데이터 값들이 제대로 수신되고 있는지를 파악한다.
· 진동센서 : 바른 자세의 오차범위를 벗어나게 되면 진동을 울려 사용자가 파악할 수 있도록 해준다.
프로그램 설명
파일 구성
AVR
void LCD_init(void) //LCD를 추가하여 사용하는 경우 lcd를 위해 포트를 초기화시키는 함수이다.(현재 장치는 크기를 줄이기 위해 lcd를 사용안하고 있음)
void LCD_INT(int num) // LCD를 통하여 정수값 출력
void LCD_String(char str[]) // LCD를 통하여 캐릭터 배열 출력(문자열 출력)
void Control(unsigned char byte) // LCD 제어 함수
void TX0_CHAR(char ch) // uart 0 번을 통한 캐릭터 송신함수
void TX0_str(char *str) // usart 0번 송신 함수 스트링
void TX1_CHAR(char ch)// usart 1번 송신 함수 캐릭터
void TX1_INT(int in)// usart 1번 송신 함수 인트
void TX1_str(char *str)// usart 1번 송신함수 스트링
ISR(INT2_vect)// 거북목 검사를 하게 되면 1,2번 led를 켜기(인터럽트_스위치연결)
ISR(INT0_vect)// 캘리브레이션 단추(인터럽트_스위치 연결)
ISR(INT1_vect)// 실시간 검사 시작하기
ISR(SIG_UART0_RECV)// uart1 데이터 리시브 인터럽트_각도를 받아서 계산하여 uart0으로 송신_ uart0에 연결된 블루투스 모듈을 통해 휴대폰으로 각도값 송신
ISR(SIG_UART1_RECV)// uart0 데이터 리시브 인터럽트_ 휴대폰 앱으로부터 받은 값을 구분하여 직접적으로 하드웨어 스위치를 누를 필요없이 하드웨어 조종 가능.
Android
· BlueTurn.java : Android 플랫폼과 AVR간의 BlueTooth 통신을 가능하게 한다.
· Hellotwo.java : Android Input/Output 내부처리 부분.
· unity-classes.jar : Unity Class를 Import하여 안드로이드에서 사용가능하게 한다.
· UnityPlayerNativeActivityR.java : Android와 Unity를 연동하는 부분.
Unity3D
· Standard Assets 폴더 : Unity 엔진을 활용하기 위해 가져온 기본 라이브러리.
· AndroidPluginManager.cs : Unity와 Android를 연동하는 부분.
· Rotate.cs : 3D모델이 움직이는 부분.
· MoveCamera.cs : Unity 내부 카메라를 움직이는 부분(touch로 움직임)
SQLite
· Method.java : DB로 데이터를 입력하고 Android로 출력해주는 부분
· StatisticActivity.java: 통계결과를 화면에 출력해주기 위한 Activity
· MySQLiteOpenHelper.java : DB를 생성하고 테이블을 만들어주는 부분
함수별 기능
AVR
1. ISR(INT2_vect)_우선적으로 거북목 체크 스위치를 누른다. 이 인터럽트는 스위치에 연결되어 있으며 직접적으로 하드웨어 스위치와 앱화면의 버튼을 통하여 활성화되며 활성화 된 경우 led를 켜준다.
2. ISR(INT1_vect)_다음으로 올바른 자세의 평균값을 구하기 위해 실시간 각도 값을 구한다. 실시간 각도값은 Roll, pitch, yaw의 세 개의 값과 목토시의 각도값으로 웨어러블 디바이스의 센서로부터 나오고 그 값은 avr와 연결된 수신기로 들어온다. 수신기로 들어온 값은 uart를 통해 mcu를 통하여 들어오고 이 값을 가공하여 다시 uart에 연결된 블루투스 모듈을 통하여 앱으로 송신한다. (캘리브레이션을 위해 10초이상 유지 필요)
3. ISR(INT0_vect)_ 캘리브레이션 함수를 실행하며 최근 100개의 데이터 값을 평균내서 정자세에 대한 캘리브레이션 값을 저장한다.
4. ISR(INT1_vect)_ 2)와 같이 다시 실시간 자세 측정을 하게 되며 정자세 값과의 차이값을 블루투스 모듈을 통해 휴대폰 앱으로 송신한다.
Android
((String) msg.obj).split(“\\,”); //저장된 값을 sorting하기 위해 split하는 부분.
UnitySendMessage(String, “SetLog”, strSendMsg); //unity로 메시지를 보냄
Unity
AndroidJavaClass(“PackagePath”) //Android를 호출.
curActivity.Call(“CallAndroid_U”, strMsg); //Android 내에 코드 호출.
Quaternion.Euler(X, Y, Z) //Object를 XYZ축으로 XYZ각만큼 비틈.
Quaternion.Slerp(rotation, target, Time); //Object를 부드럽게 하는 함수
SQLite
Method.insert(); //Table에 데이터 입력
Method.select(); //Table로부터 데이터 출력
기술적 차별성
우리 기술의 차별성은 그동안 시중에 없었던 방식으로 허리의 각도 값을 측정하는 것이다. 물론 병원에서 비싼 진단기기로 측정하는 것이 더욱도 정확하지만 가격적으로 고가이고 매일 측정할 수 없으며 이동성 또한 없다. 이렇게 많은 제약사항을 우리 제품을 이용하게 되면 훨씬 줄일 수 있다. 우선 6축 센서를 통하여 웨어러블 디바이스에 장착시켜 누구든 이 장치를 손쉽게 사용할 수 있다. 물론 이 센서는 탈부착이므로 세탁을 할 때 또한 어려움이 없다.
다음으로 휴대폰 어플리케이션과 연동되어진다는 큰 장점이 있다. 자신의 값을 3d 그림을 통해서 실시간으로 확인할 수 있으며 이 값은 모두 데이터베이스에 저장이 되어서 한 달 후, 일 년 후 에도 자신의 자세의 변화를 측정할 수 있으며 의료적으로도 사용될 수 있다는 큰 장점이 있다.
현재 시중에 나와 있는 제품은 비자율적 제품들 뿐이다. 따라서 사람들은 허리가 아프면 무조건 병원에 가야 하는 병이기 때문에 큰 병에 걸릴 수 있다는 두려움을 갖고 있다. 우리제품은 자율적인 바른 자세 습관화를 만들어줄 수 있으며 수천만의 학생, 직장인에게 올바른 자세습관을 유지해서 병을 예방할 수 있으며, 수술을 받은 후인 환자에게 지속적인 관리를 해줄 수 있다.
마지막으로 중요한 장점은 바로 거북목 측정 시스템이다. 요즘 많은 사람들이 스마트폰, 컴퓨터를 장시간 이용함에 따라 거북목 증후군을 앓고 있는 사람이 많아져 사회적 이슈가 되고 있다. 우리 제품은 등에 장착한 센서와 목토시에 장착한 센서 차이값을 이용하여 일정시간 이상 각도차가 벌어져 거북목 자세가 되었을 때 사용자에게 알림으로써 거북목 증후군을 예방할수 있도록 만들었다.
또한 센서를 이용한 프로그램으로서, 실질적으로 들어오는 데이터를 기반으로 인체를 모델링한 오브젝트를 활용하여, 실제로 움직임에 따른 3D모델 오브젝트의 움직임을 쉽게 볼 수 있다. 이는 기존에 있는 그림과 글자로만 보여주는 디스플레이 방식을 뛰어넘는 실사용자가 시각적으로 접근하기 쉽게하는 효과를 갖고 있다.
응용 분야
허리 및 목 디스크 예방
허리가 건강해야 몸이 건강하다.(허리디스크 예방)
위와 같이 허리디스크는 고통뿐만 아니라 많은 다른 질병을 함께 유발할 수 있다. 따라서 우리 제품을 이용하면 애초에 이러한 허리디스크를 예방하는데 큰 도움이 될 수 있다.
허리디스크 수술은 척추사이의 염증을 치료하는 것이다. 때문에 재활 치료로 허리의 근육을 잡아주지 못한다면, 허리디스크가 다시 발병할 가능성이 크다. 따라서 재활치료를 통해 허리의 근육을 강화시켜 디스크 재발을 방지해야한다.
거북목 증후군(목 디스크) 예방
거북목 정의
목을 앞으로 뺀 자세를 거북목이라고 한다. 더 자세히 설명하면 전체 목뼈 수가 7개인데 정상적으로는 귀가 어깨뼈봉우리와 같은 수직면 상에 있고 7개의 목뼈는 앞쪽으로 볼록하게 휘어서 배열되어 있다. 이를 경추 전만이라고 한다. 거북목 자세는 아래쪽 목뼈는 과하게 구부러지는 방향으로 배열되고 위쪽 목뼈와 머리뼈는 머리를 젖히는 방향으로 배열되어 전체적으로 목뼈 전만이 소실되고 머리가 숙여지지 않은 상태에서 고개가 앞으로 빠진 자세이다.
원인
나이가 들수록, 근육이 없을수록 거북목이 잘 생긴다. 그러나 컴퓨터를 많이 하는 요즘에는 연령, 성별에 관계없이 호발한다.
치료
기본적 치료는 어깨를 펴고 고개를 꼿꼿이 하는 것이다. 아울러 20~30분에 한 번씩 목을 스트레칭해 주면 큰 도움이 된다.
제품을 이용한 거북목 예방
목의 휨 정도에 따라 실시간으로 진동을 통해 사용자에게 알려주기 때문에 거북목 증상을 예방할 수 있다.
경제적 효과
척추 측만증 예방으로 치료비용 절감
척추 측만증 수술과 치료비용은 정확히 공개된 것은 없지만, 측만증을 치료하려면 수백만원 이상의 비용이 든다는 것으로 알려져 있다. 우리는 웨어러블을 이용하여 측만증을 예방하고 경제적 측면에서도 상당한 이득을 볼 것이라 예상한다.
의사와 원격 진료
S·U·S의 기능 중 하나는 환자의 데이터화된 환자의 상태를 축적하는 것이다. 우리는 축적된 데이터를 의사에게 전송함으로써 의사가 환자의 허리 상태를 파악할 수 있게 할 것이다. 이것은 환자가 직접 의사를 찾아가지 않아도 치료를 받을 수 있도록 도울 것이다.
바른 자세로 운동하기
스쿼트, 데드리프트 등 개인 피트니스 운동은 바른 자세를 유지로 운동하는 것이 운동 효과와 허리통증 등의 역효과를 방지할 수 있는 유일한 길이다. 예를 들어 스쿼트 운동을 할 때, 허리와 등을 곧게 펴고 무릎의 구부림 정도가 중요한데, 우리제품을 사용하여 각도를 설정하고 정해진 각도를 벗어났을 때 알림을 주는 방식으로 바른 자세를 유지할 수 있다. 이를 통해서 초보자들도 비싼 개인 트레이너를 구하지 않고 바른 자세로 운동을 할 수 있을 것으로 예상된다.
과학적 훈련기법 활용
스포츠는 과학이다. 뉴스를 통해 과학적 훈련기법을 통해 선수들의 기량을 향상시킨 것을 자주 접할 수 있다. 이처럼 스포츠에서도 선수의 자세가 중요한 것은 부정할 수 없다. 골프가 그 하나의 예이다. 골프 선수의 허리와 무릎 굽힘, 팔의 각도 하나하나 선수들의 성적에 영향을 줄 수 있다. 우리 제품을 사용함으로써 선수들의 자세를 교정하고 기량을 향상 시킬 수 있을 것으로 생각한다.
개발 단계
[42호]Outline CNC Plotter With ATmega128 & OpenCV
2016 ICT 융합 프로젝트 공모전 우수상
Outline CNC Plotter With ATmega128 & OpenCV
(Portable electrospinning device and fine fiber)
글 | 국민대학교 정구영
심사평
JK전자 PC용 제어 소프트웨어, 8비트 마이크로프로세서용 펌웨어, 완벽한 기계 파트까지 전체적으로 완성도가 높은 작품 입니다. 기술적으로도 이미 공개되어 있는 G-Code를 사용하지 않고, 자체적인 알고리즘을 개발한 노력이 엿보이네요. 하지만 이미 유사한 프로젝트가 많이 공개되어 있는 기능이고 창의성이 부족한 부분이 아쉽네요.
뉴티씨 실제로 CNC를 구현 완료하여 이를 통한 데모를 유튜브 등을 통하여 보여주고 있으며, 이를 모두 알고리즘으로 처리하여 실제로 구현한 점 등이 큰 점수를 받았다. 또한, 윈도우 소프트웨어 등도 모두 직접 구현하였으며, 기계적인 부분들도 모두 처리하였고, 두꺼운 선이나, 다양한 터치 방법 등도 매우 창의적으로 구현한 점 등이 높은 점수를 받았다. 창의성도 매우 좋고, 바로 시제품을 만들어서 실용적으로 판매도 할 수 있을 것으로 생각된다. 이 작품은 실제 구현이 완벽히 되었고, 기술성, 작품완성도, 작품성 등 대부분 최고 점수를 받았다.
칩센 킥스타터 등에서 본 듯하나, 학생들이 직접 이미지 외곽선 검출부터 제어까지 구현했다는 점에서 높은 평가를 주고 싶다.
위드로봇 단순히 X-Y 플로터가 아닌 윤곽선을 추출하는 부분까지 구현한 점이 전체 작품의 완성도를 끌어올리는 멋진 부분이라 생각합니다. YouTube에 올린 동영상으로 작품의 완성도가 높다는 것을 한 눈에 파악할 수 있어 좋았습니다. 전반적인 부분을 스스로의 힘으로 해결하였기에 실력 향상에 많은 도움이 되는 작품이었을 것으로 보입니다.
작품 개요 및 내용
· X, Y의 2축과 Z의 1축으로 구성된 8방향 정밀제어 평면 제도 플로터의 구현
· 윈도우즈 기반 프로그램과 플로터의 유선 연결을 통한 직접 지령 전달 및 양방향 통신의 구현
· C#과 OpenCV를 이용한 이미지 파일의 분석 및 픽셀 추적 알고리즘의 구현
본 작품은 직접적으로 외곽선을 그리게 될 하드웨어(프레임 및 마이크로 컨트롤러 ATmega128 펌웨어 제작)부문과 일반 그림파일의 픽셀을 분석, 추적하여 프린트 가능한 데이터로 변환해 주는 소프트웨어(윈도우즈 기반 C# 및 OpenCV 영상처리 개발)부문으로 나눠지게 되고, PC의 C# Windows Form 프로그램을 통해 특정 지령으로 변환된 외곽선 데이터를 전송받아 정확한 치수에 기반을 두어 펜으로 그림을 그려주는 기능을 가집니다.
개발 동기
본 프로젝트의 개발 동기는 하드웨어와 소프트웨어의 융합 개발에 그 의의를 두고 있습니다. 상기 본인이 소속한 국민대학교 전자공학부 학술동아리에서는 1년에 1회 개인 작품 제작을 통한 전시회를 개최하고 있습니다. 해당 전시회에서의 개인 전시를 위한 작품에 대해 생각하던 중, 그동안 배워왔던 아날로그 수동 소자들을 이용한 실제 전자회로의 설계, 그리고 C 언어 프로그래밍, 마이크로 컨트롤러를 이용한 임베디드 시스템의 설계 등을 응용한 좋은 작품이 없을까 고민을 하였습니다. 그 결과 하드웨어에만 치중하지 않는 하드웨어 – 소프트웨어 융합 개발에 대해 크게 흥미를 느꼈고 개인적으로 관심이 많았던 치수제어 분야와 복합적으로 개발할 수 있는 것을 찾아보았습니다. 그리고 머지않아 그 대상은 그리 먼 곳에 있지 않다는 것을 깨달았습니다. 그것은 바로 누구나가 사용하고 있는 일반 잉크젯 프린터였습니다.
본 개발의 핵심 알고리즘은 기존의 상용화된 G-CODE 알고리즘을 참조하지 않고 직접 구현을 통해 이루어졌으며, 하드웨어와 소프트웨어의 융합개발로 실제 치수에 기반을 둔 하드웨어 제작(물리적)과 프로그래밍에 기반을 둔 소프트웨어 제작(논리적)의 융합으로 개인 실력 향상에도 도움이 많이 되었다고 생각합니다.
개발 목적
CNC 머신은 우리 생활과 그리 먼 곳에 있지 않습니다. 전문적인 운용에 있어선 CNC 밀링(절삭)머신이나 3D프린터(적층) 등이 있으나, 우리가 평소에 사용하는 프린터 또한 컴퓨터 수치제어로 움직이는 하나의 CNC 머신입니다. 옛날에 PCB를 자작하기 위해서 에칭을 하는 과정 중 도선이 될 부분을 코팅시키기 위해 동판에 잉크를 전사시키는 작업이 필수로 행해졌는데, 이 과정에서 사용됐던 것이 레이저 프린터로 OHP 필름에 회로 패턴을 인쇄한 다음 다리미를 이용하여 동판에 인쇄물을 부착해서 잉크를 녹여 그대로 전사시키는 방법이었습니다. 패턴의 경우 펜으로 직접 그려도 상관이 없었으나, 정밀한 패턴의 경우 최대한의 패턴 정밀도를 유지하기 위해 전사방식을 사용하였던 것입니다. 하지만 그 과정을 한 번에 단축시킬 수 있는 것이 CNC를 이용한 패턴 직접 인쇄였습니다. CNC 제어로 동판에 직접 인쇄를 하면 정밀도를 유지하면서 전사시키는 과정이 필요가 없어지기 때문이지요. 물론 정확한 데이터를 바탕으로 머신을 움직여, 원하는 결과물을 얻는 과정은 매우 까다롭고 어렵습니다. 하지만 자동화 시스템을 완성하여 여러가지 입력 데이터에 대한 정확한 결과물을 얻는다면 작업시간이 단축되는 효과를 얻을 수 있습니다.
작품 설명
본 작품은 하드웨어 파트와 소프트웨어 파트로 나뉘어져 있습니다. 하드웨어 파트로는 알루미늄 프로파일을 이용한 플로터 프레임 제작과 ATmega128을 실장시킬 기판 제작, 그리고 전원공급을 위한 12V-5V 레귤레이팅 회로 제작, ATmega128로부터 출력을 담당할 포트의 모듈화(PCB 아트워크), 프레임을 뼈대로 한 Stepper Motor 2개의 X, Y축 운반시스템 장착 및 Motor 제어 알고리즘 개발 등이 있으며 소프트웨어 파트로는 PC의 윈도우즈 환경을 기반으로 한 C# Windows Form 프로그래밍을 이용하여 임의의 이미지파일을 불러와 OpenCV를 거쳐 외곽선을 출력하고, 출력된 외곽선을 분석, 픽셀 트래킹 알고리즘을 적용하여 개발된 플로터에서 인쇄할 수 있는 데이터로 변환하고 전송하는 기능까지가 되겠습니다.
주요 동작 및 특징
1) 하드웨어 동작 및 특징
하드웨어 제작의 경우 타 작품의 참고없이 프레임의 사이즈부터 도면 설계, 회로에 사용될 각종 소자들과 마이크로 컨트롤러의 선별, 모터드라이버와 모터의 선별 모두 직접 실시하였습니다. PCB기판 제작에는 만능기판을 사용하였으며 전원을 안정적으로 공급하기 위해 7805 정전압 회로를 구현하였고 축의 운반을 위해 2개의 Stepper Motor를 사용하였으며 각 축이 직각을 이루도록 Motor를 배치, 풀리와 타이밍 벨트를 사용하여 정밀한 제어가 가능하게 하였습니다. 모터제어의 경우 센서에 의한 피드백없이 개발하기 위해 1:1 제어가 가능한 Stepper 모터를 사용하였으며 중심점을 기준으로 8방향 제어를 완벽하게 구현하여 원이나 대각선, 포물선 등을 그릴 수 있게 되었습니다.
2) 소프트웨어 동작 및 특징
PC <-> ATmega128간의 양방향 통신을 구현하였으며 소프트웨어 상으로는 자동 픽셀 추적 알고리즘을 개발하여 출력된 외곽선을 (0, 0)에서 가장 가까운 지점을 찾아 지속적으로 추적, 데이터화 하였습니다. 실용화 되어있는 방식(G-Code)을 따르지 않고 독자적으로 개발한 제어 프로토콜을 따르고 있으며 피드백이 없는 제어방식이지만 비교적 높은 정확성을 보이고 있어 피드백 알고리즘을 구현하여 추가할 시 2D CNC 머신이 아닌 3D 정밀 절삭, 적층 머신까지도 본 알고리즘을 통하여 독자적으로 개발할 수 있을 것으로 생각합니다.
3) 동작 시나리오 – 시스템 아키텍처
4) 동작 시나리오
플로터를 제어할 컴퓨터 시스템에서는 이미지를 외곽선으로 변환한 후 직접 제작한 픽셀 추적 알고리즘을 통해 (0, 0)에서 제일 가까운 픽셀을 추적하여 기준점으로 삼고, 해당 픽셀에서부터 다음 픽셀을 추적하여 그 방향을 데이터화 하여 저장합니다. 최종적으로 남아있는 외곽선이 없으면 추적을 중단하게 되고 저장된 데이터를 바탕으로 ATmega128로 지령을 보냅니다. ATmega128에서는 받은 지령을 모터제어를 위한 PWM 파형으로 변환하는 해석기(interpreter)역할을 하며 모터드라이버로 PWM을 출력하는 역할을 합니다. 일정 데이터만큼 지령을 보내면 플로터를 제어할 컴퓨터 시스템으로 완수신호를 보내 그 다음으로 인쇄할 데이터를 요구합니다. 이미지 상에서 보이듯이, 피드백 시스템은 존재하지 않으며 1:1 대응의 제어 신호를 통해 X, Y축을 제어하게 됩니다. Z-축의 서보는 펜을 들었다 놓는 기능이 있으며 서로 떨어져 있는 픽셀을 감지하여 펜을 들었다가 픽셀이 시작되는 위치에서 다시 펜을 내려놓는 기능을 하게 됩니다.
전체 시스템 구성
1) 시스템 흐름 순서도
2) 소프트웨어 구성 및 처리 과정
3) 하드웨어 구성 및 처리 과정
4) 소프트웨어 세부 구성
소프트웨어는 C#와 OpenCV를 이용해 제작되었고 ATmega128과의 통신을 위해 시리얼 포트를 설정할 수 있으며 임의의 이미지파일을 불러와 외곽선을 추출합니다. 추출된 외곽선으로부터 영점을 기준으로 최단거리에 있는 픽셀을 다음 기준점으로 잡으며, 기준점으로부터 가장 가까이 있는 픽셀을 자동으로 추적합니다. 만약 추적 후 외곽선이 남아있다면 계속해서 추적을 하게 되며 남아있는 외곽선이 없다면 추적을 종료하게 됩니다. 픽셀 트래킹 알고리즘은 직접 개발하였으며 기준점을 중심으로 우선순위를 두어 주위 8방향에 존재하는 픽셀을 추적하게 됩니다. 만들어진 인쇄 데이터는 일정 간격으로 잘라 플로터로 전송합니다.
1. CNC 제어 프로그램 초기 실행 시 이미지를 불러오게 됩니다.
2. 불러온 이미지는 프로그램 좌상단에 표시가 되며 이미지의 크기는 제한이 없습니다.
3. 이미지를 불러온 후 “포트설정”을 클릭하여 Outline CNC Plotter와 통신할 포트를 설정합니다.
4. 포트와 연결합니다.
5. 포트와 연결되면 우상단의 작업창이 활성화 되며 하단의 메시지가 작업 가능으로 변경됩니다.
6. 프린트 할 그림의 이진화 Threshold를 정해주고 외곽선 버튼을 누릅니다.
7. OpenCV의 그레이스케일 ▶ 이진화 ▶ 케니엣지를 거쳐 외곽선을 추출하여 중앙에 출력합니다.
8. 출력된 외곽선을 보고 적당히 다듬어질 때 까지 Threshold를 조절하며 외곽선을 추출합니다.
9. 원하는 모양의 외곽선이 추출 되면 “픽셀체크” 버튼을 클릭합니다.
10. “픽셀체크” 버튼을 클릭하면 추출된 외곽선 데이터 중 좌상단(0, 0)으로부터 ‘가장 근접한 거리’에 있는 픽셀을 추적하게 되며 좌측 중앙에 X2+Y2의 거리 값이 표시되고 우측 텍스트박스에 Xvalue Yvalue X2+Y2가 표시됩니다. 좌측 하단에는 총 픽셀의 개수가 표시됩니다.
public int PixelAccess2(IplImage src)
{
int length = 1121000;
int xshort = 0;
int yshort = 0;
//byte* img = (byte*)src.ImageData;
for (int y = 0; y < 950; y++)
{
for (int x = 0; x < 1180; x++)
{
if (Cv.Get2D(src, y, x) == 0)
{
if (length > y * y + x * x)
{
length = y * y + x * x;
xshort = x;
yshort = y;
//img[(y) * 950 + x] = 255;
}
}
}
}
Cv.Set2D(result, yshort, xshort, 255);
Commandbox.Text += ” ” + xshort.ToString() + ” ” + yshort.ToString() + ” ” + length.ToString();
trackx = xshort;
tracky = yshort;
for (; xshort > 0; xshort–)
Fill_image_data(4);
for (; yshort > 0; yshort–)
Fill_image_data(2);
return length;
}
11. 거리추적의 경우 표시된 외곽선의 데이터(x, y)에 직접 접근하여 화면상에 표시되는 모든 픽셀을 스캔하고, 최종적으로 (0, 0)에서 가장 가까운 거리에 있는 픽셀만큼의 거리(xmin, ymin)를 저장합니다.
12. 저장된(xmin, ymin) 값을 기반으로 프로그램이 자동적으로 데이터를 플로터에 내릴 지령으로 변환합니다.
13. 첫 픽셀을 추적한 후 그 다음으로, 8방향 중 최소 한 방향으로 이어진 하나의 픽셀을 추적하는 “다음픽셀” 과 더 이상 이어진 픽셀이 없을 경우 끊겨진 지점에서 최소거리에 있는 픽셀을 자동으로 추적하는 “최소거리” 기능을 사용하여 픽셀을 계속 추적합니다.
14. “추적전송” 버튼의 경우 “다음픽셀” 기능을 더 이상 이어지지 않는 구간까지 자동반복 합니다.
15. 픽셀추적의 경우 Raster식 이미지는 도트로 이루어져있다는 점으로부터 착안하였으며 모터제어의 8방향 제어와 부합하는 알고리즘을 구상하였습니다.
16. 모든 도트는 중심점(x, y)을 기준으로 8방향 내에서 정의가 되며 추적된 결과 값을 제어문으로 변환 후 데이터로 저장하여 반환합니다.
17. 저장된(xdir, ydir) 값을 기반으로 프로그램이 자동적으로 데이터를 플로터에 내릴 지령으로 변환합니다.
18. 외곽선 픽셀이 성공적으로 추적됨에 따라 자동적으로 추적된 픽셀은 0(Zero Fill)으로 바뀌며, 모든 픽셀의 추적이 완료되면 외곽선 픽셀은 모두 사라지게 되고 좌측 중앙에 모든 구간에서 픽셀이 발견되지 않아 이미지의 X2width + y2height 값이 출력되게 됩니다.
19. 모든 픽셀을 추적하여 추출된 외곽선이 남아있지 않게 되면, 자동적으로 C# Windows Form 프로그램은 마지막 픽셀 값인 (Xnow, Ynow)값을 기반으로 프로그램이 자동적으로 펜을 다시 원점(0, 0)으로 되돌리는 데이터를 플로터에 내릴 지령으로 변환합니다.
20. 인쇄 버튼을 클릭하면 초기에 연결한 포트를 통해 Outline CNC Plotter로 데이터를 전송합니다.
21. Outline CNC Plotter의 ATmega128과 UART 양방향 통신을 통해 C# Windows Form 프로그램에서 인쇄 지령 데이터를 전송하게 되며, 역방향으로 ATmega128에서는 일정 구간의 데이터를 인쇄 완료했다는 완수신호를 보내게 됩니다.
22. C# Windows Form 프로그램에 저장된 인쇄 데이터는 모든 지령을 담고 있어 8bit-Processor인 ATmega128은 한 번에 많은 양의 데이터를 받을 수 없으므로 일정 구간의 데이터를 보내게 되며, Polling 방식의 자동화 시스템에서 착안하여 일정 구간 데이터의 처리를 완료하면 Master에게 완수신호를 보내어 그 다음으로 처리해야 할 Data를 받는 형식의 프로토콜을 가지고 있습니다.
void EventDataReceived(object sender, SerialDataReceivedEventArgs e)
{
//if (printdata[processing] == 0)
//return;
byte[] buff = new byte[1];
serialPort1.Read(buff, 0, 1);
if (Convert.ToChar(buff[0]) == ‘l’)
{
serialPort1.Write(“r”);
for (int temp = 0; temp < 1024; temp++)
{
//serialPort1.Write(PixelAccess3(result).ToString());
serialPort1.Write(printdata[processing + temp].ToString());
//Commandbox.Text += printdata[processing + temp].ToString();
}
processing += 1024;
serialPort1.Write(“p”);
}
}
23. 좌측은 프로그램 내부의 통신 이벤트 핸들러 함수입니다. 데이터의 보냄과 요청이 Interrupt에 의해 이루어지며, 한 번에 1024개의 지령이 전송되는 것을 볼 수 있습니다. 이는 픽셀 1024개만큼의 8방향 제어 지령 데이터가 ATmega128이 완수신호를 보낼 때 마다 자동으로 그 다음 데이터를 보내는 것을 의미합니다. 결과적으로 인쇄버튼 클릭 후 Outline CNC Plotter가 인쇄를 끝낼 때까지의 모든 과정이 자동적으로 이루어지는 것을 말합니다.
5) 하드웨어 세부 구성
Outline CNC Plotter의 하드웨어는 전송된 데이터를 바탕으로 ATmega128에서 8방향 제어 알고리즘을 통해 모터를 구동하게 됩니다.
1. 2개의 Stepper Motor(NEWTC SE-SM243 Stepper Motor)을 X, Y축으로 구성하였습니다.
2. Stepper Motor를 제어하기 위해 NEWTC AM-CS2(P) Stepping Motor Driver를 사용하였습니다.
3. 펜의 상승, 하강을 제어하는 1개의 Z축을 HS-422 Servo Motor로 구성하였습니다.
4. LM7805를 이용한 5V 정전압 출력 회로 및 ATmega128 회로를 제작하였으며 2개의 STEP 모터 구동을 위한 GPIO의 소켓을 장착하고 1개의 Servo 모터 출력을 지원하며 6개의 인터럽트 스위치를 장착하였습니다.
5. PC와의 양방향 통신을 위해 UART 시리얼 통신을 구현하고, 지령의 해석을 통한 하드웨어의 직접 제어를 위해 8방향 제어 알고리즘을 구현하여 정밀도를 최대화 합니다.
하드웨어 및 소프트웨어 개발 환경
하드웨어 개발 환경
· AVR Studio Version 4.17
· WinAVR – 20100110
· ATmega128 * 1
· Windows 7(64bit)
소프트웨어 개발 환경
· Microsoft Visual Studio 2010
· C# Winform, OpenCV Sharp
· Windows 7(64bit)
하드웨어 제작 과정
하드웨어 제작 환경
· 원가절감 및 제작편의성 고려, 알루미늄 프로파일사용 하드웨어 프레임 제작
· 전원공급 회로 기판 제작 및 ATmega128 실장, GPIO 및 각종 입출력 회로 제작
· AVR ATmega128을 이용한 Stepper Motor PWM 제어 및 유선 UART 통신 구현
하드웨어 프레임 제작
· 알루미늄 프로파일 프레임 제작 및 구조물 장착
· 도면작성 후 알루미늄 프로파일 발주 및 재단 의뢰
프레임은 알루미늄 프로파일을 도면대로 재단하여 만들어졌습니다. 축 운반 시스템은 원가절감을 위해 책상 레일을 롤러로 사용하였으며, 모터의 회전을 동력으로 이용하기 위해 모터에 풀리와 타이밍 벨트를 달아 정밀한 제어가 가능하도록 하였습니다. 하판은 아크릴로 제작되어 인쇄될 대상을 지지해주고 있습니다.
· 각 축 Stepper Motor 선별 및 구동 확인
· 풀리 및 타이밍 벨트 장착, 운반 점검
하드웨어 기판 제작
· ATmega128 장착을 위한 컨트롤러 기판 제작
· MCU 및 스위치, 서보모터를 위한 정전압 회로 설계
· I/O 소켓 배치 및 만능기판 납땜, 최종 조립
Stepper Motor 선별 및 Motor Driver, ATmega128 PWM 출력 테스트 |
ATmega128 펌웨어 개발
· ATmega128기반의 Stepper Motor제어 펌웨어 개발
· Interrupt, UART통신을 이용한 PC와의 양방향 통신 실시
· Stepper Motor X, Y축 동시제어(대각선 제어) 방법 연구 및 Servo Motor Z축 제어
· Stepper Motor X, Y축 동시제어(대각선 제어) 방법 연구 및 Servo Motor Z축 제어
소프트웨어 제작 과정
소프트웨어 제작 환경
· Windows 기반 Outline CNC Plotter 제어 C# Windows Form 프로그램 개발
· PC <-> ATmega128 양방향 UART 시리얼 통신 구현 및 프로토콜 정의
· OpenCV를 이용한 이미지 외곽선 검출 및 이미지 픽셀 직접 제어를 통한 픽셀 추적 알고리즘 작성
Windows 기반 C# Windows Form 프로그램 개발
1. 소프트웨어는 UART 시리얼통신 프로그램과 영상처리 프로그램을 따로 제작한 후 통합하였습니다.
2. 1차적으로 ATmega128과의 UART 통신을 테스트하기 위한 프로그램을 제작하였습니다.
3. UART 단방향 통신(PC ▶ ATmega128) 프로그램을 제작하여 모터제어를 테스트하였습니다.
위는 최초 제작된 프로그램이며 #1의 넘버링을 가지고 있습니다. ATmega128 과의 UART 시리얼 통신을 위해 제작되었으며 ATmega128의 펌웨어와 연동하여 특정 LED를 OFF하거나 ON하고 모터를 움직여 축을 전개 혹은 축소할 수 있는 지령을 전달하는 기능이 있습니다. 또한 펌웨어로 미리 정의되어 있는 기능(지그재그)을 클릭하면 Outline CNC Plotter의 축이 자동적으로 움직여 지그재그로 선을 그려주는 기능이 시작됩니다. 이 기능은 모터의 직접 제어에서 오는 오차를 측정하기 위해 반복적으로 왕복운동을 하는 기능입니다. 스텝모터의 경우 1 Step당 움직이는 각이 정해져 있어 1방향 단순 제어가 용이합니다.
4. 펌웨어 제작과 동시에 모터제어 테스트를 진행하여 축 제어 속도 및 적정 토크를 찾아 정합니다.
2) Windows 기반 C# Windows Form 프로그램 개발
3) 양방향 UART 시리얼 통신 구현 및 프로토콜 정의
ISR(USART0_RX_vect)
{
j = 0;
receive = 1;
data = UDR0;
if (data != ‘p’ && data != ‘o’ && data != ‘r’)
{
if (serial_count < 256)
{
serialdata[serial_count] = data;
serial_count++;
}
else if (serial_count >= 256 && serial_count < 512)
{
serialdata2[serial_count-(256)] = data;
serial_count++;
}
else if (serial_count >= 512 && serial_count < 768)
{
serialdata3[serial_count-(512)] = data;
serial_count++;
}
else if (serial_count >= 768 && serial_count < 1024)
{
serialdata4[serial_count-(768)] = data;
serial_count++;
}
if (serial_count == SERIALSIZE)
serial_count = 0;
}
}
unsigned char get_data(void)
{
while(!(UCSR0A&0×80)); // 수신완료될때까지 대기
return UDR0;
}
void send_data(unsigned char data)
{
while(!(UCSR0A&0×20)); // 송신데이터를 받을 준비가 될 때까지 대기
UDR0 = data;
}
UCSR0A = 0×00; // ready flag clear
UCSR0B = 0×98; // rx, tx enable
UCSR0C = 0×06; // tx data len : 8bit
UBRR0H = 0;
UBRR0L = 103; // boudrate 9600
AVR코드소스 : 데이터 수신 인터럽트 및 USART 레지스터 설정
1. 일부 문자를 제어문자로 지정하고(인쇄, 리셋, 데이터 재전송)그 이외의 문자를 지령으로 받습니다.
2. PC의 C# Windows Form 프로그램에서 받은 데이터를 완수하면 완수신호를 지정하여 전송합니다.
3. 최종적으로 C# Windows Form 프로그램과 ATmega128간 양방향 통신이 완성됩니다.
4) 이미지 처리 프로그램 제작
· OpenCV를 활용한 이미지 이진화 및 케니엣지 외곽선 검출
· 픽셀간 최소거리 및 연속 픽셀 추적 알고리즘 구현
public int PixelAccess3(IplImage src) // 픽셀 추적하는 알고리즘
{
if (Cv.Get2D(src, tracky – 1, trackx) == 0) // 위로한칸
{
//Commandbox.Text += “8″;
Cv.Set2D(result, tracky – 1, trackx, 255);
tracky = tracky – 1;
return 8;
}
else if (Cv.Get2D(src, tracky – 1, trackx + 1) == 0) // 위로, 우로한칸
{
//Commandbox.Text += “7″;
Cv.Set2D(result, tracky – 1, trackx + 1, 255);
Cv.Set2D(result, tracky, trackx + 1, 255);
tracky = tracky – 1;
trackx = trackx + 1;
return 7;
}
else if (Cv.Get2D(src, tracky, trackx + 1) == 0) // 우로한칸
{
//Commandbox.Text += “4″;
Cv.Set2D(result, tracky, trackx + 1, 255);
trackx = trackx + 1;
return 4;
}
else if (Cv.Get2D(src, tracky + 1, trackx) == 0) // 아래로한칸
{
//Commandbox.Text += “2″;
Cv.Set2D(result, tracky + 1, trackx, 255);
tracky = tracky + 1;
return 2;
}
else if (Cv.Get2D(src, tracky + 1, trackx + 1) == 0) // 우측 아래로 한칸
{
//Commandbox.Text += “1″;
Cv.Set2D(result, tracky + 1, trackx + 1, 255);
Cv.Set2D(result, tracky, trackx + 1, 255);
tracky = tracky + 1;
trackx = trackx + 1;
return 1;
}
else if (Cv.Get2D(src, tracky – 1, trackx – 1) == 0) // 좌측 위로 한칸
{
//Commandbox.Text += “9″;
Cv.Set2D(result, tracky – 1, trackx – 1, 255);
Cv.Set2D(result, tracky, trackx – 1, 255);
tracky = tracky – 1;
trackx = trackx – 1;
return 9;
}
else if (Cv.Get2D(src, tracky, trackx – 1) == 0) // 좌로한칸
{
//Commandbox.Text += “6″;
Cv.Set2D(result, tracky, trackx – 1, 255);
trackx = trackx – 1;
return 6;
}
else if (Cv.Get2D(src, tracky + 1, trackx – 1) == 0) // 좌측 아래로 한칸
{
//Commandbox.Text += “3″;
Cv.Set2D(result, tracky + 1, trackx – 1, 255);
Cv.Set2D(result, tracky, trackx – 1, 255);
tracky = tracky + 1;
trackx = trackx – 1;
return 3;
}
else
{
//Commandbox.Text += “5″;
return 5;
}
}
C# 소스코드 : 8방향 픽셀 추적 소스코드
조건이 True인 반복문에서, 픽셀 추적 중 중단점에 봉착시 특정 값을 반환하며 Break됩니다.
5) 프로그램 통합
· UART 양방향 통신 프로그램과 OpenCV 이미치 처리 프로그램 통합
기타 사항
1) 회로도
2) 참고문헌
· [ITC] AVR ATmega128 마이크로컨트롤러 – 프로그래밍과 인터페이싱
· NEWTC Stepper Motor 구동모듈 (CS2P) Spec 페이지(http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1314666703)
· NEWTC Stepper Motor (SE-SM243) Spec 페이지(http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1314664246)
· ATmel ATmega128 Datasheet 페이지(http://www.atmel.com/images/doc2467.pdf)
3) 시연영상
https://www.youtube.com/watch?v=xquj91EeptA
https://www.youtube.com/watch?v=r8UjbZxuiPQ
https://www.youtube.com/watch?v=0zRe_e5YE6g
[42호]LED 스틱인두기 제품군 4종 출시
WELLER
LED 스틱인두기 제품군 4종 출시
납땜 작업 분야 최고의 기술을 자랑하는 인두기 전문 브랜드 Weller Electric에서 3구 LED가 탑재된 스틱인두기 제품군을 새롭게 출시했다. 15W, 25W, 40W, 80W의 전력을 가지며, 각각 크기가 다른 인두팁이 장착되어 있다.
3구 LED가 탑재된 Weller의 컨슈머 솔더링 아이언 LED 스틱인두기는 어두운 작업환경에서도 완벽한 사용성을 자랑한다. 사용자를 위해 부드러운 고무재질의 안정적인 그립감을 주도록 손잡이를 원형으로 디자인했으며, 보다 완벽한 Tip의 제어를 위해 핸들이 삼각형으로 제작되었다. 또 스테인레스 스틸을 활용하여 열전도율이 빨라 업무시간 단축과 능률 향상에 기여하는 장점이 있다.
제품특징
· 우수한 납땜 정밀도 및 라이팅 어플리케이션(5mm 크기, 높은 온도, 긴 수명, 평방 피트당 25루멘스의 2구 LED)
· 최고의 편안함과 미끄러짐의 감소를 위하여 고무재질의 소프트 그립 핸들 디자인
· 완벽한 Tip의 제어를 제공하는 삼각형 핸들과 Tip 회전의 용이성을 위한 라운드 핸들
· 고성능, 최대 482℃(LED 스틱인두기 SP80NKO (80W))까지 가열할 수 있는 스테인리스 스틸 히터 기술
· 수명 연장을 위해 코드 스트레인 릴리프(코드 변형 방지)
제품사양
· Material ID : SP80NKO
· Wattage : 80W
· Temperature Range : 482℃
· Voltage Input : 220V
· Included iron Tip : MTG20, 10mm diameter
· Cord length : 1.5M
· Country of Origin : Mexico
· Compatible Tips :
MTG21, chisel, 6.0mm diameter
MTG22, cone, 10.0mm diameter
TEL. 051-325-0777
www.dhscorp.co.kr