末尾長音を付けるとき
例えば、「ドア」に末尾長音をつけて「ドアー」にしたいときは
検索:(ドア)([^ー])
置換:$1ー$2
とします。
そうして全て置換するとこうなります。
末尾長音を取り除くとき
例えば、「ドアー」の末尾長音を取り除いて「ドア」にしたいときは
検索:(ドア)(ー)
置換:$1
とします。
そうして全て置換するとこうなります。
例えば、「ドア」に末尾長音をつけて「ドアー」にしたいときは
検索:(ドア)([^ー])
置換:$1ー$2
とします。
そうして全て置換するとこうなります。
例えば、「ドアー」の末尾長音を取り除いて「ドア」にしたいときは
検索:(ドア)(ー)
置換:$1
とします。
そうして全て置換するとこうなります。
VVVFインバーターにWi-Fiリモコンを導入しました pic.twitter.com/vroIqyDVIm
— ゆっP (@yuppii5) 2018年10月10日
ESP-WROOM-02(ESP8266)をアクセスポイントにしてiPod Touchから直接繋げています。ESP-WROOM-02にプログラムを書くのは初めてではないのですが、アクセスポイントモードを使ったのは初めてだったのでいろいろ調べながら作っていました。
iPodがESP-WROOM-02から情報を受け取る際には XMLHttpRequest を使ってリアルタイムに受信しています。もしかしたら別の方法のほうが適しているかもしれませんが調べていません。
また、インバーターの情報をリモコンに送って表示ができたら面白そうだなあと思って方法を調べました。これにも XMLHttpRequest が使えるらしく、JavaScriptを少し改造するだけでデータ受信機能を追加できました。
用途からするとWebSocketのほうが向いていそうですが8年前の古いブラウザーなので対応しているかは不明です(試してはいません)。
タイトルにあるスマホではないですが、モダンなブラウザーが使えてWi-Fiに接続できるものであれば何でも使えます。
iPod Touchは第2世代のものです。ブラウザーのバージョンは5.0.2だったので、もう8年前から更新されていないことになります。何しろ8年前なので当然letとconstは使えません。それでもたいていの機能は使えるのでそんなには大変ではありませんでした。ですがローカルで外観を確認できないので、一旦Webに上げてどんな感じに映るかを確認してたのでやっぱり大変でした。
「ここを外すと動かない」が発生しましたが、よくよく考えたら書き方を間違っていただけでした。すぐにブラウザーのせいにしてはいけない
数式で一般的に表した場合のMS処理です。
…入力信号の左成分。
…入力信号の右成分。
…出力信号の左成分。
…出力信号の右成分。
…MS調整用パラメーター。0に近いほどMid寄り、1に近いほどSide寄りになります。
入力信号、出力信号ともに大きさはです。
をMid成分、
をSide成分と置くと
となります。出力は
となります。
を調整することで、ステレオ感を出したり、モノラルにしたりできます。
この記事はstm32 Advent Calendar 2017の21日目の投稿です。
素のSTM32F303K8は、デバッガーを切り離していないNucleo経由でバイナリーを書き込むことができます。
バイナリーはmbedオンラインコンパイラーのもので動作を確認しています。
ボードの上下を切り離して別々にして書き込んでいる例があり、切り離さないとSTM32F303K8に書き込めないのかと思ってしまいますが、切り離さなくても書き込めます。
フィードバックなしに空回しモーターの惰行時の回転速度を推定する方法を紹介します。
こんにちは。自作のVVVFインバーターでモーターを回すのは楽しいですよね。
ところで、電車用のインバーターでは回転中に電圧を0にして
私が作っているインバーターでは電車のインバーターの再現をするのが目的なので、当然惰行もします。加減速はフィードバック無しでもある程度平気(V/f一定制御)ですが、惰行はフィードバックが無いと厳しいです。インバーター周波数と実際のモーターの回転数がかけ離れた状態で電圧を上げると、過大な電流が流れます。スイッチング素子が壊れるかもしれません。惰行をする場合、フィードバックは必須です。
しかし、私のインバーターでは負荷をかけてモーターを回すことはなく、空回しをさせています。よって計算することでフィードバックなしにモーターの回転数を推定できると考えました。
LPC1114マイコンをライブラリの DigitalOut 等を使うことなく、mbedのオンラインコンパイラ上でレジスターを叩いて高速なGPIOを実現するさいの注意点です。レジスターを叩くことについては、以下のリンク先に詳しい解析が載っています。
こちらのページのように LPC_GPIO0->DIR で GPIO ピンの入出力の方向を設定できますが、設定が反映されないピンがあります。
反映されないピンは以下の通りでした。
ピンアサイン参考:Beginning LPC1114FN28 with Arch | Mbed
ピンアサインを見ると、SWCLK、R、SWDIO、RESET の機能を有するピンだけ入出力設定が反映されないことがわかります。
また、リンク先のピンアサイン表の「PIOx_y」の左側に何かが書かれているピンだけ設定が反映されない、とも言えます。
ピンの設定について調べていくと、以下のページが見つかりました。
http://digimono-boys.blogspot.jp/2011/12/armcortex-m0iocon.htmldigimono-boys.blogspot.jp
white-clouds-in-sky.blogspot.jp
どうやら、ピンアサイン表の一番左側にある機能がデフォルトの設定になるようです。
この GPIO や R、AD変換 などといった機能を設定するレジスターがあります。
以下は、ピン23以外(理由は後述)の全てのピンでLチカができるプログラムです。
#include "mbed.h" int main(){ LPC_IOCON->SWCLK_PIO0_10 = 0xd1; LPC_IOCON->R_PIO0_11 = 0xd1; LPC_IOCON->R_PIO1_0 = 0xd1; LPC_IOCON->R_PIO1_1 = 0xd1; LPC_IOCON->R_PIO1_2 = 0xd1; LPC_IOCON->SWDIO_PIO1_3 = 0xd1; //LPC_IOCON->RESET_PIO0_0 = 0xd1; LPC_GPIO0->DIR = 0xFFFF; LPC_GPIO1->DIR = 0xFFFF; while(1){ LPC_GPIO0->DATA = 0xFFFF; LPC_GPIO1->DATA = 0xFFFF; wait(0.5); LPC_GPIO0->DATA = 0x0000; LPC_GPIO1->DATA = 0x0000; wait(0.5); } }
問題のピンは、以下の行で GPIO モードに設定しています。設定値の 0xd1 はたまたま全てのピンで共通の値でした。
LPC_IOCON->SWCLK_PIO0_10 = 0xd1; LPC_IOCON->R_PIO0_11 = 0xd1; LPC_IOCON->R_PIO1_0 = 0xd1; LPC_IOCON->R_PIO1_1 = 0xd1; LPC_IOCON->R_PIO1_2 = 0xd1; LPC_IOCON->SWDIO_PIO1_3 = 0xd1; //LPC_IOCON->RESET_PIO0_0 = 0xd1;
設定の値はこちらのユーザーマニュアル(https://www.nxp.com/documents/user_manual/UM10398.pdf)で見ることができます(「SWCLK_PIO0_10」等でページ内検索を掛けると該当の部分が出てきます)。
ピン23(P0_0) の設定はコメントアウトしてあります。筆者はISPモードで bin を書き込む LPCISP というソフト(mbed LPC1114でLチカしてみた(2) - しなぷすのハード製作記)を使っています。このソフトは自動でリセットを掛けてISPモードに突入して書き込みを行ってくれます。そのため、ピン23を GPIO モードに設定するとマイコンの電源が入った直後にこのピンが GPIO として働いてしまい、自動リセットは掛かりません。
どうしてもピン23を GPIO として使いたい、ピン23を GPIO に設定してしまってプログラムを新しく書き込めない…といった状況なら、手動でリセットを掛けて書き込みをする方法で状況を解決します。
www.nxp-lpc.comこちらのサイトの「ISP」の欄の要約になりますが、
という手順のあと、LPCISPを使って書き込みをします。電源を落とさなければならないので、面倒な手順を踏むことになります。
タイトルの通りです。
javascript:TARGET.addEventListener('ended', function(){TARGET.pause();}, false);
本当は removeEventListener でループ再生イベントそのものを消したかったのですが、無名関数が登録されていたためどうにもなりませんでした。どうにか方法を調べていましたが、うまくいかなかったためイベントを消すのはあきらめました。妥協案としてイベントを消す代わりに一時停止をイベントのあとに挿入しました。
ループ再生イベントは
となっているので、この妥協案ではrepeat数が1つ余分に増えてしまいます。そこは妥協ということです。