PIC16F84A スロットゲームの基板を作る


20150506_pic_front

概要
Eagle と Sevenmini を使って、PIC16F84A で制御するスロットゲームの基板を作ります。
7セグLEDやタクトスイッチや電磁ブザーなどを搭載します。
元ネタは PICと7セグLEDでスロットマシン です。

基板作成の手順は Eagle と Sevenmini を使って電子基板を作る を参照してください。
データは GitHub で公開しています。

Eagle 側の作業
(1) 回路図 (sch) とボード図 (brd) を作成します。
20150506_pic_sch 20150506_pic_brd

(2) Mirrorにして、ガーバーデータを出力します。
20150506_pic_gerber

FLASH 側の作業
(1) ガーバーデータを読み込みます。
ハンダ面データ (sol) を「フォト表」に、
ドリルデータ (drd) を「穴」に、
外形データ (out) を「外形表」にします。
20150506_pic_flash

(2) 輪郭線抽出を行います。

Sevenmini 側の作業
(1) 配線の加工
基板を両面テープで固定します。
ミリング用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
(2) 穴の加工
ドリル用のエンドミル 0.6mm に交換します。
CAM-Circuit2 アプリから加工を指示します。
(3) 外形の加工
今回は基板をそのまま使い、加工せず。
20150506_pic_milling

ハンダ付け
(1) 表面の配線を行います。
(2) 部品をつけて、裏面をハンダ付けします。
20150506_pic_front 20150506_pic_rear

動作確認
PICに Lチカのプログラム を書き込みます。
ボタン電池を搭載します。
LEDが点滅すればOKです。

今回は、ゲーム基板を作るところまでです。
ゲームのプログラムは、後ほど作成します。

課題
(1) 表の配線と、抵抗が、同じ穴になってしまった。
意識して設計したつもりが、1ヶ所だけミスった。
(2) 電池のスイッチを付け忘れた。
電池を切るときは、ボックスから外す羽目に。
これが割と面倒。

(3) PIcKit3 が 電池ケースとぶつかってしまった。
ちょっと浮くけど、書き込みには支障なし。
20150506_pic_todo2

参考
PICと7セグLEDでスロットマシン
PIC16F84Aで電子工作 スロットマシーンを作ってみました


PIC16F84A のベース基板を作る


20150503_pic_led

概要
Eagle と Sevenmini を使って、PIC16F84A のベース基板を作ります。
発振子、LED、IOピンとPICkit3用のヘッダピンなどを必要最低限なものを実装します。

基板作成の手順は、Eagle と Sevenmini を使って電子基板を作る を参照してください。
データは GitHub で公開しています。

Eagle 側の作業
(1) 回路図 (sch) とボード図 (brd) を作成します。
20150503_pic_sch 20150503_pic_brd

(2) Mirror にしてガーバーデータを出力します。
20150503_pic_gerber

FLASH 側の作業
(1) ガーバーデータを読み込みます。
ハンダ面データ (sol) を「フォト表」に、
ドリルデータ (drd) を「穴」に、
外形データ (out) を「外形表」にします。
20150503_pic_flash

(2) 輪郭線抽出を行います。

Sevenmini 側の作業
(1) 配線の加工
基板を両面テープで固定します。
ミリング用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
(2) 穴の加工
ドリル用のエンドミル 0.6mm に交換します。
CAM-Circuit2 アプリから加工を指示します。
(3) 外形の加工
フォーミングのエンドミルに交換します。
CAM-Circuit2 アプリから加工を指示します。
20150503_pic_milling

ハンダ付け
(1) 表面の配線を行います。
(2) 部品をつけて、裏面をハンダ付けします。
20150503_pcb_front 20150503_pcb_rear

動作確認
PIC16F84A で Lチカ を実行します。

失敗
RB6とRB7を PICkit を接続すべきが、1ピンずれてRB5とRB6を接続していた。
追加で穴をあけて、修正した。

課題
3端子レギュレータを、よく考えずに配置したため、基板から飛び出してしまった。
向きを変えて、基板に収まるようにしたほうがいいです。


Bluetooth シールドの基板を作る


概要
Eagle と Sevenmini を使って、Arduino の Bluetooth シールドの基板を作ります。
Bluetooth は、JY-MCU BT BOARD を使用します。
動作確認のために、LEDやスイッチや半固定抵抗も搭載します。
基板作成の手順は、Eagle と Sevenmini を使って電子基板を作る を参照してください。

データは GitHub で公開しています。

Eagle 側の作業
(1) 回路図 (sch) とボード図 (brd) を作成します。
20150408_bt_sch 20150408_bt_brd

(2) Mirror にして、ガーバーデータを出力します。
20150408_bt_gerber

FLASH 側の作業
(1) ガーバーデータを読み込みます。
ハンダ面データ (sol) を「フォト表」に、
ドリルデータ (drd) を「穴」に、
外形データ (out) を「外形表」にします。
(2) 輪郭線抽出を行います。
20150408_bt_flash

Sevenmini 側の作業
(1) 配線の加工
基板を両面テープで固定します。
ミリング用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
(2) 穴の加工
ドリル用のエンドミル 0.6mm に交換します。
CAM-Circuit2 アプリから加工を指示します。
(3) 外形の加工
今回は基板をそのまま使い、加工せず。
20150408_bt_sevenmini 20150408_bt_pcb

ハンダ付け
(1) 表面の配線を行います。
(2) 部品をつけて、裏面をハンダ付けします。
20150408_bt_front 20150408_bt_rear

動作確認
(1) Arduino にエコーバックのスケッチを書きます。
(2) 通信相手は Android の BT terminal を使用します。
(3) Androidで入力した文字がエコーバックすれば、OKです。

課題
(1) タクトスイッチが USBコネクタ の上にあり接触しそう。
(2) BT BOARD のピンソケットの足が長くなり、機械強度が心配。
こういう実装になったのは、BT BOARD がL型ピンヘッダを使っているため。


Eagle と Sevenmini を使って電子基板を作る その2


20150129_test_main

概要
Eagle は電子基板を作成する CAD ソフトです。
Sevenmini は、MITS社の基板加工専用のミリングマシンです。
前回の題材は 3x3LEDマトリックス・シールド でした。
今回は Arduino 互換ボードです。

Eagleデータは GitHub で公開しています。

Eagle 側の作業
(1) 回路図 (sch) とボード図 (brd) を作成するところは、ほぼ同じです。
ボード図では、配線を太くしたり、PADを大きくしたりします。
20150129_eagle_sch 20150129_eagle_brd

(2) ガーバーデータを出力します。
このとき、Mirror にして、ハンダ面が表になるようにします。
MACのときは、改行コードを LF から CRLF に変換します。
20150129_gerber

FLASH 側の作業
1. CONVERTER アプリ
(1) 単位をインチに切り替えます。
(2) ドリル情報 (drl) を読み込みます。
(3) 変換条件を設定します。
フォト変換条件の単位系を 0.0001 インチにします。
穴変換条の単位系を 0.0001 インチにします。
20150129_flash_photo 20150129_flash_drill

(4) ガーバーデータを読み込みます。
ハンダ面データ (sol) を「フォト表」として読み込みます。
「特殊なアパーチャ形式です」という警告が出ますが、気にせず進みます。
ドリルデータ (drd) を「穴」として読み込みます。
外形データ (out) を「外形表」として読み込みます。
20150129_flash_wranig

(5) 読み込んだガーバーデータが 0.1 インチ刻みのグリッドに合っていれば、OK です。
20150129_flash_converter

2. EASY CAD アプリ
(1) 輪郭線抽出を行います。
繰り返し回数を「2」にします。
20150129_flash_easycad

Sevenmini 側の作業
1. 配線の加工
(1) 基板を両面テープで固定します。
(2) 原点を移動します。
(3) ミリング用のエンドミルを取り付けます。
(4) CAM-Circuit2 アプリから加工を指示します。

2. 穴の加工
(5) 指示に従い、ドリル用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
ドリルの太さに応じて、何度かエンドミルを交換するように指示が出ますが、今回は 0.8mm ドリルで全て済ませました。

3. 外形の加工
(6) 次に、フォーミングの指示が出ますが、今回は外形は切らずにここで終了します。
20150129_sevenmini

穴の拡張
ピンヘッダなど 0.8mm では小さいところに、
ミニドリルで1.0mmの穴に広げます。

基板の研磨
銅箔面を研磨剤で磨いて、ハンダが乗りやすいように、表面を滑らかにします。
20150129_pcb_polish

ハンダ付け
(1) 表面の配線を行います。
(2) 部品をつけて、裏面をハンダ付けします。
20150129_pcb_rear 20150129_pcb_front

動作確認
1. Arduino ボード
(1) ブートローダーが書き込んである CPU を差します。
(2) USBシリアルアダプタを差します。
(3) Arduino IDE から Blink スケッチを書き込みます。
(4) 書き込み完了が出れば、ボードは正しく動作しています。
(5) 続いて、LED が点滅すれば、OKです。

2. シールド
(1) 前回作った LEDシールド を差します。
(2) USBシリアルアダプタを差します。
(3) スケッチを書き込みます。
(4) 全ての LED が点滅すれば、OKです。
20150129_test_board 20150129_test_shield

課題
ミリングマシンには特にないです。
基板の実装に関して、いくつかありました。
(1) 3端子レギュレータ
19mm と高さがあったので、横にしました。
今回は基板の外側になりましたが、内側にあるほうがいいです。
(2) 電源入力端子
ピンヘッダを使ったところ、シールド基板にあたります。
ピンを横に曲げて対応しました。
DCジャックを使ったほうがいいです。
(3) リセットボタン
この位置だと、ICソケットからCPUを抜きにくいです。
(4) 電池
使用したことのある乾電池だと、電圧が低かったです。
1.5V×4本でなく、5本か、9V電池がよさそう。


リフロー機 Puhui T-962


20150128_reflow_t962

リフロー機とは、クリームハンダを溶かすために、250度くらいの温度になるオーブンのことです。
今回試した機種は Puhui (普恵科技) の T-962 です。
同社から ユーザマニュアル が公開されています。

使い方は、シンプルです。
「F3」ボタンを押して、温度曲線を選択します。
「F1」ボタンを押すと、選択された温度曲線に従い自動的に温度が上昇し下降します。
15分ほどしたら温度が下がるので、「S」ボタンを押してストップします。

今回の題材として 秋月電子で販売している Arduino互換基板FT232 チップを載せてみました。
部品のうちこれだけが表面実装品です。

クリームハンダは アマゾン で購入しました。
香港 Mechanic 社の Sn63/Pb37 です。

クリームハンダを塗るためのマスクは、普通紙をレーザーカッタで切りました。
しかし、PADの間にもハンダが乗ってしまいました。
紙が薄く柔らかかったようです。
爪楊枝で余分なハンダを拭いとりました。
20150128_reflow_mask

あとは、リフロー機に入れて、15分ほど待ちます。
仕上がりは、多少のむらはありますが、ハンダがちゃん乗っているようです。
20150128_reflow_pcb

なお、T-962 の評判はあまりよくないみたいです。
改造している例がいろいろ見つかります。

参考
Infrared IC Heater T-962
ペーストはんだ・クリームはんだ Sn63/Pb37 – アマゾン
リフローオーブン(T-962)を改造する


Eagle と Sevenmini を使って電子基板を作る その1


20150103_sevenmini

概要
Eagle は電子基板を作成する CAD ソフトです。
Sevenmini は MITS社 の基板加工専用のミリングマシンです。
Roland 社の Modela との違いは、ガーバーデータの読み込みができる、ミリング・ドリル・フォーミングの専用のエンドミルがある、基板押えがある機構なので水平面が取りやすいなどがあります。
そのため、Modela より精度の高い加工ができるようです。
今回は、お試しとして、3x3LEDマトリックスの Arduino シールドを作成しました。

EagleデータとArduinoスケッチは GitHub で公開しています。

Eagle 側の作業
(1) 回路図(sch)とボード図(brd)を作成するところは、ほぼ同じです。
ボード図では、配線を太くしたり、PADを大きくしたりします。
20150114_eagle_sch 20150114_eagle_brd

(2) ガーバーデータを出力します。
このとき、Mirror にして、ハンダ面が表になるようにします。
MAC のときは、改行コードを LF から CRLF に変換します。
20150114_gerber

FLASH 側の作業
Sevenmini には FLASH というCADソフトが付属しています。
EASY CAD、CONVERTER、CAM-Circuit2 という3つのアプリケーションを切り替えて使います。
CONVERTER アプリは、Eagle など代表的な基板作成CADのガーバーデータが読み込めます。
例題がついているので、それが正しく動くことを確認します。

1. CONVERTER アプリ
(1) 単位をインチに切り替えます。
(2) アパーチャーとドリル情報を読み込みます。
CAD種別は Eagle に選択して、アパーチャー (*.whl) を読み込みます。
現行の Eagle は、アパーチャーは出力しないので、例題にあるものを読み込みました。
ドリル情報 (*.drl) を読み込みます。
(3) 変換条件を設定します。
フォト変換条件の単位系を 0.0001 インチにします。
穴変換条の単位系を 0.001 インチにします。
値が違うので、要注意。
20150114_flash_converter_photo20150114_flash_converter_drill

(4) ガーバーデータを読み込みます。
Sevenmini は両面加工で出来ますが、今回は裏面のみとするので、裏のデータを表として扱います。
ハンダ面データ (*.sol) を「フォト表」として読み込みます。
ドリルデータ (*.drd) を「穴」として読み込みます。
外形データ (*.out) を「外形表」として読み込みます。
(5) 読み込んだガーバーデータが 0.1 インチ刻みのグリッドに合っていれば、OK です。
違うときは、単位系を調整します。
20150114_flash_convert

2. EASY CAD アプリ
(1) 輪郭線抽出を行います。
繰り返し回数を「2」にして、半田ブリッジを防止します。
20150114_flash_easy_cad_2

Sevenmini 側の作業
1. 配線の加工
(1) 基板を両面テープで固定します。
(2) 原点を移動します。
(3) ミリング用のエンドミルを取り付けます。
(4) CAM-Circuit2 アプリから加工を指示します。

2. 穴の加工
(5) 指示に従い、ドリル用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
ドリルの太さに応じて、何度かエンドミルを交換するように指示が出ますが、今回は 1mm ドリルで全て済ませました。
CAM-Circuit2 アプリから加工を指示します。

3. 外形の加工
(6) 指示に従い、フォーミング用のエンドミルを取り付けます。
CAM-Circuit2 アプリから加工を指示します。
20150114_pcb_milling

ハンダ付け
(1) 基板を研磨剤で磨きます。
(2) フラックスを塗ります。
(3) 表面の配線を行います。
(4) 部品をつけて、裏面をハンダ付けします。
20150114_pcb_polish20150114_pcb_rear
20150114_pcb_front

課題
(1) 配線から輪郭線が抽出ができない箇所がありました。
PADの形状が大きいのかも。
加工したあとで気づいたで、カッタナイフで刻みを入れました。
20150114_flash_easy_cad_miss

(2) 1mmドリルは、抵抗などのリード線の穴には少し大きかったようで、ハンダ付けがやりにくかったです。
0.8mmドリルくらいがよさそうです。