diff --git a/README.md b/README.md index a2ae506..9698ee0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ ![logo](https://avatars0.githubusercontent.com/u/7002937?v=3&s=200) ## [PulseSensor.com](https://pulsesensor.com) Playground + +> **Current official Arduino library:** Install **PulseSensor Playground** in the Arduino Library Manager. New users should begin with [GettingStartedProject](examples/GettingStartedProject/GettingStartedProject.ino), then try [PulseSensor_BPM](examples/PulseSensor_BPM/PulseSensor_BPM.ino). + [![How To Update Your Playground Code](https://github.com/yury-g/MyCodePlayground/blob/master/images/updateLib.png?raw=true)](https://youtu.be/Pt0fJvIeryY) ``` @@ -53,8 +56,8 @@ To install the PulseSensor Playground Library, in Arduino, to go -In the Library Manager: Search for and Select -`"PulseSensor.com` +In the Library Manager, search for and select: +`PulseSensor Playground` diff --git a/examples/PulseSensorLIbrary_V2_System_Test/PulseSensorLIbrary_V2_System_Test.ino b/examples/PulseSensorLIbrary_V2_System_Test/PulseSensorLIbrary_V2_System_Test.ino index 7f25027..85edfca 100644 --- a/examples/PulseSensorLIbrary_V2_System_Test/PulseSensorLIbrary_V2_System_Test.ino +++ b/examples/PulseSensorLIbrary_V2_System_Test/PulseSensorLIbrary_V2_System_Test.ino @@ -67,8 +67,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino b/examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino index 91d9da2..176fe03 100644 --- a/examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino +++ b/examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino @@ -102,8 +102,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino b/examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino index 4f25bbc..13dd20b 100644 --- a/examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino +++ b/examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino @@ -73,8 +73,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_BPM/PulseSensor_BPM.ino b/examples/PulseSensor_BPM/PulseSensor_BPM.ino index 53e35e4..64cf600 100644 --- a/examples/PulseSensor_BPM/PulseSensor_BPM.ino +++ b/examples/PulseSensor_BPM/PulseSensor_BPM.ino @@ -103,8 +103,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat.ino b/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat.ino index a71b523..9ed1d07 100644 --- a/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat.ino +++ b/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat.ino @@ -127,8 +127,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter.ino b/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter.ino index d6e9aab..d223803 100644 --- a/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter.ino +++ b/examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter.ino @@ -123,8 +123,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/examples/PulseSensor_nRF52_Heartrate_Monitor_Service/PulseSensor_nRF52_Heartrate_Monitor_Service.ino b/examples/PulseSensor_nRF52_Heartrate_Monitor_Service/PulseSensor_nRF52_Heartrate_Monitor_Service.ino index 497cbb5..be972a0 100644 --- a/examples/PulseSensor_nRF52_Heartrate_Monitor_Service/PulseSensor_nRF52_Heartrate_Monitor_Service.ino +++ b/examples/PulseSensor_nRF52_Heartrate_Monitor_Service/PulseSensor_nRF52_Heartrate_Monitor_Service.ino @@ -131,8 +131,8 @@ void setup() { likely because our particular Arduino platform interrupts aren't supported yet. - If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino, - which doesn't use interrupts. + If your Sketch hangs here, report the board name and Arduino core + version at https://github.com/WorldFamousElectronics/PulseSensorPlayground/issues. */ for (;;) { // Flash the led to show things didn't work. diff --git a/resources/CodeDescriptions.md b/resources/CodeDescriptions.md index 77225a6..8f9f538 100644 --- a/resources/CodeDescriptions.md +++ b/resources/CodeDescriptions.md @@ -1,31 +1,25 @@ -| # | Example Code | Features | Ideal For | -|-----|-------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|---------------------------------------------| -| 1 | [GettingStartedProject.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/GettingStartedProject/GettingStartedProject.ino) | Introductory setup for PulseSensor and Arduino.
Basic hardware and library integration. | Beginners, first-time users | -| 2 | [Getting_BPM_to_Monitor.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/Getting_BPM_to_Monitor/Getting_BPM_to_Monitor.ino) | Real-time BPM monitoring on Serial Monitor.
Heartbeat alerts.
LED visualization on PIN 13. | Beginners, basic projects | -| 3 | [PulseSensor_ATtiny85_Serial.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino) | PulseSensor use with ATtiny85, including serial communication. | Projects using ATtiny85, Serial communication | -| 4 | [PulseSensor_ATtiny85_noSerial.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino) | PulseSensor with ATtiny85, no serial communication. | ATtiny85 based projects, simplicity focus | -| 5 | [PulseSensor_BPM.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_BPM/PulseSensor_BPM.ino) | Standard BPM measurement setup with PulseSensor. | Standard BPM tracking projects | -| 6 | [PulseSensor_BPM_Alternative.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_BPM_Alternative/PulseSensor_BPM_Alternative.ino) | Alternative BPM measurement method. | Alternative approaches, experimental setups | -| 7 | [PulseSensor_BPM_UNO_R4.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_BPM_UNO_R4/PulseSensor_BPM_UNO_R4.ino) | BPM setup for Arduino UNO R4. | Arduino UNO R4 specific projects | -| 8 | [PulseSensor_BPM_UNO_R4_LEDmatrix_Heartbeat.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_BPM_UNO_R4_LEDmatrix_Heartbeat/PulseSensor_BPM_UNO_R4_LEDmatrix_Heartbeat.ino) | Heartbeat display on LED matrix using UNO R4. | Visual heartbeat display projects | -| 9 | [PulseSensor_BPM_UNO_R4_LEDmatrix_Plotter.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_BPM_UNO_R4_LEDmatrix_Plotter/PulseSensor_BPM_UNO_R4_LEDmatrix_Plotter.ino) | Plotting heartbeat data on LED matrix with UNO R4. | Advanced visualization, UNO R4 users | -| 10 | [PulseSensor_DUE.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_DUE/PulseSensor_DUE.ino) | Demonstrates PulseSensor on Arduino DUE. | Arduino DUE specific projects | -| 11 | [PulseSensor_ESP32.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_ESP32/PulseSensor_ESP32.ino) | PulseSensor integration with ESP32 module. | ESP32 advanced projects | -| 12 | [PulseSensor_Nucleo.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_Nucleo/PulseSensor_Nucleo.ino) | Using PulseSensor with Nucleo boards. | Nucleo board specific applications | -| 13 | [PulseSensor_PTT.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_PTT/PulseSensor_PTT.ino) | Pulse Transit Time example using two PulsleSensors | Measure pulse wave velocity with a correspoinding Processing sketch -| 14 | [PulseSensor_RP2040.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_RP2040/PulseSensor_RP2040.ino) | PulseSensor examples for RP2040 boards. | RP2040 board projects | -| 15 | [PulseSensor_Servo.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_Servo/PulseSensor_Servo.ino) | Control a servo based on heart rate data. | Hardware interaction, creative projects | -| 16 | [PulseSensor_Speaker.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_Speaker/PulseSensor_Speaker.ino) | Audio feedback from heart rate data with a speaker. | Audio-interactive projects | -| 17 | [PulseSensor_nRF52.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_nRF52/PulseSensor_nRF52.ino) | PulseSensor with nRF52 series boards. | nRF52 Bluetooth projects | -| 18 | [PulseSensor_nRF52840_Feather_Express.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/PulseSensor_nRF52840_Feather_Express/PulseSensor_nRF52840_Feather_Express.ino) | nRF52840 Feather Express board integration. | BLE focused, nRF52840 Feather Express users | -| 19 | [SoftwareSerialDemo.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/SoftwareSerialDemo/SoftwareSerialDemo.ino) | Software serial communication with PulseSensor. | Projects requiring software serial comms | -| 20 | [TwoPulseSensors_On_OneArduino.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/TwoPulseSensors_On_OneArduino/TwoPulseSensors_On_OneArduino.ino) | Connecting two PulseSensors to a single Arduino. | Multi-sensor, complex data handling projects| -| 21 | [TwoPulseSensors_On_OneArduino_Alternative.ino](https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/master/examples/TwoPulseSensors_On_OneArduino_Alternative/TwoPulseSensors_On_OneArduino_Alternative.ino) | Alternative approach for using two PulseSensors with Arduino. | Experimental setups, alternative methods | +# PulseSensor Playground examples +This index lists the example sketches that ship with the current library. Start with the raw-signal project before moving to BPM detection. - -Joel's Notes: -Best not to use underscores in the names of the code files, because some markdown interprets it as italic. - -Getting BPM to Monitor.ino does use interrupts, and I think it is one point where the user experience breaks. - +| Example | What it demonstrates | Good starting point for | +|---|---|---| +| [GettingStartedProject](../examples/GettingStartedProject/GettingStartedProject.ino) | Raw pulse signal in the Serial Plotter and heartbeat LED | First setup and signal troubleshooting | +| [Getting_BPM_to_Monitor](../examples/Getting_BPM_to_Monitor/Getting_BPM_to_Monitor.ino) | BPM and beat messages in the Serial Monitor | A short beginner BPM sketch | +| [PulseSensor_BPM](../examples/PulseSensor_BPM/PulseSensor_BPM.ino) | Full library BPM setup and serial output | Standard BPM projects | +| [PulseSensor_ATtiny85_Serial](../examples/PulseSensor_ATtiny85_Serial/PulseSensor_ATtiny85_Serial.ino) | Beat detection with serial output on ATtiny85 | ATtiny85 projects with serial output | +| [PulseSensor_ATtiny85_noSerial](../examples/PulseSensor_ATtiny85_noSerial/PulseSensor_ATtiny85_noSerial.ino) | Beat detection without serial output on ATtiny85 | Small standalone ATtiny85 projects | +| [PulseSensor_ESP32](../examples/PulseSensor_ESP32/PulseSensor_ESP32.ino) | ESP32 Wi-Fi BPM web page on a local network | ESP32 network projects | +| [PulseSensor_Pulse_Transit_Time](../examples/PulseSensor_Pulse_Transit_Time/PulseSensor_Pulse_Transit_Time.ino) | Pulse transit time with two sensors | Two-sensor timing experiments | +| [PulseSensor_Servo_Motor](../examples/PulseSensor_Servo_Motor/PulseSensor_Servo_Motor.ino) | Servo movement synchronized to detected beats | Motion projects | +| [PulseSensor_Speaker](../examples/PulseSensor_Speaker/PulseSensor_Speaker.ino) | Speaker tone synchronized to detected beats | Audio feedback projects | +| [PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat](../examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat/PulseSensor_UNO_R4_WiFi_LEDmatrix_Heartbeat.ino) | Heart animation on the UNO R4 WiFi LED matrix | UNO R4 WiFi visual projects | +| [PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter](../examples/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter/PulseSensor_UNO_R4_WiFi_LEDmatrix_Plotter.ino) | Pulse waveform on the UNO R4 WiFi LED matrix | UNO R4 WiFi signal visualization | +| [PulseSensor_XIAO_ESP32S3_BPM](../examples/PulseSensor_XIAO_ESP32S3_BPM/PulseSensor_XIAO_ESP32S3_BPM.ino) | BPM in the Serial Monitor on XIAO ESP32S3 | XIAO ESP32S3 first projects | +| [PulseSensor_XIAO_ESP32S3_OLED](../examples/PulseSensor_XIAO_ESP32S3_OLED/PulseSensor_XIAO_ESP32S3_OLED.ino) | Waveform and BPM on an SH1106 OLED | XIAO ESP32S3 display projects | +| [PulseSensor_XIAO_ESP32S3_WiFi](../examples/PulseSensor_XIAO_ESP32S3_WiFi/PulseSensor_XIAO_ESP32S3_WiFi.ino) | Wi-Fi pulse dashboard | XIAO ESP32S3 browser projects | +| [PulseSensor_XIAO_ESP32S3_WiFi_OLED](../examples/PulseSensor_XIAO_ESP32S3_WiFi_OLED/PulseSensor_XIAO_ESP32S3_WiFi_OLED.ino) | Wi-Fi dashboard and local OLED display | Combined browser and display projects | +| [PulseSensor_nRF52_Heartrate_Monitor_Service](../examples/PulseSensor_nRF52_Heartrate_Monitor_Service/PulseSensor_nRF52_Heartrate_Monitor_Service.ino) | BLE Heart Rate Monitor service on supported nRF52 boards | nRF52 BLE projects | +| [SoftwareSerialDemo](../examples/SoftwareSerialDemo/SoftwareSerialDemo.ino) | PulseSensor output through `SoftwareSerial` | Alternative serial connections | +| [TwoPulseSensors_On_OneArduino](../examples/TwoPulseSensors_On_OneArduino/TwoPulseSensors_On_OneArduino.ino) | Two PulseSensors on one Arduino | Multi-sensor projects | +| [PulseSensorLIbrary_V2_System_Test](../examples/PulseSensorLIbrary_V2_System_Test/PulseSensorLIbrary_V2_System_Test.ino) | Interactive checks of the library API | Maintainer and regression testing |