Pseudo-Medical Monitor: Difference between revisions
| Line 210: | Line 210: | ||
** Single NeoPixel | ** Single NeoPixel | ||
** Local Reset Button | ** Local Reset Button | ||
* Tone I2C Controller | * Tone I2C Controller | ||
| Line 217: | Line 218: | ||
** Single Piezo Speaker | ** Single Piezo Speaker | ||
** Local Reset Button | ** Local Reset Button | ||
* EKG-Respiration Unit | * EKG-Respiration Unit | ||
| Line 235: | Line 237: | ||
** Breathing Motion Detector | ** Breathing Motion Detector | ||
** Skin Temperature Sensor | ** Skin Temperature Sensor | ||
** Tone I2C Controller | |||
Revision as of 13:46, 23 November 2021
QUACK-A-THON 2025
This is NOT A VALID MEDICAL DEVICE IN ANY KNOWN UNIVERSE, ACTUAL OR FICTIONAL!!!
Pseudo-Medical Monitor for Christmas Cheap Gift
In preparation for the expected Christmas Gift availability crisis, I present the Pseudo-Gift of the season. The time honored tradition of knockoff products hitting the market before Christmas is alive and well. What better than a multi-property knockoff device? Star Trek / Arduino / Medical knockoff device gift for everyone. This Pseudo-Medical Tricorder ripoff is the stocking stuffer for 2021.
Operation
This device offers several functions to the user. The device is intended to be held by the user for self-analysis.
Modes
Passive Mode
This device provides several passive functions when not placed in specific function modes. The passive mode consists of a thermal image with a actual 8x8 resolution that is interpolated out to 24x24. A distance of device from user is recorded by a time of flight laser range finder. The distance is displayed with a color bar graph. A bar color of RED indicates the distance to user is beyond 50cm. A bar of GREEN indicates a distance of 50cm or less. The final BLUE bar indicates a distance of less than 25cm and invokes the EXG Sensor mode. An Object and Ambient temperature is displayed.
Fingerprint Mode
Placement of a finger on the fingerprint scanner activated this mode. Onscreen instructions direct the user to place finger an scanner. This suspends the Passive Mode. The onscreen instructions tell the user to keep finger on scanner until a fingerprint image is captured and displayed on the screen. When the scanner ring is pulsing RED, a fingerprint is not displayed. A GREEN ring indicates a fingerprint image has been captured and is being displayed. Upon removal of finger from scanner, the device returns to Passive Mode.
Pulse Mode
Placement of a finger on the pulse sensor activates this mode. This suspends the Passive Mode. The sensor reads the pulse and provides a beat indicator as well as an estimate pulse rate. Future upgrades will display the O2 Saturation level (stray diagnosis number under pulse rate). Upon removal of finger from sensor, the device returns to Passive Mode.
EXG Mode
When the device distance is met, or a finger is placed on the distance sensor, the EXG Mode is engaged. This suspends the Passive Mode. The entire screen is cleared and converted to display ~152 readings with automatic scaling to screen. If the distance reading remains in this modes range, additional readings are made and displayed until distance criteria changes. Upon mode change, the entire screen is redrawn and the fingerprint information is reset to not recorded. (Finger is over distance sensor, readings are from the BioAmp EXG Pill in a black box)
Tests
Eye Test
System Configuration:
- Only Base Device needed.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The one tested will be shown an "E" symbol of various sizes and orientations. The display will be activated based on distance readings from the Base Device distance sensor. After the display distance and time are met, the one tested will use a Rotary Encoder and Switch function, on the Control Panel, to select orientation on the "E" symbol. The process will be repeated with success or failure counts by orientation and distance will be recorded.
Hearing Test
System Configuration:
- Test requires earphones or headphones be plugged into Audio/MIDI shield audio jack.
- Test can use either one or two Hand Held Units or use use the switch function of the Rotary Encoders on the Control Panel.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. A series of tones of various frequencies and volumes are played to each ear in variable patterns. Upon detection of the Tone, the tested is required to signal detection by depressing the appropriate Hand Held Unit Button of Rotary Encoder. Tones are tested for a determined time and a timeout condition is considered to be non-detection. Repeat of the "missed" Tones can be retested for confirmation.
Grip and Reflex Test
System Configuration:
- Test can use of one or two Hand Held Units.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The one tested will be asked to grip the Hand Held Units multiple times to set a baseline for grip pressure readings for each Unit used. The one tested will then be required to register detection of the Units vibrating motor. The operating time of the motor will be varied. Detection of the vibration and time to detection are recorded. Detection will be based on grip detection and Unit Button depression as instructed during test.
EKG and Respiration Tests
Test A
System Configuration:
- Test requires EKG-Respiration Unit.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The victim/one tested will be appropriately "Wired Up" to the device. The sensor readings will be displayed to screen. If the one tested has a pulse and breathing is detected, the the one tested will be considered "NOT DEAD". If (a pulse but not breathing) or (breathing but no pulse) is detected the the one tested will be considered "NOT QUITE DEAD". If neither pulse or breathing is detected then the one tested could simply be "PINING FOR THE FJORDS" or "NOT ALIVE" but no assertion will be made as to their death.
Test B
System Configuration:
- Test requires EKG-Respiration Unit.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The victim/one tested will be appropriately "Wired Up" to the device. The sensor readings will be displayed to screen. Regardless of the sensor readings, the NeoPixel Unit on the EKG Unit will be cycled through various colors, brightness and/or sequences. Changes to sensor readings will then be wrecklessly assigned to conjecture as well as confession through projection interpretations.
EEG Test
System Configuration:
- Test requires EEG Unit.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The victim/one tested will be appropriately "Wired Up" to the device. The sensor readings will be displayed to screen. Regardless of the sensor readings, the NeoPixel Unit on the EEG Unit will be cycled through various colors, brightness and/or sequences. Changes to sensor readings will then be wrecklessly assigned to conjecture as well as confession through projection interpretations. This is a test of higher validity due to there being more lines displayed on the screen then the EKG and Respiration Tests.
Poly-Liar
System Configuration:
- Test requires EKG and Respiration Unit.
- Test requires Poly-Liar Unit.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The victim/one tested will be appropriately "Wired Up" to the device. The sensor readings will be displayed to screen. After a series of harmless questions are asked and answered, the one tested will be subjected to scandalous and salacious questions and accusations. Every sensor change or stable reading will be left to predefined biased impressions and be held against the tested one's integrity.
Speculations:
- Galvanic Skin Response readings indicate the tested one's likelihood to sweat when confronted by their untrustworthiness or alien abduction frequency.
- Breathing changes indicate contempt for the inquisitor or possibility that individual was not from an oxygen prevalent planetary atmosphere.
- Skin temperature changes denote deep seeded anger or inability to regulate body temperature under earth's gravity.
- Pulse changes are obviously signs of corrupt contempt for moral values shared by all of humanity or nothing at all.
Eye Tracking Analyzer
System Configuration:
- Test requires Eye Tracking Unit.
Procedure:
Instructions for the one being tested are displayed on the unit's screen. The one being tested is warned, discouraged and berated to NOT take this test. Eye Safety has NOT BEEN ESTABLISHED.
Design
Parts List
- Arduino Due Generic Clone (alternative: ITEADUINO DUE)
- Arduino Mega Prototype Shield Generic Clone (alternative: KEYESTUDIO) (EXG connector added after photo)
- Audio Shield with VS1103
- Ports Hosted on Shield
- Dual Encoder Control with LED indicators
- BioAmp EXG Pill Excellent Hackaday.io Project by Deepak Khatri
- MLX90614 Contactless Temperature Sensor Generic Clone (alternative: )
- AMG8833 Thermal Imager Sensor Generic Clone (alternative: TinyCircuits)
- VL53L0X TOF Laser Distance Sensor Generic Clone (alternative: Onyehn)
- MAX30102 Pulse and O2 Saturation Sensor Generic Clone (alternative: MH-ET Live)
- Capacitive Touch Fingerprint Scanner Generic Clone (alternative: DFROBOT)
- 160x128 LCD TFT SPI 1.8" Module with SD Socket Generic Clone (alternative: Heyaodz111208)
- IR Pulse Sensor with incorrect Labelling
- Grip and Reflex Sensor
- Cylinder 5x5x15 cm. 0.25 cm. thickness
- Copper Tape Hoop
- Velostat Wrap Sheet
- MPU6050 Sensor
- Vibration Motor
- Vibration Motor Control Circuit
- Momentary Push Button Switch
- Foam Wrap 0.5 cm.
- RJ45 Socket Breakout Board
- Test Unit for Add-Ons
- Arduino Proto-Shield w/ pins A4 and A5 clipped to simulate Wire1 Operation
- RJ45 Connection Box
- Wire1 Pull-Up Resistors
- NeoPixel I2C Controller
- ATTINY85
- Single NeoPixel
- Local Reset Button
- Tone I2C Controller
- ATTINY85
- Single Piezo Speaker
- Local Reset Button
- EKG-Respiration Unit
- NeoPixel I2C Controller
- EXG BIO AMP Unit
- Breathing Motion Sensor with Amplifier
- RJ45 Socket Breakout Board
- Poly-Liar Unit
- Galvanic Skin Response Sensor
- Heart Beat Detection Sensor
- Breathing Motion Detector
- Skin Temperature Sensor
- Tone I2C Controller
- Eye Tracking Goggles
- Three IR Reflectance Sensors
- Under Review Due To Blindness Hazard
Assemblies
External EKG-Respiration Unit
External Hand Held Unit
External Poly-Liar Unit
External EEG Unit
Under Construction
Wiring
Main Shield
| Pin Mapping | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Due Pin | Function | MLX90614 | AMG8833 | VL53L0X | MAX30102 | FP Scan | TFT | SD Socket | EXG |
| 3 | Interrupt | IRQ | |||||||
| 4 | Interrupt | INT | |||||||
| 5 | Interrupt | INT | |||||||
| 6 | Digital I/O | GPIO1 | |||||||
| 7 | Digital I/O | XSHUT | |||||||
| 8 | Digital I/O | SD_CS | |||||||
| 9 | Digital I/O | RST | |||||||
| 10 | Digital I/O | CS | |||||||
| 11 | Digital I/O | AO | |||||||
| 18 | TX_1 | RX | |||||||
| 19 | RX_1 | TX | |||||||
| 20 | SDA | SDA | SDA | SDA | SDA | ||||
| 21 | SCL | SCL | SCL | SCL | SCL | ||||
| A0 | Signal | ||||||||
| SPI | MISO | SD_MISO | |||||||
| SPI | MOSI | SDA | SD_MOSI | ||||||
| SPI | SCK | SCK | SD_SCK | ||||||
Encoders Panel
| Pin Mapping | |||
|---|---|---|---|
| Device | SIGNAL | DUE Pin | Function |
| Controls | Vin | 3.3V | Power |
| Controls | SDA | 20 | SDA-I2C |
| Controls | SCL | 21 | SCL-I2C |
| Controls | INT | 2 | GPIO |
| Controls | GND | GND | Power |
Audio Shield
| Pin Mapping | |||
|---|---|---|---|
| Device | SIGNAL | DUE Pin | Function |
| VS1103 | Vin | 3.3V | Power |
| VS1103 | GND | GND | Power |
| VS1103 | TX | 17 | RX-Serial2 |
| VS1103 | RX | 16 | TX-Serial2 |
| VS1103 | GPIO0 | 30 | GPIO |
| VS1103 | GPIO1 | 32 | GPIO |
| VS1103 | RST | 28 | GPIO |
| VS1103 | DREQ | 24 | GPIO |
| VS1103 | BSYNC | 26 | GPIO |
| VS1103 | CS | 22 | GPIO |
| VS1103 | SO | SPI-HDR | MISO |
| VS1103 | SI | SPI-HDR | MOSI |
| VS1103 | SCLK | SPI-HDR | SCK |
Ports Shield
| Pin Mapping | |||
|---|---|---|---|
| Port # | Line # | DUE Pin | Function |
| 0 | 1 | 3.3V | Power |
| 0 | 2 | GND | Power |
| 0 | 3 | 70 | I2C-SDA |
| 0 | 4 | 71 | I2C-SCL |
| 0 | 5 | 53 | GPIO0 |
| 0 | 6 | 51 | GPIO1 |
| 0 | 7 | 49 | GPIO2 |
| 0 | 8 | 65/A11 | Analog0 |
| Pin Mapping | |||
|---|---|---|---|
| Port # | Line # | DUE Pin | Function |
| 1 | 1 | 3.3V | Power |
| 1 | 2 | GND | Power |
| 1 | 3 | 70 | I2C-SDA |
| 1 | 4 | 71 | I2C-SCL |
| 1 | 5 | 27 | GPIO0 |
| 1 | 6 | 29 | GPIO1 |
| 1 | 7 | 31 | GPIO2 |
| 1 | 8 | 60/A6 | Analog0 |
| Pin Mapping | |||
|---|---|---|---|
| Port # | Line # | DUE Pin | Function |
| 2 | 1 | 3.3V | Power |
| 2 | 2 | GND | Power |
| 2 | 3 | 70 | I2C-SDA |
| 2 | 4 | 71 | I2C-SCL |
| 2 | 5 | 64/A10 | Analog0 |
| 2 | 6 | 63/A9 | Analog1 |
| 2 | 7 | 62/A8 | Analog2 |
| 2 | 8 | 61/A7 | Analog3 |
| Pin Mapping | |||
|---|---|---|---|
| Port # | Line # | DUE Pin | Function |
| 3 | 1 | 3.3V | Power |
| 3 | 2 | GND | Power |
| 3 | 3 | 70 | I2C-SDA |
| 3 | 4 | 71 | I2C-SCL |
| 3 | 5 | 59/A5 | Analog0 |
| 3 | 6 | 58/A4 | Analog1 |
| 3 | 7 | 57/A3 | Analog2 |
| 3 | 8 | 56/A2 | Analog3 |
External Hand-Held Unit : Valid Ports (0-3)
| Pin Mapping | |||
|---|---|---|---|
| Line # | Device Signal | Function | |
| 1 | 3.3V | Power | |
| 2 | GND | Power | |
| 3 | MPU6050 | I2C-SDA | |
| 4 | MPU6050 | I2C-SCL | |
| 5 | MPU6050-INT | GPIO | |
| 6 | Vibrating Motor I/O | GPIO | |
| 7 | Momentary Push Button | GPIO | |
| 8 | Grip Sensor | Analog | |
External EKG-Respiration Unit : Valid Ports (2-3)
| Pin Mapping | |||
|---|---|---|---|
| Line # | Device Signal | Function | |
| 1 | 3.3V | Power | |
| 2 | GND | Power | |
| 3 | NeoPixel Controller | I2C-SDA | |
| 4 | NeoPixel Controller | I2C-SCL | |
| 5 | Breath Signal | Analog | |
| 6 | Breath Signal Adjust | Analog | |
| 7 | N/C | Analog | |
| 8 | Heart Beat Signal | Analog | |
External EEG Unit : Valid Ports (2-3)
| Pin Mapping | |||
|---|---|---|---|
| Line # | Device Signal | Function | |
| 1 | 3.3V | Power | |
| 2 | GND | Power | |
| 3 | NeoPixel Controller | I2C-SDA | |
| 4 | NeoPixel Controller | I2C-SCL | |
| 5 | Signal 0 | Analog | |
| 6 | Signal 1 | Analog | |
| 7 | Signal 2 | Analog | |
| 8 | Singal 3 | Analog | |
External Poly-Liar Unit : Valid Ports (2-3)
| Pin Mapping | |||
|---|---|---|---|
| Line # | Device Signal | Function | |
| 1 | 3.3V | Power | |
| 2 | GND | Power | |
| 3 | ??? | I2C-SDA | |
| 4 | ??? | I2C-SCL | |
| 5 | Respiration Detection | Analog | |
| 6 | Skin Temperature | Analog | |
| 7 | Pulse Detection | Analog | |
| 8 | GSR Signal | Analog | |
Schematics
Control Panel Circuit
EXG BIO AMP Circuit used as EKG
Note: Module is powered by 3.3V, not 5V
Respiratory Sensor
Vibrating Motor Circuit
Note: Module is powered by 3.3V not 5V
GSR Circuit
Code (Updated 11/16/2021)
Special Libraries
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <Adafruit_VL53L0X.h>
#include <Adafruit_AMG88xx.h>
#include <MAX30105.h>
#include <SparkFunMLX90614.h>
#include <DFRobot_ID809.h>
#include "bmpHeader.h"
#include <SD.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <pu2clr_pcf8574.h>
Library Modification
// In this Library : #include <SparkFunMLX90614.h>
//Change the following line in the bool IRTherm::I2CReadWord(byte reg, int16_t * dest) routine.
//
// I2C processing change needed for Arduino Due implementation
//
// Comment Out Line Below
// _i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint8_t) true);
// Add Line Below
_i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint32_t)reg, (uint8_t)1, (uint8_t)true);






































