본문 바로가기

세미나/소프트웨어 세미나

[세미나] 1차시 - 오리엔테이션 + 아두이노 기초

반응형

☞ 진행 날짜 : 2022.07.06
☞ 진행자 : 이광진
☞ 기록자 : 야호선종
☞ IDE : Arduino 1.8.12
☞ 준비물 : PC, Arduino UNO R3, 브레드보드, LED(발광 다이오드), 220Ω 혹은 330Ω 저항 1개




목차

1. 오리엔테이션
2. 아두이노 IDE
3. 첫걸음 떼기
4. 실습 예제

 





① 오리엔테이션

 

※ 아두이노란?

아두이노는 오픈소스를 기반으로 한 단일 보드 마이크로컨트롤러 보드를 의미한다. 아두이노는 다양한 센서를 호환하고, 직접 코딩할 수 있으며 회로를 구성하여 작품을 디자인할 수 있다는 점에서 개발자, 메이커가 많이 사용한다. 또한, 통합 환경 개발(Integrated Development Environment)을 지원함과 동시에 센서를 쉽게 다룰 수 있도록 내장 함수, 라이브러리를 지원하기에 교육용 보드로 적절하다.



※ 아두이노 할 수 있는 것은?

앞서 설명했듯 교육용 보드로 많이 사용되고 있다. 현재 개발자의 프로토타입, 메이커의 작품, 대학생의 캡스톤 디자인뿐만 아니라 초-중-고 교육에서도 SMART 교육이라 하여 4차 산업혁명의 사물인터넷, AI, 딥러닝 등과 함께 교육 프로그램의 한 주축으로 진행되고 있다. 또한, 간단한 코딩과 다양한 센서를 사용할 수 있어 3D 프린터, 드론 또는 로봇의 마이크로컨트롤러 유닛(MCU)으로써 사용되고 있다.



※ 아두이노 보드 시리즈

 

아두이노 우노(좌) - 아두이노 레오나르도(우), 사진 출처 : https://store-usa.arduino.cc/



◎ 아두이노 우노 : 제일 기본적이고 널리 쓰이는 보드이다. 다양한 실드, 센서 등 주변 기기와 호환성이 높다. 아두이노 시리즈에서는 평균적인 성능을 갖고 있으며, USB 2.0 B 타입의 단자를 통해 전원 공급 또는 통신을 할 수 있다.


◎ 아두이노 레오나르도 : ATmega32u4를 메인 칩으로 사용해서 마우스, 키보드 입력 기능을 사용할 수 있다. 우노 보드에 비해 다소 좋은 성능을 갖고 있으며, USB 2.0 micro-B 타입의 단자를 통해 전원 공급 또는 통신을 할 수 있다. 물리적인 핀 수는 우노 보드와 동일하나 디지털 핀에서 아날로그 출력도 지원하는 핀이 있어서 총 12개의 아날로그 입력 핀을 설정할 수 있다는 장점이 있다.


아두이노 나노(좌) - 아두이노 마이크로(우), 사진 출처 : https://store-usa.arduino.cc/



◎ 아두이노 나노 : 우노 보드와 함께 가장 많이 사용되는 보드 중 하나이다. 교육용으로 우노 보드를 사용한다면, 프로토타입 혹은 작품을 만들 때 많이 사용한다 개인적으로 외주 작업을 할 때 나노 보드를 사용했다. USB 2.0 mini-B 타입의 단자를 통해 전원 공급 또는 통신을 할 수 있다. 우노(6개) 보다 아날로그 핀이 2개 더 많다는 장점이 있다.


◎ 아두이노 마이크로 : 아두이노 레오나르도 보드를 소형화한 모델로써 레오나르도 보드와 같은 ATmega32u4를 메인 칩으로 사용하고 있고, USB 2.0 micro-B 타입의 단자를 통해 전원 공급 또는 통신을 할 수 있다. USB를 통해 컴퓨터와 연결하면 가상 시리얼 포트라 불리는 CDC 뿐만 아니라 마우스나 키보드로써 인식될 수 있기 때문에 마우스나 키보드를 제어할 수 있다는 장점이 있다.


각 보드의 데이터 시트 혹은 핀 맵은 아두이노 공식 홈페이지에서 열람할 수 있으니 참고 바란다.


※ 앞으로 학습할 것은?

세미나 진행자 이광진 PPT 中



아두이노와 액츄에이터 또는 센서를 사용하면서 회로를 직접 구성해보거나 아두이노 통합 개발 환경(IDE)을 통해 코딩을 하게 된다. 액츄에이터로는 DC 모터, 서보모터, 엔코더 모터, 기어드 모터 등 다양한 출력 방식의 모터를 다뤄보게 될 것이며, 센서는 로봇 개발에 사용할 적외선 거리센서(PSD)와 초음파 센서로부터 센서 값을 받아 기초적인 제어를 하게 된다.

 


② 아두이노 IDE

 

아두이노 IDE 설치

 

☞ 아두이노 공식 홈페이지 주소

 

Arduino - Home

www.arduino.cc

 

세미나 진행자 이광진 PPT 中




아두이노 IDE 설치는 공식 홈페이지에서 설치하거나 Microsoft Store에서 설치하는 방법 2가지가 있다. 추가로 Tinkercad의 가상 환경에서 아두이노를 (블록 코딩 방식) 제어할 수 있으니 참고 바란다.


 

3D design 틴커캐드 | Tinkercad

3D design 틴커캐드 created by 보람초예준 with Tinkercad

www.tinkercad.com




혹여나 실습 중에 아두이노 개발자가 제공하는 내장 함수나 호환 라이브러리가 궁금한 경우에는 아두이노 공식 홈페이지에서 검색할 수 있으니 참고 바란다.


☞ 아두이노 공식 홈페이지 - Documentation 탭 - Reference 탭

사진 출처 : https://www.arduino.cc/reference/en/





③ 첫걸음 떼기

 

※ 입출력 포트(INPUT / OUTPUT PORT)

편의를 위해서 구별하여 설명하나, 아두이노 핀은 물리적으로 입력-출력 포트가 나뉘어있는 것은 아니다. 내장 함수인 pinMode를 통해 어떤 포트를 입력 포트로 사용할지, 출력 포트로 사용할지 설정할 수 있기 때문이다.

☞ 예시

// 13번 포트를 '입력' 포트로 설정하고 싶을 때
pinMode(13, INPUT);

// 13번 포트를 '출력' 포트로 설정하고 싶을 때
pinMode(13, OUTPUT);




※ 브레드보드(a.k.a 빵판)

세미나 진행자 이광진 PPT 中




※ 아두이노 IDE

세미나 진행자 이광진 PPT 中

 

☞ 알아놓으면 좋은 단축키


◎ CTRL + S : 저장 (가장 중요)
◎ CTRL + R : 소스코드 컴파일
◎ CTRL + U : 소스코드 업로드
◎ CTRL + T : 소스코드 정리(띄어쓰기 또는 들여 쓰기)

◎ TAB : 들여 쓰기
◎ TAB + SHIFT : 들여 쓰기의 반대 방향으로 이동



※ 아두이노 코드의 기본 구성

// 이 곳에는 라이브러리 또는 변수를 선언합니다.

void setup() {
	// 이 사이에는 한 번만 실행되는 코드를 넣습니다.
}

void loop() {
	// 이 사이에는 반복되는 코드를 넣습니다.
}




④ 실습 예제

 

※ 실습 예제 내용

아두이노에 내장된 LED 혹은 LED를 직접 13번 디지털 핀에 연결하여 밝기를 제어한다. 기본 내장 함수인 pinMode와 digitalWrite, delay를 이용하여 LED를 깜빡깜빡해본다.


※ 회로 구성

세미나 진행자 이광진 PPT 中




※ 소스코드

세미나 진행자 이광진 PPT 中




pinMode(핀 번호, 입출력 모드 선택) : 앞서 설명했듯 pinMode 함수는 첫 번째 매개변수인 '핀 번호'에 적힌 핀을 제어한다. 두 번째 매개변수인 '입출력 모드 선택'에 INPUT(입력) 또는 OUTPUT(출력)을 입력하여 입출력 모드를 설정할 수 있다.


digitalWrite(핀 번호, 출력 설정) : 불연속적인 디지털 값을 나타낸다. pinMode 함수와 마찬가지로 첫 번째 매개변수 '핀 번호'에 적힌 핀을 제어하게 된다. 두 번째 매개변수 '출력 설정'에는 HIGH(1) 또는 LOW(0) 상태를 입력하여 해당 '핀 번호'를 제어할 수 있다. 본 예제의 경우 13번 핀의 LED를 HIGH(점등) 하거나 LOW(소등) 할 수 있다.


delay(지연 시간) : delay는 ms(밀리 세컨드) 단위로 첫 번째 매개변수인 '지연 시간'을 정하여 컴파일러가 다음 줄의 코드를 읽기 전에 지연 시간만큼 기다린다. ms는 1/1000초로 1000ms는 1초가 된다. 아두이노 코드에는 delay가 들어가는 순간 나쁜 코드가 된다. 되도록 쓰지 않는 것을 추천하고, 쓰지 않고 코드를 작성하는 것은 기초적인 지식을 습득한 후에 차차 알아가 보는 것으로 한다.




※ 소스코드 업로드 결과

 


소스코드를 업로드한 결과 아두이노 내장 LED가 1초 간격으로 점등 / 소등 반복하는 것을 확인할 수 있다.



☞ 질문이 있다면?

 

Q1. LED 회로를 구성하지 않아도 빛이 나는데요?
A. 디지털 핀 13(D13)은 아두이노 내장 LED와 연결되어 있습니다. 그래서 따로 LED 회로를 구성하지 않아도 됩니다. 보통 아두이노 보드가 잘 작동하는지 확인할 때 사용합니다.


Q2. LED_BUILTIN은 무엇인가요?
A. LED_BUILTIN은 아두이노 내장 LED 핀 번호를 가리키는 말입니다. 우노 보드 기준으로 LED_BUILTIN은 D13이기 때문에 이번 실습에서 회로를 연결하지 않았어도 소스코드대로 작동하는 것을 볼 수 있는 거랍니다.





※ 비밀결사대 앙치킨

 

ㄱㅌㄹ



문의글은 댓글로 남겨주세요.

반응형