KEMBAR78
IoT with Raspberry Pi + Node JS - Chapter 2 | PPTX
Opensource H/W + Node JS
IoT 따라잡기
Day 2
GPIO 기초
GPIO
GPIO란?
GPIO(General Purpose Input Output)일반
적인 입/출력을 제공하는데, 하나의 단자로
입력 또는 출력이 고정되지 않고 선택적으
로 입력/출력이 가능하다. 하지만 동시에
입력과 출력을 겸용으로 할 수는 없다. 사
용 목적에 따라 먼저 GPIO모드 설정을 해
야합니다.
Raspberry Pi는 21개의 GPIO를 제공하고
있는데, 그 중에 17개는 핀헤드로 구성되어
있고, 나머지 8개는 보드에 핀헤드를 세워
서 사용할 수 있습니다.
SPI
직렬 주변기기 인터페이스 버스
(Serial Peripheral Interface Bus) 또는 SPI 버스
아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처
에 이름을 딴 동기화 직렬 데이터 연결 표준이다. 장치들은
마스터 슬레이브 모드로 통신하며 여기서 마스터 장치는 데
이터 프레임을 초기화한다. 여러 슬레이브 장치들은 개별 슬
레이브 셀렉트 (칩 셀렉트) 라인과 함께 동작할 수 있다.
SCLK: 직렬 클럭 (마스터로부터의 출력)
MOSI; SIMO: 마스터 출력, 슬레이브 입
력 (마스터로부터의 출력)
MISO; SOMI: 마스터 입력, 슬레이브 출
력 (슬레이브로부터의 출력)
SS: 슬레이브 셀렉트 (active low, 마스
터로부터의 출력).
I2C
I²C(Inter-Integrated Circuit, 아이-스퀘어-씨)
필립스에서 개발한 직렬 컴퓨터 버스이며 마더보드, 임베디
드 시스템, 휴대전화등에 저속의 주변 기기를 연결하기 위해
사용된다.
I2C는 이종 컴퓨터간의 데이타 통신을 위해 사용되는 것으로
SPI와 그 목적은 같지만, 클럭선과 데이타선으로 단 두 개만
의 선만으로 통신을 하게된다. 주로 마이크로콘트롤러가 마
스터가 되고, 주변 장치들이 슬레이브가 되어, 주변 장치의
정보를 취득하는 용도로 많이 사용된다
PWM
Pulse Width Modulation
표본화 펄스의 진폭을 일정하고 그 펄스 폭을 전송하고자
하는 신호에 따라 변화 시키는 변조 방식
RS232
...
RS-232는 PC와 음향 커플러, 모뎀 등을 접속하는 직렬 방식
의 인터페이스의 하나이다. 인터페이스는 포트라고도 하여
일반적으로 직렬 포트라고 불리기도 한다.
주변기기의 접속 용도에는 USB, IEEE1394 등과 통신 용도로
는 이더넷(ethernet) 등에 그 역할이 대체되고 있다. 그러나
노이즈에 큰 영향을 받지 않고 먼 곳까지 신호를 전달하고,
단순하게 사용하기 위해서는 아직까지도 유용하다.
Resistor
Resistor
성능이 낮은 전도체의 양쪽 끝 또는 측면에 도선이나 전도체
2개가 붙어있는 형태로 되어있음 단위는 옴(ohm) 이며, 기호
로는 그리스어의 오메가를 사용
- 캐패시터 충전율 제한
- 양극성 트랜지스터와 같은 반도체 부품의 전압 제어
- LED 또는 기타 반도체 부품의 과다 전류 방지
- 다른 부품과 결합하여 사용하는 오디오 회로에서 주파수
응답의 조정 또는 제한
- 디지털 논리 회로에 입력되는 전압의 풀업 저항 또는 풀
다운 저항용
- 회로 내 한 지점에서의 전압 제어용
기본 모듈
Modules
센서(sensor, 문화어: 감지기, 感知器)
영어(sensor)로 직역하면 '느끼는 자'로, 무언가를 감각하는
것을 말한다. 즉, 센서는 무언가를 느끼는 것임을 알 수 있다.
또한 한자(感知器)로 직역하면 '감각하여 알아내는 기계'를
뜻한다. 즉, 센서는 무언가를 느끼고, 그 감각으로부터 무언
가를 알아내는 것이다. 물이 담긴 컵을 손으로 만져서 뜨거
움을 느끼면, 그 컵에는 뜨거운 물이 담겼다는 것을 알아내
는 것과 같이 말이다.
정리하면, 센서(sensor感知器)는 외부에서 발생한 어떤 신호
를 수집하여 알아내는 장치이다.
즉, 빛, 소리, 화학물질, 온도 등과 같은, 감각과 관련된 신호
들을 수집하여 이것들을 과학적인 방법으로 분석하여 외부
의 상태를 알아내는 장치이다.
Sensors
Speaker - Module
3.5 mm (Sound)
USB (Power)
Speaker
amixer cset numid=3 n
오디오 재생은 ANALOG(3.5mm) 혹은 HDMI 를 통해 출력할
수 있다. 기본적으로는 HDMI 케이블이 연결된 경우는 HDMI,
그 이외의 경우는 ANALOG 로 출력되나, 수동으로 출력을
조절할 수 있다.
n은 출력 방식으로, 0 은 Auto, 1 은 Analog, 2 는 HDMI 이
다. ANALOG(3.5mm) 로 출력하고자 하면 다음과 같이 설정
한다.
amixer cset numid=3 1
Speaker
WAV 재생
샘플용 wave 다운로드
wget http://www.freespecialeffects.co.uk/soundfx/sirens/police_s.wav
wav 파일 재생
aplay police_s.wav
Speaker
MP3 재생
패키지 설치
sudo apt-get install mpg321
샘플 다운로드
wget
http://www.freespecialeffects.co.uk/soundfx/household/bub
bling_water_1.mp3
일반 재생
mpg321 bubbling_water_1.mp3
볼륨 50% 재생
mpg321 -g 50 bubbling_water_1.mp3
Speaker
OMXPlayer
패키지 설치 (기본적으로 설치되어 있음)
sudo apt-get install omxplayer
샘플 다운로드
wget http://goo.gl/MOXGX3 -O example.mp3 --no-check-
certificate
일반 재생
omxplayer example.mp3
강제 HDMI 출력 재생
omxplayer -o hdmi example.mp3
강제 HDMI 출력 재생
omxplayer -o local example.mp3
LED
발광 다이오드는 순방향으로
전압을 가했을 때 발광하는 반
도체 소자이다. LED(Light
Emitting Diode)라고도 불린다.
발광 원리는 전계 발광 효과를
이용하고 있다. 또한 수명도 백
열등보다 매우 길다.
발광색은 사용되는 재료에 따
라서 다르며 자외선 영역에서
가시광선, 적외선 영역까지 발
광하는 것을 제조할 수 있다. 일
리노이 대학의 닉 호로니악이
1962년에 최초로 개발하였다.
LED
Source Code
소스 코드
var wpi = require(‘wiring-pi');
var sleep = require(‘sleep’);
wpi.setup ('gpio');
wpi.wiringPiSetup();
wpi.pinMode(3, wpi. OUTPUT);
wpi.pinMode(4, wpi. OUTPUT);
while(true){
wpi.digitalWrite(3, wpi.LOW);
wpi.digitalWrite(4, wpi.HIGH);
sleep.sleep(1);
wpi.digitalWrite(3, wpi.HIGH);
wpi.digitalWrite(4, wpi.LOW);
sleep.sleep(1);
}
Switch
개폐기(開閉器)는 영어식 용어를 그대로 사
용하여 스위치(switch)라고도 하며 전류의
흐름을 막거나 계속 흐르게 하는 용도로 쓰
인다
LED
Source Code
소스 코드
var wpi = require(‘wiring-pi');
wpi.setup ('gpio');
wpi.wiringPiSetup();
wpi.pinMode(2, wpi. INPUT);
wpi.pinMode(3, wpi. OUTPUT);
wpi.pinMode(4, wpi. OUTPUT);
while(true){
if(wpi.digitalRead(2) == wpi.HIGH){
wpi.digitalWrite(3, wpi.HIGH);
wpi.digitalWrite(4, wpi.HIGH);
} else {
wpi.digitalWrite(3, wpi.LOW);
wpi.digitalWrite(4, wpi.LOW);
}
}
USB LED
...
Source Code
소스 코드
var wpi = require(‘wiring-pi');
// Instantiate and initialize.
wpi.pinMode(18, wpi. PWM_OUTPUT);
wpi.digitalWrite(18, wpi.HIGH);
wpi.pwmWrite(18, 200); 회전..
고급 모듈
Sensors
대상에 초음파를 보내고 반사된 초음파를
받아 대상물의 거리, 방향을 검지할 수 있
는 센서.
LCD
Source Code
var wpi = require( 'wiring-pi' );
var sleep = require('sleep');
var microtime = require('microtime');
wpi.setup ('gpio');
wpi.wiringPiSetup();
var trig = 0;
var echo = 2;
wpi.pinMode ( trig, wpi.OUTPUT); // ultra trigger
wpi.pinMode ( echo, wpi.INPUT); // ultra echo
node.js 라이브러리 설치
> npm install wiring-pi
> npm install sleep
> npm install microtime
Source Code
function getDistance(trig, echo){
wpi.digitalWrite (trig , wpi.LOW);
sleep.usleep(2);
wpi.digitalWrite (trig, wpi.HIGH);
sleep.usleep(20);
wpi.digitalWrite (trig, wpi.LOW);
var cnt1 = 0;
var cnt2 = 0;
while(wpi.digitalRead(echo) == wpi.LOW) {
if (cnt1++ > 1000) { break; }
}
var start_time = microtime.now();
while(wpi.digitalRead(echo) == wpi.HIGH) {
if (cnt2++ > 10000) { break; }
}
var end_time = microtime.now();
var travelTime = end_time - start_time;
var distance = travelTime / 58;
return distance;
}
Source Code
소스 코드
LCD
액정 디스플레이 또는 액정 표시장치,
줄여서 LCD(liquid crystal display)는
얇은 디스플레이 장치의 하나이
다. 전력이 적게 소모되기 때문에 휴
대용 장치에 많이 쓰인다.
LCD
반사형 TN(twisted nematic) LCD의 구조
빛을 편광으로 만들기 위한 수직 편광 필름
ITO 전극을 삽입한 유리 기판. 이 전극의
모양이 LCD를 켜거나 껐을 때 나타나는 모
양을 결정한다.
꼬인 네마틱(twisted nematic) 구조의 액정
ITO 전극을 삽입한 유리 기판
빛을 통과시키거나 차단할 수 있는 수평 편
광 필름
보는 사람에게 빛을 내보내기 위한 반사판
LCD
1.Ground
2.VCC - 5v not 3.3v
3.Contrast adjustment (VO) from potentiometer
4.Register Select (RS). RS=0: Command, RS=1: Data
5.Read/Write (R/W). R/W=0: Write, R/W=1: Read (we won't use this pin)
6.Clock (Enable). Falling edge triggered
7.Bit 0 (Not used in 4-bit operation)
8.Bit 1 (Not used in 4-bit operation)
9.Bit 2 (Not used in 4-bit operation)
10.Bit 3 (Not used in 4-bit operation)
11.Bit 4
12.Bit 5
13.Bit 6
14.Bit 7
15.Backlight LED Anode (+)
16.Backlight LED Cathode (-)
LCD
Source Code
lcd = new Lcd({rs:17, e:18, data:[22,23,24,25], cols:16, rows:2}); // pin initialization – broadcom pin
lcd.on('ready', function () {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print('hello circulus');
setTimeout(function(){
lcd.setCursor(0, 1);
lcd.print('RASPBERRY');
},100);
});
// If ctrl+c is hit, free resources and exit.
process.on('SIGINT', function () {
lcd.close();
process.exit();
});
Source Code
소스 코드
Sensors
디지털 온도 및 습도 센서는 온도와 습도
복합 센서의 보정 디지털 신호 출력됩니다.
LCD
Source Code
기본 라이브러리 다운로드
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.38.tar.gz
기본 라이브러리 설치
> tar zxvf bcm2835-1.38.tar.gz
> cd bcm2835-1.38
> ./configure
> make
> sudo make check
> sudo make install
node.js 라이브러리 설치
> npm install node-dht-sensor
Source Code (general)
var sensorLib = require('node-dht-sensor');
var sensor = {
initialize: function () {
return sensorLib.initialize(11, 4);
},
read: function () {
var readout = sensorLib.read();
console.log('Temperature: ' +
readout.temperature.toFixed(2) + 'C, ' +
'humidity: ' + readout.humidity.toFixed(2) + '%');
setTimeout(function () {
sensor.read();
}, 2000);
}
};
Source Code
소스 코드
Sensors
빛의 밝기를 측정하는 조도(照度) 센서
BH1750를 탑재한 GY-302 모듈을 붙여 보
았습니다. I2C 버스 인터페이스를 사용하기
때문에 전원과 SCL과 SDA 신호선만 연결
하면 됩니다. 요즈음 스마트 폰에도 조도
센서가 사용되어 주머니나 가방 같은 곳에
들어 있는 경우와 같이 어두운 곳에서는 화
면을 끄기 위한 용도로 사용되고, 밝은 곳
에서는 화면의 밝기를 더욱 높여 읽기 편하
게 만드는 용도로 사용
LCD
Source Code
I2C, SPI 기능 활성화
기본적으로 I2C, SPI 통신 기능이 block 되어 있으므로, 해당
블랙리스트를 제거해 주어야 한다.
$ sudo nano /etc/modprobe.d/raspi-blacklist.conf
#blacklist spi and i2c by default (many users don’t need
them)
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
Source Code
I2C 설정
I2C 환경 설정용 툴 설치 및 다운로드
$ sudo apt-get install i2c-tools
설정 적용을 위한 재 부팅
$ sudo reboot
모듈 강제 로딩
$ sudo modprobe i2c-dev
커널로 i2c 드라이버 불러오기
$ gpio load i2c
Source Code
I2C 디바이스 확인
$ ls –l /dev/i2c*
i2c-1 에 연결된 디바이스 채널 정보 확인
$ sudo i2cdetect –y 1
BH1750 node.js 모듈 설치
$ npm install bh1750
Source Code
var BH1750 = require('bh1750');
var light = new BH1750();
light.readLight(function(value){
console.log(value);
});
Source Code
소스 코드
Sensors
자이로스코프(gyroscope)는 방향의 측정
또는 유지에 사용되는 기구이다.
자이로스코프는 축이 어느 방향으로든지
놓일 수 있는 회전하는 바퀴이고 로터와 짐
벌로 이루어진 하나의 메커니즘이며 각운
동량 보존법칙에 근거한다. 자이로스코프
가 빠르게 회전할 때에는, 외부에서 토크
(torque; 회전우력)이 주어졌을 때 그 방향
이 회전에 의한 각운동량(angular
momentum)에 의해 회전하지 않을 때보다
훨씬 적게 변화하게 된다. 자이로스코프는
수평 유지 장치인 짐벌에 놓이게 되므로 외
부의 토크는 최소화되며, 장착된 받침이 움
직이더라도 그 방향은 거의 고정되게 된다.
LCD
Source Code
*사전에 I2C 설정이 되어있어야 함
noedjs 패키지 설치
$ npm install mpu6050
Source Code
소스 코드
var mpu6050 = require('mpu6050');
// Instantiate and initialize.
var mpu = new mpu6050();
mpu.initialize();
// Test the connection before using.
if (mpu.testConnection()) {
console.log(mpu.getMotion6());
} // Put the MPU6050 back to sleep.
mpu.setSleepEnabled(1);
Source Code
소스 코드
Servo Motor
서보모터라고 하면 일반적인 모터(원형으
로 빙빙 돌기만 함)와는 달리 움직임을 지
정하면 제어계측 회로에 의해 정확하게 움
직일 수 있는 모터란 뜻이다.
스텝모터를 각도를 조절해서 움직일 수 있
기 때문에 서보모터라고 착각할 수 있는데
회전상태를 파악하는 구조를 갖추지 않아
서보메커니즘이 없기 때문에 서보모터라고
할 수 없다.
무선 조종용 서보모터는 그 자체가 완제품
으로, 그 서보모터에 Horn 이라는 파츠를
달아 와이어링, 특정 파츠를 움직일 수 있
도록 해준다.
서보 컨트롤러는 내부에 내장되어 있고, 토
크 때문에 DC 를 많이 사용한다.
이런 제품들은 특정 포지션으로 이동하는
것을 주 목적으로 하므로, 속도 제어나 토
크 제어는 되지 않는다.
특히, 이런 제품은 제어할 때 PWM 시그널
의 폭을 기준으로 혼의 움직이는 각도가 변
한다.
LCD
Source Code
Source Code
소스 코드
var wpi = require(‘wiring-pi');
// Instantiate and initialize.
wpi.pinMode(18, wpi. PWM_OUTPUT);
wpi.digitalWrite(18, wpi.HIGH);
wpi.pwmWrite(18, 200); 회전..
카메라 활용
Camera
Info Spec
ll resolution 5 Megapixels
Video modes
1080p30, 720p60 and
640x480
Sensor OmniVision OV5647
Sensor resolution 2592 x 1944 pixels
Optical size 1/4"
Horizontal field of view 53.50 +/- 0.13 degrees
Vertical field of view 41.41 +/- 0.11 degress
Focal ratio (F-Stop) 2.9
라즈베리파이에 장착할 수 있는 Pi Camera
를 이용하면 사진 촬영 및 동영상 촬영이
가능하다. OpenCV 와 같은 영상 처리 오픈
소스와 결합하면 얼굴 인식등 다양한 분야
로의 확대가 가능하다.
Source Code
카메라 활성화 하기
$ sudo raspi-config
Enable camera – Enter - Finish
사진 촬영하기
$ raspistill –o cam.jpg
사진 좌우/상하 뒤집기
$ raspistill –vf –hf –o cam2.jpg
Source Code
영상 촬영하기
$ raspivid –o vid.h264
영상 좌우/상하 뒤집기
$ raspivid –hf –vf –o video.h264
10초 동안 비디오 촬영하기
$ raspivid –o video.h264 –t 10000
http://www.raspberrypi.org/documentation/raspbian/applic
ations/camera.md
Advanced
Expand your dimension
Circulus (http://www.circul.us) Since 2013
Park Jonggun, Lee Yunjai, Ki Yeonah, Lee Jonghee

IoT with Raspberry Pi + Node JS - Chapter 2

  • 1.
    Opensource H/W +Node JS IoT 따라잡기 Day 2
  • 2.
  • 3.
    GPIO GPIO란? GPIO(General Purpose InputOutput)일반 적인 입/출력을 제공하는데, 하나의 단자로 입력 또는 출력이 고정되지 않고 선택적으 로 입력/출력이 가능하다. 하지만 동시에 입력과 출력을 겸용으로 할 수는 없다. 사 용 목적에 따라 먼저 GPIO모드 설정을 해 야합니다. Raspberry Pi는 21개의 GPIO를 제공하고 있는데, 그 중에 17개는 핀헤드로 구성되어 있고, 나머지 8개는 보드에 핀헤드를 세워 서 사용할 수 있습니다.
  • 4.
    SPI 직렬 주변기기 인터페이스버스 (Serial Peripheral Interface Bus) 또는 SPI 버스 아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처 에 이름을 딴 동기화 직렬 데이터 연결 표준이다. 장치들은 마스터 슬레이브 모드로 통신하며 여기서 마스터 장치는 데 이터 프레임을 초기화한다. 여러 슬레이브 장치들은 개별 슬 레이브 셀렉트 (칩 셀렉트) 라인과 함께 동작할 수 있다. SCLK: 직렬 클럭 (마스터로부터의 출력) MOSI; SIMO: 마스터 출력, 슬레이브 입 력 (마스터로부터의 출력) MISO; SOMI: 마스터 입력, 슬레이브 출 력 (슬레이브로부터의 출력) SS: 슬레이브 셀렉트 (active low, 마스 터로부터의 출력).
  • 5.
    I2C I²C(Inter-Integrated Circuit, 아이-스퀘어-씨) 필립스에서개발한 직렬 컴퓨터 버스이며 마더보드, 임베디 드 시스템, 휴대전화등에 저속의 주변 기기를 연결하기 위해 사용된다. I2C는 이종 컴퓨터간의 데이타 통신을 위해 사용되는 것으로 SPI와 그 목적은 같지만, 클럭선과 데이타선으로 단 두 개만 의 선만으로 통신을 하게된다. 주로 마이크로콘트롤러가 마 스터가 되고, 주변 장치들이 슬레이브가 되어, 주변 장치의 정보를 취득하는 용도로 많이 사용된다
  • 6.
    PWM Pulse Width Modulation 표본화펄스의 진폭을 일정하고 그 펄스 폭을 전송하고자 하는 신호에 따라 변화 시키는 변조 방식
  • 7.
    RS232 ... RS-232는 PC와 음향커플러, 모뎀 등을 접속하는 직렬 방식 의 인터페이스의 하나이다. 인터페이스는 포트라고도 하여 일반적으로 직렬 포트라고 불리기도 한다. 주변기기의 접속 용도에는 USB, IEEE1394 등과 통신 용도로 는 이더넷(ethernet) 등에 그 역할이 대체되고 있다. 그러나 노이즈에 큰 영향을 받지 않고 먼 곳까지 신호를 전달하고, 단순하게 사용하기 위해서는 아직까지도 유용하다.
  • 8.
  • 9.
    Resistor 성능이 낮은 전도체의양쪽 끝 또는 측면에 도선이나 전도체 2개가 붙어있는 형태로 되어있음 단위는 옴(ohm) 이며, 기호 로는 그리스어의 오메가를 사용 - 캐패시터 충전율 제한 - 양극성 트랜지스터와 같은 반도체 부품의 전압 제어 - LED 또는 기타 반도체 부품의 과다 전류 방지 - 다른 부품과 결합하여 사용하는 오디오 회로에서 주파수 응답의 조정 또는 제한 - 디지털 논리 회로에 입력되는 전압의 풀업 저항 또는 풀 다운 저항용 - 회로 내 한 지점에서의 전압 제어용
  • 10.
  • 11.
  • 12.
    센서(sensor, 문화어: 감지기,感知器) 영어(sensor)로 직역하면 '느끼는 자'로, 무언가를 감각하는 것을 말한다. 즉, 센서는 무언가를 느끼는 것임을 알 수 있다. 또한 한자(感知器)로 직역하면 '감각하여 알아내는 기계'를 뜻한다. 즉, 센서는 무언가를 느끼고, 그 감각으로부터 무언 가를 알아내는 것이다. 물이 담긴 컵을 손으로 만져서 뜨거 움을 느끼면, 그 컵에는 뜨거운 물이 담겼다는 것을 알아내 는 것과 같이 말이다. 정리하면, 센서(sensor感知器)는 외부에서 발생한 어떤 신호 를 수집하여 알아내는 장치이다. 즉, 빛, 소리, 화학물질, 온도 등과 같은, 감각과 관련된 신호 들을 수집하여 이것들을 과학적인 방법으로 분석하여 외부 의 상태를 알아내는 장치이다. Sensors
  • 13.
    Speaker - Module 3.5mm (Sound) USB (Power)
  • 14.
    Speaker amixer cset numid=3n 오디오 재생은 ANALOG(3.5mm) 혹은 HDMI 를 통해 출력할 수 있다. 기본적으로는 HDMI 케이블이 연결된 경우는 HDMI, 그 이외의 경우는 ANALOG 로 출력되나, 수동으로 출력을 조절할 수 있다. n은 출력 방식으로, 0 은 Auto, 1 은 Analog, 2 는 HDMI 이 다. ANALOG(3.5mm) 로 출력하고자 하면 다음과 같이 설정 한다. amixer cset numid=3 1
  • 15.
    Speaker WAV 재생 샘플용 wave다운로드 wget http://www.freespecialeffects.co.uk/soundfx/sirens/police_s.wav wav 파일 재생 aplay police_s.wav
  • 16.
    Speaker MP3 재생 패키지 설치 sudoapt-get install mpg321 샘플 다운로드 wget http://www.freespecialeffects.co.uk/soundfx/household/bub bling_water_1.mp3 일반 재생 mpg321 bubbling_water_1.mp3 볼륨 50% 재생 mpg321 -g 50 bubbling_water_1.mp3
  • 17.
    Speaker OMXPlayer 패키지 설치 (기본적으로설치되어 있음) sudo apt-get install omxplayer 샘플 다운로드 wget http://goo.gl/MOXGX3 -O example.mp3 --no-check- certificate 일반 재생 omxplayer example.mp3 강제 HDMI 출력 재생 omxplayer -o hdmi example.mp3 강제 HDMI 출력 재생 omxplayer -o local example.mp3
  • 18.
    LED 발광 다이오드는 순방향으로 전압을가했을 때 발광하는 반 도체 소자이다. LED(Light Emitting Diode)라고도 불린다. 발광 원리는 전계 발광 효과를 이용하고 있다. 또한 수명도 백 열등보다 매우 길다. 발광색은 사용되는 재료에 따 라서 다르며 자외선 영역에서 가시광선, 적외선 영역까지 발 광하는 것을 제조할 수 있다. 일 리노이 대학의 닉 호로니악이 1962년에 최초로 개발하였다.
  • 19.
  • 20.
    Source Code 소스 코드 varwpi = require(‘wiring-pi'); var sleep = require(‘sleep’); wpi.setup ('gpio'); wpi.wiringPiSetup(); wpi.pinMode(3, wpi. OUTPUT); wpi.pinMode(4, wpi. OUTPUT); while(true){ wpi.digitalWrite(3, wpi.LOW); wpi.digitalWrite(4, wpi.HIGH); sleep.sleep(1); wpi.digitalWrite(3, wpi.HIGH); wpi.digitalWrite(4, wpi.LOW); sleep.sleep(1); }
  • 21.
    Switch 개폐기(開閉器)는 영어식 용어를그대로 사 용하여 스위치(switch)라고도 하며 전류의 흐름을 막거나 계속 흐르게 하는 용도로 쓰 인다
  • 22.
  • 23.
    Source Code 소스 코드 varwpi = require(‘wiring-pi'); wpi.setup ('gpio'); wpi.wiringPiSetup(); wpi.pinMode(2, wpi. INPUT); wpi.pinMode(3, wpi. OUTPUT); wpi.pinMode(4, wpi. OUTPUT); while(true){ if(wpi.digitalRead(2) == wpi.HIGH){ wpi.digitalWrite(3, wpi.HIGH); wpi.digitalWrite(4, wpi.HIGH); } else { wpi.digitalWrite(3, wpi.LOW); wpi.digitalWrite(4, wpi.LOW); } }
  • 24.
  • 25.
    Source Code 소스 코드 varwpi = require(‘wiring-pi'); // Instantiate and initialize. wpi.pinMode(18, wpi. PWM_OUTPUT); wpi.digitalWrite(18, wpi.HIGH); wpi.pwmWrite(18, 200); 회전..
  • 26.
  • 27.
    Sensors 대상에 초음파를 보내고반사된 초음파를 받아 대상물의 거리, 방향을 검지할 수 있 는 센서.
  • 28.
  • 29.
    Source Code var wpi= require( 'wiring-pi' ); var sleep = require('sleep'); var microtime = require('microtime'); wpi.setup ('gpio'); wpi.wiringPiSetup(); var trig = 0; var echo = 2; wpi.pinMode ( trig, wpi.OUTPUT); // ultra trigger wpi.pinMode ( echo, wpi.INPUT); // ultra echo node.js 라이브러리 설치 > npm install wiring-pi > npm install sleep > npm install microtime
  • 30.
    Source Code function getDistance(trig,echo){ wpi.digitalWrite (trig , wpi.LOW); sleep.usleep(2); wpi.digitalWrite (trig, wpi.HIGH); sleep.usleep(20); wpi.digitalWrite (trig, wpi.LOW); var cnt1 = 0; var cnt2 = 0; while(wpi.digitalRead(echo) == wpi.LOW) { if (cnt1++ > 1000) { break; } } var start_time = microtime.now(); while(wpi.digitalRead(echo) == wpi.HIGH) { if (cnt2++ > 10000) { break; } } var end_time = microtime.now(); var travelTime = end_time - start_time; var distance = travelTime / 58; return distance; }
  • 31.
  • 32.
    LCD 액정 디스플레이 또는액정 표시장치, 줄여서 LCD(liquid crystal display)는 얇은 디스플레이 장치의 하나이 다. 전력이 적게 소모되기 때문에 휴 대용 장치에 많이 쓰인다.
  • 33.
    LCD 반사형 TN(twisted nematic)LCD의 구조 빛을 편광으로 만들기 위한 수직 편광 필름 ITO 전극을 삽입한 유리 기판. 이 전극의 모양이 LCD를 켜거나 껐을 때 나타나는 모 양을 결정한다. 꼬인 네마틱(twisted nematic) 구조의 액정 ITO 전극을 삽입한 유리 기판 빛을 통과시키거나 차단할 수 있는 수평 편 광 필름 보는 사람에게 빛을 내보내기 위한 반사판
  • 34.
    LCD 1.Ground 2.VCC - 5vnot 3.3v 3.Contrast adjustment (VO) from potentiometer 4.Register Select (RS). RS=0: Command, RS=1: Data 5.Read/Write (R/W). R/W=0: Write, R/W=1: Read (we won't use this pin) 6.Clock (Enable). Falling edge triggered 7.Bit 0 (Not used in 4-bit operation) 8.Bit 1 (Not used in 4-bit operation) 9.Bit 2 (Not used in 4-bit operation) 10.Bit 3 (Not used in 4-bit operation) 11.Bit 4 12.Bit 5 13.Bit 6 14.Bit 7 15.Backlight LED Anode (+) 16.Backlight LED Cathode (-)
  • 35.
  • 36.
    Source Code lcd =new Lcd({rs:17, e:18, data:[22,23,24,25], cols:16, rows:2}); // pin initialization – broadcom pin lcd.on('ready', function () { lcd.clear(); lcd.setCursor(0, 0); lcd.print('hello circulus'); setTimeout(function(){ lcd.setCursor(0, 1); lcd.print('RASPBERRY'); },100); }); // If ctrl+c is hit, free resources and exit. process.on('SIGINT', function () { lcd.close(); process.exit(); });
  • 37.
  • 38.
    Sensors 디지털 온도 및습도 센서는 온도와 습도 복합 센서의 보정 디지털 신호 출력됩니다.
  • 39.
  • 40.
    Source Code 기본 라이브러리다운로드 wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.38.tar.gz 기본 라이브러리 설치 > tar zxvf bcm2835-1.38.tar.gz > cd bcm2835-1.38 > ./configure > make > sudo make check > sudo make install node.js 라이브러리 설치 > npm install node-dht-sensor
  • 41.
    Source Code (general) varsensorLib = require('node-dht-sensor'); var sensor = { initialize: function () { return sensorLib.initialize(11, 4); }, read: function () { var readout = sensorLib.read(); console.log('Temperature: ' + readout.temperature.toFixed(2) + 'C, ' + 'humidity: ' + readout.humidity.toFixed(2) + '%'); setTimeout(function () { sensor.read(); }, 2000); } };
  • 42.
  • 43.
    Sensors 빛의 밝기를 측정하는조도(照度) 센서 BH1750를 탑재한 GY-302 모듈을 붙여 보 았습니다. I2C 버스 인터페이스를 사용하기 때문에 전원과 SCL과 SDA 신호선만 연결 하면 됩니다. 요즈음 스마트 폰에도 조도 센서가 사용되어 주머니나 가방 같은 곳에 들어 있는 경우와 같이 어두운 곳에서는 화 면을 끄기 위한 용도로 사용되고, 밝은 곳 에서는 화면의 밝기를 더욱 높여 읽기 편하 게 만드는 용도로 사용
  • 44.
  • 45.
    Source Code I2C, SPI기능 활성화 기본적으로 I2C, SPI 통신 기능이 block 되어 있으므로, 해당 블랙리스트를 제거해 주어야 한다. $ sudo nano /etc/modprobe.d/raspi-blacklist.conf #blacklist spi and i2c by default (many users don’t need them) #blacklist spi-bcm2708 #blacklist i2c-bcm2708
  • 46.
    Source Code I2C 설정 I2C환경 설정용 툴 설치 및 다운로드 $ sudo apt-get install i2c-tools 설정 적용을 위한 재 부팅 $ sudo reboot 모듈 강제 로딩 $ sudo modprobe i2c-dev 커널로 i2c 드라이버 불러오기 $ gpio load i2c
  • 47.
    Source Code I2C 디바이스확인 $ ls –l /dev/i2c* i2c-1 에 연결된 디바이스 채널 정보 확인 $ sudo i2cdetect –y 1 BH1750 node.js 모듈 설치 $ npm install bh1750
  • 48.
    Source Code var BH1750= require('bh1750'); var light = new BH1750(); light.readLight(function(value){ console.log(value); });
  • 49.
  • 50.
    Sensors 자이로스코프(gyroscope)는 방향의 측정 또는유지에 사용되는 기구이다. 자이로스코프는 축이 어느 방향으로든지 놓일 수 있는 회전하는 바퀴이고 로터와 짐 벌로 이루어진 하나의 메커니즘이며 각운 동량 보존법칙에 근거한다. 자이로스코프 가 빠르게 회전할 때에는, 외부에서 토크 (torque; 회전우력)이 주어졌을 때 그 방향 이 회전에 의한 각운동량(angular momentum)에 의해 회전하지 않을 때보다 훨씬 적게 변화하게 된다. 자이로스코프는 수평 유지 장치인 짐벌에 놓이게 되므로 외 부의 토크는 최소화되며, 장착된 받침이 움 직이더라도 그 방향은 거의 고정되게 된다.
  • 51.
  • 52.
    Source Code *사전에 I2C설정이 되어있어야 함 noedjs 패키지 설치 $ npm install mpu6050
  • 53.
    Source Code 소스 코드 varmpu6050 = require('mpu6050'); // Instantiate and initialize. var mpu = new mpu6050(); mpu.initialize(); // Test the connection before using. if (mpu.testConnection()) { console.log(mpu.getMotion6()); } // Put the MPU6050 back to sleep. mpu.setSleepEnabled(1);
  • 54.
  • 55.
    Servo Motor 서보모터라고 하면일반적인 모터(원형으 로 빙빙 돌기만 함)와는 달리 움직임을 지 정하면 제어계측 회로에 의해 정확하게 움 직일 수 있는 모터란 뜻이다. 스텝모터를 각도를 조절해서 움직일 수 있 기 때문에 서보모터라고 착각할 수 있는데 회전상태를 파악하는 구조를 갖추지 않아 서보메커니즘이 없기 때문에 서보모터라고 할 수 없다. 무선 조종용 서보모터는 그 자체가 완제품 으로, 그 서보모터에 Horn 이라는 파츠를 달아 와이어링, 특정 파츠를 움직일 수 있 도록 해준다. 서보 컨트롤러는 내부에 내장되어 있고, 토 크 때문에 DC 를 많이 사용한다. 이런 제품들은 특정 포지션으로 이동하는 것을 주 목적으로 하므로, 속도 제어나 토 크 제어는 되지 않는다. 특히, 이런 제품은 제어할 때 PWM 시그널 의 폭을 기준으로 혼의 움직이는 각도가 변 한다.
  • 56.
  • 57.
  • 58.
    Source Code 소스 코드 varwpi = require(‘wiring-pi'); // Instantiate and initialize. wpi.pinMode(18, wpi. PWM_OUTPUT); wpi.digitalWrite(18, wpi.HIGH); wpi.pwmWrite(18, 200); 회전..
  • 59.
  • 60.
    Camera Info Spec ll resolution5 Megapixels Video modes 1080p30, 720p60 and 640x480 Sensor OmniVision OV5647 Sensor resolution 2592 x 1944 pixels Optical size 1/4" Horizontal field of view 53.50 +/- 0.13 degrees Vertical field of view 41.41 +/- 0.11 degress Focal ratio (F-Stop) 2.9 라즈베리파이에 장착할 수 있는 Pi Camera 를 이용하면 사진 촬영 및 동영상 촬영이 가능하다. OpenCV 와 같은 영상 처리 오픈 소스와 결합하면 얼굴 인식등 다양한 분야 로의 확대가 가능하다.
  • 61.
    Source Code 카메라 활성화하기 $ sudo raspi-config Enable camera – Enter - Finish 사진 촬영하기 $ raspistill –o cam.jpg 사진 좌우/상하 뒤집기 $ raspistill –vf –hf –o cam2.jpg
  • 62.
    Source Code 영상 촬영하기 $raspivid –o vid.h264 영상 좌우/상하 뒤집기 $ raspivid –hf –vf –o video.h264 10초 동안 비디오 촬영하기 $ raspivid –o video.h264 –t 10000 http://www.raspberrypi.org/documentation/raspbian/applic ations/camera.md
  • 63.
  • 64.
    Expand your dimension Circulus(http://www.circul.us) Since 2013 Park Jonggun, Lee Yunjai, Ki Yeonah, Lee Jonghee