아두이노로 만드는 수경재배 장치 목차
2. 아두이노 IDE
1. 아두이노 우노와 프로토타입 쉴드 연결하기
주문한 아두이노 우노가 도착해서 정전기 방지 비닐에서 제거하면 아래 사진과 같은 모습이다. 정품은 Made in Italy라고 써져 있다. 하지만, 지금까지 중국산 clone과 썩어서 같이 사용해 봤지만 아직까지 사용하면서 다른 기능은 발견하지 못했다.
같이 주문한 프로토타입 쉴드도 정전기 방지 비닐에서 꺼내서 브레드보드의 양면 접착제를 제거하고 기판 위에 붙였다.
이제 프로토타입 쉴드를 아두이노 우노 보드 위에 포개어 조립하면 아래와 같은 모습이 된다.
2. 아두이노 IDE
프로토타입 쉴드를 연결하지 않고 USB B케이블을 연결하면 기판 위에 L로 표시된 LED_BUILTIN이 깜빡이는 것을 확인할 수 있다. 에러가 난 것은 아니고 아직 프로그램이 업로드되지 않았기 때문에 나타나는 증상이어서 눈에 거슬린다면 빈 프로그램이라도 업로드하면 사라지는데 이때 아두이노 IDE를 사용한다.
- 먼저 아두이노 공식 사이트에 들어가면 아두이노 IDE를 다운로드하고 설치할 수 있다.
설치는 특별한 것이 없다. 약관에 동의하고 설치 대상을 모든 사용자로 할 것인지 본인만 할 것인지를 선택하고 특별히 설치할 곳을 지정하지 않으면 다음, 다음 버튼을 선택하고 설치 버튼을 선택하면 설치가 완료된다.
- 설치가 완료되고 아두이노 IDE가 실행되면 다음과 같이 화면이 나타난다.
아두이노의 프로그램은 스케치(sketch)라고 부르며 크게 setup()과 loop(), 2개의 스페셜 함수가 기본이다. setup()은 sketch가 시작될 때 한 번만 실행되며 실행에 필요한 값을 설정하거나 핀모드를 설정하는 등 초기화 작업을 진행한다. loop()는 이후 반복적으로 실행되며 센서의 값을 가져오거나 LED의 불을 켜는 등의 작업을 지속적으로 반복한다. 아두이노는 OS가 없고 부트로더가 Flash 메모리에 저장된 프로그램에서 이 두 함수를 실행하는 작업만을 수행한다. 물론 내부적으로는 컴파일된 RISC명령어가 실행된다.
이제 IDE의 기능에 대해 간단히 살펴보자.
- Verify
녹색 바의 첫 번째에 위치한 Verify는 아두이노 보드가 없어도 동작하며, 아두이노로 업로드(upload) 하기 전에 문법적 오류가 있는지 검사하고 RISC 명령어로 컴파일하는 단계까지만 진행한다. 한번 실행하고 결과를 보자.
Output을 보면 프로그램 영역이 32256 bytes (32KB)이고 변수 영역이 2048 bytes 인 것을 확인할 수 있다. 비어있는 프로그램이 컴파일되면 444 bytes 크기의 기계어로 바뀐다는 것을 Output에서 알 수 있다.
- Upload
이제 아두이노를 연결하면 정품은 자동으로 연결되면서 드롭다운 박스에 Arduino Uno가 연결되는 것이 나온다. 녹색 바의 두 번째 버튼 Upload를 누르면 Verify와 똑같은 과정을 거쳐 프로그램이 컴파일되고 최종적으로 아두이노에 업로드되는 것을 확인할 수 있다.
내가 가지고 있는 clone의 경우 USB B 케이블을 연결하면 자동으로 연결되지 않는 경우가 생기는데, 이 경우 "Select other board and port..."를 선택하고 해당 보드를 선택하면 쉽게 연결된다.
- Serial Monitor
녹색 바의 끝으로 가면 Serial Monitor버튼이 있다. 아두이노는 화면이 없다. 프로그램을 작성하다 보면 값을 확인해 보고 싶은 경우가 있는데 이때는 Serial객체를 사용해서 Serial Monitor로 출력해야 한다. 프로그래머에게는 생명 같은 디버그 정보를 표시하는 콘솔이 바로 Serial Monitor라고 보면 된다. Serial Monitor는 프로그램을 만들 때 setup()에 Serial.begin() 명령을 실행해야 하며, 이때 지정한 baud rate와 같은 rate를 Serial Monitor에 설정해야 통신이 가능하다. 설정하지 않으면 9600으로 자동 지정된다.
Baud rate는 시리얼 통신을 할 때 얼마나 빠르게 전송할 것인지를 지정하는 방법인데 선이 긴 경우 rate가 높으면 에러가 발생할 수 있다. 이 경우 baud rate를 내려주거나 parity를 사용하는 통신을 하면 에러를 줄일 수 있다. 아두이노의 경우 시리얼을 바로 USB B로 변환하고 쉴드 된 짧을 선을 사용하기 때문에 속도를 높여도 문제가 되지 않지만, 일반적인 아두이노 프로그램에서 9600이면 속도가 느리다는 것을 느끼지 못한다.
- Library Manager
왼쪽의 사이드 첫 번째 아이콘은 Sketchbook으로 프로젝트 목록을 보여주며, 두 번째 아이콘은 Boards Manager로 다른 아두이노 하드웨어를 사용할 경우에 필요하며, 우리가 주목해야 할 메뉴는 세 번째 Library Manager이다. Library Manager는 아두이노 보드와 연결하는 센서를 조작할 수 있는 라이브러리를 검색하고 설치할 수 있는 곳이다. 내가 이번에 구매한 DHT11, DHT22에 대한 Library를 받고 싶으면 검색창에 dht라고 치면 호환이 되는, 사용가능한 라이브러리들이 나타나는데 마음에 드는 녀석으로 설치하면 된다.
이제 아두이노 IDE에 프로토타입 쉴드가 장착된 아두이노를 연결했으니 개발을 시작할 수 있게 되었다.
'IoT 자동화' 카테고리의 다른 글
아두이노로 만드는 수경재배 장치; 6. 조도계 (광센서) (2) | 2023.03.19 |
---|---|
아두이노로 만드는 수경재배 장치; 5. 온도, 습도계 v 2.0 (0) | 2023.03.11 |
아두이노로 만드는 수경재배 장치; 4. 온도, 습도계 v 1.0 (0) | 2023.03.09 |
아두이노로 만드는 수경재배 장치; 3. 첫 번째 아두이노 개발 (0) | 2023.03.09 |
아두이노로 만드는 수경재배 장치; 1. 아두이노 시작하기 (0) | 2023.03.08 |