2018年2月13日火曜日

VOICEROID+を仮想マシンで動かしてみる

仮想マシン上ではVOICEROID動かないらしいということを聞いたので、検証してみました。

用意した仮想マシンは以下3つ。

・Hyper-V
・VirtualBox 5.2.6 r120293
・ VMware Workstation 14 Player 14.1.1 build-7528167

 それぞれの仮想マシンで動かすwindows10イメージは以下の通り。

①Windows10 dev environment(バージョン10.0.16299)
Hyper-Vテンプレートイメージです。
言語が英語のため、日本語を追加しています。

②Windows 10 Enterprise | Microsoft Evaluation Center
ダウンロードURL:https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise
イメージファイル名:16299.15.170928-1534.rs3_release_CLIENTENTERPRISEEVAL_OEMRET_x64FRE_ja-jp.iso
90日間限定で使用できる評価用windows10 Enterpriseです。このisoイメージから各マシンにwindows10をインストールします。 言語は日本語を選択しています。


③Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development
ダウンロードURL:https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
イメージファイル名:MSEdge on Win10(x64) Stable(16.16299)
こちらも評価用のwindows10です。違いはVirtualBoxとVMwareそれぞれに仮想マシンのイメージを提供している点です。
言語が英語のため、セットアップ後日本語を追加しています。

Hyper-V

①のイメージ
起動直後に"ライセンス認証に失敗しました。原因不明のエラーが発生しました”と表示され起動できず。Sentinel HASP/LDK Windows GUI Run-time Installerをインストールしても変わらず。
②のイメージ
通常セッション時のみ起動可能。ただし音声出力ができないため起動時に警告が出るが、音声保存自体は可能。
拡張セッション使用中およびリモートデスクトップ接続中は起動できないが、通常セッションにて起動後、拡張セッションに変更もしくはリモートデスクトップ接続し、音声出力設定をリモートオーディオに設定しなおすことで音声も再生できる。
ライセンス認証も通る(琴葉葵にて確認)

VirtualBox

③のイメージ
Hyper-Vの①のイメージと同様。起動できず。ちなみに言語が英語のみの場合、日本語以外では利用できないとのエラーメッセージが出る。


②のイメージ
ライセンス認証OK (琴葉葵にて確認)
仮想マシン設定のオーディオコントローラーをIntel HDオーディオにしないと仮想マシン上のwindow10からオーディオデバイスが認識されない。
ノイズ混じりで音声が再生されるが、VirtualBox側の問題と思われる。

VMware Workstation

③のイメージ
Hyper-Vの①のイメージと同様。起動できず。

②のイメージ
ライセンス認証OK (結月ゆかりEXにて確認)

結論

②のisoからwindowsをインストールした場合に限りどの仮想マシンでもVOICEROIDは動作した。
①③はともに英語版windows10で、②は日本語版なので日本語版Windows10でないと動作しないと思われる。
仮想マシンを別PC上で動作させた場合のライセンスがどうなるか気になるところ。

2018年2月12日月曜日

VOICEROID+結月ゆかりEXのアクティベーション可能回数のリセットを依頼した

 VOICEROID+結月ゆかりEXをPC更新後にインストールしてアクティベーションしたら、
”アクティベーションに失敗しました。現在のアクティベーションキーでは、これ以上アクティベートできません。”
ということでアクティベーションできませんでした。 
VOICEROID+ ユーザーマニュアルを見てみると、
ユーザマニュアル82ページより
 ということなのでリセット依頼をしてみました。
 アクティベーションキーとサポート番号が必要なので用意しておきましょう。

1.AHSホームページよりマイページにログイン
2.登録済みの該当製品から”この製品に関するお問い合せ”をクリック

3.アクティベーション可能回数のリセットを依頼。このときにアクティベーションキーと製品名も書いておきましょう。

1営業日後にリセットしたとのメールを頂き、晴れてアクティベーションできました。
旧環境を放棄するにあたってアンインストール行っていたのですが、どうもディアクティベート処理はない様子。ううむ。

2017年12月28日木曜日

思いつきで買ったサーマルプリンタが結構使えた

先日行われた『ゆかり公式生放送を見る忘年会』にてこんなレシートを作ってみました。



割烹着ゆかりさんのお店...割烹ゆかり。そのままですね。
会場が和室だったので「それならやるしかないやん!」って思いつきでサーマルプリンタを買って使ってみたところ案外使えました。
買ったのはコレ↓
Aibecy POS-5805DD USBサーマルプリンタ

USB接続だけで良いならもう少し安いものがありますが、Bluetoothに対応していたこととバッテリ内蔵、あと見た目がこっちのほうが良いという点で選びました。
型番で調べてみると一応日本語も印刷できるっぽい、程度の認識で購入したので思い通りに印刷できるようになるまで苦労するorダメかもと思っていました。
ところがWindows用ドライバを使ってみるとInkscapeから直接印刷できて拍子抜けしてしまう程簡単でした。導入まで一癖あるのでメモを残しておきます。

USB接続の場合、サーマルプリンタの電源をONにして、PCに接続。デバイスマネージャーに"プリンターが接続されていません"と表示されることを確認します。

Bluetooth接続の場合、プリンタの電源を投入。まずはペアリングを行います。
BluetoothPrinterを選択。PINは1234


Bluetooth設定を開いて方向が発信のCOMポート番号を確認。この場合COM5。
amazon商品ページ説明欄からドライバをダウンロードして実行。
Portsに確認したCOMポート番号を選択して、OSはWindows10、Select PrinterはPOS-58を選択してBegin Setupをクリック。


そしてCOM(232C)接続...
電圧を確認したところTTLレベルではなく、±5.4Vが出ているので232Cレベル変換が必要です。
そしてピンアサインは下記の通り。マニュアルに載っておらず、調査したものです。
1:GND
2:TXD(プリンタからの出力)
3:RXD(プリンタへの入力)
4:???

1番にGNDがあることによって、USBとCOM両方を同じPCのUSBポートに接続すると+5VとGNDがショートするという恐ろしい仕様になっております。

通信仕様はボーレート115200bps,データ8bit,ストップ1bit,パリティなし
FRDM-K64Fボードと232Cレベル変換ICを介して接続してみたところうまく動きました。

使わせて頂いたソースはこれ。
https://os.mbed.com/users/aross34/code/Thermal_HelloWorld/

AdafruitThermal.cppの29行目のボーレートを115200に変更して動作しました。
ただし一部のコマンドが動いていないようで、真ん中あたりのLarge,Midium,smallはそれぞれ文字の大きさが変わるようですが、変わっていません。

Android端末からBluetoothで印刷する場合、ペアリングを行うところまでは普通のbluetoothデバイスと同じです。印刷はサーマルプリンタ用アプリを使用します。
画像を印刷するだけであれば iPrint が簡単かつ綺麗に印刷できました。


2017年12月27日水曜日

ルータをRT-AC68Uに更新してDDNS更新させるようにした

先日のamazonサイバーマンデーでASUSのルータ『RT-AC68U』がちょっとお安くなっていたのでポチっちゃいました。今まで使ってたNECのAtermWG1800HPが時々再起動しないといけなかったりしたので替え時でした。

11ac対応してりゃいいや、レビュー悪くなさそうだし、2系統WAN使えるユニークな機能もあるやんくらいの認識で、買ってから気づいたのですがこのルータ、SSHで中のLinux触れるようになってました。
それなら今までバッファローのNAS『LS410DX』のLinuxでやっていたDDNS更新をやらせたろ!ということでやってみました。アップデートあるたびにHDD抜いて中のLinuxに潜れるようにってやるの面倒だしね。
ASUSが提供するDDNS使いたかったけど、振られたIPをDDNS更新に使うが、au光のHGWからルータへはローカルIPが振られるため使えない環境です。
なので外部へグローバルIPを確認しに行き、そのIPでieserver.netのDDNSを更新するようにしました。

SSHを有効にする設定は”管理”のシステムタブから。ポートはLANオンリーでも一応変えておく。(そして時間経つと変えたことを忘れて入れねー!ってなりそう)


接続はいつものTeraTermで。ユーザー名とパスワードは管理画面に入るものと同じ。


こちらのブログ記事によると起動時に①USBマウント時に実行されるスクリプトを作成、設定して、②crontabに直接書き込んで定期的に実行する方法があるらしい。
 How to schedule cron jobs on an ASUS wireless router

ただcrontabへ書き込むところまではできるものの、実行されない...。

なのでUSBマウント時に実行されるスクリプトから直接watchコマンドで定時実行するようにした。
下記2つのシェルスクリプトを作って...

bootinit.sh
#!/bin/sh
/jffs/bootinit/watch.sh &
logger watch.sh_Start

watch.sh
#!/bin/sh
watch -n 1800 -t /jffs/bootinit/ieserver.sh

 USBマウント時のスクリプトに設定。
nvram set script_usbmount=/jffs/bootinit/bootinit.sh
nvram commit

ルータに手頃なUSBメモリつないで再起動。
ログ参照するとマウント後にスクリプトを実行しています。
Dec 27 23:24:54 disk monitor: be idle
Dec 27 14:24:56 usb: USB vfat fs at /dev/sda1 mounted on /tmp/mnt/sda1.
Dec 27 14:24:56 *****: watch.sh_Start
Dec 27 14:24:57 rc_service: hotplug 736:notify_rc restart_nasapps
Dec 27 23:24:57 iTunes: daemon is stoped
Dec 27 23:24:57 FTP Server: daemon is stoped
Dec 27 23:24:58 Samba Server: smb daemon is stoped
Dec 27 23:24:58 kernel: gro disabled
Dec 27 14:24:58 *****: DNS Update done
Dec 27 23:24:58 Timemachine: daemon is stoped
Dec 27 23:24:58 miniupnpd[725]: shutting down MiniUPnPd

2017年8月14日月曜日

サンコーのネック冷却クーラーにヅラ毛が絡まった

コミケ3日目にてコスプレしている友人に貸したらウィッグの毛が冷却ファンに絡まってしまいました。(僕じゃないです)
隙間から毛を抜いてみたものの、回転しなくなっていたため分解しました。

まず冷却面の黒いネジ3箇所を外します。


ファンを固定しているネジ2本外して

 取れました。あちゃー。

 絡まっていた毛を取り除いて電源ON。回りました。交換せずに済んでよかった。

で、戻そうとした矢先に内部の配線が気になりました。
ファンの他に赤線1本、黒線3本あるのです。

内側の冷却面のネジ2本も外してみると、首のアルミ材に温度センサと思わしきものが熱伝導グリスと共に入ってました。
白く厚いペルチェ素子に配線が赤と黒1本ずつ。
恐らく残り1本は放熱側にペルチェ素子があり、冷却側と直列に接続していると思われます。

2017年1月3日火曜日

Pushbullet+自前デバイスでプッシュ通知を受け取る

Pushbulletを使ってプッシュ通知をスマホ等へ送る例は見当たりますが、逆にプッシュ通知を受け取る例がなかったのでやってみました。

-なんでこんなことを?
ホームオートメーションやりたくなりまして、IFTTTやLINE BOTなどといったスマホへプッシュ通知送れるwebサービスを利用して楽しつつ、やりたいことを実現するためには以下3点の要件を満たす必要がありました。ワガママですね。
  1. Android・iOS・PCのマルチプラットフォーム対応
  2. 自前デバイス(Linux鯖など)からプッシュ通知を送れる
  3. 逆にAndroid等からチャットを送れる
で、たどり着いたのがPushbulletだったのです。

websocketでイベント受信→チャットテキストを取得するデモをnode.jsとpushbullet-bashを組み合わせて書いてみました。ラズパイ3上で動作しました。
スクリプトとフォルダ配置はこんな感じで。
~/.config/pushbulletはpushbullet-bashがAPIキーを参照するのでAPIキーを記述すること。

 ~/
├ .config/pushbullet
└ pushbullet/
      ├ pushbullet-bash/
      └ script/
          ├ pushbullet_websock.js
          └ getLastPush.sh


テキスト送るとこんな感じ。

2016年12月18日日曜日

FRDMボードのデバッガチップを復旧させた話

この記事はmbed adventカレンダー2016 18日目の記事です。

長くなったのでいきなり3行でまとめると...
・FRDM-K64Fボードのファーム飛んだ
・Keil uVision5+サポートするデバッガ(J-Link、LPC-Link2、他mbedボードのCMSIS-DAPデバッガ)で復旧できた
ARMバンザイ、mbedバンザイ

こんな人に特にオススメの記事となっています
・FRDMボードのファームふっ飛ばして積み基板にしている人
・keil uVision5からhexファイルの書き込み方について知りたい人

最近FRDM-K64Fボードを買いまして、早速Lチカ!...の前にファームのアップデートを
Windows10マシンにて試みたところ、ファームが吹っ飛びました

この件調べるまで知りませんでしたが、どうもOpenSDAブートローダーとWindows10の相性が悪いらしいです。
http://www.nxp.com/jp/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA

ページ上方の続きを表示をクリックすると...
oh...

復旧の方法については調べたところ、主に2通りの方法があるようです。
①J-LinkやULINK2等の外部デバッガよりブートローダー書き込み
  https://community.nxp.com/docs/DOC-330935
②別なFRDMボードからブートローダー書き込み
  https://mcuoneclipse.com/2016/06/26/how-to-recover-the-opensda-v2-x-bootloader/
 
J-Link EDUを買って復旧することに成功しましたが、
LPC-Link2(CMSIS-DAPファーム、もしくは他のmbedボードでSWD信号引き出せられるもの)
+Keil uVision5
+ubuntu(VirtualBox上からでもOK、もしくはwindows7、Mac、Linux等の別マシン)
からでも復旧できることが分かったのでその方法を記載しておきます。


ブートローダー復旧編


LPC-Link2とFRDMボードを接続しておきます。
電源はFRDMボードにUSBから供給するのでLPC-Link2のJP2はオープンにしておきます。

uVisionからバイナリファイル書き込み方法は以下を参照しました。
µVision4 User's Guide (Japanese): HEX ファイル
http://www.keil.com/support/man/docs/uv4jp/uv4jp_fl_hexdownload.htm

書き込みプロジェクト作成前にK20シリーズのDFPをインストールしておきます。
メイン画面のPack Installerをクリック

 画面左側のツリーよりNXP→K20 Seriesを選択、右側のKeil::Kinetis_K20_DFPのInstallをクリック

インストール完了したらPack Installerを閉じます。
Reload Packs?と問い合わせが出るのではいをクリック。
いいえをクリックしてしまったらuVision5を再起動。

Keil uVision5で書き込み用プロジェクトの作成
タイトルバー下のメニューよりProject→New uVision Project
適当なフォルダにOpeSDAFirmwareWriteなど、適当な名前でプロジェクト作成。
Select Device画面でSearch欄にMK20DX128xxx5と入力。
ツリーのMK20DX128xxx5をクリックしてOKをクリック。

コンポーネントは何も追加せずOKをクリック


OpenSDAブートローダーのダウンロード
http://www.nxp.com/jp/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA
復旧対象のボードを選択して、OpenSDA bootloaderのバイナリをダウンロード。

解凍して、プロジェクト作ったフォルダにk20dx128_bootloader_0x5000.axfをコピーします。

Options fot Targetをクリック。

 Outputタブを選択し、Name of Exe~欄にダウンロードしたOpenSDA bootloaderのバイナリ名(k20dx128_bootloader_0x5000.axf)を入力します。

DebugタブにてデバッガをCMSIS-DAP Debuggerに変更。
Settingsをクリック。

 Connectをunder Reset、ResetをHW RESETに変更

メイン画面に戻り、Downloadボタンを押せばbootloaderが書き込まれます。
正常に書き込まれればBuild Outputはスクリーンショットと同じ内容になるはずです。

SWDケーブルを外してSW1を押しながらmicroUSBケーブルを接続し、
WindowsからBOOTLOADERドライブが認識されれば正常に書き込みできています。

アプリケーション復旧編

OpenSDAアプリケーション書き込み用にWindows10ではないマシン(VirtualBox上のubuntu、別マシンのWindows7など)で以降は作業します。

VirtualBox上のubuntuから復旧させる場合、仮想マシンの設定より
USBデバイスフィルタを登録しておきます。
Windowsにブートローダードライブが認識されている状態でMBED CMSIS-DAPを追加します。 
この設定をした状態でubuntuを起動、再度SW1を押しながらFRDMボードのUSBを接続すれば
自動的に仮想マシンのubuntuへ接続されます。


Windows10において対策版のOpenSDAブートローダーがリリースされるまで、JLinkかP&E Microどちらかを使うことが推奨されているので今回はJLinkを使います。

https://www.segger.com/downloads/jlink
J-Link OpenSDA - Board-Specific Firmwaresより対象のボード用バイナリをダウンロードします。
今回はFRDM-K64F用のバイナリをダウンロードします。

ダウンロードしたバイナリ(02_OpenSDA_FRDM-K64F.bin)をBOOTLOADERドライブにD&D

USBケーブルを抜き、そのまま差せば...復旧しました!


LチカもOK!

で、ここまでやってようやく気づいたのですが、uVision5がサポートするデバッガなら、どれでも復旧できたんじゃね?と

SWDコネクタ出ているLPCXpresso824-MAXボードからでも...

SWD関係のピンを引き出したmbed LPC1114ボードからでも...

nucleo-F401REボード上のST-Linkからでも...

復旧できました!!
なんのためにJ-Link買ったんだろ。なんでもデバッグできるデバッガ手に入ったしいいや。