リフロー炉製作(3)
前回までに動作は確認できたので基板に起こして作ります
KiCadで基板を作る
KiCadでちょちょっと作りました
回路図は前回のを起こすだけなのですぐできました
NETファイルに変換して基板エディタへ
基板を作成しました
実装
実際に製造してみるとOLEDモジュールや
シリアル変換モジュールの配置を適当にしてしまったので
向きが逆になっていたり無理やりな場所につけてしまっていたりしました
まあ仕方ないのでその状態でケースに入るよう工夫します
秋月電子通商のケースを使ってボール盤やヤスリでケースを加工します
akizukidenshi.com
完成
最終的にはなんとか収まってまとまりました
OLEDモジュールの寸法を間違えてしまったので
一回り大きく穴が開いてホットボンドでごまかし(?)ました
DCジャックから5Vの給電を行いボタンを押せばリフロー開始です
1000W近くの電力を制御するのでヒートシンクが熱を持ちすぎてしまうので
そのうちファンをつけないとだめかもしれません
まとめ
作ってはブレッドボードで終わりだったり
基板に実装するだけでケースを作らなかったりすることが多いので
ここまで綺麗にまとめたものは初めてに近いのではないかと思います
満足の行くものができました
[完]
VOXY(ZRR70)の尾灯の交換
尾灯が切れた
家のVOXY(ZRR70)の尾灯が切れてしまった
尾灯はヘッドライトをつけると後部の点灯するライトで
切れていると整備不良なので交換しました
説明書によるとディーラー行き
説明書を読むと尾灯の交換方法については説明がなく
尾灯は5Wというワット数だけ明記されていて
修理はディーラーに持ってきてね!と書いてありました
持っていったら部品代だけでなく工賃まで取られてしまうので
自分で直してみました
分解
ライトを取るのは簡単で
ライトユニットについている六角のボルトを2本外すだけ
外した後
外したライトユニット
外したライトユニットの裏側は黒いスポンジで覆われていました
スポンジを外すことで電球の部分にアクセスできます
尾灯は上から2番目の緑と白の線のライト
書いてある通り右に回すと外れて電球を取り出すことができました
後はホームセンターで買ってきた電球と交換して
逆の手順で元に戻せば完成!
交換後
ヘッドライトをつけると問題なく光るようになりました
特に難しい手順もなくただ外すだけなので
初心者だとしても簡単に交換できる部分でした
グラフィックポイ製作 (0)
今現在製作中であるグラフィックポイについて
これから書いていこうかなと思います
友人がポイというパフォーマンスを行っていることから
このプロジェクトは始まりました
(私はまだポイを行ったことがありません…完成したらやろうかなと考えている)
まずポイについて
ポイはジャグリングの種類の中の一種です
紐の片方に球や布などのテールをつけて両手にもって
回すことで身体の表現と空中に描かれる軌跡によって行うパフォーマンスです
グラフィックポイとは
http://poicommunity.com/shop/user_data/aboutgraphicpoi.php
ここで紹介されているようなものですが
球や布ではなくLEDをつけることでバーサライトのように
空中に文字やイラストを描くことで今まで以上のパフォーマンスを
行うことができるものです
なぜ作るのか
先程紹介したサイトでグラフィックポイが販売されているのですが
いかんせん高い
趣味であるとはいえ17万円を出せるかというと出せない…
買えないなら作ってしまえということで作ります
製作にあたり
私はハードウェア、
パフォーマンスでポイを使っている友人がソフトウェア
という担当で製作する予定です
ハードウェア
既に2,3ヶ月前から構想して既に基板を起こして
テストを行っています
ぼちぼち書いていければと思っています
グラフィックポイ製作 (0)
グラフィックポイ製作 (1)
グラフィックポイ製作 (2)
グラフィックポイ製作 (3)
グラフィックポイ製作 (4)
グラフィックポイ製作 (5)
グラフィックポイ製作 (6)
グラフィックポイ製作 (7)
Tech Tech Box
いろいろ作っているので
せっかくならどこかで展示や販売したいということで
これから「Tech Tech Box」(テクテクボックス)という名前で
活動していくことにしました
まず最初の活動としてC93に申し込みました
機会があればよろしくお願いします
C-FORCE
C-FORCE
最近話題になっていた「C-FORCE」
Nintendo Switchのドック代わりに使うことができる
HDMI出力のアダプターで、USBハブにもなるすぐれものです
(しかし私の家にはType-C接続できる機器はSwitchぐらいしかありません)
クラウドファンディング
KICKSTARTERやIndiegogoで出資を募っていました
最初は「Switch-Con」という名前でしたが商標の関係らしく
「C-FORCE」を余儀なくされたみたいです
私はKICKSTARTERで出資しましたが
EARLYBIRDだったので一足早く発送されてきました
製品
KICKSTARTERだけの特典らしくHDMIケーブルがついてきました
外見
側面のコネクタ
USB3.1A x2
USB3.1 Type-C x2
接続してみた
使ってみた
HDMIケーブルとSwitchに付属のACアダプターをつなぐと問題なく映像が出力されました
ACアダプターを接続しないと表示されないのはドックと同じ仕様でした
まとめ
EARLYBIRDで出資したので$59,¥6720($1=¥113.915)でゲットすることができました
HDMI出力だけでなくUSBハブとしても使うことができるので満足です
リフロー炉製作(2)
前回はオーブントースターを改造したので
制御の部分を作ります
製作
簡単に扱えるArduinoを使います
使用した部品
- MAX31855(温度計)
- タクトスイッチ(スタート用)
- 圧電スピーカー
- OLEDディスプレイ
- SSRキット
回路を組むとこんな感じ
SSRキット
Arduinoとその仲間たち
はんだペースト
Aliで輸入したけどちゃんとつかえたので当たりをひいた
プログラム
当初はPID制御で温度調節をしようと考えていたのですが
うまく動作しているのか怪しかったので
単純に設定温度を超えたかどうかでON/OFFを切り替えることにしました
プログラムはこんな感じですが(長ったらしいし載せなくてもいいんじゃないか)
#include <SPI.h> #include "Adafruit_MAX31855.h" #include <U8glib.h> /* リフロー手順 1.加熱ステージ1 2.予熱ステージ 3.加熱ステージ2 4.リフローステージ 5.冷却ステージ */ #define Wait 0 #define Heat1 1 #define Preheat 2 #define Heat2 3 #define Reflow 4 #define Cool 5 int Profile[6][2] = { { 0, 0}, {140, 0}, //Heat1 {160, 60}, //Preheat {225, 0}, //Heat2 {230, 20}, //Reflow { 0, 0} //Cool }; //ピンアサイン #define Pin_SSR 8 #define Pin_Buzzer 9 #define Pin_BTN_Start 6 #define Pin_MAXDO 3 #define Pin_MAXCS 4 #define Pin_MAXCLK 5 //LCD U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); //Temp double TargetTemp, Temp; int WindowSize = 5000; unsigned long windowStartTime; //K type thermocouple Adafruit_MAX31855 thermocouple(Pin_MAXCLK, Pin_MAXCS, Pin_MAXDO); byte state; byte beforestate = 0; byte temp[256]; byte temp_cnt; byte TargetFlag = 0; unsigned long HeatingTime; void GetTemp() { double c = thermocouple.readCelsius(); double inter = thermocouple.readInternal(); if (!isnan(c)) { Temp = c; temp_cnt++; temp[temp_cnt] = (byte)(c/2); }else{ Serial.println("error get temp"); } return 0; } void SetTemp() { TargetTemp = Profile[state][0]; windowStartTime = millis(); } void ControlSSR() { if (0 < state && state < 5) { if(TargetTemp > Temp){ digitalWrite(Pin_SSR, HIGH); } else { digitalWrite(Pin_SSR, LOW); } } } void DrawState() { String str_num = String(state,DEC); String str = String("State:" + str_num); u8g.drawStr( 0, 20, str.c_str()); if(TargetFlag > 0){ str_num = String(Profile[state][1]-(millis()/1000 - HeatingTime),DEC); str = String(str_num + "s"); u8g.drawStr( 64, 20, str.c_str()); } str_num = String(temp[temp_cnt] * 2,DEC); str = String("Temp :" + str_num); u8g.drawStr( 0, 40, str.c_str()); str_num = String((Profile[state][0])); str = String("SetTemp :" + str_num); u8g.drawStr( 0, 60, str.c_str()); } void DrawGraph() { //Required firstPage int i; for (i = 0; i < 256; i++) { u8g.drawPixel(255-i, 64-temp[(temp_cnt + i) % 256]/2); } } void RefreshLCD() { u8g.firstPage(); do { switch (state) { case Wait: DrawState(); break; case Heat1: case Preheat: case Heat2: case Reflow: case Cool: if (millis() / 2000 % 2) { DrawGraph(); } else { DrawState(); } break; } } while ( u8g.nextPage() ); } void CalcHeat(){ if(TargetFlag){ //一定加熱 if((millis()/1000 - HeatingTime) > Profile[state][1]){ TargetFlag = 0; state++; SetTemp(); } }else{ if(Profile[state][0] < temp[temp_cnt]*2){ TargetFlag = 1; HeatingTime = millis()/1000; } } } void setup() { // put your setup code here, to run once: Serial.begin(9600); //ピンモード pinMode(Pin_SSR, OUTPUT); pinMode(Pin_BTN_Start, INPUT_PULLUP); //LCD u8g.setColorIndex(1); u8g.setFont(u8g_font_8x13r); state = 0; } void loop() { beforestate = state; GetTemp(); switch (state) { case Wait: if (digitalRead(Pin_BTN_Start) == LOW) { //Start! state++; SetTemp(); TargetFlag = 0; Serial.print(" Next Heat1 Stage"); tone(Pin_Buzzer,1500,100); } break; case Heat1: CalcHeat(); break; case Preheat: CalcHeat(); break; case Heat2: CalcHeat(); if(beforestate != state){ tone(Pin_Buzzer,1000,200); } break; case Reflow: CalcHeat(); if(beforestate != state){ tone(Pin_Buzzer,1500,1000); } break; case Cool: if(beforestate != state){ tone(Pin_Buzzer,1000,1000); } break; } ControlSSR(); RefreshLCD(); delay(100 - millis() % 100); }
Let's リフロー!
はんだペーストを基板に載せてその上に部品を載せる
小さいパッドにはんだペーストを載せるのはなかなかきつい
そして作ったリフロー炉に入れれば
はいできあがり、光らない…。1個だけ光らない…。
LEDチップの端子と基板は導通が全てあるけど光らなかったので
もともとLEDチップが死んでいたのかなとか考えた
実装する前にちゃんと動作するか確かめるためのものが
必要だということがわかりました
次回はユニバーサル基板で実装しようと思います
ハイローズ(Hi-rose) オーブントースター HR-T121
- 出版社/メーカー: 廣瀬無線電機
- メディア: ホーム&キッチン
- この商品を含むブログを見る
K型熱電対温度センサモジュールキット(SPI接続)MAX31855使用 5V版
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- この商品を含むブログを見る
ESP-WROOM-32の開発キットを購入
ESP-WROOM-32とは
一世代前のESP-WROOM-02ではWi-Fiの通信ができるマイコンでなんと550円!
コレでさえ破格なのにプラスBluetoothの通信までできて
700円というのがESP-WROOM-32
今回はこちらを購入しました
akizukidenshi.com
秋月電子通商で販売されているモジュールで
とりあえず触るにはおすすめな感じのやつです
ドライバを入れる
まずは既に入っているファームウェアでATコマンドを叩きたい
microUSBケーブルで接続するも
挿しただけではmacOSでは認識してくれませんでした
このボードに搭載されているシリアル変換のチップは
よくあるFTDI社のではなくSillicon Labs社のCP2102でした
メーカーのサイトを探してドライバを導入
jp.silabs.com
ここの「Macintosh OSX」用のファイルをダウンロードして
インストールすれば無事認識されました
ATコマンドではなくsscコマンド
いままではATコマンドを利用していたが
今回はsscコマンドを使わなければいけないみたいです
今の状態はこのコマンドで確認できます
op -Q
起動時はモード2でAPモードでした
モードは
1:STAモード
2:APモード
3:STA+APモード
の3種類あります
op -S -o 1 sta -S sta -C -s <SSID> -p <PASS>
子機モードにする
周辺のAPを探す
APに接続する
これで無事にAPに接続することができました
今後いろいろ使って行きたと思います