ねこにコベイン

にゃーにゃーにゃー

Raspberry Piを使ってArduinoのbootloaderを書き込んだ話

ことの起こり

ASUSのAuraSyncってあるじゃないですか。あのLEDが一斉に同じ色で光るやつ。*1

間違えてあれ対応のファンを買ってから*2、なんとか家のパソコンで使えないもんかと考えて、「PWMってやつで制御するんだったら、Arduino使えばチョロインじゃないのか?」ってえことで、家のお道具箱からAtMega8を掘り出してきた。

これbootloader書き込めばArduinoになるんだろうけど、どうやって書くのか。
ググると「Arduinoを使ってbootloaderを書き込もう」みたいなページがたくさん見つかるが、だからそのArduinoが無いんだってば。*3

*1:一斉に同じ色で光らない方もあります。あっちの方が配線が少なくて簡単なのですがまあいいや。

*2:お酒を飲んだ足で駅前のソフマップに寄ってはいけない。

*3:本当はJapaninoなら持ってるんですけど。

続きを読む

RockPro64の話を少々

RockPro64とは。

簡単に言うとPCIeバスのあるSoC。
メモリは4GBくらいまで、コアは6枚モノまで取り揃えているような書きぶり。
でもPT3のドライバってx86系依存みたいなので、実は思ったような使い道がなかった。
よって持て余してます。

ケースに入れる。

ケースに入れないと使いにくいのでよさげなケースを100均で探しました。*1
上記理由でもうPCIバスは使う予定がありません。
おすすめは和泉化成のこのカタログのp25、No.3191「クリアボックスM」
http://www.izumi-plastic.co.jp/products/pdf/catalogue/CatalogueVol5.pdf
適当に穴を空けて使います。蓋部分には8cmファンが付くように加工しましょう。92mmだとチョット加工しづらい。

とりあえずあると捗る工具を箇条書きします。

  • 差し金(L字型の金属製定規をこう呼ぶらしい。ケガキ用)
  • ケガキ(削る枠を彫る用)
  • 金ヤスリ(仕上げなど。100均の平べったいやつで十分)
  • 養生テープ(削ってる時ほかの面にヤスリがぶつからない用)
  • ドリル(リーマーが通るくらいの径のもの。ダイソーのハンドドリル35mmを2本くらい買っておけば十分。とかいいつつ私は電気ドリル使ってます。)
  • シャーシリーマー(出来るだけ穴を拡げてヤスリで仕上げる面積を減らすため。新潟精機のものでも、ENGINEERのものでもお好きなものをどうぞ)
  • ハンドニブラー(リーマー同様、出来るだけ穴を拡げて手間を減らすため。ホーザン一択。ENGINEER製だとすぐヘタる、けどENG製の方がアタリが柔らかくてイイ気もするなあ。お好みかも。)

半日潰すつもりでチマチマ削れば、まあ普通にケースとして使えるもんができるんでは、とか。
ほか真鍮高ナット(スペーサー、普通に10mmくらいが無難かなあ。)とそれを止めるネジは買わないとケースの役目になりません。
ここまでのものは100均をハシゴして、さいごにホームセンターに行くと全部揃うかな。

あとaitendoのこれの4ピンを買ってファンを繋ぐといいと思います。
★2.5★片側ハウジング付きケーブル★XHP★ - aitendo
このSoCは12V駆動なんで、ファンも12Vのものでも取り回しに悩まなくて良さそうです。
もっと言うとついでにaitendoで赤外線モジュールやRTC、SPDIF、PWMファンを繋ぐ端子も買った方がいいかもしれません。
赤外線リモコン受信モジュール★4個入★ - aitendo
まあ、好みですね。PWMファンとか繋ぐ端子は何を使えばよいのか…aitendoは端子付きケーブルを売ってくれてるのがいいですよね。

OSは

Armbianだと最新カーネルのFocalなんて使えるみたいな書きぶりですが…立ち上がるの遅くねえ?
ちょっとこれ使う気にならないので、定番のayufanの古ーいカーネルのをインストールしました。
でもここからは好みかなあ。

*1:純正を買うという発想が欠けていた。しまった。

調子に乗ってきたので全部乗せffmpegを目指す話

趣旨

前の投稿が長くなりすぎてきたのと、やっぱffplayでmod鳴らしたいなあ、という欲が出てきたのでLinux上でビルドをやってみるテスト。
電源MODの話の方の塗料が乾いていないんで、あっちはなかなか進まないのも理由の一つ。
[FFmpeg] ライブラリ全部入り - Qiitaのヒトがやったのとはだいぶ結果と方向性が違うなあ。*1
ffmpeg脆弱性ガー、みたいな記事を2020.5.25にニュースサイトで見たので注意。

想定の動作環境

Ubuntu20.04、アーキテクチャは…とりあえずx64で*2
個別のコーデックの動作確認はしてませんので、動かないコーデックがありましたら教えてください。

コンセプト(引継項目)

ffmpeg本体以外の野良ビルドはしたくない。
まずはUbuntuにパッケージがあるぶんだけ導入する。

*1:パクリじゃない、と言いたいだけ。

*2:x86なくなっちゃいましたよね。

続きを読む

WSL(Bash on Ubuntu 20.04 on Windows)向けにffmpegをビルドしてみる話

CompilationGuide/Ubuntu – FFmpegを元ネタにWSL1のUbuntu用にビルドするテスト。
20.04出たばかりのWSL2出る直前でタイミングとかすごい悪い気がするが、気にしない。
…WSL2でも動いたな、これ。当たり前か。
あとffmpeg脆弱性ガー、みたいな記事を2020.5.25にニュースサイトで見たので注意。

  • さいしょに
    • 結論(ここを適切にコピペすれば以下は読まなくてよい)
    • 趣旨
    • 目的
  • 元ネタの文書、CompilationGuide
    • 閑話:今後の変更点の見直し
  • 必要なパッケージの導入・ディレクトリの作成
  • 必要なコンポーネントのビルドと導入
    • nasm、yasm、x264、x265、libvpx、libfdk-aac、libmp3lame、libopus、libaom
    • openssl
    • theora
    • amr
    • gmeとmodplug
    • FFmpeg
  • 再ビルド
  • 【オマケ】youtube-dl
    • 本体スクリプトの導入
    • オマケスクリプトと実行結果。
    • 何回試してもダウンロードできなくなる日が来たとき(原理上よく起こる)
  • 【オマケ】rec_radiko.sh
  • 【オマケ】rec_radiko_ts.sh
  • 【オマケ】らじるらじる
続きを読む

SFX電源の温度を測る話

致命的な問題(現時点)

arduinoPWM制御の前提となる温度測定ですが、現時点では致命的な問題あり。
温度を試しに測定しようと、センサ部分を手で握って測ると、7セグに出るようにした温度表示がパタパタ変わって、1分間ほど観察してみた結果、私の手の温度は21℃~41℃の間らしいことが分かってしまった!
…うん、それほぼ測ってる意味ねえじゃん。ていうか手で持ったから、静電気とか?の影響を受けて、測定結果がよくなかったのか…
f:id:nyarinkopv:20200506145923j:plain

問題の解決を試みる

センサーが悪いのか

まずは秋月のホームページで代替の温度センサ、アナログじゃなくてI2Cなら精度上がるかなあと思って探してみたけど、また秋月と配達のヒト煩わせるのも忍びない。
あと思いのほかI2Cのセンサは高い。今使ってるのがアナログセンサだとすると30円くらいからあるのに対し、I2Cは最安のやつが250円~キット品500円*1
出せない金額じゃないけど、それで精度が上がる保証もない*2
…そもそも温度てどこで測るんだコレ?「気温」測るって、センサ部分に何かくっつけて測る感じで使うもんではないんではなかろうか。
何となく暗雲が立ち込めてきたので、考えるのを止そう…

ほかの手?

この際ファンをフル転で使う前提で静音ファン探してこようかと思ったけど、ファン買うともっと金が要るし、付属のファン、実は性能が良くて、手持ちの薄型ファンより音が静かだったりもする。ファン交換の方が博打要素が強い…

f:id:nyarinkopv:20200506150407j:plain
Scytheェ…と書いてサイテェ、と読む?

何とかならんか

このまま予備のセンサで作り直すか、何とかお直しできないかなあ、などとArduinoのプログラムのソースを読んでみたよ。
Arduinoあるあるですが自分でプログラム組むわけじゃなくてコピペで動くもんデッチ上げてるもんだから、どんなプログラム組んだか全然覚えてない。
「5日後(3時間後?)の自分は別人と思え」(時間はうろ覚えだけど、まあ意味は変わらんからいいか)みたいなマーフィーの法則を久々に思い出したよ*3
でも今回は(都合のいいことにその辺の自覚があったわけだ。)、プログラム組んだ頃は何か変な方向に凝っていたのか、コメントにコピペのネタ元のブログを貼り付けてたのね。
あとピンの意味とか。
だもんで何となく元ネタブログ界隈を徘徊して、分かってきたことなんだけど、

  • 未来の俺に教えてやるけど、お前が使ってるセンサってたぶんMCP9700てやつな。秋月で30円*4
  • 気づいてると思うけど9700、チップの印字が細かすぎて老眼鏡掛けても今の俺がお道具箱からスペア探すのチョイ無理ゲー。あるもん直す方が断然楽だよ。
  • MCP9700はArduino側で補正計算すると、ある程度精度が上がる。でもそれは校正の面であって、上下にぶれるかはちょっと分かんない。
  • 上下にぶれるというのは…こういうのってとにもかくにも電圧の安定性に左右されるんでねえか?
  • USBから電源取ってるの、どうもそれは電圧不安定の一因みたいだぞ。
  • あと入れる電圧は低い方が精度が保てる。
  • 外から+3.3V入れたくなってきた頃合いだと思うけど、それソースコード変えないといけないからね。

うーん…Arduinoへの入力電圧を安定した値に張り付くソースから取ることと、リファレンス電源を3.3Vにすることは、ATX電源を使うから同時に実現できるとして、それでビシっと指す温度が安定するかなあ?
(後述のとおり、しないんだけど。)

明日に向かって

3V3いただきます

f:id:nyarinkopv:20200506161949j:plain
まずやるのはSFX電源のマザー行きのコネクタから+3.3V、元ネタブログ風の表記をするなら3V3を分岐させること。
ちなみに+3.3Vのケーブルカラーはオレンジ色ね。
Arduinoの主電源にする赤(+5V)も分岐させるか、
こないだの紫(+5V、standby)を使うか。
ついでに黒(GND)ももう一本。

3V3どうでしょう

では電源オンして3V3の電圧のブレ具合をみてみます。まあ、こいつが激しく動くような電源だったらそもそも自作PCには使いたくない訳では、あるのですが…
f:id:nyarinkopv:20200506160251j:plain
ハイ、無負荷状態では3.443Vで張り付いて値は揺れません。PCの電源ってすごいねえ。

次に計測中にいったん12Vに負荷を掛けて、3V3の針の値をみてみましょう。白色LEDのアレイを繋げているので、2.5Aくらい消費しています。
f:id:nyarinkopv:20200506160420j:plain
面白いことに無負荷状態と比べて3.501~3.503V付近と、0.05V位上ぶれした値を指します。調整なりで3.3Vがずいぶん上ずっちゃうみたいですね。
負荷状態によって2.5Aで0.05Vだから、最大でも0.1V位の値ぶれはありそうです。
でも大事なのは、値が固まったらそこからは10mVもぶれない、ということの方ではないか、と。
これで温度が安定しない問題が、電圧の不安定さかセンサの使い方誤り等か、切り分けができるんでは、ないでしょうか…
(ちなみに5Vもテスター読み5.3Vで負荷時に安定してました。)

でもね

f:id:nyarinkopv:20200506171226j:plain
AREFに3.3V入れて+にATX電源5Vを繋ぎ、安定した電圧というヤツで測定してみたんだけど…温度はぜんぜんぶれまくるね。しかもまあ中間・最頻ゾーンの数値が平均的に健康なヒトの体温より2度ほど高い。さすがに38℃は無えよ…ヒートシンク普通に冷たいもん。
温度計付きデジタル時計を排気口に当てて温度表示と見比べても、なんか変にずれてるし。うーむ…

あと、何故か(これまた都合よく)MCP9700を買った時の部品袋が出てきて(スペアが7個と日本語解説書が出てきた)、何個か入れ替えてみたけど、どれも似たような挙動を示す。
これは9700の値がもともと安定しないもんだという事なのか、あるいは使い方を根本的に間違っているのか…

発想の転換

Arduinoのソースを見ていて、1024段階の入力値に掛け算して電圧値に直す段があるんですが、どうせ電圧は安定しているものの3V3ピッタンというわけでもないので、ここを現在の温度に合うように、入力値の中央値目算に掛ける係数をデッチ上げればいいんではないか、と。つまりこんな感じ。Arduinoからシリアル出力をプロットで取ったやつをジーっと睨んで、元の3300から調整した2670という値が、実機合わせの係数となる*5。…アレ?本来の入力電圧は3.45V位のハズじゃないのかよ?なんで低くなってんだ…?ホントにテキトーだなあ…

  // put your main code here, to run repeatedly:
  int reading = analogRead(voutPin);  // 0 ~ 1023
  // Analog -> mV
  float voltage = ((long)reading * 2670) / 1024;
//  float voltage = ((long)reading * 3300) / 1024;
//  float voltage = ((long)reading * 5000) / 1024;

かくして

無理やり温度計の値読みを合わせたけど、PWM制御するのに実は温度読みはあんまり関係ないというか、シリアル入力の読み値がここを超えるとヤバいんでねえの?、という値をプロットで眺めてエイヤーで制御すればいいんでないかな、なんぞと。
ファンがフル転以上には冷えないんだから、フル転時のはずれ値をトバしたおおよそのMaxをプロットをジーっと睨んで決め打ちして、それを超えたらフル転、超えるまではお好みの静かさ迄dutyを下げてやればいいだけなんだもん。
というわけで次回に続く。

オマケ

更にボロボロ剥がれる塗装…
でもブラックライトで光るのは男のロマンだから、これはサフ打ちからやり直しをしたいところではあるね。

*1:ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール: センサ一般 秋月電子通商-電子部品・ネット通販

*2:500円の部品に600円の送料出すか、というのもある。こないだは140円の部品におんなじ送料出したわけだけど。

*3:真夜中は別の顔アカデミー出版、なんていう小説があったけど、概ね同じく、真夜中くらいには別のヒトが書いたコードかと思えてしまうわけだ。

*4:温度センサーIC MCP9700A−E/TO: センサ一般 秋月電子通商-電子部品・ネット通販

*5:本当は1000個くらい値をストアして移動平均を取ろうかと思ったんだけど、メモリ食いそうだったから止めた。

SFX電源のコンデンサを交換した話

三段天重

SNSを整理してたら燃えた配線の写真が出てきた。
f:id:nyarinkopv:20200505155741j:plain
確かPC内部電源からこの変換コネクタ経由で12Vを4Aほど(≒外付けHDDを3台ほど)起動したらジュワーっと溶けて煙が…
私は煙程度で助かりましたが、本当にシャレならないです。ましてや(出ていく側で電源内ではいちばん遠い部類とはいえ)100V直結の側なんか、直せても~、ね~え?
日頃から近傍の諸国の製品のクオリティとかを云々されている機会に巡り合うことは多々ありますが、普通に電化製品使ってる分には火噴かないでしょ?
電源周りを趣味の工作で弄ると、たまに噴くから。スピーカーから回路が爆ぜる音が聞こえてオーディオアンプのプリント基板燃えてるの見るのとかザラだもん。
お前がヘボいだけて言われるけど、体調悪い時にあなたがヘボらない保証はどこにもないスよ。

部品交換

コンデンサが届く

なんだかんだ言ってて秋月からGW内にコンデンサが届いた。
秋月と配達の皆様には頭が上がらない。わがまま言って本当申し訳ない。
f:id:nyarinkopv:20200505160803j:plain
OSコン、とはこんな感じ。背が低い…「同じくらいの背の高さのやつ選ばんと容量とかいけてもすぐ噴くよ~」的ジンクスを巡回してたブログか何かでお節介爺さんがコメントしてるのを見たことがある。
激しく心配だけど、みんなマザボ直すのにOSコンがーがーがー、とか言ってるような気がするんでこれでいけるんではないか。

それでは、交換してみましょう

f:id:nyarinkopv:20200505161142j:plain
パシュっと一発、極性に気を付けて≒隣り合うコンデンサのすぐ隣の足と同じ極性になる(つまり「+-→-+→+-…」とくっついている)ので、間違えずくっつける。
やった後気づいたけど、これ元のコンデンサ外す前にはんだ面の写真を撮って、回路のどことどこがはんだでくっついてて離れてるか確認しないと…いかん気がする。

その他準備

f:id:nyarinkopv:20200505163538j:plain
前回もちょい触れた、ペリ電源の一番根元の分岐の所でパチンと切って、秋月のプラグを付けて5Vと12VのACプラグにコンバートした。
今気づいたけど、秋月の安いプラグはもともと4Aくらいまでしか電流耐えられないらしい。う~む…
このほか、マザボ行きのコネクタから分岐させた緑と黒でとりまon/offスイッチを付けている。スイッチはむかし千石で買った覚えがあるなあ。

動作チェック

テストシナリオ

  1. 取りあえずコンセントはon/offスイッチの付いてるやつに繋げるか、すぐに引っこ抜けるよう中継ケーブルにつなげておくかしておく。
  2. 主電源を上げた時点でサービス+5Vが流れ始める、つまり今回替えたコンデンサのとこを電気通ってるはずなんで、極性があってれば紫と黒の間テスターで+5V読めるはず。
  3. 次に緑と黒に繋いだスイッチをonにすれば、元から付いていた電源ファンが回るはず。
  4. この状態で2分ほど放っておいて、電源を切って、替えたコンデンサを中心に主要なパーツを手でチョイチョイ触ってみて、変な熱を持ってないか確認。
  5. その次に適当に負荷をかける、自分の場合は12VのLEDライトを数珠つなぎして、2.5Aくらいの負荷をかけられるようにしたものを用意しておいた。明るさが不安定になっていないかとか、光るものにしておくといろいろ様子が直感的にわかっていいんでないかい。

テスト結果

一応上記シナリオをひと回しできたけど、微妙に替えたOSコンと、隣接するコイルが温かい気がする。
やっぱコレ使うのヤだな…

さて、次は

Arduinoでの温度測定→ファン回転調整をするつもりなんですが、温度センサがうまく動いていない…どうすんべえか。
あと塗装。もちろんブラックライトを12Vで駆動。

オマケ

上記テストの最中に昨日塗った蛍光ピンクが擦れてボロボロ剥がれていくよ…
朝のうちにリターダーと塗料の追加を買っておいたので、届いたら塗りなおそうかと思う。でも本当に要るのはサフェーサーなのかなあ。

SFX電源に配線を足す話。

お約束(天丼2段重)

ですから、しくじるとリアルに死んだり*1、死ななくても電解液目に入ったら失明するし*2、過電流でペリフェラルのケーブルがコネクタ端子ごと燃えてスゲえ臭いし、衣裳部屋に自作PC置いてるから服に匂い移って奥さんに怒られるし、もう本当にロクなことないので、普通はATX電源…に限らず、100Vに近いところは極力イジんな。
コレ本当だよ!
あとやった後気づいたけど、これ元のコンデンサ外す前にはんだ面の写真を撮って、回路のどことどこがはんだでくっついてて離れてるか確認しないと…いかん気がする。

噴いてますね

前回はhttps://nyarinkopv.hatenablog.com/entry/2020/05/01/112859*3、なんか久々に使ったらビミョーにファンのうるさいSFX電源の、コンデンサ団地の部分*4で一番背の高い電解が膨張した跡があるねえ、みたいなハナシで替えのOS-CON待ち、というところまで。
でも秋月の発送って、このご時世、すぐ届くわけでない*5ので、部品を待っている間にいじれるところはいじっちゃおうと思って、まずは筐体塗装かなあと思って定格シール剥がして上蓋洗ったんだけど、

f:id:nyarinkopv:20200504122531j:plain
まだら模様
裏側のまだら模様が洗っても落ちない…これ噴いてるね。コンデンサ替えといてよかった。
f:id:nyarinkopv:20200504122712j:plain
ゴワゴワ
剥がした定格シール見ると+12Vが16Aも出るらしい…まあこんな細いケーブル、4A程度流したらケーブルが煙噴くと思うな*6
f:id:nyarinkopv:20200504123245j:plain
細いケーブル
写真では伝わらないけど、家のACアダプターより配線細いんだもん。あと樹脂周りが鬼門なので、ケーブルに手を入れるなら、間にある電源コネクタは全部取っ払うというか、一番電源本体寄りの所でパッチンと切って使わないとヤバいことが起きると思う。(実際煙噴かせたことがある。)

あちこち生やしてます

f:id:nyarinkopv:20200504123013j:plain
さらに細いケーブル
マザーに行く24pinの配線の真ん中から何本か細い線を分岐している。
緑のやつはPWR_ONと言うんだっけ…GNDとショートさせてる間は電源がオンしてるという、一番簡単な言葉で言えば、スイッチ用の線のプラス側。
紫のやつは+5V standbyと言って、上記電源がオフの間でも+5Vが流れ続けているという、Arduinoを制御してくださいと言っているようなオイシイ端子*7
黒はGND、いわゆる電源とかスイッチのマイナス*8

f:id:nyarinkopv:20200504123857j:plain
温度センサー
内部のヒートシンクに、秋月で買った温度センサーのICを貼っている。たしかアナログ制御なやつだったような…テスト用に書いたArduinoのソースにモロ「analogRead」使ってるんでたぶんそうなんじゃないか。

あとは

届くまで間がありそうなので、上蓋だけでもショッキングピンクに塗ってやる事にする*9
が、これはまた後で。筆塗りうまくいかないけど、今度は塗料買い込んでベタベタにしてやる*10

f:id:nyarinkopv:20200504144009j:plain
ゲルマの力でなんとかならんのか
うんちく的な話の元ネタは以下。
デュアルソケット・ザ・ワールド PC電源の各ピンの機能に付いて
ATX電源 - Wikipedia

*1:むかし、山田かまち、という感電死したという話のロッカーさんがいた気がする。ギターだろうが自作PCだろうが、死ぬのは良くないし、おっかない。

*2:噴いてる電解液は熱くて臭い。潮吹きみたいだ。

*3:https://nyarinkopv.hatenablog.com/entry/2020/05/01/112859

*4:何個も容量違いのコンデンサくっつけてるんで、ノイズ除去でもしてるんじゃないかと思ったんだがどうなんだろう。

*5:でも頼んじゃったんだよなあ…申し訳ない。

*6:一回噴かせたことがあるが、樹脂の焦げる匂いが2日位取れなくて困る。

*7:ほんとうはマザーボードのバックアップ電池が減らないように、マザーに微弱に電源を流すためにあるらしい。

*8:スイッチのマイナスとして、本当はCOMMONというものがあるらしいが、安物の電源だとあんまり厳密に分かれてないんでとにかくGNDに突っ込んどけばまあ間違いない。

*9:ブラックライトで光るんだから、電源の蓋とかケースの内側を蛍光塗料で塗るの流行っても良さそうな気がするんだけどなあ。

*10:昨晩調べるまで知らなかったのだが、塗料もさることながらミスターカラーの筆塗りにはこいつがマストらしい。はんだ付けのフラックスに相当する、知らなきゃ知らんアイテムだわな。 Mr.リターダーマイルド | GSI クレオス Mr.HOBBY