Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ESP-WROOM-02とマイクをつないでみた話。
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
640
Azureで試して学ぶAI CAR自動走行の仕組みハンズオン
masatoka
0
560
JetsonNanoで動く深層強化学習を使ったラジコン向け自動運転ソフトウェアの紹介
masatoka
1
1.6k
Visual Studio Codeで始めるWio LTE
masatoka
0
2.2k
非接触温度センサのデータをLagoonで可視化
masatoka
0
1.7k
AndroidThingsのドライバーの話
masatoka
0
350
AndroidThingsでAI X IoT
masatoka
0
1.6k
Android ThingsでIoT/AIなデバイス開発しよう
masatoka
1
810
Azure SORACOM Futabaのサーボで金賞もらった話
masatoka
0
530
Other Decks in Technology
See All in Technology
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
310
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
160
Incremental HTTP
kazuho
5
2.1k
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
140
Claude Code本は、どのように執筆チームで書かれたか
oikon48
0
260
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.4k
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
120
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
Deep Data Security 機能解説
oracle4engineer
PRO
2
710
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
IR Today: Theory, Practice, and Agents
dtunkelang
0
350
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Skip the Path - Find Your Career Trail
mkilby
1
240
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Un-Boring Meetings
codingconduct
0
440
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
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༵ۚ