Beruflich Dokumente
Kultur Dokumente
ABOUT
BLOG
SHOP
MUSCLECONTROL
DEVELOPER
CONTACTUS
Signupforupdates!*
January19,2016
SIGNUP
OVERVIEW
Thistutorialwillguideyouthroughtheprocess
ofusingElectromyography(EMG)muscle
sensorstocontroltheAdahand.
Joinourdeveloper
community!
Thistutorialisfor:
Hand:AdaV1.0
SIGNUP
CircuitBoard:AlmondV1.2
Firmware:ArtichokeV1.0
Youwillneed:
AdahandwithAlmondcircuitboard,
runningArtichokeV1.0firmware
12VDCpowersupply
ADAV1.0ASSEMBLY
INSTRUCTIONS
Jan26,2016
MicroUSBcable
ComputerrunningArduinoIDE
Solderingiron+solder
2xMuscleSensorV3(orsimilar)
ARTICHOKEV1.0
FIRMWAREUSER
GUIDE
Jan19,2016
2xSensorcables
5xStickyelectrodepads
2x9Vbatteries
2x9Vbatterysnaps
1x4Pole3.5mmheadphonejack
(IMPORTANT,mustbe4Pole)
30cmRedwire
30cmBlackwire
SENSORS
Electromyography(EMG)sensorsareusedto
detecttheelectricalpotentialofyour
muscles.Asignalispickedupfromasurface
electrode,placedonyourskin,thesignalis
thenpassedthroughaseriesofamplifiersand
filterstoproducea'clean'signal.Theresulting
'clean'signaliswithintheusablerangeofa
microcontroller,socanbefedintoanAnalogue
toDigitalConverter(ADC),wherethe
magnitudeofthesignalrepresentsthe
magnitudeofthemuscleactivation,i.e.the
greaterthesignalmagnitude,theharderthe
muscleistensing.
CONSTRUCTINGTHE
SENSOR
EMGsensorsarebecomingmorewidely
available;thistutorialinvolvesthemodification
anduseoftheMuscleSensorV3boardsfrom
AdvancerTechnologies,howeverthistutorial
willalsobrieflycovertheuseoftheirnew
MyoWareboardsaswell.
MUSCLECONTROL
Jan19,2016
Thefirststepisto
attachthebattery
snapstotheMuscle
SensorV3boards.
1.Solderthenegative(black)wirefromthefirst
batterysnapandthepositive(red)wireofthe
secondbatterysnap,totheGNDpadofthe
MuscleSensorV3board
2.Solderthepositive
(red)wireofthefirst
batterysnaptothe
'+Vs'padonthe
MuscleSensorV3board
3.Solderthenegative(black)wireofthe
secondbatterysnaptothe'-Vs'padonthe
MuscleSensorV3board
Youshouldnowhavethefirstbatterysnap
connectedbetween'+Vs'andGND,andthe
otherbatterysnapbetweenGNDand'-Vs'
4.Soldera10cm
wirebetweenthe
'+Vs'padonthefirst
MuscleSensorV3
boardtothe'+Vs'
padonthesecondMuscleSensorV3board
5.Soldera10cmwirebetweentheGNDpad
onthefirstMuscleSensorV3boardtotheGND
padonthesecondMuscleSensorV3board
6.Soldera10cmwirebetweenthe'-Vs'padon
thefirstMuscleSensorV3boardtothe'-Vs'
padonthesecondMuscleSensorV3board
Thenextstepisto
attachtheMuscle
SensorV3boardsto
theheadphonejack.
1. Solderthe
GNDpadonthesecondMuscleSensor
V3boardtotheGNDconnectiononthe
headphonejack
2. SolderawirefromtheSIGconnectionon
thefirstMuscleSensorV3boardtothe
firstsignalpin(SCL/ADC6/RX)ofthe
headphonejack
3.SolderawirefromtheSIGconnectionon
thesecondMuscleSensorV3boardto
thesecondsignalpin(SDA/ADC7/TX)of
theheadphonejack
4.DONOTCONNECT5Vasthismay
damagetheboard
TheEMGsensorsshouldnowbereadyforus
toplugintotheheadphonejackontheAda
hand,butfirstweneedtoconnectthe
electrodes.
POSITIONINGTHE
ELECTRODES
Eachsensorboardrequiresthreeelectrodesto
attachtotheskin;2electrodesusedforthe
musclesignal(red+blue)anda3rdelectrode
usedforabody/groundreference(black).
However,whenworkingwith2channelswe
areabletodiscardoneofthebody/ground
referenceelectrodes(black).The5remaining
electrodesshouldbeplacedontheforearmas
seenbelow.
1. Presseachofthestickyelectrodepads
intotheelectrodesensors
2. Peeloffthepaperbackingofeachsticky
electrodeandapplytotheskininthe
locationsshownintheimagebelow
3.Themusclesignalelectrodes(red+blue)
foreachchannelshouldbeplacedon
theareaoftheforearmwiththegreatest
musclemass,withatleast2cmbetween
them
4.Thebody/groundreference(black)
electrodeshouldbeplacedonanareaof
thebodywithoutmuchmusclemass,
suchastheelbow
Forearmelectrodeplacement
Notethatthestickyelectrodesaresingleuse
only,andthequalityofthesignaldegrades
greatlyaftertheyareremovedandreapplied.
FIRMWARE
TheArtichokefirmwareallowstheAdahandto
becontrolledviamusclesignalsusingEMG
sensors.Themusclesignalsarefedintothe
ADCoftheAlmondboardviatheheadphone
jack.Musclemodeisdisabledbydefault,but
standardmusclecontrolcanbeenabledby
enteringtheserialcommand'M1',onceenabled
thismodewillstayenabled(evenafterapower
cycle)untilitisdisabledusing'M0'.
Oncestandardmusclemodeisenabled,the
handwilltakeasampleof150musclevalues
(takes200ms),whichitusestogeneratethe
initialbaselinevaluesforyourmuscles,called
thenoisefloor.Thisnoiseflooristhedefault
valueofyourmuscleswhentheyarenotactive,
andchangesdependingonawiderangeof
factors,suchaselectrodeplacement,skin
contactduetosweat/hairsetc.Once
generated,weusethisnoisefloorasthe
baselinereadingofyourmusclesanditis
recalculatedconstantlywhilstthemuscleisnot
activated(anoisefloorcanbegenerated
manuallybyentering'N').
Thethresholdvalueisgeneratedbyaddinga
specifiedsensitivityvaluetothenoisefloor,if
thecurrentmusclesignalisgreaterthanthe
thresholdvalue,themuscleisdeterminedas
activated.Thesensitivityvaluecanbesetvia
serialbyenteringthecommand'U###',where
#isanumberbetween0-1023.
WiththeEMGsensorsconnectedtoyour
musclesandpluggedintothehand,ifyou
enablemusclemode(M1),youcanviewalive
updateofthevaluesbyenteringthecommand
'M3'.Thisshouldcontinuouslyprintoutmuscle
datainthefollowingformat;
M#-rawmusclesignal
T#-calculatedthreshold(noisefloor+
sensitivityvalue)
N#-noisefloor
A#-whetherthemuscleisdeterminedto
beactive(0=inactive,1=active)
DIR-calculateddirectionofthe
combinedmusclesignal(open,close,
none)
Withyourmusclesrelaxed,bothA0andA1
shouldbe0,showingthatthemusclesare
determinedtobeinactive.Ifanyofthemis
detectedasactive,evenwhenthemuscleis
relaxed,tryincreasingthesensitivityvalueby
entering'U###',where#isthenew
value,typicallybetween100-300,wherethe
lowerthenumberrelatestoanincreasein
sensitivity.
MUSCLE
CONTROLMETHODS
OnceyouhaveconfirmedtheEMGsensorsare
workingandwiredcorrectly,youcanstartto
controlthehandusingyourmuscles.
Theimageontherightshowshowthetwo
handmotionsyoushouldperformtoactivate
theinsideandoutsideforearmmuscleswith
theleastamountofeffort.
Ifyoufindthatthehandisrespondingtothe
oppositecommand(i.e.youperformanopen
movementandthehandcloses)switchingthe
electrodesensorwiresbetweenthetwo
MuscleSensorBoards.
STANDARDMUSCLE
CONTROL
Thedefaultcontrolmodeisstandardmuscle
control;thehandwilleitheropenorclose,
dependingonwhichofthemusclesistensed.
Forexample,whentheouterforearmmuscleis
tensed,thehandshouldopen,andwhenthe
innerforearmmuscleistensed,thehand
shouldclose.
Ifthehandisopen,andyouholdtheopen
forearmmusclefor700ms,thehandshould
cycletothenextgrippattern,youshouldthen
beabletoopenandcloseasnormalinthisgrip
pattern.Thepossiblegrippatternsarelistedin
orderbelow.
1. Fist-allfingersandthumbmove
2. Palm-allfingersmove,thumbstays
open
3.Thumbsup-allfingersstayclosed,
thumbmoves
4.Point-allfingersremainclosed,onlythe
indexfingermoves
5. Pinch-allfingersremainopen,onlythe
thumbandindexmove
6. Tripod-ringandpinkyremainopen,
indexmiddleandthumbmove
Toenablethiscontrolmode,enter'M1'over
serial,thismethodwillalsostayenabledaftera
powercycle,unlessitisdisabledbyentering
'M0'.
POSITIONALMUSCLE
CONTROL
Positionalmusclecontrolisdesignedto
achievefinercontrolofthehandwhenusing
musclesensors,thismodealsomoreclosely
reflectshowaroboticprosthetichandis
controlled.Thehandonlymoveswhena
muscleistensed,andthespeedofmovement
isproportionaltothesizeofthemuscle
activation/howmuchthemuscleistensed.This
meansthatyoucanmovethehandslowlyby
tensinggentlyandyoucanmovethehand
quicklywhentensingmorefirmly.Toenable
thiscontrolmode,enter'M2'overserial,this
methodwillalsostayenabledafterapower
cycle,unlessitisdisabledbyentering'M0'.For
thismodeyoumayneedtodecreasethe
sensitivitytoallowforthe'gentle'tensestobe
pickedupbythehand.
EXTRA
I2CMUSCLESENSORS
Analternativesolutionformusclesensingisto
useanI2CADC.Insteadofpassingtheraw
analoguesignalsdownthroughalongcableto
theADContheAlmondboard,whichcould
resultinanincreaseinnoise,anI2CADCcould
belocatedascloseaspossibletothe
muscles/EMGsensor.Thiswouldresultina
shortercablelengthbetweentheoutputofthe
EMGsensorsandtheADC,thusreducingthe
chanceofnoise.
Artichokeisdesignedtousebothanalogue
(default)andI2Cmusclesensors,inparticular
theAD7995,a4channel10-bitI2CADC.
Thelibrarycanbefoundat
www.github.com/OpenBionics/Arduino_Libraries,titled'I2C_ADC.h'.
Oncedownloadedandinstalled,itcanbe
enabledwithinArtichokebynavigatingto
'Globals.h'anduncommentingthefollowing;
Uncommentingthislinechangesthemuscle
controllertoperformanADC2.read()
(I2C_ADC)insteadofananalogRead(),enables
theI2C_ADCtobeinitialisedandpullstheADC
pinshightoconfigureI2Clines,asdiscussed
below.
IMPORTANTNOTEABOUT
I2C
The2datalinespassedthroughthe
headphoneportontheAlmondboardare
connectedtobothI2Cpinsandanaloguepins
(througha10kresistor).Iftheheadphoneportis
beingusedforanaloguedata(e.g.muscle
sensors),youshouldnotinitialiseI2C.When
usingI2C,theanaloguepinsneedtobepulled
hightoactasthepullupsfortheI2Clines.
Share
ArtichokeV1.0
FirmwareUserGuide
0Likes
Home
Downloads
Investment
About
TheTeam
Opportunities
Blog
ContactUs
DeveloperCommunity
Shop
Tutorials
Forum
Tocontactuse-mail
hello@openbionics.com
(c)OpenBionics2016