aboutsummaryrefslogtreecommitdiff
path: root/sensor
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-04-15 15:23:10 +0200
committerJonas Smedegaard <dr@jones.dk>2025-04-15 15:23:10 +0200
commit6b1ae4b2b1f42e92b44a05d8fe097901dd04560b (patch)
treeb5d4140333deb7e6ba15ca1ec79901fa437e9e71 /sensor
parent08c22d31a76776a39974a5d04a39f3a2dc050974 (diff)
tidy comments and whitespace
Diffstat (limited to 'sensor')
-rw-r--r--sensor/sensor.ino28
1 files changed, 16 insertions, 12 deletions
diff --git a/sensor/sensor.ino b/sensor/sensor.ino
index f051b0b..867c17d 100644
--- a/sensor/sensor.ino
+++ b/sensor/sensor.ino
@@ -54,7 +54,7 @@
#define TOUCH_PIN T0 // T0 is GPIO4
#define TOUCH_THRESHOLD 40
-// arduino-esp32 LED PWM Controller (LEDC) to track gaping rhythm
+// arduino-esp32 LED PWM Controller (LEDC) as pacemaker for gaping rhythm
#define LED_PIN LED_BUILTIN
#define LEDC_BITS 7
#define LEDC_FREQ 500
@@ -63,12 +63,10 @@
#define LEDC_CALM_PACE 3000
#define LEDC_STRESSED_PACE 400
+// pacemaker variables
int stress = 0;
-
bool touch_detected = false;
-
int pace = LEDC_STRESSED_PACE;
-
bool fade_ended = false;
bool fade_in = true;
@@ -82,12 +80,13 @@ void gotTouch() {
pace = LEDC_STRESSED_PACE;
}
-// pacemaker Interrupt Service Routine (ISR)
+// pacemaker end-of-fade Interrupt Service Routine (ISR) a.k.a. callback
void ARDUINO_ISR_ATTR LED_FADE_ISR() {
fade_ended = true;
keepPace();
}
+// stress-inducing touch callback
void beginTouchDetection() {
touchAttachInterrupt(TOUCH_PIN, gotTouch, TOUCH_THRESHOLD);
log_d("touch detected");
@@ -99,7 +98,7 @@ void beginPace() {
// Setup pacemaker timer
ledcAttach(LED_PIN, LEDC_FREQ, LEDC_BITS);
- // fade in once supervised and then begin fade out with ISR
+ // fade in once uncontrolled and then begin fade out with ISR
ledcFade(LED_PIN, LEDC_START_DUTY, LEDC_TARGET_DUTY, pace);
delay(pace);
ledcFadeWithInterrupt(LED_PIN, LEDC_TARGET_DUTY, LEDC_START_DUTY,
@@ -132,16 +131,18 @@ void keepPace() {
pace = LEDC_CALM_PACE;
}
- // begin fade in opposite direction at decided pace
+ // begin fade at decided direction and pace
ledcFadeWithInterrupt(LED_PIN,
fade_in ? LEDC_START_DUTY : LEDC_TARGET_DUTY,
fade_in ? LEDC_TARGET_DUTY : LEDC_START_DUTY,
pace, LED_FADE_ISR);
+
+ // remember next fade direction
fade_in = !fade_in;
}
}
-// Sensor reading
+// read fake gape angle sensor from pacemaker
int getGapeAngle() {
return ledcRead(LED_PIN);
}
@@ -160,11 +161,11 @@ void setBeaconServiceData(int angle) {
log_i("Gape angle: %.2f°", EddystoneTLM.getTemp());
BLEAdvertisementData oScanResponseData = BLEAdvertisementData();
- oScanResponseData.setServiceData(BLEUUID(
- (uint16_t)0xFEAA),
- String(EddystoneTLM.getData().c_str(),
+ oScanResponseData.setServiceData(
+ BLEUUID((uint16_t)0xFEAA),
+ String(
+ EddystoneTLM.getData().c_str(),
EddystoneTLM.getData().length()));
-
pAdvertising->setScanResponseData(oScanResponseData);
}
@@ -188,6 +189,9 @@ void setup() {
}
void loop() {
+
+ // update Bluetooth beacon service data
setBeaconServiceData(getGapeAngle());
+
delay(500);
}