software_development」カテゴリーアーカイブ

PCからの音声でスマートスピーカーを動作させてみる

PCからの音声でスマートスピーカーを動作させてみる。

スマートスピーカーを使っていて、よく使うフレーズがなぜかちゃんと認識されず無視されてしまったり、誤爆してしまったりすることがある。
何度も言い直したり、誤爆したコマンドをキャンセルしたりちょっと面倒だ。

あらかじめよく使うフレーズを、ボタンなどを押したときにPCから再生させてスマートスピーカーを動作させるというのを思いついた。
本末転倒な感じがするが、気にしないことにする。
続きを読む

ArduinoをWindows PCに繋いだ場合のCOMポートの番号を調べるプログラムでちょっと失敗した

ArduinoをWindows PCに繋いだ場合のCOMポートの番号を調べるプログラムでちょっと失敗した。

Arduino Unoの中華互換機を使って試していて気が付いたのだが、シリアル通信のデバイスについてSetupAPIやレジストリの文字列をチェックするとArduinoという文字が出てくる場合と出てこない場合があるというのに気が付いた。

あるPCだとArduinoという文字がドライバ情報に入っているので、そのCOMポートの番号がArduinoだと特定することができた。
それで安心していたのだが、別のPCだとArduinoという文字が入っていなかったのでArduinoを見つけられなかった。
続きを読む

Windowsのsetupapi.hは、WinDDKでなく普通に入っているようになってたらしい

Windowsのsetupapi.hは、WinDDKでなく普通に入っているようになってたらしい。
(WinDDK = Windows Driver Development Kit)

昔、自分で作ったプログラムで、USB-UARTのポート情報を調べてCOM:のポート番号とそのポートのドライバがFTDIなのかSiLabなのかArduinoなのかを調べるというプログラムというのがあり、WinDDKのsetupapiを使っていた。
PCのCOMポート番号やポートの情報を調べるためのライブラリ
そのWinDDKのsetupapi.hというヘッダファイルをincludeしていたソースを最近コンパイルしなおすのにヘッダが見つからないということがあった。

そこでsetupapi.hって、WinDDKでないと入っていないのかとか調べていてWinDDKが不要というのに気がついた。
Win32 Setup APIでシステムに存在するデバイスのクラス・インターフェイスのクラスと説明を列挙する

Visual Studio 2019で、普通に

#include <setupapi.h>

として、
あとはリンクするときにsetupapi.libをリンクするようにすればよい。

Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた

Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた。

Visual Studio 2019でDxLibを使ってみた、という話の続き。

地図画像のデータは、Google Maps Static APIを使って取得する。
Google Maps Static API v2を使ってみた

そして、取得した画像をDxLibのDrawRotaGraph2という機能を使って、回転表示させてみた。

続きを読む

Visual Studio 2019でDxLibを使ってみた

Visual Studio 2019(Community版)でDxLibを使ってみた。

先日、Visual Studio 2019が出る前に、ちょっとDxLibを使ってみるためにVisual Studio 2017(Community版)でDxLib 3.0というバージョンを使ってみるというのを試していてうまく行かず悩んでいた。

DxLibのバージョン3.20cというバージョンが出ているのに最近気がついて、それに差し替えたら無事Visual Studio 2017で使うことができて、Visual Studio 2019でも同様に使うことができた。
続きを読む

平成のガジェット

PC-E500というポケコンを買って、ソフトを作るのにハマっていた。そんな平成の始まりだった。
ポケコンPC-E500のソフト開発

その後いろいろなガジェットを手にして、ソフトを作ったり作らなかったりした。HP95LXとかザウルスとかW-ZERO3とかiPhoneとかAndroidスマホとか。
しかし、PC-E500ほど時間と情熱を割いたガジェットはなかったと思う。

Google Maps Static API v2を使ってみた

Google Maps Static API v2を使ってみた。

Maps Static APIは、地図の画像を画像ファイルとして取得するためのAPIだ。

昔、古いAPIでStatic APIをちょっとだけ使っていた。API v1の時代だ。
しかし、2009年に終了してしまっていて、今では旧APIを叩いても地図の画像を得られない。

続きを読む

WiFi機器の電波の強度のRSSIの値が、対数(dBm)の場合と0~100%の場合があって紛らわしい (FlashAirでちょっと悩んだ)

WiFi機器の電波の強度のRSSIの値が、対数の場合と0~100%の場合があって紛らわしい。

Windows 10で、ノートPCなどのWiFi機能を内蔵している場合、コマンドラインから
netsh wlan show all
と入力することで、WiFiの状態を調べることができ、周囲にあるWiFiのアクセスポイントの情報も得ることができる。
この場合、それぞれのアクセスポイントの電波の強度がパーセント表示されている。

このように周囲のWiFiのアクセスポイントを情報を調べた場合、電波の強度はRSSIという値として得られる。

RSSIとして表示される値というのは実装によって異なるらしい。基本的には数字が大きい方が強い電波の受信強度を表すようになっているものらしい。
RSSIについて – IBS Japan
続きを読む

FlashAirで周囲のWiFiのアクセスポイントのログを取って歩いて、GoogleのGeolocation APIで緯度経度を求めた結果を地図にプロットしてみた

FlashAirで周囲のWiFiのアクセスポイントのログを取って歩いて、GoogleのGeolocation APIで緯度経度を求めた結果を地図にプロットしてみた。
前に書いた「FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた」という話の続きだ。

名古屋の大須の電気街の招き猫広場からスタートして、反時計回りに第一アメ横ビルの周辺の道を回って一周して歩きながらログを取ってみた。
そうやって取得したログ情報から、GoogleのGeolocation APIで緯度経度を求めた結果、このようになった。





名古屋の大須の地図の上に、縦長の四角形を描くように地図マーカーが並んでいる。
左下がスタート地点の招き猫広場だ。
そこから約30秒毎にログが記録されている。
ほぼ一定の速度で歩いたのだが、マーカーは等間隔になっていない。これはGeolocationの精度が出なくて位置がずれているためだ。
GPSほどの精度は出なくて20メートル~100メートルくらいのずれが生じているようだ。

大まかに位置が記録できるロガーになりそうだ。FlashAirが薄っぺらいので、薄くて小型なロガーを作るというのができそうだ。
使い道としては、ちょっと思いつかないのだが、ポケットに入れておけば大雑把に一日の行動が記録できるだろう。あと、小包とかを送るときに中にロガーを仕込んでおけば送られた経路とかを調べられそうだ。
続きを読む