You are browsing as a guest. Sign up (or log in) to start making projects!

Halo

Hardware
  • 3 Devlogs
  • 10 Total hours

A new control system for computers that is different than the regular keyboard and mouse.

Open comments for this post

4h 26m 1s logged

Today I went back and forth, since it is pretty late for me right now ill just give a quick overview. I went back on using sensors for hand movement as I felt that wasn’t practical. So I opted for a CV method. So i built this simple pinch tool today and designed a turret with two cameras in onshape. For cursor and key movement.

0
0
4
Open comments for this post

2h 27m 42s logged

Devlog #2: a hardcoded threshold was never gonna hold up

yea so a fixed threshold on the emg envelope was never gonna hold up either.

went back and actually read the myoware docs properly instead of guessing, specifically https://learn.sparkfun.com/tutorials/getting-started-with-the-myoware-20-muscle-sensor-ecosystem/myoware-20-muscle-sensor, and turns out the board already outputs raw, rectified, and envelope in hardware, so i didnt need to build any filtering myself like i was planning last time. moved the wire off raw and onto env instead, watched the serial plotter, and it was night and day, clean baseline, clean spike on a clench. set a threshold in like ten minutes and called it a win.

came back after a break, restuck the electrodes in about the same spot, and the same threshold either pegged “flexed” the whole time or sat dead flat no matter how hard i clenched. also never wrote down where the gain trim pot was set the first time, so i cant even get back to the “clean” version on purpose right now, im just turning a knob and hoping. so, cool, a threshold that only survives as long as i never touch the sensor, my arm, or the pot again.

turns out this isnt just a me problem either, apparently even coapt’s commercial emg prosthetics need frequent recalibration for the exact same reason, contact impedance just isnt stable session to session for anyone. so a fixed number was always gonna break, i just hadnt hit it yet.

but yea, overall today i felt kinda dumb for thinking “clean signal on the plotter” meant “done,” and now im thinking the real fix is a calibration step that runs every time i put it on, flex hard for a sec, relax for a sec, threshold off whatever that session actually measures instead of a number i picked once and forgot about.

0
0
4
Open comments for this post

3h 9m 59s logged

Devlog #1: eyeballing raw emg was never gonna work

yea so trying to read raw emg by eye and call it a gesture was not the move.

started by digging out a myoware 2.0 i had left over from a old project, strapped the electrodes to my forearm and wired the raw output straight into an esp32 adc pin, no shield, no filtering, just wanted to see what a fist clench looked like on the serial plotter before doing anything smarter. flexed a few times expecting clean spikes i could just threshold.

instead the raw trace was just noise on top of noise. every tiny arm movement gave a spike that looked identical to an actual clench, and the esp32’s adc added its own jitter on top of that. so, signal soup basically, couldnt tell a real flex from garbage.

so i backed off and started looking at how people actually do this instead of freehanding it, found stuff like https://github.com/csce585-mlsystems/EMG-Based-Hand-Recognition which bandpass filters and extracts features before a classifier ever sees the signal, plus a bunch of stuff training on the ninapro dataset that everyone in this space seems to use.

but yea, overall today i felt kind of dumb for expecting raw signal to just work, and now im thinking the real first step isnt gesture classification at all, its building the filtering/envelope pipeline properly before i touch a single label. UI code linked below

0
0
3

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…