読者です 読者をやめる 読者になる 読者になる

脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

openCVのGaussianBlurで画像をぼやけさせる

opencvで以下のmballの画像をぼやけさせます method cv2.GaussianBlur(img_src, average_square, sigma_x) img_srcは読んで字のとおり画像 average_squareは正方形を画素数で指定して、その正方形内の色をまとめて平均化してしまう だから(1,1)だとほとんど…

raspberryPiにinfluxdb1.2をinstallする

以前v1.0.2のinstall方法を書きましたが、今回は最新版のinfluxdb1.2をraspberryPiにインストールする方法です。 必要であれば前のパッケージは以下のコマンドで削除しておきましょう $ sudo dpkg --purge influxdb 手順 repositoryの設定 $ sudo apt-get up…

raspberryPiにgvmでGoをインストールする方法

gvmとはgo version managerで、文字通りgo のvesionマネジメントシステム GitHub - moovweb/gvm: Go Version Manager rvmに影響を受けているらしく、似たようなコマンドで使用することが出来る install library $ sudo apt-get install curl git mercurial m…

特定のファイルでだけvimでsyntax onが効かない場合

他のファイルはsyntax onが効くのに特定のファイルでsyntax onが反応しなくてカラー表示できない場合そのファイルのvimの設定ファイルを削除してリセットしてやるといい cd ~/.vim/view rm -i ~=+path+to+file= これで再度vimでファイルを開くと設定ファイル…

raspberryPi にnoipでDDNSの設定をする方法

raspberryPi3 jessieにnoipでDDNSの設定をする方法です。 no-ipの登録 DDNSサービスを提供している会社は色々ありますが、今回は調べていて割りと名前をよく目にするno-ipを利用することにしました Free Dynamic DNS - Managed DNS - Managed Email - Domain…

raspberryPiにinfluxdbとgrafanaをインストールする

ラズベリーパイにinfluxdbをインストールして、データをgrafanaでvisualization化する方法です。 Install influxdb 1. install influxdb $ wget http://ftp.us.debian.org/debian/pool/main/i/influxdb/influxdb_1.0.2+dfsg1-1_armhf.deb $ sudo dpkg -i inf…

気象庁の風向・風速の計測(計算)方法

瞬間風向・風速 瞬間風向:0.25秒毎の瞬間の向き 瞬間風速:0.25秒間の風速パルス信号を計測し、その3秒間(12レコード)分の平均値 以前は0.25秒間隔の測定値をそのまま利用していた 平均風向・風速 平均風向:10分間のデータの平均風向 ただし航空機の離着陸…

raspberryPi3(jessie)にopenCV3.1.0をインストールする

わりと手こずりましたが、ラズベリーパイにopencv3.1.0をインストールする方法です 以下のサイトを参考にさせて頂きました。 reference Raspberry Pi 2 ★ OpenCV 3.1.0 のインストール 〜 C++ & Python サンプルでのカメラ動作確認まで | Home Made Garbage …

openCVでraspberryPiのUSBカメラのキャプチャをとって、サイズを変更する

import cv2 # cameraの設定 c = cv2.VideoCapture(0) # キャプチャ boolean, img = c.read() h, w = img.shape[:2] print h # 1280 print w # 720 # サイズ変更 half = cv2.resize(img, (320, 240)) hh, hw = half.shape[:2] print hh # 320 print hw # 240 …

motionを使ってRaspberryPiからUSBカメラの映像をストリーミングする方法

motionのインストール sudo apt-get install motion 設定の変更 sudo vi /etc/motion/motion.conf ### USBカメラの設定をする(解像度やFramerate) 89 # Image width (pixels). Valid range: Camera dependent, default: 352 90 width 320 91 92 # Image heig…

USBカメラの解像度等の情報を確認する方法

deviceの確認 まずはカメラを接続したらlsusbで認識されているか確認します $ lsusb Bus 001 Device 005: ID 288c:0002 # <== これが追加された Bus 001 Device 007: ID 05ac:0222 Apple, Inc. Aluminum Keyboard (JIS) Bus 001 Device 006: ID 04ca:0061 Li…

low voltage detected, date/time is not reliable.

エラー文 RaspberryPiでRTCから時刻合わせをしようとすると以下のようなエラーが出ることがある。 Jan 01 23:11:11 raspberrypi kernel: [ 131.098038] rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable. ちなみに使ったRTCはこちら リ…

RubyのThreadのステータスに関して

class Thread (Ruby 2.4.0) instance method Thread#status (Ruby 2.4.0) instance method Thread#alive? (Ruby 2.4.0)Rubyのスレッドに関して各ケースのステータスまとめ 各項目がとる値 thread object(thread.inspect) run sleep aborting dead thread.sta…

raspberryPiでRTCを使おうとしたときにargument Errorになる

前提条件として、raspberryPiにはRTCがついていないため、シャットダウンしてしまうと時間を保持しておくことが出来ない。なので通常は起動時にntpでシステムの時刻をあわせるのだが、当然インターネット環境がない場合はその時間合わせをすること自体が出来…

raspberryPi3のIPを固定する方法(static ip)

raspberryPiは通常自動でIPをアサインしてくれますが、それでは困る場合などに固定IPアドレスにする方法です。 raspbianのversion upに伴い、raspberryPi2の時とは方法が変わっているようです。ちなみにversionは8.0です $ cat /etc/debian_version 8.0 /etc…

Rubyでシリアル通信する方法(serialport gem)

Rubyでシリアル通信する場合は、serialport gemを使うと簡単にできます。 install serial port $ gem install serialport How to Use require 'serialport' sp = SerialPort.new('/dev/ttyS0', 115200, 8, 1, 0) # device, rate, data, stop, parity # 送信 …

sinatraでhashデータをJSONとして返す方法

方法 require 'json' return #{hash}.to_json 例 require 'sinatra' require 'json' get '/top' do hash = { "key1" => 1, "key2" => 2, "key3" => 3, } return hash.to_json end

raspberryPi3とWindowsPCでシリアル通信する方法

環境 RaspberryPi3 WindowsPC USB-serial変換ケーブル FTDI USB・シリアル変換ケーブル(3.3V): 半導体 秋月電子通商 電子部品 ネット通販 接続 raspberryPi側 調べると色々出てきますが、変換ケーブルのGND, TXD, RXDをRaspberryPiのGPIOに差し…

mjpg-streamerでraspberryPiのカメラからストリーミングをする方法

以下のサイトを参考にさせて頂いてraspberryPiのカメラでストリーミングを行えるようにしました neuralassemblyのメモ: Raspberry Pi用カメラモジュールおよび赤外線カメラPi NoIRの映像をandroidで表示してみた 1. カメラの接続 まずは何はともあれカメラを…

RaspberryPi3 初期設定

RaspberryPi3にraspbianをinstallして初期設定を行う方法です 1. SDカードをいれて、ケーブル等をつなぐ SDカードにraspbianのimageをいれて、SDスロットにさし、電源ケーブルに繋ぎます この時点でraspberryPiの装備は raspberry Pi3 SDカード(raspbian ima…

AVPro Videoで映像の再生ができなくなった時の調査したことまとめ

何もしてないのにこわれた!!()ということでOculus Rift向けの動画アプリをUnityで作っていたのですが、急に動かなくなりました。 具体的には音声は聞こえるものの、映像は白一色で何も見えません。 Unityのシミュレータだけではなく、以前ビルドしたアプ…

HMDスペックまとめ(Oculus Rift CV1/GearVR/HTC Vive/PSVR)

VR

簡単に調べた各HMDのスペック表です。 Oculus Rift CV1 GearVR(Galaxy S7 Edge) HTC Vive PSVR 解像度 2160×1200 2560×1440 2160×1200 1920×1080 端末再生可能解像度 PC依存 4k(3840 x 2160) PC依存 4k(PS4 Pro) リフレッシュレート 90Hz 60(fps) 90Hz 120Hz…

GPGPU用語集てきなもの

備忘録 CNN Convolutional Neural Network(畳み込みニューラルネットワーク) AlexNetのような畳み込み層とプーリング層を含む多層ニューラルネットワークのこと BLAS 線形代数演算を行うためのライブラリ ATLAS Automatically Tuned Linear Algebra Software…

Unityのmetaファイルが持つguidを変更する

前提 Unityでは各ファイルに対してメタファイルが自動で生成される このmetaファイルの中でguidというパラメータが設定されている 他のオブジェクトとの相関性などは、ファイル名ではなくこのguidをもとにして行われている fileFormatVersion: 2 guid: 14f9h…

Android端末で初回起動時にStreamingAssetsからPersistentDataディレクトリにデータをコピーする方法

UnityでStreamingAssetsに配置したファイルはアプリコンパイル時にも圧縮されないため、必要な情報の保存に利用できる。 しかしこのStreamingAssetsはアプリ内にStreamingAssetsという名前のディレクトリが作成されるわけではなく、いわゆるシムリンク的なも…

PlayerPrefsとStreamingAssetsにおけるファイルの扱いの違い

Player Prefs StreamingAssets Windows Android Windows Android デバイス上で保存される場所 システムレジストリ ShaderPreferences コンパイルしたアプリのDataディレクトリ - ファイル内容の修正に関して regeditで編集可能 通常不可 テキストエディタで…

Unityのオブジェクトをスクリプトから回転する方法

方法 YourObject.transform.Rotate (x, y, z); YourObject.transform.rotation = Quaternion.Euler (x, y, z); 例 using UnityEngine; using System.Collections; public class Nouziru : MonoBehaviour { public GameObject cube; void Start(){ cube.trans…

UnityでOculus Rift用に作成した高解像度のmp4動画がカクつくことに関する検証

UnityでOculus Rift用に動画コンテンツを作る際に、解像度によっては結構な頻度でカクつきが発生します。 原因や解決方法など色々調べたので備忘録もかねて書いておきたいと思います Movie Texture UnityにはWindowsプラットフォーム用にMovie Textureという…

AVProVideoでOculus Rift用の360動画アプリを作成する

以前GearVR用の360動画アプリの作成方法を載せましたが、今回はOculus Rift用の開発方法を書きたいと思います portaltan.hatenablog.com 使用ツール AVProVideo GearVRではEasyMovieTextureを利用しましたが、RiftではAVProVideoを利用します。 AVProVideoは…

UnityのApplication.Quit()がWindows環境でフリーズしたりしなかったりする

Application.Quit()によるアプリのフリーズ Unityのversionを5.3.6p1にあげたところ、Application.quit()が動いたり動かなかったりするようになってしまいました 動かないときはアプリ自体がフリーズして最終的にはクラッシュしてしまいます調べてみると色々…

GoPro6台で360動画を撮影して貼り合わせる方法(定点撮影)

VR

GoPro6台でジグを利用して動画を撮影し、Kolorを利用してスティッチしてEquireqtangular形式の360動画を作成するまでの流れです 利用した機材・ツール GoPro Hero4 Black Adventure × 6台 GoPro用ジグ GoPro用リモートコントローラ(Smart Remote) SDカード K…

Unityをコマンドラインからオプションを指定して起動する

通常Unityは立方体のUnityのアイコンをクリックして立ち上げるが、コンソールから実行するとコマンドライン引数としてオプションを指定することができる Unity - マニュアル: コマンドライン引数Windows環境の場合はコマンドプロンプトで以下のように実行す…

AVProVideo/AVProWIndowsMedia/AVProQuickTime

AVProシリーズはプロダクトが色々あって当初結構混乱したのでまとめ AVPro QuickTime http://renderheads.com/product/av-pro-quicktime/ すでにUnity AssetStoreからは提供終了 以下に置き換えられている AVPro Video AVPRO Video(iOS) AVPro Windows Media…

Unityでmp4の4K動画を再生する方法(AVProWindowsMedia)

AVProWindowsMediaでmp4の4K動画を再生できるようにする方法です公式のドキュメントに方法があるので、それに沿って説明します。 http://downloads.renderheads.com/docs/UnityAVProWindowsMedia.pdf Super High Resolution 4K / 8K Playback ここをざっくり…

C#でcharをASCIIコードに変換したり戻したりする方法

C#

ASCIIコードにする方法 (int)変換したい文字 ASCIIから戻したい場合 (char)ASCIIコード 例 char foo = 'A'; Debug.Log ((int)foo); // ==> 65 char bar = ((char)65); Debug.Log (bar); // ==> A

C#でファイルの読み書きの方法

C#

Read StreamWriter writer = new StreamWriter(path); writer.Write(value); writer.Close(); pathは保存したいファイルのパス Unityとかだと『Application.streamingAssetsPath + "/" + filename』みたいな valueは保存したいデータ Write StreamReader rea…

EasyMovieTextureで動画をポーズ/再開させる

前回のポストの続きになります portaltan.hatenablog.com前回は起動したら単純に一回だけ再生するというシンプルすぎるアプリでしたが、今回は自前のスクリプトを貼りつけて、ユーザの入力に応じてポーズなどの処理をできるようにしましょう 1. デフォルトの…

EasyMovieTextureでGearVR用の360動画アプリを作成する

Unityには標準でMovieTextureという動画を再生する機能がありますが、この機能はAndroidには対応していないので、GearVRでは利用できません。UnityでGearVRの360動画アプリを作成する方法はいくつかあるようですが、現在はEasyMovieTextureというassetを利用…

Oculus Rift DK2からCV1に変えたらUnityで認識しなくなった([VRDevice] Initialization of device oculus failed)

問題 Oculus Rift DK2で今まで開発をしていたのですが、そろそろCV1に変えようということで以下の公式サイトからインストーラをダウンロードしてセットアップは無事完了したのですが、UnityがCV1を認識してくれなくなりました。 Oculus Rift Setup | Oculus…

ansible実行時のオプションTips

特定のサーバにのみ実行したい場合 -l <実行したいhost> 例 ansible-playbook playbook_example.yml -l 192.168.33.11 特定のHostsグループのみに実行したい場合 -l <実行したいhostグループ> 例 hostsファイル [web] 192.168.11.11 192.168.11.12 [storage]…

grafanaでAPIを使ってCUIからダッシュボードを作成する方法

CUIから 1. API keyの発行 grafanaのGUIからAPI keyを発行します ユーザ名を入力し、RoleをAdminに変更してAddボタンを押します APIのKeyが表示されるのでメモしておきます 2. jsonファイルの作成 ダッシュボードの設定ファイルをjsonで作成します 名前はな…

uGUIでテキストにアウトラインをつける方法

文字に枠をつける方法です 1. アウトライン項目の追加 アウトラインをつけたいテキストを選択した状態でツールバーから 「Component」 > 「UI」> 「Effects」 > 「Outline」を選択する 2. アウトラインの設定 インスペクターにアウトラインの項目が出てくる…

Unityのボタンのenabled/setActive/interactableの違い

UnityのuGUIを作成したときに、条件に応じてスクリプトから選択出来なくしたり、消したりしたい時が出てくると思いますが、その際に使う関数について 今回確認するのは Button.enabled = true/false; Button.interactable = true/false; GameObject.setActiv…

telegrafで収集したメトリクスをInfluxDBに保存し、Grafanaで表示させる方法

influxDB 時系列データベース reference InfluxData | Documentation | Installation How to Install curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB…

UnityでOculusなどのHMDの向いてる方向を取得する方法

HMDの向いている方向を取得する方法です Oculus Riftで確認しましたが、GearVRでも同じ処理で取得できるはずです 情報の取得 using UnityEngine; using System.Collections; using UnityEngine.VR; // enable to get HMD direction public class Direction :…

UnityでXboxコントローラの3Dスティックではなく十字キーで移動させる場合

Unityでボタンを複数作成するとデフォルトでXboxコントローラの左スティックで移動できるようになりますが、左スティックを無効にして十字キーで動かしたい場合の方法です。 手順 1. Inputマネージャーを開く Edit > Project Setting > Input 2. Input マネ…

Unityでボタンの表示を文字じゃなくて画像にする方法

まずは普通にUnityを起動してHierarchyから「UI > Button」を選択すると以下のような感じになると思います。 この文字ベースのボタンを画像ベースのボタンに変更します 1. RawImageオブジェクトの作成 RawImageオブジェクトが作成されると以下のように真っ白…

gangliaでGPUの情報を監視しようとしてえらい苦労した話

gangliaでGPGPUサーバのデータを監視しようとしたのですが、はまりポイントが多数あって苦労しました Gangliaのインストール 1. Master server ### install packages sudo apt-get install ganglia-monitor rrdtool gmetad ganglia-webfrontend ps -eaf | eg…

Ubuntu14.04でApacheがphpを使えない場合

PHPがインストールされていない可能性があるのでinstallしてapacheを再起動します php install & apache restart sudo apt-get install php5 libapache2-mod-php5 sudo service apache2 restart まだおかしい場合 ログ確認 # cd /var/log/apache2 # tail -f …

Unityでコントローラを利用したセレクト画面の作り方2(Submit取得の改良)

前回 前回のポストではクリック情報を取得するために、 1. ButtonFunction.csスクリプトを作成 using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class ButtonFunction : MonoBehaviour { public void StringArgFun…