投稿人「わんたい」の投稿を表示中

KiCadにおけるビア・配線設定

ビア及び配線設定はデザインルールの「グローバルデザインルール」から編集できます。 マイクロビアは使わないのでそこの設定はいじってないです ビアの直径 ドリルする穴の直径 配線幅 ビア1 0.6 0.3 配線1 0.16 ビア2 0.9 0.5 配線2 0.2 ビア3 1.5 0.9 配線3 0.5 ビア4 4.0 3.2 配線4 1.0 (mm) あくまでも例です。私はあまり設定をごちゃごちゃにさせるのが嫌いなので、4つにまとめています。配線幅は標準で0.2を使いました。電流が多く流れる箇所は0.5や1.0で配線すると安心です。 単位はmilではなく、mmなので気を付けてください。また、ビアや配線の設定クリアランスと同様、発注先の制限を調べてから設定すると賢明かもしれません。 基板に取り付け孔をつけたいときは3.2mmのドリルもしくは上のテーブルの「ビア4」の設定を使うと便利です。

【チャージャー3号制作記】PCB基板を作成してみた

使用する18650リチウムイオン電池 自分でPCBを設計し、発注することに憧れみたいなものを感じていたので早速PCB基板を作ってみた。 今回、作ったのは携帯型充電器用のPCB基板。携帯型充電器を作るのは3度目だから今のところ、「チャージャー3号」と呼んでいる。前作の「チャージャー2号」でリチウムイオン電池の充電につかっていたMCP73861というICが生産終了になったとのことで後継ICのMCP73833をつかうことにした。また、2号にはなかった、電池の過放電を防止するための過放電防止回路も組み込んでみた。 過放電防止回路はコンパレータとp型MOSFETで構成された簡単なもので一度設定電圧以下に電池の電圧が下がると、放電はMOSFETによって止められる。 設計につかうソフトはいろいろ迷ったが、CERNが援助しているというKiCADというソフトでとりあえず作ってみることにした。 KiCadでの回路図設計は正直イマイチ。いままで回路図設計はTinyCADというソフトで済ませていたが、KiCadはTinyCADと違い、部品の位置を変えたときに、配線がついてこない。だが、KiCadは一貫してPCB設計まで色々と部品や配線をを関連付けしてくれるため、PCB設計までを視野に入れれば、KiCadで回路図を設計したほうが効率的だろう。いちいち説明していたら長くなりそうだから、大まかな手順を示す。 チャージャー3号のPCBを作ったおおまかな手順(KiCad) 1. 回路図設計&ブレッドボード上で重要な箇所の動作確認 2. 回路図上の部品をフットプリントという実際にPCBで示す部品の形状と関連付ける。 MCP73861を使ったチャージャー2号。低電圧インジケータはついているが、3号のように過放電防止回路はついていない。 3. PCB設計画面にフットプリントを挿入する。フットプリントでのピン番号と回路図でのピン番号が合致しない場合(回路図では1、2だったのがフットプリントでは15、16であった場合とか)はここでエラーが表示され、フットプリントを編集しなくてはならない。 4. PCB上での大まかな配置を決める。このとき、部品の配線先を示すラッツネスト(ラッツ)という線ができるだけ、交差しないような配置にする。(交差点が多ければ多いほど配線が複雑になる傾向がある。) 5. PCBの発注先が指定した制限(配線の幅や配線同士の最小間隔など)をKiCadのデザインルールに取り入れる。また、基板の大きさによって値段が変わる場合は決めた寸法内に収めるようにする。(このプロジェクトの場合はぎりぎり10cmx10cm内に収めた) 6. 実際の配線作業を始める。今回、GNDは背面でまとめる予定だったから、GND以外の配線をできるだけ正面で済ませるように配線した。必要があれば途中でビアという穴を配置して、配線を背面から正面へ、正面から背面へ変更することができる。 7. 配線がすべて終わったら、チェックを実行して、配線を忘れた箇所がないかを確認する。 8. シルクスクリーンにグラフィックなどの飾りを入れたい場合はKiCad内の「BitMap2Component」ツールを使い、pcbnew形式(.mod)で保存する。サイズを変えたい場合はhttp://escalalibre.com/edwt/kicad_sizeConverter.phpにある専用ツールを使い、レイヤも指定しましょう。このツールを使う際はあらかじめ、「BitMap2Component」に入力する前のBMPファイルのグラフィックが縁から適度に離れていなければ、後のステップにおける”DP”が現れない。専用ツールの出力をダウンロードしたら、ファイルをノートパッドで開き、「DP」という文字列を検索する。最初のDPから2番目のDPの間の内容、そして最初の「DP」をすべて削除する。面倒かもしれないが、これをしないと左上にある線が取り除かれない。modをインポートする際はpcbnewで設定→ライブラリ→追加でファイルを指定し、PCBに追加したい場合は「モジュールの追加」ボタンで(全モジュール一覧から選択し、)追加する。 8. シルクスクリーンが外形からはみ出ていないか、(フットノートを編集した人は)フットノートのピンアウトが正しいかなどを確認し、PCB基板作成用のファイルを出力する。プロット設定については省略する。 注文後にリレーのフットプリントのピン番号を間違えたことに気が付いた。orz まあVer1.0だし、リレーを基板上ではなく、ワイヤを通じて接続すれば、問題は解消できるのでよしとしよう。 9. 今回はseeed studioというかなり安くPCBを作ってくれる会社に発注し、その会社の注文形式に従って、ドリルファイル(.drl)の拡張子は.txtに変更、基板外形データ(.gbr)をgmlに変更し、拡張子以外の部分(ファイル名)を統一した。 合計で8つのファイルを以下の形式でZIPして送った。 「ファイル名.gtl」 – 表面導体層 「ファイル名.gbl」 – 表面導体層 「ファイル名.gts」 – 表面のレジスト 「ファイル名.gbs」 – 裏面のレジスト 「ファイル名.gto」 – 表面のシルクスクリーン 「ファイル名.gbo」 – 裏面のシルクスクリーン 「ファイル名.gml」 – 基板外形 「ファイル名.txt」 – ドリルデータ 10. 注文後は待つだけ。   これすべてを一日(徹夜して)でやったせいか、PCBのリレーのフットノートのピンアウトを間違えて記入してしまった。リレーを基板上に設置しなければ、問題は解消できるからいいか。ほかにもちょっとしたミスや気になることもあるだろうし、とりあえず初PCBということでおkとしよう。

robots.txtでルートディレクトリのクロールを無効にする

ひとつのwwwフォルダーにサブディレクトリ別に複数のドメインをホストしている場合、ルートディレクトリだけボットにクロールされないようにし、サブディレクトリのみをクロールさせたい場合が出てくるだろう。 そういう時は、ルートディレクトリのwwwに以下のような内容のrobots.txtを置けばいい。 robots.txtの記入例 「User-agent: * Disallow: / Allow: /directory1/ Allow: /directory2/」 この場合、ルートディレクトリのクロールは禁じているがサブディレクトリである「directory1」と「directory2」のクロールは許可している。 すべてのボットが認識する保証はないが、少なくともGoogleBotはこれでおkだそうだ。

NetBeansが使用するJavaバージョンを変えたいとき

NetBeansのインストール先のフォルダの/etcというサブディレクトリにnetbeans.confというファイルがあります。 netbeans.confの中にnetbeans_jdkhomeという項目があるはずなので、それを自分の使用したいJavaのバージョンのパスに変更します。 例:netbeans_jdkhome=”C:\Program Files\Java\jdk1.8.0_40″ ウィンドウズでは直接ファイルを上書きすることができないかもしれないので、一度元ファイルを移動か削除してから、変更後のファイルをコピー・移動したほうがいいかもしれません。 以上です。

SambaをWindowsに表示させるのに一苦労

こうやって表示させたい 昔、自分のラップトップ(Ubuntu)にSambaサーバを構築したのですが、そのとき、Windows側に表示させるのに結構苦労して、新しくしたデスクトップで再び使おうとしたら、どうやってやったか忘れてしまい、少し時間がかかってしまいました。 =ここから昔の話= Sambaのインストール手順は普通だったのですが、そこからWindowsに認識させるのにかなり苦労して、最後はUbuntu側のファイアウォールを以下のように一部無効にしたことを覚えています。 sudo ufw allow 137/udp sudo ufw allow 138/udp sudo ufw allow 139/tcp sudo ufw allow 445/tcp =余談以上= ここを押す 今回忘れたのはそれじゃなくて、どうやってネットワークドライブを(右上の図のように)表示させるかです。 答えは簡単でWindows 8ではドライブが表示される画面に行き、上の「ネットワーク・ドライブの割り当て」を押し、ドライブ文字を選択した後、Sambaフォルダがあるネットワークの場所を記入します。 私の場合は「\\192.168.xx.xx\フォルダ名(フォルダまでのパスはいらない)」と記入するだけでした。が、肝心のシェアフォルダの名前および場所を忘れてしまい、/etc/samba/smb.confのサンバ構成ファイルを開き、実際に場所を確認しなくてはなりませんでした。そうしたら無事つながりました。正直、次、同じことをやろうとしても忘れそうですね。 =追記(2017年3月28日)= 約2年ぶりにSambaを使おうとしたところ、Windows 10では前と同じ手順でネットワークドライブを追加できなかったので手こずりました。 Windows 10ではなぜか「\\192.168.xx.xx\フォルダ名」ではなく、「\\192.168.xx.xx\シェア名」じゃないと追加できませんでした。 シュア名はインストールされていればWebmin、なければ「smbclient -L 127.0.0.1」で確認できます。

PHPで全角&半角ストリングの文字数を取得する

PHPでは英文ストリングの文字数はstrlen関数で取得することが多いですが、これでは全角文字が「2文字」として認識されてしまいます。 例: echo strlen(“あいうえお”);//”10″が出力されます。 echo strlen(“abcde”);//”5″が出力されます。 これは半角文字は1バイト、全角文字は2バイトで表されるためです。 全角文字も半角文字も「1文字」として認識させるためにはmb_strlen関数を使います。 例: echo mb_strlen(“あいうえお”);//”5″が出力されます。 echo mb_strlen(“abcde”);//”5″が出力されます。 正しく動作しない場合 なお、動作させるサーバーのPHPの内部エンコーディングは”UTF-8″でないと正しく動作しない可能性があります。内部エンコーディングは.htaccessファイルやmb_internal_encoding関数で設定することが可能ですが、php.iniであらかじめ設定しておくと手っ取り早いです。 php.iniファイルにmbstring.internal_encodingが”EUC-JP”とかではなく、以下のように”UTF-8″として設定されていることをご確認ください。 mbstring.internal_encoding = UTF-8

管理人のサイト作成回想記

私、管理人が始めて本格的なサイトを作ったときは全てHTMLファイルで済ませていて、PHPやCMSなどは一切使用していませんでした。 しかし、サイドバー、メニューやヘッダーなどの共通箇所をいちいち変更するのが面倒くさくなり、あるとき、全ファイルをPHPに変更させ、サイドバー、メニューやヘッダーは全て<?php require_once(“header.php”);?>などで済ませるようにしました。また、.htmlでもアクセスできるように、.htaccessなども変更しました。 しかしそれでは肝心のファイル数は減らず、管理は相変わらず大変でした。そこで、サイトのmetadescriptionやmetakeywords、コンテンツなどのデータを抽出し、MYSQLデータベースに保存するスクリプトをPHPで書き、また、そこから自動的にページを生成するスクリプト(data.php)も書きました。このdata.phpに?action=exampleなどのクエリーを渡すと指定されたページをロードするようにしました。しかし、それでは長ったらしいurlになってしまうため、そこは.htaccessで何とか対応させました。 これで管理はずいぶんと楽になったわけですが、Wordpressのプラグインやユーザー管理などの機能に憧れ、ある日、サイトをWordpressに移行させることを決めました。 まずはWordpressテンプレートを一から作成することからはじめ、その後はデータの引越しをしました。簡単そうに聞こえますがこれには丸2日かかりました。メタデータなどのデータの引越しにはかなり悩まされましたが、SEOプラグインやMYSQLのSQL文エクスポート・インポート機能を使い、何とかやりのけました。 その過程でWordpressの良さや良くないところをしみじみと感じました。まずは投稿内でphpコードを使用できないのがかなり不満でした。投稿内で指定したphp変数でテンプレの一部を変更するようなことをやりたかったのですが、phpを埋め込めないんじゃと思い、ほかの方法を模索しました。 幸い、Wordpressにはカスタムフィールドという機能があり、投稿画面で変数を指定することは出来ました。この機能がなかったら本当にWordpressやめようかなと思ったんですが、救われましたね。 何せ、Wordpressには便利なプラグインがたくさんありますから。本当に使ってて便利です。

FFmpegを利用してTSファイルをMP4に変換する

FFmpegは動画や音声などを変換できるフリーウェアです。もともとはUNIXで開発されたものなので、LinuxやMacは当然、Windowsでも使えるパッケージがリリースされています。 私はWindowsを主に使用しているので、Windowsでの変換方法を紹介したいと思います。 ご自身で試される場合は自己責任でお願いいたします。 右上もしくは左上のパッケージを選択してください まず用意するものはFFmpegです。パッケージは公式サイトからダウンロードできます。ウィンドウズ用はこのように6種類用意されています。使用しているOSが32ビットOSの場合は左上のStaticと書かれたパッケージ、64ビットOSの場合は右上のStaticと書かれたパッケージでおkです。パッケージは7zで圧縮されているため、展開には7-Zipというソフトが必要です。7-Zipは、公式サイトからダウンロードできます。 FFmpegのパッケージの名称は長ったらしいので、ダウンロードしたあとは、ディレクトリの名称を「ffmpeg」などの簡単な名前に変更し、できるだけ分かりやすいところに保存しておきます。(例、C:ffmpegやD:ffmpeg) OSとデータを別々に保存している場合はデータ用のドライブ(D:など)に保存しておいても良いと思います。 あとは簡単に変換するための環境を整えるだけです。私の場合はBATファイルを作りました。 内容はこんな感じです。 for %%a in (“*.ts”) do D:\ffmpeg\bin\ffmpeg.exe -i %%a -b:v 3000k -acodec ac3 -ar 48000 -threads 4 -vcodec libx264 D:\encoded\%%~na.mp4 環境が異なる場合、このままコピペしても動きません。 改行すると動きませんのでご注意ください。また、ファイル名は全角の場合もしくは半角のスペースが含まれている場合、エラーを起こすことがあります。 コード解説 コード内の「for %%a in (“*.ts”) do」は簡単に言えば、「フォルダ内にTSファイルがある限り次の処理をする」という意味です。ファイルタイプを.tsに限定したくないは(“*.*”)としておけばいいです。 次にffmpeg.exeの場所を指定します。私の場合はD:\ffmpeg\bin\ffmpeg.exeです。必要に応じてパスは変更してください。 あとは引数を指定するだけです。 BATを保存する際は「名前をつけて保存」を選択して、ファイルの種類を「全てのファイル」としておいてください。 今回使用した引数+使えそうな引数の説明 -i 入力ファイル。今回はフォルダー内のtsファイル全てが対象なので%%aとしておきます。 -b:v ビデオのビットレート。私の場合は1000kで十分です。高画質をお求めの方はより高い値に設定してください。 -threads スレッド数。私は8スレッドあるCPUを使用しているので「4」と設定しておきました。 -acodec オーディオコーデック。AC3でよいかと。 -ar オーディオ周波数。48000で十分だと思います。 -vcodec 今回はH.264のコーデック、「libx264」としておきます。MPEG-2に変換したい場合は、「mpegvideo2」と指定してください。使えるコーデックの一覧は本家サイトに詳しく書かれています。 -s 出力画面サイズ 例1920×1080。入力と同じサイズでいいため、今回は指定していません。フルHDをHDにしたい場合は1280×720にして置くと良いと思います。 -aspect 例16:9。これも今回は指定しません。 -b:a オーディオビットレート。必要に応じて指定してください。 -r フレームレート。指定しないと入力と同じフレームレートになります。 -ac オーディオストリーム数。映画など2ヶ国語放送の場合は指定する必要があるかも。 -t 動画の長さ指定。秒もしくはhh:mm:ss[.xxx]で指定できます。 変換中、コマンドラインはこんな感じです。fpsがあまりにも低い場合、(20以下とか)、電気を多量に消費する上にものすごく時間がかかるので設定、もしくはパソコンを変えたほうがいいでしょう。 引数を指定したあとは出力ファイルの場所と形式を指定します。 私の場合はデータドライブ内のencodedというフォルダーに保存しています。(D:encoded) 出力ファイル名は「%%~na.mp4」にしておくと「入力ファイル名.mp4」になります。 ビデオコーデックを変更した場合は拡張子を変更することを忘れないでください。 コーデックを「mpegvideo2」にした場合は「%%~na.mpeg」にしておいてください。 次に、完成したコードをノートパッドなどのテキスト編集ソフトに貼り付けて、.batとして保存します。コードに全角の記号が混在したり、必要ないところに改行したりするとコードが実行されない可能性があります。ノートパッドで保存する際は.txtファイルとして保存されないよう、「名前をつけて保存」を選択して、ファイルの種類を「全てのファイル」としておいてください。 BATファイルの名前は、用途別やコーデック別に「h264-1000kbps.bat」、「mpeg2-1000kbps.bat」、「h264-3000kbps.bat」などとしておくと便利でわかりやすいです。例えば、HDじゃない動画を変換したい場合は当然低いビットレートで済ませたほうが効率が良いです。逆に高画質ファイルはより高いビットレートで変換したほうが良いため、複数のBATを用意しておくといいでしょう。 BATファイルは変換するファイルと同じフォルダーに置いてください。録画などをされている方は録画ファイルなどがそれにあたるでしょう。 BATは実行されるとフォルダ内の全てのTSファイルを変換します。変換に必要のないファイルはフォルダーから除いておきましょう。 なお、ファイル名に半角スペース、全角スペースが含まれるとエラーになります。 変換には時間がかかりますので途中でパソコンがスリープ状態にならないよう、設定しましょう。