SEN0240

SEN0240 Datasheet


Analog EMG Sensor by OYMotion

Part Datasheet
SEN0240 SEN0240 SEN0240 (pdf)
PDF Datasheet Preview
Analog EMG Sensor by OYMotion

SKU:SEN0240

Introduction

This EMG sensor is launched by DFRobot and OYMotion cooperation, which can reflect muscle and neural activities of human by detecting sEMG. This sensor integrates filtering circuit and amplified circuit. It amplifies minimal sEMG within ±1.5mV 1000 times and depresses noises especially power frequency interference by differential input and analog filter circuit. The output signal is takes 1.5V as the reference voltage. The output voltage range is 0~3.0V. The signal strength is depends on muscle activities. The output signal waveform indicates the muscle activity and helps to analyse and research the sEMG. Specifically, we can use Arduino as a controller to detect muscle activities, e.g. check whether the muscle is tense the muscle strength;etc. This is an active induction sensor can provide high quality signal collection and it is easy to use. Simple preparations are needed to apply the module to whether static or dynamic areas. Dry electrode is applied to the module and good quality signal are available even without conductive gel. Compared with disposable conductive gel needed by medical electrodes, it is more convenient to use and has longer service life. Therefore, it is more suited to common users. Measurements with an analog EMG sensor are noninvasive, convenient and this can be applied to human-computer interactions. With the development of microcontrollers and integrated electric circuits, EMG circuits and sensors have not just been applied to traditional medical muscle detection researches but control systems.

The supply voltage range is 3.3~5.5V The supply current should not be less than 20mA The ripple current and disturbance current should be as low as possible. Stabilized DC voltage is recommended. The effective spectrum range is and the ADC converter which has higher than 8-bit resolution and 1 KHz frequency are recommended to take samples and digitized to keep original information. Placing the metal dry electrode should consistent with the direction of muscle. The product is not a professional medical device and cannot diagnose and cure disease as an assistant device.

Specification
• Signal Transmitter Board Supply Voltage Operating Voltage +3.0V Detection Range +/-1.5mV Electrode Connector PJ-342 Module Connector PH2.0-3P Output Voltage Operating Temperature Size 22mm*35mm 0.87inch*1.38inch
• Dry Electrode Board Electrode Connector PJ-342 Wire Length 50cm 19.69inch Plate Size 22 * 35 mm 0.87inch*1.38inch weight 36g

Board Overview

Analog EMG Sensor by OYMotion

Num 1 2 3 4

Label A + PJ-342

Description Analog Signal Output 0~3.0V Power Supply Anode 3.3~5.5V Power Supply Cathode 0V Probe Wiring Connector

Tutorial

The tutorial will show you how to use the analog EMG sensor by printing electromyogram waveform with Serial Plotter of Arduino IDE.

Requirements
• Hardware DFRduino UNO R3 or similar x 1 Signal Transmitter Board x1 Dry Electrode Plate x1 Dry Electrode Cable x1 Gravity Analog Cable 3Pin(or Dupont x1
• Software Arduino IDE Version requirements V1.0.x or V1.8.x , Click to Download Arduino IDE from

Connection Diagram

Sample Code

This sample code needs EMGFilters library file, please download and install the EMGFilters Library file. How to install Libraries in Arduino IDE
/* * Copyright 2017, OYMotion Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS * OF USE, DATA, OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * */
#if defined ARDUINO && ARDUINO >= 100 #include "Arduino.h" #else
#include "WProgram.h" #endif
#include "EMGFilters.h"
#define TIMING_DEBUG 1
#define SensorInputPin A0 // input pin number

EMGFilters myFilter // discrete filters must works with fixed sample frequence // our emg filter only support "SAMPLE_FREQ_500HZ" or "SAMPLE_FREQ_1000HZ" // other sampleRate inputs will bypass all the EMG_FILTER int sampleRate = SAMPLE_FREQ_1000HZ // For countries where power transmission is at 50 Hz // For countries where power transmission is at 60 Hz, need to change to // "NOTCH_FREQ_60HZ" // our emg filter only support 50Hz and 60Hz input // other inputs will bypass all the EMG_FILTER int humFreq = NOTCH_FREQ_50HZ;
// Calibration // put on the sensors, and release your muscles // wait a few seconds, and select the max value as the threshold // any value under threshold will be set to zero static int Threshold = 0;
unsigned long timeStamp unsigned long timeBudget;
void setup /* add setup code here */ myFilter.init sampleRate, humFreq, true, true, true ;
// open serial.begin 115200 ;
// setup for time cost measure // using micros timeBudget = 1e6 / sampleRate // micros will overflow and auto return to zero every 70 minutes
void loop /* add main program code here */ // In order to make sure the ADC sample frequence on arduino, // the time cost should be measured each loop /*------------start here-------------------*/ timeStamp = micros ;
int Value = analogRead SensorInputPin ;
// filter processing int DataAfterFilter = myFilter.update Value ;
int envlope = sq DataAfterFilter // any value under threshold will be set to zero envlope = envlope > Threshold ? envlope 0;
timeStamp = micros - timeStamp if TIMING_DEBUG
// Serial.print "Read Data " Serial.println Value // Serial.print "Filtered Data " ;Serial.println DataAfterFilter Serial.print "Squared Data " Serial.println envlope // Serial.print "Filters cost time " Serial.println timeStamp // the filter cost average around 520 us
/*------------end here---------------------*/ // if less than timeBudget, then you still have timeBudget - timeStamp to // do your work delayMicroseconds 500 // if more than timeBudget, the sample rate need to reduce to // SAMPLE_FREQ_500HZ

Calibration
More datasheets: VRAH-05C2500 | VRAH-05C1200 | SRAH-05C1500 | SRAH-05C2500 | MB1112H-TR | FQA13N50C | ADM1028ARQ | M3249 SL005 | M3249 SL001 | M3249 SL002


Notice: we do not provide any warranties that information, datasheets, application notes, circuit diagrams, or software stored on this website are up-to-date or error free. The archived SEN0240 Datasheet file may be downloaded here without warranties.

Datasheet ID: SEN0240 509133