<?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; devicemart</title>
	<atom:link href="http://www.ntrexgo.com/archives/tag/devicemart/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>RexBot3D @ Inside 3D Printing</title>
		<link>http://www.ntrexgo.com/archives/28312</link>
		<comments>http://www.ntrexgo.com/archives/28312#comments</comments>
		<pubDate>Mon, 27 Jul 2015 09:17:03 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[공지사항 및 뉴스]]></category>
		<category><![CDATA[3dprinter]]></category>
		<category><![CDATA[3D프린터]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[inside]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[RexBot]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[렉스봇]]></category>
		<category><![CDATA[엔티렉스]]></category>
		<category><![CDATA[인사이드]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=28312</guid>
		<description><![CDATA[지난달  6월24일~26일 킨텍스에서 진행한
Inside 3D Printing Expo 전시기간 중
첨단 -[헬로T]에서 저희 부스를 방문한 
홍보 동영상을 소개합니다. ^^]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p style="text-align: center;"> <strong>안녕하세요, 엔티렉스입니다.</strong></p>
<p style="text-align: center;"><strong>저희 엔티렉스의 RexBot이 지난 6월 24일~26일 일산 킨텍스에서 개최된 Inside 3D Printing 전시회에서</strong></p>
<p style="text-align: center;"><strong>헬로T가 저희 부스를 방문한 내용을 소개해드립니다.^^</strong></p>
<p>&nbsp;</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/gj7IQxQuGIg?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/gj7IQxQuGIg?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28312/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MoonWalker Corexy 직교로봇</title>
		<link>http://www.ntrexgo.com/archives/28018</link>
		<comments>http://www.ntrexgo.com/archives/28018#comments</comments>
		<pubDate>Fri, 17 Jul 2015 09:19:18 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[MoonWalker]]></category>
		<category><![CDATA[Corexy]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[로봇]]></category>
		<category><![CDATA[문워커]]></category>
		<category><![CDATA[엔티렉스]]></category>
		<category><![CDATA[직교로봇]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=28018</guid>
		<description><![CDATA[엔티렉스의 야심작!!
CoreXY구조의 직교로봇입니다.
기존의 산업용 로봇에 비하여 가격 경쟁력이 뛰어납니다.]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: center;"><span style="font-size: medium;"><strong>엔티렉스의 야심작!!</strong></span></p>
<p style="text-align: center;"><span style="font-size: medium;"><strong>CoreXY구조의 직교로봇입니다.</strong></span></p>
<p style="text-align: center;"><span style="font-size: medium;"><strong>기존의 산업용 로봇에 비하여 가격 경쟁력이 뛰어납니다.</strong></span></p>
<p style="text-align: center;">
<p style="text-align: center;"><strong><span style="text-decoration: underline; color: #ff6600;"><span style="font-size: medium;">구매상담 : 이원영 팀장, 070-7019-1566, richard@ntrex.co.kr</span></span></strong></p>
<p style="text-align: center;"><span style="font-size: small;"><strong>망설이지 마세요! 연락주세요^^</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28018/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YTN 새프로그램 Let&#8217;s make에 RexBot3D 프린터가 소개되었습니다.</title>
		<link>http://www.ntrexgo.com/archives/28001</link>
		<comments>http://www.ntrexgo.com/archives/28001#comments</comments>
		<pubDate>Thu, 16 Jul 2015 05:53:42 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[공지사항 및 뉴스]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[Let's]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[RexBot]]></category>
		<category><![CDATA[YTN]]></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=28001</guid>
		<description><![CDATA[2015.07.22 (목) 22:00 
YTN 새프로그램
"Let's make" 에 RexBot3D가 나왔습니다.
15분경부터 소개가 되오니 시청하시는데 참고해주세요!!]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><span style="font-size: medium;">2015.07.2 (목) 22:00 </span></p>
<p style="text-align: center;"><span style="font-size: medium;">YTN 새프로그램</span></p>
<p style="text-align: center;"><span style="font-size: medium;">&#8220;Let&#8217;s make&#8221; 에 RexBot3D가 나왔습니다.</span></p>
<p style="text-align: center;"><span style="font-size: medium;">15분경부터 소개가 되오니 시청하시는데 참고해주세요!!</span></p>
<p style="text-align: center;"><span style="font-size: medium;"> </span></p>
<p style="text-align: center;"><span style="font-size: medium;">아래 링크에서 풀버전의 영상을 확인해보세요</span></p>
<p style="text-align: center;"><span style="font-size: medium;"><a href="http://science.ytn.co.kr/program/program_view.php?s_mcd=1148&amp;s_hcd=&amp;key=201507030906326454&amp;page=1" target="_blank">http://science.ytn.co.kr/program/program_view.php?s_mcd=1148&amp;s_hcd=&amp;key=201507030906326454&amp;page=1</a></span></p>
<p style="text-align: center;"><span style="font-size: medium;"> </span></p>
<p>&nbsp;</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a2.png" src="https://lh5.googleusercontent.com/-ZLjuy8I4IoM/VZ3iWK4RFKI/AAAAAAAAC64/NLY3na-knuU/w973-h547-no/a2.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a1.png" src="https://lh5.googleusercontent.com/-Hsf7psB8Msk/VZ3iV7qtyuI/AAAAAAAAC60/5aoUILGGMcA/w973-h547-no/a1.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a4.png" src="https://lh5.googleusercontent.com/-lcHlBn1K5TE/VZ3iXR7kykI/AAAAAAAAC7U/UfG9MkJ32zY/w973-h547-no/a4.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a3.png" src="https://lh5.googleusercontent.com/-MluEhq216PQ/VZ3iV1Bb0lI/AAAAAAAAC6w/buPkcxSfZZU/w973-h547-no/a3.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a5.png" src="https://lh5.googleusercontent.com/-8UWOBpUOu3k/VZ3iXsx7XeI/AAAAAAAAC7M/JmVvIWRYlZo/w973-h547-no/a5.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a8.png" src="https://lh5.googleusercontent.com/-zcrJaI-KJ5I/VZ3iYXcA8ZI/AAAAAAAAC7Y/CCyfVG4nfE4/w973-h547-no/a8.png" width="613" height="345" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" alt="a7.png" src="https://lh5.googleusercontent.com/-J-7pj1LPXxw/VZ3iXVKhIAI/AAAAAAAAC7E/knJ5gRs8j-w/w973-h547-no/a7.png" width="613" height="345" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28001/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maker Faire Seoul 2015</title>
		<link>http://www.ntrexgo.com/archives/27975</link>
		<comments>http://www.ntrexgo.com/archives/27975#comments</comments>
		<pubDate>Wed, 15 Jul 2015 09:17:56 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[공지사항 및 뉴스]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[fair]]></category>
		<category><![CDATA[maker]]></category>
		<category><![CDATA[국립과천과학관]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[메이커]]></category>
		<category><![CDATA[메이커페어]]></category>
		<category><![CDATA[엔티렉스]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=27975</guid>
		<description><![CDATA[Maker Faire Seoul 2015
메이커들의 DIY 축제인 메이커페어 서울, 
그 네 번째 메이커페어 서울 2015를 시작합니다.
2015년 10월 10일(토) ~ 10월 11일(일) / 국립과천과학관]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<h1 style="text-align: center;">Maker Faire Seoul 2015</h1>
<div>
<p style="text-align: center;">
<p style="text-align: center;"><span style="font-size: medium;"><strong>메이커페어 서울 2015를 시작합니다!</strong></span></p>
<p style="text-align: center;"><span style="font-size: medium;">메이커들의 DIY 축제인 메이커페어 서울, 그 네 번째 메이커페어 서울 2015를 시작합니다.</span></p>
<p style="text-align: center;"><span style="font-size: medium;">세계적으로 활발히 일어나고 있는 메이커 운동(Maker Movement)의 시작점이 된 메이커페어는 </span></p>
<p style="text-align: center;"><span style="font-size: medium;">메이크 코리아(한빛미디어)에서 매년 개최합니다.</span></p>
<p style="text-align: center;"><span style="font-size: medium;">메이커페어는 재미있는 아이디어를 실현시킨 프로젝트를 중심으로 진행되는 행사로, 남녀노소 누구나 참가할 수 있습니다. </span></p>
<p style="text-align: center;"><span style="font-size: medium;">메이커, 퍼포머, 강연자, 참가자, 많은 분들의 참가를 기다리고 있습니다.</span></p>
</div>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: medium;"><strong>일시: 2015년 10월 10일(토) 11:00~18:00 – 2015년 10월 11일(일) 11:00~18:00</strong></span></p>
<p style="text-align: center;"><span style="font-size: medium;"><strong>장소: 국립과천과학관</strong></span></p>
<p>&nbsp;</p>
<p><a href="http://www.make.co.kr/?page_id=1336"><img class="aligncenter size-full wp-image-27976" alt="make 광고 웹" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/make-광고-웹.jpg" width="620" height="960" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: left;">메이커페어는 지상최대의 Show &amp; Tell(보여주고 이야기하기)입니다.</p>
<p style="text-align: left;">메이커페어는 발명, 창의성, 무한한 자료 및 재료, 메이커 운동의 쇼케이스로 가족 중심의 행사입니다.</p>
<p style="text-align: left;">메이커페어는 사람들이 각자 만든 것을 서로 보여주고, 직접 뭔가를 만드는 와중에 배운 것들을 공유하는 자리입니다.</p>
<p style="text-align: left;">여기서 말하는 메이커는 기술 매니아부터 공예가(crafter), 교육자, 팅커러(tinkerer), 취미 공학자, 엔지니어,</p>
<p style="text-align: left;">아티스트, 과학 클럽, 학생, 저자, 자신이 제조한 물건을 파는 사람까지, 다양한 사람들을 포괄합니다.</p>
<p style="text-align: left;">다양한 연령대의, 서로 다른 배경을 가진 사람들을 우리는 메이커라 부릅니다.</p>
<p style="text-align: left;">메이커페어의 목적은 이 많은 메이커, 메이커 후보자, 친구, 가족들이 즐겁게 어울릴 수 있도록 정보를 공유하고,</p>
<p style="text-align: left;">네트워킹의 장의 마련하고, 영감을 불어넣어주는 것입니다.</p>
<p style="text-align: left;">첫 메이커페어는 캘리포니아 산 마테오에서 열렸습니다.</p>
<p style="text-align: left;">메이커페어는 해마다 규모가 커져왔고, 작년 2012년의 베이에어리어와 뉴욕에서 진행한 메이커페어에는 도합 16만 명의 사람이 모여들었습니다.</p>
<p style="text-align: left;">그리고 지금은 메이커페어의 영향을 받아 미국뿐만 아니라 세계 여러 나라에서 미니 메이커페어가 개최되고 있고,</p>
<p style="text-align: left;">2012년에 시작한 메이커페어 서울은 올해도 만들기에 관심을 가진 사람들이 모여서 놀 수 있는 축제의 장을 마련하고자 합니다.</p>
<p style="text-align: left;">
<p style="text-align: left;">* 메이커 운동(Maker Movement): 스스로 필요한 것을 만드는 사람들이 만드는 법을 공유하고 발전시키는 흐름을 통칭하는 말</p>
<p style="text-align: left;">
<p style="text-align: left;">자세한 프로그램은 본 페이지를 통해서 업데이트할 예정입니다. <a href="http://www.make.co.kr/?page_id=76">Make 메일링리스트</a>에 등록해놓고 업데이트 내용을 이메일로 받아보세요.</p>
<p style="text-align: left;"><strong>메이커 등록 신청 &gt;&gt; </strong><a href="http://goo.gl/forms/86dPUJ4ScD">최종 모집 진행 중(7월 26일 마감)</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/27975/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>디바이스마트매거진, 업체 및 동아리탐방 신청 접수!!</title>
		<link>http://www.ntrexgo.com/archives/27959</link>
		<comments>http://www.ntrexgo.com/archives/27959#comments</comments>
		<pubDate>Tue, 14 Jul 2015 07:08:13 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[blog-posts]]></category>
		<category><![CDATA[Featured Headlines]]></category>
		<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[ntrex]]></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=27959</guid>
		<description><![CDATA[더 좋은 디바이스마트매거진이 되기 위해, 
이제는 세상 밖으로 직접 뛰어 다닙니다!
업계를 이끄는 선두기업들, 그리고 뜨거운 열정의 동아리/학회까지.
디바이스마트가 이들과 소통하고자 합니다.]]></description>
				<content:encoded><![CDATA[<p style="text-align: center">
<p style="text-align: center"><strong><span style="font-size: large">안녕하세요, 디바이스마트 매거진입니다.</span></strong></p>
<p style="text-align: center"><strong><span style="font-size: large">저희 디바이스마트매거진이, 앞으로 다양한 업체와 동아리들과 직접 소통하고자 합니다.</span></strong></p>
<p style="text-align: center"><strong><span style="font-size: large">자세한 내용은 아래 이미지를 참고해 주시고, </span></strong></p>
<p style="text-align: center"><strong><span style="font-size: large">신청은 아래 신청페이지를 클릭해주세요!</span></strong></p>
<p style="text-align: center">
<p style="text-align: center"><a href="https://docs.google.com/forms/d/1rphlCGCtFu-CIk6HLgf_694O3B_zDdXG1GLM2z7mQwE/viewform?usp=send_form"><span style="color: #ff0000"><strong><span style="font-size: xx-large"><span style="color: #ff0000">여기를 클릭!</span></span></strong></span></a></p>
<p style="text-align: center">
<p style="text-align: center"><strong><span style="font-size: large">많은 참여 부탁드립니다! ^^</span></strong></p>
<p style="text-align: center">
<p style="text-align: center"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/업체동아리탐방-웹.jpg" rel="lightbox[27959]"><img class="aligncenter size-full wp-image-27973" alt="업체동아리탐방 웹" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/업체동아리탐방-웹.jpg" width="620" height="1791" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/27959/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>디바이스마트와 인텔®이 함께하는 IoT 경진대회!</title>
		<link>http://www.ntrexgo.com/archives/27891</link>
		<comments>http://www.ntrexgo.com/archives/27891#comments</comments>
		<pubDate>Tue, 19 May 2015 02:34:21 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[공지사항 및 뉴스]]></category>
		<category><![CDATA[디바이스마트 미디어]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[경진대회]]></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=27891</guid>
		<description><![CDATA[
&#160;
안녕하세요, 디바이스마트입니다.
 
디바이스마트가 인텔®에디슨과 함께 IoT 경진대회를 개최합니다.
 
&#8220;사물인터넷(IoT) 개발을 위한 각종 통합 개발 환경 지원 하드웨어&#8221;를 주제로 하여 진행하며,
 
우승하신 분들께는 상금과 모니터, 인텔®컴퓨트 스틱을 드립니다.
 
기간은 2015년 5월 18일부터 6월 30일까지 응모접수를 하신 후, 
컨텐츠는 7월 4일부터 31일 까지 등록 완료하시면 됩니다.
 
수상자 발표는 8월 7일로 예정되어 있습니다.
 
상세한 경진대회 규칙은 상기 이미지 및 아래 링크를 참조해 주세요.^^
 
디바이스마트 경진대회 공식 페이지
 
신청서 다운 링크
 
 
 
 
 
디바이스마트, 인텔 에디슨과 함께하는 이번 경진대회에 많은 참여 부탁드립니다! 
&#160;
]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/05/iotEvent_디바이스마트.jpg" rel="lightbox[27891]"><img class="aligncenter size-full wp-image-27892" alt="iotEvent_디바이스마트" src="http://www.ntrexgo.com/wp-content/uploads/2015/05/iotEvent_디바이스마트.jpg" width="1200" height="4250" /></a></p>
<p>&nbsp;</p>
<p align="center"><span style="font-size: medium;">안녕하세요, 디바이스마트입니다.</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;"><b>디바이스마트가 </b><b>인텔®에디슨</b>과 함께 <b>IoT 경진대회</b>를 개최합니다.</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;">&#8220;사물인터넷(IoT) 개발을 위한 각종 통합 개발 환경 지원 하드웨어&#8221;를 주제로 하여 진행하며,</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;">우승하신 분들께는 상금과 모니터, 인텔®컴퓨트 스틱을 드립니다.</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;">기간은 <span style="text-decoration: underline;">2015년 5월 18일부터 6월 30일</span>까지 응모접수를 하신 후, </span></p>
<p align="center"><span style="font-size: medium;">컨텐츠는 <span style="text-decoration: underline;">7월 4일부터 31일 까지</span> 등록 완료하시면 됩니다.</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;">수상자 발표는 8월 7일로 예정되어 있습니다.</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;">상세한 경진대회 규칙은 상기 이미지 및 아래 링크를 참조해 주세요.^^</span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;"><a href="http://www.devicemart.co.kr/goods/event.php?seq=356" target="_blank">디바이스마트 경진대회 공식 페이지</a></span></p>
<p align="center"><span style="font-size: medium;"> </span></p>
<p align="center"><span style="font-size: medium;"><a href="http://www.iotedu.co.kr/Event/event_0518/intel_edison.docx" target="_blank">신청서 다운 링크</a></span></p>
<p><span style="font-size: medium;"><b> </b></span></p>
<p><span style="font-size: medium;"><b> </b></span></p>
<p><span style="font-size: medium;"><b> </b></span></p>
<p><span style="font-size: medium;"><b> </b></span></p>
<p align="center"><span style="font-size: medium;"><b> </b></span></p>
<p align="center"><span style="font-size: medium;"><b>디바이스마트, 인텔 에디슨과 함께하는 이번 경진대회에 많은 참여 부탁드립니다! </b></span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/27891/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[30호] 너무 쉬운 아두이노 DIY ② &#8211; 카멜레온 반지 + 빨노파 게임기 만들기</title>
		<link>http://www.ntrexgo.com/archives/28375</link>
		<comments>http://www.ntrexgo.com/archives/28375#comments</comments>
		<pubDate>Fri, 15 May 2015 06:27:24 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[프로젝트]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[jcnet]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[아두이노]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=28375</guid>
		<description><![CDATA[[너무 쉬운 아두이노 DIY(Do It Yourself)]
제이씨넷 신상석 연구소장님의 친절하고 꼼꼼한 강의!
아두이노를 가지고 이것 저것 만들어봅시다.^^
출발!!]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/30-아두이노-카멜레온.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28290" alt="30 아두이노 카멜레온" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/30-아두이노-카멜레온.jpg" width="620" height="246" /></a></p>
<p><strong>             글 ㅣ 신상석 ssshin@jcnet.co.kr</strong></p>
<p>&nbsp;</p>
<table cellpadding="10" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #e6e6fa;" valign="middle">  여러분, 안녕하세요. 앞으로 1년에 걸쳐(6번 정도) [너무 쉬운 아두이노 DIY(Do It Yourself)] 강의를 진행할 강사 신상석입니다.<br />
제 소개 간단히 드립니다.<br />
· 서울대 제어계측공학과(학사) →, KAIST 전산과(석사) → KAIST 전산과(박사 수료)<br />
· ETRI 책임연구원 → 해동정보통신 연구소장 → 욱성전자 연구소장 → (현재) 제이씨넷 연구소장, 상명대학교 컴퓨터시스템공학과 겸임교수, 임베디드홀릭 카페(http://cafe.naver.com/lazydigital) 부매니저, 아두이노 / AVR 강사<br />
· 자격증 : 전자계산기 기술사<br />
· 취미 : 영화보기, 바둑두기, 책읽기, 글쓰기(?), 여행하기, 이야기하기<br />
· 연락처 : ssshin@jcnet.co.kr, 있는그대(cafe.naver.com/lazydigital)<span style="font-size: 11px; line-height: 19px;">이 강의는 아두이노를 가지고 간단하게 생활에 필요한 용품을 만들어 보는 강의입니다. 뚝딱뚝딱 뭔가 자신만의 DIY 용품을 만들어 보는 쏠쏠한 재미가 있는 강의라고나 할까요? 이미 주변에 아두이노와 관련한 많은 책이 출간되었고 카페나 블로그를 통하여 강의가 진행된 경우도 꽤나 많이 있는데도 불구하고, 이 지면을 통하여 강의를 개설한 이유는 다음과 같습니다.</span>&nbsp;</p>
<p>1. 아두이노의 초보자들을 위한 쉽고 재미있는 강의가 거의 없는 것 같아, 가능하면 초등학생(?)까지도 함께 해 볼 수 있는 그런 강의를 한 번 해보고 싶어서…<br />
2. 아두이노를 가지고 뭔가 조금은 다른, 자신만의 창의적인(?) DIY를 할 수 있는 자리를 만들어주고 싶어서…<br />
3. 디바이스마트매거진은 임베디드와 관련된 독자들이 많고, 발행 부수도 많아, 저와 제가 속한 회사(제이씨넷) 그리고 임베디드홀릭 카페의 홍보에 도움이 될 것 같아서…</p>
<p><img class="alignright" style="font-size: 11px; line-height: 19px;" alt="아두이노 계획표" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EA%B3%84%ED%9A%8D%ED%91%9C-300x133.png" width="300" height="133" />현재 구상하고 있는 회차별 내<span style="font-size: 11px; line-height: 19px;">용을 간략</span><span style="font-size: 11px; line-height: 19px;">하게 정</span><span style="font-size: 11px; line-height: 19px;">리해 보면 다음과 같습니다. (변경될 수 있습니다.) 앞으로 즐겁고 알찬 강의가 될 수 있도록 최선을 다할 것을 약속 드리며, </span><span style="font-size: 11px; line-height: 19px;"><span style="font-size: 11px;">이 강의를 보는 독자들도 메일이나 카페를  통하여 Q&amp;A(Question &amp; Answer)나 피드백을 주셔서, 함께 정감을 나눌 수 있는 계기가 되기를 기대해 봅니다.</span></span></td>
</tr>
</tbody>
</table>
<p dir="ltr">   여러분, 안녕하세요. 신상석 강사입니다. 이번 회에서는 컬러 LED를 가지고 만들 수 있는 DIY 작품을 2가지를 만들어 보겠습니다. 하나는 여러가지 색깔로 변하는 ‘카멜레온 반지’이고, 또 하나는 가위 바위 보 게임과 비슷한 ‘빨노파 게임기’입니다. 간단하고 재미있는 DIY이므로, 이를 약간씩 응용하여 최종적으로는 각자 자신만의 개성있는 DIY 작품을 만들어 보면 좋겠습니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 카멜레온 반지                                                                                            </span></strong></span></p>
<p>   카멜레온(chameleon)을 아시나요? ‘땅 위의 사자’라는 뜻을 가진 그리이스어에서 유래한 카멜레온은 주변의 색에 따라 아주 비슷한 보호색으로 변하는 능력을 가진 재주꾼입니다. 자신의 감정을 표현하기 위하여 자신이 원하는 색깔로 변할 수도 있다고 하니, 세상에는 인간 말고도 오묘한 동물이 정말 많은 것 같네요.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-02.jpg" rel="lightbox[28375]"><img class=" wp-image-28392 alignleft" style="margin-left: 10px; margin-right: 10px;" alt="30 카멜레온반지 02" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-02-620x384.jpg" width="260" height="161" /></a></p>
<p> 그런데 “카멜레온 반지”가 뭐냐구요? 아마도 다들 모르실텐데요. 왜냐하면 제가 얼마 전에 작명한 이름이어서요. 카멜레온 반지는 카멜레온처럼 반지의 색깔이 자유자재로 변하는 반지를 말합니다. 가만히 있으면 저절로 색깔이 변하는 반지라고나 할까요?.</p>
<p>&nbsp;</p>
<p>아래 그림은 12개의 달을 상징하는 보석으로 탄생석입니다. 에머랄드, 다이아몬드, 루비… 참 아름답지요. 무엇보다도 알록달록한 색깔이 압권입니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-03.jpg" rel="lightbox[28375]"><img class="aligncenter size-large wp-image-28393" alt="30 카멜레온반지 03" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-03-620x460.jpg" width="620" height="460" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   그래서 오늘은 이렇게 멋진 보석이 콕 박혀있는 반지를 상상하며 12개의 보석으로 변신이 가능한 카멜레온 반지를 만들어볼까 합니다. 반지의 링은 준비가 되었다고 가정하고 보석 부분만 카멜레온처럼 색깔이 변하도록 만들면 될 것 같네요. 그런데, 어떻게 만드냐구요? 예. 컬러 LED로 만들지요.</p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 컬러 LED                                                                                              </span></strong></span></p>
<p>   컬러 LED는 빨강, 녹색, 파랑 LED 3개를 하나로 모아 1개의 캡슐로 씌운 LED입니다. 그러니까 3개의 LED를 바짝 붙여서 한 개의 전구 속에 넣은 것이지요. 요렇게요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-04.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28394" alt="30 카멜레온반지 04" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-04.jpg" width="405" height="294" /></a></p>
<p>다리가 가장 긴 것이 공통 애노드(Anode, +), 또는 공통 캐소드(Cathode, -)로 공통 애노드 타입의 경우는 (+) 핀을 High(VCC, 5V)에 연결하고, R, G, B 핀에는 Low(GND, 0V) 값을 연결하는 경우에만 불이 들어오고, 공통 캐소드 타입의 경우는 반대로 (-) 핀을 Low(GND, 0V)에 연결하고, R, G, B 핀에는 High(VCC, 5V) 값을 연결하는 경우만 불이 들어옵니다. (물론, 지난번 설명처럼 직렬 저항은 연결한다고 가정하였습니다.) 여기서는 아래와 같이 공통 캐소드 타입의 컬러 LED를 사용하여 제작해 보는 것으로 하겠습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-05.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28395" alt="30 카멜레온반지 05" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-05.jpg" width="330" height="248" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: x-small;">(53N RGB 262C-9001, 참조 : 디바이스마트)</span></p>
<p>&nbsp;</p>
<p dir="ltr">  어 그런데, LED가 3개면 다리가 6개라야 되는 것 아닌가요? 다리가 4개 밖에 없는데&#8230;</p>
<p dir="ltr">  예, 원래는 6개지만 (-)에 해당되는 다리는 공통이니까(공통 캐소드), 빨강, 녹색, 파랑, 공통 (-), 이렇게 다리를 4개로 줄일 수 있겠습니다. 지난번 3색 신호등을 만들 때 각 LED의 (-)에 해당되는 것은 모두 GND로 함께 연결한 것을 생각해 보면 쉽게 이해가 갈 겁니다..</p>
<p dir="ltr">  그렇다면, 이 컬러 LED는 빨강, 녹색, 파랑으로 색깔이 고정되어 있는데, 어떻게 카멜레온처럼 여러가지 오묘한 색깔을 나타낼 수 있을까요?</p>
<p dir="ltr">  이 질문에 대한 해답은 바로 빛의 혼합에 있습니다.</p>
<p dir="ltr">  아래 그림은 누구나 초등학교 시절에 한 번은 보았을 것입니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-06.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28396" alt="30 카멜레온반지 06" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-06.jpg" width="541" height="230" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  왼쪽은 빛의 삼원색(빨강(Red), 녹색(Green), 파랑(Blue), RGB)이고, 오른쪽은 색의 삼원색(자홍(Magenta), 청록(Cyan), 노랑(Yellow))입니다. 우리는 LED를 가지고 색깔을 만들 예정이므로 빛의 3원색의 경우만 보면, 3개의 빛이 합해지는 부분에 다른 색이 나타나는 것을 볼 수 있습니다.</p>
<p>&nbsp;</p>
<p dir="ltr">   ■ 빨강 + 녹색 = 노랑</p>
<p dir="ltr">   ■ 녹색 + 파랑 = 청록</p>
<p dir="ltr">   ■ 파랑 + 빨강 = 자홍</p>
<p dir="ltr">   ■ 빨강 + 녹색 + 파랑 = 흰색</p>
<p>&nbsp;</p>
<p dir="ltr">  오. 그렇네요. 이렇게 하니까 4개의 색이 더 만들어졌습니다. 하지만, 탄생석과 같이 알록달록한 여러가지 색은 아직도 만들어지지 않았는데 이것은 어떻게 만들 수 있을까요?</p>
<p dir="ltr">  이것은 광량(빛의 양)에 해답이 있습니다.</p>
<p dir="ltr">  즉, 빨강과 녹색, 파랑을 각각 100%씩 섞으면 흰색이 나오지만, 예를 들어 빨강 100% + 녹색 75% + 파랑 75% 로 빛을 섞으면 핑크(Pink)색이 나오는 원리입니다.</p>
<p dir="ltr">  결국 관건은 우리가 3가지 LED의 광량을 강하게 했다 약하게 했다 조절할 수 있느냐 하는 것인데 결론은 “할 수 있다” 입니다.</p>
<p>  아래 그림을 보시지요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-07.jpg" rel="lightbox[28375]"><img class="aligncenter size-large wp-image-28397" alt="30 카멜레온반지 07" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-07-620x164.jpg" width="620" height="164" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  원래 디지털 값은 <strong>High(1, 5V, 100%), Low(0, GND, 0%)</strong>의 2가지 값밖에 존재하지 않지만, 위 그림과 같이 어떤 핀의 값을 <strong>High ▶ Low ▶ High ▶ Low</strong> … 형태로 상태를 변환시키게 되면, 출력 전압의 평균(%)은 빨강색 점선과 같은 값을 갖게 됩니다. 예를 들어 High를 유지하는 시간과 Low를 유지하는 시간의 비율이 3:7이라면 평균값은 High값의 30%가 된다고 말할 수 있는 것이지요. 이렇게 주기적으로 High ▶ Low를 반복하는 신호를 펄스(Pulse)라고 하는데, 이 펄스(Pulse)의 폭(Width)을 조절(Modulation)하여 평균값을 조절하는 방법을 PWM(Pulse Width Modulation)이라고 합니다. 즉, PWM을 이용하면 디지털 출력인 High(1)와 Low(0)을 가지고 0.3(30%), 0.85(85%)와 같은 아날로그 값을 만들 수 있게 되는 것입니다. 핑크색을 컬러 LED로 표현해 본다면 아래와 같이 되겠네요.</p>
<p>    ■ 핑크 = 빨강 PWM 100% + 녹색 PWM 75% + 파랑 PWM 75%</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ PWM 출력을 만드는 방법                                                                   </span></strong></span></p>
<p dir="ltr">  이제 PWM 출력을 만드는 방법을 알아봅시다. 아두이노에서는 다음과 같은 analogWirte( ) 라이브러리 함수를 제공하는데 이것을 이용하면 PWM 0% ~ PWM 100% 까지의 펄스를 아주 쉽게 만들 수 있습니다. 단, analogWrite( ) 함수를 사용할 수 있는 핀은 핀 번호 앞에 틸드(~) 표시가 있는 핀으로 한정되어 있다는 점은 주의하셔야 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr">   <span style="color: #008000;"> ■ analogWrite(pin, value)</span></p>
<p dir="ltr"><span style="color: #008000;">    ■ pin : 입출력핀 번호에 해당되는 숫자, 틸드(~) 표시가 되어 있는 핀만 가능</span></p>
<p dir="ltr"><span style="color: #008000;">    ■ value : 0~255까지의 값으로 0이면 PWM 0%, 255이면 PWM 100%를 의미함</span></p>
<p>&nbsp;</p>
<p dir="ltr">  예를 들어 “analogWrite(5, 128)”으로 프로그램 한다면, 핀 5번의 출력을 PWM 50%(128/256 = 0.5 = 50%)로 출력한다는 의미가 되겠습니다.</p>
<p dir="ltr">  왜 value 값으로 알기 쉽게 0~100을 사용하지 않고 0~255를 사용하게 되었을까요? 사실 그렇게 라이브러리를 만들 수도 있겠지만 디지털 세계는 2진법으로 이루어져 있어, 1, 2, 4, 8, 16, 32, 64, 128, 256 이렇게 만들어지는 수를 더욱 좋아한답니다. 아두이노 내부적으로 본다면 Atmega328, 타이머, ADC(Analog Digital Converter) 등 좀 더 자세하게 알아야 할 것이 많지만 우리는 그냥 이 정도만 알고 넘어가는 것으로 하겠습니다.</p>
<p dir="ltr">  이제 색의 배합을 %로 할 수 있다는 것을 배웠으므로, 간단히 한 번 연습해 보지요.</p>
<p dir="ltr">  노랑과 흰색, 핑크를 R, G, B의 value 값으로 표현해 보세요. 아래와 같이 나오면 정답!.</p>
<p>&nbsp;</p>
<p dir="ltr">   ▶ 노랑 : R(255), G(255), B(0)</p>
<p dir="ltr">   ▶ 흰색 : R(255), G(255), B(255)</p>
<p dir="ltr">   ▶ 핑크 : R(255), G(192), B(192) // 192/256 = 0.75 = 75%</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 컬러 LED 연결                                                                    </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  자, 그럼 이제 기본 원리는 모두 이해했으니, 프로그램을 하기 전에 컬러 LED를 아두이노와 연결해 보겠습니다. 컬러 LED는 시중에서 구할 수 있는 것 아무거나 구하셔도 됩니다.  R, G, B 및 (-) 핀을 아래와 같이 연결하면 되겠네요.</p>
<p>&nbsp;</p>
<p dir="ltr">    ■ R (가장 왼쪽) ←→ 330오옴 저항 ←→ 아두이노 6번핀</p>
<p dir="ltr">    ■ (-) (왼쪽에서 2번째, 길이가 가장 긴 다리) ←→ 아두이노 GND</p>
<p dir="ltr">    ■ G (오른쪽에서 2번째) ←→ 330오옴 저항 ←→ 아두이노 5번핀</p>
<p dir="ltr">    ■ B (가장 오른쪽) ←→ 330오옴 저항 ←→ 아두이노 3번핀</p>
<p>&nbsp;</p>
<p dir="ltr">  우리가 연결한 아두이노 6번, 5번, 3번 핀의 옆쪽에 실크로 쓰여진 숫자에는 틸드(~) 표시가 되어 있는데, 이것은 아두이노 핀 중에서 analog_write( ) 함수로 PWM 신호를 만들어 낼 수 있는 핀이라는 것은 앞에서 설명하였습니다. 우리는 3개 핀에 모두 PWM을 사용하여야 하므로 반드시 틸드(~) 표시가 연결된 핀을 R, G, B에 연결해야 합니다. 아래의 그림처럼 연결이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-08.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28398" alt="30 카멜레온반지 08" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-08.jpg" width="602" height="433" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ffffff; font-size: large; background-color: #008000;"><strong> ■ 연습 프로그램 작성                                                                   </strong></span></p>
<p dir="ltr">  이제 연결은 끝났으니 프로그램을 작성하여 실행할 차례입니다.</p>
<p dir="ltr">  최종 목표는 카멜레온 반지이지만 기왕 회로를 꾸몄으니 지난번 배운 것도 복습할 겸 7가지 색(빨강, 녹색, 파랑, 노랑, 청록, 자홍, 흰색)을 먼저 만들어 보도록 하겠습니다.</p>
<p dir="ltr">  아래는 기능 규격입니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>[7가지 색 만들기 기능 규격]</strong></span></p>
<p dir="ltr">  1. LED가 ON되는 순서는 빨강 ▶ 녹색 ▶ 파랑 ▶ 노랑 ▶ 청록 ▶ 자홍 ▶ 흰색 ▶ 빨강 ▶ … 으로 무한 반복됨</p>
<p dir="ltr">  2. LED는 어떤 한 순간 한가지 색깔만 표시함</p>
<p dir="ltr">  3. 표시된 색깔은 1초 동안 켜진 상태를 유지함</p>
<p>&nbsp;</p>
<p dir="ltr">  위의 7가지 색 중 노랑, 청록, 자홍은 동시에 2개의 LED를 ON 하면 얻을 수 있고 흰색은 3개의 LED를 동시에 ON하면 얻을 수 있으므로 analogWrite( ) 함수를 사용하지 않고 digitalWrite( ) 함수만 사용하여도 충분히 구현이 가능하겠습니다. 스스로 혼자 구현해 보신 후 10분 후에 함께 해보도록 하지요. (10분간 실시!)</p>
<p dir="ltr">(1분), (2분), ……, (10분)</p>
<p dir="ltr">모두 잘 되셨으리라 생각합니다. 함께 해 보겠습니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, LOW); // R=ON, G=OFF, B=OFF &#8211;&gt; 빨강(Red)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=OFF, G=ON, B=OFF &#8211;&gt; 녹색(Green)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=OFF, B=ON &#8211;&gt; 파랑(Blue)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=ON, G=ON, B=OFF &#8211;&gt; 노랑(Yellow)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=ON, B=ON &#8211;&gt; 청록(Cyan)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=ON, G=OFF, B=ON &#8211;&gt; 다홍(Magenta)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, HIGH);   digitalWrite(GREEN_LED, HIGH);    digitalWrite(BLUE_LED, HIGH); // R=ON, G=ON, B=ON &#8211;&gt; 흰색(White)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">약간 긴 듯하지만 알고리즘은 지난번과 거의 비슷하고 간단합니다.</p>
<p>자, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 그리고 결과는 ?</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/MiqNYWnWk-M?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/MiqNYWnWk-M?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">동영상에서는 LED 빛이 너무 밝아서 색깔 구별이 또렷하지 않지만, 실제 눈으로 보면 아주 예쁜 7가지 색깔이 나옵니다. 이 정도면 만족스럽네요.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 컬러 및 컬러값 선택                                                                   </span></strong></span></p>
<p dir="ltr">
<p dir="ltr">  연습으로 몸을 풀었으니, 이제 본격적으로 카멜레온 반지를 D.I.Y.하러 가겠습니다. 우리가 할 일은 12개 탄생석의 대표색을 찾아서 이것이 R, G, B의 어떤 값(어떤 세기, %)으로 표현되는지를 알아낸 다음 이것을 analog_write( ) 함수를 이용하여 구현하면 될 것 같습니다.</p>
<p dir="ltr">  자, 이제 탄생석의 색깔에 알맞은 R, G, B의 값을 찾아내면 되겠는데… 2가지 방법이 있습니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>1. 색상표를 이용하는 방법</strong></p>
<p dir="ltr">  아래와 같이 색상표가 있으므로 이것을 보고 탄생석과 가장 비슷한 색깔을 찾아 그 코드값을 추출하는 방법입니다. 6개의 숫자는 16진법으로 나타낸 코드 값으로 앞의 2개는 R(Red), 중간 2개는 G(Green), 마지막 2개는 B(Blue)에 해당되는 값을 나타냅니다. (혹, 2진법, 10진법, 16진법의 표기법이나 변환이 익숙하지 않은 분은 이 부분에 대하여 따로 각자 공부하신 후 다시 오시기 바랍니다.) 가장 왼쪽 줄의 위에서 6번째 색상이 노랑인데, 이 값을 보면 FFFF00 으로 표기되어 있으니까 [R(FF), G(FF) B(00)] ▶ [R(255), G(255), B(0)]가 되어 노랑색 PWM 표기값과 동일하다는 것을 확인할 수 있습니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-10.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28400" alt="30 카멜레온반지 10" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-10.jpg" width="550" height="283" /></a></p>
<p dir="ltr">
<p dir="ltr"><strong>2. 컬러 추출 응용프로그램을 이용하는 방법</strong></p>
<p dir="ltr">  PC 상에서 특정 컬러에 대한 코드값을 추출해 내는 응용프로그램을 실행시켜서 원하는 색상을 클릭하여 코드값을 추출하는 방법입니다.</p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-11.jpg" rel="lightbox[28375]"><img class="alignleft size-full wp-image-28401" style="margin-left: 10px; margin-right: 10px;" alt="30 카멜레온반지 11" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-11.jpg" width="244" height="287" /></a></p>
<p dir="ltr">   탄생석은 코드표로 똑 떨어지는 색상이 아니고 우리가 색상을 직접 추출해보는 것도 재미있을 것 같으니까 우리는 두번째 방법을 사용하도록 하지요. 여러가지 프로그램이 있겠지만 여기서는 그냥 간단하게 실행시킬 수 있는 컬러캅(ColorCop)이라는 무료 프로그램을 사용하는 것으로 하겠습니다. (인터넷에서 찾아 다운로드받아 실행하면 됩니다.) 아래와 같은 화면이 나오는데요. 중간 왼쪽에 있는 스포이드처럼 생긴 아이콘을 드래그(클릭한 후 끌기)하여 원하는 컬러 위치에 가져다 놓으면 10진수로 표시된 R, G, B 값이 나타나게 됩니다. 참 쉽네요.</p>
<p dir="ltr">  자, 그러면 지금부터는 탄생석의 대표색에 대한 코드값를 추출해 보는 시간입니다. 색깔도 감상해 가면서 즐거운 마음으로 표를 작성해 보면 더욱 좋겠네요.</p>
<p dir="ltr">  코드 추출은 혼자서도 가능하겠지요? 12분 드립니다.</p>
<p>&nbsp;</p>
<p dir="ltr">1분, 2분, …, 11분, 12분</p>
<p>&nbsp;</p>
<p dir="ltr">  제가 직접 찍어서 추출한 값은 아래와 같습니다. (각자 다를 수 있습니다.)</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="45" />
<col width="100" />
<col width="100" />
<col width="100" />
<col width="100" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\uc6d4&quot;]">월</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\ud55c\uae00 \uc774\ub984&quot;]">한글 이름</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\uc601\uc5b4 \uc774\ub984&quot;]">영어 이름</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;R&quot;]">R</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;G&quot;]">G</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;B&quot;]">B</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,1]">1</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uac00\ub137&quot;]">가넷</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;garnet&quot;]">garnet</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,26]">26</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,27]">27</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,2]">2</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc790\uc218\uc815&quot;]">자수정</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;amethyst&quot;]">amethyst</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,179]">179</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,117]">117</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,180]">180</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,3]">3</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc544\ucfe0\uc544\ub9c8\ub9b0&quot;]">아쿠아마린</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;aquamarine&quot;]">aquamarine</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,211]">211</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,146]">146</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,251]">251</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,4]">4</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ub2e4\uc774\uc544\ubaac\ub4dc&quot;]">다이아몬드</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;diamond&quot;]">diamond</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,155]">155</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,255]">255</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,5]">5</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc5d0\uba54\ub784\ub4dc&quot;]">에메랄드</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;emerald&quot;]">emerald</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,14]">14</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,219]">219</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,133]">133</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,6]">6</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc9c4\uc8fc&quot;]">진주</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;pearl&quot;]">pearl</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,246]">246</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,241]">241</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,237]">237</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,7]">7</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ub8e8\ube44&quot;]">루비</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;ruby&quot;]">ruby</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,206]">206</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,3]">3</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,163]">163</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,8]">8</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud398\ub9ac\ub3c4\ud2b8&quot;]">페리도트</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;peridot&quot;]">peridot</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,167]">167</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,212]">212</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,31]">31</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,9]">9</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc0ac\ud30c\uc774\uc5b4&quot;]">사파이어</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;sapphaire&quot;]">sapphaire</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,26]">26</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,27]">27</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,216]">216</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,10]">10</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc624\ud314&quot;]">오팔</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;opal&quot;]">opal</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,203]">203</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,200]">200</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,149]">149</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,11]">11</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud1a0\ud30c\uc988&quot;]">토파즈</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;topaz&quot;]">topaz</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,198]">198</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,40]">40</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,12]">12</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud130\ud0a4\uc11d&quot;]">터키석</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;turquoise&quot;]">turquoise</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,58]">58</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,197]">197</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,189]">189</td>
</tr>
</tbody>
</table>
<p>참, 가넷이라는 보석은 얼마전 종료된 ‘지니어스’라는 TV 프로에 이름이 소개되었던 짙은 자주색계통의 보석이지요. 꽤나 재미있었던 시리즈물이었는데 여러분들도 기회가 되면 꼭 한 번 시청해 보시기 바랍니다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 카멜레온 반지 프로그램 작성</span>                                                                          </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  모든 준비가 끝났으니 이제 목표 프로그램을 작성하여 실행할 차례입니다. 우리가 원하는 기능 규격을 작성해 보지요.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>[12가지 탄생석의 대표색을 디스플레이하는 카멜레온 반지 기능 규격]</strong></p>
<p dir="ltr">  1. 컬러 LED로 12개 탄생석의 대표색 12개를 차례대로 ON하며, 무한 반복된다.</p>
<p dir="ltr">  2. 한 가지의 색은 1초 동안 켜진 상태를 유지한다.</p>
<p>&nbsp;</p>
<p dir="ltr">  지난번에는 digitalWrite( ) 함수를 사용했지만 이번에는 analogWrite( )를 사용하고 작성된 표를 참조하여 R, G, B에 해당하는 PWM value값을 정해주는 것만 조금 다를 것 같습니다.</p>
<p dir="ltr">  같이 한 번 작성해 보시지요.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  음. 조금 많이 길긴 하지만…</p>
<p dir="ltr">  일단, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 결과는?</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/Xqr8GSvWKiA?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/Xqr8GSvWKiA?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">  카메라에 찍힌 것은 색깔 구별이 또렷하지는 않은데, 실제로 보면 아름다운 색깔이 구분되어 나타납니다. 보석에 비할 수는 없지만 그래도 아주 색상이 화려하고 아름답습니다.</p>
<p dir="ltr">  그런데 프로그램 짜면서 조금 마음에 걸리는 것이 있습니다.</p>
<p dir="ltr">  무엇이냐구요? 비슷한 내용이 12번이나 반복되고 코드 값을 일일이 입력해 주는 것이 조금 불편한 듯 하네요. 그래서, 12번 반복하는 것은 for 문을 이용하여 수정하고, 코드 값은 미리 어레이에 지정해 놓았다가 사용하도록 하여 위 코드를 조금 단순화시켜 보겠습니다. 아래와 같이 될 것 같습니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  예. 요렇게 작성해서 다시 실행시켜보면&#8230; 처음 프로그램하고 똑같이 실행되는 것을 알 수 있습니다. 이것도 당근 성공이겠죠?</p>
<p dir="ltr">  그럼, 마지막으로… 이 반지를 진짜 반지처럼 한 번 연출해 볼까요?</p>
<p dir="ltr">  손가락에 켜보는 형태로 흉내를 내보지요.</p>
<p dir="ltr">  컬러 LED를 뽑아서 4개의 다리에 선을 연결하고 이선을 원래 LED가 위치했던 브레드보드의 핀 위치에 꼽으면 원래 회로와 똑같은 회로입니다. 이것을 반지 모양으로 손가락 앞쪽으로 LED만 보이게 만들고 아두이노에 전원을 넣으면?</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-14.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28404" alt="30 카멜레온반지 14" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-14.jpg" width="610" height="343" /></a></p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-15.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28405" alt="30 카멜레온반지 15" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-15.jpg" width="553" height="380" /></a></p>
<p style="text-align: center;"> 
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/JSAJRt3HpHE?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/JSAJRt3HpHE?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">  야호~~~ 카멜레온 반지가 완성되었습니다.</p>
<p dir="ltr">  소품을 이용하여 잘 만들면 어느 정도 쓸만한 것도 만들 수 있을 것 같은데, 이것은 여러분들이 D.I.Y. 해보시기 바랍니다. 잘 만들어졌으면 주변에 자랑도 한 번 해 보시구요.</p>
<p dir="ltr">  시간나실 때 아래 과제도 한 번 해보시면 더욱 좋겠죠?</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-카멜레온반지-1]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> R, G, B 색이 임의로 변하는 카멜레온 링을 만들어 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-카멜레온반지-1]</strong></span></p>
<p><span style="font-size: small;"><strong> R, G, B 각각이 0~255까지 짧은 시간 내에 계속 변화하면서 모든 색상을 디스플레이할 수 있는 카  멜레온링을 만들어 보세요. 총 256 x 256 x 256 = 16,777,226 가지의 색깔을 만들수 있을까요?</strong></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 스위치 연결                                                                                </strong></span></p>
<p dir="ltr">  바로 전 강의까지 우리는 아두이노로 할 수 있는 2가지 기초 기능을 다루어 보았습니다. 디지털 출력(digitalWrite())과 아날로그 출력(analogWrite())이지요. 여기서의 아날로그 출력은 엄밀히 말하면 디지털 출력을 PWM을 이용하여 만든 유사 아날로그 출력이지만요.</p>
<p>&nbsp;</p>
<p dir="ltr">  기본적인 출력을 2가지 해보았으니 이번에는 기본적인 입력을 이용하여 ‘빨노파 게임기’ D.I.Y.에 도전해 보겠습니다. 빨노파게임기란 빨강 ▶ 노랑 ▶ 파랑 순으로 LED 색깔이 상당히 빠르게(0.1초 이내) 변하다가 스위치를 누르는 순간 빨강, 노랑, 파랑 중의 1가지로 약 5초 정도 고정되는 LED 디스플레이어입니다. 아주 빠르게 색깔이 변하므로 사람이 임의로 색깔의 변화를 읽어서 스위치를 누른다는 것은 불가능하다고 볼 수 있으므로 임의의 색깔이 나타나는 상황이 됩니다. 그러므로 가위바위보 게임과 비슷하게 빨강은 파랑을 이기고, 노랑은 빨강을 이기고, 파랑은 노랑을 이긴다고 룰을 정한 후 두 사람이 스위치를 순서대로 눌러서 나온 색깔로 승부를 가린다면 간단한 게임기가 될 수 있겠습니다.</p>
<p dir="ltr">  아 참, 이건 여담인데, 빨노파… 하니까 생각나는게 하나 있네요. ‘개그콘서트’라는 TV 프로의 ‘나는 킬러다’ 코너에 등장하는 빨노파 3형제…  ‘일소일소(一笑一少)’라는 말이 있는데 한 번 웃으면 한 번 젊어진다고 하니, 여러분도 틈나는 대로 개그 프로 열심히 보면서 많이 웃으시기 바랍니다.</p>
<p dir="ltr">  LED가 대표적인 기본 디지털 출력 부품이라면, 스위치는 대표적인 기본 디지털 입력 부품입니다. 스위치를 모르는 사람은 천지(天地)에 없겠지만, 기왕 말이 나왔으니까 많이 쓰는 스위치 2-3가지만 조금 살펴보고 가는 것도 나쁘지는 않을 듯 합니다.</p>
<p dir="ltr">  우리가 제일 흔하게 많이 보고 많이 쓰는 스위치는 무엇일까요?</p>
<p dir="ltr">  요렇게 생긴 것이겠죠? 전자기기 전원 껐다 켰다 하는 스위치, 형광등 껐다 켰다 스위치.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-16.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28406" alt="30 카멜레온반지 16" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-16.jpg" width="194" height="201" /></a></p>
<p style="text-align: center;"><span style="font-size: small;"><strong>(KCD1-101A RED, 상품코드: <a href="http://www.devicemart.co.kr/1790" target="_blank">1790</a>)</strong></span></p>
<p dir="ltr">  실생활에서 가장 많이 쓰이는 스위치로 이름은 로커(Locker) 스위치입니다. 잠긴(lock) 것처럼 ON이거나 OFF이거나 한가지 상태로 존재하지요.</p>
<p dir="ltr">  또, 어떤 스위치가 있을까요? 아래와 같이 생긴 슬라이드(Slide) 스위치도 많이 사용됩니다. 왼쪽이나 오른쪽으로 옮기면 각각 가운데 신호가 왼쪽이나 오른쪽에 연결된 신호와 연결되는 구조를 가진 스위치입니다. 요건 2단으로 되어 있어 2개의 서로 다른 신호가 동시에 왼쪽 또는 오른쪽으로 연결되는 형태네요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-17.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28407" alt="30 카멜레온반지 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-17.jpg" width="167" height="168" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: small;"><strong>(MSL-1C2P(듀얼)-2mm, 상품코드: <a href="http://www.devicemart.co.kr/30530" target="_blank">30530</a>)</strong></span></p>
<p dir="ltr">  이번 강의에서 사용할 스위치는 아래와 같이 생긴 택트(Tact) 스위치입니다. 이것도 굉장히 많이 사용됩니다. 아마도 contact에서 이름이 유래(?)된 듯한데, 손가락으로 누르면(contact 되면) ON, 떼면 OFF 상태가 되는 스위치이지요.</p>
<p>  아래 것은 다리가 4개가 있어서 2쌍의 신호가 한꺼번에 연결되거나(ON), 끊어지거나(OFF) 하는 스위치가 되겠습니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-18.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28408" alt="30 카멜레온반지 18" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-18.jpg" width="142" height="141" /></a></p>
<p dir="ltr">
<p dir="ltr" style="text-align: center;"><span style="font-size: small;"><strong>(ITS-1105-5mm, 상품코드: <a href="http://www.devicemart.co.kr/34555" target="_blank">34555</a>)</strong></span></p>
<p dir="ltr">  자, 스위치가 결정되었으니 그럼 이제 스위치를 연결해 볼까요?</p>
<p dir="ltr">  스위치 심볼은 보통 아래와 같은 2가지 형태를 취합니다. 스위치가 눌려지면 왼쪽과 오른쪽에 연결된 전선이 연결되는 것이지요. 스위치를 놓으면 양쪽의 연결은 끊어지는 것이구요.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-19.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28409" alt="30 카멜레온반지 19" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-19.jpg" width="470" height="141" /></a></p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-20.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28410" alt="30 카멜레온반지 20" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-20.jpg" width="466" height="62" /></a></p>
<p dir="ltr">
<p dir="ltr">  스위치가 디지털 입력이라고 하였고, 스위치는 양쪽 끝이 있으니까 한 쪽은 당연히 아두이노의 디지털 신호선 중 하나에 연결하여야 할 것이고, 다른 한쪽은 어디에 연결해야 할까요? 스위치를 눌렀을 때 ‘1’(HIGH)이나 ‘0’(LOW)이 입력되어야 하므로, ‘1’이 연결되려면 VCC(+5V)가 연결되어야 하고, ‘0’이 입력되려면 GND(0V, Ground)가 연결되어야 할 것입니다.</p>
<p dir="ltr">  그러면 이렇게 연결이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-21.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28411" alt="30 카멜레온반지 21" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-21.jpg" width="575" height="239" /></a></p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-22.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28412" alt="30 카멜레온반지 22" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-22.jpg" width="550" height="210" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  그런데 가만히 보니까, 스위치를 눌렀을 때는 연결된 상태에 따라서 +5V 또는 0V(GND)가 연결되지만 스위치가 눌리지 않았을 때는 선이 끊어진 상태(floating 상태)가 되는데… 어라, 이렇게 되면 아두이노는 이 핀의 값을 HIGH(1)로 판단할까요? 아니면, LOW(0)로 판단할까요? 조금 어려운 문제인데 이것은 아두이노의 내부 로직과 상태에 따라 값이 결정될 수 있으므로 정확하게 HIGH 또는 LOW라고 단정지어 말할 수 없습니다. 즉, 상황에 따라 HIGH가 될 수도 있고 LOW로 될 수도 있다는 뜻인데, 이렇게 되면 값이 확정되지 않으므로 프로그램을 작성하는 사람은 대략난감(大略難堪, 이러지도 저러지도 못하는 당황스러운 상황)하게 됩니다. 그래서, 이렇게 선이 끊어진 상태가 될 때는 아두이노가 HIGH 또는 LOW 중, 하나의 값으로만 결정되도록 만들어 주는 조치가 필요합니다. 즉, 스위치를 눌렀을 때 HIGH가 되는 회로는 눌러지지 않았을 때 LOW가 되도록 조치해 놓아야 하고, 반대로 스위치를 눌렸을 때 LOW가 되는 회로는 눌러지지 않았을 때는 HIGH가 되도록 조치해 놓아야 하겠습니다. 아래와 같이 될 것 같습니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-23.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28413" alt="30 카멜레온반지 23" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-23.jpg" width="595" height="401" /></a></p>
<p dir="ltr">
<p dir="ltr" style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-24.jpg" rel="lightbox[28375]"><img class="aligncenter  wp-image-28414" alt="30 카멜레온반지 24" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-24.jpg" width="542" height="299" /></a></p>
<p dir="ltr">
<p dir="ltr">  하지만 위 그림도 아직은 문제가 있어 보입니다. 왜냐하면 스위치가 눌려졌다고 생각하면 위 2개 회로 모두가 +5V와 GND가 직접 연결되는 형상이 되어 버리니까요.</p>
<p dir="ltr">  뿌직~~~ 번쩍! 푸쉬푸쉬~~~</p>
<p dir="ltr">  무엇인가 터지던지… 불꽃이 튀던지… 연기가 나던지… 뭔가 문제가 생길 것 같습니다. 그래서 이런 경우를 방지하기 위한 대비책이 필요한데 이 역할을 수행하는 것은 저항입니다. 아래와 같이 스위치가 눌렸을 때와 눌려지지 않았을 때의 값이 서로 다르게 입력되는 위치에 저항을 달면 문제가 해결되겠습니다. (저항값은 보통 1K~10K 정도를 사용합니다.) 참고로 GND에 저항이 연결되는 것을 풀다운(pull down) 저항이라고 하고, VCC(+5V)에 연결되는 것을 풀업(pull up) 저항이라고 합니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-25.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28415" alt="30 카멜레온반지 25" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-25.jpg" width="573" height="295" /></a></p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-26.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28416" alt="30 카멜레온반지 26" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-26.jpg" width="581" height="291" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr">  하나 하나 설명하다보니 조금 장황해졌는데요. 어쨌든 이제 연결 방법은 알았으니, 실제로 회로를 아두이노에 연결해 봅시다. 조금 전에 만들었던 카멜레온반지 회로에 스위치 한 개를 추가하여 2번핀(D2)에 연결하는 것으로 하겠습니다. 아래와 같이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-27.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28417" alt="30 카멜레온반지 27" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-27.jpg" width="518" height="390" /></a></p>
<p dir="ltr">  오, 그럴듯하게 잘 꾸며진 것 같습니다. 만족? 만족!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 신호등 게임기 프로그램 작성                                                  </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  이제 프로그램을 작성하여야 하는데요. 언제나 마찬가지로 일단 원하는 기능 규격을 작성해 봅시다.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>[신호등 게임기 기능 규격]</strong></p>
<p dir="ltr">  1. 컬러 LED,의 색깔은 0.1초 마다 빨강 ▶ 노랑 ▶ 파랑 ▶ 빨강 ▶ 노랑 ▶ 파랑… 의 순으로 계속 바뀐다..</p>
<p dir="ltr">  2. 스위치를 누르는 순간 5초 동안만 현재의 LED 색이 유지되었다가 다시 ‘1’번을 수행한다.</p>
<p>&nbsp;</p>
<p dir="ltr">  컬러 LED의 색깔이 바뀌는 것은 지난번에 했으니까 별 문제가 없을 것이고, 스위치 값을 읽어서 그 값이 0(LOW, 스위치 눌림)인지 1(HIGH, 스위치 눌리지 않음)인지를 검사할 수만 있으면 쉽게 해결될 것 같습니다. 이런 경우에 대비해서 아두이노에서는 digitalRead(pin)라는 기능의 함수를 제공하므로 이것을 이용하도록 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #3366ff;">digitalRead(pin)</span></p>
<p dir="ltr"><span style="color: #3366ff;">  ■  pin : 핀 번호</span></p>
<p dir="ltr"><span style="color: #3366ff;">  ■  return 값 : pin을 통하여 들어온 디지털 값으로 0 또는 1</span></p>
<p>&nbsp;</p>
<p dir="ltr">  이제 기능 규격을 만족할 수 있는 프로그램의 알고리즘을 만들어 보지요. 아래를 보기 전에 각자 먼저 5분 정도 생각해 보시구요.</p>
<p dir="ltr">… (1분) … (2분) … (3분) … (4분) … (5분)</p>
<p dir="ltr">  아래와 같은 모습이 될 것 같습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-28.png" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28418" alt="30 카멜레온반지 28" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-28.png" width="433" height="275" /></a></p>
<p dir="ltr">  이제 프로그램을 함께 해볼까요?</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">int SW=2; // #define을 이용해도 되지만 이와 같이 변수로 선언하는 것도 방법</p>
<p dir="ltr">int BLUE_LED=3</p>
<p dir="ltr">int GREEN_LED=5;</p>
<p dir="ltr">int RED_LED=6;</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(SW, INPUT); // 2번핀은 스위치 입력</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT); // 3번핀은 파랑 LED 출력</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT); // 5번핀은 녹색 LED 출력</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT); // 6번핀은 빨강 LED 출력</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr">analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 0); // 빨강</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000); // 스위치를 눌렀으면 5초 대기</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100); // 스위치를 누르지 않았으면 0.1초만 대기</p>
<p dir="ltr">analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 0);   // 노랑</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000);</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100);</p>
<p dir="ltr">analogWrite(RED_LED, 0);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 255); // 파랑</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000);</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  digitalRead()를 수행하여 값이 ‘0’인 상태가 나타나면 스위치가 눌려진 것이니까 그 상태에서 delay(5000); (5초 동안 아무것도 하지 않음)을 수행하게 되므로 LED가 5초 동안 한가지 색깔을 유지하게 됩니다. 자신의 색깔이 결정되는 것이지요.</p>
<p dir="ltr">  작성이 다 되었으면… 컴파일 ▶ 업로드 ▶ 실행! 잘 나오나요?</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-29.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28419" alt="30 카멜레온반지 29" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-29.jpg" width="598" height="397" /></a></p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/u-4GemaNhfo?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/u-4GemaNhfo?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p style="text-align: center;">
<p dir="ltr">  옆에 있는 가족/친구/상사/동료와 간단히 게임 한 번 해 보시지요! 나는 빨강, 상대는 파랑, 야호~ 내가 이겼다. 밥 먹으러 갑시다.</p>
<p dir="ltr">  오늘은 여기까지입니다. 다음 시간에는 FND(Flexible Numeric Display)를 가지고 007 영화에 항상 등장하는 카운트다운 계수기 D.I.Y.에 도전해 보겠습니다. 아래 과제는 짬을 내서 해보시고 다음 강의에서 예쁜 얼굴로 또 만나겠습니다. 감사합니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-빨노파게임기-1]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> 스위치를 누르면 ‘1’이 되도록 연결하고 프로그램해 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-빨노파게임기-2]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> 스위치를 2개 사용하여 더 재미있는 DIY 작품을 만들어 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>아두이노 구매하러 가기 : <a href="http://www.devicemart.co.kr/34404" target="_blank">클릭!</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28375/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[30호] 2015 ICT 융합 프로젝트 공모전 결과 발표 및 시상 소식</title>
		<link>http://www.ntrexgo.com/archives/28368</link>
		<comments>http://www.ntrexgo.com/archives/28368#comments</comments>
		<pubDate>Fri, 15 May 2015 06:17:24 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[핫 뉴스]]></category>
		<category><![CDATA[devicemart]]></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=28368</guid>
		<description><![CDATA[2015 ICT 융합 프로젝트 공모전
결과 발표 및 시상 소식입니다.
모든 수상자분들께 진심으로 감사, 축하의 말씀드립니다.^^
2016 공모전에도 많은 응모 부탁드립니다.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식3.jpg" rel="lightbox[28368]"><img class="aligncenter size-full wp-image-28371" alt="ict 시상식3" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식3.jpg" width="620" height="204" /></a></p>
<p style="text-align: right;"> 글 | 편집부 <a href="mailto:press@ntrex.co.kr">press@ntrex.co.kr</a></p>
<p>&nbsp;</p>
<p dir="ltr">전자, 로봇, 기계 분야 중 자유 주제로 2015년 2월 1일부터 3월 31일까지 진행된 2015 ICT 융합 프로젝트 공모전의 발표와 시상이 지난 5월 15일 (주)엔티렉스 본사 대회의실에서 진행되었다.</p>
<p dir="ltr">총 30개 팀 및 개인이 응모하여, 이 중 18개 작품을 최종 선정하였으며, 이 중 최우수상은 단국대학교 강영웅, 이주명 님이 응모한 “전도성 페인트를 이용한 Electric Menu”가 수상하였다.</p>
<p dir="ltr">최우수상을 수상한 강영웅, 이주명 님이 본사를 방문하여 상장과 상금을 수령하고 간단한 작품 소개 및 본사 연구소 및 3D 프린터실 탐방의 시간을 가졌다.</p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식.jpg" rel="lightbox[28368]"><img class="aligncenter size-full wp-image-28369" alt="ict 시상식" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식.jpg" width="620" height="429" /></a></p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식2.jpg" rel="lightbox[28368]"><img class="aligncenter size-full wp-image-28370" alt="ict 시상식2" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/ict-시상식2.jpg" width="620" height="403" /></a></p>
<p>&nbsp;</p>
<p>이번 공모전 심사는 (주)펌테크, JK전자, (주)뉴티씨, (주)칩센, (주)위드로봇과 본사 연구소에서 공동으로 심사하였으며,</p>
<p dir="ltr">시상 내역은 아래 표와 같다.</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="59" />
<col width="280" />
<col width="282" /></colgroup>
<tbody>
<tr>
<td style="height: 20px; background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uad6c\ubd84&quot;]"><strong>구분</strong></td>
<td style="height: 20px; background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc218\uc0c1\uc790&quot;]"><strong>수상자</strong></td>
<td style="height: 20px; background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc791\ud488\uba85&quot;]"><strong>작품명</strong></td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ucd5c\uc6b0\uc218\uc0c1&quot;]"><strong>최우수상</strong></td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub2e8\uad6d\ub300\ud559\uad50 \uac15\uc601\uc6c5, \uc774\uc8fc\uba85&quot;]">단국대학교 강영웅, 이주명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc804\ub3c4\uc131 \ud398\uc778\ud2b8\ub97c \uc774\uc6a9\ud55c Electric Menu&quot;]">전도성 페인트를 이용한 Electric Menu</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6b0\uc218\uc0c1&quot;]"><strong>우수상</strong></td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub3d9\uc591\ubbf8\ub798\ub300\ud559\uad50 \uc804\uc790\uacf5\ud559\uacfc \uad8c\uc601\uc81c \uc678 5\uba85&quot;]">동양미래대학교 전자공학과 권영제 외 5명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ubc18\ub527\ubd88\uc774 - \uc13c\uc11c\ubd80\ucc29 \ub9f9\uc778 \uc9c0\ud321\uc774&quot;]">반딧불이 &#8211; 센서부착 맹인 지팡이</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6b0\uc218\uc0c1&quot;]"><strong>우수상</strong></td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub2e8\uad6d\ub300\ud559\uad50 \uae40\uc9c4\uc6b0, \uae40\uc900\ud658&quot;]">단국대학교 김진우, 김준환</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc784\uc758\ud30c\ud615 \ubc1c\uc0dd\uae30&quot;]">임의파형 발생기</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6b0\uc218\uc0c1&quot;]"><strong>우수상</strong></td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\uc8fc\ub300\ud559\uad50 \uc1a1\uad11\uadfc \uc678 3\uba85&quot;]">아주대학교 송광근 외 3명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ucd94\uce21\ud56d\ubc95 \ubaa8\ud615 \uc790\ub3d9\ucc28&quot;]">추측항법 모형 자동차</td>
</tr>
<tr style="height: 30px;">
<td rowspan="6" colspan="1" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc785\uc120&quot;]">
<div><strong>입선</strong></div>
</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uac00\ucc9c\ub300\ud559\uad50 \uc804\uc790\uacf5\ud559\uacfc \uae40\uc9c4\ud615, \uc870\uc6a9\ubc94&quot;]">가천대학교 전자공학과 김진형, 조용범</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ubb3c \ubfdc\ub294 \ub7ec\ubc84\ub355&quot;]">물 뿜는 러버덕</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc138\uc885\ub300\ud559\uad50 \uc815\ubcf4\ud1b5\uc2e0\uacf5\ud559\uacfc \uc815\uc2b9\ucca0&quot;]">세종대학교 정보통신공학과 정승철</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uac1c \ucf8c\ubcc0&quot;]">개 쾌변</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub2e8\uad6d\ub300\ud559\uad50 \uc774\ucc2c\uc6b0, \uc870\ud604\uc6b0&quot;]">단국대학교 이찬우, 조현우</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc190\uc8fc\uc57c \ud1a1 \ud574&quot;]">손주야 톡 해</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc0c1\uba85\ub300 \uc815\ubcf4\ud1b5\uc2e0\uacf5\ud559\uacfc \uc774\uc815\uc6b1 \uc678 3\uba85&quot;]">상명대 정보통신공학과 이정욱 외 3명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc9c0\ub2a5\ud615 \ud654\uc7ac \uac10\uc2dc \uc790\uc728 \uc8fc\ud589 \ub85c\ubd07&quot;]">지능형 화재 감시 자율 주행 로봇</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub3d9\uc591\ubbf8\ub798\ub300\ud559\uad50 \uc804\uae30\uacf5\ud559\uacfc \uc784\uc885\ud5cc \uc678 5\uba85&quot;]">동양미래대학교 전기공학과 임종헌 외 5명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc790\uac00\ubc1c\uc804\uae30\uad6c GX-1&quot;]">자가발전기구 GX-1</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ubd80\uacbd\ub300\ud559\uad50 \uacf5\uc601\ud6c8 \uc678 5\uba85&quot;]">부경대학교 공영훈 외 5명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6d0\uaca9\uc9c0 \uc791\uc5c5\uc774 \uac00\ub2a5\ud55c \uc774\ub3d9 \ub85c\ubd07 \ud314 \uad00\ub9ac \uc2dc\uc2a4\ud15c&quot;]">원격지 작업이 가능한 이동 로봇 팔 관리 시스템</td>
</tr>
<tr style="height: 30px;">
<td rowspan="8" colspan="1" align="center" valign="middle" data-sheets-value="[null,2,&quot;\ucc38\uac00\uc0c1&quot;]">
<div><strong>참가상</strong></div>
</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ubd80\uc0b0\ub300\ud559\uad50 \uc804\uae30\uacf5\ud559\uacfc \uae40\uad8c\uacb8 \uc678 4\uba85&quot;]">부산대학교 전기공학과 김권겸 외 4명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub2e4\uc911 \ucd94\ub3cc \uc0ac\uace0 \ubc29\uc9c0\ub97c \uc704\ud55c \uc2a4\ub9c8\ud2b8 \uc194\ub8e8\uc158&quot;]">다중 추돌 사고 방지를 위한 스마트 솔루션</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub3d9\uc591\ubbf8\ub798\ub300\ud559\uad50 \uc784\uc6b0\ub78c \uc678 3\uba85&quot;]">동양미래대학교 임우람 외 3명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc870\ub9bd\ud615 Hybrid Wheel Chair&quot;]">조립형 Hybrid Wheel Chair</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc0c1\uba85\ub300\ud559\uad50 \uc815\ubcf4\ud1b5\uc2e0\uacf5\ud559\uacfc \ud669\uc778\ucca0 \uc678 4\uba85&quot;]">상명대학교 정보통신공학과 황인철 외 4명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc2a4\ub9c8\ud2b8 \uac00\ub85c\ub4f1 \uc870\uba85\uc81c\uc5b4 \uc2dc\uc2a4\ud15c&quot;]">스마트 가로등 조명제어 시스템</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub3d9\uc544\ub300\ud559\uad50 \uae40\uc900\ud638,\uae40\ud0dc\uad6c,\ucc9c\ud604\uc7ac&quot;]">동아대학교 김준호,김태구,천현재</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ube44\ub2d0\ud558\uc6b0\uc2a4 \uc790\ub3d9\uc81c\uc124 \ubc0f \uc790\ub3d9\uc2b5\ub3c4 \uc870\uc808\uc7a5\uce58&quot;]">비닐하우스 자동제설 및 자동습도 조절장치</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uac00\ucc9c\ub300\ud559\uad50 \uc804\uc790\uacf5\ud559\uacfc \uc815\ud604\uc6b0&quot;]">가천대학교 전자공학과 정현우</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ubc38\ub7f0\uc2f1\ub85c\ubd07\uc744 \ud65c\uc6a9\ud55c \ud3ad\uadc4\ub85c\ubd07\uc778\ud615&quot;]">밸런싱로봇을 활용한 펭귄로봇인형</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ucda9\ub0a8\ub300\ud559\uad50 \ucef4\ud4e8\ud130\uacf5\ud559\uacfc \uae40\uc9c4\uc6b1,\uc774\uc120\ubbfc,\ubc15\uc9c0\ud6c8&quot;]">충남대학교 컴퓨터공학과 김진욱,이선민,박지훈</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ud504\ub9ac\uc820\ud130 \uc7a5\uac11&quot;]">프리젠터 장갑</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6d0\uad11\ub300\ud559\uad50 \uae40\uc9c0\uc5b8&quot;]">원광대학교 김지언</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;Shield&quot;]">Shield</td>
</tr>
<tr style="height: 30px;">
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;\ud64d\uc775\ub300\ud559\uad50 \uc548\ub450\uae30 \uc678 4\uba85&quot;]">홍익대학교 안두기 외 4명</td>
<td align="center" valign="middle" data-sheets-value="[null,2,&quot;C.R.O.P (Car's Revolver Option for Parking)&quot;]">C.R.O.P (Car&#8217;s Revolver Option for Parking)</td>
</tr>
</tbody>
</table>
<p dir="ltr">
<p dir="ltr">이번 공모전을 빛내주신 지원자분들과, 심사를 지원해주신 협찬사에게도 감사의 말씀을 드린다. 마지막으로 수상한 팀들 모두 축하드리며, 수상작들에 대한 내용은 다음 디바이스마트 매거진을 통해서 소개하고자 한다.</p>
<p dir="ltr"> 내년 2월에 진행될 다음 대회에도 많은 참여와 관심을 부탁드린다.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr">
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28368/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[29호] 너무 쉬운 아두이노 DIY &#8211; ① 3색 신호등 만들기</title>
		<link>http://www.ntrexgo.com/archives/28246</link>
		<comments>http://www.ntrexgo.com/archives/28246#comments</comments>
		<pubDate>Tue, 10 Mar 2015 06:59:21 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[프로젝트]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[jcnet]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[강의]]></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=28246</guid>
		<description><![CDATA[[너무 쉬운 아두이노 DIY(Do It Yourself)]
제이씨넷 신상석 연구소장님의 친절하고 꼼꼼한 강의!
아두이노를 가지고 이것 저것 만들어봅시다.^^
출발!!]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호등MA.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28289" alt="29 아두이노 신호등MA" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호등MA.jpg" width="620" height="246" /></a></p>
<p><strong>           글 ㅣ 신상석 ssshin@jcnet.co.kr</strong></p>
<p>&nbsp;</p>
<table class="aligncenter" style="width: 600px;" cellpadding="10" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #e6e6fa;" valign="middle">  여러분, 안녕하세요. 앞으로 1년에 걸쳐(6번 정도) [너무 쉬운 아두이노 DIY(Do It Yourself)] 강의를 진행할 강사 신상석입니다.<br />
제 소개 간단히 드립니다.<br />
· 서울대 제어계측공학과(학사) →, KAIST 전산과(석사) → KAIST 전산과(박사 수료)<br />
· ETRI 책임연구원 → 해동정보통신 연구소장 → 욱성전자 연구소장 → (현재) 제이씨넷 연구소장, 상명대학교 컴퓨터시스템공학과 겸임교수, 임베디드홀릭 카페(http://cafe.naver.com/lazydigital) 부매니저, 아두이노 / AVR 강사<br />
· 자격증 : 전자계산기 기술사<br />
· 취미 : 영화보기, 바둑두기, 책읽기, 글쓰기(?), 여행하기, 이야기하기<br />
· 연락처 : ssshin@jcnet.co.kr, 있는그대(cafe.naver.com/lazydigital)&nbsp;</p>
<p>이 강의는 아두이노를 가지고 간단하게 생활에 필요한 용품을 만들어 보는 강의입니다. 뚝딱뚝딱 뭔가 자신만의 DIY 용품을 만들어 보는 쏠쏠한 재미가 있는 강의라고나 할까요? 이미 주변에 아두이노와 관련한 많은 책이 출간되었고 카페나 블로그를 통하여 강의가 진행된 경우도 꽤나 많이 있는데도 불구하고, 이 지면을 통하여 강의를 개설한 이유는 다음과 같습니다.</p>
<p>1. 아두이노의 초보자들을 위한 쉽고 재미있는 강의가 거의 없는 것 같아, 가능하면 초등학생(?)까지도 함께 해 볼 수 있는 그런 강의를 한 번 해보고 싶어서…<br />
2. 아두이노를 가지고 뭔가 조금은 다른, 자신만의 창의적인(?) DIY를 할 수 있는 자리를 만들어주고 싶어서…<br />
3. 디바이스마트매거진은 임베디드와 관련된 독자들이 많고, 발행 부수도 많아, 저와 제가 속한 회사(제이씨넷) 그리고 임베디드홀릭 카페의 홍보에 도움이 될 것 같아서…</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노-계획표.png" rel="lightbox[28246]"><img class="alignright size-medium wp-image-28247" alt="아두이노 계획표" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노-계획표-300x133.png" width="300" height="133" /></a><span style="font-size: 11px; line-height: 19px;">  현재 구상하고 있는 회차별 내용을 간략하게 정리해 보면 다음과 같습니다. (변경될 수 있습니다.)  앞으로 즐겁고 알찬 강의가 될 수 있도록 최선을 다할 것을 약속 드리며, 이 강의를 보는 독자들도 메일이나 카페를  통하여 Q&amp;A(Question &amp; Answer)나 피드백을 주셔서, 함께 정감을 나눌 수 있는 계기가 되기를 기대해 봅니다.</span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span style="font-size: large;"><span style="background-color: #808000;"><strong><span style="color: #ffffff;">  </span></strong><strong><span style="color: #ffffff;">■</span></strong></span><span style="background-color: #808000;"><strong><span style="color: #ffffff;"><a href="http://www.devicemart.co.kr/34404" target="_blank"> 아두이노</a>가 뭔가요?   </span></strong></span></span></p>
<p dir="ltr">   자, 그럼 시작해 보겠습니다. 요렇게 생긴 물건을 보신 적이 있나요?</p>
<p style="text-align: left;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-00.jpg" rel="lightbox[28246]"><img class="size-large wp-image-28259 aligncenter" alt="29 아두이노 신호기 00" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-00-620x348.jpg" width="620" height="348" /></a>   예. 요 물건의 이름이 아두이노인데요, 조금 더 정확하게 이야기하면 아두이노 UNO R3입니다. 파란색 플라스틱처럼 보이는 PCB(Printed Circuit Board) 판에 조그만 컴퓨터에 해당하는 마이크로콘트롤러(마이크로프로세서) 칩(IC, Integrated Circuit)이 장착되어 있어서 이것으로 계산 등 여러가지 일을 처리합니다. 전기는 +5V를 공급해주어야 하는데 이것은 USB 커넥터에 USB 케이블을 연결하여 공급합니다. 아두이노는 또한 입출력커넥터를 가지고 있는데, 여기에 전선을 꼽아서 LED(Light Emitted Diode, 발광다이오드)도 연결하여 불도 켰다 껐다 하고, 버저나 모터 등 여러 가지 다른 전자 부품도 연결하여 소리도 내고 움직이게 할 수도 있습니다.</p>
<p dir="ltr">   참, 아두이노(arduino)라는 이름은 이탈리아어로 ‘친한 친구’라는 뜻이라네요, 이 아두이노를 처음 고안해 낸 사람들이 이탈리아 사람들이어서 이름도 이탈리아어인데, 발음하기 편하고 입에 짝 달라붙는 정겨운 이름인 것 같습니다.</p>
<p style="text-align: left;">
<p dir="ltr"><span style="font-size: large;"><strong><span style="color: #ffffff; background-color: #808000;">  ■ <a href="http://www.devicemart.co.kr/goods/view.php?seq=34404" target="_blank">아두이노</a>로 뭘 할 수 있나요?   </span></strong></span></p>
<p dir="ltr">   이 아두이노로 뭘 할 수 있을까요? 앞으로 하나씩 DIY(Do It Yourself)로 만들어보겠지만, 아두이노로는 전등도 켤 수 있고, 음악도 연주할 수 있고, 장난감 로봇도 조정할 수 있고, 이것 저것 아주 많은 것을 할 수 있습니다. 유튜브(http://www.youtube.com)에서 볼 수 있는 실례를 몇 개만 소개해 보겠습니다. 가능하면 여러분이 직접 방문하여 동영상을 보면 더욱 좋겠네요.</p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/mXMIdq6ouG0" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>아두이노로 만든 종이 피아노</strong></p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/-oJytWP6pU4" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>아두이노 UNO를 활용해서 만든 초음파 레이더</strong></p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/VNRX5Xkz_00" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>WALL-E  로봇 아두이노</strong></p>
<p style="text-align: center;">
<p>   예로 든 것이 조금은 복잡한 것일 수 있겠지만, 작은 것부터 하나씩 공부하다 보면 나중에는 여러분도 위와 같은 작품을 DIY로 만들 수 있답니다! 자신감을 가지세요!</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ 그러면 준비를 해 봅시다!   </span></strong></p>
<p dir="ltr">   아두이노를 이용하여 뭔가를 만들어 보려면, 일단 약간의 준비가 필요합니다. 꼭 필요한 것 먼저 확인해 봅시다.</p>
<p>&nbsp;</p>
<p dir="ltr">1.  아두이노 보드 : 오리지널 보드는 물론 OK이구요. 값이 싼 중국산 호환 보드나 블루투스 통신이나 모터 드라이버 등의 기능을 추가로 내장한 아두이노 보드도 OK</p>
<p dir="ltr">* 아두이노 오리지널 보드: <a href="http://www.devicemart.co.kr/34404" target="_blank">http://www.devicemart.co.kr/34404</a></p>
<p dir="ltr">* 아두이노 호환 보드 (예 : 뉴티씨 제품) : <a href="http://www.devicemart.co.kr/1137923" target="_blank">http://www.devicemart.co.kr/1137923</a></p>
<p dir="ltr">* 아두이노 호환 부가 기능 내장 보드 (예 : 제이씨넷 제품) : <a href="http://www.devicemart.co.kr/1137972" target="_blank">http://www.devicemart.co.kr/1137972</a></p>
<p>&nbsp;</p>
<p dir="ltr">2. PC 또는 노트북 (아무거나 OK)</p>
<p dir="ltr">
<p dir="ltr">3. 아두이노와 PC(노트북)을 연결할 USB 케이블 (한쪽은 USB-A 타입, 다른 한쪽은 USB-B 타입의 케이블, 보통 아두이노 구입시 함께 제공됨)</p>
<p>&nbsp;</p>
<p dir="ltr">4. 아두이노 프로그램 (이것의 이름도 아두이노입니다.)</p>
<p dir="ltr">4번은 소프트웨어이므로 인터넷에서 설치프로그램을 찾아 이를 PC에 설치하여야 합니다. 스마트폰으로 뭔가 재미있는 것을 하려면 앱을 설치해야 하는 것과 마찬가지지요.</p>
<p dir="ltr">
<p dir="ltr">설치 순서는 다음과 같습니다.</p>
<p> 1. 아두이노 공식 홈페이지(http://arduino.cc) 방문</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-04.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28263" alt="29 아두이노 신호기 04" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-04-620x368.jpg" width="620" height="368" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">2. 위쪽 메뉴 [Download]를 누르고 → 나타나는 창의 조금 아래 부분에 [Arduino 1.0.6]을 찾아 클릭 → [Windows Installer]를 클릭하면, [arduino-1.0.6-windows.exe]가 다운로드 됨</p>
<p>&nbsp;</p>
<p dir="ltr">3. 다운받은 arduino-1.0.6-windows.exe 파일 실행</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-05.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28264" alt="29 아두이노 신호기 05" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-05.jpg" width="480" height="275" /></a></p>
<p style="text-align: center;"><strong>[실행] 클릭</strong></p>
<p><img class="aligncenter size-large wp-image-28265" alt="29 아두이노 신호기 06" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-06.jpg" width="426" height="291" /></p>
<p style="text-align: center;"><strong>[I Agree] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-07.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28266" alt="29 아두이노 신호기 07" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-07.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong>[Next] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-08.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28267" alt="29 아두이노 신호기 08" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-08.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"> <strong>[Install] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-09.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28268" alt="29 아두이노 신호기 09" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-09.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong> 기다립니다.</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-10.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28269" alt="29 아두이노 신호기 10" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-10.jpg" width="508" height="239" /></a></p>
<p style="text-align: center;"><strong> [V]표시를 클릭하고 [설치]클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-11.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28270" alt="29 아두이노 신호기 11" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-11.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong> 설치완료 후 [Close] 클릭</strong></p>
<p>4. PC 바탕화면에  <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" rel="lightbox[28246]"><img class=" wp-image-28271 alignnone" alt="29 아두이노 신호기 12" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" width="31" height="36" /></a>  이런 아이콘이 생겼으면 설치가 잘 된 것입니다.</p>
<p>그러면, 내친김에 얼른 실행시켜 볼까요?</p>
<p dir="ltr">
<p dir="ltr">1. 아두이노와 PC를 USB 케이블로 연결</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-26.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28285" alt="29 아두이노 신호기 26" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-26-620x348.jpg" width="620" height="348" /></a></p>
<p dir="ltr">2. 전원 LED에 녹색으로 불이 들어오면 일단 OK!!! 구요.</p>
<p>PC 화면에서 <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" rel="lightbox[28246]"><img alt="29 아두이노 신호기 12" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" width="31" height="36" /></a> 아이콘 클릭하여 아래와 같은 화면이 나타나면 설치도 일단 OK!!! 네요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-13.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28272" alt="29 아두이노 신호기 13" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-13.jpg" width="500" height="600" /></a></p>
<p>내 아두이노가 준비되었고 나와 아두이노와 이야기를 나눌 아두이노 앱(App. 응용프로그램)이 준비되었으니 가장 기본적인 주거환경은 만들어진 것이네요.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong><span style="color: #ffffff; background-color: #808000;">  ■ 프로그램을 짜서 실행시켜 보기   </span></strong></span></p>
<p dir="ltr">   잠시 쉬었으니까, 이제 첫번째 DIY 프로젝트로 빨강-노랑-녹색 불이 반짝 반짝 켜졌다 꺼지는 3색 신호등을 한 번 만들어 보겠습니다.</p>
<p dir="ltr">   걸음마도 못하는 아기가 뭐 벌써 만드냐구요? 뭐, 일단 목표를 세우고 만들어가는 과정에서 필요한 것은 차근차근 하나씩 배우고 익히면 되겠지요. 힘들면 쉬었다 가고, 재미있는 것이 나오면 조금 놀다 가고&#8230;</p>
<p dir="ltr">   “배우고 익힌다!”는 구절은 제가 아주 좋아하는 구절인데요. 논어의 가장 첫번째 장에 이런 구절이 있습니다. “學而時習之 不易說乎” (학이시습지 불역열호) &#8211; 배우고 때로 익히면 또한 기쁘지 아니한가! 나머지 2개도 멋있습니다. “有朋自遠方來 不亦樂乎” (유붕자원방래 불역낙호) &#8211; 벗이 있어 멀리서 찾아오면 또한 즐겁지 아니한가! “人不知而不溫 不易君子乎” (인불지이불온 불역군자호) 사람들이 알아주지 않는다 하여도 성내지 않으면 또한 군자(멋진 사람)가 아닌가! 옆 길로 잠시 샜는데&#8230;다시 원래 길로 돌아 갑니다.</p>
<p dir="ltr">   앞에서 아두이노는 마이크로콘트롤러가 들어있는 간단한 컴퓨터라고 이야기했습니다. 좀 더 쉽게 이해하기 위하여 아두이노를 그냥 “잘 훈련된 훈련견”이라고 생각하면 이해하기 쉬울 것 같습니다. 명령을 내리면 훈련견이 명령에 알맞은 동작을 취하듯, 아두이노에게 해야 할 명령을 내리면 아두이노가 실행하게 되는 것이지요. 여기서 명령이라는 것이 바로 프로그램인데, 훈련견이 정해진 명령어에만 반응하는 것처럼, 아두이노도 정해진 형식을 갖춘 정해진 명령어만 알아듣습니다.</p>
<p dir="ltr">   오우~ 그럼 명령어의 종류를 알아서 필요한 명령만 죽 연결해서 명령을 내리면 되겠네요.</p>
<p dir="ltr">   짝~짝~짝~</p>
<p dir="ltr">   예. 맞습니다. 너무 잘 하는데요?</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-14.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28273" alt="29 아두이노 신호기 14" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-14-620x402.jpg" width="620" height="402" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   그러면, 어떤 명령어가 있을까요? 마음이 급하니까 일단 제일 쉬운 명령어 두 세 개만 배워서 명령을 내려봅시다. 아래와 같이 진행해 볼까요?</p>
<p>&nbsp;</p>
<p dir="ltr">1. 아두이노와 PC를 USB 케이블로 연결</p>
<p dir="ltr">
<p dir="ltr">2. PC에서 아두이노(앱, 엄밀하게는 IDE(Integrated Development Environment, 통합개발환경)) 실행</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-15.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28274" alt="29 아두이노 신호기 15" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-15.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p>3. 메뉴에서 [도구] -&gt; [보드] -&gt;[Arduino Uno] 선택</p>
<p dir="ltr">(아두이노는 사실 우노(UNO)뿐만 아니라 NANO, MEGA, MINI 등 다양한 종류가 있으나 UNO가 가장 많이 사용되고 있음)</p>
<p dir="ltr">
<p dir="ltr">4. 메뉴에서 [도구] -&gt; [시리얼포트] -&gt; [COMx] 선택 (단, x는 [시작] -&gt; [제어판] -&gt; [장치관리자] -&gt; [포트] -&gt; [Arduino Uno(COMx)]로 보이는 상태에서 x에 대응되는 숫자임) (아두이노는 USB로 연결되기 때문에 PC 입장에서는 USB 장치이므로 USB 드라이버가 필요하며 이 드라이버는 아두이노 프로그램 설치시 이미 함께 설치되었음. 만약 설치되지 않았다면 수동으로 설치하여야 함)</p>
<p>&nbsp;</p>
<p>5. 흰색 창에 아래와 같은 프로그램을 입력</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-16.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28275" alt="29 아두이노 신호기 16" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-16.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p>6. 상단 메뉴에서 <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" rel="lightbox[28246]"><img class=" wp-image-28276 alignnone" alt="29 아두이노 신호기 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" width="29" height="25" /></a> 생긴 아이콘을 찾아 클릭하면 아래쪽에 “스케치 컴파일” ▶ “업로딩” ▶ “업로딩 완료”로 제목이 나타나며 진행이 되고, 아래쪽 검정색 창에는 진행되는 내용이 스크롤되면서 디스플레이되며, 최종적으로는 아래의 형태가 나타납니다.(최종적으로 제목으로 “업로드 완료”가 나타나고 메시지 내용으로 “avrdude done. Thank you.”,가 나타나면 성공입니다.)</p>
<p>(<a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" rel="lightbox[28246]"><img alt="29 아두이노 신호기 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" width="29" height="25" /></a> 아이콘은 컴파일 및 업로드를 수행하라는 아이콘이며, 컴파일은 C, C++ 언어와 같은 프로그램언어를 마이크로콘트롤러가 직접 알아먹을 수 있는 좀 더 직접적인 기계어로 바꾸어주는 작업을 말하며, 업로드는 컴파일의 결과로 생긴 기계어를 마이크로콘트롤러에게 전달하여 이를 마이크로콘트롤러 내부에 실행할 수 있는 형태로 저장하는 작업을 말함.)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-18.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28277" alt="29 아두이노 신호기 18" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-18.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">7. 위와 같은 형태가 나오지 않고 “컴파일 에러”가 나오면 입력한 프로그램의 형식이 잘못된 것이고, 메시지 출력 부분에서 “Retry timeout ERROR” 등이 나타나면 USB 연결선이 잘못되었거나, 아두이노가 고장 난 경우 등등입니다. 만약, 정상적으로 업로드되지 않았다면 그 원인을 찾아내어 이를 해결한 후 다시 실행하여야 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #ff0000;"><strong>   [ setup() 과 loop() ]</strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">   아두이노에서 프로그램을 작성하는 것을 스케치(sketch)라고 합니다. 아두이노는 예술가와 같은 비전공자도 쉽게 사용할 수 있도록 간단한 인터페이스를 제공하는데, 원하는 것을 쉽게 쓱쓱 그려낸다는 의미를 담아 스케치라고 하였다네요.</p>
<p dir="ltr">   아두이노 프로그램의 기반은 C++이라는 컴퓨터 프로그래밍 언어(C++ 언어는 C언어에 기반을 둔 목적기반 언어)이며, 이 언어로 올바르게 작성된 프로그램만 아두이노가 명령어로 받아들이고 실행하게 됩니다. 그러므로, 아두이노에게 일을 시켜려면 이 언어에 대한 기본 형식과 구조 등에 대한 내용을 알아야만 합니다. 전체적인 내용을 모두 배우려면 시간이 많이 걸릴 수 있으므로, 우리는 DIY 작품을 만드는데 꼭 필요한 부분만 필요할 때마다 배우고 익히도록 해보지요. (다만, 이 강좌가 C 및 C++ 언어에 대한 강좌는 아니기 때문에, C 및 C++에 대하여는 최소한의 기초적인 내용은 알고 있다고 가정하고, 진행합니다.)</p>
<p dir="ltr">   일단, 위에서 작성한 프로그램을 보겠습니다.</p>
<p dir="ltr">   아두이노의 프로그램은 크게 두 부분으로 나누어집니다. 하나는 setup() 이라는 부분이고, 다른 하나는 loop()라는 부분입니다. 원래 C 프로그램은 main()이라는 함수의 형태를 취하도록 되어 있고, 이 main() 함수 내에서 필요한 명령을 순차적으로 작성하여 실행하게 되어 있습니다.</p>
<p dir="ltr">   아두이노 개발환경(IDE)은 사용자가 쉽게 프로그램할 수 있도록 항상 main() 프로그램을 공짜로 넣어주도록 되어있고, 이 main() 프로그램 안에서 첫번째로 setup()이라는 함수를 실행하고, 두번째로 loop()라는 프로그램을 반복적으로 실행하도록 이미 만들어져 있다고만 알아두면 되겠습니다.</p>
<p dir="ltr">   이렇게 실행이 되겠네요.</p>
<p>&nbsp;</p>
<p dir="ltr">   <strong><span style="color: #ff0000;">setup()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   …</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   Loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   …</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   … (무한 실행)</span></strong></p>
<p>&nbsp;</p>
<p dir="ltr">   우리가 작성한 setup() 함수와 loop() 함수는 중괄호로 둘러싸인 부분의 내용이 하나도 없으므로, 이 프로그램은 아무 것도 안하고 그냥 다시 원위치로 돌아가는 프로그램이 되겠습니다. 하지만 우리는 이 프로그램이 잘 컴파일되고, 잘 업로드 되었다는 사실만으로도 이제부터 우리가 원하는 진짜 프로그램을 작성할 수 있는 준비를 끝낸 것이 됩니다.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #808000;"><strong><span style="color: #ffffff;">  ■<a href="http://www.devicemart.co.kr/goods/view.php?seq=34404" target="_blank"> 아두이노</a>에 LED 연결하기   </span></strong></span></p>
<p dir="ltr">   신호등을 만들어서 이것을 아두이노에 연결해서 불을 켜고 끄려면, 일단 아두이노가 이 신호등에 전기를 넣었다 끊었다 할 수 있어야 할 것 같은데… 이것은 어떻게 할 수 있을까요?</p>
<p dir="ltr">   보통 집에서 사용하는 전등이나 전열기 등은 콘센트를 꼽으면 전기가 통하고 뽑으면 전기가 끊어집니다. 또는 전등과 같이 미리 전원은 연결해 놓고 중간에 스위치를 넣어서 이것을 ON/OFF 위치로 이동하여서 껐다 켰다 할 수도 있겠지요.</p>
<p dir="ltr">   아두이노도 이러한 기능을 하는 전기선을 가지고 있는데 이러한 선이 바로 입출력 핀(커넥터)입니다. 전기를 공급하였다가 끊었다가 할 수 있는 선이지요. 아두이노는 프로그램에 의하여 각각의 입출력 전압을 ON(5V, High) 상태로 만들거나, OFF(0V(GND), Low) 상태로 만들 수 있는 능력이 있답니다. 이런 핀들이 아래와 같이 커넥터로 나와 있는데. 아두이노 UNO의 경우는 총 20개나 되지요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-19.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28278" alt="29 아두이노 신호기 19" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-19-620x425.jpg" width="620" height="425" /></a></p>
<p dir="ltr">   물론, 집에 있는 콘센트는 220V의 교류(AC : Alternating Current) 전원이고, 아두이노의 입출력핀은 5V의 직류(DC : Direct Current)를 제공하는 점이 다르지만, 전기를 공급한다는 점에서는 비슷하답니다. 음, 그렇다면, 형광등이나 전등처럼 빛을 발산하는 것으로 5V의 전원으로 동작하는 부품을 찾아 이것을 연결하면 될 것 같은데, 이 부품은 뭘까요? 뭐, 모두 다 잘 아시리라 생각하는데… 이것이 바로 LED(Light Emitting Diode)랍니다. 요렇게 생겼지요. (심볼은 오른쪽 그림)</p>
<p dir="ltr"> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노1-자료.png" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28297" alt="아두이노1 자료" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노1-자료.png" width="440" height="133" /></a></p>
<p dir="ltr">   2개의 다리를 가지고 있고, 색깔은 빨강, 파랑, 노랑, 녹색, 흰색이 있답니다. 크기는 지름이 3mm나 5mm 인 것이 보통이고, 형태는 둥근 것이 보통이나 사각형 형태도 있지요.</p>
<p dir="ltr">   LED를 그대로 번역해보면, Light(빛) + Emitting(발산) + Diode(다이오드)가 되어서 보통 ‘발광다이오드’라고 칭하는데, 다이오드여서 한쪽 방향으로만 전기가 통합니다. 즉, 순방향으로 전압을 가하면 전류가 잘 흘러서 불이 켜지고, 역방향으로 전압을 가하면 전류가 흐르지 않아 불이 꺼지게 되는 것이지요.</p>
<p dir="ltr">   가정용 전구와 LED의 연결을 비교해 보면 아래와 같습니다. (LED는 보통 200오옴 ~ 1K 오옴의 저항을 직렬로 연결해 주어야 하며, 이 저항이 전류의 양을 조절하여 빛의 밝기를 조절할 수 있게 해줍니다. 저항 없이 직접 연결하면 빛은 엄청 밝지만 수명은 매우 짧아지므로 주의 요망!)</p>
<p dir="ltr">   또한, 교류 전원은 방향이 없어서 콘센트를 아무쪽 방향으로 꽂아도 되지만, LED의 연결은 방향이 있어서 그림에서와 같이 입출력핀에서 순방향이 되도록(LED는 다리의 길이가 긴 쪽이 ‘+’ 임!) +5V 전원 ▶ 저항 ▶ LED ▶ GND로 연결하여야 합니다.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-21.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28280" alt="29 아두이노 신호기 21" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-21-620x417.jpg" width="620" height="417" /></a></p>
<p dir="ltr">   이제 실전 DIY로 넘어가기 전에 잠깐 또 쉬겠습니다.</p>
<p dir="ltr">   10분간 휴식! 기지개도 좀 펴시고, 간단한 스트레칭도 해 봅시다. 헛! 둘! 헛! 둘!</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ LED 1개 켜기 / 끄기   </span></strong></p>
<p dir="ltr">   자, 드디어 실전 DIY 시간입니다. 3개의 LED 켜기에 앞서 먼저 1개의 빨강 LED를 다뤄보지요. “뱁새가 황새 따라가다가는 가랑이가 찢어진다”는 속담과 “천리길도 한걸음부터”라는 속담을 새기면서 말이죠.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: medium;"><strong>[실행 순서]</strong></span></p>
<p dir="ltr">1. 아두이노를 준비하고, 브레드보드와 부품, 케이블을 이용하여 다음과 같이 연결. 즉, LED를 ‘2’ 핀(앞으로는 ‘D2’라고 이름하겠습니다. 여기서 ‘D’는 Digital의 의미)에 연결 (LED는 일반 5mm(또는 3mm) 빨강 LED, 저항은 200~1K 오옴)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-22.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28281" alt="29 아두이노 신호기 22" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-22.jpg" width="351" height="344" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">2. USB 케이블로 아두이노와 PC 연결</p>
<p>&nbsp;</p>
<p dir="ltr">3. 메뉴에서 [도구] ▶ [보드] ▶ [Arduino Uno] 선택 (처음 한번 세팅되면 다음부터는 생략!)</p>
<p>&nbsp;</p>
<p dir="ltr">4. 메뉴에서 [도구] ▶ [시리얼포트] ▶ [COMx] 선택 (단, x는 [시작] ▶ [제어판] ▶ [장치관리자] ▶ [포트] ▶ [Arduino Uno(COMx)]로 보이는 상태에서 x에 대항되는 숫자)</p>
<p>&nbsp;</p>
<p dir="ltr">5. 아래의 스케치 프로그램 입력</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr">   pinMode(2, OUTPUT);                           // 2번핀을 출력으로 선언</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr">   digitalWrite(2, HIGH);                         // 2번핀에 High(1)를 출력</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   setup() 함수는 한번만 실행이 되고 loop() 함수는 무한 반복으로 실행된다고 하였으니 실제 실행되는 내용은 아래와 같이 되겠네요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">        pinMode(2, OUTPUT);</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        …</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        …</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   아두이노는 상당히 많은 라이브러리 함수를 제공하는데요. 이것 때문에 우리는 아두이노의 내부를 알 필요 없이, 그냥 아두이노가 제공하는 함수를 불러다 쓰면 되기 때문에 매우 편리합니다. pinMode() 함수와 digitalWrite() 함수도 아두이노가 제공하는 라이브러리입니다.</p>
<p dir="ltr">   그러면 이 라이브러리는 어떻게 동작하는 좀 더 자세히 알아보겠습니다.</p>
<p style="text-align: left;">   pinMode() 함수는 아두이노의 입출력핀을 입력으로 사용할 것이냐, 출력으로 사용할 것이냐를 정해주는 함수입니다. 어떤 핀? 입력?/출력? 을 결정해 주어야 하니까 2개의 값이 필요하겠네요. 즉, 어떤 핀?에 해당되는 값을 pin이라는 변수로, 입력?/출력?에 해당되는 값을 mode 형태로 전달하면 되므로 다음과 같은 형태가 됩니다.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">pinMode(pin, mode)</p>
<p dir="ltr">pin : 입출력핀 번호에 해당하는 숫자</p>
<p dir="ltr">mode : 이 핀을 입력으로 사용하는 경우는 “INPUT”, 출력으로 사용하는 경우는 “OUTPUT” (INPUT이나 OUTPUT은 상수값인데요. 이것도 이미 아두이노에서 정해준 값이므로 그냥 이렇게 사용하면 됩니다.)</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   우리는 LED를 D2핀에 연결하였고, 이 핀은 아두이노 입장에서 출력이므로 pinMode(2, OUTPUT)으로 프로그램합니다.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">digitalWrite(pin, value)</p>
<p dir="ltr">pin : 입출력핀 번호에 해당하는 숫자</p>
<p>value : 이 핀을 HIGH 상태로 만들려면 “HIGH”, LOW 상태로 만들려면 “LOW”</td>
</tr>
</tbody>
</table>
<p dir="ltr">   digitalWrite() 함수는 아두이노의 입출력핀에 출력으로 어떤 값을 내보낼 것인가, 즉, HIGH(ON, +5V) 또는 LOW(OFF, 0V)를 정해주는 함수입니다. 이 함수도 어떤 핀?을 HIGH?/LOW?로 만들 것인지를 결정해야 하므로 2개의 변수값이 필요하므로 digitalWrite(pin, value) 형태가 되겠습니다.</p>
<p dir="ltr">   이제 2개 함수를 종합적으로 이해해본다면, 위 프로그램은 D2핀을 출력으로 하고, 이 D2핀을 HIGH로 출력하는 것을 무한히 반복하는, 즉 LED가 항상 켜지는 프로그램이 되겠습니다!</p>
<p dir="ltr">   정말 그런지 얼른 실행해 봅시다.</p>
<p style="text-align: left;">
<p dir="ltr">6. 상단 메뉴에서 생긴 아이콘을 찾아 클릭하고 아래쪽에 “스케치 컴파일” ▶ “업로딩” ▶ “업로딩 완료” 및 “avrdude done. Thank you.”, 메시지가 나타나는지 확인!</p>
<p style="text-align: left;">
<p dir="ltr">7. 에러가 없는 경우 빨강색 LED가 켜지는지 확인!</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-23.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28282" alt="29 아두이노 신호기 23" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-23-620x348.jpg" width="620" height="348" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   켜졌다면 와우! 3번째 “축하축하”입니다. 이제 8부 능선에 도착했네요.</p>
<p dir="ltr">   정상이 코 앞에 다달았습니다. 여기서 다시 충분한 휴식을 취한 후에 정상 공격에 나서겠습니다. 10분간 또 휴식~~~ 그리고 막간을 이용해서 아래의 간단 과제 실행 실시! 윽!</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-1]</strong></p>
<p dir="ltr"><strong>위의 LED를 끄는 스케치 프로그램을 작성하고 실행하여 실제로 꺼보세요!</strong></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: left;">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ 3색 신호등 연결하기    </span></strong></p>
<p dir="ltr">   “시작이 반이다”라는 속담이 있는데 정말 시작이 반인 것 같다는 생각을 가끔 합니다. 실행하려면 미리 준비하여야 하는 것도 있고, 일단 시작하면 특별한 일이 없는 한 계속 가야 하는 것이어서 마음 먹는 것, 실행하는 것 자체가 반은 진행된 것이라는 느낌이지요.</p>
<p dir="ltr">   조금 전 첫 DIY로 빨강 LED 하나 달랑 켜는 것을 해 보았습니다. (참, LED 끄는 과제는 내드렸는데 다들 해보셨죠? 너무 너무 쉬었겠지만&#8230;) 어느새 우리는 간단한 중간 목표를 한 개 달성했습니다. 시작했다 싶었는데 벌써 결과가 나온 것이지요. LED를 한 개 켜보았으니, 3개(3색 신호등), 100개(전광판)도 켜고 끌 수 있고, LED가 아닌 것(버저, 모터 등)도 얼마든지 연결하면 동작시킬 수 있다는 가능성을 연 것입니다. 정말 “시작이 반이지요?” 또, 옆으로 샜는데… 다시 원위치로 돌아가, 정상 공격에 나서겠습니다.</p>
<p dir="ltr">   빨강색 LED 1개를 연결하는 것을 방금 배웠으니, LED 3개 연결하는 것도 이것을 그대로 응용하면 될 것 같습니다. LED 1개를 아두이노 입출력 포트 1개에 연결한 방법과 똑같이 LED 3개를 각각 다른 포트에 연결하면 되겠네요. 오~ 너무 쉽다.</p>
<p dir="ltr">   음. 그런데 어떤 핀에다 연결할까요? 입출력핀이 20개나 있으니까 아무데나 연결해도 괜찮긴 하지만, 기왕이면 순서대로 연결하도록 하지요. 이번에는 D4-빨강, D3-노랑, D2-녹색 LED를 연결하는 회로를 꾸며봅시다. 혼자서도 할 수 있겠지요? 이번 DIY가 3색 신호등이니까 당연히 LED는 빨강-노랑-녹색 순으로 브레드보드에 그럴듯하게 꽂아야 합니다. 자, 그럼 아래 그림 보기 전에 각자 회로 꾸미기 시작~~~~ 누가 누가 예쁘게 꾸미나~~~ (5분 줍니다.) (참, 브레드보드 내의 핀 연결은 어떻게 되는지 모두 알지요? 혹시 모르면 다음 그림 참조)</p>
<p style="text-align: left;">
<p dir="ltr"><span style="color: #0000ff;">(1분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(2분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(3분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(4분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(5분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">…</span></p>
<p style="text-align: left;">
<p dir="ltr">   저는 요렇게 만들어 보았습니다. 실제로 장착할 때는 선 길이와 부품 모양이 달라서 요것과는 조금 다르게 보이겠지만요. 예쁜가요?</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-28.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28287" alt="29 아두이노 신호기 28" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-28-620x502.jpg" width="620" height="502" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ffffff; font-size: large; background-color: #808000;"><strong>  ■ 3색 신호등 알고리즘    </strong></span></p>
<p dir="ltr">   이제 연결은 끝났으니 프로그램을 작성하여 실행할 차례네요.</p>
<p dir="ltr">   그런데, 프로그램을 작성할 때는 항상 주어진 문제를 어떤 식으로 풀어갈 것인지를 먼저 생각하여야 합니다. 그냥 무작정 프로그램을 작성할 수도 없을뿐더러 별 생각없이 생각나는대로 아무렇게나 프로그램을 작성하다 보면 효율성도 떨어지고 해결책을 찾는 것도 뒤죽박죽이 되어 쉽지 않은 경우가 대부분이지요.</p>
<p dir="ltr">   그러면 어떻게 해야 할까요?</p>
<p dir="ltr">   “어떤 문제를 해결하기 위해 명확히 정의된 유한 개의 규칙과 절차의 모임”을 알고리즘(algorithm)이라고 하는데, 우리는 어떤 문제를 해결하려고 할 때 이러한 알고리즘을 먼저 작성한 후 이를 프로그램으로 바꾸는 방법을 사용하도록 하겠습니다. 뭐, 똑 떨어지게 꼭 이렇게 해야 한다는 법도 없고 실제로 일을 하다 보면 그렇게 되지도 않지만, 가능한(조금 부족하거나 모호한 경우가 있더라도) 알고리즘을 작성한 후에 프로그램을 하도록 하는 것이 정상적인 방법입니다. 완벽하지는 않더라도 어느 정도는 방향을 잡고 가야 한다는 이야기입니다.</p>
<p dir="ltr">  알고리즘을 기술하는 방식은 크게 아래와 같이 3가지가 있습니다.</p>
<p dir="ltr">1. 자연어를 이용하는 방법 : 말(글)로 자연스럽게 기술</p>
<p dir="ltr">2. 순서도(flow chart)를 이용하는 방법 : 미리 의미가 정해진 도형과 선을 이용하여 기술</p>
<p dir="ltr">3. 유사 코드(psudo code)를 이용하는 방법 : 프로그램 언어와 비슷하지만 문법에는 크게 얽매이지 않게 어느 정도 자유롭게 기술하는 방법</p>
<p dir="ltr">   저는 위 3가지를 혼합하여 이해하기 쉽게 표현하는 형태를 취하도록 하겠습니다.</p>
<p dir="ltr">   참, 알고리즘을 기술하려면, 이것에 앞서 일단 해결하고자 하는 목표(요구사항)를 정확하게 규정할 필요가 있습니다. 즉, 제작하려고 하는 것이 무엇인지? 기능이 무엇인지? 어떻게 동작하여야 하는지? 등이 명확하게 기술되어 있어야 실제로 구현을 어디까지 해야 하는지가 명확하게 되기 때문입니다. 보통 이것을 규격(스펙, SPEC, Specification)이라고 하는데, 우리의 목표인 3색 신호등 DIY를 위하여 기능적인 부분만 규격을 작성해 보기로 하지요.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: medium;"><strong>[3색 신호등 기능 규격]</strong></span></p>
<p>1. 처음 전원이 들어오면 빨강 LED에 불이 켜진다.</p>
<p dir="ltr">2. 불이 들어오는 순서는 빨강 → 노랑 → 녹색 → 빨강 → 노랑 → … 으로 무한 반복된다.</p>
<p dir="ltr">3. 불은 어떤 한 순간 1개만 켜져 있어야 한다.</p>
<p dir="ltr">4. 한 개의 불은 3초 동안 켜진 상태를 유지한다.</p>
<p dir="ltr">   위 기능을 만족하기 위한 프로그램을 작성하기 위하여 먼저 알고리즘을 기술해 봅시다.</p>
<p dir="ltr">   순서도 비슷하게 기술해 보면 다음과 같은 형태가 될 것 같네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/Cap-2015-07-16-15-59-13-417.png" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28288" alt="Cap 2015-07-16 15-59-13-417" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/Cap-2015-07-16-15-59-13-417.png" width="430" height="273" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #ffffff; font-size: large; background-color: #808000;"><strong>  ■ 3색 신호등 코딩(cording)하기    </strong></span></p>
<p dir="ltr">   프로그램을 작성하는 것을 보통 코딩(cording)한다고 합니다. 위의 알고리즘을 보면서 순서대로 알맞은 코딩을 하면 되겠네요. 우리는 이미 배워서 알고 있는 것은 그 방법을 사용하여 코딩하면 되고, 잘 모르는 것은 새로운 코딩 방법을 배워야 합니다. 새로운 코딩은 기존에 배웠던 것을 응용하거나 조합하여 만들어 내는 방법도 있지만, 일단 아두이노에서는 혹시 우리가 원하는 기능을 라이이브러리로 이미 만들어 놓았는지, 아니면 다른 몇 개의 기존 라이브러리를 응용하거나 조합하여 구현할 수 있는지를 확인해 보는 것이 중요합니다. (남들이 애써서 다 만들어 놓은 것을 내가 낑낑대면서 또 만들 필요가 없으니까요. “고맙습니다” 하면서 낼름 갔다 쓰는게 장땡!이고, 사실 아두이노는 이것이 가장 큰 장점 중의 하나입니다.) 하나씩 체크해 볼까요?</p>
<p dir="ltr">   LED를 켜고 끄는 것은 조금 전에 배웠으므로 그것을 이용하면 되고, 일정 시간(초) 동안 기다리는 기능이 있는데, 이것을 해결해 줄 수 있는 아두이노 라이브러리(들)이 있는지를 잘 찾아 봐야겠습니다.</p>
<p dir="ltr">   다행히, delay( )라는 함수가 있네요. 그럼 형태와 기능이 어떤지 살펴볼까요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">void delay(unsigned long ms)</p>
<p dir="ltr">                  // 1/1000초(millisec) 단위로 시간을 지연하는 함수</p>
<p dir="ltr">                  // “void”는 함수 실행 종료 후 리턴값(출력값)이 없음을 의미</p>
<p dir="ltr">                  // “unsigned long ms”는 함수 입력값은 ms이고</p>
<p dir="ltr">                  // 타입은 unsigned long임을 나타냄 (4바이트 크기, 최대 40억 정도까지 표현 가능)</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   예를 들어 “delay(500);” 을 코딩하면 500ms = 0.5초가 지연되는(흘러가는) 것이 되겠습니다. Good~~~ 그렇다면, 이제 모든 부분이 해결되었으니까 여러분이 직접 코딩해 보겠습니다. 10분 기다리면 되겠지요? 참, 앞에서도 그랬지만 같이 해보기 전에 무조건 자신이 먼저 시도해 보는 것이 바람직합니다. (이래야 실력이 쑥쑥 늡니다.). 잘 안되면 그 때 아래에 제시한 내용을 보고 이해한 후, 다시 처음부터 혼자 힘으로 한 번 더 코딩해서 똑같은 결과를 얻어야만 자기 것이 되지요. 꼭~꼭~꼭~ 그렇게 해보세요!! 10분 기다립니다. 저도 하러 갑니다.</p>
<p dir="ltr">   모두(?) 잘(?) 되었죠? YES or NOT? 다음을 보시지요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 4           // “#define A B”은 이후 프로그램에서 A가 나오면 B로 치환</p>
<p dir="ltr">#define YELLOW_LED 3      // 프로그램에서 직접 숫자를 써도 되지만 이렇게 해놓으면</p>
<p dir="ltr">#define GREEN_LED 2        // 번호가 아닌 Label로 의미가 전달되므로 더 쉬움</p>
<p dir="ltr">void setup()                     // 초기에 한 번만 실행</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);                     // 4번핀은 출력</p>
<p dir="ltr"> pinMode(YELLOW_LED, OUTPUT);                // 3번핀도 출력</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);                  // 2번핀도 출력</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);                     // 빨강 LED ON</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()                       // 무한 반복 루프</p>
<p dir="ltr">{</p>
<p dir="ltr"> delay(3000);                                            // 3초 대기</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);  digitalWrite(YELLOW_LED, HIGH);</p>
<p dir="ltr">                                                              // 빨강 LED OFF, 노랑 LED ON</p>
<p dir="ltr">  delay(3000);</p>
<p dir="ltr"> digitalWrite(YELLOW_LED, LOW);  digitalWrite(GREEN_LED, HIGH);</p>
<p dir="ltr">                                                              // 노랑 LED OFF, 녹색 LED ON</p>
<p dir="ltr">  delay(3000);</p>
<p dir="ltr"> digitalWrite(GREEN_LED, LOW);  digitalWrite(RED_LED, HIGH);</p>
<p dir="ltr">                                                               // 녹색 LED ON, 빨강 LED ON</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   이제 아두이노 연결하고 스케치 프로그램 입력하고 실행하는 것은 다 아시니까 실행해 봅시다. 다들 잘 동작하나요?</p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/JVNDQeTjNb0" frameborder="0"></iframe></p>
<p>   이 동영상처럼 3초마다 돌아가면서 빨강-노랑-녹색 LED가 잘 켜지면 되겠습니다. 성공입니다! 자축의 박수~ 짝! 짝! 짝!</p>
<p dir="ltr">   여러분, 오늘 모두모두 너무너무 수고하셨고 자랑스럽습니다.</p>
<p dir="ltr">   첫번째 단추를 잘 끼웠으니 여러분은 벌써 목표의 반은 이루신 것이지요.</p>
<p dir="ltr">   다음 시간에는 3색 LED를 가지고 “카멜레온 반지 만들기 DIY”에 도전해 보기로 하고, 오늘은 기쁜마음으로 여기에서 강의를 마치겠습니다.</p>
<p dir="ltr">   아래 과제는 시간 나실 때 해보시고, 다음 강의에서 건강한 얼굴로 뵙겠습니다. 모두모두 안녕~!</p>
<p dir="ltr">   감사합니다.</p>
<p dir="ltr">
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-2]</strong></p>
<p dir="ltr"><strong>LED 불의 움직임이 0.5초 간격으로 (녹색 → 노랑 → 빨강 → 녹색 → …)이 무한 반복되는 프로그램을 작성해 보세요.</strong></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-3]</strong></p>
<p><strong>LED가 1초 간격으로 (빨강-노랑 → 빨강-녹색 → 녹색-노랑 → 빨강-노랑-녹색 → 모두 꺼짐 → …)이 무한 반복되는 프로그램을 작성해 보세요.</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: medium;"><strong> </strong></span></p>
<p style="text-align: center;">
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28246/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[29호] Intel Edison Review</title>
		<link>http://www.ntrexgo.com/archives/28027</link>
		<comments>http://www.ntrexgo.com/archives/28027#comments</comments>
		<pubDate>Tue, 10 Mar 2015 02:04:02 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[blog-posts]]></category>
		<category><![CDATA[제품 리뷰]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[edison]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[디바이스마트]]></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=28027</guid>
		<description><![CDATA[본 리뷰는 디바이스마트 ((주)엔티렉스)의 지원을 받아 작성하게 되었습니다. 
인텔 홈페이지, 해외 웹사이트 등을 참고해 가며 본 리뷰를 작성하였습니다.
저자 : 객원기자 금강초롱
이 기사는 디바이스마트매거진 29호에 실려있는 글입니다.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-666.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28028" alt="Edi" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-666.jpg" width="620" height="234" /></a></p>
<p>&nbsp;</p>
<p>바야흐로 IOT(Internet of Things : 사물인터넷)시대가 막 개화하려하고 있는 이 시대 우연한 기회에 에디슨 보드라는 것을 알게 되었습니다. 모든 사물이 인터넷에 연결되어 정보를 공유할 수 있는 체계를 통칭하여 IOT라 한다고 하지만 선뜻 와 닿지는 않는 것 같습니다. 이렇게 사물을 인터넷과 연결시켜주는 다리와도 같은 역할을 인텔 에디슨 보드가 충실히 해낼 수 있을까요?</p>
<p dir="ltr">저는 라즈베리파이보드와 스마트폰을 연동하여 Wi-Fi 기반에서 RC CAR를 제어해 본 경험이 있었기에 모듈형 초소형 컴퓨터에 대해서는 그리 낯설지 않은 것 같습니다. 맨 처음 라즈베리파이보드를 접했을 때의 문화적 충격보다도 갑절은 더 할 에디슨 보드의 리뷰를 시작해보려 하며 Breakout보드를 사용하여 리눅스, 아두이노 등을 테스트 해보고자 합니다. 궁극적으로는 에디슨보드를 인터넷에 물려서 동작시켜보려 합니다.</p>
<p dir="ltr">본 리뷰는 디바이스마트 ((주)엔티렉스)의 지원을 받아 작성하게 되었습니다. 아직 시장에 출시된 지 얼마 되지 않은 관계로 한글로 된 정보가 거의 없다보니 인텔 홈페이지와 해외 웹사이트 등을 참고해 가며 본 리뷰 보고서를 작성하였습니다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: x-large;"><strong>[1] <a href="http://www.devicemart.co.kr/1160265">에디슨 보드</a> 제품 외관 및 사양</strong></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong>  1. 에디슨 보드 개봉</strong></span></p>
<p dir="ltr">   작은 스마트폰 케이스만한 상자에 에디슨보드와 에디슨 Breakout보드가 각각 1매씩 들어 있었습니다. 에디슨 Breakout보드는 별매품이지만 에디슨보드를 사용하려면 적어도 이 보드 정도는 갖춰야 하기에 주최 측에서 배려를 해주셨습니다. 먼저 사이즈가 어느 정도 되는지 이해하기 쉽도록 자를 대고 촬영해 보았습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/02번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28029" alt="02번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/02번.jpg" width="800" height="600" /></a><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/03번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28030" alt="03번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/03번.jpg" width="800" height="600" /></a></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/04번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28031" alt="04번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/04번.jpg" width="620" height="241" /></a></p>
<p style="text-align: center;"> <strong>Intel® Edison(<a href=" http://www.devicemart.co.kr/1160265">상품코드:1160265</a>)와 Intel® Edison Breakout Board(<a href="http://www.devicemart.co.kr/1160267">상품코드:1160267</a>)</strong></p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong>  2. 에디슨 보드 간략 살펴보기</strong></span></p>
<p dir="ltr">   인텔사의 홍보성 글에 ®에디슨컴퓨팅모듈은 “IoT 프로토타입” 및 “웨어러블 컴퓨팅” 제품 생산에 대한 진입 장벽을 낮출 수 있도록 많은 고려가 있었다고 합니다.</p>
<p dir="ltr">70핀 커넥터를 통해 외부와 전기적으로 연결되며 와이파이/블루투스를 포함하고 있습니다만 비디오 입출력(LCD등 디스플레이장치, 디스플레이 커넥터) 등은 미포함입니다.</p>
<div dir="ltr">
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="171" />
<col width="466" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\ud56d \ubaa9&quot;]"><strong>항 목</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\ub0b4 \uc5ed&quot;]"><strong>내 역</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ud504\ub85c\uc138\uc11c&quot;]"><strong>프로세서</strong></td>
<td data-sheets-value="[null,2,&quot;  Dual Core IA-32 @ 500 MHz,\n32-bit Intel\u00ae Atom\u2122 Processor Z34xx Series @ 100 MHz&quot;]"> Dual Core IA-32 @ 500 MHz,<br />
32-bit Intel® Atom™ Processor Z34xx Series @ 100 MHz</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RAM&quot;]"><strong>RAM</strong></td>
<td data-sheets-value="[null,2,&quot;  1 GB LPDDR3 POP memory\n(2 channel 32 bits @ 800 MT/sec)&quot;]"> 1 GB LPDDR3 POP memory<br />
(2 channel 32 bits @ 800 MT/sec)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ub0b4\uc7a5 \uc2a4\ud1a0\ub9ac\uc9c0&quot;]"><strong>내장 스토리지</strong></td>
<td data-sheets-value="[null,2,&quot;  4 GB eMMC (v4.51 spec) &quot;]"> 4 GB eMMC (v4.51 spec)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc804\ub825\uad00\ub9ac&quot;]"><strong>전력관리</strong></td>
<td data-sheets-value="[null,2,&quot;  TI SNB9024 power management IC&quot;]"> TI SNB9024 power management IC</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ubb34\uc120&quot;]"><strong>무선</strong></td>
<td data-sheets-value="[null,2,&quot;  Dual-band (2.4 and 5 GHz) IEEE 802.11a/b/g/n&quot;]"> Dual-band (2.4 and 5 GHz) IEEE 802.11a/b/g/n</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ube14\ub8e8\ud22c\uc2a4&quot;]"><strong>블루투스</strong></td>
<td data-sheets-value="[null,2,&quot;  BT 4.0 + 2.1 EDR &quot;]"> BT 4.0 + 2.1 EDR</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc548\ud14c\ub098&quot;]"><strong>안테나</strong></td>
<td data-sheets-value="[null,2,&quot;  Dual-band onboard chip antenna or u.FL for external antenna&quot;]"> Dual-band onboard chip antenna or u.FL for external antenna</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ucee8\ub125\ud130&quot;]"><strong>컨넥터</strong></td>
<td data-sheets-value="[null,2,&quot;  70-pin Hirose DF40 Series\n(1.5, 2.0, or 3.0 mm stack height)&quot;]"> 70-pin Hirose DF40 Series<br />
(1.5, 2.0, or 3.0 mm stack height)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc0ac\uc774\uc988&quot;]"><strong>사이즈</strong></td>
<td data-sheets-value="[null,2,&quot;  35.5 \u00d7 25.0 \u00d7 3.9 mm maximum&quot;]"> 35.5 × 25.0 × 3.9 mm maximum</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc804\uc6d0\uacf5\uae09&quot;]"><strong>전원공급</strong></td>
<td data-sheets-value="[null,2,&quot;  3.15 to 4.5 V&quot;]"> 3.15 to 4.5 V</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I/O&quot;]"><strong>I/O</strong></td>
<td data-sheets-value="[null,2,&quot;  40 general purpose GPIO which can be configured as:\n  \u2022 SD card: 1 interface\n  \u2022 UART: 2 controllers (one full flow control, one Rx/Tx)\n  \u2022 I2C: 2 controllers\n  \u2022 SPI: 1 controller with 2 chip selects\n  \u2022 I2S: 1 controller\n  \u2022 GPIO: Additional 14 (with 4 capable of PWM)&quot;]"> 40 general purpose GPIO which can be configured as:<br />
• SD card: 1 interface<br />
• UART: 2 controllers (one full flow control, one Rx/Tx)<br />
• I2C: 2 controllers<br />
• SPI: 1 controller with 2 chip selects<br />
• I2S: 1 controller<br />
• GPIO: Additional 14 (with 4 capable of PWM)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;USB2.0&quot;]"><strong>USB2.0</strong></td>
<td data-sheets-value="[null,2,&quot;  1 OTG controller&quot;]"> 1 OTG controller</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Clock&quot;]"><strong>Clock</strong></td>
<td data-sheets-value="[null,2,&quot;  19.2MHz, 32kHz&quot;]"> 19.2MHz, 32kHz</td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-size: xx-small;"><strong>표1 : 하드웨어 기능</strong></span></p>
<p style="text-align: center;">
<p dir="ltr">   프로세서는 500MHz로 돌아가는 32비트 듀얼코어 프로세서와 100MHz로 돌아가는 아톰프로세서로 구성된 것이 눈에 띄며 1GB램과 4GB eMMC는 어지간한 프로그램 구동환경에는 문제가 없을 정도로 넉넉해 보입니다. 또한 고속 SD CARD를 처리하기 위한 SDIO가 붙어 있어 SD메모리카드 연결도 충분히 고려되어 있음을 알 수 있습니다.</p>
<p dir="ltr"><strong style="font-size: small;">   </strong></p>
<p><span style="font-size: small;"><strong>    2.1. 에디슨보드 블록도</strong></span></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/05번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28051" alt="05번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/05번.jpg" width="688" height="281" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: small;">     2.2. 내부 모듈 사진</span></strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/06번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28052" alt="06번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/06번.jpg" width="592" height="543" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: large;"><strong> 3. 각 부분별 세부 사항</strong></span></p>
<p>&nbsp;</p>
<p><strong><span style="font-size: small;"> 3.1. Intel® Atom™ processor Z34XX</span></strong></p>
<p>인텔의 Z34XX 아톰프로세서는 스마트폰 시장을 타겟으로 22nm 공정으로 만들어진 SoC라고 합니다. 앞서 설명 드린 바와 같이 내부에는 IA-32 기반의 500MHz급 듀얼코어를 포함하고 있습니다. 64비트 명령어 디코드나 비순차적실행 등을 위해 두 CPU 코어 간에는 1MB 공유 캐쉬메모리를 설치해 놓고 있습니다.</p>
<p>&nbsp;</p>
<p><strong>3.</strong><strong><span style="font-size: small;">2. 와이파이/블루투스 모듈</span></strong></p>
<p>와이파이/ 블루투스 모듈은 브로드컴의 BCM43340을 기반으로 만들어져 있습니다. 이 BCM43340의 특징을 살펴보면</p>
<p dir="ltr">      ■ 2.4GHz/5GHz IEEE802.11 a/b/g/n 듀얼밴드 제공</p>
<p dir="ltr">      ■ 802.11n 모드에서 통상적으로 90Mbps의 스루풋과 최대 150Mbps까지의 속도 제공</p>
<p dir="ltr">      ■ SDIO v2.0과 gSPI(40MHz) 호스트 인터페이스 제공</p>
<p dir="ltr">      ■ 블루투스 4.0 지원, 블루투스 전송규격 Class1, Class2</p>
<p dir="ltr">      ■ 보안기능</p>
<p dir="ltr">          <strong>□</strong> WPA, WPA2 지원</p>
<p dir="ltr">          <strong>□</strong> IEEE802.11i 규격을 따르는 고속 데이터 암호화 지원(AES)</p>
<p dir="ltr">          <strong>□</strong> W-Fi Protected setup(WPS) 지원</p>
<p>&nbsp;</p>
<p><strong>    3.3.</strong> <strong><span style="font-size: small;">NAND(eMMC) Flash 메모리 관리</span></strong></p>
<p dir="ltr">
<p dir="ltr">    에디슨보드는 4GB의 NAND Flash메모리를 가지고 있으며 파일시스템과 유저데이터를 저장하는 공간으로 사용할 수 있습니다.</p>
<p dir="ltr">      ■ 버스 모드</p>
<p dir="ltr">          <strong>□</strong> 데이터버스폭: 1bit, 4bit, 8bit</p>
<p dir="ltr">          <strong>□</strong> 데이터 전송률 : 최대 200MBps</p>
<p dir="ltr">          <strong>□</strong> MMC I/F 클럭주파수 : 0~200MHz</p>
<p dir="ltr">          <strong>□</strong> MMC I/F 부트주파수 : 0~52MHz</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: small;">    3.4. DDR SRAM</span></strong></p>
<p dir="ltr">    에디슨 보드는 1GB LPDDR3 메모리를 최대 1033MT/s까지 지원합니다.</p>
<p dir="ltr">      ■ 8개의 뱅크를 가지고 있음</p>
<p dir="ltr">      ■ Row 어드레스 : R0~R13</p>
<p dir="ltr">      ■ Column 어드레스 : C0~C9</p>
<p dir="ltr">      ■ Dual-채널 32bit</p>
<p dir="ltr">      ■ 최대 400Mhz 클록인가(800 MT/s)</p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><strong>    3.5. 전력관리장치(PMIC : Power Management IC)</strong></span></p>
<p dir="ltr">    에디슨 보드는 TI의 SNB9024 전력관리칩을 장착하고 있습니다. 이 칩을 통해 입출력되는 신호의 크기 등을 통제할 수가 있습니다.</p>
<p dir="ltr">      ■ 4개의 고효율 Buck컨버터(강압형 레귤레이터)를 내장 하고 있음</p>
<p dir="ltr">          <strong>□</strong> Two dual-phase 0.55 to 1.2 V @ 4.8 A with DVS</p>
<p dir="ltr">          <strong>□</strong> One dual-phase 1.24 V @ 2.5 A</p>
<p dir="ltr">          <strong>□</strong> One single-phase 1.8 V @ 1.1 A</p>
<p dir="ltr">      ■ 1개의 5V 1.2A 부스트(승압형) 컨버터 내장</p>
<p dir="ltr">      ■ 1개의 3.3V/3.4V 1.4A Buck-Boost 컨버터 내장</p>
<p dir="ltr">      ■ 5개의 LDO 레귤레이터 내장</p>
<p dir="ltr">          <strong>□</strong> 3개의 프로그래머블 레귤레이터(1.05~2.85V@100~300mA)</p>
<p dir="ltr">          <strong>□</strong> 1개의 고정밀도 1V@ 2mA</p>
<p dir="ltr">          <strong>□</strong> DVS(Dynamic Voltage Scaling : 동적전압제어)0.75~0.95V@220mA</p>
<p dir="ltr">      ■ 2개의 부하 절체기</p>
<p dir="ltr">      ■ USB-AC/DC 어댑터전원 탐지 및 외부 충전회로 제어(충전 전류제어기능)</p>
<p dir="ltr">      ■ I2C Interface and dedicated SVI</p>
<p dir="ltr">      ■ PMIC 용 인터럽트 제어</p>
<p dir="ltr">      ■ 7개의 범용 1.8V I/O와 최대 3.3V를 지원하는 2개의 I/O</p>
<p dir="ltr">      ■ 백업시간을 위한 32.768kHz RTC</p>
<p dir="ltr">      ■ 알람타이머 인터럽트</p>
<p dir="ltr">      ■ 슬립 클록 출력 : 32.768kHz</p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><strong>    3.6. USB2.0 트랜시버 ULPI(High speed USB 2.0 표준) 인터페이스</strong></span></p>
<p dir="ltr">    ULPI인터페이스는 TUSB1211 USB2.0 트랜시버 칩을 통해 USB 컨트롤러와 연결되어 있습니다. 이 칩은 모든 USB2.0 데이터 전송속도를 수용합니다. (High speed : 480Mbps, Full speed 12Mbps, Low speed 1.5Mbps) TUSB1211은 또한 USB배터리 충전규격 v1.1을 지원합니다.</p>
<p>&nbsp;</p>
<p dir="ltr">  <strong>  3.7. 통합형 칩안테나와 외장형안테나를 위한 u.FL 컨넥터</strong></p>
<p dir="ltr">    에디슨모듈은 Wi-Fi통신용 2.4Ghz와 5Ghz의 이중밴드 안테나를 보드에 내장하고 있습니다. 내장안테나는 플라스틱케이스에 들어가는 소형폼팩터에 주로 사용되어 질 수 있고 더 큰 장치나 금속 엔클로져에 들어갈 때는 외장형 안테나를 u.FL컨넥터에 끼워 사용 할 수 있습니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>    3.8. 70핀 인터페이스 컨넥터</strong></span></p>
<p dir="ltr">    이 컨넥터는 히로세 70핀 DF40시리즈의 헤더 타입으로 구성되어 있습니다. 히로세 컨넥터 파트넘버는 DF40C-70DP-0.4V(51)입니다.</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="100" />
<col width="100" />
<col width="100" />
<col width="344" /></colgroup>
<tbody>
<tr>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\ud540&quot;]"><strong>핀</strong></td>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\uc2e0\ud638\uba85&quot;]"><strong>신호명</strong></td>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\ubcf4\uc870\uae30\ub2a5&quot;]"><strong>보조기능</strong></td>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\ub0b4\uc6a9&quot;]"><strong>내용</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;2,4,6&quot;]">2,4,6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;VSYS&quot;]">VSYS</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\uc2dc\uc2a4\ud15c \uc785\ub825\uc804\uc6d0 (\uc5d0\ub514\uc2a8\ubcf4\ub4dc \ub3d9\uc791 \uc804\uc6d0) (3.3 to 4.5 V)&quot;]">시스템 입력전원 (에디슨보드 동작 전원) (3.3 to 4.5 V)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;8,10&quot;]">8,10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;3.3 V&quot;]">3.3 V</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;3.3 V \ucd9c\ub825\ub2e8\uc790&quot;]">3.3 V 출력단자</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,12]">12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;1.8 V&quot;]">1.8 V</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;1.8 V \ucd9c\ub825\ub2e8\uc790\n(\ub514\uc9c0\ud138 I/O\ud540 \uc804\uc555\ub808\ubca8\uacfc \ub3d9\uc77c)&quot;]">1.8 V 출력단자<br />
(디지털 I/O핀 전압레벨과 동일)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,14]">14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DCIN&quot;]">DCIN</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;DC \uc544\ub2f5\ud130\ub85c\ubd80\ud130 \uc804\uc6d0\uacf5\uae09 \ub2e8\uc790 (\ub9cc\uc77c \ubc30\ud130\ub9ac\ub85c\ubd80\ud130 \uc804\uc6d0\uc744 \uacf5\uae09 \ubc1b\ub294 \uacbd\uc6b0 \ubbf8 \uc5f0\uacb0)&quot;]">DC 아답터로부터 전원공급 단자 (만일 배터리로부터 전원을 공급 받는 경우 미 연결)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;1,5,9,\n11,13,15&quot;]">1,5,9,<br />
11,13,15</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\uc811\uc9c0&quot;]">접지</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,7]">7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;MSIC_SLP_\nCLK3&quot;]">MSIC_SLP_<br />
CLK3</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;32 kHz sleep \ud074\ub85d \ucd9c\ub825&quot;]">32 kHz sleep 클록 출력</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,3]">3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;USB_ID&quot;]">USB_ID</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB OTG ID pin&quot;]">USB OTG ID pin</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,16]">16</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;USB_DP&quot;]">USB_DP</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB D+&quot;]">USB D+</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,18]">18</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;USB_DN&quot;]">USB_DN</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB D-&quot;]">USB D-</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,20]">20</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;USB_VBUS&quot;]">USB_VBUS</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB VBUS input\n(does not power system)&quot;]">USB VBUS input<br />
(does not power system)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,17]">17</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PWRBTN#&quot;]">PWRBTN#</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Power/sleep \uc785\ub825\ubc84\ud2bc\n(\uc5d1\ud2f0\ube0c low)&quot;]">Power/sleep 입력버튼<br />
(엑티브 low)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,19]">19</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;FAULT&quot;]">FAULT</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB power fault input (from external USB current limit switch)&quot;]">USB power fault input (from external USB current limit switch)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,21]">21</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PSW&quot;]">PSW</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;USB power output enable (to external USB current limit switch)&quot;]">USB power output enable (to external USB current limit switch)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,23]">23</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_VBAT_BKUP&quot;]">V_VBAT_BKUP</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\ub9ac\uc5bc\ud0c0\uc784\ud074\ub85d \ubc30\ud130\ub9ac \uc785\ub825\ud540(RTC)&quot;]">리얼타임클록 배터리 입력핀(RTC)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,36]">36</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RESET_OUT#&quot;]">RESET_OUT#</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\uc2dc\uc2a4\ud15c \ub9ac\uc14b\ucd9c\ub825 (active low)&quot;]">시스템 리셋출력 (active low)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,24]">24</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP44&quot;]">GP44</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,25]">25</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP165&quot;]">GP165</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,26]">26</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP45&quot;]">GP45</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,28]">28</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP46&quot;]">GP46</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,30]">30</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP47&quot;]">GP47</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,32]">32</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP48&quot;]">GP48</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,34]">34</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP49&quot;]">GP49</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,42]">42</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP15&quot;]">GP15</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,48]">48</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP14&quot;]">GP14</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,35]">35</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP12_PWM0&quot;]">GP12_PWM0</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PWM_0&quot;]">PWM_0</td>
<td data-sheets-value="[null,2,&quot;GPIO, capable of PWM output&quot;]">GPIO, capable of PWM output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,33]">33</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP13_PWM1&quot;]">GP13_PWM1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PWM_1&quot;]">PWM_1</td>
<td data-sheets-value="[null,2,&quot;GPIO, capable of PWM output&quot;]">GPIO, capable of PWM output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,37]">37</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP182_PWM2&quot;]">GP182_PWM2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PWM_2&quot;]">PWM_2</td>
<td data-sheets-value="[null,2,&quot;GPIO, capable of PWM output&quot;]">GPIO, capable of PWM output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,39]">39</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP183_PWM3&quot;]">GP183_PWM3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;PWM_3&quot;]">PWM_3</td>
<td data-sheets-value="[null,2,&quot;GPIO, capable of PWM output&quot;]">GPIO, capable of PWM output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,41]">41</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP19&quot;]">GP19</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C_1_SCL&quot;]">I2C_1_SCL</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C1 clock\n(open collector when configured for I2C)&quot;]">GPIO, I2C1 clock<br />
(open collector when configured for I2C)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,43]">43</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP20&quot;]">GP20</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C_1_SDA&quot;]">I2C_1_SDA</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C1 data\n(open collector when configured for I2C)&quot;]">GPIO, I2C1 data<br />
(open collector when configured for I2C)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,45]">45</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP27&quot;]">GP27</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C_6_SCL&quot;]">I2C_6_SCL</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C6 clock\n(open collector when configured for I2C)&quot;]">GPIO, I2C6 clock<br />
(open collector when configured for I2C)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,47]">47</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP28&quot;]">GP28</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C_6_SDA&quot;]">I2C_6_SDA</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C6 data\n(open collector when configured for I2C)&quot;]">GPIO, I2C6 data<br />
(open collector when configured for I2C)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,50]">50</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP42&quot;]">GP42</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2S_2_RXD&quot;]">I2S_2_RXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2S2 receive data (input)&quot;]">GPIO, I2S2 receive data (input)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,52]">52</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP40&quot;]">GP40</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2S_2_CLK&quot;]">I2S_2_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2S2 clock (output)&quot;]">GPIO, I2S2 clock (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,54]">54</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP41&quot;]">GP41</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2S_2_FS&quot;]">I2S_2_FS</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2S2 frame sync (output)&quot;]">GPIO, I2S2 frame sync (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,56]">56</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP43&quot;]">GP43</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2S_2_TXD&quot;]">I2S_2_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2S2 transmit data (output)&quot;]">GPIO, I2S2 transmit data (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,22]">22</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP134&quot;]">GP134</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_2_RX&quot;]">UART_2_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART2 receive (input)&quot;]">GPIO, UART2 receive (input)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,27]">27</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP135&quot;]">GP135</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_2_TX&quot;]">UART_2_TX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART2 transmit (output)&quot;]">GPIO, UART2 transmit (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,51]">51</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP111&quot;]">GP111</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SPI_2_FS1&quot;]">SPI_2_FS1</td>
<td data-sheets-value="[null,2,&quot;GPIO, SPI2 chip select 1 (output)&quot;]">GPIO, SPI2 chip select 1 (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,53]">53</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP110&quot;]">GP110</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SPI_2_FS0&quot;]">SPI_2_FS0</td>
<td data-sheets-value="[null,2,&quot;GPIO, SPI2 chip select 0 (output)&quot;]">GPIO, SPI2 chip select 0 (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,55]">55</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP109&quot;]">GP109</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SPI_2_CLK&quot;]">SPI_2_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SPI2 clock output&quot;]">GPIO, SPI2 clock output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,57]">57</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP115&quot;]">GP115</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SPI_2_TXD&quot;]">SPI_2_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SPI2 transmit data (output)&quot;]">GPIO, SPI2 transmit data (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,59]">59</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP114&quot;]">GP114</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SPI_2_RXD&quot;]">SPI_2_RXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SPI2 receive data (input)&quot;]">GPIO, SPI2 receive data (input)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,46]">46</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP131&quot;]">GP131</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_1_TX&quot;]">UART_1_TX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 transmit (output)&quot;]">GPIO, UART1 transmit (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,61]">61</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP130&quot;]">GP130</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_1_RX&quot;]">UART_1_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 receive data (input)&quot;]">GPIO, UART1 receive data (input)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,63]">63</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP129&quot;]">GP129</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_1_RTS&quot;]">UART_1_RTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 ready to send (output)&quot;]">GPIO, UART1 ready to send (output)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,65]">65</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP128&quot;]">GP128</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART_1_CTS&quot;]">UART_1_CTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 clear to send (input)&quot;]">GPIO, UART1 clear to send (input)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,44]">44</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP84&quot;]">GP84</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_CLK_FB&quot;]">SD_0_CLK_FB</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD clock feedback&quot;]">GPIO, SD clock feedback</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,58]">58</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP78&quot;]">GP78</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_CLK&quot;]">SD_0_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD clock output&quot;]">GPIO, SD clock output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,60]">60</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP77&quot;]">GP77</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_CD#&quot;]">SD_0_CD#</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD card detect input (active low)&quot;]">GPIO, SD card detect input (active low)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,62]">62</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP79&quot;]">GP79</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_CMD&quot;]">SD_0_CMD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD command&quot;]">GPIO, SD command</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,66]">66</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP80&quot;]">GP80</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_DAT0&quot;]">SD_0_DAT0</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 0&quot;]">GPIO, SD data 0</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,70]">70</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP81&quot;]">GP81</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_DAT1&quot;]">SD_0_DAT1</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 1&quot;]">GPIO, SD data 1</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,64]">64</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP82&quot;]">GP82</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_DAT2&quot;]">SD_0_DAT2</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 2&quot;]">GPIO, SD data 2</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,68]">68</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP83&quot;]">GP83</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_0_DAT3&quot;]">SD_0_DAT3</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data&quot;]">GPIO, SD data</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,67]">67</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;OSC_CLK_OUT_&quot;]">OSC_CLK_OUT_</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;19.2 MHz high speed clock output&quot;]">19.2 MHz high speed clock output</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,31]">31</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RCVR_MODE&quot;]">RCVR_MODE</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\ud38c\uc6e8\uc5b4 \ub9ac\ucee4\ubc84\ub9ac \ubaa8\ub4dc&quot;]">펌웨어 리커버리 모드</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,3,null,69]">69</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;FW_RCVR&quot;]">FW_RCVR</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;\ud38c\uc6e8\uc5b4 \ub9ac\ucee4\ubc84\ub9ac\n(active high on boot)&quot;]">펌웨어 리커버리<br />
(active high on boot)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;29,38,\n40,49&quot;]">29,38,<br />
40,49</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Unused.&quot;]">Unused.</td>
<td style="text-align: center;"></td>
<td></td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><span style="font-size: xx-small;"><strong>표2 : 에디슨보드 컨넥터 핀과 시그널 리스트</strong></span></p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: small;"><strong>    4.1. I2C 인터페이스</strong></span></p>
<p dir="ltr">    에디슨보드는 2개의 I2C 채널이 있으며 I2C1은 pin41, 34에 연결되고, I2C6는 pin45, 47에 연결되어 있으며 기본적인 모드는 다음과 같습니다.</p>
<p dir="ltr">      ■ 표준모드(전송 속도는 최대 100kbps)</p>
<p dir="ltr">      ■ 고속모드(전송 속도는 최대 400kbps)</p>
<p dir="ltr">      ■ 하이스피드모드(전송속도는 최대 3.4Mbps)</p>
<p dir="ltr">      ■ 항상 I2C마스터 모드로 동작</p>
<p dir="ltr">      ■ 7bit, 10bit 어드레싱 모드 지원</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>    4.2. SD CARD 인터페이스</strong></span></p>
<p dir="ltr">    SD3.0 규격을 준수하며 핀 44, 58, 60, 62, 64, 66, 68, 70을 사용</p>
<p dir="ltr">      ■ 호스트 클록은 최대 50MHz까지 출력</p>
<p dir="ltr">      ■ 카드삽입과 방출을 검지할 수 있음</p>
<p dir="ltr">      ■ SD 호스트컨트롤러는 표준 SD3.0을 지원함</p>
<p dir="ltr">      ■ SD메모리 전용</p>
<p dir="ltr">      ■ 2.85V 디바이스 지원을 위해 레벨 변환을 필요로 함</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>    4.3. UART 인터페이스</strong></span></p>
<p dir="ltr">    UART는 2개가 지원되며 UART1은 H/W 흐름제어가 제공되나 UART2는 그렇지 않다. UART1은 핀 46, 63, 61, 54에 연결되어 있으며 UART2는 핀 22, 27에 연결한다.</p>
<p dir="ltr">      ■ 16550 칩과 동등</p>
<p dir="ltr">      ■ 64바이트 버퍼</p>
<p dir="ltr">      ■ 보레이트는 300bps ~ 3.686Mbps까지를 지원</p>
<p dir="ltr">    UART2 포트는 Linux 디버그용 포트로 사용된다.</p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>4.4. SPI 인터페이스</strong></p>
<p dir="ltr">    SPI 채널은 핀 51, 53, 55, 57, 59에 연결되어 있으며 2개의 chip select신호를 사용할 수 있습니다.</p>
<p dir="ltr">      ■ 단일 프레임전송을 할 때는 클럭의 위상에 따라 4가지 모드를 지원</p>
<p dir="ltr">      ■ 멀티프레임 전송모드에서는 SPH = 1, SPO = 0 또는 1로 설정됨</p>
<p dir="ltr">      ■ 마스터모드에서 최대 25Mhz, 슬레이브 모드에서 16.67MHz를 지원</p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>4.5. I2S 인터페이스</strong></p>
<p dir="ltr">    I2S인터페이스는 핀 50, 52, 54, 56에 연결되어 있습니다. 에디슨보드에서 가능한 포맷은 에디슨보드 하드웨어 구조 설명서 (edison-module_ HG_331189-002.pdf)상 Table6를 참조</p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>4.6. PWM</strong></p>
<p dir="ltr">    PWM출력을 위해 4개의 GPIO가 사용될 수 있으며 핀 33, 35, 37, 39가 할당되어 있습니다. PWM 각 채널은 8비트 분해능을 가집니다.</p>
<p dir="ltr">    PWM 출력주파수 및 주기는 아래와 같이 구합니다.</p>
<p dir="ltr">   - Target frequency ~= 19.2 MHz * Base_unit value/256</p>
<p dir="ltr">   - Target PWM duty cycle ~= PWM_on_time_divisor / 256</p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>4.7. GPIO</strong></p>
<p dir="ltr">    GPIO 포트는 외부와 인터페이스용 I/O로 사용될 수 있습니다. 핀 24, 25, 26, 28, 30, 32, 34, 42, 48 등 9개가 사용될 수 있으며 I2C, I2S, UART 등이 사용되지 않는다면 해당 포트도 GPIO로 사용될 수 있습니다. 각 핀은 풀업이나 풀다운 저항을 소프트웨어적으로 설정할 수 있으며 2k, 20k, 50kohm 등을 선택할 수 있습니다. 특히 I2C핀은 910옴의 저항으로 연결되어 있음에 유의해야 합니다. GPIO 포트는 기본적으로 edge status를 읽어들이기 전에 글리치 제거가 이뤄져 신뢰성을 높이는 구조로 되어 있습니다. 참고로 출력전류 공급능력은 ±3mA로 다소 약한 편입니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>    4.8. USB</strong></p>
<p dir="ltr">    에디슨 보드는 단일 USB2.0포트를 갖고 있으며 코드의 다운로드용으로 사용됩니다. 핀 3, 16, 18, 20이 포트와 연결됩니다.</p>
<p dir="ltr">    에디슨 모듈은 디바이스측으로 전력을 공급하지 않는 구조이고 OTG기능이 또한 설치되어 있으며 이 기능은 3번 핀의 ID시그널에 의존하여 동작됩니다. OTG모드에서 전력공급은 외부 보드에서 수행하여야 합니다. PSW(핀21), FAULT(핀19)는 VBUS상에서 과전류가 흐르는지 탐지하며 이는 ULPI가 담당합니다.</p>
<p dir="ltr">
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/07번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28053" alt="07번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/07번.jpg" width="506" height="406" /></a></p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><strong>    4.9. Clock</strong></p>
<p dir="ltr">에디슨보드는 2개의 클럭 출력포트를 갖고 있습니다. 7번 핀은 32KHz 슬립클럭과 연결되어 있고 67번 핀은 19.2MHz 출력핀과 연동됩니다. 슬립모드에서도 ±3mA의 출력 전류를 흘릴 수 있습니다. 19.2Mhz 클록은 TBD mA의 높은 전류를 공급할 수 있는 능력이 있습니다.</p>
<p dir="ltr">
<p dir="ltr">    <strong>4.10. 시스템리셋</strong></p>
<p dir="ltr">    에디슨보드는 PWRBTN#(pin17)과 RESET_OUT@(pin36) 등 2개의 리셋 시그널용 핀이 있으며 PWRRTN#는 엑티브 LOW에서 동작되고 sleep, power off등의 이유에 의해 변합니다. RESET_OUT핀은 오픈드레인으로 되어 있으며 시스템 리셋에 의해 발생됩니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>    4.11. 스페셜 소프트웨어 리커버리</strong></p>
<p dir="ltr">    에디슨보드는 부팅하는 동안 2개의 신호선이 사용됩니다. 이 기능을 위해 69번핀 FW_RCVR, 31번핀은 RCVR_MODE로 사용됩니다. FW_RCVR은 RESET_OUT 부팅이 이뤄지는 동안 LOW 상태로 유지가 되어야 합니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>    4.12. 전원 입출력</strong></p>
<p dir="ltr">    VSYSY : 3.15V~4.5V를 인가할 수 있습니다. USB_VBUS : 표준 USB VBUS신호인 4.75V ~ 5.25V를 인가할 수 있습니다. 에디슨 보드에서 출력되는 3.3V, 1.8V는 최대 250mA 까지 흘려줄 수 있습니다.(TBV) 와이파이와 블루투스가 정상적으로 동작되기 위해서는 최소한 3.15V가 필요합니다.</p>
<p dir="ltr">
<p dir="ltr">    <strong>4.13. V_VBAT_BKUP</strong></p>
<p dir="ltr">    PMIC는 코인배터리나, 수퍼캡을 충전시킬 수 있는 능력이 있습니다. 외장 배터리는 핀23 V_VBAT_BKUP에 연결할 수 있으며 PMIC는 프로그램에 의해 2.5, 3.0, 3.15, 3.3v로 선택될 수 있습니다. 충전전류 역시 프로그램에 의해 10, 50, 100, 500uA로 선택되어 질 수 있습니다.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  5. 전원</strong></span></p>
<p dir="ltr">  에디슨보드는 배터리나 AC벽전원에 의해 동작 시킬 수가 있으며 전원공급을 하는 방법이나 충전을 하는 회로는 외부에서 디자인 되어야 합니다.</p>
<p dir="ltr">
<p dir="ltr">    <strong><span style="font-size: small;">5.1. VSYS에 메인전력 공급하기</span></strong></p>
<p dir="ltr">    에디슨보드는 VSYS(핀 2,4,6)에 전원을 인가하며 이 핀은 내부적으로는 VBAT에까지 연결되어 있습니다. 이 VSYS는 최소 3.15V에서 최대 4.5V를 넘지 말아야 합니다.</p>
<p dir="ltr">
<p dir="ltr">   <strong> 5.2. 사례 1 &#8211; 리튬폴리머 배터리를 직결하는 방식</strong></p>
<p dir="ltr">    배터리 전원을 단순하게 연결하는 방법은 배터리를 VSYS에 직접 연결하는 것입니다. 그러나 이러한 연결은 추천하지 않습니다. 왜냐하면 충전시스템에서 사용되는 전력이 배터리와 VSYS에 양분되어 공급되기 때문입니다.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/08번.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28054" alt="08번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/08번.jpg" width="736" height="449" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>5.3. 사례 2 &#8211; 다이오드와 FET절연을 통한 리튬 폴리머 배터리 연결하는 방식</strong></p>
<p dir="ltr">   - 이러한 구성은 동작 시 다이오드에 의한 전압강하가 발생됨</p>
<p dir="ltr">   - 이러한 구성은 부팅시에 배터리를 떼어 놓을 수 있음</p>
<p dir="ltr">   - 다이오드를 P-FET로 변경하면 전압강하를 최소화 시킬 수 있음</p>
<p dir="ltr">   - 이러한 기능 통제를 하는 유사한 칩이 BQ24073이다.</p>
<p dir="ltr">
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/09번.jpg" rel="lightbox[28027]"><img class="size-full wp-image-28055 aligncenter" alt="09번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/09번.jpg" width="738" height="495" /></a></p>
<p dir="ltr">
<p dir="ltr">    <strong>5.4. 사례 3 &#8211; USB VBUS로 연결 하는 방식</strong></p>
<p dir="ltr">    USB 전원공급장치에서 직접 에디슨을 실행할 수는 없습니다. VSYS로 인가되는 최대 전압은 4.5V이기 때문에 그렇습니다. 즉 USB 전원사양(4.75V -5.25V)은 에디슨의 안전 동작범위를 초과합니다. 따라서 USB 전원은 BQ24074와 같은 벅다운 컨버터로 변환해서 공급해야 합니다.</p>
<p dir="ltr">    이상은 인텔사에서 공개한 하드웨어 가이드를 토대로 작성해 본 자료입니다. 무턱대고 접근해 들어가기보다는 해당 보드의 스펙이 어떠한지를 면밀히 따져보고 접근해 들어가는 것이 학습 효과를 높이는데 도움이 되지 않을까 생각됩니다. 다음은 Breakout 보드에 대해서 살펴보도록 하겠습니다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><strong><span style="font-size: x-large;">[2] <a href="http://www.devicemart.co.kr/1160267">브레이크아웃 보드</a> 살펴보기</span></strong></p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong>  1. 개요</strong></span></p>
<p dir="ltr">  Intel® Edison breakout board는 인텔에디슨 모듈로부터 1.8V로 입출력 되도록 설계가 되어 있습니다. 이 보드는 전원공급기, 배터리충전회로, USB OTG, USART to USB 브릿지, I/O 헤더 등으로 구성되어 있습니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/10번.jpg" rel="lightbox[28027]"><img class="aligncenter" alt="10번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/10번.jpg" width="539" height="742" /></a></p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  2. Breakout 보드 상 점퍼의 구성</strong></span></p>
<p dir="ltr">      ■ J2 : 배터리와 연결용 컨넥터로 왼편이 +V, 오른편이 GND이 컨넥터에 리튬이온 전지를 연결하면 자동으로 충전이 이뤄지며 J21, J22, J3 등으로부터 전력을 공급 받게 된다.</p>
<p dir="ltr">      ■ J1 : 써미스터가 내장된 배터리를 연결한 경우에는 open 한다.</p>
<p dir="ltr">      ■ J3 : 마이크로 USB FTDI로 USB to Serial 포트를 제공. 이 포트를 통해서 리눅스 콘솔로 사용할 수 있음</p>
<p dir="ltr">      ■ J16 : 마이크로 USB AB 컨넥터로 OTG 기능을 수행이 포트를 통해 PC와 연결되면 에디슨모듈을 스토리지(USB 메모리)로 PC가 인식</p>
<p dir="ltr">      ■ J17~J20 : 그림의 왼편부터 1번 핀</p>
<p dir="ltr">      ■ J21 : 메인 전원공급핀으로 DC 7~15를 인가할 수 있음</p>
<p dir="ltr">      ■ J22 : 보드 아랫편에 패턴이 준비되어 있으나 실제로는 부품이 없음</p>
<p dir="ltr">
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/11번.jpg" rel="lightbox[28027]"><img class="size-full wp-image-28057 aligncenter" alt="11번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/11번.jpg" width="677" height="307" /></a></p>
<p dir="ltr" style="text-align: center;"><span style="font-size: xx-small;"><strong>그림2 :  Top Wiew</strong></span></p>
<p dir="ltr">
<p dir="ltr" style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-12.jpg" rel="lightbox[28027]"><img class="size-full wp-image-28058 aligncenter" alt="29 금강초롱 12" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-12.jpg" width="701" height="308" /></a><strong>그림3 : Bottom View</strong></p>
<p dir="ltr" style="text-align: center;">
<p dir="ltr">   <span style="font-size: small;"><strong> 2.1. USB 인터페이스</strong></span></p>
<p dir="ltr">    에디슨 보드는 단일 USB2.0 인터페이스를 갖고 있습니다. 이 인터페이스의 주된 용도는 프로그램의 다운로드입니다. 또한 ID신호라인과 함께 USB OTG기능을 제공토록 설계 되어 있습니다. 만일 마이크로B USB케이블이 연결되면 에디슨보드는 USB디바이스가 되며 USB케이블로부터 전원을 공급받게 됩니다. 또한 마이크로A USB케이블이 연결되면 에디슨 보드는 호스트로서의 기능을 수행하며 J21, J22를 통해 전력을 공급해주어야 합니다. 이 경우 Breakout 보드는 USB 컨넥터로 5V를 출력하게 될 것입니다.</p>
<p dir="ltr" style="text-align: left;">
<p dir="ltr"><strong>    2.2 Breakout 보드 확장헤더 핀 구성</strong></p>
<p dir="ltr">    GPIO 핀은 Input, Output로 프로그램 될 수 있으며 입력모드로 프로그램 된다면 인터럽트나 웨이크업 소스로 사용될 수 있습니다. 입력 핀은 풀업이나 풀다운으로 프로그램 될 수 있는데 2KΩ, 20KΩ, 50KΩ 등이 가능합니다. I2C핀은 추가적으로 910Ω이 걸리게 됩니다.</p>
<p dir="ltr">    입력핀으로 사용되는 핀은 기본적으로 그리치 제거 동작이 일어납니다.</p>
<p dir="ltr">    • 100 ns for a 50 MHz clock when SoC is in S0 state.</p>
<p dir="ltr">    • 260 ns for 19.2 MHz clock when SoC is in S0i1 or S0i2 State.</p>
<p dir="ltr">    • 155.5 μs for 32 kHz clock (RTC) when SoC is in S0i3 State.</p>
<p dir="ltr">    포트당 출력전류는 최대 ±3mA입니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>    2.3. Breakout 보드 핀헤더와 아두이노 표준핀간 연계</strong></p>
<p dir="ltr">    ■ J17 컨넥터 라인</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="121" />
<col width="126" />
<col width="91" />
<col width="205" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;Brrakout\n\ubcf4\ub4dc\ud540&quot;]"><strong>Breakout</strong><br />
<strong>보드핀</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;SoC&quot;]"><strong>SoC</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6a9\ub3c4&quot;]"><strong>용도</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uae30\ub2a5\uc124\uba85&quot;]"><strong>기능설명</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178\n\ud45c\uc900\ud540&quot;]"><strong>아두이노</strong><br />
<strong>표준핀</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 1&quot;]">J17 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP182_PWM2&quot;]">GP182_PWM2</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG6&quot;]">DIG6</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 2&quot;]">J17 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;NC&quot;]">NC</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;No connect.&quot;]">No connect.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 3&quot;]">J17 &#8211; pin 3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;NC&quot;]">NC</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;No connect.&quot;]">No connect.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 4&quot;]">J17 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;VIN&quot;]">VIN</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;7 to 15 V.&quot;]">7 to 15 V.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;5V Out Pin&quot;]">5V Out Pin</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 5&quot;]">J17 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP135&quot;]">GP135</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART2_TX&quot;]">UART2_TX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART2 transmit output.&quot;]">GPIO, UART2 transmit output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 6&quot;]">J17 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RCVR_MODE&quot;]">RCVR_MODE</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Firmware recovery mode.&quot;]">Firmware recovery mode.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 7&quot;]">J17 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP27&quot;]">GP27</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C6_SCL&quot;]">I2C6_SCL</td>
<td data-sheets-value="[null,2,&quot;GPIO,IC26 SCL output open\ncollector.&quot;]">GPIO,IC26 SCL output open<br />
collector.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;`&quot;]">`</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 8&quot;]">J17 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP20&quot;]">GP20</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C1_SDA&quot;]">I2C1_SDA</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C1 data open collector.&quot;]">GPIO, I2C1 data open collector.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 9&quot;]">J17 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP28&quot;]">GP28</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C6_SDA&quot;]">I2C6_SDA</td>
<td data-sheets-value="[null,2,&quot;GPIO, I2C6 data open collector.&quot;]">GPIO, I2C6 data open collector.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 10&quot;]">J17 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP111&quot;]">GP111</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_FS1&quot;]">SSP5_FS1</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 chip select 2 output.&quot;]">GPIO, SSP2 chip select 2 output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 11&quot;]">J17 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP109&quot;]">GP109</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_CLK&quot;]">SSP5_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 clock output.&quot;]">GPIO, SSP5 clock output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 12&quot;]">J17 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP115&quot;]">GP115</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_TXD&quot;]">SSP5_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 transmit data output.&quot;]">GPIO, SSP5 transmit data output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 13&quot;]">J17 &#8211; pin 13</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;OSC_CLK_OUT_0&quot;]">OSC_CLK_OUT_0</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;High speed clock output.&quot;]">High speed clock output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 14&quot;]">J17 &#8211; pin 14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP128&quot;]">GP128</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_CTS&quot;]">UART1_CTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 clear to send input.&quot;]">GPIO, UART1 clear to send input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG2&quot;]">DIG2</td>
</tr>
</tbody>
</table>
<p dir="ltr">
<p dir="ltr">■ J18 컨넥터 라인</p>
<div dir="ltr">
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="121" />
<col width="126" />
<col width="91" />
<col width="205" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;Brrakout\n\ubcf4\ub4dc\ud540&quot;]"><strong>Breakout</strong><br />
<strong>보드핀</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;SoC&quot;]"><strong>SoC</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6a9\ub3c4&quot;]"><strong>용도</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uae30\ub2a5\uc124\uba85&quot;]"><strong>기능설명</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178\n\ud45c\uc900\ud540&quot;]"><strong>아두이노</strong><br />
<strong>표준핀</strong></td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP182_PWM2&quot;]">GP182_PWM2</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG6&quot;]">DIG6</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 1&quot;]">J18 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP13_PWM1&quot;]">GP13_PWM1</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG5&quot;]">DIG5</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 2&quot;]">J18 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP165&quot;]">GP165</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A5&quot;]">A5</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 3&quot;]">J18 &#8211; pin 3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPI_PWRBTN_N&quot;]">GPI_PWRBTN_N</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Power button input.&quot;]">Power button input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 4&quot;]">J18 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;MSIC_SLP_CLK2&quot;]">MSIC_SLP_CLK2</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;32 kHz sleep clock.&quot;]">32 kHz sleep clock.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 5&quot;]">J18 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_VBAT_BKUP&quot;]">V_VBAT_BKUP</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;RTC backup battery input.&quot;]">RTC backup battery input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 6&quot;]">J18 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP19&quot;]">GP19</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;I2C1_SCL&quot;]">I2C1_SCL</td>
<td data-sheets-value="[null,2,&quot;GPIO,IC21 SCL output open collector.&quot;]">GPIO,IC21 SCL output open collector.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 7&quot;]">J18 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP12_PWM0&quot;]">GP12_PWM0</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG3&quot;]">DIG3</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 8&quot;]">J18 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP183_PWM3&quot;]">GP183_PWM3</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG9&quot;]">DIG9</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 9&quot;]">J18 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;NC&quot;]">NC</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;No connect.&quot;]">No connect.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 10&quot;]">J18 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP110&quot;]">GP110</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_FS0&quot;]">SSP5_FS0</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP1 chip select 2 output.&quot;]">GPIO, SSP1 chip select 2 output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 11&quot;]">J18 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP114&quot;]">GP114</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_RX&quot;]">SSP5_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 receive data input.&quot;]">GPIO, SSP5 receive data input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 12&quot;]">J18 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP129&quot;]">GP129</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_RTS&quot;]">UART1_RTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 ready to send output.&quot;]">GPIO, UART1 ready to send output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG4&quot;]">DIG4</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 13&quot;]">J18 &#8211; pin 13</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP130&quot;]">GP130</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_RX&quot;]">UART1_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 receive data input.&quot;]">GPIO, UART1 receive data input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG0&quot;]">DIG0</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 14&quot;]">J18 &#8211; pin 14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;FW_RCVR&quot;]">FW_RCVR</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Firmware recovery, active high on boot.&quot;]">Firmware recovery, active high on boot.</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
</div>
<p dir="ltr">
<p dir="ltr">■ J19 컨넥터 라인</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="121" />
<col width="126" />
<col width="91" />
<col width="205" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;Breakout\n\ubcf4\ub4dc\ud540&quot;]"><strong>Breakout</strong><br />
<strong>보드핀</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;SoC&quot;]"><strong>SoC</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6a9\ub3c4&quot;]"><strong>용도</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uae30\ub2a5\uc124\uba85&quot;]"><strong>기능설명</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178\n\ud45c\uc900\ud540&quot;]"><strong>아두이노</strong><br />
<strong>표준핀</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 1&quot;]">J19 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;NC&quot;]">NC</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;No connect.&quot;]">No connect.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 2&quot;]">J19 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_V1P80&quot;]">V_V1P80</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System 1.8 V I/O output power.&quot;]">System 1.8 V I/O output power.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;1.8V&quot;]">1.8V</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 3&quot;]">J19 &#8211; pin 3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Ground.&quot;]">Ground.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 4&quot;]">J19 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP44&quot;]">GP44</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ALS_INT_N&quot;]">ALS_INT_N</td>
<td data-sheets-value="[null,2,&quot;GPIO, ALS interrupt input.&quot;]">GPIO, ALS interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A0&quot;]">A0</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 5&quot;]">J19 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP46&quot;]">GP46</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ACCELEROMETER_INT_1&quot;]">ACCELEROMETER_INT_1</td>
<td data-sheets-value="[null,2,&quot;GPIO, accelerometer interrupt input.&quot;]">GPIO, accelerometer interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A2&quot;]">A2</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 6&quot;]">J19 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP48&quot;]">GP48</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GYRO_DRDY&quot;]">GYRO_DRDY</td>
<td data-sheets-value="[null,2,&quot;GPIO, gyro data ready input.&quot;]">GPIO, gyro data ready input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG7&quot;]">DIG7</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 7&quot;]">J19 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RESET_OUT#&quot;]">RESET_OUT#</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System reset out low.&quot;]">System reset out low.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RESET&quot;]">RESET</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 8&quot;]">J19 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP131&quot;]">GP131</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_TX&quot;]">UART1_TX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART 1 Tx output.&quot;]">GPIO, UART 1 Tx output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG1&quot;]">DIG1</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 9&quot;]">J19 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP14&quot;]">GP14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;AUDIO_CODEC_INT&quot;]">AUDIO_CODEC_INT</td>
<td data-sheets-value="[null,2,&quot;GPIO, audio codec interrupt input.&quot;]">GPIO, audio codec interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A4&quot;]">A4</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 10&quot;]">J19 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP40&quot;]">GP40</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_CLK&quot;]">SSP2_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 clock output.&quot;]">GPIO, SSP2 clock output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG13(GP40)&quot;]">DIG13(GP40)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 11&quot;]">J19 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP43&quot;]">GP43</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_TXD&quot;]">SSP2_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 transmit data output.&quot;]">GPIO, SSP2 transmit data output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG11(GP115)&quot;]">DIG11(GP115)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 12&quot;]">J19 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP77&quot;]">GP77</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_CDN&quot;]">SD_CDN</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD card detect low input.&quot;]">GPIO, SD card detect low input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 13&quot;]">J19 &#8211; pin 13</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP82&quot;]">GP82</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_DAT2&quot;]">SD_DAT2</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 2&quot;]">GPIO, SD data 2</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 14&quot;]">J19 &#8211; pin 14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP83&quot;]">GP83</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_DAT3&quot;]">SD_DAT3</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 3&quot;]">GPIO, SD data 3</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<p dir="ltr">
<p dir="ltr">■ J20 컨넥터 라인</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="121" />
<col width="126" />
<col width="91" />
<col width="205" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;Breakout\n\ubcf4\ub4dc\ud540&quot;]"><strong>Breakout</strong><br />
<strong>보드핀</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;SoC&quot;]"><strong>SoC</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6a9\ub3c4&quot;]"><strong>용도</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uae30\ub2a5\uc124\uba85&quot;]"><strong>기능설명</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178\n\ud45c\uc900\ud540&quot;]"><strong>아두이노</strong><br />
<strong>표준핀</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 1&quot;]">J20 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_VSYS&quot;]">V_VSYS</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System input power.&quot;]">System input power.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 2&quot;]">J20 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_V3P30&quot;]">V_V3P30</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System 3.3 V output.&quot;]">System 3.3 V output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;3.3V&quot;]">3.3V</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 3&quot;]">J20 &#8211; pin 3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP134&quot;]">GP134</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART2_RX&quot;]">UART2_RX</td>
<td data-sheets-value="[null,2,&quot;UART2 Rx (input).&quot;]">UART2 Rx (input).</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 4&quot;]">J20 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP45&quot;]">GP45</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;COMPASS_DRDY&quot;]">COMPASS_DRDY</td>
<td data-sheets-value="[null,2,&quot;GPIO, compass data ready input.&quot;]">GPIO, compass data ready input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A1&quot;]">A1</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 5&quot;]">J20 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP47&quot;]">GP47</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ACCELEROMETER_INT_2&quot;]">ACCELEROMETER_INT_2</td>
<td data-sheets-value="[null,2,&quot;GPIO, accelerometer interrupt input 2.&quot;]">GPIO, accelerometer interrupt input 2.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A3&quot;]">A3</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 6&quot;]">J20 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP49&quot;]">GP49</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GYRO_INT&quot;]">GYRO_INT</td>
<td data-sheets-value="[null,2,&quot;GPIO, gyro interrupt input.&quot;]">GPIO, gyro interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG8&quot;]">DIG8</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 7&quot;]">J20 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP15&quot;]">GP15</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO.&quot;]">GPIO.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 8&quot;]">J20 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP84&quot;]">GP84</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_CLK_FB&quot;]">SD_CLK_FB</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD clock feedback input.&quot;]">GPIO, SD clock feedback input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 9&quot;]">J20 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP42&quot;]">GP42</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_RXD&quot;]">SSP2_RXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 Rx data input.&quot;]">GPIO, SSP2 Rx data input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG12(GP42)&quot;]">DIG12(GP42)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 10&quot;]">J20 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP41&quot;]">GP41</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_FS&quot;]">SSP2_FS</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 frame sync output.&quot;]">GPIO, SSP2 frame sync output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG10(GP41)&quot;]">DIG10(GP41)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 11&quot;]">J20 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP78&quot;]">GP78</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_CLK&quot;]">SD_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD clock output.&quot;]">GPIO, SD clock output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 12&quot;]">J20 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP79&quot;]">GP79</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_CMD&quot;]">SD_CMD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD command.&quot;]">GPIO, SD command.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 13&quot;]">J20 &#8211; pin 13</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP80&quot;]">GP80</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_DAT0&quot;]">SD_DAT0</td>
<td data-sheets-value="[null,2,&quot;GPIO, SD data 0.&quot;]">GPIO, SD data 0.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 14&quot;]">J20 &#8211; pin 14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP81&quot;]">GP81</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SD_DAT1&quot;]">SD_DAT1</td>
<td data-sheets-value="[null,2,&quot;GP81 SD data 1.&quot;]">GP81 SD data 1.</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<p dir="ltr">
<p dir="ltr">■ 아두이노핀과 직접적으로 관련된 핀</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="121" />
<col width="126" />
<col width="91" />
<col width="205" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;Breakout\n\ubcf4\ub4dc\ud540&quot;]"><strong>Breakout</strong><br />
<strong>보드핀</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;SoC&quot;]"><strong>SoC</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc6a9\ub3c4&quot;]"><strong>용도</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uae30\ub2a5\uc124\uba85&quot;]"><strong>기능설명</strong></td>
<td style="background-color: #9acd32;" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178\n\ud45c\uc900\ud540&quot;]"><strong>아두이노</strong><br />
<strong>표준핀</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 4&quot;]">J19 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP44&quot;]">GP44</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ALS_INT_N&quot;]">ALS_INT_N</td>
<td data-sheets-value="[null,2,&quot;GPIO, ALS interrupt input.&quot;]">GPIO, ALS interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A0&quot;]">A0</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 4&quot;]">J20 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP45&quot;]">GP45</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;COMPASS_DRDY&quot;]">COMPASS_DRDY</td>
<td data-sheets-value="[null,2,&quot;GPIO, compass data ready input.&quot;]">GPIO, compass data ready input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A1&quot;]">A1</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 5&quot;]">J19 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP46&quot;]">GP46</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ACCELEROMETER_INT_1&quot;]">ACCELEROMETER_INT_1</td>
<td data-sheets-value="[null,2,&quot;GPIO, accelerometer interrupt input.&quot;]">GPIO, accelerometer interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A2&quot;]">A2</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 5&quot;]">J20 &#8211; pin 5</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP47&quot;]">GP47</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;ACCELEROMETER_INT_2&quot;]">ACCELEROMETER_INT_2</td>
<td data-sheets-value="[null,2,&quot;GPIO, accelerometer interrupt input 2.&quot;]">GPIO, accelerometer interrupt input 2.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A3&quot;]">A3</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 9&quot;]">J19 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP14&quot;]">GP14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;AUDIO_CODEC_INT&quot;]">AUDIO_CODEC_INT</td>
<td data-sheets-value="[null,2,&quot;GPIO, audio codec interrupt input.&quot;]">GPIO, audio codec interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A4&quot;]">A4</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 2&quot;]">J18 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP165&quot;]">GP165</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO&quot;]">GPIO</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;A5&quot;]">A5</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 13&quot;]">J18 &#8211; pin 13</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP130&quot;]">GP130</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_RX&quot;]">UART1_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 receive data input.&quot;]">GPIO, UART1 receive data input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG0&quot;]">DIG0</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 8&quot;]">J19 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP131&quot;]">GP131</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_TX&quot;]">UART1_TX</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART 1 Tx output.&quot;]">GPIO, UART 1 Tx output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG1&quot;]">DIG1</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 14&quot;]">J17 &#8211; pin 14</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP128&quot;]">GP128</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_CTS&quot;]">UART1_CTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 clear to send input.&quot;]">GPIO, UART1 clear to send input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG2&quot;]">DIG2</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 7&quot;]">J18 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP12_PWM0&quot;]">GP12_PWM0</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG3&quot;]">DIG3</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 12&quot;]">J18 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP129&quot;]">GP129</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;UART1_RTS&quot;]">UART1_RTS</td>
<td data-sheets-value="[null,2,&quot;GPIO, UART1 ready to send output.&quot;]">GPIO, UART1 ready to send output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG4&quot;]">DIG4</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 1&quot;]">J18 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP13_PWM1&quot;]">GP13_PWM1</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG5&quot;]">DIG5</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 1&quot;]">J17 &#8211; pin 1</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP182_PWM2&quot;]">GP182_PWM2</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG6&quot;]">DIG6</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 6&quot;]">J19 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP48&quot;]">GP48</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GYRO_DRDY&quot;]">GYRO_DRDY</td>
<td data-sheets-value="[null,2,&quot;GPIO, gyro data ready input.&quot;]">GPIO, gyro data ready input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG7&quot;]">DIG7</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 6&quot;]">J20 &#8211; pin 6</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP49&quot;]">GP49</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GYRO_INT&quot;]">GYRO_INT</td>
<td data-sheets-value="[null,2,&quot;GPIO, gyro interrupt input.&quot;]">GPIO, gyro interrupt input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG8&quot;]">DIG8</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 8&quot;]">J18 &#8211; pin 8</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP183_PWM3&quot;]">GP183_PWM3</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;GPIO capable of PWM output.&quot;]">GPIO capable of PWM output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG9&quot;]">DIG9</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 10&quot;]">J17 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP111&quot;]">GP111</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_FS1&quot;]">SSP5_FS1</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 chip select 2 output.&quot;]">GPIO, SSP2 chip select 2 output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 10&quot;]">J20 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP41&quot;]">GP41</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_FS&quot;]">SSP2_FS</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 frame sync output.&quot;]">GPIO, SSP2 frame sync output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG10(GP41)&quot;]">DIG10(GP41)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 12&quot;]">J17 &#8211; pin 12</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP115&quot;]">GP115</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_TXD&quot;]">SSP5_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 transmit data output.&quot;]">GPIO, SSP5 transmit data output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 11&quot;]">J19 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP43&quot;]">GP43</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_TXD&quot;]">SSP2_TXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 transmit data output.&quot;]">GPIO, SSP2 transmit data output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG11(GP115)&quot;]">DIG11(GP115)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18 - pin 11&quot;]">J18 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP114&quot;]">GP114</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_RX&quot;]">SSP5_RX</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 receive data input.&quot;]">GPIO, SSP5 receive data input.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 9&quot;]">J20 &#8211; pin 9</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP42&quot;]">GP42</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_RXD&quot;]">SSP2_RXD</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 Rx data input.&quot;]">GPIO, SSP2 Rx data input.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG12(GP42)&quot;]">DIG12(GP42)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 11&quot;]">J17 &#8211; pin 11</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP109&quot;]">GP109</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP5_CLK&quot;]">SSP5_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP5 clock output.&quot;]">GPIO, SSP5 clock output.</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 10&quot;]">J19 &#8211; pin 10</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GP40&quot;]">GP40</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;SSP2_CLK&quot;]">SSP2_CLK</td>
<td data-sheets-value="[null,2,&quot;GPIO, SSP2 clock output.&quot;]">GPIO, SSP2 clock output.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;DIG13(GP40)&quot;]">DIG13(GP40)</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 7&quot;]">J19 &#8211; pin 7</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RESET_OUT#&quot;]">RESET_OUT#</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System reset out low.&quot;]">System reset out low.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;RESET Pin&quot;]">RESET Pin</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20 - pin 2&quot;]">J20 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_V3P30&quot;]">V_V3P30</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System 3.3 V output&quot;]">System 3.3 V output</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;3.3V Out Pin&quot;]">3.3V Out Pin</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J17 - pin 4&quot;]">J17 &#8211; pin 4</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;VIN&quot;]">VIN</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;7 to 15 V.&quot;]">7 to 15 V.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;5V Out Pin&quot;]">5V Out Pin</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 2&quot;]">J19 &#8211; pin 2</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;V_V1P80&quot;]">V_V1P80</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;System 1.8 V I/O output power.&quot;]">System 1.8 V I/O output power.</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Voltage In&quot;]">Voltage In</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19 - pin 3&quot;]">J19 &#8211; pin 3</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
<td style="text-align: center;"></td>
<td data-sheets-value="[null,2,&quot;Ground&quot;]">Ground</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
</tr>
</tbody>
</table>
<p dir="ltr"><strong>주의) A0~A5핀은 별매인 아두이노Breakout Board에서만 지원함</strong></p>
<p dir="ltr">
<p dir="ltr"><strong>    2.4. 전원공급계통</strong></p>
<p dir="ltr">    에디슨보드는 저전력 장치로 평상시 부하전류가 200mA를 넘지 않으며 Wi-Fi 송신 시 짧게 600mA 정도가 흐릅니다. 외부로부터 7~15V 전원을 받게 되면 내부적으로 DC-DC컨버터에 의해 5V로 변환됩니다. 배터리 충전회로는 최대 4.4V로 제한되어 있습니다. 이 전압은 에디슨보드의 VSYS의 안전권인 5.15V~4.5V에서 동작되어야 하기 때문이기도 합니다.</p>
<p dir="ltr">    내장된 충전기는 표준형 리튬배터리를 최대 4.2V선까지 충전시키며 충전전류는 190mA로 제한되도록 프로그램 되어 있습니다. 안전을 위해 충전중인 배터리가 과열되지 않도록 과열에 대한 대책이 필요합니다.</p>
<p dir="ltr">    요약 정리를 해보자면</p>
<p dir="ltr">    1. USB 호스트 모드에서는 항상 외부 전원 연결을 요구함</p>
<p dir="ltr">    2. 배터리는 과열방지대책이 되어 있는 것을 사용함이 바람직하며 과열 시 차단되도록 설계할 것</p>
<p dir="ltr" style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-13.jpg" rel="lightbox[28027]"><img class="aligncenter  wp-image-28060" alt="29 금강초롱 13" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-13.jpg" width="746" height="375" /></a></p>
<p dir="ltr">
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="165" />
<col width="342" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td rowspan="1" colspan="3" data-sheets-value="[null,2,&quot;\ubcc4\ucca8 : \uc544\ub450\uc774\ub178 \uc5f0\uacc4 \ud3ec\ud2b8 \uc0ac\uc6a9&quot;]">&nbsp;</p>
<p><span style="font-size: medium;"><strong>  ★ 별첨 : 아두이노 연계 포트 사용</strong></span></p>
<p>&nbsp;</td>
</tr>
<tr>
<td style="background-color: #e0ffff;" rowspan="1" colspan="3" align="center" valign="middle" data-sheets-value="[null,2,&quot;1. \uc544\ub450\uc774\ub178 Digital pin7\uc5d0\uc11c \ud1a0\uae00 \ub370\uc774\ud130\ub97c \ub0b4\ubcf4\ub0b4\ub294 \uc608&quot;]"><strong>1. 아두이노 Digital pin7에서 토글 데이터를 내보내는 예</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uad6c \ubd84&quot;]"><strong>구 분</strong></td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uba85 \ub839 \uc5b4&quot;]"><strong>명 령 어</strong></td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ube44\uace0&quot;]"><strong>비고</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPIO \uc124\uc815\ub300\uc0c1 \uc120\ud0dd&quot;]">GPIO 설정대상 선택</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;223\&quot; &gt; /sys/class/gpio/export\necho -n \&quot;255\&quot; &gt; /sys/class/gpio/export\necho -n \&quot;48\&quot; &gt; /sys/class/gpio/export&quot;]">echo -n &#8220;223&#8243; &gt; /sys/class/gpio/export<br />
echo -n &#8220;255&#8243; &gt; /sys/class/gpio/export<br />
echo -n &#8220;48&#8243; &gt; /sys/class/gpio/export</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ud480\uc5c5/\ud480\ub2e4\uc6b4\n\ub808\uc9c0\uc2a4\ud130 \uc815\uc9c0&quot;]">풀업/풀다운<br />
레지스터 정지</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;in\&quot; &gt; /sys/class/gpio/gpio223/direction&quot;]">echo -n &#8220;in&#8221; &gt; /sys/class/gpio/gpio223/direction</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ub17c\ub9ac\ub808\ubca8 \uc2dc\ud504\ud130 \uc124\uc815&quot;]">논리레벨 시프터 설정</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;out\&quot; &gt; /sys/class/gpio/gpio255/direction\necho -n \&quot;1\&quot; &gt; /sys/class/gpio/gpio255/value&quot;]">echo -n &#8220;out&#8221; &gt; /sys/class/gpio/gpio255/direction<br />
echo -n &#8220;1&#8243; &gt; /sys/class/gpio/gpio255/value</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPIO\ub85c \ucd9c\ub825 \ub0b4\ubcf4\ub0b4\uae30&quot;]">GPIO로 출력 내보내기</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;out\&quot; &gt; /sys/class/gpio/gpio48/direction\necho -n \&quot;1\&quot; &gt; /sys/class/gpio/gpio48/value\necho -n \&quot;0\&quot; &gt; /sys/class/gpio/gpio48/value\necho -n \&quot;1\&quot; &gt; /sys/class/gpio/gpio48/value&quot;]">echo -n &#8220;out&#8221; &gt; /sys/class/gpio/gpio48/direction<br />
echo -n &#8220;1&#8243; &gt; /sys/class/gpio/gpio48/value<br />
echo -n &#8220;0&#8243; &gt; /sys/class/gpio/gpio48/value<br />
echo -n &#8220;1&#8243; &gt; /sys/class/gpio/gpio48/value</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;1-&gt;0-&gt;1\n\ubc18\ubcf5\ub428&quot;]">1-&gt;0-&gt;1<br />
반복됨</td>
</tr>
<tr>
<td style="background-color: #e0ffff;" colspan="3" align="center" valign="middle" data-sheets-value="[null,2,&quot;2. \uc544\ub450\uc774\ub178 Digital pin7\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uc5b4\uc624\ub294 \uc608&quot;]"><strong>2. 아두이노 Digital pin7에서 데이터를 읽어오는 예  </strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uad6c \ubd84&quot;]"><strong>구 분</strong></td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uba85 \ub839 \uc5b4&quot;]"><strong>명 령 어</strong></td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ube44\uace0&quot;]"><strong>비고</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPIO \uc124\uc815\ub300\uc0c1 \uc120\ud0dd&quot;]">GPIO 설정대상 선택</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;223\&quot; &gt; /sys/class/gpio/export\necho -n \&quot;255\&quot; &gt; /sys/class/gpio/export\necho -n \&quot;48\&quot; &gt; /sys/class/gpio/export&quot;]">echo -n &#8220;223&#8243; &gt; /sys/class/gpio/export<br />
echo -n &#8220;255&#8243; &gt; /sys/class/gpio/export<br />
echo -n &#8220;48&#8243; &gt; /sys/class/gpio/export</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ud480\uc5c5 \ub808\uc9c0\uc2a4\ud130 \uc124\uc815&quot;]">풀업 레지스터 설정</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;out\&quot; &gt; /sys/class/gpio/gpio223/direction\necho -n \&quot;1\&quot; &gt; /sys/class/gpio/gpio223/value&quot;]">echo -n &#8220;out&#8221; &gt; /sys/class/gpio/gpio223/direction<br />
echo -n &#8220;1&#8243; &gt; /sys/class/gpio/gpio223/value</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\ub17c\ub9ac\ub808\ubca8 \uc2dc\ud504\ud130 \uc124\uc815&quot;]">논리레벨 시프터 설정</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;out\&quot; &gt; /sys/class/gpio/gpio255/direction\necho -n \&quot;0\&quot; &gt; /sys/class/gpio/gpio255/value&quot;]">echo -n &#8220;out&#8221; &gt; /sys/class/gpio/gpio255/direction<br />
echo -n &#8220;0&#8243; &gt; /sys/class/gpio/gpio255/value</td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPIO\uc5d0\uc11c \uc77d\uae30&quot;]">GPIO에서 읽기</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;in\&quot; &gt; /sys/class/gpio/gpio48/direction\ncat /sys/class/gpio/gpio48/value&quot;]">echo -n &#8220;in&#8221; &gt; /sys/class/gpio/gpio48/direction<br />
cat /sys/class/gpio/gpio48/value</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;1\uc774 \uc77d\ud600\uc9d0&quot;]">1이 읽혀짐</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GPIO\uc5d0\uc11c \uc77d\uae30&quot;]">GPIO에서 읽기</td>
<td data-sheets-value="[null,2,&quot;echo -n \&quot;0\&quot; &gt; /sys/class/gpio/gpio223/value\ncat /sys/class/gpio/gpio48/value&quot;]">echo -n &#8220;0&#8243; &gt; /sys/class/gpio/gpio223/value<br />
cat /sys/class/gpio/gpio48/value</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;0\uc774 \uc77d\ud600\uc9d0&quot;]">0이 읽혀짐</td>
</tr>
</tbody>
</table>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: x-large;"><strong>[3]  에디슨 보드로 Hello World에 도전하기</strong></span></p>
<p dir="ltr">
<p dir="ltr">  이번에는 에디슨 보드로 LED점멸 동작시켜봄으로써 위대한(?) 첫걸음을 디뎌보려 합니다. 저는 H/W에서 “Hello World!” 격에 해당하는 것이 LED점멸이라고 생각합니다. 우선 LED점멸 기능을 위해 기본적으로 필요한 일들을 준비해 보도록 하겠습니다.</p>
<p dir="ltr">
<p dir="ltr"><strong><span style="font-size: large;">  1. 준비물</span></strong></p>
<p dir="ltr">    ■ Intel Edison Breakout board &#8211; 핀 헤더를 기판 아래에 납땜하여 붙일 것</p>
<p dir="ltr">    ■ Arduino-Intel IDE &#8211; 아두이노 개발환경</p>
<p dir="ltr">    ■ 브레드보드</p>
<p dir="ltr">    ■ LED, 330Ω, 1kΩ 저항 각 1개</p>
<p dir="ltr">    ■ 2SC1815 NPN Transistor</p>
<p dir="ltr">    ■ Male to Female 점퍼와이어 3개</p>
<p dir="ltr">    ■ Male to Male 점퍼와이어 약간</p>
<p dir="ltr">    ■ 1N4007 Diode</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong>  2. 브레이크 아웃보드 정비</strong></span></p>
<p dir="ltr">  제일 먼저 DC전원잭을 아래 사진과 같이 연결해 줍니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-15.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28059" alt="29 금강초롱 15" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-15-620x465.jpg" width="620" height="465" /></a></p>
<p dir="ltr">
<p dir="ltr">  이 커넥터로 DC를 공급해주면 스스로 동작되는 무언가를 만들 수 있게 됩니다.</p>
<p dir="ltr">  다음으로 14핀 헤더를 4개 준비하여 아래 사진과 같이 납땜합니다. 납땜시 중앙 8번핀들을 우선 납땜하고 정렬에 문제가 없는지 확인하고 나머지 핀들을 조심스럽게 납땜합니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-17.jpg" rel="lightbox[28027]"><br />
</a><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-16.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28062" alt="29 금강초롱 16" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-16-620x465.jpg" width="620" height="465" /></a><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-17.jpg" rel="lightbox[28027]"><img class="aligncenter" alt="29 금강초롱 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-17-620x465.jpg" width="620" height="465" /></a></p>
<p>&nbsp;</p>
<p dir="ltr"><strong><span style="font-size: large;">  3. 에디슨 보드를위한 소프트웨어와 드라이버 파일 확보</span></strong></p>
<p dir="ltr">    ■ FTDI Driver : http://www.ftdichip.com/Drivers/CDM/CDM%20v2.10.00%20WHQL%20Certified.exe 이 드라이버파일은 J3포트를 Serial 포트로 인식하게 만드는데 사용됨</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-18.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28064" alt="29 금강초롱 18" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-18.jpg" width="551" height="432" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-19.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28065" alt="29 금강초롱 19" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-19.jpg" width="555" height="428" /></a></p>
<p dir="ltr">    ■ 에디슨보드 드라이버 : http://downloadmirror.intel.com/24271/eng/IntelEdisonDriverSetup1.0.0.exe</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-20.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28066" alt="29 금강초롱 20" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-20.jpg" width="559" height="424" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-21.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28067" alt="29 금강초롱 21" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-21.jpg" width="554" height="427" /></a></p>
<p dir="ltr">    ■ PuTTY 터미널에뮬레이터</p>
<p dir="ltr">    http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  </strong></span></p>
<p dir="ltr"><span style="font-size: large;"><strong>  4. 에디슨보드에 최신 리눅스이미지 설치하기</strong></span></p>
<p dir="ltr">    <strong>4.1. 최신 이미지 다운로드</strong></p>
<p dir="ltr">     https://communities.intel.com/docs/DOC-23242</p>
<p dir="ltr">    필자가 다운로드한 이미지는 edison-image-rel1-maint-rel1-ww42-14.zip입니다. 이 이미지를 내 로컬 디스크의 적당한 영역에 풉니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-22.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28070" alt="29 금강초롱 22" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-22-620x535.jpg" width="620" height="535" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">    <strong>4.2. 위 파일들을 에디슨보드에 복사하여 넣습니다.</strong></p>
<p dir="ltr">    이 작업은 J16 커넥터에 마이크로USB케이블이 연결되면 에디슨보드가 마치 대용량 USB메모리처럼 보이므로 이곳에다 복사하여 넣으면 됩니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-23.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28071" alt="29 금강초롱 23" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-23-620x534.jpg" width="620" height="534" /></a></p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  </strong></span></p>
<p dir="ltr"><span style="font-size: large;"><strong>  5. 에디슨보드에 Yocto Linux 플래시디스크 굽기</strong></span></p>
<p dir="ltr">    J3에 마이크로 USB케이블이 연결된 상태에서 PuTTY등을 써서 Telnet으로 에디슨 보드에 접근 합니다. 아래는 Yocto Linux를 설치하고 설정하는 예입니다.  에디슨 보드를 사용하다보면 플래시OS가 깨져 다운로드가 잘 안 되는 등 이상한 짓을 하는 경우가 있는데 이때도 아래와 같은 방법으로 시스템을 초기화 할 수 있습니다.</p>
<p dir="ltr">  ① 제일 먼저 마이크로USB 케이블(스마트폰과 PC 연결용)을 J3 포트에 연결합니다.</p>
<p dir="ltr">  ② 전원을 공급하기 위해 2번째 USB포트도 연결합니다.</p>
<p dir="ltr">  ③ 장치관리자를 실행합니다.</p>
<p dir="ltr">  ④ 장치관리자의 포트섹션에서 포트번호가 떠오르는지 확인합니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-24.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28072" alt="29 금강초롱 24" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-24.jpg" width="592" height="237" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  ⑤ PuTTY 등 터미널에뮬레이터를 실행합니다.</p>
<p dir="ltr">   - Connection Type : Serial</p>
<p dir="ltr">   - Serial line : ComXX</p>
<p dir="ltr">   - Speed : 115200</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-251.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28073" alt="29 금강초롱 25" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-251.jpg" width="466" height="450" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   ⑥ Open을 클릭합니다.</p>
<p dir="ltr">   첫 번째 바이트를 까먹는 경우가 생기는데 이는 에디슨이 슬립모드에 있을 때는 Tx, Rx라인을 놓고 있다가 데이터가 들어가면 그때서야 깨어나기 때문이며 이때 1바이트가 달아납니다. 한번 키를 누른 후 20초 이내에 계속 눌러주면 데이터를 잃지 않습니다.</p>
<p dir="ltr">   ⑦ 빈 화면이 나타나면 엔터를 두 번 쳐봅니다.</p>
<p dir="ltr">   ⑧ “root”를 입력하면 암호를 물어보지 않고 그냥 넘어갑니다.</p>
<p dir="ltr">   ⑨ “reboot ota”를 입력한 후 엔터를 누릅니다. 에디슨이 리부팅 되면서 플래시에 굽기를 시작합니다. 약 10분이 소요됩니다.</p>
<p dir="ltr">   ⑩ 에디슨 보드 기본 설정하기</p>
<p dir="ltr">    다음번 프롬프트가 뜨면 “configure_edison”이라고 치면 환경 설정작업을 할 수 있습니다. 부득이한 사정이 없는 한 configure_edison으로 환경을 바꾸는 작업을 권하지 않습니다. 에디슨을 끌 때는 “systemctl poweroff”라고 치며 라즈베리파이에서 사용되는 리눅스 명령어가 대부분 먹혀듭니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>  ※ 자주 쓰는 명령어 ※</strong></span></p>
<p dir="ltr">       ls : 디렉터리 리스트</p>
<p dir="ltr">      cd : 디렉터리 이동</p>
<p dir="ltr">      cat : 파일의 내용을 봄</p>
<p dir="ltr">      vi : 파일을 편집</p>
<p dir="ltr">      [tab] : 디렉터리에 유사명칭의 파일이 존재할 때 타이핑을 도와줌</p>
<p dir="ltr">      find : 파일이나 디렉터리를 찾기</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><strong><span style="font-size: large;">  6. 에디슨보드에 전원을 공급해보기</span></strong></p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-24-2.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28074" alt="29 금강초롱 24-2" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-24-2.jpg" width="592" height="363" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   우선 마이크로USB 케이블을 2개 준비하여 J3과 J16에 꽂은 후 PC와 연결합니다. 아두이노 IDE의 com port는 장치관리자에서 확인된 포트번호로 설정해줍니다. 에디슨보드의 GPIO는 1.8V로 입출력이 이뤄지므로 본 LED 점멸테스트를 위해서는 전류 증폭회로가 필요하게 됩니다.</p>
<p dir="ltr">   필자는 일반적으로 디지털스위칭 용도로 많이 사용되는 2SC1815 NPN 트랜지스터를 사용하였습니다. 연결 회로도는 아래와 같습니다.</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="118" />
<col width="180" />
<col width="337" /></colgroup>
<tbody>
<tr>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\uad6c\ubd84&quot;]"><strong>구분</strong></td>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;Breakout Board \ud540\ubc88\ud638&quot;]"><strong>Breakout Board 핀번호</strong></td>
<td style="text-align: center; background-color: #9acd32;" data-sheets-value="[null,2,&quot;\uc6a9 \ub3c4&quot;]"><strong>용 도</strong></td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Power 3.3V&quot;]">Power 3.3V</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J20-P02&quot;]">J20-P02</td>
<td data-sheets-value="[null,2,&quot;\ud0c0\uac9f(\ube0c\ub808\ub4dc)\ubcf4\ub4dc\ub85c 3.3V \uacf5\uae09&quot;]"> 타겟(브레드)보드로 3.3V 공급</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;GND&quot;]">GND</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J19-P03&quot;]">J19-P03</td>
<td data-sheets-value="[null,2,&quot;\uc811\uc9c0&quot;]"> 접지</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;OUTPUT&quot;]">OUTPUT</td>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;J18-P13&quot;]">J18-P13</td>
<td data-sheets-value="[null,2,&quot;- LED\ub97c \uc810\uba78\ud558\uae30 \uc704\ud55c 1.8V\ub808\ubca8\uc758 \uc2e0\ud638\uc120\n1K\u03a9\uc744 \uac70\uccd0\uc11c 2SC1815 NPN TR\uc758 BASE\ub85c \uc5f0\uacb0\ub428\n\u203b \uc544\ub450\uc774\ub178\uc758 Digital port D0\uc5d0 \ud574\ub2f9\ub428&quot;]">- LED를 점멸하기 위한 1.8V레벨의 신호선<br />
1KΩ을 거쳐서 2SC1815 NPN TR의 BASE로 연결됨<br />
※ 아두이노의 Digital port D0에 해당됨</td>
</tr>
</tbody>
</table>
<div dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-27.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28075" alt="29 금강초롱 27" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-27-620x363.jpg" width="620" height="363" /></a>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><strong><span style="font-size: large;">  7. 아두이노IDE 환경에서 프로그램 하기</span></strong></p>
<p dir="ltr">   우선 에디슨보드만을 위한 전용 아두이노 IDE 프로그램 설치가 필요하며 아래 주소에서 다운로드를 합니다. 이 프로그램은 인텔사에서 공급합니다. (https://www-ssl.intel.com/content/www/us/en/do-it-yourself/downloads-and-documentation.html)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-28.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28076" alt="29 금강초롱 28" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-28-620x437.jpg" width="620" height="437" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   위 페이지에는 에디슨보드를 운영하는데 필요한 프로그램, 문서자료 등이 가득 들어 있으므로 자주 방문해 보는 것이 좋겠습니다.</p>
<p>아두이노 IDE에서 아래와 같은 간단한 소스를 입력해봅니다.</p>
<table class="aligncenter" style="border-color: #000000; border-width: 0px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">void setup() {</p>
<p dir="ltr">   <span style="color: #99cc00;">// Digital Pin 0 in Arduino IDE is mapped to J18-P13 on the Edison breakout board</span></p>
<p dir="ltr">pinMode(0, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">
<p dir="ltr">void loop() {</p>
<p dir="ltr">   <span style="color: #99cc00;">//Tun on the LED</span></p>
<p dir="ltr">digitalWrite(0,HIGH);</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">
<p dir="ltr">   <span style="color: #99cc00;">//Turn off the LED</span></p>
<p dir="ltr">digitalWrite(0,LOW);</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   컴파일이 끝나고 에디슨보드로 전송이 완료되면 아래와 같은 화면을 볼 수 있습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-29.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28077" alt="29 금강초롱 29" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-29-620x603.jpg" width="620" height="603" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   파일 &gt; 예제에는 아두이노 IDE에 담겨있는 인텔 에디슨보드용 예제파일이 모여 있는 곳입니다. 이곳에 있는 예제들을 살펴보는 것 만으로도 상당한 발전을 이룰 수 있다고 봅니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #ff0000;">※ 도움말 경로 : C:\arduino-windows-1.0.4\arduino-1.5.3-Intel.1.0.4\reference\index.html</span></p>
<p dir="ltr"><span style="color: #ff0000;">※ 라이브러리 경로 : C:\arduino-windows-1.0.4\arduino-1.5.3-Intel.1.0.4\hardware\arduino\edison\libraries</span></p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-331.bmp" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28078" alt="29 금강초롱 331" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-331.bmp" /></a></p>
<p dir="ltr">   브레드보드 상에서 동작중인 사진입니다. 사실 보기에는 단출해 보이지만 작가의 의도대로 동작이 이뤄지고 있음을 보여주는 의미심장한 사진임이 틀림없습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-30.jpg" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28079" alt="29 금강초롱 30" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-30-620x465.jpg" width="620" height="465" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   이번 차에는 에디슨보드에 핀 헤더를 부착하여 외부와 전기적으로 소통하는 채널을 형성하였고 이 핀에 LED를 연결하여 점멸하는 예제를 실행하여 봤습니다. 에디슨보드가 Break out보드와 결합되기만 하여도 얼마든지 외부와 소통할 수 있다는 것을 확인한 것이 이번 도전에서 가장 큰 의미가 아닐까 합니다.</p>
<p dir="ltr">   아쉬운 점이라면 에디슨보드에는 자체적인 A/D컨버터가 탑재되어 있지 않다는 점이며 아날로그량을 다루려면 반드시 추가 H/W구성이 반드시 필요하다는 것입니다. 이제 에디슨 보드로 무엇을 만들어 볼 수 있을까요? 진가를 발휘하고 싶다면 와이파이, 블루투스, SDIO, I2S를 활용하는 것이 어떨까요? 에디슨 보드가 인터넷과 한 몸이 되어 홈오토메이션, 헬스케어용 도구로 마구마구 활용될 수 있을 것으로 봅니다.</p>
<p dir="ltr">   다음 장에서는 와이파이나 블루투스 등을 응용한 예제를 진행하고자 합니다.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: x-large;"><strong>[4]  Wi-Fi로 인터넷과 소통하기</strong></span></p>
<p dir="ltr">   이번에는 에디슨보드의 최대 강점인 외부와 소통하는 채널을 활용하는 방법을 다뤄보고자 합니다. 이 부분은 공개된 자료가 거의 없는 것이 현실인지라 Intel 커뮤니티, 유튜브, 구글검색 및 직접 실험을 통해 얻은 정보를 바탕으로 작성되었습니다. 기본적인 무선랜 환경을 만든 다음 웹브라우저를 통해 에디슨보드와 네트웍으로 소통하기까지를 쭉~ 진행해 보도록 하겠습니다.</p>
<p dir="ltr"><em>※ 유의사항 : 만일 실습해 보기를 원할 경우 먼저 본 글을 한번 흝어 전체적인 흐름을 파악하고 따라 하시기를 권합니다.</em></p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  1. 실험환경 구성</strong></span></p>
<p dir="ltr">    <strong>1.1. 인텔에디슨 브레이크아웃보드 운영환경 분석</strong></p>
<p dir="ltr">    본 리뷰를 위해 지급받은 인텔 에디슨보드와 인텔 에디슨 브레이크아웃 보드를 활용하여 입출력을 하기에는 여러모로 불편한 점이 많습니다.</p>
<p dir="ltr">      ■ 브레이크아웃보드 핀 배열 문제 : 14핀*4열로 구성된 핀으로는 브레드보드판에 연결하기도 불편하고 신호선을 외부로 인출하기도 몹시 불편함</p>
<p dir="ltr">      ■ 신호레벨문제 : 에디슨보드는 기본적으로 1.8V로 디지털입출력이 이뤄지기에 일반적으로 사용되는 3.3V 내지는 5.0V 주변장치들과 통신에 제약이 있음</p>
<p dir="ltr">   위 문제를 극복하기 위해 필자는 다음과 같이 접근하였습니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>    1.2. 나만의 브레이크 아웃보드 제작</strong></p>
<p dir="ltr">    아래 사진과 같이 인텔 에디슨 브레이크아웃보드 핀 맵상 아두이노와 연계된 핀들을 활용하여 아래와 같이 만능기판에 베이스 보드를 만들게 되었습니다. 핀 배열은 기본적으로 아두이노 우노보드와 동일하게 구성하였습니다. 다만 에디슨 보드는 아날로그 입력 기능이 없는 관계로 DIG0~DIG13만 사용이 가능합니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-332.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28090" alt="29 금강초롱 332" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-332.jpg" width="620" height="355" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-333.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28091" alt="29 금강초롱 333" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-333.jpg" width="620" height="353" /></a></p>
<p>※ 인텔에디슨용 아두이노보드는 당연히 Analog 입력이 가능하며 이를 위해 별도의 A/D컨버터칩을 사용하였으며 SPI로 에디슨보드와 통신합니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>    1.3. 1.8v 레벨 컨버터</strong></p>
<p>    아래 사진과 같이 MOSFET를 사용하여 1.8v와 3.3v를 이어주는 변환기를 만들었습니다. SMD 디바이스와 에나멜동선을 사용하면 20핀 DIP타입으로 크게 어렵지 않게 제작이 가능합니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-334.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28092" alt="29 금강초롱 334" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-334.jpg" width="620" height="355" /></a> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-335.jpg" rel="lightbox[28027]"><img class="aligncenter size-full wp-image-28093" alt="29 금강초롱 335" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱-335.jpg" width="620" height="357" /></a></p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong> </strong></span></p>
<p dir="ltr"><span style="font-size: large;"><strong>  2. 에디슨보드 무선랜 접속환경 구성하기</strong></span></p>
<p dir="ltr">
<p dir="ltr">     <strong>2.1. 제 1단계 &#8211; Simple Web Server WiFi.ino 실행</strong></p>
<p dir="ltr">       ■ 아두이노실행 ▶ 파일 ▶ 예제 ▶ Wi-Fi ▶ Simple Web Server WiFi ▶ 컴파일/다운로드</p>
<p dir="ltr">       - 소스상 ssid 수정: 접속하고자 하는 무선랜 공유기의 SSID</p>
<p dir="ltr">       - 소스상 pass 수정: 공유기의 무선랜 암호</p>
<p dir="ltr">       ■ 아두이노 터미널 창을 열면 아래와 같은 내용을 볼 수 있음</p>
<p dir="ltr">        이 창을 통해 방금 에디슨보드가 부여 받은 사설 IP주소를 확인</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱336.bmp" rel="lightbox[28027]"><img class="aligncenter size-large wp-image-28080" alt="29 금강초롱336" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱336.bmp" /></a></p>
<p>&nbsp;</p>
<p dir="ltr"><strong>    2.2. 제 2단계 &#8211; 웹브라우져로 에디슨보드에 접속하기</strong></p>
<p dir="ltr">      ■ Set Device Password 섹션 : 에디슨보드가 AP모드로 사용될 때 사용할 비번과 root 비번이 설정된다. 즉, 여기에 등록되는 비번이 무선랜과 root 두 군데에 동시에 사용된다.</p>
<p dir="ltr">      ■ Change Device 섹션 : 에디슨보드가 AP모드로 사용될 때 쓰일 SSID와 mDNS에서 식별될 이름을 부여 한다. 즉, Host name이 된다.</p>
<p>      ■ Connect a WiFi network 섹션 : 이미 설치된 무선랜으로 접속하기 위해 사용될 SSID와 네트웍프로토콜, 암호를 등록한다.</p>
<p style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱337.bmp" rel="lightbox[28027]"><img class="aligncenter  wp-image-28081" alt="29 금강초롱337" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱337.bmp" width="629" height="619" /></a></p>
<p dir="ltr">      ■ 위 화면에서 “Submit”을 누르고 잠시 기다리면 아래와 같이 셋업이 정상적으로 종료되었다는 메시지를 볼 수 있습니다.</p>
<p style="text-align: center;"> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱338.bmp" rel="lightbox[28027]"><img class="aligncenter  wp-image-28082" alt="29 금강초롱338" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱338.bmp" width="631" height="292" /></a></p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large;"><strong>  3. 에디슨보드를 웹서버로 만들기</strong></span></p>
<p dir="ltr">    <strong>3.1. 제 3단계 &#8211; Test_WiFiWebserver.ino 소스 컴파일하고 다운로드</strong></p>
<table class="aligncenter" style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">/*</p>
<p dir="ltr"> WiFi Web Server</p>
<p dir="ltr">A simple web server that shows the value of the digital input pins.</p>
<p dir="ltr">using a <span style="color: #ff0000;">Edison Board Wi-Fi channel.</span></p>
<p dir="ltr">
<p dir="ltr">This example is written for a network using WPA encryption. For</p>
<p dir="ltr">WEP or WPA, change the Wifi.begin() call accordingly.</p>
<p dir="ltr">
<p dir="ltr">Circuit:</p>
<p dir="ltr">* WiFi shield attached</p>
<p dir="ltr">* Analog inputs attached to pins A0 through A5 (optional)</p>
<p dir="ltr">
<p dir="ltr">1.created 13 July 2010</p>
<p dir="ltr">    by dlf (Metodo2 srl)</p>
<p dir="ltr">2.modified 31 May 2012</p>
<p dir="ltr">    by Tom Igoe</p>
<p dir="ltr"><span style="color: #ff0000;">3.modified 2015.02.10</span></p>
<p dir="ltr"><span style="color: #ff0000;">    by Dae-Hwan, Kim</span></p>
<p dir="ltr"><span style="color: #ff0000;">    - Changed digital port reading process.</span></p>
<p dir="ltr">*/</p>
<p dir="ltr">#include &lt;SPI.h&gt;</p>
<p dir="ltr">#include &lt;WiFi.h&gt;</p>
<p dir="ltr"><span style="color: #ff0000;">char ssid[] = “myLivingRoom”; // your network SSID (name)</span></p>
<p dir="ltr"><span style="color: #ff0000;">char pass[] = “??????????”;     // your network password</span></p>
<p dir="ltr">int keyIndex = 0;             // your network key Index number (needed only for WEP)</p>
<p dir="ltr">int status = WL_IDLE_STATUS;</p>
<p dir="ltr">
<p dir="ltr"><span style="color: #ff0000;">WiFiServer server(8080);  // by Dae-Hwan, Kim Modify</span></p>
<p dir="ltr">void setup() {</p>
<p dir="ltr">
<p dir="ltr"> <span style="color: #ff0000;">// initialize the digital pin as an input.</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(0, INPUT);</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(1, INPUT);</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(2, INPUT);</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(3, INPUT);</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(4, INPUT);</span></p>
<p dir="ltr"><span style="color: #ff0000;"> pinMode(5, INPUT);</span></p>
<p dir="ltr">
<p dir="ltr"> //Initialize serial and wait for port to open:</p>
<p dir="ltr"> Serial.begin(9600);</p>
<p dir="ltr"> while (!Serial) {</p>
<p dir="ltr">   ; // wait for serial port to connect. Needed for Leonardo only</p>
<p dir="ltr"> }</p>
<p dir="ltr">
<p dir="ltr"> // check for the presence of the shield:</p>
<p dir="ltr"> if (WiFi.status() == WL_NO_SHIELD) {</p>
<p dir="ltr">   Serial.println(“WiFi shield not present”);</p>
<p dir="ltr">   // don’t continue:</p>
<p dir="ltr">   while(true);</p>
<p dir="ltr"> }</p>
<p dir="ltr">
<p dir="ltr"> String fv = WiFi.firmwareVersion();</p>
<p dir="ltr"> if( fv != “1.1.0” )</p>
<p dir="ltr">   Serial.println(“Please upgrade the firmware”);</p>
<p dir="ltr"> // attempt to connect to Wifi network:</p>
<p dir="ltr"> while ( status != WL_CONNECTED) {</p>
<p dir="ltr">   Serial.print(“Attempting to connect to SSID: “);</p>
<p dir="ltr">   Serial.println(ssid);</p>
<p dir="ltr">   // Connect to WPA/WPA2 network. Change this line if using open or WEP network:</p>
<p dir="ltr">   status = WiFi.begin(ssid, pass);</p>
<p dir="ltr">   // wait 10 seconds for connection:</p>
<p dir="ltr">   delay(10000);</p>
<p dir="ltr"> }</p>
<p dir="ltr"> server.begin();</p>
<p dir="ltr"> // you’re connected now, so print out the status:</p>
<p dir="ltr"> printWifiStatus();</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop() {</p>
<p dir="ltr"> // listen for incoming clients</p>
<p dir="ltr"> WiFiClient client = server.available();</p>
<p dir="ltr"> if (client) {</p>
<p dir="ltr">   Serial.println(“new client”);</p>
<p dir="ltr">   // an http request ends with a blank line</p>
<p dir="ltr">   boolean currentLineIsBlank = true;</p>
<p dir="ltr">   while (client.connected()) {</p>
<p dir="ltr">     if (client.available()) {</p>
<p dir="ltr">       char c = client.read();</p>
<p dir="ltr">       Serial.write(c);</p>
<p dir="ltr">       // if you’ve gotten to the end of the line (received a newline</p>
<p dir="ltr">       // character) and the line is blank, the http request has ended,</p>
<p dir="ltr">       // so you can send a reply</p>
<p dir="ltr">       if (c == ‘\n’ &amp;&amp; currentLineIsBlank) {</p>
<p dir="ltr">         // send a standard http response header</p>
<p dir="ltr">         client.println(“HTTP/1.1 200 OK”);</p>
<p dir="ltr">         client.println(“Content-Type: text/html”);</p>
<p dir="ltr">         client.println(“Connection: close”);  // the connection will be closed after completion of the response</p>
<p dir="ltr">         client.println(“Refresh: 5”);  // refresh the page automatically every      5 sec</p>
<p dir="ltr">         client.println();</p>
<p dir="ltr">         client.println(“&lt;!DOCTYPE HTML&gt;”);</p>
<p dir="ltr">         client.println(“&lt;html&gt;”);</p>
<p dir="ltr">
<p dir="ltr">         // output the value of each analog input pin</p>
<p dir="ltr">  <span style="color: #ff0000;">       for (int digitalChannel = 0; digitalChannel &lt; 6; digitalChannel++) {</span></p>
<p dir="ltr"><span style="color: #ff0000;">           int sensorReading = digitalRead(digitalChannel);</span></p>
<p dir="ltr"><span style="color: #ff0000;">           client.print(“Digital input [“);</span></p>
<p dir="ltr"><span style="color: #ff0000;">           client.print(digitalChannel);</span></p>
<p dir="ltr"><span style="color: #ff0000;">           client.print(“] is “);</span></p>
<p dir="ltr"><span style="color: #ff0000;">           client.print(sensorReading);</span></p>
<p dir="ltr"><span style="color: #ff0000;">           client.println(“&lt;br /&gt;”);</span></p>
<p dir="ltr"><span style="color: #ff0000;">         }</span></p>
<p dir="ltr">         client.println(“&lt;/html&gt;”);</p>
<p dir="ltr">          break;</p>
<p dir="ltr">       }</p>
<p dir="ltr">       if (c == ‘\n’) {</p>
<p dir="ltr">         // you’re starting a new line</p>
<p dir="ltr">         currentLineIsBlank = true;</p>
<p dir="ltr">       }</p>
<p dir="ltr">       else if (c != ‘\r’) {</p>
<p dir="ltr">         // you’ve gotten a character on the current line</p>
<p dir="ltr">         currentLineIsBlank = false;</p>
<p dir="ltr">       }</p>
<p dir="ltr">     }</p>
<p dir="ltr">   }</p>
<p dir="ltr">   // give the web browser time to receive the data</p>
<p dir="ltr">   delay(1);</p>
<p dir="ltr">
<p dir="ltr">   // close the connection:</p>
<p dir="ltr">   client.stop();</p>
<p dir="ltr">   Serial.println(“client disonnected”);</p>
<p dir="ltr"> }</p>
<p dir="ltr">}</p>
<p dir="ltr">void printWifiStatus() {</p>
<p dir="ltr"> // print the SSID of the network you’re attached to:</p>
<p dir="ltr"> Serial.print(“SSID: “);</p>
<p dir="ltr"> Serial.println(WiFi.SSID());</p>
<p dir="ltr">
<p dir="ltr"> // print your WiFi shield’s IP address:</p>
<p dir="ltr"> IPAddress ip = WiFi.localIP();</p>
<p dir="ltr"> Serial.print(“IP Address: “);</p>
<p dir="ltr"> Serial.println(ip);</p>
<p dir="ltr">
<p dir="ltr"> // print the received signal strength:</p>
<p dir="ltr"> long rssi = WiFi.RSSI();</p>
<p dir="ltr"> Serial.print(“signal strength (RSSI):”);</p>
<p dir="ltr"> Serial.print(rssi);</p>
<p dir="ltr"> Serial.println(“ dBm”);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p dir="ltr"><strong>    3.2. 제 4단계 &#8211; 아두이노 IDE의 시리얼모니터 실행</strong></p>
<p>    에디슨보드로 다운로드를 실행한 후 곧장 시리얼 모니터를 실행하면 아래와 같은 화면을 볼 수 있습니다. 물론 SSID와 IP주소는 필자와 다르게 보일 것입니다. 여기 보이는 주소가 “에디슨웹서버” 주소가 됩니다.</p>
<p style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱339.bmp" rel="lightbox[28027]"><img class="aligncenter  wp-image-28083" alt="29 금강초롱339" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱339.bmp" width="612" height="357" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p dir="ltr"><strong>    3.3. 제 5단계 &#8211; 웹브라우져를 띄워 웹서버(에디슨보드)로 접속</strong></p>
<p dir="ltr">      ■ 접속주소 : http://192.168.123.108:8080/ 등으로 접속한다. IP주소는 위 시리얼모니터창의 값을 사용하고 포트번호 8080은 다른 값을 사용하면 안 됩니다. 이 값은 에디슨보드에 8080을 사용하겠다고 위 소스코드에서 선언이 되어있기 때문입니다.</p>
<p dir="ltr">      ■ 아래는 센서 상태를 원격으로 읽어 웹브라우져 상에 표시를 하고 있는 것입니다.</p>
<p style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱340.bmp" rel="lightbox[28027]"><img class="aligncenter  wp-image-28084" alt="29 금강초롱340" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱340.bmp" width="614" height="269" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">      ■ 또한 시리얼모니터를 띄워 놓으면 아래와 같이 클라이언트(웹브라우저)가 접속해와 자료를 가져가고 있는 모습을 실시간으로 모니터링 할 수 있습니다.</p>
<p style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱341.bmp" rel="lightbox[28027]"><img class="aligncenter  wp-image-28085" alt="29 금강초롱341" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-금강초롱341.bmp" width="612" height="326" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p dir="ltr"><span style="font-size: large;"><strong>4. 마무리하기</strong></span></p>
<p dir="ltr">   지난 두어 달 간 에디슨보드를 친구삼아 행복한 시간을 보냈습니다. 에디슨보드는 한마디로 초소형 리눅스컴퓨터이며 블루투스와 와이파이를 통해 외부 세계와 소통할 수 있고 자신은 SPI, I2C, USART 등으로 외연을 확대할 수 있는 제품임에 틀림이 없습니다. 에디슨보드가 현장에서 사용될 때는 아마도 STM32F4시리즈나 라즈베리파이2 보드 등과 접전이 불가피해 보입니다. 에디슨보드가 가격에 있어서 특별히 크게 메리트 있어 보이지는 않으나 간단한 센싱과 인터넷에 연결되어 작동하는 상황을 가정해 본다면 이러한 조건에서는 다소간의 경쟁력은 있어 보입니다. 에디슨보드의 컴퓨팅파워를 적극 활용해 웹을 기반으로 동작되는 어플리케이션을 구성한다면 나름 상당히 유용하겠다는 생각이 듭니다. 에디슨보드를 웹상에서 구동하려 한다면 다소간의 지식들은 필요해 보입니다.</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="214" />
<col width="504" /></colgroup>
<tbody>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc6f9\uc11c\ubc84 \uac1c\ub150&quot;]">웹서버 개념</td>
<td data-sheets-value="[null,2,&quot;3-Tier \uc544\ud0a4\ud14d\uccd0 \ub4f1 Http\uc11c\ube44\uc2a4\uac00 \uc774\ub904\uc9c0\ub294 \uae30\ubcf8 \uc6d0\ub9ac&quot;]"> 3-Tier 아키텍쳐 등 Http서비스가 이뤄지는 기본 원리</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;TCP/IP\uac1c\ub150&quot;]">TCP/IP개념</td>
<td data-sheets-value="[null,2,&quot;\ud074\ub77c\uc774\uc5b8\ud2b8(PC \uc6f9\ube0c\ub77c\uc6b0\uc838)\uc640 \uc11c\ubc84(\uc5d0\ub514\uc2a8\ubcf4\ub4dc)\uac04 \ud1b5\uc2e0\uccb4\uacc4&quot;]"> 클라이언트(PC 웹브라우져)와 서버(에디슨보드)간 통신체계</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Html/css/java script&quot;]">Html/css/java script</td>
<td data-sheets-value="[null,2,&quot;html\ub85c \uc6f9\ud398\uc774\uc9c0\ub97c \uad6c\uc131\ud558\uace0 \uc11c\ube44\uc2a4\uac00 \uc774\ub904\uc9c0\ub294 \uc6d0\ub9ac&quot;]"> html로 웹페이지를 구성하고 서비스가 이뤄지는 원리</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;Linux&quot;]">Linux</td>
<td data-sheets-value="[null,2,&quot;\uc5d0\ub514\uc2a8 \ubcf4\ub4dc\uc758 \ub3d9\uc791\uc0c1\ud0dc \ubaa8\ub2c8\ud130\ub9c1 \ubc0f \ubb38\uc81c \ud574\uacb0&quot;]"> 에디슨 보드의 동작상태 모니터링 및 문제 해결</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uc544\ub450\uc774\ub178 \uc6b0\ub178&quot;]">아두이노 우노</td>
<td data-sheets-value="[null,2,&quot;IDE\uae30\ubc18\uc5d0\uc11c \uc544\ub450\uc774\ub178 \ud504\ub85c\uadf8\ub798\ubc0d, C\uc5b8\uc5b4 \ud578\ub4e4\ub9c1 \ub4f1&quot;]"> IDE기반에서 아두이노 프로그래밍, C언어 핸들링 등</td>
</tr>
<tr>
<td style="text-align: center;" data-sheets-value="[null,2,&quot;\uae30\ud0c0&quot;]">기타</td>
<td data-sheets-value="[null,2,&quot;\uc544\ub098\ub85c\uadf8/\ub514\uc9c0\ud138\ub85c\uc9c1, SPI, I2C, SD CARD, Power, USB, Serial \ub4f1 \uc774\ud574&quot;]"> 아나로그/디지털로직, SPI, I2C, SD CARD, Power, USB, Serial 등 이해</td>
</tr>
</tbody>
</table>
<p>이상으로 부족하나마 에디슨 보드에 대한 리뷰를 마칩니다.</p>
<div dir="ltr">
<p dir="ltr">감사합니다.</p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong>  5. 참고</strong></span></p>
<p dir="ltr">  · https://www-ssl.intel.com/content/www/us/en/do-it-yourself/downloads-and-documentation.html</p>
<p dir="ltr">  · https://communities.intel.com/message/264386#264386</p>
<p dir="ltr">  · https://communities.intel.com/docs/DOC-23192</p>
<p dir="ltr">  · https://communities.intel.com/community/makers/edison/getting-started</p>
<p dir="ltr">  · https://communities.intel.com/message/264386#264386</p>
<p dir="ltr">  · http://blog.microcasts.tv/2014/10/16/edison-mini-breakout-the-rea l-getting-started-guide</p>
<p dir="ltr">  · 아두이노 우노 스펙 : http://arduino.cc/en/Main/ArduinoBoardUno</p>
<p dir="ltr">  · 아날로그 입력핀 : https://communities.intel.com/thread/57506</p>
<p dir="ltr">  · 1.8v To 3.3v 레벨 변환기 제작</p>
<p dir="ltr">    &#8211; https://learn.sparkfun.com/tutorials/bi-directional-logic-level -converter-hookup-guide</p>
<p dir="ltr">    &#8211; http://dlnmh9ip6v2uc.cloudfront.net/tutorialimages/BD-LogicLevelConverter/an97055.pdf</p>
<p dir="ltr">  · https://communities.intel.com/message/250732#250732</p>
<p dir="ltr">
</div>
</div>
<p>&nbsp;</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="193" />
<col width="485" /></colgroup>
<tbody>
<tr>
<td style="text-align: center; background-color: #9acd32;" rowspan="1" colspan="2" align="center" valign="middle" data-sheets-value="[null,2,&quot;\uc800\uc790\uc18c\uac1c&quot;]"><span style="font-size: medium;"><strong>저자소개</strong></span></td>
</tr>
<tr>
<td> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/99번.jpg" rel="lightbox[28027]"><img class="aligncenter size-thumbnail wp-image-28086" alt="99번" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/99번-150x150.jpg" width="150" height="150" /></a></td>
<td data-sheets-value="[null,2,&quot;\uc81c\uc791, \uc0ac\uc9c4, \uae00 : \uae08\uac15\ucd08\ub871 \uac1d\uc6d0\uae30\uc790 \n\n\n\ud55c\uad6d \ub9c8\uc0ac\ud68c \uc815\ubcf4\uae30\uc220\ucc98 \uadfc\ubb34\n\n\ub124\uc774\ubc84 \ube14\ub85c\uadf8 blog.naver.com/crucian2k3 \uc6b4\uc601 \uc911&quot;]">제작, 사진, 글 : 금강초롱 객원기자&nbsp;</p>
<p>한국 마사회 정보기술처 근무</p>
<p>네이버 블로그 blog.naver.com/crucian2k3 운영 중</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><a href="http://www.devicemart.co.kr/1247051">[기획상품] Intel® Edison Kit for Arduino + Wooden Case</a></p>
<p><a href="http://www.devicemart.co.kr/1160269">Intel® Edison Kit for Arduino</a></p>
<p><a href="http://www.devicemart.co.kr/1160267">Intel® Edison Breakout Board</a></p>
<p><a href="http://www.devicemart.co.kr/1160265">Intel® Edison</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28027/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
