Merge remote-tracking branch 'skogaby/master' into master

This commit is contained in:
veroxzik
2020-12-18 19:52:32 -05:00
5 changed files with 37 additions and 16 deletions
+9 -7
View File
@@ -76,18 +76,20 @@ void AirSensor::turnOffLight() {
uint16_t AirSensor::getValue(int sensor) {
// Turn on light corresponding to read sensor
changeLight(sensor);
// Delay required because the read may occur faster than the physical light turning on
delayMicroseconds(AIR_LED_DELAY);
int value;
#ifndef IR_SENSOR_ANALOG
return digitalRead(ir_sensor_pins[sensor]);
value = digitalRead(ir_sensor_pins[sensor]);
#else
return analogRead(ir_sensor_pins[sensor]);
value = analogRead(ir_sensor_pins[sensor]);
#endif
// Turn the lights off when we're done reading
turnOffLight();
return value;
}
AirSensor::AirSensor() {
@@ -115,7 +117,7 @@ void AirSensor::analogCalibrate() {
// Skip some samples, for some reason the first few readings tend to give wild values that can skew min/max tracking
for (int i = 0; i < SKIP_SAMPLES; i++) {
for (int sensor = 0; sensor < 6; sensor++) {
for (int sensor = 5; sensor >= 0; sensor--) {
getValue(sensor);
touchboard -> scan();
}
@@ -123,7 +125,7 @@ void AirSensor::analogCalibrate() {
// begin calibration
for (int i = 0; i < CALIBRATION_SAMPLES; i++) {
for (int sensor = 0; sensor < 6; sensor++) {
for (int sensor = 5; sensor >= 0; sensor--) {
uint16_t value = getValue(sensor);
if (value > maxReadings[sensor])
@@ -175,7 +177,7 @@ bool AirSensor::getSensorState(int sensor) {
float AirSensor::getHandPosition() {
int highestTriggered = -1;
for (int i = 0; i < 6; i++) {
for (int i = 5; i >= 0; i--) {
if (getSensorState(i)) {
if ((i + 1) > highestTriggered) {
highestTriggered = i + 1;
@@ -200,7 +202,7 @@ float AirSensor::getHandPosition() {
uint8_t AirSensor::getSensorReadings() {
uint8_t reading = 0;
for (int i = 0; i < 6; i++) {
for (int i = 5; i >= 0; i--) {
reading |= ((int) getSensorState(i) << i);
}
+1 -1
View File
@@ -20,7 +20,7 @@
#include <FastLED.h>
#define AIR_LED_DELAY 125
#define AIR_LED_DELAY 130
#define AIR_INPUT_DETECTION 0.90
#define CALIBRATION_SAMPLES 200
#define SKIP_SAMPLES 40
+10 -1
View File
@@ -1,12 +1,21 @@
#include "AutoTouchboard.h"
#if NUM_SENSORS == 32
#ifndef OPENITHM_FULL_V1_0
static const int sensorMap[] = {
11, 3, 10, 2, 9, 1, 8, 0,
31, 23, 30, 22, 29, 21, 28, 20,
27, 19, 26, 18, 25, 17, 24, 16,
15, 7, 14, 6, 13, 5, 12, 4
};
};
#else
static const int sensorMap[] = {
7, 4, 5, 6, 2, 1, 3, 0,
31, 28, 29, 30, 26, 25, 27, 24,
23, 20, 21, 22, 18, 17, 19, 16,
15, 12, 13, 14, 10, 9, 11, 8
};
#endif
#endif
void AutoTouchboard::scan() {
+5 -4
View File
@@ -11,8 +11,9 @@
// the pinout and configurations for OPENITHM_V1_1
// #define OPENITHM_V1_0 // Version 1.0 (No version number on board)
// #define OPENITHM_V1_1 // Version 1.1 (v1.1 on board under logo)
#define OPENITHM_V2_0 // Version 2.0 (v2.0 in upper left of board)
// #define OPENITHM_V2_0 // Version 2.0 (v2.0 in upper left of board)
// #define OPENITHM_V2_1 // Version 2.1 (v2.1 in upper left of board)
// #define OPENITHM_FULL_V1_0 // Version 1.0 of the fully integrated board with touch sensors
// Uncomment this line if your IR sensors will be used in analog mode
// ** OPENITHM_V1_1 AND ABOVE SHOULD ENABLE THIS OPTION **
@@ -71,14 +72,14 @@
#define USB
// Spit out errors for board definitions
#if (defined(OPENITHM_V1_0) + defined(OPENITHM_V1_1) + defined(OPENITHM_V2_0) + defined(OPENITHM_V2_1)) == 0
#if (defined(OPENITHM_V1_0) + defined(OPENITHM_V1_1) + defined(OPENITHM_V2_0) + defined(OPENITHM_V2_1) + defined(OPENITHM_FULL_V1_0)) == 0
#error "Must define ONE Teensy board in Config.h"
#elif (defined(OPENITHM_V1_0) + defined(OPENITHM_V1_1) + defined(OPENITHM_V2_0) + defined(OPENITHM_V2_1)) > 1
#elif (defined(OPENITHM_V1_0) + defined(OPENITHM_V1_1) + defined(OPENITHM_V2_0) + defined(OPENITHM_V2_1) + defined(OPENITHM_FULL_V1_0)) > 1
#error "Cannot define multiple Teensy boards in Config.h"
#endif
#endif
#if (defined(OPENITHM_V2_0) || defined(OPENITHM_V2_1))
#if (defined(OPENITHM_V2_0) || defined(OPENITHM_V2_1) || defined(OPENITHM_FULL_V1_0))
#define NUM_SENSORS 32
#else
#define NUM_SENSORS 16
+12 -3
View File
@@ -20,6 +20,10 @@
#define MUX_0 2
#define MUX_1 3
#define MUX_2 4
#elif defined(OPENITHM_FULL_V1_0)
#define MUX_0 4
#define MUX_1 3
#define MUX_2 2
#endif
// Sensor pin settings
@@ -31,7 +35,7 @@
#define LED_0 7
#define LED_1 6
#define LED_2 5
#elif defined(OPENITHM_V2_1)
#elif defined(OPENITHM_V2_1) || defined(OPENITHM_FULL_V1_0)
#define LED_0 8
#define LED_1 7
#define LED_2 6
@@ -54,7 +58,7 @@
#define AIR_SENSOR_3_PIN 23
#define AIR_SENSOR_4_PIN 22
#define AIR_SENSOR_5_PIN 21
#elif defined(OPENITHM_V2_0) || defined(OPENITHM_V2_1)
#elif defined(OPENITHM_V2_0) || defined(OPENITHM_V2_1) || defined(OPENITHM_FULL_V1_0)
#define AIR_SENSOR_0_PIN 18
#define AIR_SENSOR_1_PIN 20
#define AIR_SENSOR_2_PIN 22
@@ -81,6 +85,11 @@
#define TOUCH_1 0
#define TOUCH_2 1
#define TOUCH_3 15
#elif defined(OPENITHM_FULL_V1_0)
#define TOUCH_0 1
#define TOUCH_1 15
#define TOUCH_2 16
#define TOUCH_3 0
#endif
// Lighting pin settings
@@ -100,7 +109,7 @@
#else
#define RGBPIN 11
#endif
#elif defined(OPENITHM_V2_1)
#elif defined(OPENITHM_V2_1) || defined(OPENITHM_FULL_V1_0)
#define RGBPIN 5
#endif