포털:고등학교/과학 계열 전문 교과/정보과학(2015 개정)/피지컬 컴퓨팅

피지컬 컴퓨팅

편집

피지컬 컴퓨팅은 소프트웨어와 하드웨어를 사용해 아날로그 세상의 정보를 입력받고, 그러한 정보들을 디지털 컴퓨터로 처리하여 다시 실제 세상에 반응하도록 하는 상호적인 피지컬 시스템을 구현하는 넓은 의미의 개념이다. 피지컬 컴퓨팅은 빛, 소리 및 조도 센서 등으로 입력을 받아들이고, 모터나 LED 등으로 출력하는 것과 같이 많은 일들을 할 수 있다. 이는 계속 발전하고 있는 사물인터넷의 기반이 될 수 있으므로 미래의 산업 인력을 교육하는데 중요한 역할을 할 수 있을 것으로 기대되고 있다.

피지컬 컴퓨팅의 대표적인 활용 예시로는

  • 웨어러블 장치
  • 사물인터넷
  • 도난 경보기
  • 쿼드롭터

등이 있다. 피지컬 컴퓨팅을 자동화된 교통 신호 시스템이나 공장 자동화 시스템과 같은 것을 대표적으로 생각할 수도 있지만, 사람의 생활과 디지털 세상을 연결시키는 모든 창의적인 소프트웨어와 하드웨어의 조합이라고 할 수 있다.


구성 요소

편집

마이크로컨트롤러

편집
  • 컴퓨터의 CPU와 같이 입력되는 데이터들을 입출력하고 처리하는 장치
  • 마이크로프로세서, 입출력 모듈, 기억 장치를 모두 포함

센서와 액추에이터

편집
  • 컴퓨터의 입력 장치, 출력 장치와 같이 센서를 통해 현실의 아날로그/디지털 정보를 입력받고, 액추에이터를 통해 다한 형태의 반응을을 실세계로 출력하는 장치

아두이노 프로그램

편집
  • 마이크로컨트롤러와 입출력 포트들이 구성되어 있는 플랫폼

아두이노 프로그래밍

편집
  1. 센서-액추에이터 입출력 회로 구성 : 극성에 맞추어 전원을 배선한다. 내부적으로는 브레드보드를 사용해 센서와 액추에이터들을 연결하는 하드웨어 회로를 자유롭게 구성할 수 있다.
  2. 아두이노 IDE 시작하기 : 하드웨어 회로를 구성하고 나면 아두이노 IDE를 이용해 코드를 작성하고 컴파일하여 업로드할 수 있다. 한 번 업로드된 프로그램은 재업로드하지 않는 이상 계속 저장되어 있게 된다.


설계 및 구현

편집

HIGH/LOW 출력

편집

피지컬 컴퓨팅 시스템은 기본적으로 디지털 또는 아날로그 이입력 형태의 센서로부터의 전류 변화를, 디지털 데이터로 변환하여 처리하고, 그 결과를 이용해 여러 가지 디지털 액추에이터로 출력하는 방법으로 설계하고 구현한다. 아두이노 로그램에서 사용되는 가장 간단한 출력은 HIGH/LOW이다. 디지털 출력 포트를 통해, HIGH/LOW로 표현되는 전압을 걸어 줄 수 있는데, 디지털 출력 포트를 통해 HIGH를 설정하면 제공되는 전압에 따라 5V, 3.3V의 전압이 출력된다.

HIGH/LOW 입력

편집

아두이노 기반의 플랫폼에서 입력 포트로 측정되는 전압은 5V 전압에서는 3V보다 높은 전압을 HIGH로, 3.3V 전압에서는 2V보다 높은 전압을 HIGH로 표현하고 처리하며, 그보다 낮은 전압은 LOW로 표현하고 처리한다.

아날로그 입력

편집

아두이노 기반의 플랫폼에서 아날로그 입력 포트를 통해 측정되는 0~5V의 전압은 기본적으로 0~1023의 정숫값 범위로 변환되어 입력된다.

직렬 통신

편집

센서를 통해 입력되는 값들이나 원하는 데이터를 다른 기기들로 전송할 수 있다. 가장 간단한 데이터 통신 방법은 USB와 같은 포트에서 사용하는 직렬 통신을 이용하는 것이다.

아두이노 프로그램의 기본구조

편집

아두이노 프로그램은 크게 void setup( )과 void loop( ), 중괄호, 세미콜론 등의 기본 요소로 구성되어있다.

void setup( ), void loop( )

편집
  1. void setup( ): 안에 들어가는 코드는 프로그램이 시작될 때 한 번만 실행되며, 주로 초기 설정과 같은 코드를 넣어준다.
  2. void loop( ): 안에 들어가는 코드는 void setup( )이 실행된 후 반복적으로 사용되는 코드이다. 프로그램의 주된 명령어들이 들어간다.

중괄호

편집

함수 혹은 여러 명령을 하나로 묶기 위해 사용한다.

세미콜론

편집

명령의 끝을 나타낸다.

조건의 참과 거짓문을 표현하는 방법이다.

함수

편집

아두이노 보드를 제어하고 계산을 수행하기 위해 기능한다.

digitalRead( )

편집

디지털 핀의 HIGH/LOW 값을 읽는다.

digitalWrite( )

편집

디지털 핀의 HIGH/LOW 값을 입력한다.

pinMode( )

편집

특정 디지털 핀의 입출력 상태를 결정한다.

delay( )

편집

현재 상태로 유지하는 시간을 결정한다/단위:밀리초.

변수

편집

아두이노의 데이터 타입과 상수들을 의미한다.

HIGH/LOW

편집

정수 값을 대변한다. 5V 또는 3V를 기준으로 한다.

INPUT/OUTPUT

편집