summaryrefslogtreecommitdiff
path: root/Venus_Skeleton/Venus_Skeleton.ino
blob: f98527142b85054905b753c789d881adc5b7b5a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// *****************
// ** DEFINITIONS **
// *****************

// Pin configuration
#define pinSensCompass
#define pinSensObstacleTurret
#define pinSensIRLeft
#define pinSensIRRight
#define pinSensSampleTurret
#define pinSensSampleGripper
#define pinSensBeaconTurret
#define pinSensLab

// Location values
int currValRobotX;
int currValRobotY;

// Sensor values
int currValSensCompass;
int currValSensObstacleTurret;
int currValServoTurret;

// Actuator values
int currValTurret;

// Calibration values
#define calObstacleTurretMaxDist 50
#define calObstacleTurretMinDist 10
#define calIRLeftThreshold 2
#define calIRRightThreshold 2
#define cal

// RPi Data type declarations
enum DataType {COMPASS, OBSTACLETURRET, IRLEFT, IRRIGHT, SAMPLETURRET, SAMPLEGRIPPER, BEACONTURRET, LAB};


// **********************
// ** PI COMMUNICATION **
// **********************

// sendData to Raspberry Pi
void sendData(int method, int data, int data1 = null, int data2 = null) {
  
}


// **********************
// ** SENSOR FUNCTIONS **
// **********************

// sensor Compass, orientation
int sensCompass() {
  int degree = 359;
  sendData(COMPASS, degree);
  return degree;
}

// sensor Ultrasound, distance measurement
int sensObstacleTurret() {
  int distance = 100;
  int turretAngle = 90;
  sendData(OBSTACLETURRET, distance, turretAngle);
  return distance;
}

// sensor IR, line detection
boolean sensIRLeft() {
  // Inaccessible terrain. True for inaccessible, false for accessible
  boolean inaccessible = false;
  if(inaccessible) {
    stopMovement();
    sendData(IRLEFT, currValRobotX, currValRobotY, currValSensCompass);
  }
  return inaccessible;
}
int sensIRRight() {
  // Inaccessible terrain. True for inaccessible, false for accessible
  boolean inaccessible = false;
  if(inaccessible) {
    stopMovement();
    sendData(IRRIGHT, currValRobotX, currValRobotY, currValSensCompass);
  }
  return inaccessible;
}

// sensor IR, sample detection
int sensSampleTurret() {
  boolean sample = false;
  if(sample) {
    stopAllServos();
    sendData(SAMPLETURRET, currValRobotX, currValRobotY, currValSensCompass, currValTurret);
  }
}
int sensSampleGripper() {
  boolean sample = false;
  if(sample) {
    stopAllServos();
    sendData(SAMPLEGRIPPER, currValRobotX, currValRobotY, currValSensCompass);
  }
}

// sensor IR, beacon detection and recognition
int sensBeaconTurret() {
  int beacon = 0;
  if(beacon) {
    // Location
  }
}

// sensor IR, lab detection
int sensLab() {
  return 0;
}

// ************************
// ** ACTUATOR FUNCTIONS **
// ************************

void stopMovement() {
  
}
void stopAllServos() {
  
}

void setup() {
  
}

void loop() {
  
}