포털:고등학교/과학 계열 전문 교과/정보과학(2015 개정)/피지컬 컴퓨팅
피지컬 컴퓨팅
[편집]피지컬 컴퓨팅은 소프트웨어와 하드웨어를 사용해 아날로그 세상의 정보를 입력받고, 그러한 정보들을 디지털 컴퓨터로 처리하여 다시 실제 세상에 반응하도록 하는 상호적인 피지컬 시스템을 구현하는 넓은 의미의 개념이다. 피지컬 컴퓨팅은 빛, 소리 및 조도 센서 등으로 입력을 받아들이고, 모터나 LED 등으로 출력하는 것과 같이 많은 일들을 할 수 있다. 이는 계속 발전하고 있는 사물인터넷의 기반이 될 수 있으므로 미래의 산업 인력을 교육하는데 중요한 역할을 할 수 있을 것으로 기대되고 있다.
피지컬 컴퓨팅의 대표적인 활용 예시로는
- 웨어러블 장치
- 사물인터넷
- 도난 경보기
- 쿼드롭터
등이 있다. 피지컬 컴퓨팅을 자동화된 교통 신호 시스템이나 공장 자동화 시스템과 같은 것을 대표적으로 생각할 수도 있지만, 사람의 생활과 디지털 세상을 연결시키는 모든 창의적인 소프트웨어와 하드웨어의 조합이라고 할 수 있다.
구성 요소
[편집]마이크로컨트롤러
[편집]- 컴퓨터의 CPU와 같이 입력되는 데이터들을 입출력하고 처리하는 장치
- 마이크로프로세서, 입출력 모듈, 기억 장치를 모두 포함
센서와 액추에이터
[편집]- 컴퓨터의 입력 장치, 출력 장치와 같이 센서를 통해 현실의 아날로그/디지털 정보를 입력받고, 액추에이터를 통해 다한 형태의 반응을을 실세계로 출력하는 장치
아두이노 프로그램
[편집]- 마이크로컨트롤러와 입출력 포트들이 구성되어 있는 플랫폼
아두이노 프로그래밍
[편집]- 센서-액추에이터 입출력 회로 구성 : 극성에 맞추어 전원을 배선한다. 내부적으로는 브레드보드를 사용해 센서와 액추에이터들을 연결하는 하드웨어 회로를 자유롭게 구성할 수 있다.
- 아두이노 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( )
[편집]- void setup( ): 안에 들어가는 코드는 프로그램이 시작될 때 한 번만 실행되며, 주로 초기 설정과 같은 코드를 넣어준다.
- void loop( ): 안에 들어가는 코드는 void setup( )이 실행된 후 반복적으로 사용되는 코드이다. 프로그램의 주된 명령어들이 들어간다.
중괄호
[편집]함수 혹은 여러 명령을 하나로 묶기 위해 사용한다.
세미콜론
[편집]명령의 끝을 나타낸다.
if
[편집]조건의 참과 거짓문을 표현하는 방법이다.
함수
[편집]아두이노 보드를 제어하고 계산을 수행하기 위해 기능한다.
digitalRead( )
[편집]디지털 핀의 HIGH/LOW 값을 읽는다.
digitalWrite( )
[편집]디지털 핀의 HIGH/LOW 값을 입력한다.
pinMode( )
[편집]특정 디지털 핀의 입출력 상태를 결정한다.
delay( )
[편집]현재 상태로 유지하는 시간을 결정한다/단위:밀리초.
변수
[편집]아두이노의 데이터 타입과 상수들을 의미한다.
HIGH/LOW
[편집]정수 값을 대변한다. 5V 또는 3V를 기준으로 한다.