工学男子の日常

モノづくりが好きな男子の日記です。

マスターシリンダーを交換した話

ハンドル周りを壊しました。

またです。

ハンドルばっか何度壊すねん、という話です。

 

市内からの帰り道にカーブが連続する登りがあるんですが、そこの路面がすごい滑るんです。

曲がり切る直前くらいにアクセルをガバッと開けると250ccのVTRでもリアがスライドできるんですね。

楽しいのでよく遊んでたんですが、ついにコケました。

カーブの終わり、あっ滑った、と思った瞬間に股下からシートが抜けていきました。僕は路面に膝をつき、車両は右側に倒れエンジンスライダーを軸に水平に180°回転しました。数秒でエンジンカット(ECU賢い)。

やべぇと思いながら立ち上がって後続車に手を振りアピール。

「大丈夫ですか!!」と後続車の方。

「大丈夫です!!」頭が回ってない僕。

でもなぜか妙に冷静で、ガソリン等の匂いがしないことを確認、キルスイッチをカチカチして再始動し安全なところまで退避します。

 

夏でも長袖長ズボンを堅持していたのが幸いし、身体は無傷でした。

車体の方はというと、ブレーキの軸を保持するパーツが折れてました。

f:id:kogakudanshi:20210822170938p:plain

 

あとメーターの基部が折れてました。

 

kogakudanshi.hatenablog.jp

 ここで交換したところです。

例によって仕方ないので直します。

マスターシリンダー

マスターシリンダーは純正(45510-KEA-006)だとアセンでしか交換できないらしく1万4千円くらいです。

貧乏なのでもっと安いのがないか探します。

www.webike.net

ありました。というかVTR250に適合するマスターシリンダーあんまりありません。

たぶんそういう方向にカスタムする人がいないんだと思います。

クラッチレバーに合わせてシルバーをチョイス。

タンクが別体になって、レバーにアジャスターもつくので全体ではアップグレードです。

 

フルードは何の面白みもなくホンダのDOT4を選択。

www.webike.net

そのほかにホームセンターでゴムチューブを購入、なぜか家に転がっていたプラスチック注射器、その他各種工具とウエスとか新聞紙を準備しました。

 

取り外し

まず元のマスターシリンダーを取り外します。

ブレーキフルードが金属に付着すると爆速で錆びるので養生はしっかりしましょう。

f:id:kogakudanshi:20210822172101p:plain

蓋のネジを舐めないよう注意して開け

f:id:kogakudanshi:20210822172203p:plain

内蓋を取り外し

ダイヤフラムを取り外して中のフルードを注射器で吸い出します。

 

続いてバンジョーボルトを緩めますがかなりのトルクが必要です。

ワッシャが左右でかませてあったのでなくさないように注意。

このタイミングでミラーを外していますが、ミラーのアダプターもここで外すべきでした。

ハンドルに固定してるネジを緩めて取り外します。

思いっきりダラダラ漏れてますが、どうせ使わないので無視します。

取れました。まだミラーのアダプターがついていますが、固着していて外すのが大変でした。最終的にマキタのインパクトをフル充電して全力回転で外しました。

あと車種メーカーによって違うかもしれませんが、ここのネジは正ネジでした。

組付け

逆の手順で新しいマスターシリンダーを組みつけます。

タンクを固定するボルトが六角穴だったんですがなかなか使わないサイズだったので前もってチェックしておくといいと思います。

エア抜き

まぁこの辺はいっぱい記事があるのでそっちを参考にしてください。

ホースつないで

フルード入れて

ブレーキ握って、ネジ緩めて

あわあわ~

最終的に30分ほど格闘してエア抜き完了しました。

最後の数分まで全く硬くならなかったので「どこか漏れてるんじゃないか!?
」と不安になりましたが大丈夫でした。

フルードはまだキレイですね。

基準線の間までフルードを補充してダイヤフラムを入れ蓋を閉めます。

忘れずに配線類も元通りにしましょう。

作業終了!!

若干レーシーに…なってないですね。

ミラー位置が左寄り下がったのと左にスマホホルダーなど付いているので非対称感があります。

まぁとりあえず動けばいいんです。

以前より若干レスポンスも改善した気がします(たぶん気のせい)。

 

というわけで次回、メーターケース修理に続きます。

STM32F103を使った自作基板にSTM32duinoのファームウェアを焼いてArduinoIDEからLチカする話

タイトルで全てです。

 

kogakudanshi.hatenablog.jp

 このあたりで作った自作のデータロガー基板をArduinoIDEで開発できるようにします。

前提条件

オリジナル基板は完成しているものとします。当然ですがSTM32F103が載っていないといけません。

その他に

  • BOOT0ピンがスイッチ、ジャンパなどでHIGH,LOWが切り替えできるようになっている
  • 8MHzの水晶発振子が実装してある
  • SWDCK,SWDIOピンが引き出してある
  • USB端子が適切に実装されている(D+,D-が接続してありD+が1.5kΩでプルアップしてある)

ことが必要です。基本的にBluePillと呼ばれるSTM32F103C8T6開発ボードか秋月のSTM32開発ボードの回路を参考にするといいと思います。

BOOT1は一応関係ないはずですがプルダウンしておくと謎の不具合が減る気がします。

今回使用した基板はサークルのデータロガーとして製作しているものでSTM32F103RCT6が載っています。普段はCubeIDEで開発してST-Linkで書き込んでいますが基板の動作確認などが手軽にできるようにSTM32duinoに準拠した仕様としています(実はmbedも動くとか動かないとか…)。

ツールの用意

ST-LINK utilityはSTMicroelectronicsのホームページからダウンロードできます。

3つ目はこちらからダウンロードしてください。

github.com

Zipファイルを解凍してArudino-STM32サブフォルダを<ArduinoIDEのフォルダ>\hardware\に追加しといてください。

4つ目はArduinoIDEのボードマネージャーからダウンロードしてください。

手順としては

https://ht-deko.com/arduino/stm32f103c8t6.html

の「ST-Link で STM32duino ブートローダーを導入してみる」を参考にしています。

 

上記のツールの他にUSBのみで書き込みを可能にするためのブートローダーを

github.com

からダウンロードします。最後のアルファベットと数字は内蔵LEDのピン番号です。

BluePillと同じならPC13ピンがLEDなのでgeneric_boot20_pc13.binをダウンロードします。

ファームウェア書き込み

ST-Link utilityからブートローダーを書き込みます。

f:id:kogakudanshi:20210723003827p:plain

引き出してあるSWDCKとSWDIO、GNDを接続します。スイッチやジャンパでBOOT0をHIGH状態にして電源を入れると書き込み待ち状態で起動します。バッテリーやUSBで起動してもいいですが上の写真のようにST-Linkから3.3Vを供給することもできます。

 

ST-Link Utilityを起動してConnectを押します。きちんと接続されていればSTM32のFLASHが見れます。ちなみにバイナリが見れるので購入時は0x00が並んでいて壮観です。

Openからダウンロードしておいたブートローダーを開きます。

f:id:kogakudanshi:20210723003647p:plain

こんな感じです。

Vertifyを押して書き込みます。完了したらBOOT0をLOWに戻してファームウェア起動状態にし、再度電源をいれるとUSBからのスケッチ書き込み待ち状態になります。

ArduinoIDEでボードを選択する

ST-Linkを外してUSBを接続します。

ArudinoIDEのCOMポートではmaple miniとして表示されていると思います。これはSTM32を使ったArudinoライクな開発ボードの名残らしいです。

f:id:kogakudanshi:20210723004938p:plain

ボードをGeneric STM32F103Cなどに変更しその他項目を上のように設定します。

ちなみにUpload MethodをST-Linkにするとブートローダーなしで書き込めます(毎回ST-Linkの接続が必要になりますが)。ここではBlinkを書き込んでみます。

通常のArudinoと同様に書き込みボタンを押します。

 

シリアル文字出力なども通常のArudinoと同様シリアルモニタから確認できます。もとのArudinoのI2CやSPIなどはSTM32のI2C1、SPI1などに割り振られています。I2C2,3やTIM3~といったArudinoより充実している機能も追加クラスが用意されていて、STM32のほとんどの機能を使うことができます。

とくにF103C8T6に関してはBluePillのおかげでドキュメントが非常に充実しています。

(ちゃんとレジスタもアクセスできるので最悪そっちからやっても…)

 

今回はSTM32の自作基板をArduinoIDEで開発できるようにする方法を紹介しました。

ArudinoIDEのシリアル文字出力はかなり強力ですし、I2CのセンサーなどもArudino向けのスケッチをコピペすることができてプロトタイピングにはかなり便利です。USBケーブル1本で電源を供給しつつ抜き差しやスイッチ切り替えなしで書き込めるようになるので開発速度がかなり上がります。最低限の部品とLEDを実装した基板にBlinkを書き込んで「おぉ~動いたゾ」とニヤニヤしたりもできます。

 

ちなみにSTM32公式のCubeIDE以外でもmbed互換基板としたり

VSCodeでSTM32の開発するためのメモ(Windows+CubeMX+Makefile+VSCodeでSTM32のデバッグ) - Qiita(フォロワーさんの記事なので紹介させていただきました)

のような方法で開発することもできるそうです。

 

ぜひオリジナル基板がArudinoIDEから動く喜びを味わってみてくださいね!!

3Dプリンタを買った話

かねてよりほしいと思っていた3Dプリンタをついに購入してしまった。

 

大学の施設がコロナで閉鎖されてもうすぐ1年……。

そろそろソフトや回路を作って遊ぶのにも飽きてきたタイミング、iCAN(MEMSセンサを使ったプロダクトの大会)世界大会の賞金が入ったのを機に清水の舞台から飛び降りる気持ちで購入ボタンを押した。

 

 購入したのはこちらのEnder-3。

現在はなくなっているが2万円での出品があったのでケチってそちらを購入した。

レビューが少ないので少し心配だったが結論から言うと杞憂に終わった。

 

 ダンボールから取り出した様子。

パーツは分厚いスポンジを各パーツの形状にくり抜いた中に収められていて、かなりきちんと保護されていた。

 組み立てるとこんな感じ。

一般工学男子なら…というかニトリの家具が組み立てられる人なら余裕で組み立てられる。

印刷可能サイズは200x200x300くらいだがフレームがあるので占有体積は500x500x700といったところ。

小さめのスーツケースくらいのサイズ感。

一度置いてしまうと移動に困るかと思ったが、幸い各パーツがアルミフレームでがっちり固定されているので上部フレームを持ってぶら下げて運ぶことができた。

 印刷してみる。

特に設定は変更していないがなかなかの精度で印刷されている。

……と思ったがやはりセッティングは必要らしい。

 セッティングについてだが付属のプレート表面がかなり優秀なので一層目の定着によく使われるマスキングテープや糊は必要なかった。

プレート下部四隅のネジを回すことでノズルとプレートの距離が調整できるのだがむしろこちらのほうが重要。

なるべく薄い紙を用意してカリカリと少し引っかかる感触になるまでノズルをプレートに近づけ、四隅とも同じ感触になるように調整する。

ここを基準に0.1mm単位でZ軸方向に積み上げていくので、わずかでも距離が異なると浮きが発生する。

温度設定はフィラメントによってお好みだが私の使っているフィラメントではノズル200℃、ベッド60℃で安定している。

 

ちなみにつかっているのはよくわからんブランドのAmazonで一番安いやつである。

このあと部室に1年放置されたフィラメント(購入当時は↑より更に安かった)も印刷してみたが時折気泡が破裂して表面が荒れるくらいだったので、湿度に関してはそこまで神経質になる必要はなさそうだ。少なくともPLAに関しては。

 

セッティングではないが届いたままの状態ではガイドローラーがX軸、Y軸ともキツめに締め込んであるので偏心ナットを少し緩めてやると良い(そのままだと動作時にローラーが削れてしまっていた)。

 

しかしいつまでもちゃぶ台に神棚ばりに鎮座させておくわけにも行かないので、TLのオタク達が絶対の信頼を寄せるアイリスオーヤマのメタルラック(ワードローブタイプ)を発注する。

 

 これにオプションのパンチングプレートを追加して…

 

 うーん工場感が凄まじいぞ。

実際この方法だと複数カラー、素材のフィラメントを即座に交換できるので便利なのは間違いないのだが。

もともとそのスペースに置いてあったカメラの機材を収納して動作試験を行う。

 無機質な部屋に少しでも有機物を、と置かれた造花の鉢植えが涙を誘う。

 肝心の精度に関してだが特に問題なし。

さすがに一桁万円後半の3Dプリンタに比べれば劣るが2万円でこれだけできれば問題なかろう。

思うに3Dプリンタに関して安いから〇〇がダメだ~と言っている大体のケースは調整やセッティングを怠っているか、3Dプリントに向かないものを印刷して文句を言っているケースが多いように感じる。

今回購入したEnder-3は安いながらも最低限の設定項目は揃っており、プレートの調整もとても良くできている。きちんとセッティングをすれば必ず値段を遥かに超えた働きをしてくれると思われる。

 

というわけで3Dプリンタを購入した顛末だ。

購入してから1ヶ月くらい数日おきに何かしら印刷して組み合わせるくらいにハマっている。

サークルの部品の試作も家でできるようになったし、何より学校の設備では不可能な48時間印刷のような事が可能になった。

たった2万円分、ラーメン30杯分でこれが手に入るなら安いものである。

購入を迷っている工学男子、女子の各位は絶対公開しないのでぜひ買ってください。

STM32CubeIDEでprintfをシリアル通信に出す方法

タイトルのままです。

ロケット電装の基板の開発をしているのですがprintfあるとなしでは効率が大違いです。

今回の自作基板には電源供給兼Arduinoファームウェアを載せて使う用のUSBポートが実装してあるので、こちらを使えばUSBケーブルとSWDの書き込み線だけで開発できます。

GPSにも通信モジュールにも使う貴重なUARTをデバッグのために引き出すのを避けたいというのもありますが。

 

注意点としてUSBは非同期なので基幹部分に若干の変更が入るらしく、Windows側からCOMポートを開いてあげるまで停止するなど、通常と異なる動作をするようになるのでデバッグが済んだらUSBはオフにするといいかと思います。

 

またハードウェアに関してですが、基板を自作する場合DP(+)端子の配線を1.5kΩでプルアップしないとUSB機器としてPCが認識してくれないので注意してください。またUSBを使用する場合外付け水晶発振子によるHSEが必要ですので8MHzなどのクリスタルを実装してください。

 

1.CubeIDEでUSBにチェックを入れる

そのままです。

f:id:kogakudanshi:20210316195120p:plain

パラメーターの変更はありません。

2.USB_DEVICEからVPCを選択する

f:id:kogakudanshi:20210316195232p:plain

ここもパラメーターの変更はありません。

VCPとはVirtual Port COMの略で仮想COMポートのことです。

仮想なのでArduinoで必要だったボーレートをPC側で指定する必要がありません。

またCommunicationDeviceClassという呼び方もされていてライブラリ内ではCDCの略称で使われています。

3.クロックの設定をする

f:id:kogakudanshi:20210316195615p:plain

赤線のUSBのところが48MHzになるようにクロックの設定をします。

8MHzのクリスタルを使った場合PLLで9倍してUSBプリスケーラで1.5倍するといいかと思います。

4._write()関数を定義する

main.cなど目の届くところに"usb_device.h"をインクルードして以下の関数をどこでもいいので記述します。

int _write(int file, char *ptr, int len)
{
  while(CDC_Transmit_FS((uint8_t *)ptr,len) != USBD_OK);
  return len;
}

どこからこんなのきたんだ、宣言がないじゃないかと思うかもしれませんがここにあります。

f:id:kogakudanshi:20210316200930p:plain

__attribute__でコンパイラにこの関数をweak属性に指定して宣言しています。

これはマイコン等ではよく見ますが一般的なソースコードではあまり見ない機能です。

これによりweak属性がついていない先程書いたほうのコードが優先されてコンパイルされます。

 

関数の中でやっているのは見ればわかると思いますが、文字列ポインタと長さを指定して成功するまでCDCで送信を試みています。

ネット上ではwhileループしない方をよく見るのですが高速で出力を繰り返すと文字列が切れがちなのでUSBD_OKが帰るまで待機したほうが安心です。

 

実はこの_write()はprintf()やpuchar()などの標準入出力の出力関数です。

printf()でフォーマットやエスケープシーケンスの処理をした文字列がこの関数に流れてくるわけです。

そのためHAL_UART_Transmit()を使えばUARTに、HAL_SPI_Transmit()を使えばSPIに標準出力を流すことができます。

もちろん_read()もあるのですがあまり使わないのでここでは扱いません。

 

これでprintfした文字列がPCでシリアルモニタで見れるようになりました。

teratermなどでは文字化けする内容がArduinoIDEのモニタでは見れたりすることもあるので文字化けしたときは試してみてください。

CD125Kのクラッチを交換した話

CD125Kのクラッチ板が限界だったので交換しました。

CDやカブの系列のエンジンはキックがクラッチを介してクランクシャフトに伝わるのですがそれが滑るようになったり、少し回した状態から2速に入れようとすると滑ってオーバーシュートするようになっていたので早々に交換したいと思っていました。

C92のクラッチ板が流用できるらしいのですが厚さがC92用のものの方が薄く、プレートを追加するなどする必要があります。

一応それも仕入れてはあるのですが、今回はヤフオクで落札してヘッド載せ替えに使った部品取り用エンジンからクラッチ板を移植します。

クラッチ板の取り出し

部品取り用エンジンの右カバーを開けます。

画像

奥側の丸がクラッチアセン、手前の丸がオイルポンプでクラッチ板を外すにはオイルポンプを外す必要があります。

手前のパーツはハマってるだけなので引っ張って取り外します。

クラッチ板をおさえている4箇所のボルトを外し、バネなどを取り外すとクラッチ板が取り出せるようになります。

画像

取り出したクラッチ板です。

部品取り用エンジンのクラッチ板もあまりいい状態とは言えませんが現状よりマシなのでこれで交換します。

オイル抜き

カバーを開けるのでオイルを抜きます。

f:id:kogakudanshi:20210219033804p:plain

ドレンから排出されたオイルです。数十kmしか走っていないので各部が劣化してすすやブローバイがひどいんだと思います。

交換

同様の手順でカバーを開けクラッチ板を先程外したものに入れ替えます。

画像

本来ならトルクレンチで締めるべきですが持っていないので手感覚です。

こういうところがあるのであまり長距離は走れず攻めた運転もできません。

 クラッチワイヤーを確実に連結、分離ができるように調節します。

点火時期調整

せっかくオイルを抜いたのでヘッドを載せ替えたときに横着した点火時期調整を行います。

画像

ジェネレーターのFの位置でポイントが離れるようにするだけです。

ちなみにここを少し前後させると出力特性が変わったりします。

オイル交換

画像

抜いたオイルの分を交換します。

オイルキャップには10W-40の指定がありますが元の所有者のじいちゃんからは10W-30という指示があったので10W-30を入れます。

あまり変わらないような気もしますけど。

暖気と試運転

 

適当に暖気を済ませ、減った分のオイルをオイルゲージを見ながら補給して近所で試運転をしました。

クラッチはまだ少し滑りますが多少改善したような感じがあります。

交換前はクラッチワイヤーの調整を使い切っていたのですがそれがなくなったのでそれなりに厚みが増したんだと思います。

 

特に難しい作業もなくクラッチ交換が終了しました。

そろそろCD125Kの作業に関しては慣れてきて、マフラー外しを含む今回の作業でも全部で1時間ほどで終わることができました。

 

こんどはAliexpressで購入した2千円のキャブを取り付けてみようと思っています。

 

追記:

作業自体が大変すぎたので記事にできていませんでしたが、実は前記事↓

kogakudanshi.hatenablog.jp

 のあとにエンジンをオーバーホールしました。

更にその後走行中にカムシャフトが焼き付いたのでヤフオクで同型のエンジンを購入しヘッドを入れ替えました。

写真枚数がかなりあるので記事にするモチベーションがわかないし、需要もないと思っていますが読みたい方はコメントいただければ頑張ってまとめます。

ロケット電装の作り方(7)

前回→ 

kogakudanshi.hatenablog.jp

 2.7 評価


電装が全て出来上がってから評価を行うのではなく、回路が完成したら回路の評価、
ソフトウェアが完成したらソフトウェアの評価というように細かいステップごとに
行うとよい。製作と評価は歩くときの右足と左足のようなものであって、問題がある
ところは改善してさらに評価を行う。評価には完成した製品に対する評価と製作の過
程に対する評価がある。


2.7.1 完成した製品に対する評価


実際に運用する環境に近い状態で動作させてみて、各機能が適切に動作する
かを確認する。例えば電装からパラシュートを操作するロケットであれば、正し
く発射を検知して正しいタイミングで開傘するかを確認する。また 1.3 目標と優
先順位で述べた観点から評価を行う。加えて可能であれば想定される環境から
外れた状態での試験も行う。猛暑の日中でも排熱が十分であるか、センサが外れ
た、故障した場合にきちんと対処できるか等である。これらの試験を行うことで
幅広い環境で運用することができるようになるだけでなく、想定される環境に
おいてもより高い信頼性を確保できる。


これらの試験で完成した製品に問題があった場合、打ち上げまでまだ時間が
あれば適切な段階まで戻って製作手順を繰り返す。ハードウェアでは急な設計
変更は困難を伴うので各ステップを慎重に実行するとともに、問題点を早急に
潰していかなければならない。例えば基板作成なら基板が完成した時点で各種
評価を行って製作の最終段階で問題が発生するのを避けるようにする。


2.7.2 製作の過程に対する評価


これはどちらかというと次に電装を作成するときのための作業である。製作の
過程において問題はなかったかを確認する。製作の途中で失敗した、失敗しそう
になったという情報を記録しておくことで次回、または別の人が作業に臨む際に
事故を未然に防ぐことにつながる。また製作過程で資金、時間、人員に無駄が発
生していなかったかをチェックする。

 

ここからの話はあくまで私の所属している団体での話です。


3 今後実現したいこと


3.1 点火装置の改良


現在使用されている点火装置は AC100V インバータにネオン管用 1kV 高電圧発生
機を使用したものである。これを軽量でさらに信頼性の高いもので置き換える。詳し
くは燃焼班の資料を参考にしてほしいが、イグナイタと呼ばれる端をカットした 2 軸
ビニール線の端部でアークを起こす回路を作成すれば良い。GSE で使用されている
鉛蓄電池を電源に使用するのが現実的であろう。昇圧回路としては DC-DC コンバー
タ、高周波トランス、イグニッションコイル、コッククロフト・ウォルトン回路など
が考えられる。


3.2 無線 GSE


現在使用されている有線での GSE 制御を無線に置き換える。通信ケーブルの敷設、
収納が不要になるので荷物が減る、展開時間の削減といったメリットがある。点火装
置もそうだが燃焼班の機材は信頼性が特に重要である。無線が不調の場合に有線で
の使用もできるようにしておく必要がある。また作業者が間違いを起こしにくい、起
こせない、間違っても事故にならない設計をする必要がある。例えばそれぞれ配線の
色分け、配線を間違うと刺さらない端子、逆接防止回路などである。


3.3 冷却


電子回路に電流を流すと多かれ少なかれ熱を生じるが、小型のマイコンなどを開放
空間で使用している間は問題になることは少ない。しかし酷暑の日中の打ち上げとな
った 2019 年能代の電装では熱でカメラが停止する事例が生じた。筐体という密閉空
間に置かれていたこと、機体外装が黒であり太陽光を吸収しやすかったこと、シーケ
ンスが遅れたことなどが原因であると見られている。熱を抑える方法としては消費電
力の小さいマイコンを使う(処理能力とトレードオフになるが)、電力伝達、電圧変
換のロスを減らす(三端子レギュレータでは入力と出力の差が大きいほど熱を生じる)
などが挙げられる。熱を排出する方法としては機体のカプラー等をヒートシンクとし
て熱を逃がす、冷却水を循環させる、ペルチェ素子などが考えられる。


3.4 アクティブ姿勢制御


空中で機体の姿勢を能動的に制御する技術のことである。フィンや機体形状によ
る安定はパッシブ姿勢制御と呼ばれる。アクティブ姿勢制御の手段としては航空機
のような動翼を用いる方法とロケットのような推力を用いる方法がある。空中で能
動的に姿勢を制御できるようになると、パッシブより広い範囲で安定性を獲得でき
るだけでなく、飛翔中に軌道を変えて効率よく高高度を目指したり、放出物の安全な
射出(パラシュート、CanSat 等)、内蔵カメラでの安定した撮影をしたりすることが
可能になる。しかしこの技術は失敗したときに意図しない方角への飛翔や空中で不
安定化など事故が発生する可能性が高い。実験も大規模になるため実現は非常に困
難であろう。

ロケット電装の作り方(6)

前回→

kogakudanshi.hatenablog.jp

2.6 作成


設計が完了したら実際に電装を作成していく。定められた製作期限がある場合は
基板、ソフト、筐体の優先順位で作成していく。基板が完成しないとソフトウェアの
テストができない、回路寸法が確定しないと筐体寸法が定まらないためである。


2.6.1 基板作成


基板にはユニバーサル基板と PCB 基板の 2 種類がある。PCB 基板は配線密度
が高く小型軽量化しやすい、自分で配線をする必要が無いなどの利点があるが、基
板作成ソフトの勉強が必要とか配線を途中で変更できない等の理由で初めはユニ
バーサル基板を利用することを勧める。


2.6.1.1 ユニバーサル基板


ユニバーサル基板とはガラスエポキシ製の板に多数の穴が開けてあって、
穴の周りにランドという銅箔をつけたものである。穴と穴の間隔は 2.54mm
(0.1 インチ)となっていて、表側からリード部品の端子を差し込んで裏側
からハンダづけして固定し、スズメッキ線やポリウレタン線(UEW 線)で
配線していく。

f:id:kogakudanshi:20201119120522p:plain

ユニバーサル基板とスズメッキ線による配線

図はユニバーサル基板を用いて作成した基板の裏面である。銀色の導
線がスズメッキ線である。スズメッキ線は表面が被覆されていないので別
の導線や金属に触れていると意図しないところに電気が流れてしまう。方
眼紙などに書き込んで、どの部品をどこに配置してどう配線すれば交差し
ないかを考えてから配線を始める必要がある。


スズメッキ線以外の配線材料としてポリウレタン線がある。これは導線
の表面をポリウレタンで薄く被覆したもので、ハンダ付けをしたところだ
けが被覆が溶けて導通するようになるので配線を交差できる。

f:id:kogakudanshi:20201119120603p:plain

ポリウレタン線による配線

図はスズメッキ線とポリウレタン線を用いて作成したユニバーサル基
板の裏面である。この写真でもわかるように、ポリウレタン線はどことどこ
が繋がっているかが確認しづらい(目視でもテスターでも)。またハンダ付
けの際の加熱が不十分だと接触不良になりやすいので、配線が混み合って
きてスズメッキ線ではどうしても配線できないときのみ用いること。


2.6.1.2 PCB 基板


PCB 基板を用いる場合には基板作成ソフトでデータを作成し、専門の業
者に発注することになる。手間はかかるが一度作成してしまえば複製しや
すい、ハンダ付けの際のミスが起こりにくいという利点がある。しかし最大
のアドバンテージは配線密度(一定の面積にどれだけの配線が入るか)の高
さと表面実装部品(SMD:Surface Mount Device)の使用による小型軽量
化、コストカットである。以下では前述の EAGLE で回路図を作成したもの
として一連の流れを解説する。


1  部品配置、配線
回路図から基板図を生成し、部品を適切に配置していく。使用してい
るライブラリが正しいものであれば実物が異なってくることは少ない
が、基板図は平面なので部品の高さや幅などを想像しながら適切に配
置する。配置が完了したらソフトウェアのガイドに従って配線を行っ
ていく。大規模で複雑な基板の場合は自動配線を用いて作成する。詳し
い手順に関してはここに記載するにはあまりに膨大になるため別紙と
する。

f:id:kogakudanshi:20201119120705p:plain

配線が完了したPCB基板

赤いシンボルが表面、青いシンボルが裏面である。背の低い表面実装部
品は裏面に集中して配置してある。図中では小型化のため部品の位置
向きがバラバラだが、できれば同じ抵抗値の抵抗や容量のコンデンサ
は列にして配置するとハンダ付けの際のミスを防ぐことができる。


2  デザインルールのインポート
続いてデザインルールのインポートを行う。デザインルールとは配
線の最小幅やビア(基板上の穴)の径などを指定するものである。これ
は業者ごとに決まっているので、注文サイトに記載してある値をもと
にデザインルールを作成する。業者によっては EAGLE に対応したデザ
インルールファイル(.dru)を配布している場合もあるので活用する。


3  ガーバーデータ出力
指定したデザインルールにしたがってガーバーデータを出力する。
ガーバーデータとは PCB基板を作成する機械に入力するデータのこと
で、どこを配線するかというデータや表面に印字する文字のデータな
どが入っている。EAGLE ではこの操作を CAM Processor から行う。
出力したガーバーデータを個別に送信するとか zip ファイルに圧縮し
て送信するとか業者によって入稿方法に違いがあるので注意する。そ
の設定をまとめたファイル(.cam)を業者が配布している場合もある。

 

4  発注
各業者のサイトの指示に従ってデータを入稿して発注する。PCB 基
板作成業者は国内、海外を問わず様々あるが、値段の関係からほとんど
中国のメーカー一択となる。国内では老舗の P 板.com やスイッチサイ
エンス、中国メーカーでは PCBGoGo や FusionPCB、Elecrow などが
有名である。中国メーカーでは 100mm×100mm までは$5 程度が相
場となっており、送料を入れても国内メーカーと比べるとかなり安く
なる。サービス、納期の点でもかえって良かったりする(料金表にはな
いが両面にシルクをつけられないか聞いたところ無料で対応してくれ
た)のでぜひ利用してみて欲しい。ただし 100mm×100mm を超えた
りオプションを指定したりすると国内メーカーと差がなくなるので、
なるべくサイズ内に収める。また値段のほとんどを送料が占めるので
なるべくまとめて発注する。


2.6.1.3 はんだ付け


ハンダづけの仕方などについては電子工作に関する Web サイト等を参照
していただきたい。ハンダづけの技術は数をこなすしか上達の道が無いの
で、電装以外でも電子工作を楽しんでやってみることが必要である。


ユニバーサル基板と PCB 基板で共通する注意点として、極性のある部品
は向きを間違えると危険なのでハンダ付けの前にデータシートを必ず確認
する。また一見ハンダ付けされているように見えても導通していない場合
があるのでハンダ付け後はテスターで導通を確認する。


2.6.2 プログラム作成


基板作成と並行してプログラムの作成を行う。ここでは具体的なソフトや言語
の使用法については記載しない。プログラミング技術に関しては担当者に頑張っ
てもらう他ない。


2.6.2.1 ライブラリ


ロケットの電装では様々な種類のセンサを様々なマイコンで取り扱う。
新しく電装を作るたびに一から書き直していたのでは労力がかかりすぎる。
そこでセンサごとに初期化、読み取り、書き込みなどの一連の処理をまとめ
たライブラリを作成する。同じ言語が使用できるマイコンなら種類が変わ
ってもインターフェース(外部と関わる部分、通信など)を書き換えること
で転用することができる。作成されたライブラリを使用するだけでなく、新
しくライブラリを作成した場合には後述する GitHub などを用いてチーム
と共有する。中身を知らなくても使うことができるのがライブラリの利点
だが、全くなにも知らないままでは問題が発生したときに対処できないの
で、最低限内容を理解しておくことは必要である。


2.6.2.2 タイムアウト


タイムアウトとは一定時間センサなどから応答がなかった場合にそれを
検知したり無限ループに陥らないようにしたりする機能のことである。ハ
ードウェアを扱うロケットの電装では様々な要因でプログラムが無限ルー
プに陥る可能性がある。例えば「センサからの値が来るまで待つ」という処
理をするとき、振動などでセンサが外れてしまっていたらそこでプログラ
ムが停止する。このような場合に備えて例えば「1 秒以内に応答が帰ってこ
ない場合には無視して先へ進む」という動作をするのがタイムアウトであ
る。どれくらい待つかはセンサ次第だが、パラシュート開傘などタイミング
を絶対に遅らせることのできない処理が確実に行えるようなプログラムと
する。


2.6.2.3 ソースコード管理


作成したソースコードは適切な手段で管理する。例えばだれか一人の PC
上に保存されていた場合、その PC が故障、紛失した際に打ち上げができな
くなってしまう。また常に最新版を書き換えて開発していると、途中で戻し
たくなっても戻せなくなってしまう。そこで GitHub などを用いてクラウド
上でソースコードをバージョン管理する。またライブラリや EAGLE の部品
などもクラウドで共有することで、次回別の人が同じ作業をする必要がな
くなる。


2.6.3 筐体作成


設計をもとに筐体を作成する。実際の作業は他班に委託しても良いが、内部
のパーツは基板の設計変更などに柔軟に対応するため班内で作成したほうが
良い。接続部分や外部に接続されるコード類の取り回しなど、機体を作成して
いる班との連携をとって進めていく。


2.6.3.1 CAD


3D の設計図を描くためのソフトを CAD という。基板概形が固まってき
たら CAD モデルを作成し、機体のスペースにきちんと収まるか、電池など
をどのように固定するかを検討する。大規模な工作の無い電子班とはいえ
CAD は最低限扱えるようになっておくべきである。


2.6.3.2 水密


水密は水が侵入しないようにした容器のことである。海打ちで海面に着水
する場合は水密を作成してその中に電装を格納する。これも他班と連携し
て作成していくことになるのだが、注意点として外部に出るケーブルが挙
げられる。基本的に電装設計では回路に水が入ってこないものとして設計
する。しかし機構駆動用のモータの電源、信号線や気圧センサ(水密内は気
圧が変化しないため外部におく)、フライトピンなどはどうしても外部に出
さなければならない。当然着水後は電解質である海水に浸かるので、ショー
トを防止する回路などを備えておかなければならない。またケーブルを出
す穴の部分は浸水しやすいのでケーブルグランドなどを使って適切に防水
する。

f:id:kogakudanshi:20201119120930p:plain

ゴムパッキンとケーブルグランドを用いて防水された水密

次回→

kogakudanshi.hatenablog.jp