Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
筋トレを習慣化させる テクノロジー
Search
naokia
December 06, 2018
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
筋トレを習慣化させる テクノロジー
naokia
December 06, 2018
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Building AI with AI
inesmontani
PRO
1
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
Into the Great Unknown - MozCon
thekraken
41
2.7k
Thoughts on Productivity
jonyablonski
76
5.3k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
How to train your dragon (web standard)
notwaldorf
97
6.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Are puppies a ranking factor?
jonoalderson
1
3.8k
Transcript
ےτϨΛश׳Խͤ͞Δ ςΫϊϩδʔ !OBPLJB
ࣗݾհ w Ѫౠथ ͋ͨ͗ͳ͓͖ w UXJUUFS!OBPLJB w ΤϯδχΞɻ"TL%PDUPSTͱήϊϜؔ࿈αʔϏε୲ w
3VCZ +BWB +4ͳͲීஈ৮ͬͯ·͢ w झຯ৯า͖ͱిݯΛΘͳ͍ήʔϜ
ࠓ͢͜ͱ w ϓϥΠϕʔτͰͬͯΔϓϩδΣΫτͷͰ͢ w ےτϨΛͨͯ͘͠ͳ͔ͳ͔श׳ԽͰ͖ͳ͍ਓͰɺے τϨΛश׳ԽͰ͖ΔϕετϓϥΫςΟεΛൃݟͨ͠ʂʂ w ͦͷϕετϓϥΫςΟεΛΑΓ࣮֬ʹ࣮ફ͢ΔͨΊͷ "QQMF8BUDI༻ͷΞϓϦΛ࡞ͬͨ
ࢲͳͥٸʹےτϨΛ ࢝ΊΔΑ͏ʹͳ͔ͬͨ
͋ΔɺΓʹͭ͜͏ͱͯ͠ ෆҙʹؾ͍ͮͨ
ࠓɺΤϯδχΞͱͯ͠ಇ͍ͯ ऩೖΛಘ͍ͯΔ͚Ͳ
֩͠ઓ૪Ͱจ໌่͕յͯ͠ɺ Πϯλʔωοτύιίϯ͕͑ͳ͘ͳͬͨ ΒɺͲ͏ͬͯऩೖΛಘΕ͍͍Μͩɾɾɾʁ
ఆ͢Δੈք؍
None
֩͠ઓ૪ޙͷੈքͰΑ͏͘खʹೖΕͨ ࣄ͕ΥʔϘʔΠͩͬͨΒʁ ମ࿑ಇ ˠࠓ͔ΒےτϨ͢Δ͔͠ͳ͍
w ͍ͭےτϨΛ͠Α͏ͱࢥ͏Μ͚ͩͲɺҙࢥ͕ऑ͗ͯ͢ ·ͱʹଓ͖ͨ͜͠ͱ͕ͳ͍ w ͲΕ͘Β͍ऑ͍͔ͱ͍͏ͱɺՈ͔Βెา̍̌ͷͱ͜Ζ ʹ͋ΔτϨʔχϯάδϜΛʮԕ͍ʯͱ͍͏ཧ༝Ͱୀձͨ͠ ͜ͱ͕͋ΔϨϕϧ
ͦΜͳͰઈରʹےτϨΛ ܧଓͰ͖Δํ๏Λݟ͚ͭ ͨɾɾ
ࢲͷ5XJUUFSΞΧϯτʹͯɻ
ࢲͷ5XJUUFSΞΧϯτʹͯɻ
ࣗʹ՝ͨ͠ϧʔϧ w ຖि࠷ೋճɺඞͣےτϨΛ͢Δ w ےτϨΛͨ͠ΒͦͷࢫΛ5XJUUFSʹॻ͖ࠐΉ w ͠िೋճͷےτϨΛୡ͍ͯ͠ͳ͚ΕɺϑΥϩϫʔ ࢲʹઍԁͷ"NB[POΪϑτ݊ΛٻͰ͖Δ ˠ͜ͷࠒϑΥϩϫʔਓ͘Β͍ͩͬͨͷͰɺےτϨΛଵ
Εࢲ࠷େͰສԁͷଛࣦΛड͚Δ͜ͱʹͳΔɻ ڪා৺ʹۦΒΕͯɺےτϨ͕ḿΔ
݁Ռ w ڪා৺ʹۦΒΕͳ͕Βࡾϲ݄ےτϨΛܧଓ͢Δ͜ͱ͕ Ͱ͖ͨʂʢྺ࠷ߴهʣ
͔͠͠ࡾϲ݄ʹͯ͠࠳ં ͦΕͰ࠷ه
w ୭"NB[POΪϑτ݊Λٻͯ͠དྷͳ͔ͬͨ Կਓ͔ΥονϟʔΛެݴ͢Δਓ͕͍ͨͣͳͷͩ ͕ɾɾɾ
w ୭"NB[POΪϑτ݊Λٻͯ͠དྷͳ͔ͬͨ Կਓ͔ΥονϟʔΛެݴ͢Δਓ͕͍ͨͣͳͷͩ ͕ɾɾɾ ˠҙ֎ͱΈΜͳ༏͔ͬͨ͠
w ҙ֎ͱΈΜͳྑࣝ͋ΔେਓͩͬͨͷͰɺϖφϧςΟͷҙຯ ͕ͳ͔ͬͨ w ےτϨ͢Δͨͼʹ5XJUUFSʹॻ͖ࠐΉͷΊΜͲ͍͘͞͠ɺ ͳΜ͔Ξϐʔϧͯ͠ΔΈ͍ͨͰݏͩ
ͦ͜ͰࣗಈԽΛࢼΈΔ w िೋճےτϨΛߦΘͳ͍ͱɺࣗಈతʹΫϨδοτΧʔυ͔ Β͓ۚΛҾ͖མͱ͍ͯ͘͜͠ͱͰ͖ͳ͍͔ʁ w "QQMF8BUDI্Ͱಈ࡞͠ɺՃηϯαʔͰےτϨͷಈ ͖Λݕͯ͠ɺͦΕ͕Ұఆظ్ؒઈ͑ͨΒ͓ۚΛࣗಈతʹ Ҿ͖མͱ͍ͯͦ͘͠ΜͳΞϓϦ
ػೳ w J1IPOFΞϓϦͰϢʔβʹ݄ऩ खऔΓ ͱɺΫϨδοτΧʔυ ใΛೖྗͤ͞Δ w ےτϨͨ͠ࣄ͕ࣗݾਃࠂͩͱڏِͷਃࠂ͕ՄೳͳͷͰɺ"QQMF 8BUDIͰےτϨͷϞʔγϣϯΛݕ͠ɺهͰ͖ΔΑ͏ʹ͢Δ w
ےτϨͱ͍͍ͬͯΖ͍Ζϝχϡʔ͕͋Δ͕ɺͱΓ͋͑ͣෲے͕ هͰ͖Εྑ͠ͱ͢Δ w िʹೋճҎ্ɺه͕ߦΘΕͳ͔ͬͨΒɺೖྗ͞Ε݄ͨऩʹԠ ͯ͡ɺࣗಈతʹΧʔυ͔ΒҾ͖௨͠Λߦ͏ ʢϓϩτλΠϓͰ͜͜ະ࣮
ϓϩτλΠϓΛ࡞ͬͯ ݟͨ
None
None
γεςϜߏ Amazon DynamoDB Lambda function Amazon API Gateway* ܾࡁใ τϨʔχϯάͷه
ෲےͨ͜͠ͱΛݕ͢Δํ๏ w $PSF.PUJPOΛ༻͍ͯ"QQMF8BUDIͷճసΛर͏ w γϯϓϧʹɺϐον͕࣠Ұఆͷ֯มԽͨ͠Βɺෲے͕ߦ ΘΕͨ͜ͱʹ͢Δ ϩʔϧ ϐον Ϥʔ
σόΠεͷϞʔγϣϯΛर͏ ͨΊͷϋϯυϥΛొ͢Δ let motionManager = CMMotionManager() motionManager.deviceMotionUpdateInterval = 1.0 /
50 // 50hz motionManager.startDeviceMotionUpdates(to: queue) { (deviceMotion: CMDeviceMotion?, error: Error?) in if deviceMotion != nil { self.processDeviceMotion(deviceMotion!) } }
σόΠεͷϞʔγϣϯΛर͏ ͨΊͷϋϯυϥΛొ͢Δ let motionManager = CMMotionManager() motionManager.deviceMotionUpdateInterval = 1.0 /
50 // 50hz motionManager.startDeviceMotionUpdates(to: queue) { (deviceMotion: CMDeviceMotion?, error: Error?) in if deviceMotion != nil { self.processDeviceMotion(deviceMotion!) } }
ճసͷมԽΛݕग़͢Δ let pitchThreshold = 1.95 // Radians let rateThreshold =
3.5 // Radians/sec func processDeviceMotion(_ deviceMotion: CMDeviceMotion) { let rotationRate = deviceMotion.rotationRate let rateX = rotationRate.x // rateBuffer1ඵؒͷճసΛྻͰอ͍࣋ͯ͠Δ(50hzͳͷͰ50Πϕϯτ) rateBuffer.addSample(rateX) if !rateBuffer.isFull() { return } let accumulatedPitchRot = rateBuffer.sum() / 50 let peakRate = accumulatedPitchRot > 0 ? rateAlongGravityBuffer.max() : rateAlongGravityBuffer.min() if (accumulatedPitchRot > pitchThreshold && peakRate > rateThreshold) { incrementCountAndUpdateDelegate() } if (recentDetection && abs(rateBuffer.recentMean()) < resetThreshold) { recentDetection = false rateAlongGravityBuffer.reset() } }
ͦΕͬΆ͘ෲےΛΧϯτͰ ͖ͯྑ͍͕ɾɾ w ࢲͷෲے͔ͩΒ͏·͘ճΧϯτͰ͖ͯΔ͚Ͳɺ͏গ͠ νϡʔχϯάͷ༨͋Δؾ͕͢Δ w צͷྑ͍ਓ͓͔Γͷ௨ΓɺΛ͙ΔΜ͙ΔΜ͢Εෲےͨ͠ ͜ͱʹͳͬͯ͠·͏ w αʔϏεతͳɻ
͠िೋճͷෲے͕ߦΘΕͳ͚ΕɺϢʔβʹొͤͯ͞ΔΧʔ υΛͬͯҾ͖མͱ͕͠ߦΘΕΔ͕ɺܾࡁʹ༻͍͍ͯΔ4USJQFͷ ߹Ͱɺৼࠐઌ͕ࢲ͔ࣗ͠ࢦఆͰ͖ͳ͍
ͦΕͬΆ͘ෲےΛΧϯτͰ ͖ͯྑ͍͕ɾɾ w ࢲͷෲے͔ͩΒ͏·͘ճΧϯτͰ͖ͯΔ͚Ͳɺ͏গ͠ νϡʔχϯάͷ༨͋Δؾ͕͢Δ w צͷྑ͍ਓ͓͔Γͷ௨ΓɺΛ͙ΔΜ͙ΔΜ͢Εෲےͨ͠ ͜ͱʹͳͬͯ͠·͏ w αʔϏεతͳɻ
͠िೋճͷෲے͕ߦΘΕͳ͚ΕɺϢʔβʹొͤͯ͞ΔΧʔ υΛͬͯҾ͖མͱ͕͠ߦΘΕΔ͕ɺܾࡁʹ༻͍͍ͯΔ4USJQFͷ ߹Ͱɺৼࠐઌ͕ࢲ͔ࣗ͠ࢦఆͰ͖ͳ͍ ˠظͤͣͯ͠ϏδωενϟϯεΛग़ͯ͠͠·ͬͨ
·ͱΊ w ڧͳϖφϧςΟ͕͋ΔͱےτϨḿΔ w $PSF.PUJPOҙ֎ͱ؆୯ w ͜ͷΞϓϦΛଞਓʹΘͤͯͦ͜Ͱಘ͓ͨۚͰϥΠβοϓ ʹ͍͚ɺࢲݸਓͷ՝ղܾ͢ΔՄೳੑ͕͋Δ w ։ൃ͢Δߦҝ
ಈ࡞֬ೝͱ͔ ࣗମͰ͍ͩͿෲے͕͑ΒΕ ͨ