Slide 1

Slide 1 text

ےτϨΛश׳Խͤ͞Δ ςΫϊϩδʔ !OBPLJB

Slide 2

Slide 2 text

ࣗݾ঺հ w Ѫౠ௚थ ͋ͨ͗ͳ͓͖  w UXJUUFS!OBPLJB w ΤϯδχΞɻ"TL%PDUPSTͱήϊϜؔ࿈αʔϏε୲౰ w 3VCZ +BWB +4ͳͲීஈ৮ͬͯ·͢ w झຯ͸৯΂า͖ͱిݯΛ࢖Θͳ͍ήʔϜ

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ w ϓϥΠϕʔτͰ΍ͬͯΔϓϩδΣΫτͷ࿩Ͱ͢ w ےτϨΛͨͯ͘͠΋ͳ͔ͳ͔श׳ԽͰ͖ͳ͍ਓͰ΋ɺے τϨΛश׳ԽͰ͖ΔϕετϓϥΫςΟεΛൃݟͨ͠ʂʂ w ͦͷϕετϓϥΫςΟεΛΑΓ࣮֬ʹ࣮ફ͢ΔͨΊͷ "QQMF8BUDI༻ͷΞϓϦΛ࡞ͬͨ

Slide 4

Slide 4 text

ࢲ͸ͳͥٸʹےτϨΛ ࢝ΊΔΑ͏ʹͳ͔ͬͨ

Slide 5

Slide 5 text

͋Δ೔ɺ຾Γʹͭ͜͏ͱͯ͠ ෆҙʹؾ͍ͮͨ

Slide 6

Slide 6 text

ࠓɺΤϯδχΞͱͯ͠ಇ͍ͯ ऩೖΛಘ͍ͯΔ͚Ͳ

Slide 7

Slide 7 text

΋֩͠ઓ૪Ͱจ໌่͕յͯ͠ɺ Πϯλʔωοτ΍ύιίϯ͕࢖͑ͳ͘ͳͬͨ ΒɺͲ͏΍ͬͯऩೖΛಘΕ͹͍͍Μͩɾɾɾʁ

Slide 8

Slide 8 text

૝ఆ͢Δੈք؍

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

΋֩͠ઓ૪ޙͷੈքͰΑ͏΍͘खʹೖΕͨ ࢓ࣄ͕΢ΥʔϘʔΠͩͬͨΒʁ ೑ମ࿑ಇ ˠࠓ͔ΒےτϨ͢Δ͔͠ͳ͍

Slide 11

Slide 11 text

໰୊ w ͍ͭ΋ےτϨΛ͠Α͏ͱࢥ͏Μ͚ͩͲɺҙࢥ͕ऑ͗ͯ͢ ·ͱ΋ʹ௕ଓ͖ͨ͜͠ͱ͕ͳ͍ w ͲΕ͘Β͍ऑ͍͔ͱ͍͏ͱɺՈ͔Βెา̍̌෼ͷͱ͜Ζ ʹ͋ΔτϨʔχϯάδϜΛʮԕ͍ʯͱ͍͏ཧ༝Ͱୀձͨ͠ ͜ͱ͕͋ΔϨϕϧ

Slide 12

Slide 12 text

ͦΜͳ๻Ͱ΋ઈରʹےτϨΛ ܧଓͰ͖Δํ๏Λݟ͚ͭ ͨɾɾ

Slide 13

Slide 13 text

ࢲͷ5XJUUFSΞΧ΢ϯτʹͯɻ

Slide 14

Slide 14 text

ࢲͷ5XJUUFSΞΧ΢ϯτʹͯɻ

Slide 15

Slide 15 text

ࣗ෼ʹ՝ͨ͠ϧʔϧ w ຖि࠷௿ೋճɺඞͣےτϨΛ͢Δ w ےτϨΛͨ͠ΒͦͷࢫΛ5XJUUFSʹॻ͖ࠐΉ w ΋͠िೋճͷےτϨΛୡ੒͍ͯ͠ͳ͚Ε͹ɺϑΥϩϫʔ͸ ࢲʹઍԁ෼ͷ"NB[POΪϑτ݊Λ੥ٻͰ͖Δ
 
 ˠ͜ͷࠒϑΥϩϫʔਓ͘Β͍ͩͬͨͷͰɺےτϨΛଵ Ε͹ࢲ͸࠷େͰສԁͷଛࣦΛड͚Δ͜ͱʹͳΔɻ
 ڪා৺ʹۦΒΕͯɺےτϨ͕ḿΔ

Slide 16

Slide 16 text

݁Ռ w ڪා৺ʹۦΒΕͳ͕Βࡾϲ݄΋ےτϨΛܧଓ͢Δ͜ͱ͕ Ͱ͖ͨʂʢྺ୅࠷ߴه࿥ʣ

Slide 17

Slide 17 text

͔͠͠ࡾϲ݄໨ʹͯ͠࠳ં
 ͦΕͰ΋࠷௕ه࿥

Slide 18

Slide 18 text

໰୊఺ w ୭΋"NB[POΪϑτ݊Λ੥ٻͯ͠͸དྷͳ͔ͬͨ
 
 
 Կਓ͔΢ΥονϟʔΛެݴ͢Δਓ͕͍ͨ͸ͣͳͷͩ ͕ɾɾɾ 


Slide 19

Slide 19 text

໰୊఺ w ୭΋"NB[POΪϑτ݊Λ੥ٻͯ͠͸དྷͳ͔ͬͨ
 
 
 Կਓ͔΢ΥονϟʔΛެݴ͢Δਓ͕͍ͨ͸ͣͳͷͩ ͕ɾɾɾ 
 ˠҙ֎ͱΈΜͳ༏͔ͬͨ͠

Slide 20

Slide 20 text

໰୊఺ w ҙ֎ͱΈΜͳྑࣝ͋ΔେਓͩͬͨͷͰɺϖφϧςΟͷҙຯ ͕ͳ͔ͬͨ w ےτϨ͢Δͨͼʹ5XJUUFSʹॻ͖ࠐΉͷΊΜͲ͍͘͞͠ɺ ͳΜ͔Ξϐʔϧͯ͠ΔΈ͍ͨͰݏͩ


Slide 21

Slide 21 text

ͦ͜ͰࣗಈԽΛࢼΈΔ w िೋճےτϨΛߦΘͳ͍ͱɺࣗಈతʹΫϨδοτΧʔυ͔ Β͓ۚΛҾ͖མͱ͍ͯ͘͜͠ͱ͸Ͱ͖ͳ͍͔ʁ w "QQMF8BUDI্Ͱಈ࡞͠ɺՃ଎౓ηϯαʔͰےτϨͷಈ ͖Λݕ஌ͯ͠ɺͦΕ͕Ұఆظ్ؒઈ͑ͨΒ͓ۚΛࣗಈతʹ Ҿ͖མͱ͍ͯͦ͘͠ΜͳΞϓϦ

Slide 22

Slide 22 text

ػೳ w J1IPOFΞϓϦͰϢʔβʹ݄ऩ खऔΓ ͱɺΫϨδοτΧʔυ৘ ใΛೖྗͤ͞Δ w ےτϨͨ͠ࣄ͕ࣗݾਃࠂͩͱڏِͷਃࠂ͕ՄೳͳͷͰɺ"QQMF 8BUDIͰےτϨͷϞʔγϣϯΛݕ஌͠ɺه࿥Ͱ͖ΔΑ͏ʹ͢Δ w ےτϨͱ͍ͬͯ΋͍Ζ͍Ζϝχϡʔ͕͋Δ͕ɺͱΓ͋͑ͣෲے͕ ه࿥Ͱ͖Ε͹ྑ͠ͱ͢Δ w िʹೋճҎ্ɺه࿥͕ߦΘΕͳ͔ͬͨΒɺೖྗ͞Ε݄ͨऩʹԠ ͯ͡ɺࣗಈతʹΧʔυ͔ΒҾ͖௨͠Λߦ͏
 ʢϓϩτλΠϓͰ͸͜͜͸ະ࣮૷

Slide 23

Slide 23 text

ϓϩτλΠϓΛ࡞ͬͯ ݟͨ

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

γεςϜߏ੒ Amazon
 DynamoDB Lambda function Amazon API Gateway* ܾࡁ৘ใ τϨʔχϯάͷه࿥

Slide 27

Slide 27 text

ෲےͨ͜͠ͱΛݕ஌͢Δํ๏ w $PSF.PUJPOΛ༻͍ͯ"QQMF8BUDIͷճస཰Λर͏ w γϯϓϧʹɺϐον͕࣠Ұఆͷ֯౓มԽͨ͠Βɺෲے͕ߦ ΘΕͨ͜ͱʹ͢Δ ϩʔϧ ϐον Ϥʔ

Slide 28

Slide 28 text

σόΠεͷϞʔγϣϯΛर͏ ͨΊͷϋϯυϥΛొ࿥͢Δ let motionManager = CMMotionManager() motionManager.deviceMotionUpdateInterval = 1.0 / 50 // 50hz motionManager.startDeviceMotionUpdates(to: queue) { (deviceMotion: CMDeviceMotion?, error: Error?) in if deviceMotion != nil { self.processDeviceMotion(deviceMotion!) } }

Slide 29

Slide 29 text

σόΠεͷϞʔγϣϯΛर͏ ͨΊͷϋϯυϥΛొ࿥͢Δ let motionManager = CMMotionManager() motionManager.deviceMotionUpdateInterval = 1.0 / 50 // 50hz motionManager.startDeviceMotionUpdates(to: queue) { (deviceMotion: CMDeviceMotion?, error: Error?) in if deviceMotion != nil { self.processDeviceMotion(deviceMotion!) } }

Slide 30

Slide 30 text

ճస཰ͷมԽΛݕग़͢Δ let pitchThreshold = 1.95 // Radians let rateThreshold = 3.5 // Radians/sec func processDeviceMotion(_ deviceMotion: CMDeviceMotion) { let rotationRate = deviceMotion.rotationRate let rateX = rotationRate.x // rateBuffer͸1ඵؒ෼ͷճస཰Λ഑ྻͰอ͍࣋ͯ͠Δ(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() } }

Slide 31

Slide 31 text

ͦΕͬΆ͘ෲےΛΧ΢ϯτͰ ͖ͯ͸ྑ͍͕ɾɾ w ࢲͷෲے͔ͩΒ͏·͘ճ਺Χ΢ϯτͰ͖ͯΔ͚Ͳɺ΋͏গ͠ νϡʔχϯάͷ༨஍͸͋Δؾ͕͢Δ w צͷྑ͍ਓ͸͓෼͔Γͷ௨Γɺ࿹Λ͙ΔΜ͙ΔΜ͢Ε͹ෲےͨ͠ ͜ͱʹͳͬͯ͠·͏ w αʔϏεతͳ໰୊ɻ
 ΋͠िೋճͷෲے͕ߦΘΕͳ͚Ε͹ɺϢʔβʹొ࿥ͤͯ͞ΔΧʔ υΛ࢖ͬͯҾ͖མͱ͕͠ߦΘΕΔ͕ɺܾࡁʹ༻͍͍ͯΔ4USJQFͷ ౎߹Ͱɺৼࠐઌ͕ࢲࣗ਎͔͠ࢦఆͰ͖ͳ͍
 


Slide 32

Slide 32 text

ͦΕͬΆ͘ෲےΛΧ΢ϯτͰ ͖ͯ͸ྑ͍͕ɾɾ w ࢲͷෲے͔ͩΒ͏·͘ճ਺Χ΢ϯτͰ͖ͯΔ͚Ͳɺ΋͏গ͠ νϡʔχϯάͷ༨஍͸͋Δؾ͕͢Δ w צͷྑ͍ਓ͸͓෼͔Γͷ௨Γɺ࿹Λ͙ΔΜ͙ΔΜ͢Ε͹ෲےͨ͠ ͜ͱʹͳͬͯ͠·͏ w αʔϏεతͳ໰୊ɻ
 ΋͠िೋճͷෲے͕ߦΘΕͳ͚Ε͹ɺϢʔβʹొ࿥ͤͯ͞ΔΧʔ υΛ࢖ͬͯҾ͖མͱ͕͠ߦΘΕΔ͕ɺܾࡁʹ༻͍͍ͯΔ4USJQFͷ ౎߹Ͱɺৼࠐઌ͕ࢲࣗ਎͔͠ࢦఆͰ͖ͳ͍
 ˠظͤͣͯ͠ϏδωενϟϯεΛ૑ग़ͯ͠͠·ͬͨ


Slide 33

Slide 33 text

·ͱΊ w ڧ྽ͳϖφϧςΟ͕͋ΔͱےτϨ͸ḿΔ w $PSF.PUJPO͸ҙ֎ͱ؆୯ w ͜ͷΞϓϦΛଞਓʹ࢖Θͤͯͦ͜Ͱಘ͓ͨۚͰϥΠβοϓ ʹ͍͚͹ɺࢲݸਓͷ՝୊͸ղܾ͢ΔՄೳੑ͕͋Δ w ։ൃ͢Δߦҝ ಈ࡞֬ೝͱ͔ ࣗମͰ͍ͩͿෲے͕஁͑ΒΕ ͨ