コンテンツへスキップ

PICマイコンを使ってみます。使用するのはpic16f886で、windows10、MPLAB v5.10。

PICマイコンを使ってみます。使用するのはpic16f886で、windows10、MPLAB v5.10

目次

  • PIC開発環境
  • 回路
  • コード
  • 書き込み
  • 動作確認
  • 雑記
  • 参考

PIC開発環境

ソフトウェアでコーディングした後、ライターを用いてマイコンに書き込みます。

  • ソフト (MPLAB X IDE + MPLAB XC8コンパイラ)

IDEは統合開発環境で、エディタ、デバッカ、シミュレータなどほとんどのプログラムを内蔵しています。MPLAB X IDEは8bit~32bitマイコンで共通で使用できます。 コンパイラはC言語のようなコンパイラ言語をコンパイルして機械語に翻訳するプログラムです。Cコンパイラは別にインストールし、MPLAB X IDE に統合します。

私はwindows10ですが、macでもlinuxでも同様の環境でOKみたいです。

コンパイラはいくつかありますが、microchip社が比較的新しく発表したのが MPLAB XC8コンパイラです。 MPLAB IDE8.84迄のバージョンには既にHI-TECH Cが同梱されているみたいです。

・ MPLAB X IDE | Microchip Technology


MPLAB XC Compilers| Microchip Technology

  • 書き込み機(ライター)

記事によって互換品の付属のアダプタが危険っぽかったので別途用意しました。ネタバレですが、書き込み機の一部機能が壊れてました。

回路

2つLEDをつけて交互に点滅させます。 簡単で良いです。実験中に電源が入っているかを確認するためのLEDと、電源を外したときに瞬間的にマイコン電源がなくなるのを防ぐために (一応)つけているコンデンサが加わっています。

回路図

データシートを見ながら回路を組み立てます。リンクは秋月さんのとこのです。

マイコンのpin

コード

PICに書きこむ例としてリモコンのコードを見ながら、自分でコードを書いていきたいと思います。

プロジェクト

file/New Projectから作成します。MicrochipのStandalone Projectを選択します。

new project

今回使うpic16f886を選択します。

ライターは使用するPickit3を選択します。

コンパイラはXC8を選択します。

ファイル名は適当に決めます。

sourceフォルダの中に1つmainのファイルが必要です。

cファイルを開き、コードを書いていきます。

設定

production/set configuration bit の設定をしていきます。 なお、このマイコンはMCC対応してません。MCCは、簡単に設定できる超便利ツール、らしいです。

MPLAB® Code Configurator -microchip

set configuration bit

出来たら、generate source codeをクリックしてコードをコピペします。

configuration

設定は秋月のリモコンと一緒にします。今回は関数など使ってないので、I/Oさえ間違わなければ問題ないと思われます。

// CONFIG1
#pragma config FOSC     = INTRC_NOCLKOUT    // 発振回路設定 Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE     = OFF               // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE    = OFF               // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE    = ON                // 外部リセット/汎用入力の選択で外部リセット有効化 RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
#pragma config CP       = OFF               // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD      = OFF               // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN    = OFF               // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO     = ON                // オシレータのスタートアップとコード実行の潜在時間を最小化Internal External Switchover bit (Internal/External Switchover mode is enabled)
#pragma config FCMEN    = ON                // オシレータの故障の場合さえ、デバイスが作動し続けるのを許容するように設計Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP      = OFF               // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)

// CONFIG2
#pragma config BOR4V    = BOR40V            // リセットしきい値を4V Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT      = OFF               // Flash Program Memory Self Write Enable bits (Write protection off)

BORとは: 事故時などに信号が不安定になるとマイコンによくありません。そこで、一定のしきい値を設定し、4Vなら4V±0.2Vを下回るとリセットを書ける機能を設定します。そのような機能をブラウンアウトリセット機能(BOR)と呼びます。

main関数

I/Oポートを設定します。クロック周期設定 I/Oポートの指定は、init関数の中で行っています。関数の使い方が解らなかったので、0~9999まで数え上げさせて時間を作る雑なコードになりました。すべてPortAの8pinすべて出力にしています。RA2=1;は、RA2が割り当てられたpinに電圧をかける指令です。

void init(){
    OSCCON = 0b01110000; //8MHz
    ANSEL = 0b00000000; //
    TRISA = 0b00000000;//
    TRISB = 0b00000000;
    TRISC = 0x00;
    PORTA = 0b00000000;
}

void main(void){
    int i=0;
    init();
   
    while(1){
        
        i=0;
        while (i <10000){
            i++;
        }
        RA2 = 1;
        RA3 = 0;
        
        i=0;
        while (i <10000){
            i++;
        }
        RA2 = 0;
        RA3 = 1;
    } 
}
portA

書き込み

繋いだらメニューバーの下の△をクリックします。

警告がでました。C:\Program Files (x86)\Microchip\xc8\v2.05\pic\includeやC:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c99に入っているヘッダファイルを開きます。私の場合はなぜかここにありましたが、多くの場合はProgram Files (x86)じゃなくProgram Filesだと思います。 C標準ライブラリ -PICマイコンによる開発手法

なんだかよく分からないままひたすら関係ありそうなヘッダファイルを開いて確認していくと、xc.hがインクルードしているalloca.hが入っていない。

MPLAB X IDE v5.xxの注意点 -サヌキテックネット にしたがって、projectのプロパティから、XC8 Global OptionsでC99をC90に変更するとビルドに成功しました。警告は無視。

BUILD SUCCESSFUL (total time: 6s)

書き込んでいきます。

電源供給するように設定します(私のライターは安く買ったからか電源を供給する機能がうまくいきませんでした)。マイコンは電源がないと動作しませんので、ライターか回路から電源を供給して下さい。 project上右クリックでpropaties、hardware toolからPICkit3を選択、pickit3からpowerで、チェックボックスにチェック。マイコンのデータシートにWide Operating Voltage Range (2.0V-5.5V)とあったので、5.0Vの電圧を供給します。

電源がない場合はコンピュータがデバイスを見つけられない、とか、以下のようなメッセージが表示されます。

PICkit 3 is trying to supply 5.250000 volts from the USB port, but the target VDD is measured to be 4.875000 volts. This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.

私はライターが壊れていたので、無理やり外部から接続できるようにしました。

Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0xfff
configuration memory
Programming/Verify complete

ライターの画像です。Vddに電源+、VssにGNDを接続します。(Vssは本来電源がマイナスになり得る場合のマイナス側です。)ライター付属の紙より転載。

PICkit3

動作確認

チカチカした。

Lチカ
Lチカ

雑談

MCCという便利機能があるんですが、Tools/Embedded/MPLAB Code Configuratorで見たところ、最新版でもサポートしているデバイスが少なく今回使用したPIC16F886もサポートされていませんでした。悲しい。

参考

教育用ロボットビュートローバーを使用して簡単な制御を行ったので、その方法を紹介します。

前回=>教育用ロボットビュートローバー開発環境構[

ビュートシリーズ用 赤外線センサ(1個) -ROBOT SHOP

目次

  • ライントレースとは
  • 使用する機能の詳細
  • プログラム
  • 雑記
  • 参考

ライントレースとは

ライントレースというのは、その名の通り、「線に追従する」ことで、ロボットに電車のように線の上を走らせます。 自動運転技術の1つとして、高速道路の白線を認識していることもあります。

ライントレースの精度や速さを競う大会がいくつもあります。私が知ってるのはこれとか =>ロボトレース -NIF 共益財団法人ニューテクノロジー振興財団

使用する機能の詳細

  • モータードライブ
  • アナログ入力

モーターのサンプルコード

サンプルコードをダウンロードしてビルドします。(詳細は環境構築編)

VS-WRC003LV-ヴイストン株式会社
電池をいれてスイッチを倒して接続します。すると、前後に動いているのがわかります。モーターを動かす関数は以下の通りです。

Mtr_Run_lv(-20000,20000,0,0,0,0);

左端の値は右モータ、右隣の値は左モータで、正転逆転出力は32767~-32767で調節します。モーターが向かい合わせについているので、左のモータは-にします。 上の関数で信号を与えますが、それは一瞬の事です。走らせるにはそのまま待機させなければいけません。そのための関数が下の関数です。

Wait(1000);

たとえばWait(1)だと、1m秒(=1/1000秒)そのまま待機します。

アナログ入力

光センサとアナログ入力について

ビュートローバーには赤外線距離センサがついてきます。距離センサなので、今回の使用方法は邪道ですね。

受光素子と発光素子が並んでついています。発光素子が発した赤外線が、床を反射して受光素子に入ってきます。このときの光の量で距離を判断しています。(量というのはだいぶアバウトですが。)

ビュートローバーでは、帰ってきた光の量をAdRead関数0~1023までの1024段階(10bit)で入手できます。センサ入力はアナログ(連続)で、それをデジタル(離散)に変換しています。このとき、プルアップという方法をとっているので、センサの感度に対して光が最小以下のとき1023,最大以上のとき0になります。

ちなみにプルアップについて
マイコンにセンサから信号が来ないときはどうなるでしょうか。この時、人間からは何レベルか解りませんし、マイコンに取っては不安定な信号になります。これはマイコンにとってとても良くない状態なので、何も入力されていないときには回路的に1023レベルか0レベルに決定できるようにしたのがプルアップ/プルダウンです。

コード

アナログ入力取得する関数が予め定義されていますので、それを使用します。

 AdRead(1);

入力(引数)はチャンネル(0~7 = 1~8)で、出力(戻り値)はA/D 変換の値(0~1023)です。

試験的にアナログ入力情報を取得してLEDを光らせます。

	while(1){
		
		Rightdata = AdRead(0);
		Leftdata = AdRead(1);
		if(Rightdata< 500){
			LED(1);		//緑のLED点灯
			Wait(500);	//1000msec待つ
		}
		if(Leftdata< 500){
			LED(2);
			Wait(500);		//オレンジのLED点灯
		}
		else{
			LED(0);	
		}
	}
左センサが感知右センサが感知左LEDが点灯右LEDが点灯
OOOO
OXOX
XOXO
XXXX

Border以上: 反射がない/黒=>光る
Border以下: 反射がある/白=>光らない

このボーダーは自分で設定する事が出来ます。 50にすると、センサと床の距離が同じなままで白黒を判別できました。私の手元に青いテープしかなかったのでうまく調整します。

プログラム

ライントレース

機体がラインにまたがり、センサがラインの両端に来るような状況を考えています。

作成したコードです。後半で解説しています。簡単なコードなのでかなり改良の余地があります(^^ゞ
使用するセンサの質や数、配置によってコードが変わってくるでしょうが、今回は製品を使用するので誤差は小さめかと思います。

#ifdef __cplusplus
extern "C" {
void abort(void);
#endif
void main(void);
#ifdef __cplusplus
}
#endif

/*インクルード***********************************************************/
#include<36064s.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include "vs-wrc003lv.h"

/*グローバル変数***********************************************************/

int Leftdata;
int Rightdata;
int Borderr = 50;
int Borderl = 55;
/*メイン関数***********************************************************/
void main(void)
{
	//制御周期の設定[単位:Hz 範囲:30.0~]
	const BYTE MainCycle = 60;
	Init((BYTE)MainCycle);		//CPUの初期設定
	
	//ループ
	while(1){
		Rightdata = AdRead(0);
		Leftdata = AdRead(1);
		if(Rightdata > Borderr){
			LED(1);		//緑のLED点灯
			Mtr_Run_lv(-10000,-10000,0,0,0,0);
			Wait(100);	//100msec待つ
		}
		
		if(Leftdata>Borderl){
			LED(2);
			Mtr_Run_lv(10000,10000,0,0,0,0);
			Wait(100);		//オレンジのLED点灯
		}
		else{
			Mtr_Run_lv(0,0,0,0,0,0);//停止
			Wait(100);
			LED(0);	
			Mtr_Run_lv(-10000,10000,0,0,0,0);//前進
			Wait(100);
		}
	}
}

#ifdef __cplusplus
void abort(void)
{
	
}
#endif

アルゴリズム

コードを実行する時、処理は上から順に行われますので、私がやったコードの実行手順は以下のようになっています(たぶん)。

実行手順

これを実行すると、下のように動作すると思います。センサは白に反応するので注意してください。

状態左センサ右センサ機体動作
持つXXLED左右交互に点滅
線の上OOLED消灯、前進
右に脱線OX左朱LED点灯、反時計回り
左に脱線XO右緑LED点灯、時計回り

ライントレースの動作

実際に走らせてみたところ、完走です。 センサのボーダーの値はそれぞれの機体で走らせてみて調整してください。動画は諸事情によりありません。


雑記

紹介したコードの場合、手に持っている時にもモーターが左右交互に回転しようとしますので、効率が悪いです。 また、機体進行方向に対して水平なラインに出会ったときにも、左右交互に回転しようとしてしまい、脱出出来ません。

ロボットで勉強してみようという方がいらっしゃいましたら、コードを改良したりセンサを増やしてみたりして、様々な場合に対応できるように改良してみると楽しいのではないでしょうか。

参考

関連商品紹介

KiCADを使用してプリント基板を注文するところまでやります。届いたら追記します。 使用するKiCADは5.0.2です。

目次

  • kicadとは
  • インストール
  • 基板データの作成
  • 製造データの出力
  • Elercowに注文
  • 雑談

KiCADとは

KiCADとは、回路図とプリント基板のレイアウトを作れるEDA(Electronic Design Automation、電子設計自動化ツール)で、無料で使用することが出来ます。CADの一種です。=>KiCad EDA

用途

回路を作るとき、部品の数がめちゃくちゃ多いだとか、回路を小さく軽くしたいというようなことがあります。そういうとき、プリント基板で作るということがあります。プリント基板というのは、配線が銅などでプリントしてある基板で、部品をつけるだけでいいという優れものです。KiCADはそのプリント基板を設計するときに活躍するツールで、なんとタダ!素晴らしいですね。

実際に作るときには、データを作って、そのあと外注するか自分でプリントすることになります。今回は注文してみたいと思います。

機能

KiCADは以下のCADがセットになっています。

  • KiCad プロジェクト・マネージャ
  • Eeschema 回路図エディタ (回路図とコンポーネント)。
  • CvPcb フットプリント・セレクタ。部品の足下の穴の位置や大きさ、銅の形などの情報を制作する。
  • Pcbnew PCB レイアウト。回路図にしたがってフットプリントが現れ、それを配置したり配線したりする。
  • GerbView ガーバー・ビューア。制作した製造データを確認する。
  • Bitmap2Component ビットマップをコンポーネントやフットプリントに変換。
  • PCB Calculator コンポーネント、線幅、電気的安全間隔、カラーコード等のための計算機。
  • Pl Editor 図枠エディタ。

kicadことはじめから抜粋

インストール

インストーラにした従えばオッケーです。Download | KiCad EDA

基板の設計

回路図の作成

私は今後つくるラジコンに搭載する赤外線受信回路をプリント基板にします。なるべく小さく、軽くし、かつ今後使いまわしできるようにするためです。動作確認とかやってないので今後変わる可能性は大ですが、まあとりあえずやってみようということで。 やり方は前述のkicadことはじめPDFにそって作業すればオッケーでしたので、申し訳ありませんが詳細は書きません。

  • オペアンプマークでコンポーネント(部品)を選び、緑の線で配線します。GNDマークから電源の類いが選べます。回路図が完成したらてんとう虫マークでチェックします。電源、GNDがついていないとここでエラーをはきますので注意してください。
  • ライブラリにない部品は自分で作らなければいけません。下記リンクで大量のコンポーネントを作ってくださった方のgitに飛べます。ダウンロードしたら、設定/パスの設定 からパスを設定できます。 nosuz/kicad-lib - GitHub GitHubからダウンロードする方法

回路図が完成したらてんとう虫マークでチェックし、問題がなければNETと書いてあるマークでネットリストを作成します。問題なければシンボルをフットプリントと関連付けます。それぞれの部品を調べながらフットプリントを選びます。新しいコンポーネントを作った場合、ここでフットプリントが見つからない場合は設定/パスの設定 からパスを設定できます。

必要なら部品表を作成しますが、私は部品表を作成できませんでした。なんででしょうね。バージョンに問題あるっぽい?です。

今回考えた回路図。動作確認はしていない。参考は
PICマイコンでつくるインドア・プレーン―ラジコン飛行機を作って飛ばそう (電子工作シリーズ)

新規コンポーネントの作成

私の場合、秋月の変圧器はライブラリに無かったのでコンポーネントを新しく作る必要がありました。(5V出力昇圧DCDCコンバーター)。新規コンポーネントを作成する場合、回路図とフットプリントをそれぞれ作成して関連付けをします。Eeschema(回路図エディター)の上側ツールバーのオペアンプマークからシンボルライブラリーエディターを呼び出して回路図を作ります。

ファイル/新規ライブラリー か ファイル/ライブラリーの追加 からスタートします。作成するときの注意点は2つです。1つはパス、もう1つはピンのエレクトリックタイプです。

  • パス:回路図、フットプリントで関連付けるため、どのフォルダに入れたのかを覚えておきましょう。回路図エディターの 設定/パスの設定 からパスを設定できます。権限がありませんというメッセージが出てきたら、windowsの場合KiCADを起動するときに 右クリック/その他/管理者権限で実行 から開きます。
  • ピンのエレクトリックタイプ :ICなどは、動作に関係があるpinの他に電源供給用のpinやGNDのpinがあります。pinごとに、入力専用、出力専用、入出力兼用などという設定をしておくと回路図のエレクトリックルールチェックでミスがわかりやすくなります。ただ、ライブラリーを作成する時点で間違えると正しくてもエラーが出るので注意が必要です。よくわからないうちは パッシブ にしておけば大丈夫です。
新しく作った回路記号

回路記号ができたら、フットプリントを作成していきます。作業しやすいように下のようにしてすぐ保存できるようにするといいと思います。(参考にしたトラ技の丸パクリ)

  1. 回路図エディターのicマークでエディタを開き、ファイル/新規作成 から作成します。
  2. 名前をつけて、ツールバー左から3番目の 新規ライブラリを作成して,現在のモジュールを保存 でフットプリントをわかりやすいところ(mylib)に保存します。
  3. ファイル/アクティブなライブラリー で今作成したライブラリを選択します。ここで出てこない場合は 設定/パスを設定 でフォルダの場所を教えてあげます。
  4. ICとフォルダのマークからライブラリーから フットプリントをロード を選択して今保存したフットプリントを開きます。

あとは作りたい図面を探してきて、大きさに注意して作成するのみです。まずはアンカーを配置しておきましょう。中心線をフットプリントの中心に合わせなくても、後で配置するときに動かすので大丈夫だと思います。ほぼ直観的にできましたが、注意すべきポイントは2つです。

  • 単位 大きさはmmで統一しましょう。inchも選べます。1inch=25.4mm です。すべてのパーツをinchで作ると25.4倍の大きさで作れるのでうれしくなってしまいます。
  • クリアランス クリアランスはパターンとパターンの距離です。細かすぎるプリントは製造できません。P板.comではパッド-マスク(レジスト)のクリアランス設定 0.1mm 以上みたいなので参考にしましょう。
この章の参考

基板レイアウトの設計

回路図エディタの基板マークの 基板レイアウトの実行 をクリックします。部品がごちゃごちゃに並んでいるので、交差ができるだけ少なくなるように並べます。自動配線ツールがあるらしいですので興味がある方は調べてみてください。レイアウトはノイズ対策や高周波対策、熱などめちゃめちゃ細かいポイントがあるらしいですが、高周波ではないし複雑ではないレイアウトの場合に注意するポイントは2点です。

  • 直角に曲げない 電磁波が変な動作を引き起こすかもしれません
  • クリアランス パターン間が近すぎると製造できません。

わかりずらい項目についてメモしておきます。

  • 右上のアイコン F.Cuは表面の銅線のパターン、B.Cuは裏面の銅線のパターンです。各層ごとに決めていきます。F.Silksはメモのように使われてるはずです。
  • 配線 GNDは最後に配線します。
  • ビア 表と裏を貫通する穴です。ビアを経由することで表と裏の配線を繋げられます。

最後にてんとう虫マークの デザインルールチェックの実行 をします。設定をして「DRCの開始」ボタン。

私の場合ここでエラーが出たので書いておきます。 修正したかったがなぜか同じconn3は全部一緒のはずなのに配線できませんでした。コネクタ部品の穴につながりません。なんでだかわからないものの、問題があるのはこの部品だけなのでこのままやっちゃおうと思います。配線を別なところで作って移動させました。

悪知恵の写真

以上で基板のデータができました。最後に、データの出力の準備をします。

ドリルの配置をします。メニューバーの配置/ドリルと配置のオフセット から、基板外形の左隅におきます。これ、P版のサイトによると左下が安定らしいです。 セットアップ/パット -レジストのクリアランスで以下のように設定して保存します。P版では0.1mm以上を基準にしていました。配線/寸法線から寸法が測れます。

完成品の画像。ファイル/3Dビューア で3Dで見られます。

3Dビュー
この章の参考

プリント基板を作る

最後にメーカーに送るデータを作成します。作るのは「ガーバーファイル」と「ドリルファイル」です。

世の中には自作しているヒトも居ますので参考にしながら作ることもできそうです。が、今回私が作りたいのはかなり小さい基盤なのでプロにお願いしようと思っています。日本の企業もいくつかありますが、ちょっと高い。そこで今回はELECROW に注文します。

ガーバーデータとドリルデータ

ガーバーデータは各層のプリントの様子を、ドリルデータは穴の様子をまとめたデータです。

ガーバーデータとは、プリント基板を製造するためのデータです。ガーバーは元々基板のアートワークフィルムの作画に用いられるグラフィック・フォーマットでした。フィルム作画機メーカの Gerber System社の独自規格でしたが業界標準として広く普及したため、1979年にEIA (米国電子工業会)で RS-274D として規格化されました。

ガーバーデータとは -アロケートドットコム

データの出力

製造ファイル(ガーバーデータ)を出力

ガーバーデータを出力してみます。 ファイル/プロットで、写真のように設定して、製造ファイルの出力を押します。このようにファイルが出ます。 同じ画面で、ドリルデータの出力から、このように設定して、出力します。ついでにマップも出しておきます。

(追記) 裏面ソルダマスク のデータを送っていないことに気づきました。製造ファイル作成時にB.Maskにチェックを入れ、下の表の最終列のように編集してください。必須です。ありがとう、アニーさん。

ドリルファイルを生成

んで、elecrowの送るためにはデータの名前を変える必要があります。


Elecrowさんより抜粋

で、これを以下のように変更します。ファイルの名前が上の写真では「plane_SpeedControllReciever」になっていますが、表では「NAME」にまとめました。

layerbeforeafter
TopNAME-F.Cu.gbrNAME.GTL
BottomNAME-B.Cu.gbrNAME.GBL
Solder Stop Mask topNAME-F.Mask.gbrNAME.GTS
Silk TopNAME-F.SilkS.gbrNAME.GTO
NC DrillNAME.drlNAME.TXT
NC Drill-NPTHNAME-NPTH.drlNAME-NPTH.TXT
Mechanical layerNAME-Edge.Cuts.gbrNAME.GML
Solder Stop Mask BottomNAME-B.Mask.gbrNAME.GBS

-F.CtrYd,-F.Fabは参考にしたサイトでも使ってないし、部品を囲う線なのでプリントする必要もないものですので、送りませんでした。あと、NAME-NPTH.drlがありません。この基板はノンスルーホールを作ってません。

ガーバービューアで見てみたらこんな感じです。ドリルもあいてるっぽいですね。 これをzipにします。

B.Maskのガーバービュー

Elecrowに注文

Elecrowに注文します。この会社のはかなり安い!でも基本的に英語です。日本語のぺージもありますが翻訳が雑なので注意です。 Elecrow PCB Manufacturingから注文します。

このように設定して注文しました。

  • Haslは半田レベラーのことで、Hasl(lead free)は無鉛半田です。
  • 端面スルーホールは、ありにするとエッジの穴が銅メッキされます。
  • 銅箔厚は、銅の厚さです。基板全体の重量のうち、銅の重量の割合が大きいほど電気特性が向上しますが、エッジングするのが難しくなるそうです。1mil=0.0254mmみたいです。とりあえず1ozで行きます。
  • PCBステンシルというのは、基板の型(メタルマスク)を製造するか、ということです。有料です。
  • 生産時間は、急ぎじゃないので4-7working days。
  • 国家は、とりあえずjapan、Registered Airmail(書留郵便) $4.98。
  • 注文画面でまた発送方法が出てきたのがよく分かりませんが、とりあえず安定のANA。

初めての注文で500ポイントがついてきたので196points(-$1.96)適用して全体で$16.17。日本円で1800円くらい。かなり安い!

(追記)基板が届きました!

3/27にデータを送り直して4/1に発送のメールが届き、4/2には基板が届いていました。予想よりだいぶ早かったです。(小さいからでしょうか?)
3Dビューワーで見たとおりにできあがっていましたね。小さく作る事が目的だったので素晴らしい!30mm*35mmくらいです。10枚注文しましたが12枚入っててラッキーでした。基板の導通状態を何枚か確認しましたが大丈夫そうでした。使うときにもう一度確かめるつもりです。満足!!

この章の参考

雑談

発注した基板がとどいたら届くまでの時間や反省をまとめて追記します。このブログが正しいのかはそれまで解りません。

追記(2019/3/27): B.Maskのファイルを追加するように追記しました。
追記(2019/4/8):届いた基板について追記しました。