フライトコントローラーを自作してみる。~その8~

いよいよフライトコントローラーの基板に部品を実装したいと思います。

まず実装前の基板はこれです。PCBgogoで製作して入着済。

約500円で10枚作れるPCBgogoの基板

そしてメタルマスクも購入済。こっちは基板よりも高くて約¥1000します。
画用紙をレーザーカットして代用できないかとも思いますが、初めてのリフローなので確実な方でやってみます。

実装前の準備として部品を紙の上に並べていきました。コンデンサの様に何も書いていない部品もあるので手をひっかけてバラケると大変なことになります。なので紙はテープで机に貼り付けています。

そして板の上に不要な基板の切れ端を貼り付けて固定治具にします。
まずは部品が少ない裏面(機体に積んだ時に下側にくる面)から実装する事にしました。

その上からメタルマスクを貼り付けて・・・

慎重に位置合わせ・・

マスクの上からクリームはんだを塗っていきます。

プラスチック板の切れ端でスリコミ スリコミ・・・

マスクを剥がすとこんな感じでクリームハンダが載っています。
まあ大丈夫そうです。

そして1個ずつピンセットで部品を置いていった後の写真。
この時には気づいていませんが左下のスイッチングレギュレーターICの位置がずれていて、リフロー後に気づく事になります。

ではいよいよオーブントースター(改)リフロー炉に投入。
不要基板に温度計のセンサーを貼り付けて横に置き、温度を見ながらやります。

スタート!
そして リフロー中・・・

よし終わった・・・

大体良いのですが、先程書いた通りレギュレーターICがずれていたのでポロッと落ちてしまいました。これは後ほど手ハンダで取り付けます。

またよく見るとOSD用ICのリードにブリッジがあります。なにか条件が良くなかったのでしょうね。クリームハンダが厚すぎたのかな?
これもはんだゴテで除去します。

ちょっとピンボケですがMAX7456のリード2か所にブリッジが見られます。

ハンダブリッジとレギュレータずれ以外、見た感じは良さそうです。

では表面側の実装に取り掛かります。
ところで表面にクリームハンダを塗る際、裏面には既に部品がついているので先程と同じ方法だと基板が浮いてしまいメタルマスクと基板が密着できない事に気づきました。
そこでMDFをレーザーで切り、部品のない四隅を支える治具を作成しました。このままだと基板厚の分MDFより高くなるので厚みが基板とほぼ同じ1.6mmの段ボールを見つけてきて基板の周りに置く事で全体が面一になりました。

1.6mm厚の段ボールに窓を開けてこの上に載せると全体が同じ高さになるのです。

あとは先程同様クリームハンダを塗って部品を載せました。

SHコネクタやタクトスイッチが溶けないか心配

リフローの時、実装済みの裏面から部品が落ちるとまずいのでアルミ箔で熱を遮ってみました(効果の程は判りませんがとりあえず大丈夫でした)。

リフロー完了

コネクタやスイッチが溶けないか心配していましたが無事みたいです。
でもやっぱりマイコンのリードにブリッジがありますね。何がいけないんだろう。
なお表面の過熱により裏面のブリッジが直っていないかと期待しましたが変化ありませんでした。 まとめてはんだゴテで除去します。

リフロー×ブリッジでググると、クリームハンダがそもそもブリッジしている場合は当然として、高温時間が長い場合も狭い隙間にハンダを吸い上げてしまう様です。毛細管現象みたいなものですかね。
今回のはリードの少し上でブリッジしているので高温長すぎの方かもしれません。

何はともあれ、基板に部品がつきました。
次は動作を確認していきたいと思います。

フライトコントローラーを自作してみる。~その7~ リフロー炉

細々と続けているフライトコントローラー自作の続きです。
部品が一通り揃ったのでリフローの準備を始めます。

フライトコントローラーはすべて表面実装部品を使うので手ハンダでは難しく、リフローで実装したいのです。
また35mm角の基板に部品を載せていくと両面実装になるので、ホットプレートを使ったリフローでは裏側実装のとき密着できない懸念があり、ここはやはりリフロー炉を使う必要がありそうです。

という事でオーブントースターを改造してリフロー炉を作る事にします。
内容的にはスイッチサイエンスさんのこのキットを真似して作ります。
(キットはずっと品切れなのでバラで部品を集めます)

まずオーブントースターを入手。リサイクルショップで適当なものを¥1800で買ってきました。TIGERのKAM-A130という機種で1300Wの品です。どれだけのパワーがいるか不明なので、足りないとどうしようもないので強めの機種を選びました。

ヒーターは3本備えていますが、この内2本は並列につながっています。常温で抵抗値を測ったところ並列状態の2本と単独の1本が同程度の値になっていて、2系統の配線が半分ずつのパワーを受け持つ様に制御しています。

前面にはタイマーと温度設定つまみがあります。タイマーはゼンマイ式で0まで戻ると「チン」となるアレです。温度設定つまみはバイメタル式サーモスタットらしき機構につながっています。
タイマーの方はそのまま安全タイマー(なにかトラブルがあって通電を続けても時間が来たら止まる)として使いたかったのですが、カバーが金属のツメを折り曲げて止めてあり、一度外すと元に戻せなくなりそうなので諦めました。
結局ヒーターに接続する電線だけを引き出して利用することにします。

回路はこれ。
オリジナルのスイッチサイエンスのキットはATMega328Pを3.3Vで動作させていて、これはたぶん温度センサーのMAX31855が3.3V動作の為だと思います。でも今回はAdafluitのMAX31855モジュール基板(秋月電子で入手)を使うので内部に5V→3.3Vレギュレータを持っているし、更にSSRは入力が4V以上となっているので5V系のArduino UNOの方が都合が良いのです。

温度を測定する熱電対は秋月電子で買ったステンレス管に入ったタイプでやってみます。
オーブンの内部に突っ込むので電線がピラピラしているよりもしっかりした棒状のセンサーを突っ込む方が保持しやすいと思ったのです(が、これは失敗だった事に後で気づきます)。

では改造です。
オーブントースターの筐体に穴をあけて電線を引き出します。穴の縁が鉄板そのままだと電線を傷つけそうなのでハトメを打ちました。 でもハトメの穴も案外ギザギザしているんですね。これだと効果が薄いので結局ハトメは外して他の方法を探します。

そして見つけたのがこれ「ダイソーのシリコーンマット」。230度までOKとなっています。これを適当に切り電線の周りに巻いて穴にツッコミました。


これで電線を傷つける心配はないと思います。

制御回路はまだバラックです。

ファームをGithabから取ってきてリフロー条件もそのままでArduinoに書き込みました。
そしてとりあえず何か焼いてみます。以前基板を発注したら間違って届いたものを使い、適当なランドにクリームはんだを塗って適当なチップ抵抗を載せます。


まずはソースコードに最初から書かれていた温度プロファイルそのままでやってみます。これは130℃まで上がるとで15秒待ち、その後230℃まで上がると目標を225℃に下げ、更に100秒経過するとすべてのヒーターを止めるという動作です。

ではスタートスイッチをポチッと。
最初の段階は1系統のみヒーターONで130℃を目指して温まっていきます。 そして130℃で一旦ヒーターが切れますがそれでも暫く温度が上昇し140℃まで上がりました。そして15秒のタイムアップ後2系統共ヒーターONとなり230℃を目指して上昇していきます。230℃に達するとヒーターOFFになり目標温度が225℃に下がるのですがまだまだ温度が上昇し240℃を超えてしまいました。基板からは時々プチッという音が聞こえてきます。その後225℃まで下がるか下がらないかの間に100秒の待ち時間が過ぎて一通りの処理が終了しました。

扉を開けると・・・

何か色が濃い・・・

結果・・・基板が黒くなっていて過熱しすぎっぽいですね。

左はリフロー前, 右がリフロー後。
過熱により黒くなりました。

ならば温度センサーがちゃんと温度を取れているのか、熱電対温度計と並べてヒートガンで過熱してみます。

結果、温度はまあ一致するのですが、ステンレス管に入った方は温度が伝わるのに時間がかかり、遅れて追いつく様な感じになります。
ステンレス管の熱電対を選んだのは失敗ですねー。さっき温度読みが240まで上がりましたがこれは遅れた表示なので実際はもっと上がっていたと想像できます。
まあちょっと予想はしていて、電線直接の熱電対が何本か手持ちが あるのでステンレス管がダメならこっちに変えようと考えていました。

電線直接の熱電対だと固定しずらいのでどうするかですが・・・3Dプリンタで使ったテフロンパイプがまだあった筈。これを適当に切ってその中に熱電対を通し庫内まで貫通させてみます。

次は制御回路と温度計、二つの熱電対を基板のほぼ同じ位置に貼り付けて動作させてみます。

こうすると制御回路と温度計の表示がほぼ同じで動作しているので測定自体は大丈夫みたいです。しかし通電を止めてから10℃くらい上がるのは変わりません。ヒーターからセンサーまで熱が伝わるのに時間がかかるのでしょう。

このファームは設定値に温度が達したら通電を切り、設定値よりも下がったら通電するというシンプル制御です。そこでPIDを追加してみたりと迷走したのですが結局止めました。最大温度に達する直前に過熱をゆるめるので温度の跳ね上がりはなくなりますが、最大温度付近にいる時間が長くなってしまうのが気に入らなくなったのです。

で、結局元通りのファームを使って温度プロファイルだけ調整する事に落ち着きました。

なお庫内でピロピロしない様、こんな感じでセンサーを固定しようと思います。この状態で基板に貼り付けた温度計と比べると、温度計の方が最大10℃くらい高い温度となるのでその分と跳ね上がり分を差し引いた上限値にします。

こんな感じで横からセンサーが出っ張ります。

更に何度か試してほぼ目途がたったので、次はいよいよフライトコントローラー基板に部品を実装しようと思います。