R&D Innovation TinyOS의 설치

Download Report

Transcript R&D Innovation TinyOS의 설치

TinyOS 사용법 및 nesC Programming
(USN 관련 교육 자료)
(주) ED
R&D Innovation
교육 순서
1
TinyOS의 개요
2
TinyOS의 설치
3
TinyOS Programming Environment Setting
4
TinyOS Programming
Lesson 1
Blink LEDs
Lesson 2
Sensor Acquisition
Lesson 3
Task Programming
Lesson 4
Send & Receive Message using RF
Lesson 5
How to debug
Lesson 6
Data Display on PC
Lesson 7
Command to node & Broadcasting
Lesson 8
Saving data
R&D Innovation
TinyOs의 개요
■ USN이란?
USN이란 사물이나 사람에 부착된 태그와 센서에서 정보를 감지, 저장, 가공해 인터넷을 통해
전달하고 이를 인간생활에 폭넓게 활용하자는 것이다.
예를 들어 교량에 센서 Zigbee 노드를 달아 교통량이나 바람 때문에 해당 교량이 위험하지
않는지 쉽게 진단할 수 있을 것이다.
이 때 사물(또는 사람)에 부착되는 장치는 단순히 코드정보만 있는 RFID 태그일 수도 있고,
온도·압력·습도 등을 감지하는 컴퓨팅 기능을 갖춘 센서일 수도 있다.
정통부는 이런 USN을 통해 언제 어디서나 정보교류가 가능한 유비쿼터스 사회를 만든다는
계획이며 이에 따라 정통부는 RFID와 USN를 유비쿼터스 사회의 핵심기술로 보고, 핵심기술
개발과 수요활성화를 위한 시범사업을 의욕적으로 펴고 있다.
내년부터 2010년까지 총 사업비 3천994억원(국고 2천974억원)을 들여 인천 경제 자유구역
송도 지식정보산업단지 내 2만4천634평에 RFID/USN 클러스터를 구축할 예정이다.
R&D Innovation
TinyOS의 개요
R&D Innovation
TinyOS의 개요
R&D Innovation
TinyOS의 개요
R&D Innovation
TinyOS의 개요
R&D Innovation
TinyOS의 개요
R&D Innovation
TinyOS의 설치
http://www.tinyos.net
홈페이지 접속
Windows
클릭
R&D Innovation
TinyOS의 설치
http://www.tinyos.net/dist-1.1.0/tinyos/windows/를 type.
R&D Innovation
TinyOS의 설치
Tinyos-1.1.11-3is.exe 를 다운로드한다.
R&D Innovation
TinyOS의 설치
더블클릭하여 실행
다운로드 완료
실행을 클릭
R&D Innovation
TinyOS의 설치
Next
Next
R&D Innovation
TinyOS의 설치
Cygwin 설치가 끝나고 TinyOS
를 설치한다.
Continue
R&D Innovation
TinyOS의 설치
오랜 시간 설치가 끝나면
설치 완료 메시지가 뜬다.
R&D Innovation
TinyOS의 설치
설치가 완료되면 바탕화면에 아이콘이 생성되며,
시작 메뉴에 아래와 같이 나타난다.
Windows Explorer창을 이용해서 Program Files 폴더를 보면
UCB 폴더가 생성되어 있다.
R&D Innovation
TinyOS의 설치
TinyOS 설치 확인
바탕화면의 Cygwin 바로가기를 클릭한다.
R&D Innovation
TinyOS의 설치
AVR Studio의 설치 (Download시 필요)
“Astudio”검색한다.
www.atmel.com
을 접속한다.
AVR Studio 4.12(build 460)을 클릭한다.
R&D Innovation
TinyOS의 설치
AVR Studio의 설치 (Download시 필요)
Next
I agree후
Next
Next
R&D Innovation
TinyOS의 설치
AVR Studio의 설치 (Download시 필요)
Next
R&D Innovation
TinyOS Programming Environment Setting
ED-ZigNet Porting
아직은 USN의 표준이 정립되지 않은 상태이기 때문에 여러 가지 USN
장비들이 출시되고 있다. 그 제품들의 Line-Up을 보면 아래와 같다.
Mote
Name
출시
Clock
CPU
Flash
(Code KB)
RAM
(KB)
Radio
(kBaud)
Radio Type
WeC
1999
4MHz
Atmel
8
0.5
10
RFM
RENE
2000
4MHz
Atmel
8
0.5
10
RFM
DOT
2001
4MHz
Atmel
16
1
10
RFM
MCA
2002
4MHz
Atmel
128
4
40
RFM
MICA2
2003
7MHz
Atmel
128
4
40
Chip
Con
iMote
2003
12MHz
ARM
512
64
460
Zeevo
Con
btNode
2003
12MHz
Atmel
128
4
460
Enicsson
BT
Telos
2004
20MHz
Motorola
60
4
250
ZigBee
MICAz
2004
7MHz
Atmel
128
4
250
ZigBee
R&D Innovation
TinyOS Programming Environment Setting
ED-ZigNet Porting
이처럼 많은 USN Platform들이 출시되었다. 그 중 ED-ZigNet은 가장 최근
에 개발된 Micaz Platform을 사용하고 있다.
동일한 platform을 사용한다는 것은 통신방식, Microprocessor 등이 동일
하다는 것일 뿐이다. 따라서 Microprocessor 주변에 CC2420 chip(ZigBee
Chip)과 연결이라든지 Sensor의 배치 등은 Micaz과 다르다.
따라서 ED-ZigNet만의 Porting이 필요한 것이다.
이러한 porting 과정은 Hardware의 구조와 응용프로그램을 분석함을 통해
서 알 수 있다. 이러한 일련의 과정들을 생략하고, 같이 제공된 CD의 TinyOS
폴더를 복사함으로써 ED-ZigNet의 Porting 과정이 끝나게 된다.
R&D Innovation
TinyOS Programming Environment Setting
ED-ZigNet Porting
R&D Innovation
TinyOS Programming Environment Setting
ED-ZigNet Porting
TinyOS 폴더를 찾아간다.(C:\Porgram Files\UCB\Cygwin\opt\)
R&D Innovation
TinyOS Programming Environment Setting
ED-ZigNet Porting
모두 예(A)
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Blink LEDs
모든 장비가 그러하듯이 가장 먼저 해야 다뤄 보아야 할 부분이다.
장비의 입,출력을 제어하는 방법에 대해 알아본다.
ED-ZigNet에는 기본적으로 두 개의 LED를 가지고 있다.
이중 적색 LED를 깜빡거리는 프로그램을 작성해 보도록 한다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Program Coding
Windows Explorer를 이용하여
C:\Program Files\UCB\Cygwin\opt\tinyos-1.x\apps\ZigNet1\Blink
를 클릭한다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Blink의
Configurature 파일
Blink의
Module 파일
Blink.nc BlinkM.nc SingleTimer.nc파일을 연다
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Ultra Editor를 이용하여 프로그램 소스를
open한다.
필요시 source를 수정한다.
Source 작성은 Text Editor를 이용하여 작성
한다.
Notepad를 이용하여 소스를 open할 경우
source가 Linux 형식이기 때문에 이상하게
보일 수도 있다.
Text Editor tools를 이용하기를 권장한다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Compile
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Compile
Blink 폴더로 이동한다.
$ cd /opt/tinyos-1.x/apps/ZigNet1/Blink/
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Compile
컴파일 한다.
$ make micaz
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Download
제대로 Compile 이 되었는지 확인하다.
$cd build/micaz
폴더가 이동한다.
폴더의 내용을 Display한다.
컴파일이 완료된 후 생성되는 파일들이다.
우리가 ED-ZigNet에 다운로드 할 파일을 main.ihex파일이다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Download
AVR Studio를 실행한다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Download
Tools - Program AVR – Connect… 을 실행한다.
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Download
Programmer Device를 선택한다.
JTAG ICE
Device가 연결된 Com PORT
를 설정한다.
모르겠으면 Auto를 선택한다
R&D Innovation
TinyOS Programming - 1
Lesson 1 Blink LEDs
Download
Device를 선택한다.
ATmega128
Flash 의 …을 누른다
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Sensor Acquisition
우리는 Lesson 1에서 LED를 출력하는 법에 대해 알아보았다.
이번 과제에서는 센서의 입력을 받아들이는 방법에 대해 알아보도록 한다.
S/W를 통해서 입력하는 방법도 있겠지만 USN에서 스위치를 통한 입력은
무의미하다.
왜냐하면
센서네트워크에서는 물리적인 양을 입력받기 때문에 0 혹은 1의 입력은 무
의미 하다 할 수 있다.
여기에서 cds를 통해서 빛의 양을 감지하여 LED를 통해서 Display하는 방
법에 대해 알아보자.
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Program Coding
Windows Explorer를 이용하여
C:\Program Files\UCB\Cygwin\opt\tinyos-1.x\apps\ZigNet1\Sense
를 클릭한다.
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Program Coding
Sense의
Configurature 파일
Sense의
Module 파일
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Compile
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
폴더를 이동한다.
$cd /opt/tinyos-1.x/apps/ZigNet1/Sense
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Compile
$ make micaz 를 입력한다.
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Compile
Compile를 확인한다.
Build/micaz 폴더로 이동한다.
파일을 확인한다.
Main.ihex 파일을 확인한다
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Download
AVR Studio를 실행한다.
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Download
Tools - Program AVR – Connect… 을 실행한다.
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Download
Programmer Device를 선택한다.
JTAG ICE
Device가 연결된 Com PORT
를 설정한다.
모르겠으면 Auto를 선택한다
R&D Innovation
TinyOS Programming - 2
Lesson 2 Sensor Acquisition
Download
Device를 선택한다.
ATmega128
Flash 의 …을 누른다
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Task Programming
우리는 Lesson 2에서 cds를 통해 입력된 데이터를 LED를 이용하여
Display하는 방법에 대해 알아보았다.
이 방법은 센서로 부터 입력이 들어오면 바로 Display하는 방법이다.
즉 센서로부터 Event가 있을 때 바로 응답을 하는 경우이다.
이번 Lesson 3에서는 동일한 실험을 한다.
다만 센서로부터 Event가 있을 경우 동작하는 것이 아니라 Timer에 의해 일
정 시간마다 센서값을 읽어서 Display하는 과정을 알아보도록 한다.
이것이 바로 Task이다.
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Program Coding
Windows Explorer를 이용하여
\opt\tinyos-1.x\apps\ZigNet1\Sensetask
를 클릭한다.
Sense Task의
Configuration파일
Sense Task의
Module파일
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Compile
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
폴더를 이동한다.
$cd /opt/tinyos-1.x/apps/ZigNet1/SenseTask
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Compile
폴더를 이동한다
Compile한다.
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Compile
Compile를 확인한다.
Build/micaz 폴더로 이동한다.
파일을 확인한다.
Main.ihex 파일을 확인한다
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Download
AVR Studio를 실행한다.
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Download
Tools - Program AVR – Connect… 을 실행한다.
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Download
Programmer Device를 선택한다.
JTAG ICE
Device가 연결된 Com PORT
를 설정한다.
모르겠으면 Auto를 선택한다
R&D Innovation
TinyOS Programming - 3
Lesson 3 Task Programming
Download
Device를 선택한다.
ATmega128
Flash 의 …을 누른다
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Send & Receive Message Using RF
우리는 Lesson 3까지 센서로부터 입력을 받는 법과 LED를 통해 출력하는
법에 대해 알아보았다.
이젠 센서네트워크의 기본이 되는 RF(Radio Frequency)에 대해 알아보도
록 한다.
RF를 통해 정수를 전송하고, 그것을 전송 받아서 LED로 display하는 실습을
하도록 한다.
여기에서는 보내는 쪽(Transmission)과 받는 쪽(Receive)의 두 가지
Programming 을 실습한다.
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Program Coding - Transmission
Windows Explorer를 이용하여
\opt\tinyos-1.x\apps\ZigNet1\CntToLedsAndRfm
를 클릭한다.
CntToLedsAndRfm의
Configuration
Module 파일
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Compile - Transmission
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
폴더를 이동한다.
$cd /opt/tinyos-1.x/apps/ZigNet1/CntToLedsAndRfm
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Compile - Transmission
폴더를 이동한다.
$ cd /opt/tinyos-1.x/apps/ZigNet1/CntToLedsAndRfm/
어떤파일이 있는지 본다.
$ ls
컴파일한다.
$ make micaz
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Transmission
AVR Studio를 실행한다.
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Transmission
Programmer Device를 선택한다.
JTAG ICE
Device가 연결된 Com PORT
를 설정한다.
모르겠으면 Auto를 선택한다
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Transmission
Device를 선택한다.
ATmega128
Flash 의 …을 누른다
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Program Coding - Receive
Windows Explorer를 이용하여
\opt\tinyos-1.x\apps\ZigNet1\RfmToLeds
를 클릭한다.
RfmToLeds의
Configuration
Module 파일
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Compile - Receive
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
폴더를 이동한다.
$cd /opt/tinyos-1.x/apps/ZigNet1/RfmToLeds
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Compile - Receive
폴더를 이동한다.
$cd /opt/tinyos-1.x/apps/ZigNet1/RfmToLeds
파일을 한번 본다.
$ls
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Compile - Receive
컴파일 한다.
$make micaz
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Receive
AVR Studio를 실행한다.
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Receive
Programmer Device를 선택한다.
JTAG ICE
Device가 연결된 Com PORT
를 설정한다.
모르겠으면 Auto를 선택한다
R&D Innovation
TinyOS Programming - 4
Lesson 4 Send & Receive Message using RF
Download - Receive
Device를 선택한다.
ATmega128
Flash 의 …을 누른다
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
How to debug
우리는 Lesson 4까지 센서로부터 입력을 받아서 RF를 통해서 그 값을 전송
하고 LED를 통해서 Display하는 방법까지 알아보았다.
지금까지 프로그램 해 온 Source는 이미 제공된 소스를 이용하여 사용하였
다.
그러나 우리가 TinyOS를 이용해서 프로그램 하고자 할 경우에는 반드시 제
공된 source로만 가지고 시행하기 어렵다.
따라서 우리는 새로운 Programming을 해야 한다.
Programming 후 node에 Download하고 결과를 관찰하는데는 여러가지 어
려움이 따른다.
따라서 이러한 일련의 과정들을 Simulation하는 방법을 알아본다.
Simulation은 PC를 통해서 가상으로 node의 움직임을 알 수 있다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Program Coding
Windows Explorer를 이용하여
\opt\tinyos-1.x\apps\ZigNet1\TestTinyViz
를 클릭한다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Compile
바탕화면의 Cygwin 아이콘을 클릭한다.
(시작-Program-Cygwin-Cygwin Bash Shell)
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Compile
폴더를 이동한다.
$ cd /opt/tinyos-1.x/apps/ZigNet1/TestTinyViz
폴더의 내용을 확인한다.
$ ls
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Compile
컴파일한다 (make micaz 이 아닌 make pc이다)
$ make PC
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Compile
폴더를 이동하여 파일을 확인한다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
컴파일을 위해서 Cygwin을 하나 더 연다
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
새로운 Cygwin에 java 폴더를 찾아간다.
$ cd /opt/tinyos-1.x/tools/java
하위의 sim폴더를 찾아간다.
$ cd net/tinyos/sim
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
Java를 컴파일한다..
$ make
이로서 GUI (Graphic User Interface) debug tools가 완성되었다.
이 tinyviz를 Cygwin 어느곳에서도 쓸 수 있도록 /bin 폴더로 copy한다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
Windows Explorer를 이용하여 sim 폴더를 찾아간다.
Tinyviz 를 복사한다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
Windows Explorer를 이용하여 bin 폴더를 찾아간다.
복사한 tinyviz를 붙여넣는다
이제 Cygwin 어디에서도 tinyviz를 실행 시킬 수 있다
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
첫 번째 Cygwin 창에서 컴파일 된 TestTinyviz를 실행 시켜보자
컴파일 할 사용자를 선택한다.
30개의 node를 Simulation 한다.
$ ./main.exe –gui 30
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
두 번째 Cygwin창을 이용해서 TinyViz 파일을 실행한다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
Simulation
TinyViz 프로그램이
실행 되었다.
R&D Innovation
TinyOS Programming - 5
Lesson 5 How to debug
R&D Innovation