リンク

  • ninja analize
  • にほんブログ村

  • ジオターゲティング
  • ヤドカリ図鑑
  • リーフリング
  • NinjaTool
  • カウンター
    無料カウンター

« 2011年5月 | メイン | 2011年7月 »

2011年6月

2011年6月30日 (木)

「AC激波」 完成

製作に着手してからは 結構な時間が経ちましたが

一作目としては ようやく完成しました

今回の作品は名付けて

「AC激波」

と呼ぶ事にします

P6300418

ちょっとデカい!!


うまく作れば この半分くらいにはできるはずだけど

ま 一作目なので 合格としておきます

早速、水槽にセットして 「激波」と「AC激波」のコラボレーション!!

夜なので シッタカがいっぱい上がってきてる上に 

魚は寝惚けている



予想通りですが

非常に良い波が立ってきた



完全にフランジに当たって「ぺちゃぺちゃ ばちゃばちゃ」

なかなか賑やかですので また近いうちに フロー管を切断して水面を下げる事にするか

それとも 波の音を楽しむか?

これも迷うところです



あと メインコントローラーになる「激波」のプログラムを少し書き換えて

基本はウェーブボックスと連動するのですが 周期を設定して 回りっぱなし(パワーヘッドモード)になるようにしたのと ナイトモード時にも ウェーブモードではなく 回りっぱなしのパワーヘッドモードになるようにプログラムしておいた


好きなようにアレンジできるのでマイコンは便利です!!




これで ACポンプ用正弦波インバーター 1作目の完成です(今度は本当の完成)

まだ こちらでは梅雨明け宣言されていませんが

もう梅雨は明けてるはずだ


もうすっかり真夏の暑さで 強く節電を言われる中

これから先、どんな季節になるのか


ここ一週間の温度変化がこんな感じ

Thermo110623

水槽の温度は24時間 ずっとクーラーの設定温度に べったり貼り付いたまんま



↓こちらのグラフは 1日の最高水温、最低水温 1日の最高気温、最低気温

それからクーラーの1日の稼働時間を表したものです

Thermob110622

最高水温は29℃程度

クーラーの稼働時間は15時間程度



サンゴにとって最高水温の29℃を高いと思われる方も多いでしょうが

浅場のミドリイシ達は平気です

どちらかと言うと 高温気味の時の方が顔色が良いように見えるのは私だけでしょうか



自然界でもサンゴ礁の浅場はかなり過酷な環境なので当然ですが

不死身だと言ってもいいでしょう



ここのところは 浅場ミドリイシよりも 深場に人気が移ってきている感じですが

LEDが省エネ(ローコスト)だなんてのは神話だと思ってますので

まだまだ私は メタハラをギンギンに焚いて 浅場を育てます


250Wのメタハラに代われるのは 本当のところはLEDでも250Wなんですよね!!

2011年6月27日 (月)

透明に

激波を回して丸2日ほどになるかな?

波で濁り始めた水が やっと綺麗な透明になってきた


波で舞い上がるゴミはすべて除去できた と言う事で

給餌時に魚が泳ぎ回って舞い上がったゴミも すぐに沈殿して綺麗になるようになった


あとは底砂の無い 底に貯まり始めたデトリタスを時々吸い出してやればいいだけだし

作り始めたサイクロンも製作を進めていく事にする

元はと言えば ウールによる物理濾過の代わりにサイクロンを使うつもりでしたが

常に仕掛けておくのではなくて 単なるデトリタス掃除機のような使い方をする道具を作ってみようと方向性を少し変えました

2011年6月26日 (日)

久しぶりに「激波」セット

水槽を新調してから

ACポンプコントローラーの作製もあって

造波装置をセットしないままでしたが


ACポンプコントローラーも目途がついてきたので

久しぶりに「激波」をセットしてみた


前の水槽では ダブルでセットしてましたが

今回は ACポンプコントローラーが完成すれば

この「激波」とコラリアマグナム8とのコラボレーションにするつもりなので

あえて シングルでセットする事にした(2つも必要がなくなる)

シングルなので それほどの大波ではないけれども

サンゴが少なくなって 消波ブロックが減ったので シングルでも 結構な波が立っている

すでにフランジに当たってパチャパチャ音がするので

マグナム8も合わせた時には フロー管を切断して水面を下げた方が良さそう




やっぱり波は 気持ちがいい!!




こうやって 波を立て始めると 綺麗に透明だった水が

たちまち濁り始めてきた!!


これは何を意味するのか?





私が 波を水質浄化システムの一つとして考える理由の一つですね

2011年6月25日 (土)

暑いなぁ~

一気に気温も高くなってきて 扇風蜂の働きも活発になってきた


夜に外に出てくる蜂の数も かなり増えてきたので

そろそろ 中が狭くなってきたかな?、と

一段継ぎ箱を追加しておいた


追加してから内検してみると

P6250406_2

おお、なかなかパワフルな群になってる!!

新女王だったからかな?



巣板がしっかりと側面に固定されて 上蓋が開けられるようになったので

巣箱内に温度センサーも設置しておいた




これは 埼玉で39度超えを観測した24日の温度データです

Thermo110624

京都でも こんなんです

1日の半分以上の時間でクーラーが回ってる

ブリードタンクは最高29℃程度

やっと蘇ってきた

水槽新調で 完全に力を失っていた水槽システムですが

ようやく力が蘇ってきた



太陽光ブリードタンクも 太陽光らしくなってきた

P6250402

画像では伝え難いけれども

LEDなどで 蛍光色を無理やり光らせてる 「偽物の色」とは まったく別物の

本当の色が出てくる

私は この色が好きです!!



カニノテも 今のところ状態良く維持できている




パワーが戻ってきた!!

もうちょっと 頑張ってみた

昨日、作り替えた サイン波作成プログラム

ハードウェア主体にしたけれども 最後に残った「割り算」が一つ
これが有るのと 無いのとでは大きな違いで 「掛け算」は「足し算」の2~5倍 「割り算」は「掛け算」の5~10倍くらいの時間が掛かるし 「割り算」は「足し算」の何十倍掛かる事もある


そんな事で 実のところ 計算式が無い「禁断の手法」では 出力している周波数をモニターしてLCDに表示するプログラムが組めたのですが この「割り算」が一つ入ったプログラムで このモニタープログラムを追加すると パンク状態になって表示できなかった




これでは 面白くないので もう一工夫

よく考えれば 「割り算」で出せる答なら 工夫すれば「掛け算」に換えられるはずだ!!





そんな事で 最後の悪あがき!!・・・・いつも悪あがきですが






と 思ったけど

でも やったらできるんですね!!



最後に残った「割り算」一つを「掛け算」に書き換えました




昨日まではセットしていなかったフィルターをセットして波形を確認すると

P6240398

どちらのプログラムも それはそれは綺麗な まったく傷のない

ツルツル、ピカピカのサイン波が出てきた!!




ソフトウェアでON、OFFせずに ハードウェアに任せるだけで これだけピカピカになるとは 驚きと共に

早く、こうすれば良かった、と後悔しました




これで どれだけのキャリア周波数まで追従できるのかテストしてみると



ぱっと見は 結構上まで追従できてるように見えてたのですが

よくよく見ると 追従できていないようで徐々に割り込みが遅れるようになってくる(周波数が合わなくなってくる)

しっかりと追従できるのは 12KHzまで

最後に残った「掛け算」一つがブレーキになったようだ



もう一つの「禁断の手法」では プログラム内に計算式が一つもない分 余裕があるのか?

43KHzまで乱れもなく綺麗な波形のままで追従できた


これも これ以上キャリアを上げると 割り込みが遅れてくるようになる




どちらにしても 今回、そんなに高いキャリアを求めてる訳ではなく

単に正弦波フェチが 綺麗な正弦波を求めてただけなので

充分に満足できる仕上がりになった

これで 今度こそ仕上げに向かっていきます

2011年6月24日 (金)

こんな方法が有ったのか

今まで私が作ってきた サイン波を作成するプログラムは マイコンのタイマーの機能を利用したソフトウェア主体のプログラムでした 


これは 私が思ってた信号の出力方法が ハードウェア主体ではできない、と思ってたからなんですが

いや単なる私の知識が無かっただけで 実はそんな機能も有ったんです!! 



またまたO-Familyさんが 気付かせてくださいました






そんな事なら・・・・・・・・





今までのプログラムではPWMを OCR1Aでキャリア周波数を制御する為の割込み OCR1Bでデューティー比を制御する為の割込みを発生させて 主にソフトウェアでポートの出力を制御しておりました

これはハードウェア主体では 一つのタイマーでOCR1AとOCR1Bの設定だけで 別々の2つの波形を出力する方法が思いつかなかったからなんですが

よくよく勉強してみると OCR1AとOCR1Bの他にタイマーのモードによってICR1という値が設定できる事がわかった

今までは OCR1Aでタイマーカウント値の上限(TOP)を設定して OCR1Bで途中の割り込み地点を設定できるだけだと思ってたので どう考えても 2つの別々の出力をする方法が思いつかなかったのですが

ICR1という値で TOPを設定する事ができる事がわかった

これができればICR1でキャリア周波数を設定して OCR1AとOCR1BでOC1AとOC1Bからの出力のデューティー比を別々に設定する事ができるので 2つの違った波形を出力する事が可能になる



なんだ そうだったのか!!

という内容ではありますが マイコンの機能は いっぱい有り過ぎて

ちょっとや そっと マニュアルを見たところで なかなか理解できるものではない


特に私のような原始人には・・・・・・・・



そんな時に いつも助けてくださるのが O-Familyさん

いつもありがとうございます




そんな事で ハードウェア主体のサイン波生成プログラムを2種類 作ってみた



一つ目は  一般的な本来の手法で キャリア周波数を固定して 周波数の調整は使うキャリア数で制御する方法

もう一つは 使うキャリア数を固定しておいて 周波数の調整はキャリアの周期で調整する方法で これは禁断の手法のようですが 今まで私が続けてきた手法です


まだ フィルターを付けていないので どんな波形になったのかは確認できませんが

パルスの波形を見る限りでは どちらも 一応仕上がったかな?、という感じで

P6240392

ハードウェア主体にした事で どこまで高いキャリアに追従できるのかを確認していきたいところですが 上記のキャリア周波数固定の手法では どうしてもプログラム内に「割り算」が入ってしまうので これが どれだけの重荷になるか?
出来る限りプログラム内から計算式を省いてみたのですが どうしても割り算が一つ残ってしまう
マイコンの中で「割り算」という計算は かなり時間を使う計算で しかも小数以下の計算だと尚更ですが これがどれだけの足かせになるか


もう一つの禁断の手法では プログラム内から一切の計算式を省く事ができたので こちらは まあまあのキャリア周波数まで追従できるのではないか、と思われるけれども
何でも そうで 良いところが有れば悪いところもあって 一長一短



波形を確認してからになりますが

完成すれば また どちらを使うか迷う事になりそうな気がする!!  

2011年6月22日 (水)

ハードウェアタイマーの使い方

サイン波を作るプログラムは 既に完成していて

ポンプの駆動も問題なく

このまま完成させようとしてたところですが



O-Familyさんより PWMを作るハードウェアタイマーの使い方の問題点を御指摘頂き

考え直しておりました


既に作っていたプログラムは先日、記事にしたように 確かに アブノーマルな手法で

シビアな目で見ると 正確な時間を刻むハードウェアタイマーの使い方ではない



そんなところで もう一度 ハードウェアタイマーの使い方(モード)を考え直す事にした



今までのタイマーの設定は

Config Timer1 = Timer , Prescale = 1 , Clear Timer = 1
Compare1a = Koma1 - 1
Compare1b = 1500
On Compare1a Tim2
On Compare1b Tim3
Enable Compare1a
Enable Compare1b

「比較一致 CTC動作」というモードで

PWMの波長や周波数を調整するCompare1AやCompare1Bの値を プログラムで書き換えると その場で書き換わるらしくて このタイミングが悪いとタイミングが悪いまま書き換わってしまうらしくて そこに問題が有るとの事 



そんな事で 他にもいろいろなモードがある中で

まず重要なのが 「比較器[OCR1x]の更新」のタイミングらしくて これがBOTTOMになるモードを使うと良いらしい

それから「TIMER1[TCNT1]TOP値」が「OCR1A」あるいは「ICR1」になるモードを選ぶ

この条件で選んでみると

「位相・周波数基準PWM動作」で2つのモード

「高速PWM動作」で2つのモード

合計4つのモードがリストに挙がる


元々 今のサイン波プログラムを作り始めた時に上記「高速PWM動作」モードでやり始めたのですが まったくサイン波にならずに 勝手に「こういう使い方はできないんだ」と思い込んで やめてしまってた


そんな事で もう一度 今までのプログラムのままでタイマーの設定だけを変えてみると

やっぱり まったくサイン波にならない



これではまったく進まないので まずは 上記の4つのモードの簡単なプログラムを書いてみて

波長、周波数を調整する方法を確認してみると どれも そうも問題なく 同じ様な使い方で 波長も周波数も制御できるじゃないか!

問題なく制御できているので 最低限サイン波だけ出力するプログラムだけを取り出して入れてみると 問題なく サイン波が出力されている

どうして 前のプログラムでサイン波が出なかったのか?



これを確かめる為に 現在のプログラムのタイマーのモード設定を「高速PWM動作」の

TOPを「ICR1」にするモードに書き換えて実行してみると やっぱりダメ

ここから 順番に引っかかりそうなコードを省いていきながら サイン波が出るか確認していく


とことんコードを省略していって テストでサイン波が出たプログラムと もう何も違いは無いところまで省略したのに サイン波が出ない!

2つのプログラムの違いになる部分が解らないし もう省けるところも無い



なぜだ!!





この状態から かれこれ30分は まぶたが腫れてあんまり見えない目で コードを睨み続けていた気がする・・・・





そこでやっと 違いに気付いた



以前のプログラムでは タイマーの設定のコードの後 すぐに 「Stop Timer1」でタイマーを止めておいて メインループの寸前で再スタートさせていた

テストプログラムでは これをやっていない


試しに タイマーを止めるのをやめて メインループの寸前でタイマーを設定するようにしてみると サイン波が出た!!

「比較一致 CTC動作」モードでは タイマーを止めてもまったく問題は無かったけれども

「位相・周波数基準PWM動作」

「高速PWM動作」

のモードではタイマーを一度止めると正常に機能しなくなるのかも知れない


ここは深くは解らないけど 先に進む事にする


タイマーを止めなければ サイン波が出る事が解ったので もう一度最初のプログラムで タイマーを止めないコードに書き換えると これも問題なくサイン波が出力された!!

P6220386

これで一つ解決!!



でも よく見ると サイン波の線が あまり綺麗ではないし

半波を200コマ割りにしたキャリア周波数だと 凸凹になる(画像は100コマ割り)


「反則技」を使っていた元の「比較一致 CTC動作」を使ったプログラムも 反則技を使わずに波形が繋がる比較器の設定タイミングが分かったので やってみると

P6220388

画像では分かり辛いが ±の切り替わり部分以外の線は こちらの方が滑らかで綺麗に仕上がっている
でも これも 200コマ割りにすると少々凸凹になる 



反則技を使った 元のプログラムが 一番綺麗な波形だったりするのと

これだと 500コマ割りでも 波形が大きく丸くなるけれども 凸凹が出ずに綺麗なカーブを描いてくれる 

P6220390




さてと

結局のところ どれを使う事にしようか?


オーディオの音質に拘ってるなら いざ知らず
ポンプをコントロールするのに きっと この程度の違いは どれを使っても差は出ないと思うけれども

正弦波フェチとしては悩むところです(笑)!!

 

2011年6月20日 (月)

ちくしょう 刺された!!

先日、女王の交尾飛行失敗かと思われた A群の様子を見に

妻の実家へ行ってきた


もう入居から 45日ほどになるので 女王の交尾失敗か あるいは女王不在であったとすれば

そろそろみんな寿命になるはず


そんな事で確認の為 内検にいってみたところ

そんなに蜂数は減っていない

かと言って 増えてもいないから 決して良い状況ではない



そんな中

巣箱を開けて 内検し始めると どうも飛んで出る蜂が荒っぽくて

出てくる蜂が みんな顔や頭の周りにまとわり付いてくる



その中で 1匹の蜂が私のまぶたに止まった!!

動いたり払ったりするといけないので まぶたに止まったまま じっとしてたら



チクっ!!



その後 すぐに左手に止まった蜂も



チクっ!!




何もしていないのに・・・・・・・二発連続!





状態が悪いと こんな季節でも 機嫌が非常に悪くなるようだ

この季節にやられるとは思っていなかったが



まぶたを蜂に刺されたら どうなるかは 御想像にお任せします・・・・・・・・ちくしょ~~っ




今なら お岩さんにも負けません!!