3ギガ10センチ

趣味の電子工作をあげていこうと思います

バラのパーツの整理

友人とパーツの整理について話をしたのをきっかけに、バラのパーツの整理方法見直したいなと思い、週末にやってみた話を紹介します。

 

電子工作をしていると、パーツが足りなくなった場合に困るので予備の部品を買っている方は多いと思います。長く続けいていると、いろんな種類の部品が数個ずつ積み重なっていくため、引き出し型のパーツケースで整理しようとすると、引き出しがたくさん必要で場所をとるしコスパもよろしくありません。

これまでは、名刺ホルダを使って整理をしていたのですが、部品の出し入れがやりづらいのと、ページをめくったり、出し入れを行っているときに、他の部品も出てきてしまうという、非常にいけていない状態でした。

 

 

左はまだ上手くおさまっているが、右側はパーツ出まくり

 

ネットで調べると同じようなことで悩んでいる方は多いようで、Redditにはまとめのページがありました。

https://www.reddit.com/r/AskElectronics/wiki/storage/

いろいろな方法がありましたが、自分的に一番良さそうなのは”コイン封筒”なるものを使う方法でした。普通の封筒よりもサイズの小さい、コインを入れるサイズの封筒のようです。Amazonでも売っていたので買ってみようかと思いましたが、まあまあ良い値段です。で、もう少し考えて100均のこれで代用することにしました。

トレーディングカードなどを入れるためのクリアポケットです。材質がポリプロピレンでハードタイプなので、パーツを買った時に入れられているビニール袋のようにフニャっと曲がることなくしっかりしています。実際にパーツを入れてみても、元の形に戻ろうとして部品を挟み込むような力が働くので、外に簡単に出てくるようなことはありません。これはいけそうということで、早速バラのパーツを入れていくことに。

一応袋には粘着シールで口が閉じられるようになっていますが、パーツの出し入れが非常に面倒になるので、あえて閉じない状態で使います。値ごとに袋にまとめて、桁が同じものを束にしてクリップで止め、こんな感じになりました。

値はインデックスで袋の下に表示。

で、これをまとめて保管するケースは、これも100均で売っているSIKIRIシリーズを使いました。便利なので使っている方は多いと思います。

www.yamadakagaku.co.jp

この中の”SIKIRI 3V”が今回のクリアポケットの幅にジャストフィットです。

実際に入れてみるとこんな感じ。ケースの外からも確認できるのでどこにあるかすぐに確認できるのも良いですね。

最後に使っているSIKIRIケース全景を紹介。見た目は圧巻なのですが、下のケースからパーツを取り出すのが大変なので、なんとかしたいとは思っています.....

MAX31855でこて先温度計(製作編)

設計完了したので実際に組み立てていきます。

買い置きしてあった小さめの黒のユニバーサル基板に実装していきます。サイズが小さめなので1枚だと全部のらないので2階建てにします。

左が1階、右が2階

重ねるとこんな感じ

2階にタクトスイッチがついていますが、押すとMAX HOLD モードになるようにしました。

 

ファームウエアはArduino IDEで。

MAX31855の読み込みはライブラリも公開されていたのですが、Flashが16kBしかなくすぐにいっぱいになりそうだったので、直接ポートをたたいて読み込むことにしました。コードはこちら。

gistcf7b19f2eacc854ff82c600f09114f9a

コードサイズは10kBくらいになりました。ちょっと大きなプロジェクトだと入らなさそうですね。

 

組み上げて動作確認。センサには何もあてていないので室温を表示しています。だいたいあっていそうですね。

 

では、目的であるハンダゴテの温度を測ってみましょう。

ちゃんと測定できていそうですね。ちなみに、一の桁の小数点が光っていますがMAX HOLDモードの表示。センサにちゃんと熱が伝わらないと正確に測れないようで(当たり前ですが)、はんだを少しこて先にのせてつけると上手くいきました。

 

このあとケースには入れる予定はありませんが、底面の配線が剥き出しなのでカバーをつけるのと、こて先を押し付けると机の上をすべっていくので、ゴム足くらいはつけようかな....

 

 

 

 

MAX31855でこて先温度計(設計編)

前回ははんだごての温度調節器を紹介しましたが、そういうのを作ると実際に温度はどうなっているの?というのが気になるものです。というわけで温度計を作ってみることにしました。

 

世の中にはそういう製品があるのはなんとなく知ってはいましたが、あまりちゃんと見たことはなかったので調べてみました。こちらの製品がスタンダードなもののようです。

https://www.hakko.com/japan/products/hakko_fg100b.html

値段を調べたら、モノタロウで2万円以上していました。いい値段しますね。

測定方式としては熱電対方式で、3つの支柱に釣られたワイヤが支柱の中心1点に集合してそこが熱電対のジャンクションになっており、その部分にコテ先をあてて温度を測定するといったもののようです。

 

熱電対はポピュラーなK熱電対を使っていると思われます。熱電対の起電力を変換するICがあるんだろうなと思って調べてみたところ、さくっと秋月でみつかりました。

akizukidenshi.com

熱電対をICにつなぐと、熱起電力で生じた微弱な電圧を増幅変換して、デジタルデータで温度として出力してくれる優れものです。性能は良いのですが、お値段も良い値段でIC単体で960円、モジュールも売っていますが3450円(!)もします。めちゃ高いじゃないですか。

あと熱電対のほうも調べてみると、単純なトライアングルワイヤタイプは販売終了となっていました。Amazonだと1000円/10pcsくらいです。こちらもいいお値段です。

ec.hakko.com

 

というわけで自作するにしてもちょっと高すぎるので、いつもの通りAliExpressで部品を調達することにします。

どちらもいろいろな会社から販売されていて値段も多少違いますが、あまり安いのも心配なので中間くらいのところを選びました。(ちなみに、今のところ買ってハズレだったことはありません。)送料込みで810円でした。

最近は1週間くらいで配達されます。早いですね。届いたものがこちら。

HAKKOと書いてありますがOEMで作らせているものなのでしょうか?偽物のようなきがしますが(笑)

 

次は使うマイコンを決めます。手元には、Rasp-picoからSTM32、ESP32など大人買いしてたまっている在庫品がよりどりみどりなのですが、今回は単にデータを読み込んで表示をするだけで、複雑なデータ処理は必要ないのでこちらを使うことにしました。

 

あまり見慣れないマイコンかと思いますが、こちらはUIAPduinoなるもので、9月に開催された

nt-tokyo.org

のこちらのブースでいただいたものです。

nt-tokyo.org

CPUは中国のWCH社が販売するRISC-VコアのCH32V003を使っており、売りは何といっても低価格というところです。CPUのチップ自体は20円くらいで購入でき、このボード自体もスイッチサイエンスで290円(税込)で購入できます。教育用に幅広く使ってもらうことを目指して、普及(布教?)のために無償で配っており、なんと2つもいただきました。ということで、いただいたお礼ということでここで宣伝しておきます。(みている人も少ないので大した宣伝にはなりませんが)

興味のある方はこちらのオフィシャルページを。

www.uiap.jp

プログラムはArduinoIDEが使える(ただしWindows版)ので、開発も非常に楽です。基板サイズもArduino nanoより一回り小さいのでコンパクトに仕上がりそうです。

 

最後に、温度表示はどうするかですが、手持ちでの部品でLCDなどいくつか選択肢はありましたが、温度表示するだけなのでシンプルに7セグのLEDにします。5桁というあまりみない桁数のダイナミック表示用LEDを持っていたのでこちらを使うことにします。5桁のうち3桁を使って表示をします。

 

使用する部品も決まったので回路を設計します。いつも通り作りながらのトライ&エラーの設計となりましたが、最終形だけ紹介しておきます。

とりあえず設計編はここまで。次回は製作編を紹介します。

ハンダゴテと温度調節器

今年の夏が暑かったのは関係ないと思いますが、7月に使っていたハンダゴテのヒーターが切れて使えなくなりました。20年以上は使用したので天寿を全うしたということかと。

ヒーター交換してもよかったのですが、せっかくなので新しいハンダゴテに更新することに。USB電源だとか、温度調節機能がついているとか最近のハンダゴテは進化していますが、使いやすさを考えてあえてシンプルで小さめのこちらを選定。

www.goot.jp

新旧並べるとこんな感じです。左が古いほうでこちらもgoot製。

 

ヒーターもニクロムからセラミックヒーターにかわり、昇温もそこそこ早く、ハンドリング性も前と変わらず良い感じで使えていますが、連続して使っているとはんだの酸化が早くちょっと温度が高いかなという気がしてきました。(20Wではあるのですが)

 

というわけで、秋月電子のキットを使ってハンダゴテ温度調節器を作ってみました。

akizukidenshi.com

インレット、アウトレット、スイッチなどをつけて、ホームセンターで買ってきたパーツケースに組み込みます。

上側がIN、下側がOUTで、アウトレットにネオン管をパラでつけて、出力の具合が明るさでなんとなくモニターできます。

ついでにハンダゴテ台もしょぼかったのでこちらに更新しました。

ec.hakko.com

 

組み合わせるとこんな感じ。大きさもピッタリマッチしていて良い感じです。コテはgoot、コテ台はHAKKOとメーカーが違うのでサイズがあうかどうか心配でしたが、ピッタリサイズでした。購入検討中の方は安心して買ってください。ちなみに、古いタイプのハンダゴテは、コテ先固定のネジが途中でひっかかってしまい使えませんでした。(^_^;)

DHO804を帯域幅250MHzにしてみる

昨年の10月にRIGOLのデジタルオシロスコープDHO804を購入して使っています。こちらの機種、低価格で分解能12bitありなかなか良いのですが、設定ファイルを書き換えるだけでDHO924に変身できるとのこと。性能比較表はこちらです。

型号 DHO804(12bit) DHO924(12bit)
サンプル・レート 1.25GSa/s 1.25GSa/s
チャンネル数 4CH 4CH
周波数帯域 70MHz 250MHz
垂直分解能 12bit 12bit
チャンネル数 4 4
最大メモリ長 25Mpts 50Mpts
入力インピーダンス 1MΩ 1MΩ
波形取り込みレート 1,000,000wfms/s 1,000,000wfms/s
価格(税込) ¥58850 ¥125400

周波数帯域幅は70MHzから250MHzにメモリ長も25Mから50Mになります。値段の差は2倍以上。購入したときからやってみようと思っていましたが、メーカーの保証はなくなるのでそのまま使っていましたが、もう1年くらいたつのでそろそろ良いかなということでやってみました。

 

<以下の作業は保証対象外となりますので実施は自己責任でお願いします>

 

⚫︎やりかた

"DHO804 Hack"で検索するといくつか出てきますが、一番わかりやすいのは、こちらのYoutubeです。

www.youtube.com

これをそのままやってみたわけですが、日本語でやり方を紹介した記事はあまりないような気がするので、以下に日本語でやり方をまとめておきます。

 

① ADBのインストール

DHO804はアンドロイドで動いているので、データの書き換えを行うためのADB(Android Debug Bridge)をWindowsマシンにインストールします。ADBは、Android端末をPCに接続し、コマンドラインからデバッグやアプリのインストールなどを行うためのツールとのこと。単にコマンドを送るだけなので、ミニマルな構成のものを使いました。

xdaforums.com

②設定ファイルを変更するプログラムをダウンロード

Rigolオシロスコープの設定ファイルを書き換えるプログラムがGitHub公開されています。ありがたいですね。

github.com

こちらのrigol_vendor_bin.exeをダウンロード。最新バージョンはv1.3です。ダウンロードしたファイルは、”Minimal ADB and Fastboot”のフォルダにおいておいてください。

github.com

③DHO804をLANに接続

本体背面の有線LANで接続、IPは192.168.1.32です。

④ターミナルウィンドウを開き、"Minimal ADB and Fastboot”フォルダに移動。

ここで以下のコマンド(青字)を順に入力していく。

adb connect 192.168.1.32:55555  (adbでDHO804に接続)

adb pull /rigol/data/vendor.bin (DHO804の設定ファイルをPCに落とす)

adb pull /rigol/data/RKey.data (こちらもDHO804の設定ファイル)

  ⇨ファイル名がKey.dataの場合もあるらしい。私はRkey.dataでした。

rigol_vendor_bin -M DHO924 (設定ファイルをDHO924に書き換える)

実行するとこんな感じでメッセージがでてきます。

Rigol 'vendor.bin' encoder/decoder v1.3 - Zelea
-----------------------------------------------------------
0000  CRC32: 3EE59206 (OK)
0004  Length: 196 (OK)
-----------------------------------------------------------
0008  EntrySize: 4
000C  Type: 5 (MODEL)
0010  FieldSize: 48
0014  CRC32: F0935787 (OK)
0018  DataSize: 36
001C  StringLen: 6
0020  String: DHO804
-----------------------------------------------------------
0044  EntrySize: 4
0048  Type: 7 (SN)
004C  FieldSize: 56
0050  CRC32: 9FBFFE13 (OK)
0054  DataSize: 44
0058  StringLen: 14
005C  String: DHO8A***************
-----------------------------------------------------------
0088  EntrySize: 4
008C  Type: 9 (MAC)
0090  FieldSize: 56
0094  CRC32: F4BC37BF (OK)
0098  DataSize: 44
009C  StringLen: 17
00A0  String: ******************
-----------------------------------------------------------
Model: DHO924
SN:    DHO9***************
MAC:   *******************
New "vendor.enc" file has been created
You may rename it to "vendor.bin"
and install it on your scope Rigol partition

ren vendor.bin vendor.old (元の設定ファイルを.oldに変更)

ren vendor.enc vendor.bin (作成された設定ファイルを.binに変更)

adb push vendor.bin /rigol/data (新しい設定ファイルをDHO804に送る)

作業はこれで終了。DHO804を再起動してください。

 

⚫︎確認

menu⇨Utility⇨Aboutでモデル名を確認します

<変更前>

<変更後>:モデル名がDHO924、BW250MHzになっています!

最初のYoutubeではファームのバージョンは1.02となっていましたが、上の画面のとおり1.04でも問題なく変更できました。

 

また、メモリ長も50Mptsになっていることが確認できました。時間軸の設定でMemDepthに50Mが出てくるようになります。

 

⚫︎BW250MHzの実力は?

BW250MHzがどのくらい違いがあるのか確認してみます。発振器としてSi5351Aを使います。PLLで3CH、2.5kHz〜200MHzが出せるすぐれものです。

akizukidenshi.com

測定前にはセルフキャリブレーションを行なってください。

(Menu⇨Utility⇨SelfCal⇨Start)

 

10~150MHzの信号を入れて比較してみます。波形キャプチャしたものを以下にはりつけていきます。(左がBW70MHz、右がBW250MHz)

10MHz

30MHz

50MHz

100MHz

150MHz

 

なまっている波形がスパッと矩形波になるのを期待していたのですが、ぱっと見は大きな違いはないですね。(^_^;)

それでもよく見ると違いはあって、10~50MHzではトップとボトムの部分の形状で細かい変化がBW250MHzに見られます。100,150MHzでは、波形形状は三角波ですが、振幅はBW250MHzのほうが大きいので、帯域幅は広がっているのかなと思います。プローブの帯域幅も150MHzなので、トータルではこんなものなんでしょうか。

広帯域のプローブだと違いが見えてくるのかもしれませんが、そこそこのお値段するのでそこまではやらないかな.....

 

 

 

 

STM32でレシプロカル周波数カウンター(4)

4月くらいからブレッドボード上でちまちま検討していましたが、基板上に組み上げてとりあえず形にしたので、もろもろの情報を記録としてあげておきたいと思います。

 

【回路図/メイン】

  • 入力はCH1〜CH3の3入力
  • CH3はリファレンスクロックでボード上に載せた12.8MHzの発振器出力
  • 入力はアナログスイッチ74LVC4066で切り替え
  • Reset SW、チャネル切り替えSW、レシプロカル切り替えSW
  • SDカードにデータ記録できるようSPIポート

 

【回路図/表示部】

  • TM1640による12桁ダイナミック表示
  • LEDのSeg A~Seg G,DPの順番は、IC側のSEG1~SEG8と逆順
  • ICのGRID1が一番左側の桁に対応

 

【ファームウエア】

Arduino IDE 1.8.15で書いています。

Reciprocal frequency counter · GitHub

 

【メイン基板】

基板は秋月のこれを使いました。

角型ランド両面スルーホールガラスコンポジット・ユニバーサル基板 Bタイプ(95×72mm): 基板・ブレッドボード・ラグ板 秋月電子通商-電子部品・ネット通販

基板の色が黒で見た目かっこいい(個人の感想)、ランドが四角なのでチップ部品の実装がしやすいです。

 

 

【表示基板】

LED表示メイン基板は何年か前に専用基板として作製して眠っていたものを復活。LEDコントローラのTM1640はピッチ変換基板にのせて裏側に小亀状態。メイン基板との接続用に4Pコネクタをつけている。

 


【外観・動作】

メイン基板に表示基板を載せるとこんな感じです。

剥き出しだとかっこ悪いのでパネルをつけます。基板に合わせて販売されているアクリルパネルを活用しました。

B基板用アクリルパネル(アクリル板) 2mm厚(スモーク): 基板・ブレッドボード・ラグ板 秋月電子通商-電子部品・ネット通販

B基板用アクリルパネル(アクリル板) 2mm厚(透明): 基板・ブレッドボード・ラグ板 秋月電子通商-電子部品・ネット通販

表側はスモークにして表示部を浮き立たせます。SWを押せるようにパネル下側の一部分カット。表示基板はパネル側にねじ止めです。

 

表示1桁目はチャンネル番号(この場合、リファレンスクロックのCH3)

表示2桁目は測定モード('d'=ダイレクトモード、’r’=レシプロカルモード)

レシプロカルの時は、STM32ボード上の青色LEDも光ります。

写真はリファレンスクロックの12.8MHzを測定した結果です。データシート上は、12.8000MHzのようですが、基準クロックの精度もそれほど良いものではないので、12.800までしかあっていないです。

 

一応これで形にはなりましたが、ノイズの影響があり測定値が安定しません。(測定器としては大問題です。)ダイナミック表示のTM1640から大きなノイズが出ていますが、それ以外にもいろいろありそう。対策が必要ですが、ちょっと時間がかかりそうです。

このシリーズはこれでとりあえず終了かな.....

TM1640ライブラリ for MicroPython

前回紹介したLEDドライバTM1640はArduinoでコードを書いてますが、友人から「Raspi Pico / MicroPython(Thonny)でやりたい。コード移植できないか」というリクエストがあったので、Pythonでコード書いてみました。前回紹介したゆるプロさんが公開されている記事を参考に(というかほぼほぼそのままですが....)書きました。

try3dcg.world.coocan.jp

 

コードはこちらです。問題なく動いています。

MicroPythonはほぼ初めてですが、簡単にマイコンが動かせて良いですね。インタプリタだから高速で動かすのは難しそうですが。

TM1640 control library for micropython