このプロダクトは完全公開としています音声認識を使ったハードウェアが増える未来が来ることに少しでも役に立てば幸いです。
Alexa Connect Kit Dev board with RP2040 開発資料
はじめに
Alexa Connect Kit をご存知でしょうか?名前は知らないにしても、実は使っているシステムで、Alexa連携対応したデバイスにこのシステムが使われています。
そんなAlexa Connect Kit(以下ACK)を使って自分のデバイスを作ってみたい。そう思い第一歩として開発ボードを作ることにしました。
Espressifがモジュールを作った!
このACKは自分で全てを開発するわけではなく、専用のモジュールを使う必要があります。
開発しやすいものとして2種類あるのですが、その1つにEspressifのモジュールがあります
ESP32 PICO V3 ZEROというモジュールで、ACK専用のモジュールとなっています。
他のESP32モジュールと違いFWの書き換えができるわけではありません。このモジュールはAmazon Echoなどの Alexa 搭載デバイスとの通信をするためのHUBとなっています。このモジュールのみがAlexaデバイスとの通信が許されているのです。
https://akizukidenshi.com/catalog/g/gM-16823/
このモジュールをいつか使ってみたいと思い数年が経っていたのですが・・・ふと、秋月電子さんにて取り扱いが始まっていることを発見。技適も取得済みで安心して使えるようになったので、いくつか購入。そして専用基板を作ることにしました。
作るならRP2040でやってみたい!
ATmegaやESP32の基板を作る中で、次にRP2040を使ったボードを作ってみたいなと考えていました。Raspberry pi picoを購入し触ってみる中で、マイコン自体は百円ちょっとでGPIOもいっぱいあるため、これは今後Atmegaに変わるマイコンとしてやってくる!と感じていました。そこでRspberry pi picoが出た後にマイコン単体も販売されるのを待っていたところ・・・スイッチサイエンスさんで再販されているのを発見。
https://www.switch-science.com/catalog/7173/
RP2040使える・・・という事で、RP2040をホストマイコンとして、ACKモジュールを動かすという構成に至りました
ACKボードを設計する!
ACKボードの設計では今まで使うことのないような半導体を使うことになり、とても良い刺激がえられました。
RP2040は単体では動作することなく、外部クロック、NORフラッシュが必要でした。
NORフラッシュを使うなんて初めてだったので、本当にこれで動くのか?と不安になりながら開発をしました。
他にもESP32 pico v3 zeroのライブラリを作ることにも挑戦。データシートを見ながら作り上げました。(このデータはgithubにて公開しているのでご活用ください!)
そしてこういったボードデータを作成行って、JLCPCBに発注。届いたら部品の実装をして、完成です
ACKDevboardの特徴
このボードはRaspberry pi picoとしても使いやすいようにできないかと考えて作っています。
特にピンを片側に寄せました。そしてこれは30ピンになっています。そう、小型のブレッドボードの一列の穴の数と同じなんです。ESP32の開発ボードが出た時にブレッドボードとの相性が悪いなと感じており、その不満を自分が開発ボードを作る時には解消できるようにしたいと考えてこういう形になりました。
もちろんRaspberry pi picoの不満も解消しています。最初からリセットスイッチを搭載することで、簡単に書き換えを行うことができるようになっています。(実はPicoは使い方によってはちょっと面倒なんですよね)
またAlexa連携を楽しむために単体で少しは遊べるようにと考えてNeoPixelとタクトスイッチを実装しました・・・が、LEDが動きません。
スミマセン、3.3Vでは動きませんでした・・・ちゃんと5Vで実装しておけばよかった。
もしこの基板データを利用される場合はLEDの3.3Vご注意ください。
開発の第一歩でしかない
普段はすぐパッケージすることを意識して、基板を作るようにしていたので、汎用性を持たせる基板を個人開発で作ることは初めてでした(もちろん仕事で作ったことはありますが、こんなご時世で世に出ず・・・悲しい)。このボードはちゃんとAlexaと通信ができることは確認できていて、Amazonが提供しているライブラリーを活用することができるのもわかりました。
他にもやりたいことばかりで、全然深く踏み込めていませんが、また気分が乗ってきたら今度はプログラムの開発をして、オリジナルのデバイスを作ってみようかなと思います。