忍者ブログ
  • 2025.05
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2025.07
ハッチングによる塗りつぶし
capsenseでタッチスイッチ用のパターンを作成する場合、
GNDのパターンは網目状にすることを推奨されています。

自分はKICADでパターンを描いているのですが、KICADのベタでは網目状のベタを描けません。
(EAGLEはできるみたいです)

別のツールを用いた方法ですが、下記URLにKICADで作成したパターンにハッチング処理を行う方法について紹介されております。
https://forum.kicad.info/t/copper-pour-with-hatched-fill-instead-of-solid-fill/860

ざっくりとしたやり方は、以下になります。(上記URLの意訳になります)
①ハッチング以外完了したガーバを出力する
Diptraseのフリー版を落とす。
③DiptraseのPCB LayoutでKICADで作ったガーバをimportする。
④Objects⇒Place Copper Pourで塗りつぶし範囲を選択し、塗りつぶす。
⑤作成したベタ以外を削除し、ベタのみをガーバ出力する。
gerbvで開き、SVGで出力する。
 この時点で、ガーバを直接PCBNEWにインポートできるが、グループ化されてないので、編集が面倒。また、ここでPNG出力だと範囲外の画像も出力されてしまう。
Inkscapeで開き、PNGで出力。
(1200DPI、背景色・黒、描画色・白とありますが、DPIはもっと低くてよさそうです。色もここで編集するより、出力したPNGを編集したほうがやりやすいと思います。)
⑧Bitmap2Compornentを使用し、modデータに変換。
この変換ツールはシルクかレジストしか出力できないので、変換したmodデータをテキストエディタで開き、描画層を変更する必要があります。
また、この状態だと他の信号線と接続できませんので、フットプリント編集でパッドを付けます。

以上、少し手間がかかりますが、これでハッチングができるようになりました。
恐らくそのうちデフォルトでできるようになると思いますが、それまではこの方法で対処しようと思います。

※出力したフットプリントデータが3MBととてつもなく重かったです。
製造時に何か言われるかもしれません。
PR
【2016/12/05 23:44 】 | KICAD | 有り難いご意見(0)
gerbvのプロジェクト読み込みについて
gerbvは、kicadのビューワより軽くて好んで使ってます。
ただ、保存したプロジェクトの読み込みがうまくできなくて、その点に困っておりました。
対処方法が分かったので、覚書となります。

症状:
32bit版win7、64bit版win10にて、
Gerbv 2.6AでOpen projectでプロジェクトを開こうとすると、失敗してしまう。

Problem loading init.scm (No such file or directory)
could not read D:\untitled.gvp[-1]

原因:init.scmがない。
対策:gerbv 2.6をインストールし、init.scmをgerbv.exeと同じフォルダに置く。

ほかに困ってることとして、
.gvpと参照するガーバデータの保存場所が離れてると参照失敗するっぽい。
対処として.gvpとガーバデータを近くに置くようにします。

とりあえず、64bit版win10では、プロジェクトの読み込みができるようになりました。
【2016/10/30 12:26 】 | KICAD | 有り難いご意見(0)
arduinoのPWM周波数変更
arduinoでPWMの周波数を変える方法について

A0でDuty比、A1で周波数を変化させます。
出力はD10にしました。
参考までにソースコードを末尾に載せます。(D10の出力固定です。動作保証はしません)
細かい設定については参考先参照願います。
データシート読むの苦手です。

TCCR0はタイマのカウントにも使用していて
TCCR2は周期を細かく変えるのに向いてないみたいなので、
TCCR1(D9,D10ピン)を使用することにしました。

参考:
ATMEGA328Pのデータシート
日々 ほげほげ 研究所
garret lab

作成したプログラム


/*
2016/10/10
D10の出力周波数・Dutyを変化させる
(20kHz, 24%設定)
A0、A1の値で周波数・Dutyを変化させる予定
*/

int Vol_duty = A0; //
int Vol_freq = A1; //
int PWMPin = 10; // select the pin for PWM
int ledPin = 13; // select the pin for the LED
int Value_duty = 0; //
int Value_freq = 0; //
int u = 0; //

void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
pinMode(ledPin, OUTPUT);

// シリアルポートを9600 bps[ビット/秒]で初期化
Serial.begin(9600);

//f=fc/(2*TOP*r) ( fc = 16MHz )
//Show Table 16-4. Waveform Generation Mode Bit Description
TCCR1A &= B11111100;
TCCR1A |= B00000001;//
TCCR1B &= B11100111;
TCCR1B |= B00010000;//
//Show Table 16-5. Clock Select Bit Description
//value of r, 1 8 64 256 1024
TCCR1B &= B11111000;
TCCR1B |= B00010010;// 8分周
//Value of TOP
OCR1A = 50; //change freq
}

void monitor(){
Serial.println("Check values");
Serial.println(TCCR1A,BIN);//COM1A1 COM1A0 COM1B1 COM1B0 – – WGM11 WGM10
Serial.println(TCCR1B,BIN);//ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
Serial.println(OCR1A,BIN);//value of TOP
Serial.println(OCR1B,BIN);//PWM on value
Serial.println("u");
Serial.println(u);
// Serial.println(OCR2B,BIN);
}
void change_reg(){
u = Value_freq * 20;
if( u > 3900 ){
TCCR1B &= B11100000;
TCCR1B |= B00010010;// 8分周
OCR1A = 1000000/u;
} else {
TCCR1B &= B11100000;
TCCR1B |= B00010011;// 64分周
OCR1A = 125000/u;
}

}
void loop() {
// read the value from the sensor:
Value_duty = analogRead(Vol_duty) >> 2; //0~255;
// Value_freq = analogRead(Vol_freq); //100 ~ 20000[Hz]
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for milliseconds:
delay(50);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for milliseconds:
delay(50);

if(Value_freq == 1000) Value_freq = 0;
Value_freq += 5; //chenge freq 
if(Value_freq > 1000) Value_freq = 1000; //20kHz相当
if(Value_freq < 50) Value_freq = 50; //1kHz相当

change_reg(); //change OCR1A, TCCR1B

Value_duty = OCR1A >> 1; //50%
analogWrite(PWMPin,Value_duty);

monitor(); //debug用
}

【2016/10/10 22:42 】 | arduino_uno | 有り難いご意見(0)
HICTOP prusa i3 その2 テスト印刷
印刷テスト時に引っかかった問題について
①エクスクルーダ用モータが逆転して、フィラメントが抜けてしまう。
⇒この状態になる場合、LCDの表示が文字化けするので、正しくデータが転送できてないのかな。
データ保存時の文字コードが影響してるのでしょうか?
もしくは数値の桁があってないとか?

②一層目がつかない、またはベッドをこする
⇒原点の位置合わせがうまくできていなかった。

③Y軸のベルト固定のねじが外れる
⇒振動がひどい。Y軸関係は接着剤も併用して固定しました。

①は全く解決してないけど印刷できるようになりました。


あと彼岸花の球根買いました。
百均で鉢と土を買って合計400円かかっています。
適当に植えたけど咲くといいなあ。
【2016/08/08 00:04 】 | 3Dプリンタ | 有り難いご意見(0)
HICTOP prusa i3
友人から借りていた3Dプリンタを返してしまったので買いました。
組み立ててて詰まったところがあったので、備忘録として。

組立時に詰まった(困った)こと:
①座標リセット用SWのコネクタがオスメス一致していない。
②取説にZ軸リセットSWの取り付け方が書いていない。
③電源の固定用のねじ穴位置は説明書と違った。


コネクタの返しがあっていないのでそれをカッターで削り、
差し込み位置は動画で確認(下URLの9:09時の配線状態から)
https://www.youtube.com/watch?v=jTtfS0-CVl0
間違えるとSWオン時に5V-GNDショートになるので、動かないし回路に悪そう


同動画の16:15付近に映っていたので、それを参考にしました。
12:05の前後を参考にしています。
今回購入したのが、自動調整機能付きということで、近接SWを使用するので、
木の部品があまるっぽいです。


これ説明書のM3x5じゃなくてM4側のねじ穴で止めれますね。

5万円で買ったので、デアゴスティーニのやつよりお得なのかな。
あっちの性能は知りませんが。

良かった点:3Dプリンタの構造を理解することができた。
反省点:組立済みを買えばよかった。

【2016/08/06 15:10 】 | 3Dプリンタ | 有り難いご意見(0)
<<前ページ | ホーム | 次ページ>>