김윤지

Upload README file

Showing 1 changed file with 98 additions and 0 deletions
1 +# haptic README.md
2 +
3 +본 프로젝트는 *새로운 피드백 요소가 추가된 게임 컨트롤러 제작*을 주제로 2021학년도 1학기에 진행되었다. 열 피드백을 주제로, 각각 높은 온도와 낮은 온도를 어떻게 전달해야 할지에 주안점을 둔다.
4 +
5 +## Environment
6 +
7 +---
8 +
9 +`Unity 2019.4.18f1`
10 +
11 +`Arduino 1.8.15 (Windows)`
12 +
13 +## Directory
14 +
15 +---
16 +
17 +`code` Arduino code를 포함한다.
18 +
19 +`PADMOTOR.ino` 실제 기기를 구동시키는 코드
20 +
21 +`reports` 면담보고서, 기초조사서 등을 포함한다.
22 +
23 +`test` 테스트를 위한 Unity 파일을 포함한다.
24 +
25 +## Code
26 +
27 +---
28 +
29 +### PADMOTOR.ino
30 +
31 +```c
32 +int Mosfet1 = 7 ; // 펠티어 연결 모스펫 7번포트
33 +int Mosfet2 = 6 ; // 모터 연결 모스펫 6번포트
34 +char data; // 데이터 입력 종류
35 +
36 +void setup()
37 +{
38 + Serial.begin(9600);
39 + pinMode(Mosfet1, OUTPUT);
40 + pinMode(Mosfet2, OUTPUT);
41 +}
42 +```
43 +
44 +연결 포트를 선언한다. Mosfet1은 펠티어에, Mosfet2는 모터로 연결되었다.
45 +
46 +```c
47 +void loop()
48 +{
49 + if(Serial.available()>0) // 입력된 데이터가 있다면
50 + {
51 + data = Serial.read(); // 데이터에 입력값 넣기
52 + }
53 +
54 + if(data == 'f') // f를 입력했을 경우 펠티어 모스펫 on
55 + {
56 + digitalWrite(Mosfet1,HIGH);
57 + }
58 + else if(data == 'd') // d를 입력했을 경우 펠티어 모스펫 off
59 + {
60 + digitalWrite(Mosfet1,LOW);
61 + }
62 + else if(data == 's') // s를 입력했을 경우 모터 on
63 + {
64 + digitalWrite(Mosfet2,HIGH);
65 + }
66 + else if(data == 'a') // a를 입력했을 경우 모터 off
67 + {
68 + digitalWrite(Mosfet2,LOW);
69 + }
70 +}
71 +```
72 +
73 +각각 `f`, `d`, `s`, `a`의 값을 받아 ON/OFF를 처리하도록 했다.
74 +
75 +### SerialHandler.cs
76 +
77 +```csharp
78 +public string portName = "COM1";
79 +public int baudRate = 9600;
80 +```
81 +
82 +아두이노와 Unity 사이는 유선으로 연결해, 시리얼 통신으로 진행했다.
83 +
84 +### Player.cs
85 +
86 +Unity 내에서 Player의 움직임에 따라 아두이노로 데이터를 보내는 부분이다.
87 +
88 +```csharp
89 +private void OnTriggerEnter(Collider other) {
90 + if (other.name == "ColdSphere") serialHandler.Write("s");
91 + else if (other.name == "HotSphere") serialHandler.Write("f");
92 +}
93 +
94 +private void OnTriggerExit(Collider other) {
95 + if (other.name == "ColdSphere") serialHandler.Write("a");
96 + else if (other.name == "HotSphere") serialHandler.Write("d");
97 +}
98 +```
...\ No newline at end of file ...\ No newline at end of file