Alpaca Soft Blog

ゲーム作る系 草食動物の備忘録

【雑記】家の中を自動化計画【スマートホーム】

センサーやらスマホとかの家電で家を色々自動化していってます。

細かい事でも毎日利用するものなら数秒の手間でも大きく変わっていきます。

買ったやつを紹介していきます。 

*商品写真クリックでshopに移動

 

 

AIスピーカー

Alexa

「アレクサ、○○」と語りかけるだで、いろいろ聞いてくれます。

お金は稼いできてくれません。

 

私がよく使う利用方法としては、 

・天気予報(気温)を聞く

・赤ちゃんに聞かせる音楽を再生(オルゴールみたいなやつ)

・アルパカについて調べる

他の人は、

・ニュースを聞く

・設定した音楽流す

等やっているみたいです。

「歌って」とかでも対応してくれます。

 

 自分でスキル作ったりIFTTTとかで連携できたりもします。

 

スマート家電と組み合わせるとより便利になるけど まだ活用できていません。

いるとたまに便利です。

 

セサミ スマートロック

スマホで鍵の開閉を行えるやつです。

帰宅時にオープンやオートロックもできるみたい(まだ試してない)

開閉ログ(自動or手動)とかも見れます。 

 

公式

セサミ スマートロック | CANDY HOUSE, Inc. JAPAN – CANDY HOUSE JAPAN

 

公式動画

  

パールホワイト、マットブラック、シャンパンゴールド、シャンパンシルバー。

の4種類(2018/06現在)

 

bluetooth単体版   /   bluetooth+wifiセット版 

 

本体はBluetooth対応。

Wifiアクセスポイントは別売り。(セットだと1000円ぐらいお得)

違いは、 amazonで細かく記載されています。

https://www.amazon.co.jp/dp/B076WXCRZ4/ref=twister_B078Y7LFRH?th=1

f:id:alpacatech:20180605150031p:plain

 

wifi版は、鍵の閉め忘れを気にする人は安心材料になるかも。

 

「セサミ」は、オープンセサミ(開けゴマ)から来てるみたいです。

 

 

ソープディスペンサー

[液体タイプ] Topbasic【改良版】オートソープディスペンサー

 

液体タイプです。

ロートが付属しているので液体石鹸入れるの楽でした。

石鹸の出る量は2段階です。

乾電池式。

2000円ぐらいで購入。

 

市販の詰め替え利用できます。

 

これ利用しました。

 

水道も自動化したい。

 

 

[泡タイプ] Lantoo ソープ ディスペンサー

 

こちらは泡タイプです。

中身が見えます。

こちらも市販の詰め替えで問題なかったです。

乾電池式。 

2500円ぐらいで購入。 

 

電球

ALED LIGHT LEDセンサーライト

 

人感センサーで電気がつきます。

電気代抑えられるし、電気消した消してないで喧嘩することもなくなるはず。

 

サイズ間違えた 

だったけど、サイズ間違えました/(^q^)\

ソケットサイズE17です。

日本のよくある電球サイズはE26です。

これから買う人は注意してください。

 

 変換器買いました。

 今は、問題なく動作しています。

  

E26                     / E17 

 

 

 

体重計

Nokia スマート体重計 Body Cardio ホワイト 

 

wifi接続することで、体重や体脂肪率等を管理ページにアップロード

体重等の増減グラフをスマホ等で確認できます。

多人数で利用しても、識別してくれます。

(近い数値の人同士だとどうなるかわからない)

 

※これを買うだけでは痩せれません。 

 

  

掃除機

アイロボット ロボット掃除機 ルンバ691 R691060

まいどおなじみルンバ。

私のは、これより古いタイプなので新しい機能はわかりません。

自分で充電しに行ったりします。

 

ルンバが動けるような床にしないと掃除途中で動けなくなります。

・物を置きすぎない

・段差作らない

・ケーブル出しっぱにしない

ルンバの為に掃除する必要があります^q^

ワンルーム暮らしの時はよく動いてました。

 

 

【python】VisualStudio2017のpythonでopencv

インストール手順

Python3.6を右クリックして

Pythonパッケージのインストールを選び

f:id:alpacatech:20180531134845p:plain

 

pip installを行うウィンドウが出るので、

opencvで検索。

opencv-python(...)クリックでインストール。

*numpyとセットでインストールされました。 

f:id:alpacatech:20180529183713g:plain

 *ViusalStudio2017 15.5.6で確認

 

OpenCVサンプルコード

画像読み込み+表示

import numpy as np
import cv2

img = cv2.imread('test.jpg')  #test.jpg読み込み
cv2.imshow('test', img)       #imgをtestウィンドウで表示
cv2.waitKey()                 #何かキーを押されるまで待機

 

 test.jpgが読み込まれウィンドウで表示されます。

キーが押されると終了

 

画像生成

img = np.zeros((480, 640, 3), np.uint8)  # 640x480のRGB画像生成

 

 

画素に直接アクセス

for y in range(img.shape[0]):
    for x in range(img.shape[1]):
        img[y,x,0] = 0

↑全部の画素のBに0を代入

 img[y座標,x座標,チャンネル] = 0~255

チャンネルは、0...B / 1...G / 2...R

 

 

 

 

 

【Unity】メニューを追加する方法+セーブフォルダを開く

 

スクリプト生成

Editorフォルダを作成。
その中にスクリプト生成。

 

OpenSaveData(persistentDataPath)Folder

 

Editor関連はEditorフォルダに入れないと

Editor以外でのビルドエラー等が発生します。

 

コンポーネントのメニューに追加する

 [ContextMenu("TestFunction")]

public void TestFunction()

{

    // 処理

}

 

と記述することでコンポーネントの歯車からメソッドを呼び出すことができます。

f:id:alpacatech:20190709180303p:plain

 

UnityEditorのメニューに追加する

[MenuItem("SaveData/OpenPersistentDataPath")]

public void Foo()

{

処理

}
と記述することでメニューが追加され、選ぶと内部の処理が実行されます。

f:id:alpacatech:20180427191359p:plain

  

セーブデータフォルダを開く

Application.persistentDataPath

フォルダを開く場合は、以下の通りです。

 

System.Diagnostics.Process.Start(Application.persistentDataPath);

エクスプローラでフォルダがオープンされます

 

Windows10で確認。

Macは未確認

 

 

【Unity】コルーチンの中でコルーチンを呼ぼうとしてミスった

コルーチン処理を分ける(コルーチンの中でコルーチンを呼ぶ)

まずは正解パターンから。 

void Start()
{
	StartCoroutine(coMain());
}

IEnumerator coMain()
{
	for(int i=0;i<3;++i)
	{
		yield return coSub();
	}
	yield break;
}

IEnumerator coSub()
{
	Debug.Log("Sub.Start");
	yield return new WaitForSeconds(1.0f);
	Debug.Log("Sub.End");
}

こう書くことで、コルーチンの処理を分割できます。

結果は、「"Sub.Start"→1秒待機→"Sub.End"」を3回繰り返します。

 

利用できるのはUnity5.3から?

参考

Unity5.3から、コルーチン内でコルーチンを呼び出しやすくなった | Unity用ビジュアルノベルツール「宴」

 

間違えた

サブコルーチン?を呼ぶときに

    yield return coSub();

と書かずに、

    coSub();

と書くと中のWaitForSeconds(1.0f) は機能せずに戻ってきました。

    while(true)
    {
        coSub();
    }

と書くとフリーズします(waitが一切ない永久ループ)

気づくまでフリーズ再起動祭りでした。

 


おまけ

フレーム単位で待機したい
IEnumerator WaitFixedFrame(int frame)
{
    for(int i = 0; i < frame; ++i)
    {
        yield return new WaitForFixedUpdate();
    }
}

...
yield return WaitFixedFrame(15);	//	15F待機

これやりたかった。

【Unity】Inputに関する備忘録

随時更新予定

 

マウス

座標取得

Vector3 mousePosition = Input.mousePosition;
範囲は、

x ... 0~Screen.width

y ... 0~Screen.height

 

スマホ等でマルチタッチ環境の場合、タッチしている点群の中央が座標となります。

例)2点タッチした場合

1点目(100,200)

2点目(200,400)

座標 = (150,300)

 

クリック

if(Input.GetMouseButtonDown(0)){

    //  左クリックされた

}

Input.GetMouseButton(0);  // 左ボタン押されている間

Input.GetMouseButtonDown(0); // 左ボタン押した瞬間

Input.GetMouseButtonUp(0); // 左ボタン離した瞬間

 

 

UIボタンを押した場合は処理しない

// uGUIでボタンが押されているか

if(EventSystem.current.IsPointerOverGameObject()){
    return;
}

 // マウスボタン処理

...

 

参考

nn-hokuson.hatenablog.com

 

 

 

ジョイスティック、キーボード

十字キー取得 

var ix = Input.GetAxis("Horizontal");  // 横軸取得
var iy = Input.GetAxis("Vertical");   // 縦軸取得

-1.0 ~ +1.0の範囲で戻ってきます。

  

カーソルキーやWASD入力が場合もっさり動く

メニューのEdit->ProjectSettings->Input で

Gravity = 15

Sensitivity = 15

あたりにするとキビキビ動きます。

f:id:alpacatech:20171208163307p:plain

参考

tsubakit1.hateblo.jp

 

 

ボタン

if( Input.GetButtonDown("Fire1") )

{

// Fire1ボタンが押された

}

 

Fire1

Fire2

Fire3

Jump    

 

押した瞬間(1フレーム)

Input.GetButtonDown

Input.GetKeyDown

Input.GetMouseButtonDown

押している

Input.GetButton

Input.GetKey

Input.GetMouseButton

離した瞬間(1フレーム)

Input.GetButtonUp

Input.GetKeyUp

Input.GetMouseButtonUp

 

 

追加予定

タッチ

オブジェクトをクリック

 

 

 

 

 

 

 

 

 

【C#】 CSVファイルを読み込む(ダブルクォーテーション、文字コード指定対応)

CSVファイルについて

CSVファイルは、基本的にカンマ区切りのファイルですが、
細かいルールがあり

・区切り文字がカンマでなくタブの場合もある(TSV)

・区切り文字を含む場合は、文字列をダブルクォーテーション""で囲む

・様々な文字コードutf-8,sjis等々)

等と自前で対応するには大変です。

Comma-Separated Values - Wikipedia


今回は、Microsoft.VisualBasic.FileIO を利用して読み込みました。

手順

1.参照を追加

プロジェクトの参照を右クリック

f:id:alpacatech:20180312182115p:plain

visualbasic...で検索

f:id:alpacatech:20180312182118p:plain

チェックを入れてOK


2.クラス書く

CsvFile

 

3.使い方

 

CsvFileSample

 

参考サイト 

webbibouroku.com