아두이노(Arduino)?

오픈소스를 기반으로 한 단일 보드 마이크로컨트롤러. 즉, 하나의 컴퓨터인데 저장공간,입출력장치 등을 생략하여 자그마한 하나의 보드형태로 소형화하고 대신 임의의   입출력장치들을 여러개 연결할 수 있도록 범용 입출력 연결 단자들만을 가지고 있다.
아두이노는 다수의 스위치나 센서로부터 값을 받아들이거나, LED나 모터와 같은 외부 전자  장치들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있으며, 이러한 것들을 개발하기 위한 개발환경도 무료로 오픈되어 있고 사용하기도 매우 간편하게 되어있다.  따라서 전세계에  수많은 사람들이 이를 이용해 각가지 자신만의 기기들을 개발하고 있으며  개발된 사례 및 샘플코드들도 공개된 것이 많아 배우기도 쉽다.
아두이노의 제작방법은 오픈되어 있어 누구나 비슷한 보드를 만들어낼 수 있으므로 시중에는 수십가지 종류의 아두이노 보드들이 있어 자신의 용도에 맞는 것을 선택할 수 있는데   대표적으로 많이 사용하는 것들은 다음과 같다.  

 

 

 

아두이노 나노

 

1) Mini USB 단자  : PC와 연결하여 전원도 공급하고 PC와의 통신을 통해 프로그램을 설치하거나 상태를 확인하는 등 개발과정에서 주로 사용하는 단자이다. 

2) VIN : PC와 연결되지 않은 상태에서도 동작시키기 위한 전원단자로서 5 ~12V의 전압을 가해 주면 아두이노 나노 내부적으로 5V로 조절하여 사용된다.  

3) 디지털 I/O핀 D0 ~ D13번 
    - 디지털 신호 (HIGH는 LOW값)을 입출력하기 위한 핀들로서 각종 센서나 부품들을  연결할 수 있다. Digital이라는 의미로 D라는 문자 뒤에 핀번호가 표시되어 있다. 
     -D0번과 D1번은 기본 통신용으로 사용되므로 TX, RX로 표시되어 있으며,  D13핀은  내부LED와 연결되어 있어 초기 부팅시 등에 수시로 내부LED가  깜박일때 D13번핀에도 동일한 전류가 흐르므로 이를 감안하고 사용해야 한다.
4) 아날로그 Input핀 A0 ~ A7번
   - 단순한 HIGH/LOW신호가 아닌 세분화된 값(0~1023)을 읽기 위한 핀으로서 각종  센서로 부터 측정값을 읽어들일 때 주로 사용한다.   

4) 5V, 3.3V출력핀 : 연결되는 센서나 부품들에 전원을 공급하기 위한 단자. 

5) Memory  : 프로그램제작용으로 사용할 수 있는 영역은 약30KB로서, 큰 용량은아니지만  웬만한 제어용 기기 제작용도로는 사용할 수 있다.   

 

아두이노 개발환경의 설치

 

1) PC에 아두이노 IDE 개발환경 설치 


    -  http://www.arduino.cc 에 접속하여 Download메뉴에서 IDE를 다운받아 설치.
    -  화면 아래 왼쪽의 JUST DOWNLOAD를 눌러 다운로드 받으면 됨.
    -  설치 진행중 driver 설치하겠냐는 질문에 예로 계속 진행
    -  설치가 완료되면 바탕화면에 Arduino 아이콘이 생성됨

 

 

2) 아두이노 나노 연결  

 


   - Arduino를 기동시키고 툴 메뉴에서 보드: Arduino Nano, 프로세서: ATmega328 선택
   - 아두이노나노를 USB케이블로  PC에 연결시키고 툴메뉴 포트에 새로운 포트번호가  생성되는지 확인하여 새로 생성되는 포트번호를 선택한다

 

 

아두이노 포트가 자동연결되지 않을 경우

 

- Made in Italy 아두이노정품은 USB 연결 드라이버가 IDE에 포함되어 있어 처음부터  자동으로 연결되지만,  Made in China 호환보드일 경우 전용 CH340 USB드라이버를 한번 설치해 주어야 만 다음 부터 자동연결 된다.   

- CH340 드라이버 설치 방법 :  http://www.wch.cn/download/CH341SER_ZIP.html 에   접속하여 CH341SER.ZIP 파일을 다운로드하여 설치하면 된다.

- 압축파일  풀기 하면 CH341SER 폴더가 생성되고 그 아래 또 생성된 CH341SER 안의 setup.exe 실행한다.

 

 

 

- 드라이버 설치가 완료되면 Arduino IDE의 툴 메뉴의  포트부분에 연결된 포트가 표시된다.

본 프로젝트를 위해 소요되는 부품들은 다음과 같고, 부품별 사양을 설명해 놓았다.
부품의 종류가 많고 별로 구입처가 각기 달라 각각의 부품값보다 구입처별 배송비가 더 많이 발생되므로...
한번에 구입할 수 있도록 키트형태로 구성하여 쇼핑몰에 올릴 예정이다.

 

 

 

1. 아두이노 : 소형으로 사용이 간편한 아두이노 나노 v3.0 기종을 사용. 조그만 부주의에도 쉽게 망가질 수 있으므로 여분으로 하나 더 준비하는 것이 좋다.
3. 프로토타이핑보드: 아두이노와 각각의 부품들은 여러개의 케이블들을 연결해주어야 하는데, 배선이 복잡해져 지저분해 지고 접선불량 등 에러날 가능이 많아지므로 프토로타이핑 보드를 통해 연결하면 조립이 깔끔해지고 안정적이 된다.
4. LCD디스플레이: 4개선으로 제어할 수 있는 I2C방식으로 구성되고, 16자 * 2줄 표시용 사용
5. 미니스위치: 가동중 평상시에는 LCD화면을 꺼 두기 위해 LCD백라이트 조명에 스위치을 달아 ON/OFF하기 용도
7. 피에조 부저: 능동형과 수동형이 있는데 원하는 주파수의 소리를 내기 위해서 수동형을 사용
8. 온습도센서: 일반적으로 많이 사용하고 온습도를 함께 측정할 수 DHT11 기종
9. 수위센서: 보통 토양수분센서라고 하는 센서를 사용하되, 전극부분은 별도제작 ( 화분에 꽂아두기 위한 용도가 아니고 수조내에 있는 수중워터펌프 입구에 물이 있는지 여부 판단하기 위한 용도로 )
10. 릴레이: 5V로 제어되는 릴레이.  역전류 흐름방지용 다이오드가 부착된 KY-019기종을 사용 (다이오드가 부착되지 않은 릴레이를 사용할 경우 릴레이가 작동될 때 역전류가 흘러 아두이노 작동이 중지되어 버리는 에러가 발생될 수 있음)
11. LED전구: 200~300옴 저항을 연결하여 아두이노 5V 단자에 연결할 수 있도록 제작.
12. 펌프: 12V에서 4W급으로 동작해서 240L/H정도 용량을 가진 수중워터펌프. 
13. 케이스: 3D 프린터로 출력하여 제작. FDM방식 3D프린터용 3D모델링파일(STL)을 LINK시켜 놓았으므로 다운로드 받아 출력 가능 ( 적층두께 0.3mm )
*** STL 파일이 용량제한으로 UPLOAD가 안되므로, 다른 곳에  올리고 LINK할 예정.
15. 수조 : 물을 5~6L 충분히 담아둘 수 있는 용기, 시중에서 구할 수 있는 투명PET 물통을 사용하면 수조 뚜껑과 본체가 합체되도록  케이스가 디자인되어 있음.
18.전원아답터: 12 V 6W급( 0.5A)용량

본 프로젝트는 아두이노 피지컬코딩(Physical Coding)의 사례로써,아두이노 전반에 대해 실습해 보고 실생활에서 활용할 수 있는 작품 하나를 완성해 보는 과정이다.


즉, 단편적으로 몇가지 기능들을 실습해 보거나 몇몇기능을 연결해서 RC자동차같은 장난감을 제작해 보는 것이 아니라

-LED불켜기 부터 시작해서  LCD화면에 정보 표시하기,사용자로부터 입력받기,릴레이로 모터 제어하기 등 아두이노로 할 수 있는 기능들을 폭넓게 전반적으로 경험해 보고
-생활에서 실제 사용할 수 있는 수준의 스마트자동급수시스템을 제작하기 위해 필요한 기능들을 하나씩 하나씩 구현하여 완성해 가는 과정을 직접 경험해 볼 수 있도록 구성되어 있다.

 

1. 소요되는 사전지식 : 기본적인 C 언어 사용방법은 이미 알고 있다고 가정한다. 즉, 스크래치 등으로 코딩의 기본구조를 이해하고, 각각의 요소들이 C언어로는 어떻게 표현되는지 기본지식이 있는 사람이 다음 단계로서 프로그램이 어떻게 사물을 제어하는지 즉, 피지컬컴퓨팅 배우고자 하는 경우에 적합하다.

 

2. 소요되는 시간 : 총 14개 과정으로 구성되어 있고, 각각은 30분~1시간정도의 시간이 소요되므로 1주일에 1시간씩 한학기 과정으로 적당하고,  개인이 연속해서 제작한다면 2~3일정도 소요된다.

 

저항(Registor)는 아두이노 회로를 구성할 때 가장 흔하게 사용하는 부품으로서 전기의 흐름을 방해하여 전류량을 제한하기 위해 사용한다. 어떤 물질의 전기저항값은 물질의 종류,단면적,길이,온도에 따라 차이가 발생하므로 원하는 저항 값을 구현하기 위해 여러 방법이 있고 방법마다 고유 특성이 있기 저항기의 종류는 매우 다양하다. 아두이노 메이킹활동에서 일반적으로 많이 사용하는 저항기의 유형은 다음과 같다.  

 

고정저항기

 

1)탄소피막 저항기

 

가장 흔하게 사용되는 저가형 저항으로서 세라믹막대에 탄소분말을 피막형태로 입힌 형태이다. 가격은 가장 저렴하지만 보통 오차율이 5%정도로서 높은 편이고 전류의 잡음도 큰 편이다. 보통 노란색 바탕에 색띠가 4개 인데 저항의 값을 표시하는 방법은 다음과 같다.

 

 

즉, 다음과 같은 색깔의 저항일 경우 차례대로 녹색(5),검정(0) 빨강(100) 이므로 50 x 100 즉 5000옴( 5k옴 )이고 오차는 5% 이다.

 

 

 

 

2)금속피막 저항기

 

세라믹막대에 탄소피막 대신 니켈,니크롬 등의 합금금속을 사용한 저항기로서 오차율은 1% 정도로 정밀한 편이고 고주파 특성이 좋아 디지털회로 구성에 많이 사용한다. 보통 하늘색 바탕에 색띠가 5개인데 저항의 값을 표시하는 방법은 다음과 같다.

 

즉 다음과 같은 경우 빨강(2), 주황(3), 보라(7), 검정(1) 이므로 237 X 1 즉 237옴이고 오차율은 갈색이므로 1%이다.  

 

 3)시멘트저항

 

저항체를 시멘트에 몰딩시켜 제작한 고정저항기로서 습도 및 고온에 강하므로 큰 전력 환경에서 사용하기 위한 것이다. 즉 피막저항기의 경우 허용 전력이 1/4Watt ~ 1/8Watt인데 반해 시멘트저항은 허용전력이 5~20 Watt에 이른다. 시멘트 저항기의 경우 허용전력과 저항값이 표면에 직접 인쇄되어 있다.

 

 

4) 칩저항

 

칩자힝은 칩 모양으로 작게 제작한 고정저항기로서 기판 표면에 자동으로 납떔하여 소형의 회로를 대량생산 제작할 떄 사용된다.  크기가 아주 작기 때문에 수작업으로 회로를 자작할 때에는 숙련된 납땜기술이 없으면 사용하기 힘들다.

 

 

칩저항의 값 표시는 컬러띠가 아닌 문자로 표기하는데 자릿수나 소숮점 위치 표시방법에 따라 조금씩 다른데 몇가지 예는 다음과 같다.

  

 

가변 저항기

 

가변 저항기는 저항의 값을 바꿀수 있는 형태의 저항기로서 대표적인 것이 스피커의 음량을 조절하는 볼륨다이얼이다. 

 

 

 

 

 

 

 

반고정 저항기

 

반고정 저항기는 수시로 저항값을 바꾸는 용도가 아닌 회로기판에 장착해서 회로의 동작점을 한번 조정하고 그후에는 변경할 필요가 없는 경우에 사용된다. 따라서 저항값을 조정하는 손잡이가 없이 소형 드라이버 등으로 조절하는 방식으로 되어 있고 소형화되어 있다.

 

   

 

+ Recent posts