雑記」カテゴリーアーカイブ

ハッピーPCB

IMG_0962
ハッピーPCBから基板が届いた。
基板品質はPBと同じくらい良くてスルーホールの穴ズレも殆ど無い。
納期も早い。
9/26夜 web上で注文、ガーバー送付
9/27夕 ガーバー確認完了、製造開始
10/10  発送(10月頭に工場の連休が入った)
10/11  到着

ただし、
ハッピーPCBにはガーバーデータの命名規則がないため、
データをどの層のパターンとするかの判断は工場で決めているようだ。

久々のトラブルで勉強になったので覚書。
①ファイル名はコレくらい分かりやすく書く
Component side Pattern.grb
Solder side Pattern.grb
Component side Resist.grb
Solder side Resist.grb
②念のためガーバー上にもどの面のデータか書く
121014
③製造前に完成予定図を提出してもらう

カテゴリー: 雑記 | ハッピーPCB はコメントを受け付けていません。

M64282FPまとめ

①中古のポケットカメラを買ってくる(amazonで1円~)
②特殊ねじの頭をドリルで壊す
IMG_0737
③M64282FPとレンズのついたモジュールが出てくる
IMG_0746
④各信号線を確認して
IMG_0752
⑤Arduinoにつなぐ
IMG_0750
⑥プログラムを書く
#define voutPin 0
#define readPin 2
#define xckPin 3
#define resetPin 4
#define loadPin 5
#define sinPin 6
#define startPin 7

#define reg0 0x00
#define reg1 0x0F //ゲイン
#define reg2 0x05 //C1 露光時間
#define reg3 0x00 //C0 露光時間
#define reg4 0x01
#define reg5 0x00
#define reg6 0x01
#define reg7 0x07

#define Xck_H digitalWrite(xckPin,HIGH)
#define Xck_L digitalWrite(xckPin,LOW)

unsigned char data[256];

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

pinMode(readPin, INPUT);
pinMode(xckPin, OUTPUT);
pinMode(resetPin, OUTPUT);
pinMode(loadPin, OUTPUT);
pinMode(sinPin, OUTPUT);
pinMode(startPin, OUTPUT);

}

// the loop routine runs over and over again forever:
void loop() {
char buf;
int adcnt;
int datacnt;
int i;

digitalWrite(resetPin,LOW);//RESET -> L
Xck_H;
Xck_L;
Xck_H;
Xck_L;
digitalWrite(resetPin,HIGH);//RESET -> H リセット解除
Xck_H;
Xck_L;

//レジスタ設定
setReg(2,reg2);
setReg(3,reg3);
setReg(1,reg1);
setReg(0,reg0);
setReg(4,reg4);
setReg(5,reg5);
setReg(6,reg6);
setReg(7,reg7);

Xck_H;
Xck_L;
digitalWrite(startPin,HIGH);//スタートH カメラスタート
Xck_H;
digitalWrite(startPin,LOW);//スタートL
Xck_L;
Xck_H;

while(digitalRead(readPin)==LOW){//READシグナル待
Xck_L;
Xck_H;
}

adcnt=0;
datacnt=0;

//今回は8列8行毎に32×32画素を取得する
while(datacnt<255){
if((adcnt&0x0070)==0x0000){//8列中1列データ取得
data[datacnt]=(analogRead(voutPin)/4); //ADの最大値1024を8bitに圧縮
datacnt=datacnt+1;
}
adcnt=adcnt+1;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
Xck_L; Xck_H;
}

//シリアルモニタに画像データを表示する
for(i=0;i<256;i++){
if(i%16==0){Serial.println(" ");}
if(data[i]<100){Serial.print(" ");}
if(data[i]<10){Serial.print(" ");}
Serial.print(data[i], DEC);
Serial.print(" ");
}
Serial.println(" ");

while(1){}
}

void setReg( unsigned char adr, unsigned char data )
{
//アドレス転送(3bit)
if((adr&0x04)==0x04){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((adr&0x02)==0x02){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((adr&0x01)==0x01){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;

//データ転送(8bit)
if((data&0x80)==0x80){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x40)==0x40){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x20)==0x20){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x10)==0x10){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x08)==0x08){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x04)==0x04){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x02)==0x02){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H; Xck_L;
if((data&0x01)==0x01){digitalWrite(sinPin,HIGH);}else{digitalWrite(sinPin,LOW);}
Xck_H;
digitalWrite(loadPin,HIGH); //LOADピン→H
digitalWrite(sinPin,LOW);
Xck_L;
digitalWrite(loadPin,LOW); //LOADピン→L
}

カメラの感度調整は殆ど露光時間で行う。
ゲインで弄ると2値化処理しているような画になる。

フレームレートは露光時間とデータ転送時間できまる
照明を明るくして露光時間を減らした上で、
Xckのクロックを上げて、AD変換速度も上げる。(がじぇるねを使う)
さらに、
128×128画素も不要ならばデータを読み飛ばしてAD変換の時間を削る。
画の後半が不要ならば、データの始めの方(写真の上の方)だけを取得して
リセットをかける。捨てた後半のデータ転送時間が節約できる
これで、H8-3048で37fps位にはなる。

参考
http://www.seattlerobotics.org/encoder/200205/gbcam.html
http://www2.plala.or.jp/k_y_yoshino/w6/vision.html
http://mieng.net/miu/index.php?main_page=product_info&products_id=18
http://embedded754.blog6.fc2.com/

カテゴリー: 雑記 | M64282FPまとめ はコメントを受け付けていません。

kick4定例会

111009
九州プログラミング研究会 第31回定例研究会に行ってきた。
ハード寄りのイベントで、発表もLTも展示物も面白い。
JuJuさんフルカラーLEDパネルが凄い。AVR凄い。

カテゴリー: 雑記 | kick4定例会 はコメントを受け付けていません。

ロボット競技大会応援

111001
前日夜から歴代OBと集り、そのまま大会へ。
初日よりも飛躍的に良い成績だったが、今年も全国に届かず。

カテゴリー: 雑記 | ロボット競技大会応援 はコメントを受け付けていません。

降参

電通大杯画像処理の部に参加を意気込んでいましたが、あと1年猶予を下さい。

カテゴリー: 雑記 | 降参 はコメントを受け付けていません。

ブログシステム更新

WordPressを2.8.6にアップデートする。
2.7以降のアップデートは、管理画面中からワンクリックでできるようになっているが、上手くいかない。
調べてみるとサーバの仕様によるもとのこと、それに対する対策を調べ導入するとでアップデートすることができた。
参考
作業ついでに、コメント欄に「管理者のみに通知」機能も増やすプラグインを導入する。

///////////////////////////////
機内持ち込み規制に困惑 12月から荷物サイズ統一:asahi.com
機内への持ち込み可能サイズに注意が必要。
大型のロボットを分解せずに搬送することが難しくなった

カテゴリー: 雑記 | ブログシステム更新 はコメントを受け付けていません。

こつこつ

結局平日は何もできず。

@6:30:準備開始
@7:00:シリコンシート切り,工具準備完了
@7:20:ノートPC準備
@8:00:デジカメ,梱包etc完了

@全国大会専用特別処理再実装,DIPSWによるパラメータ設定項目追加
@夕食はスープカレー

@前回までの谷のスロープの長さは110cm程度

@dscn0733.JPG

@北海道大会コース
@ビール園にて夕食

カテゴリー: 雑記 | こつこつ はコメントを受け付けていません。

Farnell-Newark検索プラグイン

080223.png
ないものは、つくるしかない。
Fx2系(+もしかしたらIE7)用Farnell-Newarkメーカ型番検索プラグイン
・国内と比べて取り扱っている商品が多い
・Digikeyと比べて送料が安く、代引きも使える

このプラグインを使用したことによって生じた損害・破壊、その他いかなる不都合等がありましても、作者は一切の責任を負いません。

@更新履歴
09/09/20:サイト側の仕様変更に対応

【関連】DigiKey検索プラグイン

カテゴリー: 雑記 | Farnell-Newark検索プラグイン はコメントを受け付けていません。

更新費支払い

サーバ及びドメインの更新費を支払う。これで一段落。

//////////////////////
梱包材で保護したノートPCを、キャスターバックごと預けたら、欠けや凹みが発生していた。
そもそも、3kgもあるPCを持って行くのが間違いだろう。EeePCあたりを購入したい。

カテゴリー: 雑記 | 更新費支払い はコメントを受け付けていません。

ちょっと一服

080112.jpeg
時計台やTV塔等少し観光して回り、TV塔のふもとと、JR地下外で白い恋人を確保する。
日持ちしないニシン漬は最終日に購入する。

カテゴリー: 雑記 | ちょっと一服 はコメントを受け付けていません。