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
2
4.7k
ESP-WROOM-02とマイクをつないでみた話。
ESP-WROOM-02とマイクをつないでみた話。
I connected between ESP8266 and digital MIC via I2S interface.
masato-ka
May 14, 2017
Tweet
Share
More Decks by masato-ka
See All by masato-ka
Azure MLで試して学ぶAIによる自動走行とAIの仕組みハンズオン
masatoka
2
600
Azureで試して学ぶAI CAR自動走行の仕組みハンズオン
masatoka
0
510
JetsonNanoで動く深層強化学習を使ったラジコン向け自動運転ソフトウェアの紹介
masatoka
1
1.6k
Visual Studio Codeで始めるWio LTE
masatoka
0
2k
非接触温度センサのデータをLagoonで可視化
masatoka
0
1.6k
AndroidThingsのドライバーの話
masatoka
0
310
AndroidThingsでAI X IoT
masatoka
0
1.5k
Android ThingsでIoT/AIなデバイス開発しよう
masatoka
1
770
Azure SORACOM Futabaのサーボで金賞もらった話
masatoka
0
490
Other Decks in Technology
See All in Technology
Java 25に至る道
skrb
3
200
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
38
18k
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
9
4.8k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
900
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
2
1.9k
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
210
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
800
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
AIと融ける人間の冒険
pujisi
0
110
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
410
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
120
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
120
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
63
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
Code Review Best Practice
trishagee
74
19k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
230
Measuring & Analyzing Core Web Vitals
bluesmoon
9
730
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
140
30 Presentation Tips
portentint
PRO
1
180
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
49k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
How to Talk to Developers About Accessibility
jct
1
96
Amusing Abliteration
ianozsvald
0
85
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༵ۚ