김윤지

Upload README file

Showing 1 changed file with 98 additions and 0 deletions
# haptic README.md
본 프로젝트는 *새로운 피드백 요소가 추가된 게임 컨트롤러 제작*을 주제로 2021학년도 1학기에 진행되었다. 열 피드백을 주제로, 각각 높은 온도와 낮은 온도를 어떻게 전달해야 할지에 주안점을 둔다.
## Environment
---
`Unity 2019.4.18f1`
`Arduino 1.8.15 (Windows)`
## Directory
---
`code` Arduino code를 포함한다.
`PADMOTOR.ino` 실제 기기를 구동시키는 코드
`reports` 면담보고서, 기초조사서 등을 포함한다.
`test` 테스트를 위한 Unity 파일을 포함한다.
## Code
---
### PADMOTOR.ino
```c
int Mosfet1 = 7 ; // 펠티어 연결 모스펫 7번포트
int Mosfet2 = 6 ; // 모터 연결 모스펫 6번포트
char data; // 데이터 입력 종류
void setup()
{
Serial.begin(9600);
pinMode(Mosfet1, OUTPUT);
pinMode(Mosfet2, OUTPUT);
}
```
연결 포트를 선언한다. Mosfet1은 펠티어에, Mosfet2는 모터로 연결되었다.
```c
void loop()
{
if(Serial.available()>0) // 입력된 데이터가 있다면
{
data = Serial.read(); // 데이터에 입력값 넣기
}
if(data == 'f') // f를 입력했을 경우 펠티어 모스펫 on
{
digitalWrite(Mosfet1,HIGH);
}
else if(data == 'd') // d를 입력했을 경우 펠티어 모스펫 off
{
digitalWrite(Mosfet1,LOW);
}
else if(data == 's') // s를 입력했을 경우 모터 on
{
digitalWrite(Mosfet2,HIGH);
}
else if(data == 'a') // a를 입력했을 경우 모터 off
{
digitalWrite(Mosfet2,LOW);
}
}
```
각각 `f`, `d`, `s`, `a`의 값을 받아 ON/OFF를 처리하도록 했다.
### SerialHandler.cs
```csharp
public string portName = "COM1";
public int baudRate = 9600;
```
아두이노와 Unity 사이는 유선으로 연결해, 시리얼 통신으로 진행했다.
### Player.cs
Unity 내에서 Player의 움직임에 따라 아두이노로 데이터를 보내는 부분이다.
```csharp
private void OnTriggerEnter(Collider other) {
if (other.name == "ColdSphere") serialHandler.Write("s");
else if (other.name == "HotSphere") serialHandler.Write("f");
}
private void OnTriggerExit(Collider other) {
if (other.name == "ColdSphere") serialHandler.Write("a");
else if (other.name == "HotSphere") serialHandler.Write("d");
}
```
\ No newline at end of file