<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NTREXGO - 디바이스마트, 엔티렉스 컨텐츠 통합 사이트 &#187; 46호</title>
	<atom:link href="http://www.ntrexgo.com/archives/tag/46%ed%98%b8/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ntrexgo.com</link>
	<description>엔티렉스, 디바이스마트 컨텐츠 통합 사이트</description>
	<lastBuildDate>Thu, 03 Mar 2022 06:47:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>[46호]똑똑이</title>
		<link>http://www.ntrexgo.com/archives/34975</link>
		<comments>http://www.ntrexgo.com/archives/34975#comments</comments>
		<pubDate>Mon, 22 Jan 2018 00:00:59 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[46호]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[ict]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[공모전]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[참가상]]></category>
		<category><![CDATA[프로젝트]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=34975</guid>
		<description><![CDATA[디바이스마트매거진 46호 &#124; 누구나 저렴하게 IoT(Internet Of Thing, 사물인터넷) 가전제품을 이용할 기회를 주는 것이 주된 목적이다.
]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260.png" rel="lightbox[34975]"><img class="alignnone size-large wp-image-34236" alt="Cap 2017-10-18 13-15-49-260" src="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260-620x137.png" width="620" height="137" /></a></p>
<p><span style="background-color: #000000;color: #ffff00;font-size: medium"><strong>2017 ICT 융합 프로젝트 공모전 참가상</strong></span></p>
<p><span style="font-size: large"><strong><span style="font-size: x-large">똑똑이</span></strong></span></p>
<p><span style="font-size: large"><strong><span style="font-size: x-large"><span style="font-size: medium">: 노크 패턴을 통한 적외선 방식의 가전 제품을 </span></span></strong><br />
<span style="font-size: medium"><strong>  간단한 설치에 의해 IoT제품으로 전환해주는 디바이스</strong></span></span></p>
<p style="text-align: right">글 | 가천대학교 강동수</p>
<p style="text-align: right">
<p><span style="color: #0000ff"><strong>1. 심사평</strong></span><br />
<strong>칩센</strong> 소비자(사용자)의 관점에서 접근을 시작한 부분은 매우 높이 평가 할만하다고 생각합니다. 다만 작품의 구성에 들어가는 블루투스 및 적외선 통신 부분에 대한 기술적 이해도가 부족한 것으로 보입니다. 기술적인 부분에 대한 보완이 이루어진다면, 간단하지만 사용자에게는 유용한 제품으로 어필할 수 있을 것입니다.<br />
<strong></strong></p>
<p><strong>뉴티씨</strong> 요즘 추세에 맞게 IoT를 잘 살린 작품이라고 생각됩니다. 노크 패턴 이외에 박수나 목소리로 실내의 가전제품의 상태를 알거나 변경할 수 있으면 더 좋을것이라 생각됩니다.<br />
<strong></strong></p>
<p><strong>위드로봇</strong> 아이디어가 돋보이는 작품입니다. 보고서 만으로는 작품이 잘 동작하는지 확인하기 어려운데, 이 부분이 추가되면 좋을 것 같습니다.</p>
<p><span style="color: #0000ff"><strong>2. 작품 목적 및 개요</strong></span><br />
<span style="color: #3366ff"><strong>2.1. 시대적 가전제품의 특성</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-11.png" rel="lightbox[34975]"><img alt="46 feature ict 똑똑이 (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-11.png" width="615" height="356" /></a><br />
인간의 기술이 발전함에 따라 가전제품에서의 기술 또한 발전했다. 인터넷을 통해서 가전제품들을 조작할 수 있으며, 스마트폰 어플리케이션으로 제품의 상태를 확인한다. 이러한 편리한 세상이 다가오는 만큼 그 환경을 이용할 소비자의 측면에서 기술적 차별이 발생하게 될 것으로 예상한다. 금전적 여유가 있어 부담 없이 이용가능한 사람과 여유가 없어 신기술 이용을 이용함에 있어 부담을 가지는 사람이 발생하여 기술적 빈부차가 발생할 것이다. 이러한 문제점을 극복하고자 누구나 저렴하게 IoT(Internet Of Thing, 사물인터넷) 가전제품을 이용할 기회를 주는 것이 주된 목적이다.</p>
<p><span style="color: #3366ff"><strong>2.2. 편의성 증대</strong></span><br />
취침을 위해 침대에 누었는데 불이 켜져 있는 경우, 방 안에 있는데 거실의 TV 볼륨이 시끄러운 경우, 에어컨을 켜두고 신발을 신은 경우 등 많은 사람들이 일상생활에서 겪어본 문제점들이다. 우리는 이러한 문제점들을 실감하고 해결방안을 생각해 보았다. 침대에 누워 벽을 두드리면 방의 전등이 꺼지고, 리모컨을 사용하지 않고 방 안의 벽을 두드리면 TV가 꺼지고, 외출을 하면 자동으로 TV나 에어컨이 꺼지면 일상은 더욱 편해질 것이다.</p>
<p><span style="color: #3366ff"><strong>2.3. 비용적인 부담감 저하</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-21.png" rel="lightbox[34975]"><img class="alignnone size-full wp-image-35117" alt="46 feature ict 똑똑이 (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-21.png" width="617" height="353" /></a></p>
<p>근래에 출시되는 신제품은 스마트 에어컨 등 인터넷으로 이용되는 제품들이다. IoT형 가전제품을 이용하길 원하나 사용가능한 기존 제품을 보유하고 있는 저소득층 소비자에게는 IoT제품을 새로 구매하는 것은 현실적으로 불가능하다. 비용적인 측면에서 보나 환경적인 측면에서 보았을 때 새 제품 구입은 소비적으로 낭비라 할 수 있다. 큰 비용을 들이지 않아도 마치 IoT 제품인 것처럼 이용할 수 있는 방법을 고안해내게 되었다.</p>
<p><span style="color: #3366ff"><strong>2.4. 새로운 방식의 조작법</strong></span><br />
기존의 제품들은 직접 제품의 버튼을 눌러 조작하거나 원거리에서는 리모컨의 버튼을 눌러 조작해야한다. 스마트 가전제품의 경우 스마트폰의 어플리케이션으로 제품을 조작하는 방식이 대부분이다. 무언가를 항상 소지하고 있어야만 조작할 수 있다는 번거로움을 없애는 것이 타 제품과의 큰 차이점을 만드는 것이라 판단하여, 벽걸이 액자 및 미술품 등 장식만으로 이용되는 벽을 노크하여 가전제품을 조작하는 방법을 생각했다.</p>
<p><span style="color: #0000ff"><strong>3. 작품 내용</strong></span><br />
<span style="color: #3366ff"><strong>3.1. 세부내용</strong></span><br />
제품은 크게 ‘노크 디바이스’, ‘적외선 디바이스’, ‘스위치 디바이스’, ‘HID 디바이스’ 이렇게 4가지로 구분하며, 통합적으로 ‘똑똑이’라 칭하겠다.</p>
<p><span style="color: #249292"><strong>3.1.1. 노크 패턴 인식 (노크 디바이스)</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-31.png" rel="lightbox[34975]"><img class="alignnone size-large wp-image-35118" alt="46 feature ict 똑똑이 (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-31-287x620.png" width="287" height="620" /></a></p>
<p>사물의 노크를 인식하기 위해 microphone과 같은 공기 중의 진동을 받는 센서가 아닌 물체의 표면 진동을 감지하는 piezo형 transducer 센서를 이용한다. 공기 중의 진동인 음파를 받지 않고 물체의 표면 진동만 받아내는 특성이 있다.<br />
진동 인식을 위해 주파수적인 측면으로 접근하면 탈부착 식으로 사용하는 노크 디바이스에서는 부착되는 사물의 재질이 모두 다르므로 주파수 분해가 노크 인식 상 오류의 원인이 된다. 또한 FFT와 같은 고속연산에 있어서 MCU 단가 상승 원인도 불가피하다. 그러나 고유의 알고리즘을 활용해 재질과 무관하게 노크 인식이 가능하다.<br />
단순히 노크 횟수만을 알아내는 것이 아닌 노크사이 간격의 시간을 측정하여 박자를 이용한 패턴설정 및 인식이 가능하다</p>
<p><span style="color: #249292"><strong>3.1.2. 적외선 통신 (적외선 디바이스)</strong></span><br />
적외선은 기존 가전제품을 IoT방식의 제품으로 전환해주기 위한 매개체이다. 40kHz의 주파수로 32bit의 데이터 통신을 하는데, 회사명, 제품명에 따라 코드는 규칙성을 띈다. prototype 제품에서는 제품 리모컨의 적외선 코드를 직접 수신기로 알아내었으나, 이는 시중의 제품 다양성으로 인해 직접 처리하는 방식은 무리이다. 데이터베이스를 구축하여 회사별, 제품별로 적외선 코드 값을 사용한다.</p>
<p><span style="color: #249292"><strong>3.1.3. Servo Motor를 이용한 전등 스위치 제어 (스위치 디바이스)</strong></span><br />
prototype제품에서는 무게가 9g이며, 출력 토크가 1.6kg/cm인 servo모터를 사용하였으나 물리적 구조상 전등 스위치를 누를만한 힘을 내지 못한다. 회전의 힘을 수직적으로 바꾸기 위해, servo모터를 중심 회전축으로 하여 막대를 이용해 전등 스위치를 수직으로 누를 수 있도록 설계한다. 왼쪽에서 전등스위치를 막대로 누르면 오른쪽에서는 스위치가 올라와 servo모터의 토크가 적은 힘으로 끄고 켜기가 가능하다.<br />
원격 조정뿐 아니라 기존의 방식처럼 전등 스위치를 수동적으로 끄고 켤 수 있도록 터치센서를 이용한다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-41.png" rel="lightbox[34975]"><img class="alignnone size-large wp-image-35119" alt="46 feature ict 똑똑이 (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-41-620x372.png" width="620" height="372" /></a></p>
<p><span style="color: #249292"><strong>3.1.4. HID(Human Interface Device)를 이용한 컴퓨터 제어 (HID 디바이스)</strong></span><br />
학교 강의실 및 강연장에서 발표 자료를 이용한 발표를 할 경우, 대부분 소형 리모컨을 이용한다. 리모컨 또한 분실의 위험성이 존재한다. HID 프로토콜을 이용하여 노크에 의해 페이지를 넘겨 발표의 퍼포먼스를 더해준다.<br />
가정에서 영상파일을 재생중일 때 잠시 멈추어야 할 경우, 일반적으로는 리모컨을 찾아 버튼을 확인한 후 버튼을 눌러 영상을 일시 정지한다. ‘똑똑이’를 사용하는 소비자라면 간단히 테이블을 노크하여 일시 정지할 수 있는 간편함이 있다.</p>
<p><span style="color: #249292"><strong>3.1.5. Bluetooth 4.0 Beacon</strong></span><br />
노크 신호를 받아 명령을 내리는 디바이스는 하나지만, 명령을 받는 디바이스는 적외선 송신 디바이스, 전등 스위치를 제어하는 디바이스, 컴퓨터 제어 신호를 보내주는 디바이스 등 여러개다. 이는 1:N 통신의 네트워크를 구축하는데 단시간의 충전으로 오랜 시간동안 이용하려면 저전력의 Bluetooth 4.0 BLE Beacon을 사용하는 것이 가장 적합하다. Beacon은 3v의 코인 건전지 하나로 1년의 지속시간을 가진다.<br />
Beacon은 Broadcaster모드이며, Scanner모드 디바이스와의 페어링을 요구하지 않는다. 그러므로 노크 디바이스 한 개당 수신 가능한 부가적인 디바이스는 개수의 제한이 없다.</p>
<p><span style="color: #249292"><strong>3.1.6. 사용자에게 초점을 맞춘 인터페이스 구성</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-51.png" rel="lightbox[34975]"><img class="alignnone size-large wp-image-35120" alt="46 feature ict 똑똑이 (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-51-487x620.png" width="487" height="620" /></a></p>
<p>제어될 가전제품의 적외선 코드를 일일이 리모컨으로 입력해두지 않아도 어플리케이션의 데이터베이스를 기반으로 제품의 회사와 제품코드를 검색 및 입력하는 방식으로 적외선 코드를 이용할 수 있다.<br />
어플리케이션을 이용하여 사용자 임의대로 노크 패턴을 설정하여 사용한다.<br />
일반적으로는 하나의 적외선 디바이스로 하나의 가전제품을 제어하지만 적외선 신호의 유효한 각도 범위는 약 120˚이므로 같은 방향으로 유효범위 안에 여러 가전제품들이 있다면 하나의 적외선 디바이스로 여러 제품을 제어할 수 있다. Smart home, Smart classroom 조성을 위해 사용이 가능하다.<br />
또한 가정에서는 스마트폰의 신호를 주기적으로 받아내고, 일정시간 이상 신호를 받지 못하면 실내에 아무도 없다는 것으로 간주하여 미처 끄지 못한 가전제품들을 모두 끄게 해주는 시스템을 도입한다.</p>
<p><span style="color: #3366ff"><strong>3.2. 작품의 경쟁력 및 독창성</strong></span><br />
<span style="color: #249292"><strong>3.2.1. 노크의 인식률</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-61.png" rel="lightbox[34975]"><img class="alignnone size-large wp-image-35121" alt="46 feature ict 똑똑이 (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-61-620x378.png" width="620" height="378" /></a></p>
<p>현재까지 발전되어 온 음성인식 서비스들은 정확하게 음성을 인식하지만, 여러 사람이 섞여서 말을 할 때에는 인식률이 떨어진다. 또한 오디오나 비디오 등 디지털 음원에 의한 음성까지 받아들이는 상태이다.<br />
공기 중의 소리를 이용한 서비스와는 다르게 표면 진동을 이용한 시스템이므로 정확성 면에서 확연한 차이를 볼 수 있다.</p>
<p><span style="color: #249292"><strong>3.2.2. 기존 가전제품과의 호환성</strong></span><br />
새로 출시되는 IoT형 가전제품들은 WiFi를 통해 인터넷에 접속하여 스마트폰으로 제어된다. 이와 달리 기존의 가전제품들은 적외선 통신을 이용한 리모컨으로 제어된다. 기존 제품들도 마치 IoT제품인 것처럼 이용할 수 있도록 고안해내었다.</p>
<p><span style="color: #249292"><strong>3.2.3. 신체적 결함의 차이 극복</strong></span><br />
버튼을 누르는 것이 아닌 ‘똑똑이’를 부착한 면의 어느 부분을 두드려도 작동하기 때문에 키가 닿지 않는 어린이도 쉽게 사용할 수 있다.<br />
거동이 불편한 장애인 및 노인들에게 있어서도 ‘똑똑이’는 일반인들과의 차이를 좁혀준다.</p>
<p><span style="color: #249292"><strong>3.2.4. 오프라인 상태에서의 사용</strong></span><br />
‘똑똑이’는 다른 IoT제품들과는 다르게 WiFi가 아닌 Bluetooth를 이용하기 때문에 중계기로 사용되는 공유기가 필요하지 않을뿐더러 Bluetooth가 이용 가능한 범위에만 있다면 인터넷이 되지 않는 장소에서도 사용가능하다.</p>
<p><span style="color: #249292"><strong>3.2.5. 국내 유사 제품과의 비교</strong></span><br />
국내에서는 크라우드 펀딩에 성공한 사례인 ‘스위처’라는 제품이 있다. 전등 스위치 부분에 탈부착 식으로 간단히 설치되며 스마트폰과 블루투스 페어링이 가능하다. 원격으로 전등의 끄고 켜기가 가능하다.<br />
페어링을 한다는 점에 있어서 ‘똑똑이’와 차이점을 보이는데, ‘똑똑이’는 페어링을 하지 않고 Beacon을 이용하므로 여러 제품을 동시에 제어가능하다.</p>
<p><span style="color: #249292"><strong>3.2.6. 해외 유사 제품과의 비교</strong></span><br />
국외 유사제품으로는 기술적 및 퍼포먼스적 측면으로 보았을 때는 해외 크라우드 펀딩에서 성공적으로 마감한 ‘Knocki’라는 제품이 있다. 이 제품은 노크를 인터페이스로 이용한다는 점에서 ‘똑똑이’와 매우 유사하다.<br />
Knocki는 스마트 기기만을 위한 제품이다. 노크를 인식하는 센서만을 판매하는 중이며, WiFi에 연결되지 않는 기존 적외선 방식 제품들은 이 제품과 연동시킬 수 없다.</p>
<p><span style="color: #0000ff"><strong>4. 환경분석</strong></span><br />
<strong>4.1. 시장성 분석</strong><br />
<span style="color: #249292"><strong>4.1.1. WiFi를 사용하지 않는 IoT 제품</strong></span><br />
현재 똑똑이와 같은 노크형식의 값을 받아 사용하는 Knocki라는 제품이 해외에 존재하지만 Knocki는 WiFi를 이용하는 IoT 제품, 똑똑이와 센싱하는 방법만 같을 뿐 WiFi가 가능하지 않은 지역이거나 IoT 제품이 아닌 일반 제품에서는 사용할 수 없다는 문제점이 존재한다.<br />
똑똑이는 현재 사용되는 기존 제품들을 적외선 값을 이용하여 제어할 수 있다는 점에서 호환성을 띈다.</p>
<p><span style="color: #249292"><strong>4.1.2. 접근성 용이</strong></span><br />
똑똑이는 노크 강도의 민감도 조절이 가능하기 때문에 부착하는 벽이나 사물의 재질과는 상관없다. 따라서 어느 곳에서든 사용 가능하다.<br />
음성인식을 통한 인공지능 형태가 아니고 노크를 통해 제어하는 방식이기 때문에 사용자의 임의대로 형식을 지정해 사용할 수 있다.</p>
<p><span style="color: #249292"><strong>4.1.3. 다양한 제품에 적용 가능</strong></span><br />
에어컨, TV, 빔 프로젝터 등 리모컨을 사용하여 적외선통신을 하는 모든 전자기기들을 컨트롤할 수 있다.</p>
<p><span style="color: #249292"><strong>4.1.4. 보안문제 해결</strong></span><br />
최근 IoT제품의 시대가 다가옴에 따라 데이터와 네트워크 연결이 빈번히 노출될수록 개인 보안문제에 대한 심각성이 두드러지게 되었다.<br />
똑똑이는 블루투스에 의한 인트라넷 서비스를 이용하므로 외부로부터의 침범 확률이 낮다.</p>
<p><span style="color: #3366ff"><strong>4.2. 경제적/사회적 파급효과</strong></span><br />
<span style="color: #249292"><strong>4.2.1. 저비용 IoT 디바이스</strong></span><br />
기존의 스마트홈은 브랜드마다 호환되는 제품이 한정적이고 사용자는 매달 지속적으로 요금을 납부해야 한다.<br />
전등 스위치 제어를 위한 스위치 디바이스의 경우 릴레이를 이용한 별도의 배선 공사를 하지 않고 단지 부착하는 것만으로 사용가능하다.<br />
리모컨을 대체할 수 있으므로 리모컨 분실시 재구매가 필요하지 않다.</p>
<p><span style="color: #249292"><strong>4.2.2. 수업 또는 회의의 질 향상</strong></span><br />
수업이나 회의 중간, 빔 프로젝터 혹은 에어컨을 온오프하려고 리모컨을 찾는 경우, 학생이나 관중들의 집중이 흐트러진다. 똑똑이는 교수 혹은 발표자에게 집중도를 향상시켜 수업 및 회의의 효율을 높일 수 있다.</p>
<p><span style="color: #249292"><strong>4.2.3. 남녀노소 사용자 불문</strong></span><br />
접근성이 용이하기 때문에 어린아이, 시각장애인, 거동이 불편한 노인들도 쉽게 사용가능하다.</p>
<p><span style="color: #0000ff"><strong>5. 기타 (소스코드 및 외형)</strong></span><br />
<span style="color: #3366ff"><strong>5.1 노크 패턴 설정</strong></span></p>
<div class="symple-box gray none" style="text-align:left; width:100%;"> 
<p>#include &lt;Adafruit_NeoPixel.h&gt;<br />
// Pin definitions<br />
const int knockSensor = A0; // Piezo sensor on pin 0.<br />
//const int greenLED = 13; // Status LED<br />
const int PIOpin0 = 11;<br />
const int PIOpin1 = 10;<br />
const int PIOpin2 = 9;</p>
<p>#define StripLEDpin 3<br />
#define NUMPIXELS 12<br />
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, StripLEDpin, NEO_GRB + NEO_KHZ800);</p>
<p>// Tuning constants. Could be made vars and hoooked to potentiometers for soft configuration, etc.<br />
const int threshold = 10; // Minimum signal from the piezo to register as a knock<br />
const int rejectValue = 25; // If an individual knock is off by this percentage of a knock we don&#8217;t unlock..<br />
const int averageRejectValue = 15; // If the average timing of the knocks is off by this percent we don&#8217;t unlock.<br />
const int knockFadeTime = 150; // milliseconds we allow a knock to fade before we listen for another one. (Debounce timer.)</p>
<p>const int maximumKnocks = 20; // Maximum number of knocks to listen for.<br />
const int knockComplete = 1200; // Longest time to wait for a knock before we assume that it&#8217;s finished.</p>
<p>// Variables.<br />
int CinderellaCode[maximumKnocks] = {25, 25, 25, 25, 100, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Cinderella Knock Pattern<br />
int FrozenCode[maximumKnocks] = {100, 50, 25, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Frozen Knock Pattern<br />
int TrippleCode[maximumKnocks] = {25, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};<br />
int KoreanCode[maximumKnocks] = {80, 40 ,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};</p>
<p>int knockReadings[maximumKnocks]; // When someone knocks this array fills with delays between knocks.<br />
int knockSensorValue = 0; // Last reading of the knock sensor.</p>
<p>void setStripLED(int r, int g, int b)<br />
{<br />
for(int i=0;i&lt;12;i+=2)<br />
{<br />
pixels.setPixelColor(i, pixels.Color(r, g, b)); // Moderately bright green color.<br />
pixels.show(); // This sends the updated pixel color to the hardware.<br />
}<br />
}<br />
void correctStripLED(int r, int g, int b)<br />
{<br />
for(int i=0;i&lt;NUMPIXELS;i++)<br />
{<br />
pixels.setPixelColor(i, pixels.Color(r, g, b)); // Moderately bright green color.<br />
pixels.show(); // This sends the updated pixel color to the hardware.<br />
delay(30);<br />
}<br />
for(int i=0;i&lt;NUMPIXELS;i++)<br />
{<br />
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // Moderately bright green color.<br />
pixels.show(); // This sends the updated pixel color to the hardware.<br />
delay(20);<br />
}<br />
for(int i=0;i&lt;NUMPIXELS;i++)<br />
{<br />
pixels.setPixelColor(i, pixels.Color(r, g, b)); // Moderately bright green color.<br />
pixels.show(); // This sends the updated pixel color to the hardware.<br />
delay(10);<br />
}<br />
for(int i=0;i&lt;NUMPIXELS;i++)<br />
{<br />
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // Moderately bright green color.<br />
pixels.show(); // This sends the updated pixel color to the hardware.<br />
delay(20);<br />
}<br />
}</p>
<p>// Sees if our knock matches the secret.<br />
// returns true if it&#8217;s a good knock, false if it&#8217;s not.<br />
// todo: break it into smaller functions for readability.<br />
boolean validateKnock(int *secretCode)<br />
{<br />
// simplest check first: Did we get the right number of knocks?<br />
int currentKnockCount = 0;<br />
int secretKnockCount = 0;<br />
int maxKnockInterval = 0; // We use this later to normalize the times.</p>
<p>for (int i=0;i&lt;maximumKnocks;i++)<br />
{<br />
if (knockReadings[i] &gt; 0)<br />
currentKnockCount++;</p>
<p>if (*(secretCode+i) &gt; 0) //todo: precalculate this.<br />
secretKnockCount++;</p>
<p>if (knockReadings[i] &gt; maxKnockInterval) // collect normalization data while we&#8217;re looping.<br />
maxKnockInterval = knockReadings[i];<br />
}</p>
<p>if (currentKnockCount != secretKnockCount)<br />
return false;</p>
<p>int totaltimeDifferences = 0;<br />
int timeDiff = 0;<br />
for (int i=0;i&lt;maximumKnocks;i++) // Normalize the times<br />
{<br />
knockReadings[i] = map(knockReadings[i], 0, maxKnockInterval, 0, 100);<br />
timeDiff = abs(knockReadings[i] &#8211; *(secretCode+i));</p>
<p>if(timeDiff &gt; rejectValue) // Individual value too far out of whack<br />
return false;</p>
<p>totaltimeDifferences += timeDiff;<br />
}<br />
// It can also fail if the whole thing is too inaccurate.<br />
if(totaltimeDifferences/secretKnockCount &gt; averageRejectValue)<br />
return false;</p>
<p>return true;<br />
}</p>
<p>void triggerPIO(int *secretCode, int setPIOpin1, int setPIOpin2)<br />
{<br />
if (validateKnock(secretCode) == true)<br />
{<br />
correctStripLED(100, 200, 100);<br />
Serial.println(&#8220;Secret knock correct.&#8221;);<br />
digitalWrite(setPIOpin1, LOW);<br />
digitalWrite(setPIOpin2, LOW);<br />
delay(1000);<br />
digitalWrite(setPIOpin1, HIGH);<br />
digitalWrite(setPIOpin2, HIGH);<br />
}<br />
else<br />
{<br />
Serial.println(&#8220;Secret knock failed.&#8221;);<br />
}<br />
}</p>
<p>// Records the timing of knocks.<br />
void listenToSecretKnock()<br />
{<br />
Serial.println(&#8220;knock starting&#8221;);</p>
<p>for (int i=0;i&lt;maximumKnocks;i++)<br />
knockReadings[i] = 0;</p>
<p>int currentKnockNumber = 0; // Incrementer for the array.<br />
int startTime = millis(); // Reference for when this knock started.<br />
int now = millis();</p>
<p>setStripLED(200, 100, 100); // we blink the LED for a bit as a visual indicator of the knock.<br />
delay(knockFadeTime); // wait for this peak to fade before we listen to the next one.<br />
setStripLED(0, 0, 0);</p>
<p>while ((now-startTime &lt; knockComplete) &amp;&amp; (currentKnockNumber &lt; maximumKnocks))<br />
{<br />
//listen for the next knock or wait for it to timeout.<br />
knockSensorValue = analogRead(knockSensor);<br />
if (knockSensorValue &gt;= threshold) //got another knock&#8230;<br />
{<br />
//record the delay time.<br />
Serial.println(&#8220;knock.&#8221;);<br />
now = millis();<br />
knockReadings[currentKnockNumber++] = now-startTime;<br />
startTime = now;</p>
<p>// and reset our timer for the next knock<br />
setStripLED(200, 100, 100);<br />
delay(knockFadeTime); // again, a little delay to let the knock decay.<br />
setStripLED(0, 0, 0);<br />
}<br />
now = millis();<br />
}<br />
}</p>
<p>void setup()<br />
{<br />
// pinMode(greenLED, OUTPUT);<br />
pinMode(PIOpin0, OUTPUT);<br />
pinMode(PIOpin1, OUTPUT);<br />
pinMode(PIOpin2, OUTPUT);</p>
<p>Serial.begin(9600); // Uncomment the Serial.bla lines for debugging.<br />
Serial.println(&#8220;Program start.&#8221;); // but feel free to comment them out after it&#8217;s working right.</p>
<p>pixels.begin(); // This initializes the NeoPixel library.<br />
setStripLED(0, 0, 0);<br />
digitalWrite(PIOpin0, HIGH);<br />
digitalWrite(PIOpin1, HIGH);<br />
digitalWrite(PIOpin2, HIGH);<br />
}</p>
<p>void loop()<br />
{<br />
// Listen for any knock at all.<br />
knockSensorValue = analogRead(knockSensor);<br />
if (knockSensorValue &gt;=threshold)<br />
{<br />
listenToSecretKnock();<br />
triggerPIO(FrozenCode, PIOpin0, PIOpin0);<br />
triggerPIO(CinderellaCode, PIOpin1, PIOpin1);<br />
triggerPIO(TrippleCode, PIOpin2, PIOpin2);<br />
triggerPIO(KoreanCode, PIOpin0, PIOpin1);<br />
setStripLED(0, 0, 0);<br />
}<br />
}<br />
</div>
<span style="color: #3366ff"><strong>5.2. 적외선 수신 / 송신 부문</strong></span></p>
<div class="symple-box gray none" style="text-align:left; width:100%;"> 
<p>if (irrecv.decode(&amp;results)) {<br />
Serial.println(results.value, HEX);<br />
irrecv.resume(); // Receive the next value }</p>
<p>irsend.sendNEC(0xFF19E6, 32);<br />
</div>
<span style="color: #3366ff"><strong>5.3 3D 프린트로 만든 디바이스의 외형모습</strong></span></p>
<p><del><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-11.jpg" rel="lightbox[34975]"><img class="alignnone size-large wp-image-35115" alt="46 feature ict 똑똑이 (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-11-620x434.jpg" width="620" height="434" /></a> </del></p>
<p><del><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-71.png" rel="lightbox[34975]"><img class="alignnone  wp-image-35122" alt="46 feature ict 똑똑이 (7)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-똑똑이-71-419x620.png" width="620" /></a></del></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/34975/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[46호]한이음 엑스포2017</title>
		<link>http://www.ntrexgo.com/archives/34969</link>
		<comments>http://www.ntrexgo.com/archives/34969#comments</comments>
		<pubDate>Mon, 22 Jan 2018 00:00:51 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[핫 뉴스]]></category>
		<category><![CDATA[46호]]></category>
		<category><![CDATA[hotnews]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[엑스포]]></category>
		<category><![CDATA[전시회]]></category>
		<category><![CDATA[한이음]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=34969</guid>
		<description><![CDATA[디바이스마트 매거진 46호 &#124;  올해로 14년째 열리는 한이음 엑스포는 ‘한이음, 세상을 IcT(잇)다!’라는 슬로건과 함께 ‘ICT 멘토링’ 참가자들의 우수 성과물을 전시 및 시상하고, ICT 주역이 될 대학생 및 취업 준비생에게 미래 비전을 제시했다. ]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-1.jpg" rel="lightbox[34969]"><img alt="46 hot 한이음 (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-1.jpg" width="613" height="398" /></a></p>
<p><span style="background-color: #000000;color: #ffffff"><strong>세상을 잇(ICT)다</strong></span></p>
<p><span style="font-size: x-large"><strong>한이음 엑스포2017</strong></span></p>
<p style="text-align: right">글 | 심혜린 기자 linda@ntrex.co.kr</p>
<p>&nbsp;</p>
<p>2017 한이음 엑스포는 지난 11월 24일과 25일 이틀간 일산 킨텍스 제1전시장 1홀에서 성공적으로 마무리했다. 올해로 14년째 열리는 한이음 엑스포는 ‘한이음, 세상을 IcT(잇)다!’라는 슬로건과 함께 ‘ICT 멘토링’ 참가자들의 우수 성과물을 전시 및 시상하고, ICT 주역이 될 대학생 및 취업 준비생에게 미래 비전을 제시했다. 특히 이번 행사는 ‘2017 SW 교육 페스티벌’의 일환으로 초·중등 교육, SW중심대학 등 소프트웨어 교육 관련 행사와 통합 진행되어 학생들의 발길이 끊이지 않았다. 한이음 공모전과 이브와 ICT 멘토링 수행결과 발표회 등에서 선정된 133건의 우수작품이 전시됐다. 대학교뿐만 아니라 초중고 학생들의 기발한 아이디어 작품들을 둘러볼 수 있어 기자도 눈을 뗄 수 없었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-2.jpg" rel="lightbox[34969]"><img alt="46 hot 한이음 (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-2.jpg" width="613" height="398" /></a></p>
<p>세종대학교 부스에서는 제29회 SW공모대전 학생부 최우수상을 수상한 ‘Handlear’을 전시하였다. 이 작품은 핸들 커버를 활용한 청각 장애인 운전 솔루션으로 청각장애인을 위해서 네비게이션에 대한 다양한 안내를 제공하며 주행 중에 위험상황을 인지하여 위급상황에 대비해 빠른 대처가 가능해 효율적이다. 또한 압력 감지센서를 이용해서 핸들의 좌, 우측 구분이 가능하다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-3.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35073" alt="46 hot 한이음 (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-3.jpg" width="613" height="359" /></a></p>
<p>제29회 글로벌 SW공모대전 은상(미래창조과학부 장관상)을 수상한 ‘Double i’ 는 영유아 간헐적 사시 조기 진단 애플리케이션으로 조기 치료를 위해 병원으로 유도하여 안과 질환(복시, 약시 등)을 예방할 수 있다. 조기 치료를 유도해 영유아의 시력 발달을 도모할 수 있고 향후 이 애플리케이션을 확장해서 당뇨망 막증과 헤르페스성 각막염을 치료할 수 있다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-4.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35074" alt="46 hot 한이음 (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-4.jpg" width="613" height="398" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-5.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35075" alt="46 hot 한이음 (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-5.jpg" width="613" height="358" /></a></p>
<p>조선대학교 부스는 ‘STAR9, 나의 별을 찾아라’ 어플리케이션을 직접 체험할 수 있도록 꾸리고 귀여운 행성 캐릭터를 내세워 많은 인기를 끌었다. 사람의 성향을 8가지 행성으로 분류해 성격유형 진단 검사를 하는 어플리케이션으로 성인 성향검사, 아동 성향검사, 유아 성향검사로 나누어져 있으며 비교적 간단해 쉽게 파악할 수 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-6.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35076" alt="46 hot 한이음 (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-6.jpg" width="613" height="358" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-7.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35077" alt="46 hot 한이음 (7)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-7.jpg" width="613" height="358" /></a></p>
<p>포항제철지곡초에서는 아두이노를 활용한 다양한 DIY를 선보였다. 제 3회 무한상상 메이커스대회 우수상을 받기도 했으며 다양한 학습모델과 놀이를 적용해 컴퓨터 과학 교육을 실시한 우수 사례로 꼽히기도 했다. 빛의 양에 따라 주차 가능 유무를 LED로 알려주는 주차시스템 만들기, 손에 가까이오면 뚜껑을 열어주는 스마트휴지통 만들기, 손으로 톡톡톡 색상을 변경하는 무드톡톡 무드등 만들기 등 실용적인 아이디어가 돋보였다. 포항 시티 만들기는 아름다운 포항의 야경을 표현한 작품으로 컴퓨터 프로그램에서 해당 건물을 클릭하면 LED를 켰다 껐다 할 수 있다. 학생들이 직접 서로 협동해 건물을 하나씩 만들었다는 점에서 의의가 크다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-8.jpg" rel="lightbox[34969]"><img class="alignnone size-large wp-image-35078" alt="46 hot 한이음 (8)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-8-547x620.jpg" width="547" height="620" /></a></p>
<p>SW 교육 우수학교로 선정된 마포고등학교에서는 레고로 만든 골드버그 장치와 ‘LOOP STATION’ 등 다양한 작품을 선보였다. LOOP STATION는 현장에서 녹음한 소리를 계속 반복해 코러스 효과를 내는 등 풍성한 음악을 제작할 수 있으며 녹음된 음에 따라 LED의 높낮이가 달라지도록 만들었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-9.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35079" alt="46 hot 한이음 (9)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-9.jpg" width="619" height="406" /></a></p>
<p>기자가 특히 이번 엑스포에서 유용하다고 생각했던 작품은 ‘The Calli’ 어플리케이션이다. 작품을 만든 메이커는 현재 출시 심사를 앞두고 있다고 하며 자세하게 사용 방법을 설명해주었다. 캘리그라피를 소재로 어플리케이션을 만들었다는 점에서 요즘 트렌드인 디지털 + 아날로그가 합쳐진 타입으로 실제 출시되면 인기가 많을 것으로 예상된다. 보통의 경우 캘리그라피를 서예붓이나 붓펜으로 종이에 캘리그라피를 제작하고, 스캔을 떠 컴퓨터로 보정하는 작업을 거치지만 시간적, 공간적 제약이 많은 사람들을 위해 쉽게 즐기기 어렵다는 단점이 있어 남녀노소 누구나 어려움 없이 원하는 이미지를 제작할 수 있는 어플을 만들고자 했다. 사용해보니 글씨 색상을 바꿀 수도 있고 필터 기능도 있어 완성도 높은 이미지를 제작할 수 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-101.jpg" rel="lightbox[34969]"><img class="alignnone size-large wp-image-35081" alt="46 hot 한이음 (10)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-101-601x620.jpg" width="601" height="620" /></a></p>
<p>전시장 곳곳에는 여러 체험 요소들이 많아 관람에 재미를 더했다. 아주대학교에서는 구글 카드 보드를 직접 만들어 스마트폰을 제품 안에 배치해서 다양하고 재밌는 VR 콘텐츠를 즐길 수 있도록 해 체험해보려는 학생들로 붐볐다. 이 작품은 조립 설명서에 기재되어 있는 과정에 따라서 손쉽게 조립할 수 있고 VR 어플을 이용해서 영상도 시청할 수 있다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-111.jpg" rel="lightbox[34969]"><img class="alignnone size-large wp-image-35082" alt="46 hot 한이음 (11)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-111-450x620.jpg" width="450" height="620" /></a></p>
<p>동의대학교 전자공학과 재학생 5명으로 이루어진 가온누리팀(김진현, 엄상현, 김창영, 양태동, 김성명)은 이번 ‘2017 한이음 공모전’에서 대상을 수상해 직접 수상작 시연을 선보여 주목을 받았다. 가온누리팀은 6자유도 센서를 이용한 다방향 이동 세그웨이를 개발했다. 세그웨이가 전후방으로만 움직이고 조종이 불편한 점을 개선하여 여덟 방향으로 이동이 가능하고 장갑형 무선 조종기로 원격 제어가 가능한 것이 특징이다. 초보자가 숙달하는데 오랜 시간이 걸리고 이동 방향에 제한적이라는 점에 착안해 누구나 쉽게 세그웨이를 이용할 수 있도록 한 점이 좋은 평가를 받았다. 이외에도 ‘2017 한이음 공모전’ 에는 인하대 Alpha Cra팀의 딥러닝 기반의 자율 주행 버스 운행 시스템, 대구가톨릭대의 SNS와 클라우드를 이용한 실시간 협업 스터디 플랫폼, 한신대의 아르바이트 데이터를 마이닝 기법으로 수집, 분석해 시각화한 모두의 통계청 등이 수상했다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-121.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35083" alt="46 hot 한이음 (12)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-121.jpg" width="615" height="388" /></a></p>
<p>한 켠에서는 가상현실(VR)을 체험할 수 있도록 마련해 관람객들의 참여가 활발했다. 조선대학교 산학협력단 프로젝트인 HMD VR 콘텐츠는 광주 전남 관광명소 홍보 및 전시를 위해 제작한 것으로 ‘해남 울돌목 이순신 테마’를 선보였다. 360 video VR, Photo VR이 가능하며 코스별로 립모션 컨트롤 구간이동이 가능하다. 또한 메인 메뉴에서 투어 코스를 선택할 수 있다. 실제로 체험하는 영상을 보니 실감 나게 구현되고 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-131.jpg" rel="lightbox[34969]"><img class="alignnone size-full wp-image-35084" alt="46 hot 한이음 (13)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-131.jpg" width="615" height="388" /></a></p>
<p>작품 전시 외에도 각종 VR, 드론, 코딩 등을 체험할 수 있도록 마련한 부스도 다양했다. 융복합 콘텐츠 스타트업인 ARTINCO(알틴코)에서는 미디어아트 VR 콘텐츠를 선보여 많은 관람객들이 호기심을 가지고 참여했다. ARTINCO는 각종 전시회에서 VR과 뮤지컬을 융복합한 콘텐츠를 시연하고, 체험존을 운영하며 활발하게 활동하고 있는 기업이다. 보통 VR(가상현실)을 생각하면 게임을 연상하곤 하는데 문화기술과 예술의 융복합을 선보여 더욱 새롭고 흥미로운 느낌을 받았다. 관계자는 VR(가상현실) 기술이 단순히 흥미 위주의 기술로 인식하지만, 이런 활동을 통해 사람들의 인식을 개선하고 싶다고 전했다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-141.jpg" rel="lightbox[34969]"><img class="alignnone size-large wp-image-35085" alt="46 hot 한이음 (14)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-141-490x620.jpg" width="490" height="620" /></a></p>
<p>‘가족이 함께하는 Family coding day’ 부스에서 코딩에 적극 참여하려는 가족 단위 관람객들로 붐볐다. 몇 년 전까지만 해도 가족이 함께 코딩을 배우는 체험을 생각하지도 못했었지만, 이제는 2018년 코딩 의무화 교육에 발맞춰 코딩 교육 및 체험이 흔한 풍경이 되었다. 코딩 교육이 학생들을 위한 것이 아닌 누구에게나 참여할 수 있고 다양하게 열려있다는 느낌 또한 받을 수 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-151.jpg" rel="lightbox[34969]"><img class="alignnone size-large wp-image-35086" alt="46 hot 한이음 (15)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-hot-한이음-151-620x410.jpg" width="620" height="410" /></a></p>
<p>취업을 위해 고민하는 대학생들을 위해 커리어컨설팅관을 운영해 진로상담과 취업 정보, 이미지 컨설팅, 면접 메이크업 등의 다양한 취업 프로그램으로 도움을 주기도 했다.</p>
<p>2017 한이음 엑스포는 전년도보다도 더 커진 규모로 학생들의 참신한 아이디어 작품이 전시되어 관람객들의 많은 호응을 이끌었다. 작품을 전시하기만 하는 것이 아닌 ‘ICT 멘토링’ 제도로 ICT 실무 전문가와 3~5명의 대학생들이 한 팀이 돼 현업 실무 기술이 반영된 프로젝트를 진행해 현장에서 필요한 실무 경험을 쌓을 수 있어 학생들의 만족도가 높았다. 관계자는 이 프로젝트로 개인 역량을 쌓을 수 있어 높은 취업률과 참여율을 기록하고 있으며 경쟁력을 갖추고 싶어하는 대학생들에게 좋은 기회가 될 것이라고 말했다. 2017 한이음 엑스포는 다채로운 체험 및 참신한 아이디어를 토대로 밝은 미래를 전망해볼 수 있었다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/34969/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[46호]기상관측용 드론 &amp; 라즈베리파이 기상대 서버</title>
		<link>http://www.ntrexgo.com/archives/34971</link>
		<comments>http://www.ntrexgo.com/archives/34971#comments</comments>
		<pubDate>Mon, 22 Jan 2018 00:00:43 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[46호]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[ict]]></category>
		<category><![CDATA[공모전]]></category>
		<category><![CDATA[드론]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[참가상]]></category>
		<category><![CDATA[프로젝트]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=34971</guid>
		<description><![CDATA[디바이스마트 매거진 46호 &#124; 기상관측용 드론을 설계하고 라즈베리파이 기상대 서버를 설계하여 날씨 측정 데이터를 데이터베이스화 하고 웹 페이지에 날씨 정보를 제공한다. ]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-34236" alt="Cap 2017-10-18 13-15-49-260" src="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260-620x137.png" width="620" height="137" /></a></p>
<p><span style="background-color: #000000;color: #ffff00"><strong>2017 ICT 융합 프로젝트 공모전 참가상</strong></span></p>
<p><span style="font-size: large"><strong><span style="font-size: x-large">기상관측용 드론 &amp; 라즈베리파이 기상대 서버</span><br />
</strong></span></p>
<p style="text-align: right"><strong>글 | 단국대학교 김승권</strong></p>
<p style="text-align: right">
<p><span style="color: #0000ff"><strong>1. 심사평</strong></span><br />
<strong>칩센</strong> 기상관측이라는 시점으로 측정항목을 구성하였고, 그것을 외부 시스템과 연계하려는 부분의 시도 및 여러가지 프로그램 언어를 사용하여 구성을 한 측면은 높이 평가합니다. 이번 작품 측정 시스템의 CORE라고 할 수 있는 드론을 이용하여 어떠한 제품을 만들게 될 경우한 가장 RISK한 부분에 대해 정확히 이해를 하고 있는 것으로 보입니다. 배터리를 늘리면 늘어난 무게로 인해 더 강한 모터 출력이 필요하고, 더 강한 모터 출력을 얻기 위해서는 다시 배터리가 늘어나서 무게가 늘어나는 조건의 충돌이 늘상 반복되게 되어 있습니다. 현재의 측정 시스템의 개선을 보는 것도 중요하겠지만, 드론 자체의 효율적 운용 방안을 고민하여 위에서 말한 드론 사용의 한계를 극복할수 있는 방법에 대한 접근을 하면 또 다른 좋은 결과물이 나올 수 있지 않을까요?<br />
<strong></strong></p>
<p><strong>뉴티씨</strong> 기상 관측용 장비는 최대한 오랫동안 공중에 떠있어야 하기 때문에 배터리의 소모가 심한 드론으로는 부적합할 것 같습니다. 장비를 유선 전원 공급으로 바꾸거나 배터리 소모 문제를 해결할 방법을 찾으면 실용성이 좋아질 것이라 생각됩니다. 실제 유선 장비의 경우 24시간 활용이 가능한 점 등의 잇점으로 활용이 되고 있음을 감안하여 사용하면 좋겠습니다.<br />
<strong></strong></p>
<p><strong>위드로봇</strong> 드론 기체가 센서 측정에 미치는 영향을 좀 더 검토해 봤으면 합니다.</p>
<p><span style="color: #0000ff"><strong>2. 작품 개요</strong></span><br />
<span style="color: #3366ff"><strong>2.1. 설계 주제</strong> </span><br />
기상관측용 드론을 설계하고 라즈베리파이 기상대 서버를 설계하여 날씨 측정 데이터를 데이터베이스화 하고 웹 페이지에 날씨 정보를 제공한다.</p>
<p><span style="color: #3366ff"><strong>2.2. 주제 선정 배경</strong> </span><br />
우리나라는 산악형 지형국가이며 국토가 좁기 때문에 날씨의 돌발변수가 많고, 예측하기 힘든 기후이다. 최근 기상청에서는 550억을 투자하여 슈퍼컴퓨터를 구입했으나 여전히 잦은 오보로 신뢰도를 잃고 있다. 기존의 기상 관측 장비는 대부분 지상에 고정되어 관측되기 때문에 인간 활동에 영향을 미치는 대기 경계층 내의 기상현상 관측자료가 부족하다. 미세먼지 측정장비 또한 인간활동이 주로 일어나는 지역이 아닌 건물 옥상 등에 고정되에 측정을 하기 때문에 인간이 실제로 느끼는 미세먼지 농도와는 전혀 다른 수준의 데이터를 측정하고 있다. 이러한 이유로 인하여 기상현상이 실제로 일어나는 위치, 인간이 활동하는 위치에서 기상정보 및 미세먼지 농도를 측정할 수 있도록 기상관측용 드론을 설계하기로 했다.</p>
<p><span style="color: #3366ff"><strong>2.3. 기상 관측방법</strong> </span><br />
·  라즈베리파이를 이용하여 미세먼지 센서, 온습도 센서를 장착하여 기상정보를 측정한다.<br />
·  기상측정 시작 버튼을 눌러 센서로부터 기상정보를 수집하고 데이터베이스에 저장한다.<br />
·  드론을 측정하고자 하는 위치에 호버링을 시킨다. (호버링 : 헬리콥터가 제자리에서 정지비행을 할 때를 말한다.)<br />
·  기상측정이 끝나면 안전하게 착륙시키고, 기상측정 정지버튼을 눌러 기상측정을 중단시킨다.<br />
·  측정한 기상정보는 데이터베이스에 누적되고, Apache 웹서버를 통해 웹페이지를 구성하여 시각적으로 기상 데이터를 확인할 수 있다.</p>
<p><span style="color: #0000ff"><strong>3.부품리스트</strong></span></p>
<p><strong><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-16.png" rel="lightbox[34971]"><img alt="46 feature ict 01 기상관측대 (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-16-620x328.png" width="620" height="328" /></a></strong></p>
<p><span style="color: #0000ff"><strong>4. 설계과정</strong> </span><br />
<span style="color: #3366ff"><strong>4.1. 드론 기구부</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-11.jpg" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35092" alt="46 feature ict 01 기상관측대 (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-11-620x423.jpg" width="620" height="423" /></a></p>
<p>이번 설계에 사용된 드론은 Tarot사의 Robocat270이라는 모델이다. 라즈베리파이와 각종 센서를 장착하고 일정시간 비행을 하려면 고성능의 드론이 필요하다. 시중에서 판매하는 드론은 완충 상태로 비행 시간이5~6분에 불과하기 때문에 기상 관측용으로 사용하기에는 적합하지 않다. 또한 라즈베리파이와 센서들이 추가되면 무게가 증가하기때문에 추력이 부족한 드론일 경우 비행을 하지 못하거나 비행시간은 더욱 짧아질 것이다. Robocat270모델을 선택한 가장 중요한 이유는 커스터 마이징이 가능하다는 점이다. DJI사의 매빅프로, 팬텀4, 인스파이어, Xyma사의 X5C, X5W, X8C 등 입문용, 전문가용 드론을 판매하고 있지만 이러한 드론은 프레임을 자유자재로 바꿀 수 없다. 반면 Robocat270은 Racing Drone으로 만들어졌기 때문에 배터리도 LiPo 용량별로 바꿔서 장착할 수 있으며, 프레임에 센서, 안테나, 카메라 등 다양한 장비를 쉽게 부착할 수 있다는 장점이있다.</p>
<p><span style="color: #288dd6"><strong>4.1.1. 드론 기구부 설계 (Fusion 360 CAD)</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-21.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35095" alt="46 feature ict 01 기상관측대 (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-21-620x398.png" width="620" height="398" /></a><br />
설계에 있어서 정확성을 요구하는 것은 필수적이다. 드론은 특히 무게 중심이 안맞으면 추락사고로 이어질 수 있기 때문에 추가적인 기구부를 설계할 때는 3D 모델링 프로그램을 사용하여 제작하는 것이 중요하다고생각했다. 드론 하단에 프로펠러의 바람으로 인하여 와류가 발생하면 기체의 중심이 흔들릴 수 있기 때문에 정밀하게 설계를 진행했다<br />
먼저 드론의 전체적인 설계도를 그린 뒤 드론의 비행에 영향을 안미치는 범위에서 하판을 추가하고, 송, 수신기의 위치, 드론 컨트롤러의 위치를 고려한 결과 드론 프레임 내부에는 온습도 센서와 전압 레귤레이터만장착할 수 있었다. 하판에는 미세먼지 센서와 라즈베리파이를 배치해 본 뒤 적절한 위치를 선정했다.<br />
마지막으로 실제 색상을 입힌 뒤 문제를 발생시킬 요소를 찾고, 수정을 거쳐 최종 디자인을 결정했다. Fusion360 프로그램에는 3D모델링뿐만아니라 캐드 도면도 추출할 수 있었기 때문에 인쇄를 한 뒤 포맥스를 재단하여 하판을 추가했다.</p>
<p><span style="color: #288dd6"><strong>4.1.2.최종 모델링</strong></span></p>
<p><strong></strong><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-31.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35097" alt="46 feature ict 01 기상관측대 (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-31-456x620.png" width="456" height="620" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-41.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35099" alt="46 feature ict 01 기상관측대 (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-41-439x620.png" width="439" height="620" /></a></p>
<p><span style="color: #3366ff"><strong>4.2. 라즈베리파이 설계</strong> </span></p>
<p><span style="color: #288dd6"><strong>4.2.1. 프로그래밍 언어 선택</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-51.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35101" alt="46 feature ict 01 기상관측대 (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-51-620x172.png" width="620" height="172" /></a><br />
라즈베리파이에서 사용할 수 있는 언어는 매우 다양하다. Java, Python, WiringPi 등 활용할 수 있는 언어는 많지만, 설계를 할 때 확장성을 중요시했기 때문에 파이썬을 선택했다. WiringPi는 아두이노와 함수가 비슷하기때문에 사용하기 편리하다는 장점이 있지만 MySQL이나 웹 서버에 연동하기 힘들다. 파이썬은 라이브러리만 몇 개 추가하면 MySQL 데이터 베이스 접근이나 PHP, HTML통신이 간단하기 때문에 파이썬을 선택했다.</p>
<p><span style="color: #288dd6"><strong>4.2.2. 미세먼지 센서</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-21.jpg" rel="lightbox[34971]"><img class="alignnone size-full wp-image-35094" alt="46 feature ict 01 기상관측대 (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-21.jpg" width="338" height="273" /></a><br />
이번 설계에 사용된 미세먼지 센서는 PM1001 모델이다. 이 센서는 1um의 초미세먼지까지 측정할 수 있다는 장점이 있다. 보통 MCU를 사용하여 센서 데이터를 수신받으려면 ADC가 내장된 MCU를 사용하거나, ADC를 따로 사용하여 시리얼 입력을 받을 수 있다. 이 센서는 내부에 회로가 구성되어 있어 UART 통신으로 센서 데이터를 주고받을 수 있다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>BaudRate=9600bps<br />
Startbit=1bit<br />
Databit=8bit<br />
Stopbit=1bit<br />
Checkbit=null</p>
</div>
<p>위의 프로토콜을 지켜준 뒤 패킷을 송신하면 센서에서는 응답을 보내주는 방식이다.<br />
데이터시트에 따르면 센서 측정을 하기 위해서는 다음과 같은 패킷을 전송해야한다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>SEND : 0&#215;11, 0&#215;01, 0&#215;01, 0xED<br />
Respone : 0&#215;16, 0x0D, 0&#215;01, 4Byte PMValue, 4Byte PMValue, [CS]
</div>
<p>먼지 데이터는 4바이트로 나누어 수신하게 되며, 배열로 저장하여 index마다 2^24, 2^16, 2^8, 2^0을 곱하여 모두 더한 값이 PCS 값이다. 미세먼지 농도는 다음과 같은 공식으로 정리된다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>미세먼지농도 = ((PCS값) * 3,528)/100,000</p>
</div>
<p>라즈베리파이3는 모델 3B 부터 BLE, Wifi가 모듈이 추가되면서 RX, TX핀을 사용하는것이 어렵기 때문에 USB to Serial Convert모듈을 사용했다.<br />
미세먼지센서를 사용하기 위해선 Python Serial 라이브러리를 추가해야한다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Raspberry Pi Console<br />
sudoapt-getinstallpython-serial, python-dev<br />
Python Test # Source Code<br />
importserial #Serial Class추가<br />
importtime #Delay함수를 사용하기 위한 time class 추가<br />
importos<br />
fd=serial.Serial(&#8220;/dev/ttyUSB0&#8243;,9600) #/dev/ tty USB0- USB to UART Convert 모듈<br />
Data=&#8221;\x11\x01\x01\xED&#8221; #송신 패킷<br />
dust=0 #미세먼지 농도 저장 변수<br />
convert=&#8221;" #수신받은 데이터(문자열)를 16진수로 변환<br />
respone=&#8221;" #응답데이터를 수신받을 변수<br />
integer=[0foriinxrange(16)] #정수형 변수<br />
c=[0foriinxrange(16)]
defSend_CMD(): #패킷 전송 및 수신 함수 지정</p>
<p>fd.write(Data) #패킷 송신<br />
respone=fd.readline(16) #패킷 수신<br />
convert=respone.encode(&#8220;hex&#8221;) #16진수로 변환 및 저장<br />
foriinxrange(16): #16개로 나누어 16진수를 문자형 변수에 저장<br />
c[i]=respone[i].encode(&#8220;hex&#8221;)<br />
integer[i]=int(c[i],16) #정수형으로 변환한 뒤 저장<br />
printinteger #수신 패킷 출력<br />
whileTrue: #Loop<br />
Send_CMD() #패킷 전송 함수 호출<br />
pcs=(integer[3]*256*256*256) + (integer[4]*256*256) + (integer[5]*256) + integer[6] #수신받은 데이터를 PCS 값으로 변환<br />
dust=(float(pcs)*3528)/100000 #PCS값을 미세먼지 농도로 변환<br />
printdust #미세먼지 농도 출력<br />
time.sleep(1) #1초간 대기</p>
</div>
<p><span style="color: #288dd6"><strong>4.2.3. 미세먼지 농도 측정 결과</strong> </span><br />
파이썬으로 시리얼 통신을 할 때 16진수로 패킷을 전송하고 수신하는 과정에서 자료형을 변환하는데 문제가 상당히 많았다. 패킷에서 3, 4, 5, 6번 인덱스에 해당하는 데이터는 미세먼지 농도를 계산할 때 사용되는 값이기 때문에 문자열을 16진수로 변환한 뒤, 다시 정수형으로 변환하는 방법으로 데이터를 추출했다. 실내에서 미세먼지농도를 측정했기 때문에 미세먼지 농도가 높게 측정되지 않았다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-61.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35102" alt="46 feature ict 01 기상관측대 (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-61-620x562.png" width="620" height="562" /></a></p>
<p><span style="color: #3366ff"><strong>4.3. 온습도센서</strong></span><br />
온습도센서는 DHT11 모듈을 사용했다. 이 온도센서는 저전력으로 안정적으로 보정된 디지털 신호를 출력한다. 특히 보정용 8비트 마이크로 컨트롤러가 센서 내에 통합되어 온도를 측정하기 때문에 정교한 온도를 측정할 수 있다는 장점이 있다. 이 센서를 사용하기 위해서는 Adafruit DHT11 라이브러리를 추가해야 사용할 수 있다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Raspberry Pi Console<br />
git clone https://github.com/adafruit/Adafruit_Python_DHT<br />
cd Adafruit_Python_DHT<br />
sudo python setup.pyinstall</p>
</div>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Python Test Source Code<br />
importAdafruit_DHTasdht<br />
importtime</p>
<p>whileTrue:<br />
H,T=dht.read_retry(dht.DHT11,4)<br />
print(“Humidity=%f,Temperature=%f%(H,T))</p>
</div>
<p><span style="color: #288dd6"><strong>4.3.1. 온습도 센서 측정 결과</strong> </span><br />
미세먼지 센서 측정은 라즈베리파이 GPIO.BCM 기준 4번 핀을 사용하여 측정하며 비교적 코드가 짧아 설계하는데는 큰 어려움이 없다.</p>
<p><span style="color: #3366ff"><strong>4.4. MySQL 데이터베이스 구축</strong></span><br />
마이크로 컨트롤러나 라즈베리파이와 같은 싱글보드 컴퓨터를 사용할때 가장 큰 문제로 꼽을 수 있는 부분은 센서 데이터 프로그램 실행시에만 확인할 수 있다는 점이다. 이번 설계를 진행함에 있어서 기상정보를 측정하고 센서 데이터를 데이터베이스화하여 저장하는 것이 중요하다고 생각했다. 기상정보를 장기간 누적하는 것은 머신러닝을 통하여 미래의 기상을 예측할 수 있다는 장점이 있다. 데이터베이스 구축은 MySQL, Oracle DB가 대표적인데, 라즈베리파이에서 사용하는 데이터베이스는 MySQL이 편리하며, 정보가 많다. 먼저 데이터베이스를 사용하기전에 라즈베리파이에 MySQL 데이터 베이스를 설치해야 한다. 또한 파이썬 프로그래밍을 통하여 데이터베이스를 사용하기 때문에 파이썬-MySQL데이터 베이스 라이브러리를 추가적으로 설치했다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Raspberry Pi Console<br />
sudo apt-get install mysql-server, mysql-client, php5-mysql, python-mysqldb<br />
root pass word setting : xxxxxxxx<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..MySQL DB 접속방법&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br />
mysql-uroot-p<br />
Enter pass word : xxxxxxxx<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..MySQL DB설정&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br />
create data base embedded; //embedded 데이터베이스 생성<br />
use embedded //embedded 데이터베이스를 사용하도록 설정<br />
create table sense (date varchar(9) NOT NULL, time varchar(7) NOT NULL, humi float NOT NULL, temp float NOT NULL, dust float NOT NULL); //<br />
테이블 이름을 sense로 설정하고 필드를 생성<br />
describe sense; //sense 테이블 요약 정보 확인</p>
</div>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Python Test Source Code<br />
import time<br />
import date time<br />
import Adafruit_DHT as dht<br />
import MySQL db</p>
<p>import RPi.GPIO as GPIO.<br />
import serial.</p>
<p>db = MySQLdb.connect(host=&#8221;localhost&#8221;, user=&#8221;root&#8221;, passwd=“********”, db=“embedded&#8221;).</p>
<p>#데이터베이스연결</p>
<p>cur = db.cursor(). #커서 객체 생성<br />
fd = serial. Serial(&#8220;/dev/ttyUSB0&#8243;,9600)<br />
Data = &#8220;\x11\x01\x01\xED&#8221;.<br />
dust = 0.<br />
convert = &#8220;&#8221;.<br />
respone = &#8220;&#8221;.<br />
integer = [0foriinxrange(16)].<br />
c = [0foriinxrange(16)].<br />
defupload_db(Humi,Temp,Dust):. #데이터베이스 업로드 함수.<br />
Date=str(time.strftime(&#8220;%Y%m%d&#8221;)). #현재 날짜 저장<br />
Time=str(time.strftime(&#8220;%H%M%S&#8221;)). #현재 시간 저장</p>
<p>try:.<br />
query = &#8220;INSERTINTO sense (date, time, temp, humi, dust)&#8221;. // #데이터베이스 업로드 쿼리<br />
&#8220;VALUES(%s,%s,%s,%s,%s)&#8221;.<br />
args=(Date, Time, Humi, Temp, Dust)<br />
print (&#8220;Date : %s, Time : %s, Humidity : %f, Temperature : %f, Dust : %f&#8221; %(Date, Time, Humi, Temp, Dust)) // # 입력 데이터 출력<br />
print &#8220;Writing to data base&#8230;..&#8221;<br />
cur.execute(query,args). // #커서 최종 확인<br />
db.commit() // #데이터베이스 업로드 실행<br />
print &#8221; Write Complete!&#8221;</p>
<p>except:. // #업로드 오류시<br />
db.rollback(). // #해당 작업을 원상 복구<br />
print &#8220;Failed to write data base&#8221;</p>
<p>def Send_CMD():.<br />
fd.write(Data).<br />
respone = fd.readline(16).<br />
convert = respone.encode(&#8220;hex&#8221;).<br />
for i in xrange(16):.<br />
c[i] = respone[i].encode(&#8220;hex&#8221;).<br />
integer[i] =i nt(c[i],16).</p>
<p>while True:.<br />
Send_CMD().<br />
pcs = (integer[3]*256*256*256) + (integer[4]*256*256) + (integer[5]*256) + integer[6].<br />
dust=(float(pcs)*3528)/100000.<br />
H,T=dht.read_retry(dht.DHT11,4).<br />
upload_db(H,T,dust). // #데이터베이스 업로드 함수 호출<br />
time.sleep(1).</p>
</div>
<p><strong><span style="color: #3366ff">4.5. Apache 웹서버 설치 &amp; 데이터 시각화</span> </strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-81.png" rel="lightbox[34971]"><img class="alignnone size-full wp-image-35104" alt="46 feature ict 01 기상관측대 (8)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-81.png" width="346" height="199" /></a><br />
아파치 웹서버는 현재 세계에서 가장 많이 사용되는 웹서버로 ,BSD, 리눅스, 유닉스계열, 윈도우, MAC OS X 등 크로스 플랫폼으로 제작되어 사용이 어렵지 않다. 이번 설계에서는 HTML, PHP 5 둘 다 사용하기 때문에 APM (Apache2, PHP5, MySQL)을 한꺼번에 설치하여 설계를 진행했다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Raspberry Pi Console<br />
sudoapt-get install apache2 libapache2-mod-php5, php5<br />
cd/var/www/html<br />
cp/home/pi/Documents/index.html/var/www/html<br />
sudo chmod755index.html<br />
cd/home/pi/Documents<br />
mkdir fusionchart<br />
git clone https://github.com/fusioncharts/fusioncharts-dist<br />
wget https://github.com/fusioncharts/php-wrapper/tree/master/src/fusioncharts.php<br />
sudocp-R*/var/www/html<br />
cd/var/www/html<br />
sudo chmod755*</p>
</div>
<p><span style="color: #288dd6"><strong>4.5.1. 웹서버 접속 결과</strong></span><br />
라즈베리파이에 아파치 웹서버를 설치한 뒤 fusionchart 툴을 활용하여 데이터베이스를 그래프로 표현하였다. 데이터베이스를 시각화하는 방법으로 fusionchart, plotly 등이 있지만 fusionchart가 그래프를 다양하게 표현할 수 있으며, 데이터베이스뿐만 아니라 데이터를 따로 php 파일에 입력하여 출력할 수 있다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-91.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35105" alt="46 feature ict 01 기상관측대 (9)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-91-620x509.png" width="620" height="509" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-101.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35106" alt="46 feature ict 01 기상관측대 (10)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-101-620x233.png" width="620" height="233" /></a></p>
<p><span style="color: #3366ff"><strong>4.6. 라즈베리파이 GPIO 사용 (Tact Button, LED)</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-111.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35107" alt="46 feature ict 01 기상관측대 (11)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-111-620x407.png" width="620" height="407" /></a></p>
<p>라즈베리파이는 총40개의 GPIO핀을 사용하여 PWM, I2C, SPI등 다양한 기능을 사용할 수 있다. 라즈베리파이를 사용하기 위해서는 Micro 5Pin 단자에 충전기를 연결해야 한다. 하지만 드론에 장착하여 사용하려면 USB 충전기를 사용할 수 없기 때문에 DC to DC Converter를 사용하여5V 출력을 GPIO 단자에 연결하여 전원을 공급했다. 처음에 드론 ECS(전자변속기)에 내장된 BEC를 사용하여 전원 공급을 시도했지만 전류가 부족하여 전원이 꺼지는 문제가 있어 LM2576 DC to DC Converter를 사용하여 이 문제를 해결했다.<br />
GPIO핀은 센서를 연결하여 사용하기도 했지만 드론에 장착하여 사용할 경우 SSH를 사용하여 터미널에 접속하거나 HDMI 포트로 모니터 출력을 확인할 수 없기 때문에 LED와 Tact Button을 사용하여 센서 측정 및 데이터베이스 업로드 시작, 중지, 전원 종료버튼을 만들어 간편하게 시작,종료, 전원 Off기능을 구현했다.</p>
<p><span style="color: #288dd6"><strong>4.6.1. Pull Up Button</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-121.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35108" alt="46 feature ict 01 기상관측대 (12)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-121-620x306.png" width="620" height="306" /></a></p>
<p>GPIO를 사용하여 버튼 상태 입력을 받으려면 PULL UP 또는 PULL DOWN 저항을 회로 구성하여 I/O핀에 연결해야 한다. PULL UP, PULL DOWN 회로를 구성하지 않고 단순히 버튼한 쪽에 VCC 또는 GND를 연결할 경우 버튼이 눌리지 않았을때 Floating 상태가 되기 때문에 I/O 입력상태를 알 수가 없다.</p>
<p><span style="color: #288dd6"><strong>4.6.2. Raspberry Pi GPIO 회로도</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-131.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35109" alt="46 feature ict 01 기상관측대 (13)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-131-546x620.png" width="546" height="620" /></a><br />
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<p>Python Test Source Code<br />
import time<br />
import RPi.GPIOasGPIO<br />
off=17<br />
on=27<br />
LED_R=23<br />
LED_G=22<br />
sd=24<br />
GPIO.setmode(GPIO.BCM) #핀 번호를 BCM 모드로 설정<br />
GPIO.setup(on,GPIO.IN,pull_up_down=GPIO.PUD_UP) # 풀업 입력으로 설정<br />
GPIO.setup(off,GPIO.IN,pull_up_down=GPIO.PUD_UP)<br />
GPIO.setup(sd,GPIO.IN,pull_up_down=GPIO.PUD_UP)<br />
GPIO.setup(LED_R,GPIO.OUT) # LED 출력설정<br />
GPIO.setup(LED_G,GPIO.OUT)<br />
GPIO.output(LED_R,0) # LED Off<br />
GPIO.output(LED_G,0)<br />
def Switch_input(): # 스위치 입력 함수 선언<br />
if(GPIO.input(sd)==0): # 24번 핀입력이 0일 경우<br />
return2 #2를 반환<br />
if(GPIO.input(on)==0):<br />
return1<br />
if(GPIO.input(off)==0):<br />
return0<br />
whileTrue:<br />
fg=Switch_input() #fd 변수에 반환값 저장</p>
<p>iffg==1: #on 버튼 입력시<br />
GPIO.output(LED_G,1) #초록색 LED를 켬<br />
GPIO.output(LED_R,0)</p>
<p>whileTrue: #센서 측정 및 Database 업로드<br />
if(GPIO.input(off)==0): #off 버튼 입력시<br />
break #센서 측정을 멈춘다.<br />
eliffg==2: #sd 버튼 입력시<br />
os.system(&#8220;sudoshutdown-hnow&#8221;) #라즈베리파이를 종료한다.<br />
break<br />
else: #off 버튼 입력시<br />
GPIO.output(LED_G,0)<br />
GPIO.output(LED_R,1) #빨간색 LED를 켬<br />
</div>
<p><span style="color: #33cccc"><strong>4.6.2.1. Raspberry Pi GPIO 테스트 결과</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-141.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35110" alt="46 feature ict 01 기상관측대 (14)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-141-467x620.png" width="467" height="620" /></a></p>
<p><strong><span style="color: #3366ff">4.6.3. 설계 결과</span> </strong><br />
<span style="color: #33cccc"><strong>4.6.3.1. 드론 기구부 결합사진 </strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-151.png" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35111" alt="46 feature ict 01 기상관측대 (15)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-151-620x459.png" width="620" height="459" /></a></p>
<p><span style="color: #33cccc"><strong>4.6.3.2. 라즈베리파이 기판 결합사진 </strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-41.jpg" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35098" alt="46 feature ict 01 기상관측대 (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-41-620x455.jpg" width="620" height="455" /></a></p>
<p><span style="color: #33cccc"><strong>4.6.3.3. 비행 테스트</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-51.jpg" rel="lightbox[34971]"><img class="alignnone size-large wp-image-35100" alt="46 feature ict 01 기상관측대 (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-01-기상관측대-51-407x620.jpg" width="407" height="620" /></a></p>
<p><span style="color: #0000ff"><strong>5. 고찰</strong></span><br />
설계를 진행하면서 주제를 선정하는데 오랜 시간이 걸리지 않았다. 회사 프로젝트, 메이커톤 등 많은 대회를 참가하면서 그 동안 쌓아온 지식을 기반으로 코딩을 했으며, 전자전기공학부 학술동아리 연구방에서 배운 노하우를 기반으로 납땜을 깔끔하게 했다. 설계 목표로 GPIO핀을 사용할 때 인터럽트를 사용하면 추가점수를 반영한다고 했다. Wiring Pi로 테스트 했을 땐 C언어 기반으로 되어 있기 때문에 인터럽트가 정상적으로 동작하는 것을 확인할 수 있었다. 하지만 파이썬으로 프로그래밍 했을 때 인터럽트 기능이 동작하긴 하지만 계속 반복적으로 발생하는 오류로 인하여 인터럽트를 사용할 수 없었다. Wiring Pi 라이브러리를 추가하여 사용해봤지만 똑같은 오류로 동작이 제대로 이뤄지지 않았다. 인터럽트 call back 함수를 호출할 때 전역변수를 사용해도 오류가 생기고, 파라미터를 지정하여 사용해도 오류가 발생하여 더 이상 인터럽트 기능을 사용할 수가 없이 polling 방식으로 구현했다. polling 방식을 사용하면서도 동작에는 큰 이상이 없었으며 정상적으로 설계를 마무리 할 수 있었다. 설계를 진행하면서 단계적으로 설계를 했다. 먼저 주제를 선정하고, 기구부 설계, 프로그래밍, 사전 동작 테스트, 실제 테스트 순서로 진행했으며, 드론의 기구부를 제작할 때 3D 모델링 프로그램을 사용하여 렌더링을 한 뒤 이상이 없는 지 확인한 뒤 도면을 출력하여 포맥스를 재단하였다. 하판으로 포맥스를 사용한 이유는 우드락이나 스티로폼을 사용할 경우 강도가 떨어지기 때문에 라즈베리파이를 보호할 수 없으며, 아크릴이나 합판을 사용할 경우 무게로 인하여 드론이 비행을 하지 못한다는 점을 고려했다.<br />
최종 설계 결과 몇 가지 보완할 부분을 정리하자면 다음과 같다.</p>
<p><span style="color: #288dd6"><strong>1) 온습도 센서 교체</strong></span><br />
사용한 온습도 센서는 DHT11로 온도 측정 범위가 영하를 넘어갈 경우 측정을 못한다는 단점이 있었다. DHT22나 DHT44, SHT11 같은 고성능 온도센서를 사용해야 오차범위를 줄이고 더 정확한 센싱을 할 수 있을 것이다.</p>
<p><span style="color: #288dd6"><strong>2) 호버링</strong> </span><br />
Robocat 270은 장기간 안정화를 거친 뒤 내부 프로그래밍을 하고, 컨트롤 보드를 9축 자이로 센서와 GPS 모듈이 내장된 Naze32 10DOF정도 되는 모델을 사용해야 더 정밀한 제어가 가능하다는 것을 알 수 있었다 . 국내에서는 가격이 비싸기 때문에 알리익스프레스와 같은 해외 직구사이트에서 구매해야 하지만 설계 기간이 제한된 관계로 현재 사용하는 컨트롤 보드를 장착했다. 만약 Naze 32 10DOF로 교체한다면 더 정밀하게 정확한 위치에서 호버링을 할 수 있을 것이다. 또한 측정하는 기상상태에 따라 비행여부를 파악해야 하는데, 실제 테스트를 진행했을 때 당시 바람이 상당히 불었기 때문에 기체가 안정적으로 호버링을 할 수 없었다. 270급 드론보다는 550급 이상 드론을 사용한다면 더 오래, 안정적으로 비행할 수 있을것이다.</p>
<p><span style="color: #288dd6"><strong>3) 배터리</strong> </span><br />
드론에 장착된 배터리는 LiPo 3cell 11.1V 2200mAh, 방전률 25C로 상당히 고출력 배터리이다. 모터 하나당 최대 12A를 소비하기 때문에 실제 테스트 결과 15 ~ 18분정도 연속적으로 비행할 수 있었다. 이번 설계에는 급선회나 고속비행을 하지 않기 때문에 더 오래 날 수 있을 것으로 예상되나, 장시간 비행을 위해서는 배터리 용량을 늘려야 한다. 배터리 용량을 두 배로 늘릴 경우 무게도 같이 증가하기 때문에 현재 사용하는 드론의 추력으로는 부족하다. 결론적으로 550급 이상 드론을 사용하고, 추력이 드론의 배터리를 추가하 고도 남을 정도의 고성능인 모터와 변속기를 사용해야 할 것이다. 설계를 마무리하면서 프로그래밍 스킬을 더욱 익힐 수 있어 유익한 시간이었다고 생각한다. 특히 아두이노 소스코드 (C언어)를 파이썬 코드로 변환하면서 파이썬 프로그래밍에 더욱 자신감이 붙었다. 이 외에도 파이썬 &#8211; MySQL DB 연동, PHP &#8211; HTML 연동, 웹서버 구축, 데이터베이스 구축 등 라즈베리파이를 활용할 수 있는 대부분의 기능과 프로그램을 활용하여 더욱 높은 수준의 설계를 할 수 있었다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/34971/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[46호]STES Panel</title>
		<link>http://www.ntrexgo.com/archives/34982</link>
		<comments>http://www.ntrexgo.com/archives/34982#comments</comments>
		<pubDate>Mon, 22 Jan 2018 00:00:41 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[46호]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[ict]]></category>
		<category><![CDATA[공모전]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[참가상]]></category>
		<category><![CDATA[프로젝트]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=34982</guid>
		<description><![CDATA[디바이스마트 매거진 46호 &#124; ‘Sun Trackable Efficient Solar Panel‘의 약자로 태양을 추적하며 효율성을 증대시킨 태양광 패널이라는 뜻을 가진다. ]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-34236" alt="Cap 2017-10-18 13-15-49-260" src="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260-620x137.png" width="620" height="137" /></a></p>
<p><span style="background-color: #000000;color: #ffff00;font-size: medium"><strong>2017 ICT 융합 프로젝트 공모전 참가상</strong></span></p>
<p><span style="font-size: large"><strong><span style="font-size: x-large">STES Panel</span></strong></span></p>
<p style="text-align: right"><strong>글 | 동양미래대학교 김성곤, 박준규, 신수민</strong></p>
<p style="text-align: right">
<p><span style="color: #0000ff"><strong>1. 심사평</strong></span><br />
칩센 진지하지만 재미있는 발상에서 시작한 작품인 것으로 생각됩니다. 보고서 결론과 같이 1~3%의 효율이 개선되었다면 이 부분은 충분히 유의미한 데이터가 될수 있으리라 봅니다. 다만, 이 작품의 핵심 포인트는 태양광 패널의 표면 상태 유지를 통해 효율을 개선 가능할 것이라는 전제에서 시작한 내용으로 보이므로, 블라인드가 설치된 작품과, 그렇지 않은 작품을 동시 설치하여 일정 기간 이상 실험을 유지하는 것이 필요할 것으로 보여 현재에 보여지는 효율 개선은 신뢰도가 충분하지 않는 것은 사실입니다. 개인적으로 매우 흥미가 있고, 효율 개선의 누적 데이터가 궁금해 지는 작품입니다.<br />
뉴티씨 태양광 추적장비는 많이 만들어왔던 장비기 때문에 예전에 있던것과의 차별성을 두어야 합니다. 모터를 돌렸을 때 동작시 사용되는 전력량 대비 충전량의 효율을 해결하면 좀 더 좋은 작품이 될 수 있을것입니다. 실용적인 측면에서 블라인드로의 태양광 패널 보호 등보다는 주기적으로 자동 세척을 시킨다던가 하는 것이 보다 나았을 것 같습니다. 비가 온다던가 했을 경우도 고려한 제작이 되었으면 좋았을 것입니다.<br />
위드로봇 유사한 상용 제품들이 있는데 차별성을 부각시킬 수 있으면 좋겠습니다.</p>
<p><span style="color: #0000ff"><strong>2. 작품 제목</strong></span><br />
‘Sun Trackable Efficient Solar Panel‘의 약자로 태양을 추적하며 효율성을 증대시킨 태양광 패널이라는 뜻을 가진다.</p>
<p><span style="color: #0000ff"><strong>3. 작품 개요</strong></span><br />
현재 우리가 사용하고 있는 전기에너지는 약 95%가 1차 에너지를 통해 발전된다. 그러나 화석연료는 유한하기 때문에 신-재생에너지의 발전 및 개발과 이를 통한 효율적인 발전 솔루션이 필요하다. 본 작품은 이러한 신-재생에너지 중 ‘태양광 에너지’의 발전 효율 개선에 초점을 맞추어 보았다. 먼저 태양을 추적하여 따라 움직임으로써 발전 효율을 높이고 일몰이나 강수 등 발전을 할 수 없을 때 유지보수를 위하여 필요에 따라 작동하며 태양광패널의 청소를 할 수 있는 블라인드를 구현한다면 효율과 함께 패널의 수명 또한 증대시킬 수 있다.</p>
<p><span style="color: #0000ff"><strong>4. 작품 설명</strong></span><br />
<span style="color: #3366ff"><strong>4.1. 주요 동작 및 특징</strong></span><br />
<span style="color: #28a3a3"><strong>4.1.1. 주요 동작</strong></span><br />
<strong>4.1.1.1. Sun Tracking</strong><br />
효율적인 태양광 발전을 위해선, 태양에서부터 지구로 오는 광자가 태양광 패널에 수직으로 입사해야 한다. 따라서 CdS 센서 4개를 이용해 1축 회전이 가능한 하드웨어를 제작하고 그를 판별할 수 있는 소프트웨어를 작성하였다.</p>
<p><strong>4.1.1.2. 블라인딩과 패널 청소</strong><br />
태양광 발전을 할 땐, 태양광 패널과 입사되는 광자가 수직을 이루는 것 뿐만 아니라 외부적인 요소로 인한 태양패널의 상태도 중요한 역할을 한다. 이를 보안하기 위해 태양광 패널의 효율이 낮아지거나, 비가 내리거나, 저녁이 되었을 때 외부 충격으로부터의 보호를 위해 패널의 표면에 블라인드가 내려오는 동작을 넣었다. 또한 패널의 파손이 아닌 외부에 쌓이는 이물질에 의한 효율 하강을 막기 위해 패널을 청소해 주는 동작도 넣었다.</p>
<p><span style="color: #28a3a3"><strong>4.1.2. 특징</strong></span><br />
본 작품의 1축 회전에 사용된 모터는 1회전 당 스텝이 513이며 유지 토크는 150g/cm이다. 이를 통해 회전축을 1스텝 당 약 0.7의 제어가 가능하여 기어비를 고려하면 1스텝 당 0.175도의 축 각도 제어가 가능하게 된다. 그러나 모터 출력과 축 회전의 안정성을 위하여 한 번 운동에 6스텝 씩 동작하게 하였다.<br />
또한 센서의 데이터를 정수형 아날로그형식으로 읽어내는 것은 판별하는데 있어서 어려움을 가져옴을 확인하고 이를 맵핑하여 간단하게 판별할 수 있게 하였다.<br />
태양광 패널의 블라인드는 패널의 4모서리에 부착한 CdS센서의 값을 받아서 4개의 센서가 모두 어두울 때의 값을 받으면 블라인드가 내려오는 동작을 하며, 아두이노를 통해 나오는 전압과 전류의 값을 받아서 태양광 패널의 발전이 저조할 때 또한 블라인드가 내려온다.</p>
<p><span style="color: #3366ff"><strong>4.2. 전체 시스템 구성 (전체 알고리즘)</strong></span><br />
<span style="color: #28a3a3"><strong>4.2.1. Power Generating System (발전 시스템)</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-13.png" rel="lightbox[34982]"><img alt="46 feature ict STES PANEL (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-13-620x576.png" width="620" height="576" /></a><br />
위 작품은 태양광으로 파워뱅크를 충전하고, 충전된 전력으로 시스템을 구동하는 구조이다.<br />
태양광 패널의 효율은 6.5V, 10.8mA 정도이다.</p>
<p><span style="color: #28a3a3"><strong>4.2.2. Efficiency Improvement System (효율 개선 시스템)</strong></span><br />
위 작품은 태양광 아래에 있어야 한다. 즉 외부에 노출되어 있으므로, 외부적 요소들이 작용을 하게 된다. 몇 가지를 예로 들자면 눈, 비, 먼지 등이 있다. 또한 물리적인 충격도 있는데, 이로 인하여 태양광 패널의 수명이 급격히 줄어들 수 있다.<br />
이를 개선하기 위해 우린 태양광 패널을 필요할 때만 사용하고, 효율이 잘 나오지 않는 저녁이나 흐린 날엔 외부 요소들로부터 패널을 보호해주는 시스템을 만들었다.</p>
<p><span style="color: #3366ff"><strong>4.3. 개발 환경</strong></span><br />
언어 : C 및 Python<br />
Tool : C 기반의 Arduino IDE, Anaconda(Python)<br />
System : Embedded Board로서 Arduino Uno, 데이터 통신 시 사용된 PC</p>
<p><span style="color: #0000ff"><strong>5. 단계별 제작 과정</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-21.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35130" alt="46 feature ict STES PANEL (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-21-620x216.png" width="620" height="216" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-31.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35132" alt="46 feature ict STES PANEL (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-31-620x397.png" width="620" height="397" /></a></p>
<p><span style="color: #3366ff"><strong>5.1. 기초 설계 및 센서 테스트</strong></span><br />
<span style="color: #28a3a3"><strong>5.1.1 패널 초안 설계</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-41.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35134" alt="46 feature ict STES PANEL (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-41-620x462.png" width="620" height="462" /></a></p>
<p><span style="color: #28a3a3"><strong>5.1.2. 전체 구상도</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-51.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35136" alt="46 feature ict STES PANEL (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-51-620x375.png" width="620" height="375" /></a></p>
<p><span style="color: #28a3a3"><strong>5.1.3. 센서부 제작 및 테스트</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-11.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35127" alt="46 feature ict STES PANEL (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-11-620x285.jpg" width="620" height="285" /></a></p>
<p><span style="color: #28a3a3"><strong>5.1.4. 초기 1축 회전 장치 기어 설계</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-61.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35138" alt="46 feature ict STES PANEL (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-61-620x362.png" width="620" height="362" /></a></p>
<p><span style="color: #3366ff"><strong>5.2. 1축 회전 장치 및 패널 제작</strong></span><br />
<span style="color: #28a3a3"><strong>5.2.1. 1축 회전 장치 제작</strong></span><br />
초반 : 요구되는 기어의 판매처를 파악할 수 없어 직접 목재로 기어를 제작하려 함</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-21.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35129" alt="46 feature ict STES PANEL (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-21-593x620.jpg" width="593" height="620" /></a></p>
<p>후반 : 목재 기어 제작의 불가능을 인지하고 아크릴로 재설계 후 제작함</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-71.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35140" alt="46 feature ict STES PANEL (7)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-71-620x427.png" width="620" height="427" /></a></p>
<p>최종 : 모터 토크 부족으로 인하여 모터 추가</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-31.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35131" alt="46 feature ict STES PANEL (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-31-620x320.jpg" width="620" height="320" /></a></p>
<p><span style="color: #28a3a3"><strong>5.2.2. 패널 제작</strong></span><br />
블라인드 결합 작업</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-41.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35133" alt="46 feature ict STES PANEL (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-41-597x620.jpg" width="597" height="620" /></a></p>
<p>하부 프레임 장착을 위한 마운트 조립</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-51.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35135" alt="46 feature ict STES PANEL (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-51-620x617.jpg" width="620" height="617" /></a></p>
<p>하부 프레임과 결합</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-61.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35137" alt="46 feature ict STES PANEL (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-61-620x319.jpg" width="620" height="319" /></a></p>
<p><span style="color: #28a3a3"><strong>5.2.3. 완성 및 테스트-디버깅</strong></span><br />
하드웨어 제작 완료</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-71.jpg" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35139" alt="46 feature ict STES PANEL (7)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-71-620x320.jpg" width="620" height="320" /></a></p>
<p>테스트</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-81.jpg" rel="lightbox[34982]"><img class="alignnone size-full wp-image-35141" alt="46 feature ict STES PANEL (8)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-81.jpg" width="620" height="607" /></a></p>
<p><span style="color: #28a3a3"><strong>5.2.4. 결과</strong></span><br />
그래프</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-81.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35142" alt="46 feature ict STES PANEL (8)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-81-620x242.png" width="620" height="242" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-91.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35143" alt="46 feature ict STES PANEL (9)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-91-620x494.png" width="620" height="494" /></a></p>
<p><span style="color: #28a3a3"><strong>5.2.5. 종합 전압량</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-101.png" rel="lightbox[34982]"><img class="alignnone size-full wp-image-35144" alt="46 feature ict STES PANEL (10)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-101.png" width="613" height="411" /></a><br />
<span style="color: #28a3a3"><strong>5.2.6. 결과 분석</strong></span><br />
시간 간격 당 전압, 전류, 전력의 그래프는 Serial 통신을 통한 데이터를 PC에서 python 코드를 통해 그래프로 시각화하였고 이를 바탕으로 전체 그래프를 그려보았을 때에 블라인드 설치 전과 설치 후의 효율 차이는 대략 1~3% 정도로 나왔다. 이것이 유의미한 지표인지 파악하기에는 어려움이 많지만 블라인드가 유용하지 않다고 단정 짓기에는 이르다는 결론을 내릴 수 있다.<br />
중국과 미국에 존재하는 대규모의 태양광 패널 발전 시설에 이러한 블라인드를 설치한다면 전체 발전 규모 대비 1~3%는 굉장히 큰 규모의 전력이라는 것이 이번 작품 제작을 하면서 느낀 가장 큰 점이다.</p>
<p><span style="color: #0000ff"><strong>6. 기타</strong></span><br />
<span style="color: #3366ff"><strong>6.1. 회로도</strong></span><br />
<span style="color: #28a3a3"><strong>6.1.1. 발전부</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-111.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35145" alt="46 feature ict STES PANEL (11)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-111-620x165.png" width="620" height="165" /></a><br />
<span style="color: #28a3a3"><strong>6.1.2. 제어부</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-121.png" rel="lightbox[34982]"><img class="alignnone size-large wp-image-35146" alt="46 feature ict STES PANEL (12)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-STES-PANEL-121-520x620.png" width="520" height="620" /></a><br />
<span style="color: #3366ff"><strong>6.2. 소스코드</strong></span><br />
<span style="color: #28a3a3"><strong>6.2.1. 아두이노 소스코드</strong></span></p>
<div class="symple-box gray none" style="text-align:left; width:100%;"> 
<p>#include &lt;Stepper.h&gt;</p>
<p>#define cdsRU A0<br />
#define cdsRD A1<br />
#define cdsLU A2<br />
#define cdsLD A3<br />
#define VoltageSensorPin A4<br />
#define AmpereSensorPin A5<br />
#define endSwitch1 2<br />
#define endSwitch2 3<br />
#define blindmotorAnode 4<br />
#define blindmotorCathode 5<br />
boolean blindmotorStatus;</p>
<p>const int delaytime = 240000;<br />
const int SensorMinValue = 0;<br />
const int SensorMaxValue = 800;</p>
<p>float cdsRUvalue, cdsRDvalue, cdsLUvalue, cdsLDvalue = 0;<br />
float VoltageSensorValue, AmpereSensorValue, PowerValue = 0;</p>
<p>const int stpr = 513;</p>
<p>Stepper st1(stpr, 12, 10, 11, 9);<br />
Stepper st2(stpr, 8, 6, 7, 5);</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
int ProcessingValue() {<br />
cdsRUvalue = analogRead(cdsRUvalue);<br />
cdsRDvalue = analogRead(cdsRDvalue);<br />
cdsLUvalue = analogRead(cdsLUvalue);<br />
cdsLDvalue = analogRead(cdsLDvalue);</p>
<p>float cdsRUmappingvalue = map(cdsRUvalue, SensorMinValue, SensorMaxValue, 0, 10);<br />
float cdsRDmappingvalue = map(cdsRDvalue, SensorMinValue, SensorMaxValue, 0, 10);<br />
float cdsLUmappingvalue = map(cdsLUvalue, SensorMinValue, SensorMaxValue, 0, 10);<br />
float cdsLDmappingvalue = map(cdsLDvalue, SensorMinValue, SensorMaxValue, 0, 10);</p>
<p>float RUV = constrain(cdsRUmappingvalue, 0.00, 10.00);<br />
float RDV = constrain(cdsRDmappingvalue, 0.00, 10.00);<br />
float LUV = constrain(cdsLUmappingvalue, 0.00, 10.00);<br />
float LDV = constrain(cdsLDmappingvalue, 0.00, 10.00);</p>
<p>if ((RUV + RDV + LUV + LDV)/4 &gt; 8) {<br />
return 1; // blinding<br />
}</p>
<p>else if ((RUV + RDV) &gt; (LUV + LDV)) {<br />
return 2; // turn right<br />
}</p>
<p>else if ((RUV + RDV) &lt; (LUV + LDV)) {<br />
return 3; // turn left<br />
}</p>
<p>else if ((RUV + RDV + LUV + LDV)/4 &lt; 200) {<br />
return 0; // unblinding<br />
}</p>
<p>else {<br />
return 4; // fixed<br />
}<br />
}</p>
<p>void motorcontrol() {<br />
switch(ProcessingValue()) {<br />
case 0:<br />
unblinding();<br />
break;</p>
<p>case 1:<br />
blinding();<br />
break;</p>
<p>case 2:<br />
for(int s=0; s&lt;6; s++) {<br />
st1.step(1);<br />
st2.step(1);<br />
}<br />
delay(500);<br />
break;</p>
<p>case 3:<br />
for(int s=0; s&gt;(-6); s&#8211;) {<br />
st1.step(-1);<br />
st2.step(-1);<br />
}<br />
delay(500);<br />
break;</p>
<p>case 4:<br />
delay(500);<br />
}<br />
delay(1);<br />
}</p>
<p>void unblinding() {<br />
if (blindmotorStatus == 1 || endSwitch1 == 0) {<br />
while (endSwitch2 == 1) {<br />
digitalWrite(blindmotorAnode, HIGH);<br />
digitalWrite(blindmotorCathode, LOW);<br />
//delay(3000); // unblinding<br />
}<br />
blindmotorStatus != blindmotorStatus;<br />
}<br />
}</p>
<p>void blinding() {<br />
if (blindmotorStatus == 0 || endSwitch2 == 0) {<br />
while (endSwitch1 == 1) {</p>
<p>digitalWrite(blindmotorAnode, LOW);<br />
digitalWrite(blindmotorCathode, HIGH);<br />
//delay(3000); //blinding<br />
}<br />
blindmotorStatus != blindmotorStatus;<br />
}<br />
}</p>
<p>void GeneratingStatus() {<br />
VoltageSensorValue = analogRead(VoltageSensorPin);<br />
AmpereSensorValue = analogRead(AmpereSensorPin);<br />
PowerValue = VoltageSensorValue * AmpereSensorValue;</p>
<p>Serial.print(&#8220;[");<br />
Serial.print(millis());<br />
Serial.print(",");<br />
Serial.print(PowerValue);<br />
Serial.println("]&#8220;);<br />
delay(delaytime);<br />
}</p>
<p>void setup() {<br />
Serial.begin(9600);<br />
st1.setSpeed(7);<br />
st2.setSpeed(7);<br />
pinMode(endSwitch1, INPUT_PULLUP);<br />
pinMode(endSwitch2, INPUT_PULLUP);<br />
pinMode(blindmotorAnode, OUTPUT);<br />
pinMode(blindmotorCathode, OUTPUT);<br />
}</p>
<p>void loop() {<br />
motorcontrol();<br />
GeneratingStatus();<br />
delay(delaytime);<br />
}</p>
</div>
<span style="color: #28a3a3"><strong>6.2.2. PC측 Python 소스코드</strong></span></p>
<div class="symple-box gray none" style="text-align:left; width:100%;"> 
<p>import serial<br />
form numpy import *<br />
import matplotlib.pyplot as plt</p>
<p>ard = serial.Serial(‘COM11’, 9600)<br />
ard.readline()<br />
ard.flush()</p>
<p>lstX = []
lstY = []
<p>plt.ion()<br />
fig = plt.figure()<br />
sf = fig.add_subplot(111)<br />
plt.xlim([0,43200])<br />
plt.ylim([300,1000])<br />
line1, = sf.plot(arrX, arrY, ‘r’)</p>
<p>while True:<br />
bytesR = ard.readline()<br />
lstR = eval(bytesR[:=2].decode())<br />
timeR = lstR[0]/1000.0</p>
<p>lstX.append(timeR)<br />
lstY.append(latR[1])</p>
<p>line1.set_xdata(lstX)<br />
line1.set_ydata(lstY)</p>
<p>plt.draw(), plt.pause(0.00001)<br />
print(‘time:%.3fs, value:%d’ % (timeR, lstR[1]) )</p>
<p>au.close()</p>
</div>
<p><span style="color: #3366ff"><strong>6.3. 참고자료</strong></span><br />
· https://en.wikipedia.org/wiki/Solar_tracker<br />
· https://solarcellcentral.com/index.html<br />
· ‘밑바닥부터 시작하는 딥러닝’ 사이토 고키</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/34982/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[46호]AHC(Active Heave Compensator)</title>
		<link>http://www.ntrexgo.com/archives/34989</link>
		<comments>http://www.ntrexgo.com/archives/34989#comments</comments>
		<pubDate>Mon, 22 Jan 2018 00:00:27 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[46호]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[ict]]></category>
		<category><![CDATA[공모전]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[참가상]]></category>
		<category><![CDATA[프로젝트]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=34989</guid>
		<description><![CDATA[디바이스마트매거진 46호 &#124; 대형 해상크레인이 진입하여 작업할 수 없는 협소한 지역에 소형 해상 구조물을 투입하여 작업을 할 수 있도록 축소된 소형구조물을 제작하여 시뮬레이션을 하는데 목적이 있다.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-34236" alt="Cap 2017-10-18 13-15-49-260" src="http://www.ntrexgo.com/wp-content/uploads/2017/07/Cap-2017-10-18-13-15-49-260-620x137.png" width="620" height="137" /></a></p>
<p><span style="background-color: #000000;color: #ffff00;font-size: medium"><strong>2017 ICT 융합 프로젝트 공모전 참가상</strong></span></p>
<p><span style="font-size: large"><strong><span style="font-size: x-large">AHC(Active Heave Compensator)</span><br />
</strong></span></p>
<p style="text-align: right"><strong>글 | 목포대학교 김권옥</strong></p>
<p>&nbsp;</p>
<p><span style="color: #0000ff"><strong>1. 심사평</strong></span><br />
<strong>칩센</strong> 작품의 설계 의도에 따른 시제품을 제작하였으나, 실험 도중 발생한 문제점을 개선하기 위해 수행한 결과가, 설계 의도를 오히려 약화시키는 형태로 진행된 것으로 보입니다. 실제 현장에 적용하게 될 경우 현재의 데보 환경 보다 훨씬 더 다양한 제약사항과 변수가 생기기 마련인데, 그 변수를 극복하는것이 아닌, 실험 결과 도출을 위한 수정작업이 진행된 듯하여 아쉬움이 듭니다. 구성한 내용에서 key로 보이는 수중 센서 사용 내역과 모터 구동을 위한 calibration 알고리즘 부분의 강화가 필요할 것으로 생각됩니다.<br />
<strong></strong></p>
<p><strong>뉴티씨</strong> 실제 동작하는 샘플을 만들어서, 우리나라도 산유사업에 뛰어들 가능성을 보여주는 작품입니다. 다만 일반적이지 않은 아이템이라서, 어느정도의 실용성을 갖췄는지는 이 분야의 전문가들이 평가해야 할 것으로 생각됩니다. 작품을 완성하는 데, 상당한 시일이 걸렸을 것으로 생각되어, 고생한 학생에게 격려를 보냅니다.<br />
<strong></strong></p>
<p><strong>위드로봇</strong> 시스템 제작에 많은 고생을 했을 것 같습니다. 제어 부분에 대한 연구가 좀 더 보강이 되면 좋겠습니다.</p>
<p><span style="color: #0000ff"><strong>2. 설계목표</strong> </span><br />
<span style="color: #3366ff"><strong>2.1. 작품개요</strong> </span><br />
육상면적이 좁아지고 환경규제가 강화됨에 따라 육상에 석유화학플랜트 및 공항 등의 대형 시설물이 들어서는데 제한이 많아져 해상플랜트에 대한 관심이 증가하고 있는 가운데, 해상에서 진행하는 여러 가지 작업들 중 대형 해상크레인이 진입하여 작업할 수 없는 협소한 지역에 소형 해상 구조물을 투입하여 작업을 할 수 있도록 축소된 소형구조물을 제작하여 시뮬레이션을 하는데 목적이 있다.</p>
<p><span style="color: #3366ff"><strong>2.2. Project 목적 및 목표</strong> </span><br />
수중에서 물체가 움직이지 않도록 하라!<br />
<span style="color: #3366ff"><strong>2.3. 환경 및 제약조건 </strong></span><br />
<span style="color: #269b9b"><strong>2.3.1. 전체 시나리오 </strong></span><br />
① 부유식 설계물에 추가 매달려 있음<br />
② 설계물을 수조에 띄움<br />
③ 수조에 해양파가 작용함<br />
④ 추를 서서히 내려놓아 물속에 잠기게 하여 멈춤<br />
⑤ 해양파에 따라 설계물이 Heave 운동을 함<br />
⑥ 설계물이 Heave 운동을 하더라도 추는 제자리를 유지하도록 해야 함</p>
<p><span style="color: #269b9b"><strong>2.3.2. 환경</strong> </span><br />
① 수조</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-110.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35153" alt="46 feature ict AHC (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-110-620x270.png" width="620" height="270" /></a><br />
② 해양파</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-21.png" rel="lightbox[34989]"><img class="alignnone size-full wp-image-35155" alt="46 feature ict AHC (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-21.png" width="564" height="245" /></a><br />
③ 추</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-31.png" rel="lightbox[34989]"><img class="alignnone size-full wp-image-35156" alt="46 feature ict AHC (3)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-31.png" width="560" height="234" /></a></p>
<p><span style="color: #269b9b"><strong>2.3.3. 제약조건</strong> </span><br />
① 설계물은 부유식이어야 함<br />
② 설계물은 수조에 계류할 예정<br />
③ 설계물의 폭은 0.5m 이내, 높이는 2m 이내, 길이는 1m 이내로 설계<br />
④ 설계물은 일정 수준의 복원성을 가지고 있어야 함<br />
⑤ 설계물은 추를 위치를 유지시킬 때 능동 제어 기법을 사용해야 함<br />
⑥ 사람이 직접 물리적인 힘을 가하지 않는 범위 내에서 추에 전기적/물리적 효 과를 능동적으로 가할 수 있도록 해야 함</p>
<p><span style="color: #269b9b"><strong>2.3.4. 최종목표</strong> </span><br />
설계물이 해양파에 따라 Heave 운동(상하왕복운동)을 하더라도 추는 제자리를 유지하도록 해야 한다.</p>
<p><strong><span style="color: #0000ff">3. 작품 설명</span> </strong><br />
<span style="color: #3366ff"><strong>3.1. 전체형상 </strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-41.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35157" alt="46 feature ict AHC (4)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-41-620x382.png" width="620" height="382" /></a></p>
<p><span style="color: #3366ff"><strong>3.2. 작동원리</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-51.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35158" alt="46 feature ict AHC (5)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-51-620x422.png" width="620" height="422" /></a></p>
<p>·  위에 표시된 모터를 통해 샤프트가 돌아가면서 줄을 내려 추를 내려준다.<br />
·  구조물이 파도에 의해 아래로 내려간다.<br />
· 초음파센서에서 구조물의 위치를 파악한다<br />
· 파악된 위치를 바탕으로 모터쉴드에 명령을 내려 모터를 작동시킨다.<br />
· 모터가 작동하여 피니언 기어를 돌려 와이어와 연결된 랙 기어를 구조물의 양끝으로 이동시킨다.<br />
· 랙 기어와 함께 이동된 와이어의 길이에 따라 위치가 보상된다.<br />
· 반대로 파도에 의해 구조물이 올라간다.<br />
· 초음파센서에서 구조물의 위치를 파악한다.<br />
· 파악된 위치를 바탕으로 모터쉴드에서 명령을 내려 모터를 작동시킨다.<br />
· 모터가 작동하여 피니언 기어를 돌려 와이어와 연결된 랙 기어를 구조물의 안쪽으로 이동시킨다.<br />
· 랙 기어와 함께 이동된 와이어의 길이에 따라 위치가 보상된다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-61.png" rel="lightbox[34989]"><img class="alignnone size-full wp-image-35159" alt="46 feature ict AHC (6)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-61.png" width="613" height="386" /></a></p>
<p><strong><span style="color: #0000ff">4. 설계물 수정사항</span> </strong><br />
<span style="color: #3366ff"><strong>4.1. 제작 중 발생한 문제점 및 해결책</strong> </span><br />
· 제작과정에서 하부구조물의 부피가 늘어나서 계산했던 구조물의 흘수가 변경됨<br />
▶ 목표흘수를 정하고 요구되는 질량을 추가하고 복원력 재계산</p>
<p><span style="color: #3366ff"><strong>4.2. 모터의 전압이 높아 아두이노 보드와 호환X</strong> </span><br />
▶ 모터 변경 및 새로운 모터에 맞는 베어링, 커플링 변경</p>
<p><span style="color: #3366ff"><strong>4.3. 모터와 기어 연결로 인해 샤프트가 길어지면서 랙기어와 피니언기어가 서로 맞물리지 않음</strong> </span><br />
▶ 기어들이 서로 맞물리도록 기준이 되는 판 설치</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-11.jpg" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35152" alt="46 feature ict AHC (1)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-11-620x219.jpg" width="620" height="219" /></a></p>
<p><span style="color: #3366ff"><strong>4.4. 센서가 수중에서 거리측정 X</strong> </span><br />
▶ 공기중에서 실습경험이 있는 센서를 사용하고, 수조 위에 판을 대어 구조물에서 판까지의 거리를 측정함.<br />
<strong></strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-71.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35160" alt="46 feature ict AHC (7)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-71-620x233.png" width="620" height="233" /></a></p>
<p><span style="color: #3366ff"><strong>4.5. Calibration값을 사용한 아두이노 소스의 구동X</strong> </span><br />
▶ Calibration값을 사용하지 않는 아두이노 소스로 변경</p>
<p><span style="color: #0000ff"><strong>5. 제어</strong> </span><br />
<span style="color: #3366ff"><strong>5.1. 제어 기본 알고리즘 </strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-81.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35161" alt="46 feature ict AHC (8)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-81-620x402.png" width="620" height="402" /></a></p>
<p><span style="color: #3366ff"><strong>5.2. 추를 일정 위치에 내리는 소스</strong></span></p>
<div class="symple-box gray none" style="text-align:left; width:100%;"> 
<p>#include&lt;softwareSerial.h&gt; //softwareSerial.h를 포함한다.<br />
#include&lt;Wire.h&gt; //wire.h를 포함한다.<br />
int motor_pin2 = 3; //motor_pin2신호를 3번에서 받겠다.<br />
int pwm_value2 = 0; //pwm_value 2신호를 0번에서 신호를 받겠다.</p>
<p>void setup(){<br />
pinMode(motor_pin2, OUTPUT); //motor_pin2출력설정<br />
}</p>
<p>void lop()<br />
{<br />
if(millis() &lt; 5000)<br />
{ // 아두이노 실행후 5초 이전이라면 pwm값 = 50의 속도를 모터 구동하고 5초가 지나면 모터를 정지하라.<br />
analogWrite(motor_pin2, pwm_value2);<br />
pwm_value2 = 50;<br />
}<br />
else if(millis() &gt; 5000)<br />
{<br />
analogWrite(motor)pin2, pwm_value2);<br />
pwm_valu = 0;<br />
}<br />
}<br />
</div>
<p><span style="color: #3366ff"><strong>5.3. calibration을 적용한 제어 소스</strong> </span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-91.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35162" alt="46 feature ict AHC (9)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-91-620x415.png" width="620" height="415" /></a></p>
<p>위의 소스는 Calibration 값을 사용하여 모터를 구동해 보았는데 구동이 잘 되지 않아서 Calibration 값을 사용하지 않고 소스를 만들어 다시 구동해보기로 했다.<br />
<strong></strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-101.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35163" alt="46 feature ict AHC (10)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-101-466x620.png" width="466" height="620" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-111.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35164" alt="46 feature ict AHC (11)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-111-460x620.png" width="460" height="620" /></a></p>
<p><span style="color: #3366ff"><strong>5.4. Calibration 값을 적용 하지 않은 소스</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-121.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35165" alt="46 feature ict AHC (12)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-121-620x452.png" width="620" height="452" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-131.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35166" alt="46 feature ict AHC (13)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-131-620x412.png" width="620" height="412" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-141.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35167" alt="46 feature ict AHC (14)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-141-604x620.png" width="604" height="620" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-151.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35168" alt="46 feature ict AHC (15)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-151-493x620.png" width="493" height="620" /></a></p>
<p>Calibration 값을 사용하지 않은 소스를 가지고 했는데 Calibration 값을 사용한 소스보다 안정적이고 변하는 오차가 작아서 최종실험 때 Calibration 값을 사용하지 않은 소스를 사용 하기로 함.</p>
<p><span style="color: #0000ff"><strong>6. 모형실험</strong> </span><br />
<span style="color: #3366ff"><strong>6.1. 실험 방법</strong> </span><br />
① 수조에 구조물을 계류한다.<br />
② 추를 내린다.<br />
③ 전원을 켠다.<br />
④ 파도를 친다.<br />
⑤ 실험영상을 촬영한다.<br />
⑥ 영상을 분석한다.</p>
<p><span style="color: #3366ff"><strong>6.2. 실험그래프 및 분석</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-21.jpg" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35154" alt="46 feature ict AHC (2)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-21-620x341.jpg" width="620" height="341" /></a></p>
<p>&nbsp;</p>
<p>(1) 실험 1 (정지, T(주기) = 1500, S = 30,)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-161.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35169" alt="46 feature ict AHC (16)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-161-620x324.png" width="620" height="324" /></a></p>
<p>(2) 실험 2 (KP = 3, KD = 1, 역방향계수 = -1.15, T(주기) = 1500, S = 30,)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-171.png" rel="lightbox[34989]"><img class="alignnone size-full wp-image-35170" alt="46 feature ict AHC (17)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-171.png" width="596" height="307" /></a></p>
<p>실험 1, 2 비교</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-181.png" rel="lightbox[34989]"><img class="alignnone size-large wp-image-35171" alt="46 feature ict AHC (18)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-181-620x324.png" width="620" height="324" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-191.png" rel="lightbox[34989]"><img class="alignnone  wp-image-35172" alt="46 feature ict AHC (19)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-191-620x620.png" width="600" /></a><br />
<a href="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-201.png" rel="lightbox[34989]"><img class="alignnone  wp-image-35173" alt="46 feature ict AHC (20)" src="http://www.ntrexgo.com/wp-content/uploads/2018/01/46-feature-ict-AHC-201-458x620.png" width="600" /></a></p>
<p><span style="color: #3366ff"><strong>6.3. 분석</strong> </span><br />
· 미세한 제어가 되는 것도 있었으나, 대부분의 실험에서 제어가 되지 않는 것으로 파악.<br />
· 원인은 구조물과 추의 움직임이 동일하지 않고, 구조물의 움직임 보다 추의 움직임이 반 박자 느린 것으로 추정된다.</p>
<p><span style="color: #0000ff"><strong>7. 향후 개선방향</strong> </span><br />
1. 구조물의 종방향 길이를 늘려 Pitching을 줄인다.<br />
2. Moon Pool과 렉기어의 길이에 여유를 준다.<br />
3. 구조물의 움직임보다 추의 움직임이 반박자 느리므로 추의 위치를 직접 계측한다.</p>
<p><span style="color: #0000ff"><strong>8. 기대효과 및 활용방안</strong> </span><br />
· 해양작업용 소형 구조물의 요구사항 정립으로 이후 유사한 과제의 개발에 기초 자료로 활용<br />
· 해양작업용 소형 구조물 모형시험 수행으로 여러 시뮬레이션을 하는데 활용할 수 있음<br />
· 구조물의 파랑 중 거동해석을 통한 운동 데이터 확보<br />
· 해양 크레인의 소형 구조물 설계 데이터를 확보<br />
· 모형실험을 통해 실제 현장에서 작업 시 발생할 수 있는 문제점을 분석하여 실제 작업시 발생 가능한 문제점을 사전에 예방할 수 있다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/34989/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
