1
\$\begingroup\$

I am doing a project in which I want to control small toy car using EMG signals from my forearm. I want to send 4 electrical signals to the computer. I have made a processing circuit which contains an amplifier, filter, and ADC.

My question is,

  1. How can I send 4 signals to the computer using Serial to USB cable?
  2. Is there any alternative with which I can send these signals to the computer more easily?

Edit: I ended up using Arduino Nano and Uno boards (used two of them for wireless communications). The processing circuit was not that good. Whenever I flexed my forearm I would get some distorted signal. After changing the interval at which I was receiving the signal from ADC I was able to get an impulse signal every time I used to contract the muscle. I detected the peak of the signal and performed an action.

I used 4 muslces, which gave me 4 individual motions of the motor. Very basic project not much complications.

\$\endgroup\$
2
  • \$\begingroup\$ you'll need to convert the ADC output to ASYNC serial. probably needs a microcontroller and a level shifter like max232, 2:maybe a microcontroller with built-in usb serial - arduino perhaps. \$\endgroup\$ Commented Jan 17, 2016 at 10:02
  • \$\begingroup\$ If you want a helpful answer you need to tell us more about your system. what is the data rate? have you already chosen you adc(s)? if so what is it's output format? would you be willing to change it? If the ADC is still to be chosen what bit-depth/sample rate/noise performance is needed? is sampling all the channels at exactly the same time important? what are you plans for electrical isolation between computer and subject? \$\endgroup\$ Commented Jan 17, 2016 at 10:07

1 Answer 1

2
\$\begingroup\$

If you already have an ADC, you will need something to read your ADC!

You mention a serial to USB cable in your OP. Let's assume that the task is modest enough for all the information to fit into a standard serial data stream.

Without wishing to plug any particular manufacturer, I will tell you what I do for the simplest possible solution of hooking something dumb and digital to a PC.

Use an Arduino (Uno is the easiest to start with) which plugs into the PC USB port directly. The USB allows you to program it. It also allows the PC to communicate with it using standard serial protocols, and is fast enough to talk serial and then do some extra work. The standard Arduino support software on the PC contains a monitor to allow you to talk with it, for testing purposes. You can then use any programming language running on the PC (Python with the 'serial' library is my choice, but anything else you're comfortable with will do, and if you're not yet comfortable with anything else, then Python is my recommendation for what to learn) to talk with the serial port. You can also pipe files to/from the operating system.

Write a program on the Arduino, in C, to read the ADC, format the data, and send the data to the PC. Use parallel, SPI, i2c, many standard protocols have libraries to simplify the task.

You can get other Arduino boards that have a serial interface, and use a USB to serial converter or cable for interface. Although the Uno plugs in directly, it does use serial under the hood, so they are more equivalent than it appears at first glance.

I seem to have used the word 'standard' a lot in this answer. That's because you won't really have to invent anything to do what you want, just hook up standard components and protocols. The tricky bit is making sure you understand what each has been designed to achieve, and then using them that way. 'Ride the horse in the direction it's going'. There's nothing more frustrating than trying to use a tool or component or library to do something it's not been designed to do.

Of course if you are already versed in PIC, then use that instead of Arduino. But I guess if you already use PIC, you wouldn't be asking the question.

\$\endgroup\$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.