-
Notifications
You must be signed in to change notification settings - Fork 1
/
PDLS.ino
80 lines (69 loc) · 2.36 KB
/
PDLS.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
#pragma once
#include <Vector.h>
#include "potenciometerControll.hh"
#include "WheelControllF1.hh"
#include "MFDMenuControll.hh"
#include <Keyboard.h>
#include <Joystick.h>
#include "SWButton.hh"
const int ELEMENT_COUNT_MAX = 14; //max number of digital pins used on board
const int CONTROLL_COUNT_MAX = 3;
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK,
ELEMENT_COUNT_MAX, 0, // Button Count, Hat Switch Count
false, false, false, // X and Y, but no Z Axis
false, false, false, // No Rx, Ry, or Rz
false, false, // No rudder or throttle
true, true, true); // No accelerator, brake, or steering;
Vector<SWButton*> swbuttons;
Vector<PotenciometerControll*> controlls;
void setup() {
Keyboard.begin();
Joystick.begin();
Serial.begin(9600);
for(int i=1;i<=ELEMENT_COUNT_MAX;i++)
{
pinMode(i, INPUT_PULLUP);
}
SWButton* storage_array[ELEMENT_COUNT_MAX];
swbuttons.setStorage(storage_array);
PotenciometerControll* storage_array_controll[CONTROLL_COUNT_MAX];
controlls.setStorage(storage_array_controll);
swbuttons.push_back(new SWButton(1,' ',&Joystick));
swbuttons.push_back(new SWButton(2,' ',&Joystick));
swbuttons.push_back(new SWButton(3,(char)KEY_F5,&Joystick));
swbuttons.push_back(new SWButton(4,'d',&Joystick));
swbuttons.push_back(new SWButton(5,KEY_RETURN,&Joystick));
swbuttons.push_back(new SWButton(7,'w',&Joystick));
swbuttons.push_back(new SWButton(8,'c',&Joystick));
swbuttons.push_back(new SWButton(9,(char)KEY_F6,&Joystick));
swbuttons.push_back(new SWButton(10,(char) 0x20,&Joystick));
swbuttons.push_back(new SWButton(11,'s',&Joystick));
swbuttons.push_back(new SWButton(12,'a',&Joystick));
pinMode(A0,INPUT);
pinMode(A4,INPUT);
pinMode(A5,INPUT);
controlls.push_back(new WheelControllF1(A1));
controlls.push_back(new MFDMenuControll(A2,true));
controlls.push_back(new MFDMenuControll(A3,false));
Joystick.setAcceleratorRange(0, 70);
Joystick.setBrakeRange(0, 160);
}
void loop() {
int steValue=analogRead(A0);
int power=analogRead(A4);
power=(power-1023)*-1;
int brake=analogRead(A5);
brake=(brake-1023)*-1;
Joystick.setAccelerator(power);
Joystick.setBrake(brake);
Joystick.setSteering(steValue);
for(int i=0;i<controlls.size();i++)
{
controlls[i]->updateData();
}
for (int i = 0; i < swbuttons.size(); ++i)
{
swbuttons[i]->checkButton();
}
delay(50);
}