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



昨日のウクレレクロマチックチューナーのコード。

どこがおかしいのかなぁと、ロジック追いながら
電卓弾いていって、ようやくわかった。


元のサンプルデータから、比較するためのデータ列を
導くためのシフト量について、整数部と小数部を
別々の変数に置いておいて、コイツを元に比例配分の
計算を行うんだけど、この整数部分の比例配分で
生じる小数部を、小数用の変数に反映してなかった
のが原因らしい。


というわけで、計算処理と、計算に使うテーブル類を
サクッと修正。

コンパイルは一発で通ったので、いざ、動かしてみる。

…前半は上手く計算できてるんだけど、後半がグチャグチャ。

調べてみると、どうやら、関数呼び出しの際の、引き数
の渡し側と受け側で、「unsigned long」→「int」で
渡してしまってて、後半の処理で桁落ちしたのが原因っぽい。

コイツを直してさらに実行。

…上手くいった。結構バッチリ。



問題は、AT-MEGA328のSRAM2048バイトのうち、3/4は
既に食いつぶしてしまっているっぽいこと。まぁ、
そのうち、実験用データ作成に使っているmath.hの
sin関数が結構食ってるのは判ってる。んだけど、
それほどの量でもなかったよな。これを取り除いても、
残メモリは高が知れてる…


この残メモリじゃぁ、それほどの機能は追加できそうに
ないなぁ…

まぁ、ロジックは出来上がったので、適当なU/Iを
考えることにしよう。



http://headlines.yahoo.co.jp/hl?a=20131117-00000019-yom-sci
なんじゃ?この「.moe」ってドメイン…


http://www.nicovideo.jp/watch/sm14027440
ちょっと古い動画だけど、なかなか良くできてる感じ。
エンクロージャーだけじゃなく、コイルを自分で巻いて
作ってるってところがスゴイ。


http://page23.auctions.yahoo.co.jp/jp/auction/o9774876
P8のSR。ジャンク品なのに28,600円。結構な金額まで
上がったなぁ。
モノがレア中のレアだからなぁ。できればオイラも
エミュレータ用に実機が欲しいんだけどな。





コメント ( 0 )




https://twitter.com/air_variable/status/401888812097216512
air_variableさんのツイッターから、
http://www.nicovideo.jp/watch/sm22265444
ChaNさんの、万能基板の使い方のニコニコビデオに。

すっごいっすねぇ。0.5mmにUEW取り付けるのって、
こんな感じなんだなぁ。これが出来たら、自由度が
グッと上がるんだろうけどな。

オイラは、2.54mmピッチ基板にジュンフロン線這い
まわせてハンダづけするだけでも、背中の筋肉が
バキバキに固まってしまうからなぁ。

能力は置いていて、体力的に無理っぽいな。


さらに動画を眺める。

http://www.nicovideo.jp/watch/sm22255577
eVY1シールドからNSX-1を取り出しちゃってる!
しゃべってるねぇ。


http://www.nicovideo.jp/watch/sm22141327
光るキーボードって、弾くタイミングの微妙に
少し手前から、こんな感じの表示の仕方で教えて
くれるなら、覚えるのに便利なんじゃないかなと
思えてきた。既存のやつは、単に「順々に光る」
だけだもんな。

ゲームにしないで、ピアノ/キーボードを習う
教材に発展していった方が面白いかも。


http://websae.net/philippine-donation-20131112/
ほう。数倍だろうとは思ってたけど、3倍なんだな。
あとは、有効に使われることを祈るのみ。


http://tokyodevices.jp/items/139
PSoC4とかPSoC5LPとかは、MiniProg3じゃないと
使えないのか…。秋月にMiniProg1があるんだけど、
あれだと古いデバイスだけなのか…


http://headlines.yahoo.co.jp/hl?a=20131117-00000001-asahi-soci&pos=2
空き巣かと思ったら、ルンバでした…みたいな。



相変わらず、ゆっくり進行中の、Arduino使った
ウクレレ用クロマチックチューナ。

半音単位の特定機能に追加して、さらに1cent単位で
音程を特定する機能について、コードが書けた。

正確に言うと、cent単位で±32、±16、±8、±4、±2、
±1、±0とずらしてみた波形と比較して、一番近いところ
をピックアップするというロジック。

コンパイルも通ったので、実機に流し込んで、テスト
データパターンを読み込ませてみる。

…うーーーーーん。実行結果が変。


ダンプを眺めてみると、どうやら数cent単位でシフト
させているはずの比較対象データが、ちゃんとシフト
できていないみたい。だから、すべてのデータ点で、
差がゼロってことになっちゃってる。

それほど複雑なバグじゃなさそうだな。多分、
もうチョイだ。



コメント ( 0 )




http://www.jrc.or.jp/contribute/help/l4/Vcms4_00004046.html
今回は結局日赤に募金してみた。


風邪が完治してないので、遠出はせず。紅葉も
来週以降に持ち越し。

んで、近場でサクッと、最小限のモノだけ買ってこよう
と思って、
http://akizukidenshi.com/catalog/g/gM-07097/
PSoC4 Pioneer Kitを入手と思ったんだけど、残念、
売り切れだった。あっという間に売れちゃったみたい。
すぐに入荷されるみたい。また来週だな。



遠出は出来ないので、Arduinoで引き続きクロマチック
チューナーを進めてみる。

とりあえず、float型を廃して、整数型だけの計算式に
直してみたんだけど、昨日おかしかった部分はわかった。
計算式の一部がやっぱり変だった。

直してみたら、float型とほぼ同じ結果になったんだけど…

もうちょっと精度が上がることを期待してたんだけど、
よくよくテストデータを眺めてみると、なんとなく、
テストデータの方に誤差が含まれているっぽい感じ。

まぁ、テストデータ自体は、float型変数とmath.hの
sin関数で捏造してるから、コイツの角度指定の誤差が
悪影響を及ぼしている感じじゃないかなぁと。
テストデータにはあまりこだわりたくもないんだけど。

もしかしたら、8ビット幅のサンプリングデータでは、
1cent誤差を特定するのは厳しいのかもしれないなぁ。
まぁ、メモリ搭載量の限度があるから、Arduinoだと
これ以上どうすることもできないしなぁ。


まぁ、1cent程度までは追い込めてるし、まずは
このまま形に組み上げてしまおう。それから
考えよう。


http://headlines.yahoo.co.jp/hl?a=20131116-00000014-asahi-soci
自動ブレーキ事故。これって、いわゆる「仕様通り」
ってことなの?
であれば、イベントの企画運営自体に問題があった
ってことで、技術屋側の問題じゃなさそうだなぁ。

そもそも何故30km/h越えると、機能が急にキャンセル
になっちゃうんだろう?


http://www.nicovideo.jp/watch/sm11702082
新しい「上海」。斬新。


久しぶりの、大きめの地震。余震が頻発。



P.S.
そういえば、ペンタックスのK-3。
http://www.ricoh-imaging.co.jp/japan/products/k-3/
ローパスフィルタレスだけのバージョンって聞いて、
  「え?それでいいの?マジ?」
とか、一瞬思っちゃったんだけど、この間雑誌の解説
読んで、露光中に撮像素子を動かして、偽色を防止って
いうアイデアがスゴイな。

これなら、たしかに偽色は効果的にゼロに出来る。
さすがペンタックス。こういう山椒のような付加価値
がペンタックスらしい。

それにしても、35mmフルサイズのボデーは、相変わらず
出てこないな。645と競合するから、出さないのかな?



コメント ( 0 )




引き続き、Arduinoのウクレレ用クロマチックチューナー
のコードを弄り中。

float型をやめて、intやlongの整数型で処理するように、
計算ロジックを修正中。


とりあえず、ド~ドの13音階を特定できることは出来る
ようになってるんだけど、なんか、誤差の計算がおかしい。

表示してみると、確かに内容がおかしいんだけど、
なんとなく、単純な計算処理の間違えっぽい気がする
ので、計算ロジックをあとで見直そう。

とりあえず、この部分が仕上がっちゃえば、あとは
ゴールまで近いはず。


http://ison.astroarts.co.jp/
アイソン彗星、急に増光しているっぽい。これは期待
できるかも。あと2週間だな。12月に入ってからが
ヨサゲなきがするんだけど…





コメント ( 0 )




ちょっとずつ葡萄匍匐前進している、Arduino
を使ったウクレレ用クロマチックチューナー。


ロジックのメインになる部分が一応書けた(と思う)
ので、とりあえず、どんな感じになるのかなぁ?と、
テストデータとして周波数を指定して「正弦波」を
流し込んで、正しいトーンが拾えるかをチェック
してみる。


…とりあえず、ド~1オクターブ上のドまで、13個の
音を正しく拾えているっぽい事は確認できた。
シメシメ。計算途中の数値をシリアル出力してみても、
およそ想定内の数値。


ただ、現状は、小数点周りの計算処理を、「float型」
使っているせいで、精度が十分に出てないっぽい。
いくつかの音について、数centの範囲で周波数を
揺らしてみると、誤差1cent程度の誤差がのっちゃう。

なにしろ、float型は、有効桁が5桁(10進数で)なので、
整数部3桁+小数桁2桁では、そもそも1桁ほど精度が
足りてない。むしろきっかり1cent程度の誤差で済んで
いるほうがラッキーと言う程度のものだな。

無理やり作りこんだ正弦波のデータに誤差があるのか、
チューニング計算のロジックで誤差が生じるのか、
その両方なのか…

http://brown.ap.teacup.com/nekosan0/2045.html
以前、↑Arduinoで固定小数点が使えるんだか、使えない
んだかって話もあったんだけど、仕様に書かれていない
モノをつかうよりは、long型とかで整数部、小数部に
分けて定数テーブル作った方が、いいかもしれない。
速度速いし。


とりあえず、現状の
  「計算ロジックで起動時に周波数→シフト量」
   を計算して、テーブル化
の部分について、
  「PC使って机上で計算しておいて、整数部・
   小数部を別々に定数配列として押し込む」
方向に書き換えだな。


それにしても、Arduinoでガリガリとコード書いて
作るのも楽しいんだけど、やっぱ、8ビットだし、
メモリ空間には限度があるし、クロック速度も限界が
あるし、ADCはAVR由来の速度に縛られるし…で、
やっぱ厳しいところがあるんだよなぁ。

ARMコアを持ち出せば一気に解消って感じなんだけど、
そういう意味ではやっぱ、今週にでも秋月の
http://akizukidenshi.com/catalog/g/gM-07097/
PSoC4 Pioneer Kit CY8CKIT-042に手を出すのが吉
なのかな。M0コアでも、メモリも計算能力も上だからな。

http://www.switch-science.com/catalog/1455/
くろのすさんの、M3搭載のPSoC5_EVBキット
(CY8C5868LTI-LP038搭載)も魅力的な値段だな。

M0コアのPSoC4シリーズが、秋葉原でもチップ単体が
簡単に手に入るようになればいいのにな。


ゲーグラが、一気に20回、21回のアップ
http://www.nicovideo.jp/watch/sm22253516
http://www.nicovideo.jp/watch/sm22253559


http://ednjapan.com/edn/articles/1208/10/news093.html
この、サンプリング周波数変換の記事。ちょっと
前の情報だけど、面白かった。
マイコンを使ったMP3プレイヤーとかはけっこう
見かけるんだけど、こういうのを絡めて、音程は
変えずに、倍速再生できるプレイヤーとかを
作ったら、結構便利なんじゃね?

とか思いつつ、MP3のエンコードとサンプル周波数変更
をソフトで自前でやらないといけないから、結構厳しい
かな。


http://tokyo.philembassy.net/ja/events/help-for-super-typhoon-yolanda-victims/
http://www.jrc.or.jp/contribute/help/l4/Vcms4_00004046.html
結局、フィリピンへの募金は、日赤がいいのか、
フィリピン大使館の口座に振り込むのがいいのか、
どっちがいいのかなぁ。

確実に、かつ早いタイミングで届くのがいいんだ
けどな。



コメント ( 0 )



« 前ページ 次ページ »