-
Notifications
You must be signed in to change notification settings - Fork 0
/
Balanceboard.ino
82 lines (55 loc) · 1.31 KB
/
Balanceboard.ino
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
//main file
//include libraries
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Mouse.h"
#include "Wire.h"
//set cursor sensitivity
const float heightSensitivity = 8;
const float widthSensitivity = 4;
//set duration of long click
const unsigned long longClick = 350;
//TCRT5000 signal pins
const int irRight = 7;
const int irLeft = 8;
//TCRT5000 control led pins
const int ledRight = 4;
const int ledLeft = 12;
//TCRT5000 state variables
int rightState;
int leftState;
int lastRightState = HIGH;
int lastLeftState = HIGH;
//flag for drag and drop / select
bool selectOn = false;
//used to calculate duration of lifting toes
unsigned long startTime;
//MPU constructor
MPU6050 mpu;
//holds gyroscope values for
float gyroX, gyroY;
//initialize libraries, get sensors ready
void setup() {
//sets datarate in bits per second
Serial.begin(9600);
//sets up MPU
mpu.initialize();
setOffsets();
setPinmodes();
activatePullups();
Wire.begin();
Mouse.begin();
}
//get sensor data, controll cursor movements and mouse functionality
void loop() {
getGyroData();
getIrData();
//Implements cursor movement
handleBothFeet();
//Implements leftclick and double click
handleLeftFoot();
//Implements open context menu and Select
handleRightFoot();
//handles controlLED
controlLED();
}