画像ビューア・加工ツールまとめ

IrfanView 昔からある定番ソフト。メインの画像ビューアとして使ってる。 色調補正やリサイズ・トリミング、フィルタといった一通りの加工機能はそろってる。 複数のファイルの一括変換機能もある。(例:座標を指定して一括トリミング) 透過PNGの扱いは苦手…

メモ:C#でスレッド

今どきはC#ならasync/awaitが使えるのでThreadを使う機会は減ったけどやはり使う時は使うものである。たまにしか使わないと忘れるのでメモ。 (1) スレッドの起動 ThreadStartというデリゲートを使うのがポイント。というかC#の妙ちくりんなところ。短い処理…

FTDIのUSBシリアル変換ICのCBUSの機能割り当て

FTDIのUSBシリアル変換ICのCBUSxピンには種々の機能を割り当てることができます。 FT232RLの場合、デフォルトでは下表の機能が割り当てられています。 ピン 機能 説明 CBUS0 TXLED# 送信データLED駆動 (Lowアクティブ) CBUS1 RXLED# 受信データLED駆動 (Low…

メモ:モータのトルク定数と逆起電力定数

モータのトルク定数と逆起電力定数は理論上は一致する トルク定数の単位は Nm/A (単位電流あたりのトルク) 逆起電力定数の単位は V/rpm (単位回転数あたりの逆起電力) 換算式 1 Nm/A = (2π/60) V/rpm DC電圧[Vdc] か 実効値電圧[Vrms] かも要注意

ブラウザでMQTTクライアント (Paho)

Pahoとは PahoとはオープンソースのMQTTクライアントのライブラリです。Pahoはさまざまな言語で実装されています。(Java, Python, JavaScript, C, C++, C#, Goなど) 今回はブラウザベースで使えるJavaScript版の使い方を説明します。JavaScript版Pahoは、MQT…

メモ:WindowsでEtherCATマスター

やりたいこと Windows PCで通常のLANポートを用いてEtherCATのマスターになる。 SOEM SOEM (Simple Open EtherCAT Master) とは、Open EtherCAT Society が提供しているオープンソースの小規模なEtherCATマスターのスタック。ソースコードはGitHubで公開され…

Herokuアプリをスリープさせない対策

Herokuアプリの無料枠だとアクセスが30分間無いとスリープしてしまう。 スリープさせない簡単な方法はHeroku Schedulerを使うこと。 手順 Herokuにログインする (アプリはすでにあるものとする) Dashboard画面右上のメニューの「Elements」をクリック Heroku…

Node-REDでMongoDB

ここではHeroku上のNode-REDでのMongoDBの扱い方について説明する。HerokuでのNode-RED環境構築や、HerokuのMongoDBアドオンの使い方については前記事を参照。 HerokuでNode-RED - 滴了庵日録 HerokuのMongoDBアドオン - 滴了庵日録 MongoDBのノード Node-RE…

concrete5のページをhttpからhttpsへリダイレクト

.htaccessに以下の2行追加するだけ。 RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L].htaccess全体は以下の通り。 DirectoryIndex index.php index.html index.cgi # -- concrete5 urls star…

MPU-6050系モーションセンサまとめ

6軸モーションセンサではSTマイクロのLSM6DS3とならんでメジャーなTDK InvenSenseのMPU-6050。派生型番がいろいろあってややこしいのでまとめ。 MPU-6050はI2Cのみで4mm角QFN。 MPU-6500はI2C/SPIで3mm角QFNだけどあまり見かけない。 MPU-9150 = MPU-6050 + …

HerokuのMongoDBアドオン

データベースのPaaSというと、選択肢はここに書ききれないくらい多いと思う。また、Node-REDでノードが用意されているデータベースというのも1ダースくらいはある。(こちらの記事を参照→Node-REDで扱えるDBノード総まとめ - Qiita) ここではHerokuのアドオン…

HerokuのCloudMQTTアドオン

MQTTブローカーのPaaSはCloudMQTTが手軽で便利。ふつうにユーザー登録して使ってももちろんいいけど、Heroku上のアプリからCloudMQTTを使うならアドオンを利用すれば登録の手間がなくてなお便利。 手順 Herokuにログインする (アプリはすでにあるものとする)…

HerokuでNode-RED

Node-REDをPaaSで利用する場合、IBM Cloud(旧称Bluemix)が王道だと思うけど、Herokuでもボタンひとつでデプロイできる。仕組みがイマイチよく分からんけど、下記のHerokuボタンをポチっと押すだけ。 elements.heroku.com 手順 herokuのアカウントを作成して…

アプリ用アイコンの作成

元画像の作成 Inkscape等でデザインする。 サイズはAndroid/iOSなら1024×1024。Windowsなら256×256以上 (1024×1024で作成してもよい)。 PNGファイル(32bit透過)にエクスポート。 Android/iOSアプリの場合 下記オンラインツールで、必要なサイズの一括リサイ…

Windowsのファイルアクセス監視ツール

例えば、あるプロセスのファイル入出力をモニターしたいとかに使えるツール。 SoftPerfect File Access Monitor forest.watch.impress.co.jp 使い方 起動するとログイン画面になるが、ローカルのPCを監視するならホスト名はデフォルトの「localhost」、パス…

C#のイベント処理

C#のイベント処理の書き方、なんか珍妙ですぐ忘れるのでメモ。 イベントの型の定義 // イベント引数の型 public class HogeEventArgs : EventArgs { public string HogeData; } // イベントの型 public delegate void HogeEvent(object sender, HogeEventArg…

ESP8266のMQTTライブラリ

IoT

今さらだけど、ESP8266で使うMQTTライブラリ乱立してて困る。 adafruit/Adafruit_MQTT_Library knolleary/pubsubclient tuanpmt/esp_mqtt marvinroger/async-mqtt-client 【注意】以下の記述は憶測や噂話や筆者の主観を含みます。 adafruit/Adafruit_MQTT_Li…

西のローマ、東のギリシャ

地中海の西部でローマとカルタゴがポエニ戦争を戦っていたころ、東部にはアレクサンドロス大王の後継者たちが建てたギリシャ系王朝(アンティゴノス朝、セレウコス朝、プトレマイオス朝)が割拠していた。いわゆるヘレニズム三国だけど、どういうわけかヘレニ…

言語学ネタ (印欧語族の古代語)

性・数・格の一致 インド・ヨーロッパ語族に広くみられる「性・数・格の一致」というのは、乱暴に言うと「韻を踏む」ことだと思ってる。例えば、古代ギリシャ語の例。 サンスクリット語と漢文 サンスクリット語の複雑怪奇な動詞の変化と比べると、漢文のなん…

PS2コントローラをArduino系ボードで使う

やりたいこと ワイヤレスのプレステ2コントローラおよびその互換品 (以下、PS2コントローラ) をArduino系マイコンボードにつないで使いたい。たとえばロボットを操縦するコントローラとして。 インターフェース PS2コントローラはSPIインターフェースで通信…

IoTマニ車

大晦日ハッカソン2018の成果です。 今日はこのマニ車のIoT対応をやります。マニ車を回した回数をWiFiでインターネット上のサーバーに送り、パソコンやスマホ等のブラウザに通知して表示させたいと思います。 WiFiマイコンはおなじみのESP8266。ロータリーエ…

ロボットハンガー

アルミフレームを組んでホビーロボット用のハンガーを作りました。 アルミフレームはモノタロウ等で手に入り、六角レンチ一本で組めて簡単に剛性と直角が得られるすごく便利な部材です。2020タイプ(20mm×20mm)、3030タイプ(30mm×30mm)、4040タイプ(40mm×40mm…

SyncToyでフォルダの同期

Windowsで2つのフォルダの内容を同期するには昔はRealSyncを使ってました。当時はたいへん重宝しましたが、もう十年以上前に開発が止まっているようです。今は何が良いのか、なかなか決定版というのがみつかりません。まあ、今どきはDropBox等のクラウドスト…

Androidアプリの書き方思い出し(3)

オブジェクトのシリアライズ オブジェクトをIntentに持たせたりSharedPreferencesに保存する場合、JSON形式でシリアライズして文字列として扱う。JSON形式のシリアライズにはGSONというライブラリを使う。 まず、Moduleのbuild.gradleに依存関係を追記する。…

Androidアプリの書き方思い出し(2)

設定データの保存/読み出し SharedPreferencesを使う。 おなじみのキーバリューストア方式である。 // 保存 SharedPreferences pref = getSharedPreferences("Hoge",MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putString("Key1"…

Androidアプリの書き方思い出し

画面遷移 サブ画面に移るには、Intentを作ってstartActivityする。 Intent intent = new Intent(getApplication(), サブ画面Activityのクラス名.class); startActivity(intent); サブ画面のActivityを作るには、[Projact]ウィンドウの[app]を右クリックして[…

Fireタブレット

AmazonのFireタブレットは異様に安い。そのかわりAmazon特製オレオレAndroidなので、ふつうのAndroidタブレットとしては使いづらい。とくかくAmazonを利用すること中心のユーザー体験を強いられる。まあ、Amazonの販促ツールなのだから当然といえる。ぼくは…

x86インラインアセンブラ (2)

x86インラインアセンブラ - 滴了庵日録 のつづき。 メモ 配列もC言語の変数名がそのまま使える。 ただし、アドレスのスケーリングは明示する必要がある。 32ビット整数ならスケーリングは *4 (任意の数を指定できるわけではない)。 ブロック転送には、esiとe…

Webアプリでデータの保存

HTML5+JavaScriptでローカルにデータを保存する実験。 データの保存にはWebStorageを用いる。 WebSotrageはKey-Valueストア方式。 永続保存されるlocalStorageとブラウザ閉じたら消えるsessionStorageがある。 保存/読み出しはsetItem/getItemメソッドを使う…

Webアプリで加速度センサ

HTML5+JavaScriptで加速度センサのデータを取得する実験。 PCのブラウザで開いても何も起こらないが、スマホのブラウザで開くと 向き・加速度・角速度のデータが表示される。スマホでも角速度センサ(ジャイロ)を持たないでは角速度は表示されない。 z軸は画…