2012年10月26日金曜日

[Android]Xperia SXに変えました

Galaxy SIIが出た頃に型落ちしてたGalaxy Sに変えてからの、二台目Android
Symbianを使ってた頃には考えもしなかった世界になってますね!

iPhone 3GS以来のiPhone5か, WM6.1以来のWindows Phoneか, Galaxy SIII miniか?とか迷いながらサイズだけ見てXperia SXをチョイス。
12年夏モデルで生産も多くないみたいで、中々在庫も無くロードバイクでお散歩ついでに近隣の市のshopを見て回って買ってきました。
冬にはXperia AXも出ますが、スペックはほぼ変わらず画面サイズは大きくなってるので...


以下メモ
ホームアプリ
 └Docomo palette ui, Xperiaホーム は痒い所に手が届かなかったので、4.0以降で使えるApex, Nova, Atom Launcherを入れてみたけど、どれも微妙
 └結局、Galaxyの時と同じでGo Launcherを。Xperiaホームのページ数を減らせればそれで良かったのに...

ブラウザとメッセンジャー系
 └Chrome
 └Kakao talk
 └Viper
 └Lineはバッテリーを良く食べるみたいなのでちょっと様子を見てから..
 └Skypeもまた今度

ツールとか
 └GTasks(ToDoと簡易メモ)
 └Solid Explorer(ファイラ)
 └AirDroid(wifiを使ってPCとファイルのやりとり)
 └3G Watchdog(通信料監視, 今回は要らない気もする)
 └Google Play music(google play music クライアント)

とりあえず、必要最低限だけ
あとは、プリインストールのアプリをいくつかアンインストール, 無効化

2012年10月18日木曜日

[AVR]AVRを始める(3)-USBで通信

赤外線カメラが早速ほこりを被りました

そして、盗まれた一代目ロードのTrek君に変わって二代目Corratecのバイクを買いました(*´ω`*)
Trekのより鍵のグレードは上げないといけないですが、鍵なんて所詮無力です...置いておくのが悪いんです...


また間が空いて、今回はUSBを使って通信をします。
USB変換モジュールは、秋月のFT232RLを使います。
COMポートもUSBも同じシリアルなのに、どのあたりが変換なのかよく分かりません。

前回までで、SP3232ECPを用いたシリアル通信はできたので、それをFT232RLに変えるだけです。
回路図は以下の通りです。


FT232RLとAVRの接続はデータの送受信に用いるTXDとRXDの二本だけです。
また、FT232RLはUSBから5V(または、3.3V)電源を出力する事ができますので、AVRへの電源供給に用います。簡単便利!


シリアル通信のソフトによってシリアルポートが開けなかった為、sanahi氏のAcknowrichでキャプチャしてテストを行いました。良さ気ですかね。

とりあえず、ここまででCOMポートの無いmacbook proに戻れそう。

次はJavaでシリアル通信をしたいと思います。

2012年10月4日木曜日

赤外線カメラの作り方

赤外線カメラを作りました。赤外線照射器と一緒に
SEALsの本 を読んでナイトビジョンに憧れて...本は凄く面白かったです

新しいデジカメをそろそろ買いたかったので、4年くらい前に購入したカメラを利用する事にします。

用意するもの
    1. デジカメ

      今回は、大分古くなったNikon COOLPIX P60を利用します。
      分解・改造するので、亡くなっても構わない物を用意しましょう。

    2. 光吸収・赤外透過フィルタ (IRフィルタ)

      IRフィルタは可視光領域をカットするフィルタです。暗闇で照射器と組み合わせて使うなら必要ないと思いますが、お昼に赤外線写真を撮影したい人は必要です。
      今回は富士フィルムのIRフィルタを使用しました。IR-xxと号数が振ってあり、号数の10倍の波長をカットします。JIS曰く、可視光の波長の上界は760-830nmらしいです。
      先人の方達は76号を使っている場合が多いように感じますが、近くのお店の在庫と相談して 80号 を使用しました。昨日の時点で近くのビックカメラには80号82号の2枚だけ在庫がありました。お店によって無いことも多そうです。
デジカメの改造
    1. カメラを分解します
      写真はP60のものですが、工程は似たようなものでしょう。
      フラッシュ用の大容量のキャパシタが内蔵されています。感電したら痛いです。気をつけましょう。
      筺体の底部, 側部のネジを外しカバーを開きます。
      液晶やアルミのシールド(? 放熱板?)を取り除き、イメージセンサにアクセスできる所まで分解します。
      二枚目の画像でAと書かれた、フレキシケーブルの接続されたシルバーのボードを開けるとCCD素子があります。

    2. フィルタの交換
      画像は撮り忘れましたが、CCD素子の前に光の当たる角度でピンク色に見えるガラス板があり、これがローパスフィルタです。このフィルタが赤外線領域をカットしています。
      ローパスフィルタを取り除き、そのフィルタと同サイズにIRフィルタをカットしローパスフィルタのあった場所に収めます。

    3. 元に戻す
      液晶等を基盤に接続し仮組みを行い、電源が入ること, (場所によるかもしれませんが)紫色の画像が液晶に表示される事を確認しデジカメを元に戻します。
      又開ける事もあると思いますので、ネジが2, 3本余っても気にしないでいきます。

      ローパスフィルタとIRフィルタは厚さが異なるため、取り替えるとピントが合わなくなると思います。同じ厚さになる様にガラス(アクリル)板を加える方も居るようです。
これで、赤外線カメラのできあがりです。
試しに手作りの赤外線照射器を使って真っ暗な部屋を撮影してみます。

肉眼では真っ暗ですが、撮影は出来てますね。残念なのは思ったより照射器の光量が小さい事ですね...
また、IRフィルタを少しカットし、デジカメのフラッシュをフィルタでカバーすると赤外線フラッシュになります。夜間の写真撮影ならばこれで十分です。照射器は必要ありません。

せっかくの赤外線カメラなのでスノー効果(?)など赤外線独特な写真も...?
画像の加工の仕方が分からないので、macのプレビューで適当に...これも練習ですね。

赤外線カメラは出来ましたが、ナイトビジョンはまだ達成できていないので赤外線照射器と一緒にまた後で...

*最後に、カメラの改造は自己責任です。どんな不具合が起きても対応する事はできません。撮影についても同様です。
ちなみに、透けたりムフフな事にはなりませんので、あしからず

2012年9月7日金曜日

[AVR]AVRを始める(2) - USART通信

少し間が開いて、AVRについて。

I/Oボードという事で、AVRとPC間で通信をさせたいです。
STK600にはUSBポートとRS-232Cが載っていますので、どちらかを使えばPCとの通信のテストが出来ると思っていました。
以下のコードでひたすらデータを吐き出し続けさせ、PCで観測させようと考えましたが全くできないので、諦めました...
STK600での方法をご存知の方が居られたら、是非ご教示下さい。


#define F_CPU 1000000UL // Clock Speed
#define BAUD 9600
#define MYUBRR ((F_CPU/16/BAUD)-1) //Asynchronous Normal mode

#include <avr/io.h>
#include <util/delay.h>

int main(void){
  unsigned char data = 0x01;
 
  UBRR0H = (unsigned char)(MYUBRR >> 8);
  UBRR0L = (unsigned char)MYUBRR;
  
  UCSR0B = (1 << RXEN0)|(1 << TXEN0);
  /* Stop bit:1, Parity: None, Data bits:8*/
  UCSR0C = (1 << UCSZ01)|(1 << UCSZ00);
 
  while(1){
    while(!(UCSR0A & (1 << UDRE0))){}
    //put data into buffer, send the data
    UDR0 = data;
    delay_ms(50);
    data = data + 0x01;
  }
}

仕方が無いので、一緒に買ったATMEGA328Pを使ってテストを行います。
STK600からISPのピンを引っ張ってフレッドボード上に組んだチップにプログラムします。
Atmel Studio上からプログラムする方法が判らなかった為、Avrdudeを用いて書き込みました。

AVRからRS-232Cを用いて通信する為のトランシーバにSP3232ECPを使います。
回路図は以下の通り。ISPを用いる事で、チップが基盤に実装されていてもプログラムする事が出来ます。(今回はピンの重複がないので、実際どうなるか分かりませんが...)
今回は電源は、ISPのピンから頂いています。
トランシーバIC周りのキャパシタや接地は省略しています。

上記のコードをプログラムし、PCのシリアルポートと通信させ受信を確認しました。

今日はここまで。
次は、送信とUSB変換について...

久しぶりにスパゲティコード

#回路図の作成にはBSch3を利用させて頂きました。

2012年8月30日木曜日

[AVR]AVRを始める(1)

センサーのデータを取得する為に、I/OボードをAVRで作る事にしました。
PICよりAVRの方が、研究室の中で人気らしいです。

まず、AVRを始めるにあたって評価ボードのAtmel社 STK600を使用することにしました。

チップはひとまず、STK600に付いてきたATMEGA2560を用いることにし、開発環境はAtmel Studio 6を使用します。
Atmel StudioはVisual Studioなんですね。

プロジェクトのプロパティでProgrammer(Tool)はSTK600を、DeviceはATmega2560に設定します。

STK600には、USBポートが載っているので簡単にライトできます。シリアルポート無くても良いんですね!

また、LED・タクトスイッチが8個載ってるので、入門用のプログラムを書いてみます。

まず、Hello World的に、LEDの点滅をさせます。PortBピンにLEDを接続しています。

#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
  unsigned char a = 0b00000001;

  DDRB = 0xFF;
  PORTB = 0xFF;

  while(1){
    PORTB = ~a;
    _delay_ms(500);
    PORTB = 0xFF;
    _delay_ms(500);

    if(a != 0b10000000){
      a = a << 1;
    }else{
      a = 0x00000001;
    }
  }
}

次に、タクトスイッチを押下した時対応したLEDを点灯させます。
PortAピンにタクトスイッチを、PortBにLEDを接続します。

#include <avr/io.h>
int main(void)
{
  unsigned char a;
  unsigned char x;
  
  
  DDRB = 0xFF;
  PORTA = 0xFF;
  PORTB = 0xFF;
  
  while(1){
    x = PINA;
    a = 0xFF & x;
    PORTB = a;
  }  
}


無事、LEDの点滅・点灯ができました。
今日はここまで。

Syntax Highlighterが使えない...

2012年6月26日火曜日

[Linux]環境作り

macにOpenSUSEをVirtualBoxでインストール。インストール構成はいつも通りで、テキストベースの最小構成

入れたもの
・Java JDK x64
・Apache commons Tomcat
└Autoconf
└gcc
└make

2012年6月14日木曜日

[Vim]複数行のカット, コピー

2ヶ月のインターンシップが終わってから放置してました
留学生と別れて、卒研出して卒業式に院の入学式...早いですね!


ところで、ちなみに僕は実はemacsより、viが好きです

1. ms カット又はコピー(ヤンク)する開始行をマーク
2. d's でカット. d'y でコピー(ヤンク)
3. p でペースト

知らなかったです。
好き嫌いと言うより、emacsは保存の仕方すら、わかりません。