2018年1月5日金曜日

ニンテンドースイッチでキーボードとマウスを使う

前回Coov N100でオプションのCoov HUB K4を購入すればキーボードとマウスが使えるという話をしましたが、友人用に代理購入してみた。
スイッチはもともとキーボードを文字入力用とかには使えるみたいだけど、このアダプタを使ってつなぐとゲームの操作に使用できるようになる。
今回も使い方を教えるためと、動作確認のために開封させていただいた。

Coov N100は結構小さい箱だったので潰れたりしてなかったけど、HUB K4はちょっと端っこのほうが破れてた…
eBayで購入して1週間で届いたのですごく速い方だと思う。

箱を開けるとこんな感じ。


付属品はちょっと特殊なケーブルのみ。長さは1mちょいあるかも。

見た目はほんとに普通のハブ。単純にN100の方でVIDとPID読んで認識してるだけで普通のハブなんじゃないかなというぐらい。
PCにつなぐと普通のUSB2.0の汎用ハブとして認識する。VIDは1A40でPIDは0101だった。

Coov N100とは付属のケーブルで接続するとこうなる。

HUB K4自体はminiUSBなのでmicroUSB端子は余る。N100の説明書には不使用と書いてあったが、COOV N200との接続用かも知れない。
OTGケーブルとしても使えるかも?

HUB K4はN100のファームウェアがV3.0以上なら使えるっぽいけど、V4.0が出たということでN100のファームウェアをアップデートしておいた。

V4.0からはAndroidアプリでマウス変換時のパラメータをいじれる様になっりDS4の新しいやつに対応したりしてるっぽい?

USBキーボードとマウスを設定するために適当なコントローラが必要なのでXbox Oneコントローラを使用した。

N100のファームウェアはV3.0以上が必要。
そしてUSBキーボードとマウス設定用に適当なコントローラが必要っぽい。
例によって本体設定のProコントローラの有線接続はオンになってないと動きません。

今回はXbox Oneコントローラを使用したのでボタン配置もXbox One用で説明するので別なコントローラを使って設定する際は読み替えてください。
 1.キーマップモードに入るためにXboxボタンとBボタンを同時押し。
 2.キーボード、マウスの割り当てたいボタンを押す。
 3.Xboxコントローラで割当先のボタンを押す。
 4.ホームボタンを押すとマップモード終了。
でとりあえずはキーマップできる。
更にキーマップはキー入れ替えのときと同様に続けて登録することもできる。
例えばProコンで言う、Aボタンを右クリック、Bボタンを左クリックにしたい場合は
Xboxボタン+B
右クリック→Bボタン(XboxコンのBボタンはプロコンで言うAボタン)
左クリック→Aボタン
Xboxボタン
という順番に押せば良い。

マウスの動きをスティックに割り当てたいときもマップモードに入ってから
マウスをちょっとだけ右に動かす→スティックを右に倒す
みたいな感じで登録できる。

今回使用したDeathAdder 3500の場合はサイドボタンも割り当てることができた。
ココらへんはマウスによるかも。


実機がないから試せないんだけど、この機能はXbox OneやPS4でも使えるらしい。その場合は純正コンを認証用に繋ぐ必要があるようだけど。
N100とHUB K4はeBayで買うと合わせて2400円ぐらいなので、Cross Hair converterとかXIM4とかより断然安い。機能とかはちょっと違うだろうけど。

PCゲーマーでどうしてもコントローラでの操作になれない人にはよいかもしれない。
マウサーとかいうハードウェアチートになるかもしれないので使用時は注意かも。
結構ジャイロ使ってる人のほうが強そうな気もしたり…
何にせよ任天堂認定ハードではないので注意が必要かもです。


2017年12月25日月曜日

ニンテンドースイッチでいろんなコントローラーを使う

ゲーム機で他のゲーム機のコントローラーを使う変換アダプタっていうのは色々と出てるけど、その中でも1000円を切るようなコンバーターがあったので友人用にeBayで代理購入をしてみた。
酷威COOV N100ってやつ。eBayで1000円切るぐらいで購入できた。国内でも取り扱ってるショップはあるみたいだけど、1000円以下なら失敗しても悲しくないということで…
最近はN200ってのも出てるようで、こちらは20ドルぐらいっぽい。

COOV N200はレシーバとトランスミッタのセットになっていて、トランスミッタを好きなコントローラーにマジックテープで取り付けてワイヤレス化できると言うもの。
さらにトランスミッタにはジャイロがついてるので、どんなコントローラでもジャイロ対応にできるらしい。まぁ今回はとりあえず試しということで有線のn100を選択した。

とりあえず友人に渡す前に動作確認して使い方を把握しておかねば。

まずはアップデート。
ファームウェアは公式サイトからダウンロードできる。
日本語もあるけど、解凍すると文字化けしてよくわからないので英語版がいいかも。
現時点での最新はV3.4だった。

V3.0からはUSBキーボード、マウス、HID準拠ゲーム コントローラに対応したらしい。
キーボードとマウスを使うにはHUB K4って言うオプションが必要らしけど、DirectInput対応の普通のPC用ゲームパッドは繋げばそのまま動くようになってるかも。

あとは認証用に各純正コントローラが必要みたいだけどPS4とXbox One用のコンバータとしても使えるようになったっぽい?(実機がないので試せないけど)
ファームウェアのアップデート方法はCOOV N100をPCのUSBポートにつなぐとマスストレージデバイスとして認識するので、その中に先程ダウンロードしたfirmware.binを上書きするだけ。
アップデートが完了するとN100のLEDが緑色に点灯したあとに再認識される。失敗すると赤に光る模様。
ちなみにinfo.txtを開くと今入ってるバージョンがわかる。購入時のバージョンは1.5だった。

設定はdata.binというファイルの中に書き込まれる。
今回はまだ何も設定してない状態でアップデートしたので、ついでに設定初期化(restore)用のdata.binも上書きしておいた。(たまにうまく動かない設定ファイルのまま出荷されてるものもあるらしいので念のため。)


ファームウェアアップデートとコンフィグファイル(data.bin)の初期化が終わったところで、早速使ってみる。
ニンテンドースイッチ側の設定を少し変更する必要がある。
ファームウェアがV2.0以上の場合、設定のコントローラーとセンサーでProコントローラーの有線通信をONにする必要がある。ここをONにするまではn100に繋いだコントローラは全く動かない。
N100がPS4コンのジャイロに対応したときにProコン有線モードとして認識されるようにファームウェアを変更したのかもしれない。

とりあえずこの状態でXbox Oneコンを繋いでみたけど特に問題なく動く感じ。
デフォルトのキー配置は物理的に同じ位置にあるキーが割り当てられているので、
Proコン同様の操作性。ジャイロ無いけど。
Xbox OneコンをつなぐとAとB、XとYの印字が反対になる。
なんかQTEが多いゲームとかだと混乱しそうだ。つまりAを押せと言われたらBを押さないといけない。PS4コンの場合はABXYじゃないのでまた違う問題だけど。

一応N100にはキーマッピングという機能がついててキーを入れ替えることができる。
ホームボタンとスティック以外のキーは好きに入れ替えられるらしい。
1.キーマッピングモードに入るにはXboxボタン(ホームボタン)とBボタン(ProコンだとAボタンの位置)を同時に押す。
2.キーマッピング対象のボタンを押す。
3.割り当てたい機能のボタンを押す。
4.ホームボタンを押すとキーマッピングモード終了。

例えばAボタンを押したときにBと認識させたい場合は、
 Xboxボタン+Bボタン同時押し
 A
 B
 ホーム
という順番に押せば良い。
入れ替えたい場合は
 Xboxボタン+Bボタン同時押し
 A
 B
 B
 A
 ホーム
みたいな感じで、ホームボタンを押さない限りは連続して登録できる。

この機能を使えばXboxコンのときにAとB、XとYを入れ替えてしまえば画面表示どおりにキーを押せばいいことになる。
この場合Proコンに慣れてるとむしろ混乱するかもしれないけど、XboxやPCでXboxコンを使ってる人にはこっちのほうが慣れやすいかも?
ちなみにスクリーンショットはXboxボタンを2度押しだった。PS4コンだとまた違うらしい。

設定をもとに戻したい場合はXboxボタンとBボタンを同時押しした後にXboxボタンを3秒以上長押しするとキーマッピングをリセットできる。

キーを押すたびに振動してくれるのでちゃんとキー操作が認識されてるかどうかもわかりやすい。

N100にはキーマップも含めて、結構色んな機能があるっぽい。
・キーマッピング(Xboxボタン+B)
・スティックのデッドゾーンの設定
・速度調整可能な連打機能(Xboxボタン+X?)
・マクロモード(ホーム+マクロを登録したいボタン)

非公式ハードだから本体のバージョンアップで使えなくなる可能性はあるけれどもこんなに機能ついてて1000円以下ならお買い得かもしれないぞ…
HUB K4を購入すればキーボードとマウスも使えるみたいだし。
スリープから解除できないのはちょっと不便かもしれないけどセカンドコントローラとしてなら問題ないしな

最後に分解してみた。

ケースは金属で高級感がある。ネジを外せば分解できる。
メインのマイコンはNuvotonのNUC505Y013Yっぽい。
あとはUSB機能用と思われる12MHzのクロックと3.3Vのレギュレータ、抵抗とコンデンサとLEDぐらい。マイコンだけで300円ぐらいはしそう。


2017年12月23日土曜日

Discord用に簡単なTTS Botを使ってみた。

友人とゲームをするときにはよくTeamSpeak3を使っていたんだけど、最近Discordに乗り換える流れがあったので乗り換えてみた。

ついでにDiscordのAPIを使ってBotが簡単に作れるらしいのでちょっとTTS(text to speech)ボットを作ってみた。要はテキスト棒読みBot。
Discordはブラウザからも簡単に参加できてしまうので、その場で喋れない奴とかたまーにゲーム中に入ってきてもテキスト読めない問題を少しでも解決するために…。

サーバーは現状のLinux鯖を使いたかったので、Bot作成にはPythonのDiscord.pyを使用した。
喋る部分は棒読みちゃんとかを使いたかったんだけど、Linuxだとちょっと面倒だったので簡単に使えるOpen JTalkを使用した。

まずはOpen JTalkをPythonから使えるようにする。

こちらのサイトのjtalk.pyをPython3でも使えるようにちょっとだけ変更して使用した。

#coding: utf-8
import subprocess

def jtalk(t):
    open_jtalk=['open_jtalk']
    mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
    htsvoice=['-m','/usr/share/hts-voice/mei/mei_normal.htsvoice']
    speed=['-r','1.0']
    outwav=['-ow','open_jtalk.wav']
    cmd=open_jtalk+mech+htsvoice+speed+outwav
    c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
    c.stdin.write(t.encode('utf-8'))
    c.stdin.close()
    c.wait()

変更したのは音声は再生しないようにしたのとstdin.writeの部分をバージョンに合わせてちょっと変更。

あとはBot本体からこいつを呼び出すだけ。

#coding: utf-8
import discord
import jtalk


client = discord.Client()

@client.event
async def on_ready():
    global player
    global voice
    print("-"*20)
    print("user name:", client.user.name)
    print("user id:", client.user.id)
    print("-"*20)
    channel = client.get_channel('参加させたいボイスチャンネルのID')
    voice = await client.join_voice_channel(channel)
  

@client.event
async def on_message(message):
    global player
    global voice
    # we do not want the bot to reply to itself
    if message.author == client.user:
        return
    jtalk.jtalk(message.content)
    player = voice.create_ffmpeg_player('open_jtalk.wav')
    player.start()

client.run('トークンをこちらに')

とりあえずこんなもんで一応は動いてるっぽい。
テキストの流れが早かったりすると対応できないかもしれないし、チャンネル移動コマンドとか追加していきたい

2017年12月17日日曜日

Lightning - USBカメラアダプタの互換品を買ってみた

たまにiPhoneにカメラをUSBで繋いで画像を取り込みたくなることがあるんだけどLightning - USBカメラアダプタの純正品は高い…
ということでためしにeBayで安いやつを買ってみた。
Lightningコネクタは認証を取ってないケーブルによくある、一体成型じゃないやつ。
USBポート側は純正より丸い感じ。全体的に安っぽいんだけど、実際安い。
これで160円ぐらい。純正品が3200円なので超お安い…

非純正でよくあるのがiOSのアップデートで使えなくなるというやつ。
しかもこいつはiOS9以上対応とか大雑把にしか対応情報が書いてなかった。

とりあえず最新のiOS 11.2.1にアップデートしたiPhone SEで試してみた。
身近にあったUSBメモリを指してみるとこんな状態。
どうやらこの"アクセサリは使用できません。"ではないので問題なく使用できそう。
"接続されたデバイスは消費電力が大きすぎます。"というエラーは純正ケーブルでもいろんなデバイスで発生するようなので問題ない。
USBカメラアダプタの仕様上、100mAとか200mAを超えるデバイスは使えないようなのでその場合はセルフパワーのUSBハブを使うしか無いみたい。
USBデバイスの消費電力情報を読んで判断してるようなので、USB給電ケーブルとかを使ってもだめっぽい。

ちなみにUSBキーボードは使えたのでこのケーブル自体には問題なさそう。

このケーブルに使えるカードリーダーが手持ちになかったので、iPadをiPhoneに繋いでみた。
すると取り込みボタンが表示された!
iOSデバイスをこのケーブルでつなぐと消費電力を100mA以下に抑えるために充電モードにはいらない様になってるのかな。
とりあえずこれでiPadの画像をiPhoneに取り込むことができた。

他にもUSB DACなど、iOSが対応してればいろんなUSBデバイスが使えるらしいので試してみようかな。
160円ならOSアップデートで使えなくなっても問題ないかな。

100mA以下のSDカードリーダー探さないとなぁ

2017年12月8日金曜日

Google Homeで家電を制御してみる

Google Home Miniをせっかく購入したのでこの前作ったIR Stationを使って赤外線リモコンが使える家電をGoogleアシスタントで制御してみた。

流れとしてはGoogleアシスタントをIFTTTと連動させて、IFTTTからIR Stationを呼び出す感じ。
まずは手始めにシーリングライトをオンオフするところから始めてみた。

まずIR StationをどうやってIFTTTと連動させるかなんだけど、Webhookが使えそう。

Chromeのデベロッパーツールで学習リモコンのボタンをクリックしたときの動作を見てみるとsendでIDをPOSTしてる模様。
IDはどうやらリモコンを登録した順番に割り振ってるようで、さらにPOSTじゃなくてGETでも赤外線を飛ばすことができた。

とりあえず必要なリモコンのボタンをどんどんIR Stationに割り振ってIDをデベロッパーツールで調べれば行けそう。


IDの調べ方はIR StationのページをChromeで開いた状態でF12を押してデベロッパーツールを開いて学習リモコンのボタンをクリック。
するとsendが読み込まれるのでそこのForm DataというところにIDが出てくる。この数字がクリックしたボタンに割り当てられてるIDになるみたい。

そしてWebから
http://IR StationのIPアドレス/signals/send?id=先程のID

とすればIR Stationから赤外線を飛ばすことができる。
IFTTTのWebhookを使うためにポートを開けてIR Stationを外部から制御できるようにしておかないといけない。

あとはIFTTTで連動するだけ。Webhookのアドレスの部分はグローバルIPかDDNSを入れる感じ。

ネット経由の割にはだいぶレスポンスが良い。
HomeBridgeとかよりは設定が簡単でいいなぁ

これで赤外線リモコンが使えるものはほぼ音声で制御できるかも?

2017年12月4日月曜日

Google Home Miniを買ってみた

楽天ブックスで半額セールをしていたのでついGoogle Home Miniを買ってしまった。
半額なら最低限普通のスピーカー的な使い方ができれば問題ないかなと言うことで…
おもったよりだいぶ小さい箱。

箱を開けると本体が。ファブリック感が良い。

付属品はちょっとした説明とACアダプタのみ。
ACアダプタはmini USBでデザインとか質感はなかなか良いと思う。

裏面のオレンジ色はゴムで結構グリップする。本体にはACアダプタとミュートスイッチぐらいしか無いかも。タッチ式のボタンはあるようだけど。

音声認識中は真ん中あたりのLEDが光るっぽい。本体の左右を触ると音量の上げ下げができる。

とりあえず電源を入れるとGoogle Homeアプリから設定するように言われるのでGoogle Homeアプリから自宅のWiFiに繋いだり個人設定すれば普通に使える状態に。
音質的には声は聞きやすいかも。低音は物足りないけど作業用BGMぐらいだったら問題ないかもなぁ

IFTTTでも使えるようなので色々連動させてカスタムコマンドで遊んでみようかな

2017年12月3日日曜日

S270を買ってみた

結局PX-BCUDだけだとBS/CSしか見れなくて微妙に不便なのでPX-S1UD V2.0のOEM元?であるS270をポチってみた。
11/11のセールにポチって届くのに3週間かかった…
セールだから仕方ないね

中国から来た割には箱が原型をとどめている

日本語の説明も書いてある!
ISDB-T対応の国の言語それぞれで説明が書いてあるのかな

付属品はアンテナとそのスタンド2種類、アンテナ変換アダプタとUSB延長ケーブル

アンテナ端子はそのままだと日本のF型と互換性がないので付属の変換アダプタをぶっ刺します。

PX-S1UD V2.0とそっくりというかそのまんま?

とりあえずWindowsで動作確認。
ドライバはPX-S1UD V2.0のものをダウンロードして使用してみた。
BondriverはBondriver_BDATを使用した。
PX-BCUDで環境は整っているのでチャンネルスキャンするだけで普通に使えたー
今度はRaspberry Piでためしてみよ。

Related Post

ニンテンドースイッチでキーボードとマウスを使う

前回Coov N100でオプションのCoov HUB K4を購入すればキーボードとマウスが使えるという話をしましたが、友人用に代理購入してみた。 スイッチはもともとキーボードを文字入力用とかには使えるみたいだけど、このアダプタを使ってつなぐとゲームの操作に使用できるようになる。...