Slide 1

Slide 1 text

"NB[PO&DIPͷ ΢ΣΠΫϫʔυΛΧελϚΠζ͢Δ NBU !SPNJPHBLV

Slide 2

Slide 2 text

λΠτϧ͸൒෼௼ΓͰ͢ ͝ΊΜͳ͍͞

Slide 3

Slide 3 text

ͱ͜ΖͰօ͞Μ

Slide 4

Slide 4 text

޷͖Ͱ͔͢ʁ

Slide 5

Slide 5 text

w ʮΞΠυϧ׆ಈʯΛςʔϚʹ ͨ͠ঁࣇ޲͚ίϯςϯπ w %$%ɺ57ΞχϝͰల։த w ݱࡏγϦʔζ࡞໨ʮΞΠΧπ ϑϨϯζʂʯ͕์өத

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

w ܶதϞόΠϧΞϓϦʮΞΠΧ πφϏʯͷΩϟϥΫλʔ w "*Ͱ͋Δ w ʮϋϩʔɺίίͪΌΜʯͱݺ ͼ͔͚ΔͱʮίίͩΑʂʯͱ ىಈ͢Δʢ$7ॾ੕͢ΈΕʣ w ͔Θ͍͍ ίίͪΌΜ

Slide 9

Slide 9 text

IUUQTCJUMZ'UK[ ʮίίͩΑʂʯ $7ॾ੕͢ΈΕ "MFYBɺΞΠΧπφϏ։͍ͯɺ ϋϩʔίίͪΌΜ ʮ͍ͬ͠ΐʹ"ŋ*ŋ,ŋ"ŋ5ŋ4ŋ6ʂʯNQ "MFYBɺΞΠΧπφϏ։͍ͯɺ Վͬͯ

Slide 10

Slide 10 text

Կ͔͕଍Γͳ͍ɾɾɾ

Slide 11

Slide 11 text

IUUQTCJUMZ'UK[ ʮίίͩΑʂʯ $7ॾ੕͢ΈΕ "MFYBɺΞΠΧπφϏ։͍ͯɺ ϋϩʔίίͪΌΜ ʮ͍ͬ͠ΐʹ"ŋ*ŋ,ŋ"ŋ5ŋ4ŋ6ʂʯNQ "MFYBɺΞΠΧπφϏ։͍ͯɺ Վͬͯ

Slide 12

Slide 12 text

ʮϋϩʔίίͪΌΜʯ Λ΢ΣΠΫϫʔυʹ͍ͨ͠ʂ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

"DUJPO#VUUPO

Slide 16

Slide 16 text

ͭ·Γ

Slide 17

Slide 17 text

"NB[PO&DIPͷ ΢ΣΠΫϫʔυΛΧελϚΠζ͢Δ ʢ෺ཧʣ NBU !SPNJPHBLV

Slide 18

Slide 18 text

Ͳ͏΍ͬͯԡ͢ʁ

Slide 19

Slide 19 text

w 3BTQCFSSZ1J.PEFM# w ϥζύΠ༻ిݯ w 4%Χʔυ w 64#ϚΠΫ w αʔϘϞʔλ

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Ի੠ೝࣝͲ͏͢Δʁ

Slide 22

Slide 22 text

ީิ +VMJVTʢϑϦʔͷԻ੠ೝࣝιϑτ΢ΣΞʣ Ի੠ೝࣝ"1*ʢ(PPHMFɺ.4౳͕ఏڙʣ 8FC4QFFDI"1*

Slide 23

Slide 23 text

+VMJVT w ຊମͱ͸ผʹԻڹϞσϧɾݴޠϞσϧ͕ೖͬͨجຊతͳσΟ ΫςʔγϣϯΩοτ͕഑෍͞Ε͍ͯΔ w σϑΥϧτͩͱೝࣝ཰͸ѱ͔ͬͨ w ೝࣝ཰Λ্͛ΔͨΊʹಠࣗࣙॻ΋࡞ͬͯΈ͕ͨɺؔ܎ͳ ͍Ի΋ೝࣝ͞Εͯ͠·ͬͨ w ΋ͬͱྑ͍΍Γํ͕͋Δ͸͚ͣͩͲ࿬ಓʹҳΕͦ͏ͩͬ ͨͷͰஅ೦

Slide 24

Slide 24 text

Ի੠ೝࣝ"1* w (PPHMFͷ$MPVE4QFFDIUP5FYU"1*Λࢼͨ͠ w ೝࣝਫ਼౓͸ߴ͍ w ࠷ॳ͸ແྉ͚ͩͲجຊతʹ͓͕͔͔ۚΔ w ৗ࣌ىಈͤ͞ΔͷͰ͙͢جຊ࿮௒͑ͦ͏ɻஅ೦

Slide 25

Slide 25 text

8FC4QFFDI"1* w ϒϥ΢βͰಈ࡞͢ΔʮԻ੠߹੒ʯͱʮԻ੠ೝࣝʯػೳ w ಺෦Ͱ͸(PPHMFͷԻ੠ೝ͕ࣝ࢖ΘΕ͍ͯΔΒ͍͠ w ݱࡏ$ISPNFͷΈରԠ w (PPHMFͷσϞϖʔδ w IUUQTXXXHPPHMFDPNDISPNFEFNPT TQFFDIIUNM

Slide 26

Slide 26 text

const recognition = new webkitSpeechRecognition(); recognition.continuous = true; recognition.lang = "ja"; recognition.onresult = event => { for (let i = event.resultIndex; i < event.results.length; ++i) { if (event.results[i].isFinal) { const word = event.results[i][0].transcript; if (word === "ハローここちゃん") { // モーターを動かす為のなにかしらを行う } } } }; recognition.start();

Slide 27

Slide 27 text

αʔϘϞʔλΛϓϩάϥϜ͔Βಈ͔͢

Slide 28

Slide 28 text

w (PMBOHͰॻ͔ΕͨϩϘςΟΫεϑϨʔϜϫʔΫ w αʔόػೳ͕͋Γɺ"1*Խ͢Δ͜ͱ͕Ͱ͖Δ w ʮಛఆͷΤϯυϙΠϯτʹϦΫΤετ͕དྷͨΒαʔϘ ϞʔλΛಈ͔͢ʯͳΜͯ͜ͱ͕Ͱ͖Δ

Slide 29

Slide 29 text

adaptor := raspi.NewAdaptor() servo := gpio.NewServoDriver(adaptor, "12") //PWM0(18) work := func() { // 13 ~ 41 = 0度 ~ 180度 servo.Move(uint8(27)) //center gobot.After(1*time.Second, func() { servo.Move(uint8(35)) gobot.After(500*time.Millisecond, func() { servo.Move(uint8(27)) }) }) } robot := gobot.NewRobot("servoBot", []gobot.Connection{adaptor}, []gobot.Device{servo}, work, )

Slide 30

Slide 30 text

master := gobot.NewMaster() // Starts the API server on default port 3000 server := api.NewAPI(master) server.Port = "3000" server.Start() servoEndpoint := master.AddRobot(robot) servoEndpoint.AddCommand("move", func(params map[string]interface{}) interface{} { reqParam := fmt.Sprintf("Params: %+v\n", params) robot.Start() return reqParam }) master.Start() http://localhost:3000/api/robots/servoBot/commands/move ͰϦΫΤετΛ଴ͪड͚Δ

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

αʔϘϞʔλΛ"MFYBʹݻఆ͢Δ

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

׬੒ʂ

Slide 35

Slide 35 text

IUUQTZPVUVCFIRS/@L;'6

Slide 36

Slide 36 text

ײ૝ w *P5ॳΊ͚ͯͩͲҙ֎ͱ࡞ΕΔɺάάΕ͹৘ใ΋ͨ͘͞Μग़ͯ͘Δ w (PPHMFͷԻ੠ೝࣝͷޙʹ"NB[PO "MFYB ͷԻ੠ೝࣝ΋࢖ͬͯͯ ΧΦε w ୊ࡐΛίίͪΌΜʹ͓͔ͨ͛͠ͰϞνϕʔγϣϯ͕མͪͳ͔ͬͨ w ೥຤ʹࢥ͍͍ͭͯ೥࢝ʹϥζύΠങͬͯ࢓ࣄ࢝Ίલʹ׬੒ͨ͠ w ͏Μ͏Μɺ͜Ε΋·ͨΞΠΧπʂͩͶ

Slide 37

Slide 37 text

IUUQTCJUMZ2.S"JX ৄ͘͠͸ϒϩάʹ