mirror of
https://github.com/skogaby/OpeNITHM.git
synced 2026-09-22 22:58:16 +03:00
Merge remote-tracking branch 'skogaby/master' into master
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user