Skip to content
/ multi-ems Public
forked from rkmtlab/multi-ems

EMS with multiple channels, for prototyping etc.

License

Notifications You must be signed in to change notification settings

m19s/multi-ems

 
 

Repository files navigation

multi-ems

"multi-channel EMS" with Processing and Arduino.
Simultaneous output of maximum of 20 channels are available.

This version has several significant improvements from the prior version.

Branches

A prior stable version can be found in multi-ems-Apr18.
A C++ formatted version (for a prior ver.) can be found in multi-ems-cpp.

Description

The Processing sends serials to a master Arduino.
The master Arduino communicates with the slave Arduino via I2C.

One board has 4 output channels.
However, the channels can be increased by using multiple boards.
In this case, minor revision is required for the source codes.

The board has monophasic signals default.
You can combine 2 channels to use biphasic signals (i.e., one board for 2 channel biphasic output).

READ BEFORE USE

You must read the following document before usage. TERMSOFUSE.md
By using the repository, you are confirming and agreeing to the terms in the document.

Dependencies

Files

  • multiEMSUI: The Processing code - GUI
  • multiEMSDA: The master Arduino for EMS pulse generation
  • multiEMSSlave: The slave Arduino for voltage adjusting pulse generation (500 Hz max)
  • /case/multiems.ai: Case data for 3mm plastic

Board Detail

board

Connect GC to D6, DCG to D7 default.
You can use either the battery connector or the socket (BATIN and GND).
AGND and GND are isolated. AGND is for the Arduino and GND is for the external power source (battery).
Change between Digital (D) and Analog (A) intensity adjustment with the switches for each channels.

Developing your own Board

Follow the partslist.txt.

  • There are optional parts for implementation, where you can adjust some parameters by yourself.
  • Audio jacks are optional, which you can simply use the other sockets for electrode connection.
  • The audio jacks are compatible with Omrons cables and electrodes and other EMS standard plugs.
  • Use the Arduino bootloader and duplicate the Arduino with ATmega328P (or buy one from stores). Then write the 'multiEMSSlave.ino' to the microcomputer.

Notes

  • The voltage changes exponentially.
  • Do not use the audio jack and the socket outputs simultaneously (however, it is possible to do so, but you must understand the theory of the circuit to do so).

Authors

Michinari Kono, U-Tokyo ( mchkono[at]acm.org )

Copyrights, License

Copyright (c) 2017 Michinari Kono
Released under the MIT license

About

EMS with multiple channels, for prototyping etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Processing 63.3%
  • C++ 36.7%