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
ESP-WROOM-02とマイクをつないでみた話。
Search
masato-ka
May 14, 2017
Technology
4.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ESP-WROOM-02とマイクをつないでみた話。
ESP-WROOM-02とマイクをつないでみた話。
I connected between ESP8266 and digital MIC via I2S interface.
masato-ka
May 14, 2017
More Decks by masato-ka
See All by masato-ka
Azure MLで試して学ぶAIによる自動走行とAIの仕組みハンズオン
masatoka
2
630
Azureで試して学ぶAI CAR自動走行の仕組みハンズオン
masatoka
0
540
JetsonNanoで動く深層強化学習を使ったラジコン向け自動運転ソフトウェアの紹介
masatoka
1
1.6k
Visual Studio Codeで始めるWio LTE
masatoka
0
2.1k
非接触温度センサのデータをLagoonで可視化
masatoka
0
1.7k
AndroidThingsのドライバーの話
masatoka
0
340
AndroidThingsでAI X IoT
masatoka
0
1.6k
Android ThingsでIoT/AIなデバイス開発しよう
masatoka
1
790
Azure SORACOM Futabaのサーボで金賞もらった話
masatoka
0
510
Other Decks in Technology
See All in Technology
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
830
2026-06-24_人とAIの責務分離に基づく開発プロセスの提案.pdf
takahiromatsui
0
110
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
900
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
260
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.6k
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
300
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
270
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
610
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
190
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
490
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
260
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Prompt Engineering for Job Search
mfonobong
0
350
Agile that works and the tools we love
rasmusluckow
331
22k
Making Projects Easy
brettharned
120
6.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
First, design no harm
axbom
PRO
2
1.2k
HDC tutorial
michielstock
2
720
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Transcript
ESP-WROOM-02ͱϚΠΫΛͭͳ ͍ͰΈͨɻ 2017/05/19 @masato_ka 175݄19༵ۚ
Ϟνϕʔγϣϯ IoT×Ի Ͱָ͍͜͠ͱΛ͍ͨ͠ 175݄19༵ۚ
ͷճΓͷԻΛੳͯ͠ใΛऔΓग़͍ͨ͠ Analytics ੜ׆ Իͷੳ Sound Server Իೝࣝ Իָ δϟϯϧ 175݄19༵ۚ
ϚΠΫͰԻΛरͬͯαʔόʹૹΔσόΠεΛ࡞Δ Analytics ੜ׆ Իͷੳ Sound Server Իೝࣝ Իָ δϟϯϧ 175݄19༵ۚ
ESP-WROOM-02Λબͨ͠ཧ༝ • ࡞ͬͨޙஔ͘ॴʹࠔΒͳͦ͞͏ • ిͰಈ࡞Ͱ͖Δ • WiFi௨৴ • খܕ •
͍҆(νοϓ͚ͩͳΒ500ԁ) ࣸਅग़య:εΠοναΠΤϯε 175݄19༵ۚ
࡞ΔσόΠεͷඪઃఆ ඪ1.ɹ16kHz/16bitͷԻσʔλ ిͷԻ͕8kHzɺ͏গ͠໌ྎͳԻΛर͍͍ͨɻ ඪ2.ɹԻͷετϦʔϛϯά ੳ͍ͨ͠σʔλԻ͕͍ͭൃੜ͢Δ͔Θ͔Βͳ͍ɻ ్Εͳ͘σʔλΛૹΕΔΑ͏ʹ͢Δɻ 175݄19༵ۚ
͜Ε͕͚ͬ͜͏ ͔ͬͨ͠ʂ 175݄19༵ۚ
֎؍ ϋʔυ ΣΞ ಈ࡞ͤ͞ΔͨΊͷपลճ࿏ඞ ཁ,A/DมͰऔΓࠐΉ ϚΠΫଆͰϑΟϧλͱADมΛߦ ͏ɻγϦΞϧΠϯλϑΣʔε(I2SͰ ଓ͢Δɻ ιϑτ ΣΞ
A/DมΛλΠϛϯάΑ࣮͘ࢪ ͯ͠16kHzʹͳΔΑ͏ʹ͢Δɻ I2S or SPIͷಡΈऔΓΛߦ͏ॲཧΛ ॻ͘(ArduinoϥΠϒϥϦ͋Γ) ଓͰ͖ͦ͏ͳϚΠΫͷબ ίϯσϯαϚΠΫ σδλϧϚΠΫ ࣸਅग़య:ळ݄ిࢠ 175݄19༵ۚ
֎؍ ϋʔυ ΣΞ ಈ࡞ͤ͞ΔͨΊͷपลճ࿏ඞ ཁ,A/DมͰऔΓࠐΉ ϚΠΫଆͰϑΟϧλͱADมΛߦ ͏ɻγϦΞϧΠϯλϑΣʔε(I2SͰ ଓ͢Δɻ ιϑτ ΣΞ
A/DมΛλΠϛϯάΑ࣮͘ࢪ ͯ͠16kHzʹͳΔΑ͏ʹ͢Δɻ I2S or SPIͷಡΈऔΓΛߦ͏ॲཧΛ ॻ͘(ArduinoϥΠϒϥϦ͋Γ) ֎෦ճ࿏͕ෆཁͳσδλϧϚΠΫΛ࠾༻ ίϯσϯαϚΠΫ σδλϧϚΠΫ ؆୯ͦ͏ʂ (ʹݟ͑ͨ) ࣸਅग़య:ळ݄ిࢠ 175݄19༵ۚ
I2S(Inter-IC Sound) • 3ઢࣜͷΦʔσΟΦΠϯλϑΣʔε • CLKʹै͍ԻσʔλΛσδλϧग़ྗ • WS-CLKʹै͍ɺL/RͷεςϨΦσʔλΛग़ྗ͢Δɻ • ༷͕SPIʹࠅࣅ͍ͯ͠ΔͨΊɺSPIΠϯλϑΣʔε༻Ͱ͖Δɻ
CLK WS DATA 16kHz×32bit×2ch 㲈.)[ Left Right 1bit/1clkͷσʔλ 32bit ࣸਅग़య:ळ݄ిࢠ 175݄19༵ۚ
I2S/SPI ͲͪΒͱϚΠΫΛଓ͢Δ͔ • ESP8266 I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ
ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞ιϑτΣΞଆ Ͱॲཧ͢Δɻ 175݄19༵ۚ
I2S/SPI ͲͪΒͱϚΠΫΛଓ͢Δ͔ • ESP8266 I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ
ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞ιϑτΣΞଆ Ͱॲཧ͢Δɻ ݱঢ়ΔͳΒҰʂ 175݄19༵ۚ
SPIͰଓͯ͠Έͨ݁Ռ 175݄19༵ۚ
• ొਓCPUɺSPIϞδϡʔϧͱϝϞϦ SPIଓͷ߹ ※ৄࡉQiitaͰʮAMDP441ʯͰݕࡧ ESP8266 CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ESP8266෦ͷಈ࡞
175݄19༵ۚ
• CPU͔Βͷread໋ྩͰSPIͷಡΈࠐΈ։࢝ SPIଓͷ߹ ※ৄࡉQiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA
CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ESP8266෦ͷಈ࡞ read໋ྩ σʔλड৴ 175݄19༵ۚ
• SPI͔ΒಡΈऔͬͨσʔλΛCPU͕ϝϞϦʹอଘ͢Δɻ SPIଓͷ߹ ※ৄࡉQiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA
CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ESP8266෦ͷಈ࡞ read໋ྩ σʔλड৴ ϝϞϦʹอଘ 175݄19༵ۚ
• ֎෦ʹσʔλΛૹ৴͢ΔؒɺSPIͷಡΈऔΓॲཧఀࢭ͢Δɻ SPIଓͷ߹ ※ৄࡉQiitaͰʮAMDP441ʯͰݕࡧ ESP8266 read໋ྩΛ࣮ߦ͍ͯ͠Δ࣌ͷΈCLK ͕ग़ྗ͞ΕΔɻ CPU SPI ϝϞϦRAM(32KB)
ϢʔβϓϩάϥϜ ֎෦ͷσʔλૹ৴ CLKఀࢭλΠϛϯάͰϚΠΫ͕Ϧηο τ ESP8266෦ͷಈ࡞ ϝϞϦͷಡΈग़͠ 175݄19༵ۚ
• CPUͰશͯͷॲཧΛߦ͏ͨΊɺϚΠΫ͔ΒͷσʔλΛऔΓ͜΅ͯ͠͠·͏ɻ SPIଓͷ߹ ※ৄࡉQiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA
read໋ྩΛ࣮ߦ͍ͯ͠Δ࣌ͷΈCLK ͕ग़ྗ͞ΕΔɻ CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ read໋ྩ σʔλड৴ ֎෦ͷσʔλసૹ CLKఀࢭλΠϛϯάͰϚΠΫ͕Ϧηο τ σʔλసૹ ESP8266෦ͷಈ࡞ 175݄19༵ۚ
I2S/SPI ͲͪΒͱϚΠΫΛଓ͢Δ͔ • ESP8266 I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ
ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞ιϑτΣΞଆ Ͱॲཧ͢Δɻ 175݄19༵ۚ
I2SͰͲ͏ͳͷ͔ʁ 175݄19༵ۚ
• ొਓCPUͱI2SϞδϡʔϧDMAͦͯ͠ϝϞϦ I2Sଓͷ߹ ESP8266 CPU I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ DMA DMA(Direct
Memory Access) CPUͷΘΓʹϝϞϦͷసૹΛݞΘΓ͢Δɻ 175݄19༵ۚ
• CPUΛհͣ͞DMA͕ϝϞϦసૹ I2Sଓͷ߹ ESP8266 SPI CLK L/R CLK DATA CPU
I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ DMA σʔλ σʔλ ։໋࢝ྩ 175݄19༵ۚ
• ࢦఆαΠζͷσʔλΛϝϞϦʹసૹ͢ΔͱCPUʹׂΓࠐΈΛൃੜͤ͞Δɻ I2Sଓͷ߹ ESP8266 SPI CLK L/R CLK DATA CPU
I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ DMA సૹׂྃΓࠐΈ σʔλ·ΜͨΜʂ σʔλ σʔλ 175݄19༵ۚ
• I2SͷॲཧఀࢭͤͣʹCPUϝϞϦ͔ΒσʔλΛऔΓग़ͯ͠֎෦ૹ৴ I2Sଓͷ߹ ESP8266 SPI CLK L/R CLK DATA I2SϞδϡʔϧ͕ৗʹΫϩοΫΛग़ྗ
CPU I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ֎෦ͷσʔλૹ৴ DMA సૹׂྃΓࠐΈ σʔλ σʔλ σʔλ 175݄19༵ۚ
• σʔλΛऔΓࠐΈͳ͕Β֎෦ʹૹ৴͢Δ͜ͱ͕Մೳɻ I2Sଓͷ߹ ESP8266 SPI CLK L/R CLK DATA I2SϞδϡʔϧ͕ৗʹΫϩοΫΛग़ྗ
CPU I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ֎෦ͷσʔλૹ৴ DMA సૹׂྃΓࠐΈ σʔλ read໋ྩ σʔλ σʔλ 175݄19༵ۚ
I2SͰͷಡΈऔΓΛ࣮ݱ͢ ΔͨΊɺArduinoͷϥΠϒ ϥϦΛमਖ਼͢Δ͜ͱΛܾҙ 175݄19༵ۚ
ESP8266ͷσʔλγʔτ͕खֻ͔Γ • Espressif͕υΩϡϝϯτΛެ։͍ͯ͠Δ͕ɻɻɻ ϨδελΛͲ͏࿔Δͱػೳ͕͑Δ͔هࡌ͞Εͯ ͍Δ͕ɺ؊৺ͷϨδελͷΞυϨε͕ͳ͍ɻ 175݄19༵ۚ
ιʔείʔυͷमਖ਼ • Arduinoͷesp8266_peri.hͱυΩϡϝϯτΛൺֱ͠ͳ͕Βιʔεमਖ਼ 175݄19༵ۚ
ϩδοΫΞφϥΠβͰڍಈΛ֬ೝ • ιʔεमਖ਼ϩδΞφͰ֬ೝमਖ਼ मਖ਼ͨ͠ίʔυͰԿͷڍಈ͕มΘͬͨ ͔ਖ਼͘͠ѲͰ͖ΔΑ͏ʹͳͬͨɻ 175݄19༵ۚ
ExceptionͷൃੜՕॴͷಛఆ • ϓϩάϥϜ্ͷͲ͔͜ͰException WDTϦηοτ͢Δ͕ɻɻɻ is Կʁ 175݄19༵ۚ
ESP Exception DecoderΛ׆༻ • Stack TraceΛղੳ͠ɺιʔείʔυߦ·Ͱදࣔͯ͘͠ΕΔɻ 175݄19༵ۚ
ʂ • 16kHz, 16bitͷԻσʔλΛWebsocketͰαʔόʹૹΔ͜ͱʹޭʂ • ԻೝࣝͱLive Streaming͕Ͱ͖͍ͯΔɻ Sound Bluemix Speech
To Text HttpLiveStreming or HTTP GET Local Server WebSocket HTTP HTTP 175݄19༵ۚ
·ͱΊ • ֨҆σόΠεͰԻσʔλΛετϦʔϜͰ͖Δʂ • ESP8266ͷI2SͱDMA͑Δ • ಈ͔ͳ͍ػೳఘΊͣࣗͰվʂ • υΩϡϝϯτπʔϧΛἧ͑Δɻ 175݄19༵ۚ
ࠓޙ •ωοτϫʔΫ •Իσʔλͷੳ •֨҆ԻΞγελϯτ 175݄19༵ۚ
͝ײԼ͍͞ʂ Twitter: @masato_ka 175݄19༵ۚ