본문으로 바로가기

대학교 학생들과 계속 교류하는 기회를 갖고 싶었는데, 좋은 기회가 주어져서 #아두이노 특강을 2일간 진행하였다.

특히, #성결대학교 학생들은 1년간 수업을 함께 하였기에 애정이 많은데, 이후로 여러 모습으로 함께 할 수 있을 듯하여 기대가 되고 감사한 맘이다. 

강의를 준비하며 폴더를 뒤적이다 보니, ' #아두이노 , #라즈베리파이 , #아틱 , #IoT프로젝트 ' 등을 주제로 강의한 자료들이 눈에 띈다. 다소 오~올~드~ 한 느낌도 있지만, 누군가에게는 도움이 될 수도 있을 테니, 아낌없이 공유하기로 한다.

이번 회차는 다양한 오픈소스 하드웨어 중 #아두이노 의 특징을 살펴본다.


아두이노 (Arduino)란 무엇인가?

  • 오픈소스(H/W, S/W)를 기반으로 하여, 단일 보드 마이크로컨트롤러로 구성된 보드와 관련 개발 도구 및 환경이다.
  • 여러 개의 Digital, Analog 입/출력 핀을 제공하며, 센서와 액츄에이터 제어에 사용한다.
  • 소스코드를 sketch 프로그램이라 하며, Arduino IDE를 이용하여 개발한다.

우리가 쉽게 접하게 되는 아두이노 보드는 'UNO"라고 하는 표준 보드인데, 그 외 다양한 호환 보드가 있다.

<아두이노 호환 보드의 예>

호환 보드의 주요 목록은 홈페이지에서 제공하고 있고, 여기서는 매우 간단히 특징을 정리한다.

ㅇ UNO:    아두이노 보드의 기본 모델
ㅇ MEGA:  고 사양 스팩
ㅇ MINI:    소형 장치, 소자 연결 시 납땜 필요
ㅇ NANO:  UNO의 소형화 버전
ㅇ YUN:     Wi-Fi 지원, OpenWRT 리눅스 지원

기타, Arduino ADK 를 지원하는 보드 등 다양한 제품이 존재하므로, 'MCU 종류, I/F 특징, 동작 전압' 등을 고려하여 적절한 보드를 선택한다.


아두이노 UNO의 Product Diagram

 

Arduino Uno - R3

DESCRIPTION This is the extremely popular Arduino Uno R3 - based on the atmega328P processor. It's the perfect Arduino board to get started with. We are now stocking the latest Revision 3. If you're new to Arduino have a look at our Arduino Uno Starter Kit

coolcomponents.co.uk

사용하려는 보드의 H/W적인 특징을 이해하는 것이 IoT 개발에 중요한데, 특히 핀의 배치, 인가 및 동작 전원, 통신 방식 등이 있다.

<주요 핀의 배치, 인가 및 동작 전압, 구조 등을 살펴봐야 한다.>

가장 중요한 전원 관련 구성

  • 전원을 인가할 수 있는 포트와 PIN : Power JACK, USB JACK이 기본이며 '왼쪽의 POWER 영역에 VIN'이 있다.
  • 전원을 제공(출력) 할 수 있는 PIN : '왼쪽의 POWER 영역에 3.3V와 5V 출력 핀'이 있다.
  • 그라운드(Ground) : '왼쪽의 POWER 영역에 GND 핀 2개'가 있고, 우측 상단에 'GND 핀 1개'가 있다.
  • 아두이노의 Data 출력 핀은 5V 레벨로 동작한다. 예를 들면 GPIO 핀 등을 이용하여 신호를 인가하면 '5V가 기본 전압'으로 사용된다. 따라서, 외부 센서 연결 시 주의가 필요하다. 즉, 3.3V 레벨로 동작하는 센서를 연결할 경우 오동작하거나 회로가 망가질 수 있다.

아날로그 입력 핀

  • 왼쪽 아래에 'ANALOG IN 핀이 6개'있고, A0 ~ A5를 아날로그 입력 핀 번호로 사용한다.

동기식 직렬 통신 핀

  • I2C 통신 : A5 핀을 SCL(클럭), A4 핀을 SDA(데이터)로 하여 I2C 통신을 이용할 수 있다.
  • I2C 통신 : 우측 상단에 '28번, 29번'으로 표시된 핀을 각각 SCL, SDA로 하여 I2C 통신을 이용할 수 있다.
  • SPI 통신 : 중앙 한단의  '6개의 핀이 모여 있는 곳'을 보면 'MOSI, MISO, SCK 등'을 위한 PIN이 있고, SPI 통신을 지원한다.
  • SPI 통신 : 우측 상단의 '6개의 핀이 모여 있는 곳'을 보면 'MOSI, MISO, SCK 등'을 위한 PIN이 있고, SPI 통신을 지원한다.

비동기식 직렬 통신 핀 (일단, UART/Serial 통신)

  • 우측 하단에 있는 0번, 1번 핀을 각각 RX, TX로 하여 UART/Serial 통신을 이용할 수 있다.
    아두이노에서는 이를 Hardware Serial이라 하고 'USB Port를 이용한 Serial 통신과 함께 동작'힌다. 즉, '동일한 데이터를 송/수신'하므로 데이터 통신과 디버깅 메시지가 섞이지 않도록 주의해야 한다.

GPIO 핀

  • 우측에 0~13번의 GPIO핀을 이용한다. 이때 보통 0번 핀과 1번 핀은 Hardware Serial로 이용하므로 2번 핀 이후를 사용하게 된다.

아날로그 출력 핀 (PWN 이용)

  • GPI로 이용하는 핀 중 '3, 5, 6, 9, 10, 11' 번 핀을 보면 물결(~) 표시가 있다. 이것은 PWM을 지원하는 것으로 디지털 출력을 조절하여 '아날로그 출력 효과'를 낼 수 있다.

글을 쓰기 시작해서 2주가 되어야 '이 짧은 글을 완료'한다.
별 일이 없는 듯 한 대, 왜 이렇게 바쁜지 T.T

일단, 아두이노의 특징을 간단히 요약해 보았고, 이후 라즈베리 파이도 살펴보기로 한다. 셀프~ 파이팅!!!