VALUESTAR VW770/BでWindows10 1909へのアップデートに失敗するときの解決策

VALUESTARのVW770/BでWindows10のバージョン1809から1909にアップデートしようとしました。しかし、2度アップデートを試みるも失敗。解決策を探していました。

解決策はありました。こちらのサイトです。

pcdoc-support.com

こちらではVW770/Cですが、VW770/Bにも適用できました。今は無事アップデートでき、バージョン1909のWindows 10が動いています。

さて、解決策はサイトに載っている通りです。デバイスマネージャから記憶域コントローラーを開き、2つあるO2Microの両方をアンインストールします。このときダイアログが出るので「このデバイスのドライバー ソフトウェアを削除します。」にチェックを入れてからアンインストールをしてください。両方アンインストールが終わったら、アップデートができます。

バイスのアンインストールに関しては、スクリーンショットが載っているこちらのサイトが参考になりました。

www.pinequick.com

こちらではSDカードの認識について解説されていますが、アンインストール手順については全く同じです。


まとめサイトのような形にはなりましたが、「VW770/B」という機種を今も使っていて困っている人がいたら、と思い記事を書きました。VW770/Bは音がデフォルトで良いので、SSD換装しつつずっと使っています。10年前のPCなのにちゃんと動いててえらい。

Re:VIEW Starter用のVSCode拡張機能を作った

Re:VIEW Starterのシンタックスハイライト・コード補完をするVisual Studio Code(VSCode)拡張機能Re:VIEW Starter Syntax Highlight」を作りました。

インストールはこちら : Visual Studio Marketplace

ソースコードはこちら : GitHubリポジトリー

プレビュー機能はありません。StarterにあるHTMLプレビュー機能をご利用ください)

機能

f:id:yuppi5:20200717232909p:plain

シンタックスハイライト : インライン命令・ブロック命令に色がつきます。ちなみに、画像の内容はPWM波形再現の記事Re:VIEWの形式に変換したものです。

f:id:yuppi5:20200717234006p:plainf:id:yuppi5:20200717233819p:plain

コード補完もついてます!べんり。

f:id:yuppi5:20200717233954p:plain

数式のところはVSCodeLaTeX拡張と同じ緑色に変えました。

経緯

作った経緯は、既存のVSCode拡張機能Re:VIEW Starterで満足に使えなかったからです。新しい命令、命令の入れ子……。そのあたり全てに対応する拡張機能が欲しいと思いました。

そこで、まずはすでにある拡張機能*1を改造する方針を取りました。 しかし、私にとって改造は難易度が高く、この方針は早くも変えられることになります。

次に取った方針は、1から自分で作る方針でした。 1から自分で作るにあたり、思い切ってプレビュー機能を諦めることにしました。というのも、Re:VIEW StarterにはHTMLプレビュー機能があるためです。製作者直轄の機能なので、バグ修正や機能追加がすぐに反映されます。よって不要だと判断しました。まあ、プレビュー機能の実装ができそうになかったのもありますが……。

プレビュー機能を諦めたので、残ったのはシンタックスハイライト、コード補完、文法ミスの指摘ぐらいです。まず必要だと思って実装したのはシンタックスハイライトでした。拡張機能の名前にもあるように、元々はシンタックスハイライトのみにする予定でした。

シンタックスハイライトの部分は構文定義で正規表現を駆使してなんとかしました。やってるときはパズルみたいで楽しいんですが、後から見返すと可読性が最悪になってました。呪文だろこれ。おそらく半年後には読めなくなっているはずです。

f:id:yuppi5:20200718131924p:plain
呪文

入れ子の実装は構文定義でできました。$self。 インライン命令もブロック命令も入れ子も対応してます。 一部の命令は入れ子にできないようですが、ここではインラインLaTeX命令の@<m>{}以外は全て入れ子にできるようになっています。やる気があれば、このあたりも改善する予定です。

f:id:yuppi5:20200718132024p:plain
入れ子の定義

シンタックスハイライトが思ったよりも簡単にできたので、ついでにコード補完を実装しました。現在ある命令をすべて列挙するだけだったので、これもまた簡単でした。実装して良かった。

f:id:yuppi5:20200718132146p:plain
コード補完のワードを列挙

動作確認はRe:VIEW Starterで生成される*.reファイルで一通りしました。//sampleoutputbeginあたりはユーザーズガイドに載っていませんでしたが、生成された*.reファイルにあったので一応ハイライトされるようにしています。

2日間で集中して作ってたら公開できる段階まで来たので、せっかくだし公開しようということになりました。公開は思ったよりも簡単にできました。アカウントを取ってトークンを入手するので面倒かなと思っていましたが、GitHubとの連携があったのでずいぶん楽でした。

これで拡張機能をバンバン公開していけますね。たぶんしない。

参考サイト

Re:VIEW Starter

ここから言及しないと始まらない。このために拡張機能を作りました。素晴らしいツールです。

【VS Code】HSPのSyntax Highlight Extensionを作った話 - Qiita

シンタックスハイライトの拡張機能を作る解説です。ひな形をコマンドで作成するところから解説されています。とても参考になりました。

VSCodeで俺々言語モードを作る - Qiita

VSCodeで新しい言語のための拡張機能について全般的に解説されているサイトです。とても参考になりました。

Sublime Text2 言語パッケージ作成:構文定義 - Qiita

解説はSublime Textですが、VSCodeでもそのまま使えます。構文定義でとても参考になりました。

拡張機能の公開 | 非公式 - Visual Studio Code Docs

マーケットプレイスへの拡張機能の登録について解説されています。 非公式日本語訳だそうですが、とても参考になりました。

この4つのサイトを読めば、拡張機能の作成から公開までだいたいできると思います。

リベンジ:3レベルVVVFインバーターの自作

3レベルVVVFインバーターを作ったので、それの紹介をします。

あらすじ

1年前、プリント基板で3レベルインバーターを作りました。しかし、直流電圧を140V以上(半分以上)にすると謎の素子破壊を起こし、実用には程遠い状況でした。

今回は、ユニバーサル基板で作り直しました。通常の電圧でも素子が壊れないものを作れたので、紹介します。

作る過程

某流行り病の影響もあって、部品を買い足すことなく3レベルインバーターを作ろうと試みました。「おウチにあるもので電子工作しようキャンペーン」ですね。そんなものはありません。

まあキャンペーンは冗談だとして、4・5月は外出できなかったのでそうすることにしました。 部品は過去に作っていた基板から部品取りをするなど、なんとか捻出しました。3レベルインバーター、バカみたいに部品を消費していきますね。たくさんあったはずの0.1μFの積セラの在庫がなくなりました。

完成品

f:id:yuppi5:20200625122253j:plain
全体図

全体はこんな感じ。下から3・4層目の基板が今回作ったものです。今までは2レベル構成のスイッチング素子+ゲート駆動回路が載っていた部分で、今回3レベルに置き換わりました。

f:id:yuppi5:20200625121952j:plain
スイッチング素子が載った基板を横から見る

3レベルの基板は2層構造になっています。下がU・V相、上がW相とデッドタイム生成用マイコン置き場です。

f:id:yuppi5:20200625121413j:plain

放熱は適当なアルミ片をターンクリップでくっつけてしのいでいます。穴を空けるのが面倒だった(横着)

本当は下層の基板の高さも上層と同じ20mmにする予定でしたが、クリップが厚くて縮められませんでした。家にあるもので作ったから仕方ないね。

問題点の解決

1年前に作ったときは問題点が4つありました。今はどのくらい解決されているでしょうか?

  • 回路がガバ → 解決!
  • 電源が弱い → 解決!
  • 直流電圧半減による音量の小ささ → 解決!
  • なぜか発熱するFET → 未解決

3つは解決しましたが、発熱の問題は残りました。3周ぐらい遊ぶとヒートシンク(?)が温まります。 ただ、前回と違って無負荷でゲート信号を入れても発熱しないので、大きな進歩です。

おわりに

3レベルインバーターを作れてよかったです。動画をたくさん投稿していきたいです。

f:id:yuppi5:20200624225606j:plain
Twitterの動画のスクリーンショット

USBスピーカー・マイクの箱を作る

オンライン会議などが増えて、マイクを使う機会も増えてきました。私はパソコンに付いているマイクを使っていましたが、音質が悪いため別のマイクに替えたいと思っていました。そこで、過去に使っていたUSBヘッドセットの中身を取り出して、使いやすいUSBスピーカー・マイクを作ることにしました。

USBヘッドセットの中に入っていた基板がこれです。

f:id:yuppi5:20200613020254j:plain

配線がごちゃごちゃして汚いのは、USB端子の接触不良のためUSB機能を殺してふつうのヘッドフォンに改造して使っていたからです。このヘッドフォンの音質はそこそこ良いので、改造してでも使い続けています。

さて、この基板にはステレオ出力・マイク入力があります。これらを全て使い、加えて何か機能を付けます。ここでは、マイクのON/OFFスイッチを付けることにしました。マイクを箱に内蔵することも考えましたが、箱にたくさん機能をつけるスペースはないので、スイッチのみを追加機能としました。マイクを電気的にOFFにできると安心なので、こちらを優先しました。

必要な機能をまとめます。

  • USB端子
  • ステレオ出力
  • モノラル入力 (マイク用)
  • マイクスイッチ

機能が決まったので、あとは端子のハンダ付けと箱の加工です。

f:id:yuppi5:20200613020259j:plain

二クロム線を使ってUSB端子の穴を加工していますが、カッターを使ったほうがきれいだったのであまり意味がありませんでした。部屋が臭くなっただけ。

f:id:yuppi5:20200613020317j:plain

基板・端子を箱に詰めました。端子が出ている面はかなりギュウギュウです。マイクを内蔵する余裕はなかったですね。

完成写真がこちら。

f:id:yuppi5:20200613020321j:plain

箱をきれいに加工できたので満足しています。長く使えそうです。

時計を太陽電池で駆動した

はじめに

この記事では特段珍しいことをやっているわけではないです。雑談的なノリでお読みください。

経緯

部屋にいくつか時計があったんですが、すべて電池の液漏れが起こって使えなくなっていました。 しばらく部屋に時計がない状態が続きましたが、やはり時計は必要なので何か策を考えることにしました。

そこで思いついた策は、太陽電池と電気二重層キャパシター(EDLC)を使って半永久的に動かすことです。

f:id:yuppi5:20200607195046p:plain

EDLCであれば液漏れの心配がありません。後述しますが、同じようなことを昔にやっていたこともあり、この策を実行することにしました。

完成品

f:id:yuppi5:20200607195128j:plain
全体図

だいぶ雑な工作です。木材がちょっときれいじゃないですね…。

f:id:yuppi5:20200607195213j:plain
背面の写真

太陽電池ダイオードを介してEDLCをくっつけただけです。EDLCは200Fのでかいやつを使いました。

緑の太陽電池の上に雑にくっついている茶色のものは0.5Vの太陽電池セルです。 始めは緑の太陽電池のみでやっていたんですが、あまり電圧が出なかったので0.5Vのセルを追加しました。 開放電圧が2Vなので過電圧が怖いですが、実際は1.7Vくらいに収まるのでまあ大丈夫かという感じです。昔あったオキシライド乾電池くらいですね。

時計の電池ボックスに直接ハンダを付けるのは怖かったので、銅板と適当な木の棒で接続しました。

f:id:yuppi5:20200607195340j:plain
時計の背面

ついでに温度計も接続しています。こいつも液漏れしてました。やっぱり電池はダメ。

昔話

太陽電池とEDLCを時計に接続する試みは昔やったことがありました。

昔の記事:エコキューブラジオ2の改造

記事にあるのは時計じゃなくてラジオですが…、ラジオは目覚まし時計の代わりに使っていました。当時のラジオはかなりきれいな状態でしたけど、今は黄色くなってしまいました。きたない。

f:id:yuppi5:20200607195249j:plain
黄色くなった原因はたぶん太陽光

このラジオは壊れてしまったのでもう使っていません。今回の工作はいつまで持つでしょうか。10年くらい持つといいな。

おわり。

自作VVVFインバーターのためのPWM波形再現 目次 #床下電子音楽

以下の記事では、自作のVVVFインバーターで電車の音を鳴らすのに必要な知識について解説しています。

1章

f:id:yuppi5:20200413003237p:plain

PWM波形再現の基礎的なことがらを扱います。なおこの章は、実車のPWM波形を解析・解説されているサイトの VVVF名鑑 の補助教材的な位置づけになっています。1章をお読みになればこちらのサイトをより楽しめると思います。

1-1. いろいろな波形

VVVFのPWM波形再現に必要となる信号波とキャリア、相電圧、線間電圧について説明しています。

1-2. 信号波とキャリア

信号波とキャリアそれぞれの説明と、再現で使う重要な変数3つについての説明をしています。

1-3. スペクトルとキャリア周波数

今までに得た知識を使って音を作っていき、実在するとある車両の音に似せていきます。同時に、WaveToneでのスペクトルの見かたを説明します。

2章

f:id:yuppi5:20200413003935p:plain

波形再現には直接関係のない、発展的なことがらを扱います。

2-1. 線間電圧と相電流

線間電圧を深追いして、モーターの音の源について探ります。

VSCode、JavaScriptの正規表現でMarkdownの数式を置換するときにハマったところ

はじめに

最近JavaScriptで文書の置換ソフトを作ろうとしているんですが、VSCodeでまず正規表現を試そうとしてうまくいかなかったので、その対処法を備忘録的に紹介します。

JavaScriptにて

直感的な方から先に紹介します。例えば、以下のようなLaTeXの数式が混在しているMarkdownがあるとします。

ああああああ$ABC$テストです。
$$
x = 2y
$$$a$意味もない数式$x$を使って$$
y = ax$$と表せる

これを、JavaScriptで行の数式("$$~~$$")だけ置換しようとすると以下のようなコードが書けます。

`ああああああ$ABC$テストです。
$$
x = 2y
$$$a$意味もない数式$x$を使って$$
y = ax$$と表せる`.replace(/\$\$([\s\S]+?)\$\$/g, "{$1}")

// ->
// "ああああああ$ABC$テストです。
// {
// x = 2y
// }$a$意味もない数式$x$を使って{
// y = ax}と表せる"

普通の正規表現で置換することができました。

VSCodeにて

正規表現\$\$([\s\S]+?)\$\$をそのまま使って検索をすると、以下のように間違った部分がハイライトされます。

f:id:yuppi5:20190929223848p:plain
間違ったハイライト
うーん、これは良くないですね。

そこで、正規表現に改行を明示的に含めることにします。\$\$([\s\S\n]+?)\$\$とします。

f:id:yuppi5:20190929224106p:plain
正常な検索
すると正常にハイライトされました。この状態であれば思い通りに置換することができます。
f:id:yuppi5:20190929224145p:plain
祝!正常に置換されました!

最後に

VSCodeのドキュメントも読んでいないのでもしかしたらこれが仕様かもしれません。