IT系のお仕事をしていると大きな単位の表現に遭遇することがあります。
2022年に新しく単位が制定されるようなのでメモしておきます。

引用元:https://haniwa.blog.fc2.com/blog-entry-5771.html
Simple is bestをモットーに、得られた知識・知恵をつらつらと。
IT系のお仕事をしていると大きな単位の表現に遭遇することがあります。
2022年に新しく単位が制定されるようなのでメモしておきます。
引用元:https://haniwa.blog.fc2.com/blog-entry-5771.html
ソフト開発エンジニアとして25年以上、趣味レベルだと40年近くプログラミングを嗜んできておりますが、そのソフトを動かす土台のハードウェア開発については知識がなく知ろうとする機会もありませんでした。
今回Arduinoを使ってWindowsからCANを使ってリレーを操作するハードウェアを製作し、その際にPCB設計にトライする機会を得たので、初回トライアル時のメモをここに記録しておきます。
まず、ブレッドボードを使ってHW設計と動作確認をする。
この部分については製作するものによって内容が大きく変わるので詳細は触れませんが、目的としては最終的な結線を確認することにあります。
結線方法はプロダクトシートなどから情報を得て設計しますが、ArdiunoNanoやCANモジュールのような広く使われているHWモジュールの場合、下記のような形でネット上に結線方法が載っていることが多いのでそれを参考にした方が時間短縮できます。
上記のような図があれば特に必要はないかもしれませんが、上記のような図だと結線には不要な情報もあり間違いも誘発する可能性があるため、必要な結線のみを下記のように書き下します。
まずKiCadをダウンロード・インストールし、Schematice Editorを使用して下記のような回路図を書く。
各パーツのテンプレートは’Place->Add Symbol’でライブラリから選択すれば簡単に配置できます。
WindowsなどのDrawingソフトに慣れている場合、CAD系の癖の強いIFはかなり戸惑います。例えば、
各パーツのFootPrintをライブラリから選択して部品に割り当て、PCB editorを開いてパーツの配置をする。
部品を配置し終えたら紙に印刷して配置や寸法があっているかどうかを確認して微調整を行う。
印刷されたものが実寸大かどうかをチェックするために、5cmの線を書いて同時に印刷するようにするとキャリブレーションしやすいです。
パーツの配置の際には、表と裏のどちらに配置されているかを3D画像を見ながら確認するとよいです。
なお、Schematice editorと同様にPCB editorも操作の癖が強く、この手のソフトではあるはずの下記のような機能が見当たらないです。
下記手順でFreeRoutingというソフトを使って配線を自動生成する。
基本的に自動レイアウトで問題はないようですが、裏から表への結線の数を減らすなどで編集が必要な場合はPCB editor上で微調整を行います。
結線が済んだらPCB上にシルク印刷文字列を付与します。各コネクタピンのそばに、接続するモジュールに対応するコネクタピンの情報を記載するとよいです。
下記手順でKiCadからGerber dataを作成する。
https://www.fusionpcb.jpへ移動し、’今すぐ発注’を選択する。
5.で作成したgerber dataファイルのzipをアップロードする。選択肢は下記のデフォルト設定でよい。
支払い手続きを行えば、製造・輸送にトラブルが発生しなければ3-4日で配達される。支払いは支払い保証のあるPaypalがおすすめです。
Fusion PCBの場合、現在のステータスが下記のように表示されるので安心できます。(今回は深圳でコロナによるロックダウンがあったため、ステータスが更新されない状態が二週間ほど続きました)
PCBが到着したら発注した図面と違いがないことを確認する。
Gerber dataファイルを使って機械で直接製造するため間違うことはないと思いますが、念の為きちんと確認しましょう。
あとはPCBに部品を載せて組み上げ、動作確認をして問題がなければ完成です。
参考になれば幸いです。
WordPressを日記帳として活用していますが、デフォルトの公開状態が「公開」になっているため、油断をすると日記がネット上に公開されてしまう問題がちょくちょく発生します。
このようなことを避けるため、投稿記事の「公開状態」のデフォルトを「公開」から「非公開」にする方法についてメモをしておきます。
「wp-includes/functions.php
」に次のコードを追加する。
/**
* Set default state to private' when creating new draft article
*/
add_action( 'post_submitbox_misc_actions' , 'post_status_default_private' );
function post_status_default_private() {
global $post;
if ( $post->post_status == 'publish' ) {
$visibility = 'public';
$visibility_trans = __('Public');
} elseif ( !empty( $post->post_password ) ) {
$visibility = 'password';
$visibility_trans = __('Password protected');
} elseif ( $post->post_type == 'post' && is_sticky( $post->ID ) ) {
$visibility = 'public';
$visibility_trans = __('Public, Sticky');
} else {
$post->post_password = '';
$visibility = 'private';
$visibility_trans = __('Private');
}
?>
<script type="text/javascript">
(function($){
try {
$('#post-visibility-display').text('<?php echo $visibility_trans; ?>');
$('#hidden-post-visibility').val('<?php echo $visibility; ?>');
$('#visibility-radio-<?php echo $visibility; ?>').attr('checked', true);
} catch(err) {
}
})(jQuery);
</script>
<?php
}
Code language: PHP (php)