JP7FKFの備忘録

ヒトは,忘れる生き物だから.

勉強って難しいよねって言う話

ただ考えたことを書き殴る.読み手のことは考えていない.

勉強は2段階か3段階必要な気がする.ひとつはきっかけを作り,知る勉強.
そしてそれを確かめる勉強.確かめて自信になったものが自分のものとなる.

勉強することって難しいなって思った.

そもそも勉強ってなにさということにもなるしなんだこの哲学的な感じは.

いわゆる普通のお勉強って,いくつかの段階に分かれてる気がする.

  1. 知らないことを知るということ.
    無知の知ってやつなんだろうか

  2. 知らないことを知ったときにそれを知ること.
    知らないことを知りたいって思う好奇心みたいなものであったり,ある程度貪欲な姿勢だったり,知らないことに心を惹かれるかとか. そういう動機から,自分で自主的に知りたいから知ろうとしているか,それを実行して実際に知ることができたかとか,理解できたかとか.

  3. 知ったことを確かめるお勉強
    知ろうとして知ったことが本当に正しいかどうか.複数の情報源で確かめたかとか,実験してみたかとか.

  4. 人にある程度の自身を持って教えることができるかどうか.
    これくらいできるようになると,自分がきちんと知って,理解できたなっていうことだと思う. 「学びというのは人に教えることで成就する」ということばをもらったことがある.
    今は,この考え方で生きている.

こういったことを経て,やっと自分で身についた/理解したなって思うことが多いかなと感じている.それだけ.

System workbench for STM32の.runインストーラからのインストール方法 on macOS

前にSW4STM32の.runでのインストールでつまずいて結局jarで入れたとか書いたけど,ちゃんとinstruction読んだらrunですんなりできたので報告.

Installing on MAC OSX

Warning: To run System Workbench for STM32 on MAC OSX systems, XCode is required. To download it, please refer to the Apple developper website (registration as Apple Developer is required).
The downloaded installer is an executable binary file. Your web browser might have removed the execution right of the file. Please set the execution right to the installer file (chmod 755 install_sw4stm32.run then ./install_sw4stm32.run) Launch it with /bin/bash (/bin/bash install_sw4stm32.run)

ということで

$ chmod 755 [.runファイル]
$ /bin/bash [.runファイル]

あとはウィンドウが出てくるので,適切にNEXTとかAGREEとかやってFINISH.

できちんとできてしまうのでした.取説読め案件である.

テクトロニクスのオシロスコープTDS3012Bを修理する話

テクトロニクスのオシロスコープヤフオクで入手した.
DPOなTDS3012Bである.
帯域100MHzの2ch入力品.

一応起動することは確認されて販売されていたが,到着して開封して操作して見ると,HORIZONTAL(時間軸)のつまみがおかしい.何やらどちらに回しても10sec/div等になってしまって思うように操作ができない.うまいこと操作すると(タイミングとか運による),時間軸が拡大されることもあるが,これではストレスが溜まってしまってダメである. なんとか自分で治すことができないかとチャレンジしてみた.

まずは筐体を分解する. コンセントを抜いて,まずは取っ手を外していく.マイナスドライバーで横のカバーを開けるとこんな感じ. f:id:jp7fkf:20171214140128j:plain

中央のトルクスネジを外して,左下の周り止めピンをラジオペンチ等で抜く. すると白い部品が外れてその奥の黒いパーツが回るようになる.これを抜ける位置まで回して引き抜くと取っ手が外れる.これを左右両方やる.この黒いパーツがカバーの固定も兼ねているので,これを引き抜くと外側のカバーも外せるようになる.

背面パラレルポートの下のトルクスネジを外し,コミュニケーションモジュールも取り外す. そうすると背面のカバーがすっぽりとはずれる. f:id:jp7fkf:20171214140157j:plain

勘で分解していく.まずはFDユニットを取り外す. 電源モジュールまわりのトルクスネジを外し,モジュールと接続されているコネクタを全て抜いて取り外す.フレキもあるので慎重に. するとメイン基板が見えてくる. f:id:jp7fkf:20171214140223j:plain

正面付近にあるIF基板にアクセスするためにさらに分解を進める.

液晶との接続ケーブルを慎重に外してIFパネルとのケーブルも外す. 左下の入力モジュールの部分にもトルクスネジが隠れているので忘れずに外す. f:id:jp7fkf:20171214140757j:plain

メイン基板の裏はこんなかんじ.すごい. f:id:jp7fkf:20171214140336j:plain

メイン基板が外れたところ. f:id:jp7fkf:20171214140358j:plain さらに液晶モジュールを外す. シールドと一緒になっているので注意. ここはタッピングで止まっているらしい.

そうするとIFボードが見える. f:id:jp7fkf:20171214140422j:plain このIFボードに異常があるはずだ. 正面から見て右側のコントロールパネル部と左側のボタンユニット. f:id:jp7fkf:20171214140442j:plain
f:id:jp7fkf:20171214140453j:plain
f:id:jp7fkf:20171214140526j:plain

ロータリーエンコーダのはんだ当て直し,チップまでの配線の確認とチップへのはんだ当て直し等行ったが改善せず.信号ラインに問題があるのかと紫のケーブルをチェックしたが問題なし.途中のトランジスタが死んでいるのかと検討をつけたがどうも正常のようだった.最終的にはロータリーエンコーダのチャタリングと推測した.しかしながらこのロータリーエンコーダはそう簡単に手に入るものではないように思えた.よって今回はロータリーエンコーダの信号線とGNDの間にチップセラミックコンデンサを追加しバイパスコンデンサとして動作させ,チャタリングを抑えるような対策を行った. f:id:jp7fkf:20171214140621j:plain この対策の結果,ロータリーエンコーダは正常動作するようになり,HORIOZONTAL軸が思い通りに動かせるようになった.

各種ボタン部分の洗浄等も行い,綺麗に元どおりにした. これできちんと動作するオシロスコープになった.めでたし. f:id:jp7fkf:20171214140640j:plain

STM32/CubeMX/SW4STM32/ST-Linkv2(nucleo)でLチカする話

前回の記事でmacでのSTMマイコンの開発環境構築までを行った.
macでstm32な環境をとりあえず作る

今回は,構築した開発環境でプロジェクトを作成してプログラムを書き,プログラマ(ST-LINKv2)を利用してマイコンチップにプログラムの書き込みを行い,Lチカを動作させるところまでを紹介しようと思う.

前回の最後でDFUでの書き込みを行いたいと述べたが,ST-LINKを使った方が簡単だったので,まずはそちらの手法を述べたいと思う.

STM32CubeMXでコードを生成する

STMマイコンのプログラムを書くにあたって,ペリフェラルまわりの設定を簡単に行えて,それをコードとして吐き出してくれるのがこのSTM32CodeMXである.これを使うと初期設定がとても楽に行えるので,まずはこれで使うペリフェラルの設定を行う.

STM32CodeMXを開いて,New Projectを選択. f:id:jp7fkf:20171214090035p:plain

するとMCUを選択する画面が現れる.今回は秋月でも手に入る,STM32F042K6T6を利用する.PartNumberSearchから型番を選び,チップを選択してプロジェクトを作成する. f:id:jp7fkf:20171214090049p:plain f:id:jp7fkf:20171214090101p:plain

するとPinOutの画面が出る. 左側にはペリフェラルが並んでおり,使いたいペリフェラルがある場合はここで選択して欲しいペリフェラルを有効にする.すると右側のPinOutの画面にも出力/入力ピン等が反映されるようになっている. f:id:jp7fkf:20171214090117p:plain ここではLチカに最低限必要な設定を行う. 適当なGPIPピンを選択してGPIO_OutPutを選択する. すでに色が変化しているところは何かの機能がすでに予約されているピンなので注意する. f:id:jp7fkf:20171214093308p:plain すると選択したピンはGPIO_OutPutとして設定され,ピンの色が緑色に変化する. さらに,ピンの名前はピンを右クリックし,EnterUserLabelから自由に変更することが可能である. f:id:jp7fkf:20171214093415p:plain f:id:jp7fkf:20171214090301p:plain

次にMCUを動かすクロックの設定を行う. Clock Configurationタブをクリックしてクロックに関する設定を行う. f:id:jp7fkf:20171214090401p:plain 問題がなければそのままの設定で動作する. ペリフェラルによってはクロックの設定が誤っていると動作しないものがあるが,このソフトウェアはそのような状況の場合は警告を出し,自動で訂正する機能が備えてある. 今回は内臓クロック48MHzで動作させる.他にもConfigurationタブ等でペリフェラルの詳細設定ができるが,今回は行わない.参考までにUSBでDFUモードとして動作させる時はconfigurationタブでこんな設定をすれば良さそうである. f:id:jp7fkf:20171214090525p:plain

ここまでできたら,Generate Codeアイコンをクリックしてコードを生成するが,初回はsetting画面が出る. ToolChain/IDEは,System Workbench for STM32を使う場合はSW4STM32を選択する.
(出てこなかったらProject->Settingsを開いて設定する) f:id:jp7fkf:20171214090720p:plain OKをクリックするとコードが生成される. これで基本的なコードの生成は完了だ.

WorkbenchでSTM32CubeMXで生成されたコードを開いてLチカコードを挿入!

ここからは,STM32CubeMXで生成したコードをSystem Workbench for STM32で読み込んでプログラムを記述する過程を紹介する. まずは先ほどCubeMXで生成したコードをインポートする. インポートは下記のofficialのサイトが説明をしてくれているので参照する.
OpenSTM32 Community Site | Importing a STCubeMX generated project

Fileからimportを選択する. Existing Projects into Workspaceを選択して,先ほど生成したコードのディレクトリの該当ファイルをopenする. f:id:jp7fkf:20171214090900p:plain

するとimportされ,Src->main.cを見るとこのようになっている. これらがCubeMXで生成されたコードになる. f:id:jp7fkf:20171214090924p:plain

/* USER CODE BEGIN 〜 */

/* USER CODE END 〜 */

という範囲があるがこのBEGINとENDの中にコードを記述していく. この範囲に記述することで,あとでCubeMXに戻って再度ペリフェラル等の設定を変更してCode Generate を再度行っても,この範囲にあるコードは変更されずに残り,ペリフェラルの初期化コード等がキチンと追加されるようになっている.つまりこの範囲外に書いたコードは再びCode Generate すると消えてしまうことになるので注意する.

ここでコードを一瞥してもらうと,下の方にGPIOのinitがあり,先ほど定義したRED_LED等が見える. f:id:jp7fkf:20171214091011p:plain

これらのGPIOを繰り返しON/OFFするコードを追加しよう.

mainループのwhile内に,

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

という記述があるが,この/* USER CODE BEGIN 3 */の下に

HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
HAL_GPIO_TogglePin(GPIOF, RED_LED_Pin);
HAL_Delay(1000);

を追加しよう. f:id:jp7fkf:20171214091048p:plain

これらメソッドは,HAL Driverを使ってMCUのGPIOとDelayを制御するメソッドである. STM32CubeMXをつかうと自動的にHALなコードが生成され,以前のStdPeriphではなく,HALを使ってコードを書いていくことになるらしい.StdPeriphと比べ,HALは抽象化されており,よりオブジェクト指向的な要素が強いようである.これからの開発にはHALを用いることが推奨されているようなので,今回はHALを用いて書いていく.

HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);

はGPIOFのGPIO_PIN_0のOUTPUTを反転させるメソッドである. この辺りの引数に何を入れるかは,先ほど見たMX_GPIO_Initメソッドを覗くことで理解できると思うので割愛する. ピン名には先ほどCubeMXで自分が変更したRED_LEDというPinもLED_RED_Pinという形で指定することができるようだ.

ここまで終了したらBuildをする. とんかちのアイコンをクリックすることでBuildできる. 正しくBuildされるとプロジェクトツリーにBinariesの下に.elfという拡張子でバイナリファイルが生成されているはずである.こいつを次のセクションでMCUに書き込む.

書き込み!

ST-LINKv2をつくる

書き込みをするにあたってwriterを必要とする. 今回はST-LINKv2を使って書き込みを行っていこうと思うが,この書き込み機を買うと結構なお値段となる.今回はSWD方式での書き込みをやっていこうと思うが,SWD方式の書き込み機であれば秋月でも手に入るnucleo boardという開発ボードの一部がこの書き込み機となっており,分離して使用することができる.お値段的にもこちらのほうがリーズナブルなので,今回はこちらのnucleo boardの書き込み機部分(ST-LINKv2部分)を分離して書き込み機に変身させる. とはいっても作業はものすごく簡単で,パキッと折るだけである. 作業自体は下記の記事を参考にすると良いと思う.

NucleoとかいうST-LinkをFRISKケースに入れる - STM32 - Tokoro's Tech-Note
STM32に手を出してみた

あとはピンヘッダ等が邪魔なので取り除く. ジャンパピン部分はジャンパする必要は特にない. CN4という左側の6本のピンヘッダがMCUと接続するピンとなっているので,書き込み機として使いやすいようなコネクタ等に付け替えておくと便利だ. 私は普通のピンヘッダのメスを横につけており,そこからオスオスの延長ケーブル経由で書き込んだりということもできるようにしてある.なかなか便利だ. f:id:jp7fkf:20171214092704j:plain f:id:jp7fkf:20171214092727j:plain 書き込み機の準備はこれで完了である.

チップに配線!

ST-LINKのCN4は上(1番ピン)から下記のようなピンアサインとなっている.

Pin No. Name
1 VDD_TARGET
2 SWCLK
3 GND
4 SWDIO
5 NRST
6 SWO

これらをチップの適切な端子に接続する. 接続するピンに関してはデータシートを参照する.

電源ライン,およびBOOT0ピンの配線も行う. BOOT0ピンはGNDレベルにすることでFlashからロードするモードとなるので,今回はGNDに落とす.

いよいよ書く!

書き込むにはデバイスにあらかじめ3.3Vの電源を供給しておく必要がある.これを忘れると書き込み時にWrong Device Detectedと言われて書き込むことができない.

書き込みを実行するにあたり,Debugのconfigurationを行う. Run -> Debug Configurations を選択し,Ac6 STM32 Debuggingにプロジェクトが設定されていることを確認する.DebugをクリックするとBuildされ,書き込まれる. なお上部のバーの虫のアイコン(BUGだ)でも同様のことができる. f:id:jp7fkf:20171214091450p:plain 書き込みするときのコンソールはこんな感じ.

Open On-Chip Debugger 0.10.0-dev-00275-gd486ac2-dirty (2017-03-06-15:17)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
srst_only separate srst_nogate srst_open_drain connect_assert_srst
srst_only separate srst_nogate srst_open_drain connect_assert_srst
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v23 API v2 M v10 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 0.007890
Error: target voltage may be too low for reliable debugging
Info : STM32F042K6Tx.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
STM32F042K6Tx.cpu: target state: halted
target halted due to debug-request, current mode: Thread 
xPSR: 0xc1000000 pc: 0x08000e74 msp: 0x20001800
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
adapter speed: 4000 kHz
** Programming Started **
auto erase enabled
Info : device id = 0x10006445
Info : flash size = 32kbytes
STM32F042K6Tx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20001800
wrote 5120 bytes from file Debug/led_test.elf in 0.310023s (16.128 KiB/s)
** Programming Finished **
** Verify Started **
STM32F042K6Tx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20001800
verified 4612 bytes in 0.047620s (94.580 KiB/s)
** Verified OK **
** Resetting Target **
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
shutdown command invoked

きちんとSTLINKv2として認識されて書き込みとVerifyができた. 正しく書き込めるとnucleoなST-LINKv2のLEDが緑色に光るようだ. 書き込み機をマイコンから外して,電源ON/OFFまたはリセットをしてもきちんと動く.

f:id:jp7fkf:20171214092958j:plain

これでLチカまで到達できた. Lチカができたということは開発の一通りの流れが理解できたということなので,ここまでくればこっちのものである.あとは自由にペリフェラルを追加して自分の思うままにコードを書くだけだ.めでたし.

ちなみに種々のペリフェラルに関しては下記の記事がとても参考になる. CubeHALでSTM32を使うお勉強 : しろうさぎのblog

References

TDR測定用のパルス生成器を作ってみた話

TDRって.

TDRとはTime Domain Reflectometryの略で,TDR測定というものは,時間領域反射測定ということになる.これで何をしようかというと,ケーブル類の障害点などがわかったりするのだ.なぜそのようなことができるのかというと,ケーブル類にパルス状の電気信号を入力すると,ケーブル内を伝搬する.ここで単一のインピーダンスを持つ同軸ケーブル内で障害があると,インピーダンスが不連続になったりする.このインピーダンス不連続点で,入力したパルスの信号の反射が起こる.この反射を検知し,入力したパルスと反射して戻ってきたパルスの時間差と,ケーブルの速度係数等を用いると,入射端から障害点(インピーダンス不連続点)までのケーブルの長さを求めることができる.

これは実際の通信の現場でも用いられており,例えば世界中に張り巡らされている光ファイバーがあるが,光ファイバーの障害を検知するためにこのTDRが用いられている.これはOTDR(Optical Time Domain Reflectometry)と呼ばれており,電気信号の代わりに,光を入射しその波形をモニタすることで,反射減衰量や,光損失,長さの測定ができるというものである.銅や樹脂で構成されている同軸ケーブル等でも,同じような測定が可能である.

今回は同軸ケーブル等の測定が行える,電気信号のパルスを出力するパルス生成器を製作してみた.

参考にしたのはこの記事である.
Nano Sec Pulser for TDR Measurement: アナログ回路のおもちゃ箱
この記事をもとに,回路図のトポロジはほぼ変えずに作った. 使ったものは,パルス発振器NE555,4回路入りコンパレータNJM2901,ANDゲート74HC08である.これは手近な部品を漁った結果,上記の記事にあるような高速コンパレータ等を用意できなかったことがある.とりあえず手近な部品で作ってみたという感じである. ただ,一つコンパレータの遅延用の抵抗値を変更している.少々高い抵抗に変更をしたので,立ち上がり時間が遅くなる原因になっているかもしれない.ちなみに,このパルス生成機で重要なのは立ち上がりが素早いことなのである.これにより分解能が上がり,より正確に距離を求めることができる.あと,使ったこのコンパレータはオープンコレクタ仕様になっていることに組み上げた後に気づいて発狂した.適当に出力ポートを抵抗を介して電源に接続してプルアップしておいた.

完成したモノはこんな感じ. f:id:jp7fkf:20171110171303j:plain
f:id:jp7fkf:20171110171335j:plain
電源供給用のDCコネクタ,電源SWとLED,出力用のBNCコネクタをケースに取り付け,内部の回路は適当にユニ基盤に実装してホッドメルトで固定している. これで測定を行うとこのような感じになる.
f:id:jp7fkf:20171110171518j:plain
一つ目のパルスと二つ目のパルスが見て取れると思う.この間隔を読み取ると約nsである.この測定したケーブルは1.5mのRG316のSMAケーブルをSMA-JJで2連結したものであり,末端は解放となっている.このRG316ケーブルの速度係数は0.7らしい.
パルス間隔は読み取ると約30nsであるから,これをもとに計算を行うと
length[m] = cvt/2
(ここで,c: 光速[m/s], v: 速度係数, t:遅延時間[s]である.)
から,
0.2998 * 0.7 * 30 / 2 = 3.1479[m]
ということで,BNCの変換ケーブルやら,SMA-JJの長さ等を考えると,ある程度の誤差がありつつも,大体のケーブル長が求められたと思う.

このように,インピーダンスの不連続点が電気的な測定で求めることができるのである. 例えば特性インピーダンス50Ωの同軸ケーブルの先に75Ωの特性インピーダンス同軸ケーブルを接続したりすると,合計3つのパルスが得られ,接続点で振幅が変化したりする.ちなみに末端をショートすると,振幅が逆になったパルスが帰ってくる.これは反射係数が1から-1までであり,ショート状態の場合は反射係数が-1となり,信号の符号が逆転するということを端的に表しているわかりやすい例だと思う.

という感じで,パルス生成器を作って,TDR測定ができることが確認できました.同軸が怪しかったりしたらこいつで測定して修理の目安になったりしてよさそうです.

References

SONY APMスピーカーのエッジ張り替えをしてみた話

身の回りに壊れたスピーカーがあったので修理してみた. スピーカーのコーン部分は,エッジと呼ばれる部品を通して外側のフレームに固定されている. このエッジは,コーン紙を支える役割や,ボイスコイル,コーン紙の振動により生じた音圧のうち,フロント側に出るものとバック側に出るものを分けてやる効果などがあるようだ.これがないと特に低周波でフロント側の信号とバック側に出た逆位相の信号が打ち消しあってしまい,キャンセルされて低音が出にくくなったりしてしまう.

このスピーカーエッジなのだが,素材としてウレタンが多く利用されていたりする.このウレタンは,長期間使用していると経年劣化で加水分解し,ボロボロになってしまい,スピーカーエッジとしての機能を果たさなくなってしまう.こうなってしまった当該スピーカーが以下のような感じだ.中を開けてみると.

f:id:jp7fkf:20171110155217j:plain
f:id:jp7fkf:20171110155404j:plain
f:id:jp7fkf:20171110155322j:plain
f:id:jp7fkf:20171110155449j:plain

完全にウレタンがボロボロになり取れてしまっている.
一方はセンターキャップが凹んでしまっていたので手で曲げて直してやった. f:id:jp7fkf:20171110155816j:plain
曲げ直してあげてこんな感じ.薄いアルミ版か,スズかなんかでできているような気がする.とても柔らかい. ちなみにこのスピーカーはSONYAPMと呼ばれるシリーズで四角い平面の振動板が特徴であるそうだ.今回はこのウレタンエッジを除去し,このスピーカーに合うエッジを自作して交換してみた.

まずは振動板や外側のフレームに残留しているウレタンエッジを綺麗に除去するところから.完全に除去しないと音に影響があるとかそういうのはよくわからないが,交換するのだから前のゴミが残っているのは接着するときにもよくないと思う.なのでできる限り綺麗に掃除してあげよう.掃除には無水エタノールや,カッターナイフの刃とかを使ってあげて,ウレタンエッジを引き剥がしてやる.

さて,ここからが問題である. 高級なスピーカーだとメーカーからエッジ修理キットなどが販売されており,これを利用すると替えのエッジと,接着用のボンドなどがセットになっており,比較的簡単に交換が可能である. しかしながらこのAPMはそのようなものは提供されていないようで,しかも拾い物のスピーカなので,あまり修理にお金をかけたくはない.なのでスピーカーエッジそのものを自作してみることにした.

スピーカーエッジを製作するにあたって,材料は次のようにした.主材料は黒い薄い布を用い,これに液体ゴムを塗布する.流れとしては,まず,エッジとしての形を作るために,3Dプリンタでエッジの型を製作する.これに両面テープ等で布を接着し,形を作った上で液体ゴムを塗布していく.固まったら型から引き剥がし,適当な大きさに切って,スピーカーにボンドで接着する. 人によってはシリコンコーキング剤をシンナーで薄めて塗布していたりするらしい.私は下記の人の記事を参考にしながらやったのだが,この人はシリコンでやっていた.私は手近に液体ゴムがあったのと,水溶性で扱いやすそうであるから液体ゴムを選択した.
APM33W エッジ修理

このAPM スピーカーのフレーム,振動板の大きさを考えて,内寸48mm程度,外寸55mm程度,厚み3mm程度の正方形状のオブジェクトを作成し,各辺に接するような円を作成しなめらかなエッジとなるようにした.言葉だけではわからないので,モデルは以下の画像ような感じ.
f:id:jp7fkf:20171110155944p:plain
こいつを3Dプリンタで出力して型にする. これに黒い布を両面テープで接着して,液体ゴムを塗る. 塗って乾燥を2〜3回程度繰り返し,厚みを調整する.これは好みの暑さになればいいと思う.私はそれなりの形状保持ができる程度の厚みとした. これを実際のスピーカーユニットに適合するように切断して
f:id:jp7fkf:20171110160826j:plain
ボンドで接着をする. f:id:jp7fkf:20171110160927j:plain
見た目はエッジっぽくなった.
ちなみにボンドはこいつを使った. コニシ ボンド Gクリヤースリム #14329 20ml
乾燥したら組み上げ直して,いよいよ音を出す. エッジがボロボロだった時とは打って変わって,低音がしっかりと出力されるようになった.好みでエージングとかやって見ても良いと思う.

というわけで,スピーカーエッジはうまく動いているみたいです.前までは低音が全然出なくて聞くに耐えなかったけど,いまでは問題なく聞けるレベルになっています.めでたし.

References

FCC試験にチャレンジした話

日本でアマチュア無線を楽しもうと思うと,日本無線協会が主催する試験に合格するなどして,1〜4級のアマチュア無線資格を得て運用を開始することが一般的だ.この度米国管理下の土地で運用をすることとなり,米国のライセンスが必要となったことや,もともと米国のコールサインがほしかったこともあって,FCCアマチュア無線試験を受験してみた.その時のあれこれを少しだけ書いておく.

米国アマチュア無線試験(FCC試験)は,実は国内で受験することができる.というのも,すでにFCCライセンスを所持しており,ARRLなどのVECに認定されたボランティア試験員(VE)による試験が行われているからである.この試験員のもと試験を受け,結果を米国に送付し,審査され,無事通ればライセンスゲットということになる.面倒なお役所が主催する試験をわざわざ受ける必要がなく,全国に数多くいらっしゃるボランティア試験員のもと試験を受けるだけでライセンスが手に入るといういかにも米国らしいシステムである.このほうがアマチュア無線人口も増えそうだし日本もこんな感じにすればいいのにとか1mmくらい思っているけど,あんま変わらないか.

受験するにあたって一番めんどくさいこと

受験に際して必要なもので,一番めんどくさそうなのが米国内の住所である.これはもともとは免許を送付したり,お叱りを受けた時にお手紙を受け取ったりARRLのニュースを受け取ったり?するために必要だったが,今ではもうFCCのweb からライセンスのOfficial Copyがダウンロードできるし,免許を受け取るにあたって住所はあまり重要ではない.しかしながらそれ以外の目的で使われることもあるので必要である.海外に知り合い,お友達がいる場合はその住所を借りることもできるだろうし,海外の郵便局に私書箱を借りてそこを使うという手もある.これを用意するのが意外とめんどくさいものだ.

受験できそうならまずはFRNをゲットする

FCC Registration Numberというものをあらかじめゲットしておく.これはVEC Tokyo-VE Teamに詳しく書かれており,これを参考にすれば良い.

いよいよ受験.ささやかな受験体験記.

受験するには各地のVEチームのwebサイト等から受験申し込みをする.セッションの日程が公表されているのが一般的であろうから,そこから自分が受験できそうなセッションを選んで受験申し込みをする.申し込みさえすれば,後は勉強をするのみ.勉強は,ARRLのページにQuestion Poolというものがあり,試験に出る問題はこの中にすべて記載されている.はっきり言ってしまえば,全問題の答えを丸暗記してしまえば確実に合格できてしまうのだ.たとえ理解できていなくても.
Question Pools - ARRL
ここに,Element2から4の問題がある.Element2に合格すればTech.級,Element3まで合格すればGen.級,Eleemnt4まで合格すればExtra級のライセンスを得ることができる.私はこのQuestion Poolの全てのElementの問題を全てプリントアウトしてファイリングした.試験2週間前程度から読み始めたのだが,なかなか苦戦するものである.私は英語が堪能ではないので,まず問題文と選択肢の英語で躓いてしまった.しかしこれは少しずつ辞書を引いたりしつつ問題をこなしていくうちに試験問題のボキャブラリーは溜まっていくもので,問題文を眺めていくうちに英語には慣れた.米国で特徴的な法律関係の問題は,できるだけ頭を素にして,素直に理解するように心がけた.反対に工学系の問題は,自分の知識をうまくmixして問題に向かった.工学の基礎となる物理現象,電磁気学は世界共通であるから,これは自分の理解でほとんど賄うことができた.しかしながら勉強を始めるのが遅かったせいで,試験当日までGen.までの問題しか見ていなかった.

いよいよ試験である.試験に必要なものは15$程度の試験料金,FRNのナンバー,Form 605 Application, 筆記用具,場合によって電卓などである.電卓は関数電卓でない一般的なものであれば利用可能らしい.試験は問題冊子と解答用紙,計算等のメモに利用できるスクラッチペーパーが渡されて実施される.解答は自分の解答を黒く塗るタイプであった.問題用紙にはFRNのナンバーと,米国内の住所を記載する必要があるが,私の試験を主催してくれたチームでは,それらを覚えていられなければ付箋1枚に記載して机に貼り付けることが認められた.私はとりあえずGen.まで受かればいいかと思って試験を受けた.Element2, Element3は意外と問題を忘れてしまっていたりしてかなりドキドキだったが,いずれも合格だった.FCCの試験は受験して解答用紙をVEさんに渡せばその場ですぐに採点してくれるのが大きな特徴だ.その後Element4も受験した.落ちるのを覚悟の上の受験だったが,問題は意外と工学の内容が多い上に,法律の問題もElement3までの法律の雰囲気がわかっていれば解けそうなものであった.工学の内容が多かったことはとてもアドバンテージとなり,普段勉強している電子工学系や,EME等でお世話になっているJT65などの専門的な問題を解くことができたように感じた.受かるとは思っていなかったが,Element4にも合格し,私は晴れて1day Extraとなったのだった.

合格後は

合格すると,CSSEと呼ばれる証明書を受け取る.複写されたものは605application とともにARRLに送付されて審査を受けるようだ.私の場合は5日程度でULSに免許情報が反映された.なんと早いことだろう.日本なら受験して合格発表されるまでに1ヶ月以上?さらに局免を申請して受け取るまで1ヶ月というところだろうか.試験を受験してから電波を出すまでに2ヶ月以上かかることになる.それに対しFCCライセンスは試験を受験してから1週間程度で電波を出せてしまうのだ.米国のこのスピーディーなシステムには非常に感心するところである.

そんなこんなで私は10月にExtraライセンスを手に入れていたのだった.
これがCSCEと呼ばれる証明書. f:id:jp7fkf:20171108105654p:plain
ライセンスはULSからダウンロードできる.またメールでの通知もある. f:id:jp7fkf:20171108110153p:plain

References