이제 아두이노와 PC를 연결하고 코딩을 하기 위한 기본적인 지식을 알아보도록 하겠습니다.
1. 아두이노와 PC 연결하기
2. 아두이노 코딩을 위한 기초지식
---------------------------------------------------------------------------------------------------------------------------------
1. 아두이노와 PC 연결하기
이전 블로그에서 설명드렸다시피 아두이노에는 PC연결을 위한 USB Type B를 제공하고 있습니다.
따라서 물리적으로 연결하는건 어렵지 않은데, PC가 아두이노를 인식하기 위해서는 드라이버 설치가 필요합니다.
아두이노의 공식 홈페이지인 https://www.arduino.cc/에 들어갑니다.
초기 화면에서 아래와 같이 Software --> Downloads를 클릭
바로 아래에 있는 IDE의 윈도우 설치파일을 다운받습니다.
그러면 아래와 같이 다운로드 버튼이 있는데 마치 비활성화된 버튼처럼 생긴 것을 눌러야 합니다. (아래 빨간 네모)
오른쪽 버튼은 기부하고 다운받는 버튼입니다 ^^
그러면 exe 파일로 된 설치파일이 다운로드 됩니다. 다운이 완료되면 설치 시작!
여기서 Next 버튼을 눌러 설치 진행합니다.
설치가 완료되면 시작에서 Arduino 실행파일이 보일겁니다.
이걸 실행시키기 전에 우선 장치관리자에서 포트 --> Arduino Uno가 보이는지 확인합니다.
그리고 중요한 것!! 포트 번호를 확인합니다. 여기서는 COM3로 나오네요.
참고로 포트번호는 PC마다, USB포트마다 다를 수 있습니다.
이제 아까 설치했던 아두이노를 실행해봅니다. 그러면 아래와 같이 뜨는데 오른쪽 아래에 보면 Arduino Uno라고만 되어 있습니다. 아직 COM3 포트와 연결이 안되어서 그렇습니다.
그렇다면 이제 COM3 포트와 연결해보겠습니다. 툴 --> 포트로 들어가면 아까 장치관리자에서 확인했던 COM3 포트가 보입니다. 이 포트를 선택해줍니다.
그러면 아래와 같이 오른쪽 아래에 COM3 포트로 연결된 것을 확인할 수 있습니다.
이제 PC와 연결은 끝났고 아두이노 코딩을 위한 기초지식을 설명하겠습니다.
2. 아두이노 코딩을 위한 기초지식
아두이노를 이용하여 무엇인가를 하려면 크게 4가지 단계로 진행하게 됩니다.
① 아이디어 구상: 아두이노를 이용하면 X하면 Y 하도록 해야겠다. 를 계획합니다.
가령 가스를 탐지하면(X) 알람이 울리도록(Y) 해야겠다. 라든지
사람을 인식하면(X) 자동으로 불이 켜지도록(Y) 해야겠다. 등을 해당됩니다.
② 설계: 회로 설계(아두이노에 붙일 소자 X와 Y를 어떻게 연결할 것인지 설계)
③ 코드 작성: 프로그램(IDE)에 코드 작성
④ 실행: 작성한 코드를 컴파일하여 아두이노에 업로드
여기서 코드 작성을 위한 ③ 부분에 대해 설명하도록 하겠습니다.
아두이노의 코딩은 아래와 같이 크게 3가지 영역을 구분되어 있습니다. (방금 설치한 IDE 하면입니다)
첫 번째는 선언 부분입니다.
위 예제는 SG-90이라고 하는 모터를 돌리기 위한 예제파일입니다.
가장 먼저 나오는 include는 라이브러리를 가져올 때 쓰는 선언문입니다.
왜 라이브러리를 가져올까요?
아두이노는 LED나 간단한 센서 정도는 라이브러리없이도 제어할 수 있습니다.
그러나 조금 복잡한 모듈을 다룰 때에는 해당 모듈과 아듀이노가 서로 호환될 수 있게끔
모듈 제작사에서 만든 라이브러리 파일이 필요하게 됩니다.
즉 SG-90이라는 모터를 아두이노가 제어하기 위해선 제조사에서 만든 라이브러리를 가져와야 하는 것이죠.
그런데 어디서 가져오는 걸까요? 인터넷에서 알아서 찾아서 가져오는걸까요?
아닙니다. 아두이노 설치시 이미 대부분의 라이브러리들까지 저장해놓게 됩니다.
아래를 보면 아두이노 설치 디렉토리에 이미 Servo.h 라는 라이브러리 파일이 있는 것을 확인할 수 있습니다.
바로 이 라이브러리를 가져오라는 명령이 include 라고 보면 됩니다.
만약 여기에 없는 라이브러리가 필요하다면?
그러면 라이브러리 파일을 찾아서 저장해야 합니다.
다행히 아두이노 홈페이지나 github에 많은 라이브러리가 공개되어 있어서 어렵지 않게 찾을 수 있습니다.
그다음 Servo myservo인데 객체지향 프로그래밍에서 객체를 만든 것과 동일합니다.
만약 모터가 2개 달려있다면 아래 처럼 이름을 달리해서 지정해주어 구분하게 됩니다.
Servo myservo1
Servo myservo2
그 외에도 초음파 센서나 조도 센서등 아날로그 input을 받아들이는 핀 번호와
디지털 output할 핀을 선언 부분에서 지정해줍니다.
아래를 보면 sensorPin (아날로그)를 A0에서 받아들이고
LED의 핀을 13번으로 지정해놓은 것을 볼 수 있습니다.
다음으로 설명할 두 번째 영역은 setup() 영역입니다.
이 영역은 초기에 1회만 실행할 코드를 작성하는 부분입니다.
위의 사례에서 pinMode(ledpin, OUTPUT)을 통해 13번 핀에 꽂힌 소자는
출력용도로 쓰겠다 라는 것을 지정하고 있습니다.
만약 pinMode(ledpin, INPUT)이라고 한다면 13번 핀을 input 용도로 쓰겠다는 의미가 됩니다.
(LED로 input은 안될 것 같지만요)
마지막으로 세 번째 영역은 lookup() 영역입니다.
이 영역은 아두이노를 끄기 전 까지 반복적으로 실행할 코드를 적는 부분입니다.
일반적으로 우리가 생각하는 로직은 이 영역에 작성해주게 됩니다.
그 외 IDE 사용시 알아야 할 것은 v 체크와 → 버튼입니다.
v 체크 표시는 컴파일입니다.
즉 소스코드를 기계가 이해할 수 있는 바이너리 코드로 만드는 것입니다.
→ 버튼은 컴파일한 코드를 아두이노로 올리는 버튼입니다.
우리가 작성한 코드가 비로소 upload 되는 겁니다.
이제 IDE에서 소스 작성하는 방법에 대해 알았으니 서보모터를 돌리는 것으로 실습해보도록 하겠습니다.
'IoT' 카테고리의 다른 글
[생활속의 IT] 아두이노#4 - 모터 구동하기 (0) | 2020.03.20 |
---|---|
[생활속의 IT] 아두이노#2 - 핀구성 살펴보기 (0) | 2020.03.16 |
[생활속의 IT] 아두이노#1 - 개념 알아보기 (0) | 2020.03.16 |
댓글