「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



秋月で買ってきたAquesTalkPico用に、当面使うために
いちいちArduinoボードからIC外したりつけたりするの
面倒なので、動作基板をでっちあげる。

例の秋月版Arduino互換基板を使用。

ATP3011F4-PUは内蔵RC発振8MHzで動くので、クロック源
はもともといらないんだけど、Arduino互換基板として
も使えるように16Mhzの発振源を載せておく。いつもなら
クリスタルを載せたいところなんだけど、すでに
2つも作ってるし、1個くらい手抜きでもいいだろう
ということで16Mhzのセラロックにしておいた。

作り上げて、早速圧電素子で鳴らしてみる…。
イマイチな音質なので、スピーカを鳴らしてみよう
という方向に。

アンプICを使うのも面倒なので、マニュアルにも
載っていた2SC1815の1石D級(というほどのものでも
ないけど)で鳴らしてみる。とりあえず圧電スピーカ
よりはよく鳴った。(直流成分がカットできない
ので大出力は当然無理)



マイコンでサクッとスピーカを鳴らすには結構便利
な回路かも。PWMでのアナログ音声をちょこっと鳴らす
とか。

AquesTalkPicoは、アクセントは文節(?)の切り方で
流暢さが結構かわるんだなぁ。なかなか難しい。「/」
と「'」を上手い具合に仕込むとそれっぽい抑揚で
聴こえて面白い。
買ったものの、未だにナニに組み込んだら良いか
用途が思いつかないんだけど、手元に数個置いて
おきたいなぁ。


ここ数日取り憑かれている、マイコン1個で作るPSG。
色々調べてみると思っていたより色々な作りこみ
が必要になりそう。

一つはDACのビット数と音量。音量の数値と音量は
そのまま比例するわけじゃないらしい。
http://d4.princess.ne.jp/msx/psg/
こことか見ると、指数的に音量が変化するみたい。
この辺はDACの分解能とのご相談かな。10ビット
PWMにしたくなるところだけど、TINY2313の8ビット
パラレルI/Oを生かそうとするとタイマー1は
使えないのが悩みどころ。うーん。


同じくこのページを見ると、ノイズジェネレータを
VHDLで書いたらどうなるかって書いてあって、
これを参考に作るならバッチリな情報なんだけど、
やっぱり何故ホワイトノイズの平均周波数を上げたり
下げたりできるのかが良くわかんない…

http://beatnic.jp/takedanote/vol20/
タケダノヲトの武田さんのサイトを見てみると、
Chuckさんの作られたノイズジェネレータを使って
可変抵抗でノイズ周波数の高低を制御できるっぽい
感じ。(サンプル音声を聞いてみると、かなり
良い感じの音が出てるので、あとでソースを追って
みたいところ。

http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B0
擬似乱数ロジックのうち、線形帰還シフトレジスタ
を使っているみたい。線形合同法にあたるロジック
はこれまでに使ったことが何度かあるんだけど、
線形帰還シフトレジスタはあとで検討。処理速度
を加味して何ビット幅にするか、など。

そのほか、PSGやSSGで探っていってみると、
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=1%BE%CF+PSG%A4%C8%B2%BB%C0%BC%BD%D0%CE%CF
http://hp.vector.co.jp/authors/VA054130/psg.html
MSX関係っていうのが多い感じ。

ベースクロックを4Mhzで考えた方がいいのか、
それとも3.58Mhzにした方がいいのか…
(マイコン自体は16Mhzや14.3Mhzなどで動かすこと
 で考えるとして)
PC-6001やPCー8801mkIIsrはいくつだったろう?
探っても情報が見当たらない…

それにしても、PSGの「音量」にデータを書き込む形
でPCMを再生しちゃうって言う荒業があったのか…。
知らなかったな。




コメント ( 0 )




引き続きArduinoとSDライブラリでお休みタイマー付き
MP3プレイヤーの作戦中。
Arduinoのフォーラムで何か会話が交わされてないかを
探ってみる。

http://arduino.cc/forum/index.php/topic,85550.0.html
こことか、
http://arduino.cc/forum/index.php/topic,85442.0.html
こことかを見ると、Arduino1.0のSDライブラリ
にはopenNextFileあたりにバグが残っているって
いうことが会話されているみたい。

一方、
http://arduino.cc/forum/index.php/topic,92241.0.html
サンプルスケッチをおいらの様にちょこっと弄って
うまく行ってない人へのコメントとして、
「ファイルをクローズしていないからでは?」
っていう指摘も。

まぁ、ファイルをクローズしていないっていうのは
ごもっともなんだけど、いざファイルのクローズ
をしてみると、1周目が終わったところでフリーズ
するんだけどな…

いずれにしても、サクッと解決するようなものじゃ
なさそうだな… ちょっと様子見しようか。


http://headlines.yahoo.co.jp/hl?a=20120412-00000006-mai-soci
NTT物性科学基礎研究所による新しい半導体の
製造方法というニュース。スゴイねぇ。紫外線で
発電できるとか。ご家庭の窓で発電。

http://headlines.yahoo.co.jp/hl?a=20120412-00000012-mai-soci
高速の坂道渋滞を防ぐ実験。高速の坂道渋滞が
心理的要因で発生するんであれば、それを防ぐのも
心理的作戦ってことなのかな?比較的安価なLEDの
点滅だけで解決するなら良いよなぁ。渋滞で浪費
されるガソリン代より電気代の方がはるかに安い
はず。

http://headlines.yahoo.co.jp/hl?a=20120411-00001265-yom-bus_all
トヨタ式のハイブリッド(というかATベースの)は嫌い
なんだけど、移動の道具としての燃費が60kmとかまで
向上するっていうのは夢があるなぁ。バイクの燃費
もこんな風に伸びていくと良いのになぁ。

http://www.ted.com/talks/lang/ja/susan_cain_the_power_of_introverts.html
このスーザン・ケインという人の講演ビデオ。
すごい面白かった。(日本語字幕モードでぜひ)

話の中でも出てきたけど、「ユングの言う内向的、
外向的」っていうモノと、いわゆる「内気、社交的」
っていうものの区別がついていないと、冒頭の
キャンプの先生の固定観念が正しいものとして
押し付けちゃうんだよな。(文字からして違う)
まぁ、上手い講演だなぁと感心し通しだった。

http://www.youtube.com/watch?v=16naCRilR08
このくらいのモノを自分で作れたら楽しいだろうな。

http://akizukidenshi.com/catalog/g/gI-00181/
ふとYAMAHAのPSG音源。FM音源チップなんかに
比べるとレジスタが少なくて、扱い方も解り
やすくて良いんだけど、未だに単価500円って
考えると…とふと思った。3和音程度のPSGなら
TINY2313程度で互換の機能を作れるんじゃないか?と。

ザックリ考えてみる。

DACは5ビット3チャンネルだから、2^5×3=96なので、
0~95の幅でPWM出力すればok。8ビットPWMで充分。
3チャンネル程度ならアセンブラでガリガリ書けば
DSS方式で3チャンネルの矩形波合成くらいは簡単
に書けるでしょう。

CS信号やWR信号はピンチェンジインタラプトで、
アドレス/データ選択は普通のデジタル入力ピンで。
あとは8ビット束で入力をして、内部レジスタに
ストック。それを元にDSSで音を生成、みたいな。

あとはエンベロープとノイズジェネレータ。エンベ
はまぁカリカリ書いてがんばるとして、ノイズの
ジェネレータはどうなんだろうなぁ。あれって
当時から不思議に思ってた部分があるんだよな。

http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B0
擬似乱数発生のロジックはいくつかあるんだろうけど、
基本的にホワイトノイズ。でもPSGモジュールに搭載
されているノイズジェネレータは周波数の指定がある。
ノイズの周波数ってなんだ?っていうのが当時からの
疑問。単なる擬似乱数ではないってことなんだろう
けど、どんな仕組みなんだろう?



コメント ( 0 )




ArduinoのSDライブラリと、SparkFunのMP3 Player Shield
を使って、お休みタイマー付きMP3プレイヤーのプロトを
作る作戦を進行中。

まず作戦その1。SDライブラリに書き換え。

SparkFunのMP3 Player Shield製品ページにサンプル
スケッチが置いてあったりするんだけど、ちょっと古くて、
現在Arduino公式サイトで公開されているSDライブラリ
じゃなくて、その前段のsdfatライブラリを使ったもの
になっているので、これをSDライブラリに書き換え。

あまり苦労なく置き換えられるようなスケッチだった
ので、これはすんなりと完了。サクッと音が出た。

つぎ。作戦その2。固定ファイルじゃなくて、SDカード
のfatに登録されているファイルを1個1個舐めていって
順に再生させたい。

参考に使えるのがまずopenNextFile。これは
1個1個順にファイル(もしくはディレクトリ)を
舐めていってくれる機能。で、こいつのサンプルスケッチ
を実行してみると、ルートディレクトリ内のファイルを
舐めていって、ディレクトリもその対象にしてくれる
機能ってことは判った。けど、階層の深いディレクトリ
に入っていった後、元のディレクトリに戻っていく
機能はないみたい。

で、rewindDirectoryを使ってみると、それが
実現できるようになってる。このサンプルスケッチを
実行してみたら、SDカード内の全ファイルにアクセス
出来た。

つぎ。作戦その3。拡張子MP3だけを抜き出して再生。

処理対照のFILE型インスタンスから名前を取り出して、
末尾が「.mp3」か「.MP3」になっているものを抽出。
これはString型オブジェクトでendsWithを使ってみる
ことでクリア。
C言語的な文字配列として処理するんじゃなく、String
オブジェクトとすると結構簡単で便利だな。


つぎ。作戦その4。SDカード内の曲を続けて再生
させてみる。

これまでのモノを組み合わせて1つのスケッチにして
みると…、まぁそれなりに順々に曲が再生されるのが
実現できた。
さて、じゃぁSDカード1枚内の最後の曲まで行ったら
最初に戻るっていう処理にしたい…。


なぜだかここがうまく行ってなくてもがき中。

SDカード全部が終わったら、もう一度ルートディレクトリ
を開きなおして最初から順々に…と思ってやってみた。
確かにまた1曲目に戻るんだけど…、全曲再生しては
頭に戻り、全曲再生しては頭に戻り…をしていると、
途中でルートディレクトリを開く処理で止まっちゃう。

(正確に言うと、ルートディレクトリのオープン処理
でエラーが返ってきて開けない)

途中で使っているFILE型のオブジェクトやSD型の
オブジェクト、またはString型オブジェクトの開放を
明示していないからこいつらでメモリリークして
いるんじゃないかと思って、ヒープとスタックを
調べられないかなぁと、調査方法をさがす。

http://todotani.cocolog-nifty.com/blog/2009/06/arduino-texitst.html
こちらのサイトでバッチリな機能を公開してくれて
いるので(アリガタイ)、ここにあるスケッチ中から
check_mem()関数をお借りして、実行の途中途中で
ヒープとスタックの位置を表示させるシリアル
デバッグ作戦。

予想としては、オブジェクトのインスタンスを作ると、
都度ヒープにメモリを確保するはずなので、ヒープ
が伸びていってスタックを破壊するという図式。

いざ実行してみると…どうやら、ヒープがスタック領域
まで侵食している気配なし。うーーーーん。なんだこりゃ?

メモリを乱食いしているのか、それとも下手に開放した
メモリを参照するような処理してるのか、なんとも
よくわからない状態。しばらく動いていながら、途中
で動かなくなるっていうのはメモリリークっぽい感じ
なんだけど、ヒープとスタックのアドレス見る限り
ではそうでもないみたいだし…わからん。

rewindDirectoryやopenNextFileの引数はFILE型の
オブジェクトだったりするので、ここが一番怪しい
のでは?と思うんだけど、やっぱこの中身見ないと
いけないかな?String型を扱っているところは
悪さをしている感じではないんだけどな。

サクッと解決しそうにはないから、ちょっとずつ
中身を見ていこう。


これが片付いたら、曲の途中で次に飛ばしたり、
前に戻したり、早送り再生したり、ディレクトリ
単位で飛ばしたりしたいところ。
http://www.chiaki.cc/Timpy/vs1053b_jp.html#C9
こちらが参考になりそう。少なくとも曲飛ばしは
使えないと話にならないから、あとでじっくり
読んで機能載せていこう。


http://zasshi.news.yahoo.co.jp/article?a=20120411-00000000-toyo-bus_all
ヤマト2199、これまでとはずいぶん違う公開の
仕方なのは色々作戦があるみたいだな。盛り上がる
といいな。


http://headlines.yahoo.co.jp/hl?a=20120411-00000096-mai-soci
スマトラ島付近でまた8.7の巨大地震。今のところ
1mの津波ということで大きな被害はないみたい
なのは一安心。



コメント ( 0 )




真田さんが亡くなってしまうとは!
こんなことがあろうとは思わなかった。

http://headlines.yahoo.co.jp/hl?a=20120410-00000023-flix-movi

同時に、ムライ中将も、成原博士も、ピッコロ大魔王も、
亜空の瘴気バニラアイスも、アダムスファミリーの
フェスター兄さんも、ドクも、レッドドワーフのホリーも、
みんな亡くなってしまった。大きな、大きな代償だった…

ご冥福をお祈りします。
もうあの声が聞けなくなるとは残念だ…。


http://headlines.yahoo.co.jp/hl?a=20120410-00000541-san-soci
例のオーランチオキトリウムで石油代替のバイオ燃料
を作る計画とか。良い具合に進んでいくと良いねぇ。
シェールガス、メタンハイドレートとならんで、
当面のエネルギーを支える技術になれば。


http://headlines.yahoo.co.jp/hl?a=20120410-00000048-jij-soci
またしても爆破予告とか。いっそのこと標的は
ロケットと称して打ち上げを予定しているお隣の
国の発射台にすれば良いのに。そしたら各国から
喜ばれるよ、きっと。

http://microfan.jp/shop/102_275.html
このYAMAHA YMZ294搭載のシールドも良いんだよなぁ。
1オクターブ分のキーボードがついているのもなかなか。
アナログ入力がいくつかついてたらなおよしなんだ
けどな。




コメント ( 0 )




きっと、今シーズン最後のさくらびより。明日くらい
からはもう枝の先から緑の葉っぱが生えてくるころだな。
目で見る分にはいいんだけど、写真に撮ると薄ピンク
の桜と緑の葉っぱはキレイじゃないからな。


小石川植物園に行こうと思ってたんだけど、あっち
こっちで桜を見かけるとパチリ、また移動しては
桜があるとパチリ。寄り道しているうちに時間食って、
そのまま向かっても閉園まで時間があまり無いだろうと
思って作戦変更。谷中へ。

それにしても、カメラ持って谷中に行ってネコを撮らず
帰ってきたのははじめてかも。人がいっぱいで、ネコも
土日ずっと触れれまくりで疲れちゃってたろうから、
そぉっとしておいた。

それにしてもどこもかしこも人だらけ。晴れで満開で
週末だからなぁ。


谷中をあちこちうろうろして、ありがちな構図で
バシバシ撮りまくりながらのふとした1枚。


スカイツリーを背景に桜の近景を撮ろうと思ってたら
ふと通りかかったあの電車。
残念なことに、絞りが開き過ぎて、背景のスカイツリー
がスカイツリーと判らない…
あわてて撮ったので、タイミングだけしか考えてなかった…。
まぁ、事前の準備不足だな。


羽二重団子で一服。しばし駄弁る。そういえば羽二重
団子って、スタバとかより雰囲気よくて落ち着くと
思うんだけどな。あちこちに出来ないかな。イートイン
出来るお店。


以前買ったUSBコネクタにほぼ内蔵しちゃうマイクロSD
カード用アダプタ。部品の一部がポキッと折れて駄目に
なっちゃったので、帰りに普通のマイクロSD-USB変換
アダプタ買っておいた。ノートPCに挿しっぱなしに
して置くならよかったんだけど、頻繁に抜き差しする
には、小さすぎて強度どころではない物だったんだなぁ。


http://news020.blog13.fc2.com/blog-entry-2279.html
高知県のこの「地下シェルター」っていう構想はなんだか
凄いんだけど、入り口が埋まっちゃったり、ドアを閉める
判断に迷っているうちに津波が流れ込んだりしないの
かが心配。ドアを閉めなくても水が中まで入り込まない
仕組みって、無いのかな?

階段で高いところに上がらなくてもいいっていう仕組みは
okだと思うんだけど、それだけだと水が入り込んだら
文字通り水攻めになっちゃうので、うまいこと水が途中
で止まる仕組みを…



左の入り口から滑り台で一旦滑り降りてから、ちょっと
だけ階段で戻る感じ。(緑色が滑り台、橙の横棒が階段)
これなら入り口をあわてて閉めなくてもok。まぁ閉めれば
なおよしだろうけど、閉めなくても安全。

船とか巨大な構造物が地上の入り口の建物部分を破壊
してもこれなら水が入ってこないはずだから、より
安全かと。強いて言えば、足の不自由な人はこの最後
の階段部分でもたつく可能性はあるから、その部分で
渋滞が生じないようにしておく必要はあるだろうな。

水は滑り台を伝わって中に入ってくるけど、水色の
矢印のところまでしか上がって来ないはず。洪水が
引いたらこの水をどけてから外に逃げ出すなり、
もしくは他にも出口を用意しておくなりしておけば
よろしいかと。

しかし、地下に滑り台で避難するなら、お年寄りでも
長い階段を登ったりしなくて済むから、そういう
アイデアを思いつく高知県っていうのはすごいよな、
って思った。世界に示せる新たしいモデルになるかも
と。

風呂場で風呂桶を反対向きに沈めると空気が漏れない
っていうのと一緒だから、ポイントは気密性だな。
1滴の水も漏れないっていうレベルかはともかく、
地震で少しくらいひびが入っても半日くらいは
なんとかかんとかもたせる程度の気密性はないと。

同じ考え方で、もしかしたら地下じゃなくても
鉄筋コンクリートの建物の中に機密性の高い
部屋を作れば良いのかも。まぁ、安いほうで。



コメント ( 0 )



« 前ページ 次ページ »