SPRESENSEで音を奏でよう・・・序章
今宵も見よう見まねで何かする
こんばんは。MYONです。今夜はSpresenseでビートボックスを作ろう。そうしよう。
元記事はys_taroさんのブログから
makers-with-myson.blog.ss-blog.jp
いいですね。息子さんも喜ぶでしょう。父は全然電気の事が分からない、家族親戚ほぼ文系ということで、何かあるたびに呼ばれて「俺は電気屋じゃねぇ!」となったことがありますが、修理することも趣味なのでヨシとしましょう。
さて、今回から工作もしていきます。ゴッドハンダのサイトでハンダ付けの腕を磨く日々ですが、今回はブレッドボードで再現してみましょう。
ちなみに、上記のサイトの必要なデータはGithubにあるのですが、もちろんアカウントは持ってないので、サクッと作りました、ええ。
まぁアカウントはなんぼあってもいいですからね。
今回は先にメインボードに書き込みしていきましょうか。
拡張ボードに繋がるGPIOを何に割り当てるかはこのスケッチで決まるわけで、そう、Spresenseにも心の準備をしてあげないと、いきなり繋げると悲鳴を上げるかもしれないですからね。
ではZIPで落とした一式の中からスケッチを入れて、と。
はい、SDカードに最初にMP3を入れておけと。直下でいいのかな。
コピー開始。完了。
さてArduinoIDEでスケッチを書きこ・・・めないですね。
何かアプリケーションでハンドルされていると。ええ、前回のスケッチ、自動演奏が動いている状態のままでございます。
これどうすればいいのよ。
とりあえずArduinoIDE再起動が吉ですね。
ほら、次へ進んだ。さっきよりド派手な真っ赤なメッセージを貰うことが出来ました。
'SDClass'does not name a type
なんですか、これは。穏やかじゃないですね。
SDClassってなんじゃ。そんなクラスメートはおらん。検索しまくり、
このライブラリを使うためには、以下を宣言する。
#include <SPI.h> #include <SD.h>
なるほど、分からんが、恐らくSpresense用のライブラリはほぼ導入済のはずなので、宣言出来てるかソースを見てみよう。この宣言通りでいいかはともかく。
#include <Audio.h>
SDClass theSD;
AudioClass *theAudio;
うむぅ。確かに宣言されておらぬ。間違って消してしまったのかな、記憶にないが。
それともSpresenseの場合はAudioライブラリを呼び出せば含まれているとか。
で、Audioライブラリが未導入である、と。
分からん~(泣)
ほならね、これでどうだ?!
おほほほ・・・!!!進みましたわ!んで、一難去ってまた一難。お次のお客様は
'reference to "File"is ambigyous'
ちょっと何言ってるか分からない。ボーイズビーアンビシャス?
「「ファイル」への参照はあいまいです」
はい。左様でございますか。
同様に、Fileなるライブラリがあったのでインクルード。これでどうだ!!!
ダメじゃ。あいまいってことはだ、何か欠けておるのだな。
定義っぽいところが
File file, rFile, lFile;
で、エラーが出るのは
File& soundOpen(char* name)
ということはですよ、そう、分からん(笑)ライブラリのリファレンス検索開始!
Arduinoライブラリにはないな、うん、「提供された」とあるから、Spresenseの方のリファレンスを探すべきということね。
2.6. File ライブラリ
あったあった。
2.6.2. 機能
各種APIの詳細は、APIリファレンスマニュアル File Library API を参照してください。
File インスタンス名が myFile のとき、次のようにファイルをオープンします。
#include <SDHCI.h> SDClass SD; File myFile; myFile = SD.open("test.txt");
んん??!!FileじゃなくてSDHCIをインクルードすればええの?やってみよう。
だ、ダメだ・・・
リファレンス見てもFileにはsoundOpen()関数は提供されてないし?
いい感じにドツボにハマった。今日は寝よう!おやすみなさい~