Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
200811407 권한길200811409 김미셀200811419 김은정200811453 임이랑
Auto Driving Machine(ADM)Structured AnalysisStructured Analysis
Statement of purpose— 로봇은 기본적으로 직진을 한다— 작동하는 동안 기본적으로“Working” 을 출력한다.— 센서를 통하여 장애물을 인식하며 장애물을 인식하
면 방향을 바꾼다.— 박수소리에 맞춰“Thank you” 소리를 출력한다.— 방향을 바꿀 때에는 소리와 센서의 입력을 무시한
다.— 터치센서로 로봇의 속도를 조절 할 수 있다.— 로봇은 빛 센서에 반응한다.
2
System Context Diagram
ADMControllerSensor
Speak
Motor
Monitor
3
DFD Level 0
ADMController
0
Speak
Motor
Monitor
Sound
Light
Touch
Ultrasonic
Digital clock
Direction/ break
4
DefinitionInput / Output Description Type
Touch sensor Input [A] 사용자가 touch sensor를 touch하였는지 감지 Boolean
Sound Sensor Input [P] sound sensor를 통해 들어오는 소리의 정보 Integer
Light Sensor Input [P] light sensor를 통해 들어오는 밝기의 정보 Integer
Ultrasonic Sensor Input [P] Ultrasonic Sensor를 통해 들어오는 장애물과의 거리정보 Integer
Tick 타이머로서10ms단위로 입력된다
Direction /Break Motor의 움직임정보 Integer
Sound 외부로의 Speak 정보“Night” , “Good morning”, “Thank you”
Screen Display를 통한 외부로의 출력정보 “Working” / “Sleeping”
[A] : Asynchronous, [P] : Periodic5
DFD Level 1 _before
ADMControlSensor
1
ADMControl
Unit2
Information
Touch sensor input
Sound input
Light input
Distanceinput
Tick
sound
Direction/ break
screen
DFD Level 1
ADMController
Light input Direction/ break
7
Save Speed
DFD Level 2 _before
Touch Interface
1.1
SoundInterface
1.2
Light Interface
1.3
UltraInterface
1.4
AMDInput Unit
1.5Information
Touch input
Sound input
Light input
Distance input
DFD Level 2 _before
InformationAMD
Output Unit2.1
Speak Interface
2.2
Motor Interface
2.3
Monitor Interface
2.4
Motor command
Sound
Direction, break
Screen
DFD Level 2Touch
Interface1.1
SoundInterface
1.2
Light Interface
1.3
UltraInterface
1.4
ADMController
1.5
Touch input
Sound input
Light input
Distance input
10
DFD Level 2
ADMController
1.5
Speak Interface
1.6
Motor Interface
1.7
Monitor Interface
1.8
Motor command
Sound
Direction, break
Screen
11
Save Speed
DefinitionName Description
Touch Touch sensor로부터 의 Touch input이 들어옴을 나타내는 정보
Sound Sound sensor로부터의 Sound input이 들어옴을 나타내는 정보
Light Light sensor로부터의 Light input이 들어옴을 나타내는 정보
Distance Ultrasonic sensor로부터 장애물까지의 distance의 정보
Speak command 빛의 크기와 박수소리에 따라 소리출력을 결정한다정보에 따라 “Night” , “Good morning”, “Thank you”로 나눈다.
Motor command빛의 크기와 장애물에 따라 모터의 움직임을 결정한다정보에 따라 Go straight, Turn left, Turn right, Turn180, Break, Stop로 나눈다.
Monitor command 로봇의 동작에 따른 모니터 출력을 결정한다정보에 따라 “Working”, “Sleeping”으로 나눈다.
12
DFD Level 3.1_before
UnitController
2.1.1Information
Forward2.1.2
TurnLeft
2.1.3
TurnRight2.1.4
Turn180
2.1.5
Break2.1.6
Trigger
Tick
Motor command
Motor command
Motor command
Motor command
Motor command
DFD Level 3.1DFD Level 3.1_before
UnitController
2.1.1Information
“GoodMorning”
2.1.7
“Night”2.1.8
“Thank you”2.1.9
“Working”2.1.10
“Sleeping”2.1.11
Trigger
Tick
Speak command
Speak command
Speak command
Monitor command
Monitor command
DFD Level 2.1
UnitController
1.5.1
Forward1.5.2
TurnLeft
1.5.3
TurnRight1.5.4
Turn180
1.5.5
Break1.5.6
Trigger
Motor command
Motor command
Motor command
Motor command
Motor command
15
Save Speed
DFD Level 2.1“Good
Morning”1.5.7
“Night”1.5.8
“Thank you”1.5.9
“Working”1.5.10
“Sleeping”1.5.11
Trigger
Speak command
Speak command
Speak command
Monitor command
Monitor command
16
Save Speed
UnitController
1.5.1
DFD Level 4_before
1.5 2.1.1
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.1.9
2.1.10
2.1.11
Information
1.1
1.2
1.3
1.4
2.2
2.3
2.4
2.1.2
1.5.1
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.5.10
1.5.11
1.1
1.2
1.3
1.4
1.6
1.7
1.8
1.5.2
18
Save Speed
DFD Level 3
19
State Machine
Idle
Forward Turn left Turn 180 Turn right
Break
[Bright <= 40]/Disable “Forward”Enable “Break”
[Bright >40]/Enable “Forward”Disable “Sleep”Enable ”Working”Trigger “Morning”
[Bright>40&&Distance<=10]/Trigger “Forward”
Timeout(1)[Bright>40&&Distance<10 &&direction=2]/Trigger “Turn180”(Speed*50%)
Timeout(0.5)[Bright>40&&Distance<10 &&direction=3] /Trigger “Turn Right” (Speed*50%)
[Bright>40&&Distance>=10]/Enable “Forward”
Timeout(5)[Bright<=40]/Enable “Sleeping” Trigger “Night”
Touch[Light>=40&&distance>10]/Enable “Forward”
[Touch[Light>=40&&distance>10, sound>=70&&U/D=0]/save SpeedEnable “Forward”Trigger “Thank you”
[Touch[Light>=40&&distance>10, sound>=70&&U/D=1]/save SpeedEnable “Forward”Trigger “Thank you”
[Touch[Light>=40&&distance>10, sound>=70]/Enable “Forward”Trigger “Thank you”
[Bright<=40]/Enable “Break”
[Bright>40&&Distance>=10]/Enable “Forward”
Timeout(0.5)[Bright>40&&Distance>=10&&direction=1]/Trigger “Turn left”(Speed*50%)
[Bright<=40]/Enable “Break”
[Bright<=40]/Enable “Break”
Input / Output Description1.1 Touch Interface
Stereotype Asynchronous Function
Input Touch Input
Output (bool)Touch
Process
Touch Input이Touch Sensor에들어오면, 이것을 Boolean 값으로변환하여True/False 로받아들여Touch로보낸다.
Input / Output Description1.2 Sound Interface
Stereotype Synchronous Function
Input Sound Input
Output (int) Sound(1~100)
Process
Sound Input이 Sound Sensor에들어오면, 이것을 Integer 값으로변환하여정수로받아들여Sound로보낸다.
Process Specification
Process SpecificationInput / Output Description
1.3 Light Interface
Stereotype Synchronous Function
Input Light Input
Output (int) Light(1~100)
Process
Light Input이 Light Sensor에들어오면, 이것을 Integer 값으로변환하여정수로받아들여 Light로보낸다.
Input / Output Description1.4 Ultrasonic Interface
Stereotype Synchronous Function
Input Distance Input
Output (int)Distance(0~255)
Process
Ultrasonic Input이 Ultrasonic Sensor에들어오면, 이것을 Integer 값으로변환하여정수로받아들여 Distance로보낸다.
Process SpecificationInput / Output Description
1.5 ADM Controller
Input Touch Input (bool), Sound Input (int), Light Input (int), Distance Input (int)
Output Motor, Monitor, Speak command
Process
Touch Sensor, Sound Sensor, Light Sensor, Ultrasonic Sensor를받아들여그것을 Motor, Monitor, Speak command로보내어출력하게한다.
Process SpecificationInput / Output Description
1.5.1 Unit controller
Input Touch Input (bool), Sound Input (int), Light Input (int), Distance Input (int),
Process
로봇의 움직임을 결정하는 컨트롤러
Input / Output Description
1.5.2 Forward
Input Enable/Disable
Output Motor command
Process
Enable/Disable 이벤트발생시실행된다. Motor command으로정보를보내로봇이전진할것인지를결정한다.
Process SpecificationInput / Output Description
1.5.3 Turn Left
Input Trigger
Output Motor command
Process
Trigger 이벤트발생시실행된다. Motor command으로정보를보내로봇이왼쪽으로돌수있게한다. 방향전환을할때에 Save Speed에저장된속도의 50%의속도로돈다.
Input / Output Description1.5.4 Turn Right
Input Trigger
Output Motor command
Process
Trigger 이벤트발생시실행된다. Motor command으로정보를보내로봇이오른쪽으로돌수있게한다. 방향전환을할때에 Save Speed에저장된속도의 50%의속도로돈다.
Process SpecificationInput / Output Description
1.5.5 Turn 180
Input Enable, Disable
Output Motor command
Process
Trigger 이벤트발생시실행된다. Motor command으로정보를보내로봇이뒤로돌수있게한다. 방향전환을할때에 Save Speed에저장된속도의 50%의속도로돈다.
Input / Output Description1.5.6 Break
Input Enable, Disable
Output Motor command
Process
Enable/Disable 이벤트발생시실행된다. Motor command으로정보를보내로봇이멈출것인지를결정한다.
Process SpecificationInput / Output Description
1.5.7 Good Moring
Input Trigger
Output Speak command
Process
Trigger 이벤트발생시실행된다. Speak command으로정보를보내로봇이 Good Morning 소리를내게한다.
Input / Output Description1.5.8 Night
Input Trigger
Output Speak command
Process
Trigger 이벤트발생시실행된다. Speak command으로정보를보내로봇이 Night 소리를내게한다.
Process SpecificationInput / Output Description
1.5.9 Thank you
Input Trigger
Output Speak command
Process
Trigger 이벤트발생시실행된다. Speak command으로정보를보내로봇이Thank You 소리를내게한다.
Input / Output Description1.5.10 Working
Input Enable/Disable
Output Monitor command
Process
Enable/Disable 이벤트발생시실행된다. Monitor command으로정보를보내로봇이화면에Working을출력하게만든다.
Process SpecificationInput / Output Description
1.5.11 Sleeping
Input Enable/Disable
Output Monitor command
Process
Enable/Disable 이벤트발생시실행된다. Monitor command으로정보를보내로봇이화면에Sleeping을출력하게만든다.
Input / Output Description1.6 Motor Interface
Input Motor command
Output Motor
Process
Motor command을받아서 Motor에직접적인명령을주어로봇이명령대로움직이게한다.
Process SpecificationInput / Output Description
1.7 Speak Interface
Input Speak command
Output Sound
Process
Speak command을받아서 Speak에직접적인명령을주어로봇이명령대로소리를내게한다.
Input / Output Description1.8 Screen Interface
Input Monitor command
Output Screen
Process
Monitor command을받아서 Screen에직접적인명령을주어로봇이명령대로화면을출력하도록한다.
Auto Driving Machine(ADM)Structured DesignStructured Design
Central Transformation(Control)
Structured Chart (Task 설정)
1.5.1
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.5.10
1.5.11
1.1
1.2
1.3
1.4
1.6
1.7
1.8
1.5.2
Afferent Flow(Input)
Efferent Flow(Output)31
Save Speed
Central Transformation(Control)
Structured Chart (Task 설정)
1.5.1
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.5.10
1.5.11
1.1
1.2
1.3
1.4
1.6
1.7
1.8
1.5.2
Afferent Flow(Input)
Efferent Flow(Output)32
Save Speed
Module StructureMain
UnitController
Touch Interface
SLUInterface
Monitor Interface
SpeakInterface
Motor Interface
Touch Sound Light
Distance
33
Monitorcommand
Speakcommand
Monitorcommand
Module Definition
34
모듈 ID Input_Module01 모듈 명 Touch Sensor Interface
모듈 개요 Touch Sensor로부터 들어오는 값을 처리하여 ADM Input Unit으로 전달
인터페이스 Touch sensor_transmission(bool)-Touch Sensor Input을 받아Touch Sensor가 눌렸는지에 대한 여부를 BOOL 값으로 Return (눌렸을 때True, 떼었을 때 False)
모듈 ID Input_Module01 모듈명 Touch Interface
모듈 개요 Touch Sensor로부터 들어오는 값을 처리하여ADM Input Unit으로 전달
인터페이스 Touch_passer(bool)-Touch Sensor Input을 받아Touch Sensor가 눌렸는지에 대한 여부를 BOOL 값으로 Return (눌렸을 때True, 떼었을 때 False)
모듈 ID Input_Module02 모듈명 SLU Interface
모듈 개요 Sound, Light, Ultrasonic Sensor로부터 들어오는 값을 처리하여ADM Input Unit으로 전달
인터페이스 SLU_passer(integer)-Sound, Light, Ultrasonic Input을 Interger 값으로 받아 Sound 일때는 70이상인지를, Light일때는 40이상인지를, Ultrasonic 일때는 10이하인지를 판단한다.
모듈 ID Save_Module 모듈명 ADM Input Unit
모듈 개요 Touch Sensor Interface와 SLU Interface로부터Touch, Sound, Light, Distance를 받아Information이라는 구조체 형태로ADM Output Unit으로 반환.
인터페이스 Inform_passer(bool, integer, string)-Touch, Sound, Light, Distance를 받아 Information으로 Distance, Direction, Sound, Speed, Screen의 형태로ADM Output Unit으로 반환.
Module Definition
35
모듈 ID Input_Module01 모듈 명 Touch Sensor Interface
모듈 개요 Touch Sensor로부터 들어오는 값을 처리하여 ADM Input Unit으로 전달
인터페이스 Touch sensor_transmission(bool)-Touch Sensor Input을 받아Touch Sensor가 눌렸는지에 대한 여부를 BOOL 값으로 Return (눌렸을 때True, 떼었을 때 False)
모듈 ID Control_Module 모듈명 ADM Output Unit
모듈 개요 ADM Input Unit으로 부터 Information을 받아 Motor, Speak, Monitor를 제어함
인터페이스 Whole_order()-Information으로부터 Distance, Direction, Sound, Speed, Screen을 받아 그것으로 Motor, Speak, Monitor Interface를 제어한다.
모듈 ID Output_Module01 모듈명 Monitor Interface
모듈 개요 ADM Output Unit로 제어를 받아 외부의 화면에 출력을 함
인터페이스 Monitor_worker()-화면에 출력할 정보를 받아 Monitor를 동작하게 하는 함수.
모듈 ID Output_Module02 모듈명 Speak Interface
모듈 개요 ADM Output Unit로 제어를 받아 외부의 스피커에 출력을 함
인터페이스 Speak_worker()-스피커에 출력할 정보를 받아 Speak를 동작하게 하는 함수.
Module Definition
36
모듈 ID Input_Module01 모듈 명 Touch Sensor Interface
모듈 개요 Touch Sensor로부터 들어오는 값을 처리하여 ADM Input Unit으로 전달
인터페이스 Touch sensor_transmission(bool)-Touch Sensor Input을 받아Touch Sensor가 눌렸는지에 대한 여부를 BOOL 값으로 Return (눌렸을 때True, 떼었을 때 False)
모듈 ID Output_Module03 모듈명 Motor Interface
모듈 개요 ADM Output Unit로 제어를 받아 외부의 모터를 움직이게 함.
인터페이스 Motor_worker()-모터를 움직이게 할 정보를 받아 Motor를 움직이게 하는 함수.