ほんまかいな、そーかいな、南アフリカ と ちょびっと シドニー そして日本だ!

南アフリカ(2004年)と、シドニー(2005年)での生活の近況報告です。そして日本でも(2007年から)

ホタル2011年

2011年06月19日 | 動物・昆虫・植物・生き物全般
今年もホタルの季節がやってきた。
今年は、6月14日に昨年と同じ場所に行ってみたところ、ジャスト・イン・タイム!
ちょうど最盛期(と思われる)にぶち当たった。
人もそれほど多くなく、ゆっくりとホタルの乱舞 を堪能できた。
いよいよシーズン到来かと期待したが、翌日はあいにくの雨。
一日置いて、再び同じところに行ってみると、少し減ってはいるが十分飛んでいた。
さらに、その翌日、17日にも行ってみたが、さすがに、”わりと減ったかな?”と感じられるくらいに減っている。
逆に、人はかなり増えている。
つまり、ホタルを堪能するには、場所もさることながら、うまく最盛期ぴったしに合わせることが重要なのだといまさらながらに学習。
とはいえ、まだ、1週間ほどはなんとか見られそう…かな?
コメント (0) |  トラックバック (0) | 

クマバチのホバリング

2011年05月07日 | 動物・昆虫・植物・生き物全般
今朝は、朝からぶんぶんとなにやら外がにぎやか。
出てみると、マルハナバチがホバリングしている。
マルハナバチの仲間かと思っていたが、調べてみると、クマバチ
この時期、メスを求めて、縄張りを作って、近づくものを全てチェックしているらしい。
で、メスでなければ、無視するそうな。
ちなみに、このハチのオスは、針を持たないので刺すことはない。
基本的には、ハチの針は、産卵管の変化したものなのでオスは刺さない・・・はず?
もともと、花粉や蜜を集めるミツバチの仲間なので刺すことは、少ないそうだが、メスはいじめると刺すこともあるそうな・・・。
せっかくなので、ホバリングの様子を写真に撮ってみた。
最近は、デジカメなのでフィルムを気にすることなく大量にシャッターを切れるので、とにかく、片っ端からシャッターを切ったら、何枚かそこそこ写っていた。
後ろから見るとこんな感じで、
下から見るとこんな感じ
撮影の技術もなんもあったもんじゃないが、まぁ、宝くじみたいなもんやね。
なかなか、お行儀良く、足をきちんとたたんで抵抗を少なくして飛んでいるようだ。
次の日には、もう、見かけなかったので、無事奥さんが見つかったのかな?
めでたしめでたし・・・。

コメント (0) |  トラックバック (0) | 

山頂酒宴の下見

2011年04月08日 | アウトドア
今年は、もう少し暖かくなったら、山の上で月見宴会をもよおしたいと思っている。
その下見をかねて、ちょいとハイキング。
何年か前に上った記憶があり、その時は、なんか楽勝のちょいちょい気分だったように思ったんだけど、行ってみると、えらいくたびれた。
思っていたよりハードな傾斜なうえ、昼過ぎにちょこっと行ってさっと帰れると思っていたもんだから出発時間も遅かった。
そんなもんで、休みなしにせっせと登らんとならんのでこれまたくたびれた。
逆に頂上は狭かったと思っていたのだが、意外と広さもあり、十分宴会が催せる。
問題は、誰が飲みもの、食いもの担いで上がるかだな。
そして、日暮れを気にしながら、あわてて下山したら、ひざがガクガクになってしまった。
ふもとに降りると、あたりにミツマタの花が咲き乱れていた。

桜ほどの華やかさはないが、なかなかにしぶい美しさだ。
楽して、花見でいっぱいという意見に負けないようにしなければ…。

そして、2、3日したら、恐怖の筋肉痛が待っているのだな、これが…。
コメント (0) |  トラックバック (0) | 

水菜の花がうまい!

2011年04月04日 | 生活全般
今年も水菜の花がうまい!
そのままサラダにもいいし、さっと熱湯をかけたのち、塩して漬物もいける。
うちの畑は面倒なので農薬を使っていない。
結果、無農薬野菜なのであるが、特にこだわりはない。
が、おかげで、出来た野菜を畑でそのまま食べれる。
これが、なかなかにうまい。
ちょいとつまんで、口に、ぽいっ!
農薬の心配はないが、もしかすると、虫の卵とかいっぱい喰っているかも。
なんか、検便に恐怖を感じる今日この頃なのであります。
コメント (0) |  トラックバック (0) | 

3X3X3LEDCube

2011年04月03日 | Gadgets

LEDのいっぱいくっついたジャンク基板が手に入ったので、パーツをひっぺがしてLEDキューブを作ってみた。
4X4にするか、3X3にするか迷ったけど、4X4だとLEDを64個も半田付けしなきゃならないので、とりあえず3X3でやってみることにした。
これでも、LEDを3X3X3=27個も半田付けしなきゃならない。
点灯のパターン作製とドライブは、PIC16F628Aとトランジスタ12個で駆動している。

当初、ポートがたくさん付いているPIC、16F57を使おうと思っていたのだが、前にも書いたようにテスト段階でうまくLEDを点灯できなかったので四苦八苦しているうちに面倒になり、また、早く結果が見たいのも手伝って、
”まぁ、16F57にこだわらなくても、とりあえずできればいいか”
と、16F628Aに日和見ってしまった。
が、プログラムを作るうちに、メモリが足りなくなり、あまり大したパターンを作ることができない。
Lite ModeのHitech-Cなので、メッセージによると、最適化するともう40%ほどいけるようだが、高価な製品版を買う由もなく、
LEDを点滅するだけの大したノウハウもいらないプログラムだから、いっそ、アセンブラで書くともう少し何とかなるかもしれないが、まぁ、宿題にしておこう。
一応、今回は、メモリに苦しみつつも、なんちゃってPWMとダイナミック点灯を盛り込んでみた。

回路図も一応作ってみた。
あまり、参考にはならないが、こちらから
http://blogimg.goo.ne.jp/user_image/4e/08/635f9216f88428e9550904d04c122c60.png

16F628AのI/Oは、1ピンあたり25mA、ポートA,B合計で200mAまでいけるようだから、LED1個あたり、8mA以内に抑えておけば、トランジスタは、LEDのアノード側を省略してもカソード側の3つで足りると思う。
逆に、PICの各I/Oピンの出口に抵抗を入れておいたほうが良いかもしれない。
それと、MCLRピンのプルアップ --- これは、PIC16F57で懲りている…。
ちなみに、16F628は、RA4のピンは、オープンコレクタなので、プルアップが必要
それと、RA5のピンは、入力専用なので、LED点灯には、そのままでは使えない---どこかで、入力専用ピンを出力に使う方法というのを見た気もするが、普通は、使えない。
この入力ピンを使って、暗くなったら勝手に点灯するようにもできそうだが、なんせ、ほら、メモリーが…。

動画もアップしておいた。興味のある方は、こちらから
http://www.youtube.com/watch?v=YWMIcI0edtY


ソースリスト(HiTech-C)

// LED Cube for 16F628

//LED position (top view) :
//   0 1 2 
//   3 4 5
//   6 7 8
//PORTA
// 0=RA0  1=RA1  2=RA2  3=RA3  4=RA4  5=RA6  6=RA7   
//PORTB :
//  7=RB0  8=RB1 
//  RB5:Bottom    RB6:Middle    RB7:Top


#include  

#ifndef _XTAL_FREQ
  #define _XTAL_FREQ 4000000
#endif


__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO & LVPDIS);

void wait(t) {
  unsigned int i;
  for(i=1;i}

void P1(){

    PORTA=0x10; PORTB=0x20;
    wait(5);
    PORTA=0x11; //PORTB=0x20;
    wait(5);
    PORTA=0x13; //PORTB=0x20;
    wait(5);
    PORTA=0x7; //PORTB=0x20;
    wait(5);
    PORTA=0x46; //PORTB=0x20;
    wait(5);
    PORTA=0x44; PORTB=0x22;
    wait(5);
    PORTA=0x40; PORTB=0x23;
    wait(5);
    PORTA=0x80; //PORTB=0x23;
    wait(5);
    PORTA=0x88; PORTB=0x21;
    wait(5);
    PORTA=0x89; PORTB=0x20;
    wait(5);
    PORTA=0x19; //PORTB=0x20;
    wait(5);
    PORTA=0x11; //PORTB=0x20;
    wait(5);
    PORTA=0x10; //PORTB=0x20;
    wait(5);
     
}

void P2(){

    PORTA=0x10; PORTB=0x40;
    wait(5);
    PORTA=0x11; //PORTB=0x40;
    wait(5);
    PORTA=0x13; //PORTB=0x40;
    wait(5);
    PORTA=0x7; //PORTB=0x40;
    wait(5);
    PORTA=0x46; //PORTB=0x40;
    wait(5);
    PORTA=0x44; PORTB=0x42;
    wait(5);
    PORTA=0x40; PORTB=0x43;
    wait(5);
    PORTA=0x80; //PORTB=0x43;
    wait(5);
    PORTA=0x88; PORTB=0x41;
    wait(5);
    PORTA=0x89; PORTB=0x40;
    wait(5);
    PORTA=0x19; //PORTB=0x40;
    wait(5);
    PORTA=0x11; //PORTB=0x40;
    wait(5);
    PORTA=0x10; //PORTB=0x40;
    wait(5);
     
}

void P3(){

    PORTA=0x10; PORTB=0x80;
    wait(5);
    PORTA=0x11; //PORTB=0x80;
    wait(5);
    PORTA=0x13; //PORTB=0x80;
    wait(5);
    PORTA=0x7; //PORTB=0x80;
    wait(5);
    PORTA=0x46; //PORTB=0x80;
    wait(5);
    PORTA=0x44; PORTB=0x82;
    wait(5);
    PORTA=0x40; PORTB=0x83;
    wait(5);
    PORTA=0x80; //PORTB=0x83;
    wait(5);
    PORTA=0x88; PORTB=0x81;
    wait(5);
    PORTA=0x89; PORTB=0x80;
    wait(5);
    PORTA=0x19; //PORTB=0x80;
    wait(5);
    PORTA=0x11; //PORTB=0x80;
    wait(5);
    PORTA=0x10; //PORTB=0x80;
    wait(5);
     
}

//All Brink
void P4(){
 unsigned int i;
 
   for(i=1;i<=15;i++){ 
    PORTA=0xFF; PORTB=0xFF; 
    __delay_ms(2);
    PORTA=0x00; PORTB=0x00;
    __delay_ms(18);
   } 
   for(i=1;i<=15;i++){ 
    PORTA=0xFF; PORTB=0xFF; 
    __delay_ms(6);
    PORTA=0x00; PORTB=0x00;
    __delay_ms(14);
   } 
   for(i=1;i<=15;i++){ 
    PORTA=0xFF; PORTB=0xFF; 
    __delay_ms(10);
    PORTA=0x00; PORTB=0x00;
    __delay_ms(10);
   } 
   for(i=1;i<=15;i++){ 
    PORTA=0xFF; PORTB=0xFF; 
    __delay_ms(14);
    PORTA=0x00; PORTB=0x00;
    __delay_ms(6);
   } 
   for(i=1;i<=15;i++){ 
    PORTA=0xFF; PORTB=0xFF; 
    __delay_ms(18);
    PORTA=0x00; PORTB=0x00;
    __delay_ms(2);
   } 

   for(i=1;i<=5;i++){
   PORTA=0xFF; PORTB=0xE3;
   wait(50);
   PORTA=0x00; PORTB=0x00;
   wait(20); 
   }
}

//Bottom to Top
void P5(){
 unsigned int i;
  for(i=1; i<=8; i++){ 
   PORTA=0xFF; PORTB=0x23;
   wait(20);
   //PORTA=0xFF;
   PORTB=0x43;
   wait(20); 
   //PORTA=0xFF;
   PORTB=0x83;
   wait(20);
   //PORTA=0xFF;
   PORTB=0x43;
   wait(20); 
  }
}

//Front to Back
void P6(){
 unsigned int i;
  for(i=1; i<=8; i++){ 
   PORTA=0x07; PORTB=0xE0;
   wait(20);
   PORTA=0x58; PORTB=0xE0;
   wait(20); 
   PORTA=0x80; PORTB=0xE3;
   wait(20);
   PORTA=0x58; PORTB=0xE0;
   wait(20); 
  }
}

//Left to Right
void P7(){
 unsigned int i;
  for(i=1; i<=8; i++){ 
   PORTA=0x89; PORTB=0xE0;
   wait(20);
   PORTA=0x12; PORTB=0xE1;
   wait(20);
   PORTA=0x44; PORTB=0xE2;
   wait(20);
   PORTA=0x12; PORTB=0xE1;
   wait(20); 
  }
}

//Rotate
void P8(){
 unsigned int i;
   PORTA=0x10; PORTB=0x20;
   wait(20);
   PORTA=0x10; PORTB=0x60;
   wait(20);
   PORTA=0x10; PORTB=0xE0;
   wait(20);
  for(i=1; i<=8; i++){ 
   PORTA=0x58; PORTB=0xE0;
   wait(20);
   PORTA=0x11; PORTB=0xE2;
   wait(20); 
   PORTA=0x12; PORTB=0xE1;
   wait(20);
   PORTA=0x94; PORTB=0xE0;
   wait(20); 
  }
}

//Diagonal
void P9(){
 unsigned int i;
 unsigned int j;
  for(j=1; j<=8; j++){ 
   for(i=1; i<=20; i++){ 
    PORTA=0x10; PORTB=0xE0;
    wait(2);
    PORTA=0x58; PORTB=0x40;
    wait(2);
    PORTA=0x12; PORTB=0x41;
    wait(2);
   }
   for(i=1; i<=20; i++){ 
    PORTA=0x85; PORTB=0x22;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x85; PORTB=0x82;
    wait(2);
   }
   for(i=1; i<=20; i++){ 
    PORTA=0x4A; PORTB=0x21;
    wait(2);
    PORTA=0x85; PORTB=0x42;
    wait(2);
    PORTA=0x4A; PORTB=0x81;
    wait(2);
   }
  } 
}

//Satellite Orbit
void P10(){
 unsigned int i;
 unsigned int j;
 unsigned int k;

  for(k=1; k<=3; k++){ 
    for(j=1; j<=4; j++){ 
   for(i=1; i<=4; i++){ 
    PORTA=0x00; PORTB=0x82;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x01; PORTB=0x20;
    wait(2);
   }
    
    PORTA=0x12; PORTB=0x41;
    wait(15);
    
   for(i=1; i<=4; i++){ 
    PORTA=0x04; PORTB=0x80;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x80; PORTB=0x20;
    wait(2);
   }
   for(i=1; i<=4; i++){ 
    PORTA=0x40; PORTB=0x80;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x08; PORTB=0x20;
    wait(2);
   }
  }

  for(j=1; j<=4; j++){ 
   
    PORTA=0x11; PORTB=0x42;
    wait(15);
    PORTA=0x12; PORTB=0x41;
    wait(15);
    PORTA=0x94; PORTB=0x40;
    wait(15);
    PORTA=0x58; PORTB=0x40;
    wait(15);
  }

  for(j=1; j<=4; j++){ 
   for(i=1; i<=4; i++){ 
    PORTA=0x01; PORTB=0x80;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x00; PORTB=0x22;
    wait(2);
   }
    
    PORTA=0x12; PORTB=0x41;
    wait(15);
    
   for(i=1; i<=4; i++){ 
    PORTA=0x04; PORTB=0x20;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x80; PORTB=0x80;
    wait(2);
   }
   for(i=1; i<=4; i++){ 
    PORTA=0x08; PORTB=0x80;
    wait(2);
    PORTA=0x10; PORTB=0x40;
    wait(2);
    PORTA=0x40; PORTB=0x20;
    wait(2);
   }
  }
   }
}


main()
{
 PORTA = 0;
 PORTB = 0;
 
 TRISA=0;
 TRISB=0;
 TRISA5=1;

// note : RA5 is Input only
// note : RA4 should be pulled up for Output 
 
 CMCON = 0x07;
unsigned int i;
 
 while(1){
  P4();
  P5();
  P6();
  P7();
  P8();
  P9();
  P10();
 for(i=1;i<3;i++){
  P1();
  P2();
  P3();
  P2();
 }
  P1();
 }


コメント (0) |  トラックバック (0) | 

PIC16F57を使ってみる

2011年04月01日 | Gadgets
PIC 16F57は、100円でI/Oが20本も付いてくる。
これで、LEDをいっぱいコントロールすると、きれいなイルミネーションが作れそう…。
と、2つほど買ってみたのだが、買ってから、ネットで調べてみると結構、クセがあって使いにくそう。
まぁ、なんとかなるじゃろ。 と、これを使って3X3X3のLEDキューブを作ってみることにした。
ライター509を使って、ICソケットから単心線を使って、ブレッドボードにさしたPICにつなぎ、簡易アダプターとする。
ちょいちょいと、テスト用にLEDをいくつか点滅させるプログラムを組んで書き込みを行ってみた。
とくに、問題もなく書き込みが完了し、ベリファイもOK
LEDとクリスタルをつないで電源を入れると、
ん!! つかん!
ジャンク基板から外したクリスタルとコンデンサーが悪いのかな? 
と、思いオシロでチェックしてみたら、ちゃんと発信している。
でも、I/Oピンからは、電圧が出ない。
こりゃ、プログラムかな?
と、思い、シンプルなLEDチカチカのプログラムに書き換えてみる。
それでも、つかない。
んん?!
ほんじゃ、とりあえず、ずっと点灯するように、全部のピンをHiにするプログラムで…。
それでも点かない。
ありゃりゃ? デバイスが壊れてるのかな? でも、クロック発信はしてるしなぁ〜。
と、いうわけで、16F57でLEDキューブをコントロールするのは、断念してとりあえず、ほかのPICで行うことにする。
ちょっと、これは、宿題やなぁ〜。



後日、原因が判明した。
MCLRのリセットピンをプルアップをしてなかったせいだ。
これまで、使っていたPICでは、MCLRのリセットをDisableにしてるだけで、問題なく使えていたのだが、
どうも、今回は、そうは問屋がおろさなかったようだ。
ネットにもいくつか注意事項として出ていたのだが、すっかり、罠にはまってしまったようだ。
が、これで、ちょっと、可能性が広がったな…。
コメント (0) |  トラックバック (0) | 

モスキート音発信機

2011年03月26日 | Gadgets
低周波発信機をフリスクケースに組み込んでみた。
チップ部品を使った、僕としては、極小作品である。
もう、この辺になると僕の目では、虫眼鏡下の半田付けとなる。
まぁ、この辺が自分の目の限界かな…。
そして、耳の限界を探るのがこれ。
ひところ、携帯の着信音で話題になったモスキート音。
このあたりに周波数を設定している。
が、しかし、自分が聞こえなくて人に聞こえると悔しいので、自分の聞こえる周波数のぎりぎりに設定してある。
これが聞こえたら、自分と同じか、それ以上。
その場合は、”まぁ、こんなもんやね” とスルーする。
で、聞こえなければ、
”やーい、俺より老人耳だぜー!” と、はやす・・・。
なに? 大人げない?
そう、よく言われます。
で、周波数カウンタで調べてみたら、僕の限界点は、だいたい14kHzくらいだった。
悔しいことに、若いやつらは、もっと、もっと聞こえているのだ…。

とりあえず、回路図を見たい方は、こちらを…。
コメント (0) |  トラックバック (0) | 

梅に鶯2011

2011年03月11日 | 生活全般
今年も我が家の梅が花をつけた。
もう、3年目に入るが、まだ、1mにも満たないチビ梅だが、律義に春には、花を見せてくれる。
うちの辺りでは、この梅の花と鶯がうまく一致しているようで、今年も梅の花が咲いた日にウグイスの初鳴きを聞いた。
初鳴きといっても、自分が聞いたのがこの日初めてだっただけではあるが…。
昨年の記録を確認すると、昨年は、梅の花も、ウグイスも、2月28日に見ているので、今年は、昨年より10日ほど、遅い春ということになる。
昨年の夏の暑さも厳しかったが、この冬の寒さもなかなかのものだった。
そして、昨日、東北地方で大地震が発生した。
こちらでは、のどかなものだが、関東、東北地方では、えらいことになっているようだ。
まさに、自然の猛威は、容赦ないと、改めて震撼する次第である。
コメント (0) |  トラックバック (0) | 

林道雪中ハイキング

2011年03月05日 | アウトドア
最近は、スキーに行くこともなくなり、あまり雪遊びにご縁がない。
山スキーのビンディングもついに崩壊し、冬山用オーバーパンツも行方不明。
雪山に出掛けることも年に一回あるかないかになってしまった。
でも、今シーズンは、寒さも厳しく、寒いだけでは悔しいので、ちょいと雪遊びに出掛けてきた。
林道をスノーシューでえっちらおっちら上ること2時間ほど、あまりの天気の良さに寒さも忘れ、ポカポカ陽気の中でお昼寝。
こういう快適な雪山なら、もう少し、頻度をあげてもよいかな…。
来年は、もう少し上まで登って、尾根の雪原が見えるところまで足を延ば……せるかなぁ〜。
…体力の問題を忘れておった…。
コメント (0) |  トラックバック (0) | 

月食は、見えずか・・・。

2010年12月21日 | 生活全般
今日は、皆既月食の日だったので、観察の場所を標高地図でシミュレーションし、インターバルタイマのプログラムを書き換え、バッテリーを充電し、カメラのレンズの画角を計算し、準備万端整えたのだか、あいにく、全天の雲、くも、クモ。
う〜ん、これでは、どーしようもない・・・。
天気予報も、これからさらに下り坂で雨の予報。
ま、しかたない。 おとなしく、うちでデータでも整理していよう。

ところで、先日のふたご座流星群の動画をアップした。
興味のある方は、こちらからどーぞ。
が、どーもYOUTUBEのクオリティが満足できない。 PC上で見るオリジナルの動画では、沢山の流星が見えるのだが、YOUTUBEにアップすると、ほとんど見えなくなってしまう。 流星痕なども全く見えない。
ちょっと、残念なのだが、他の人の動画をみてると、なかなか、きれいにできているのも沢山ある。
これは、腕の問題だろうか? それとも、機材の問題???

それと、先日、携帯を落としてしまった。
どうやら、ため池で大根を洗っているときにでも池に落としてしまったようだ。
新しく買い直した(機種変更した)のだがアドレス帳もなんもかんもなくなってしまったので、連絡のつけようもない。
と、いうわけで、知り合いの方は、近況報告などあわせて名前と電話番号を書いたメールを送っていただけるとありがたい。 こちらの電話番号、アドレスは変わっていませんので前の携帯のアドレスにそのままお送りいただけます。
なにぶん、よろしく。
コメント (0) |  トラックバック (0) |