アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

RoombaをSiri経由で呼び出す

○はじめに

我が家のRoomba960はWifiでIPhoneからスタートさせることができるのですが、そろそろメニューを開くのも面倒になってきたので、Siri対応させることにします。

iRobot ロボットクリーナー ルンバ960 メッドシルバー R960060 R960060

新品価格
¥83,080から
(2018/12/25 12:37時点)





○手順

実は前々から、node経由でRoomba900シリーズをコントロールできるコードがここにあるのは知っていたのですが、探すと既にHomebridgeがありました。

Raspiの事前準備やnodeのインストール等は以下を参考にしてください。

Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その1)
Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その2)
Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その3)

Homebridgeのインストールに関しては、ここに書いてある通りですが、一応書いておきます。


1) Homebridgeのインストール
npm install -g homebridge


2) Homebridge-roombaのインストール
npm install -g homebridge-roomba


3) Roombaの情報を引っ張ってきます。
事前にRoombaのIPアドレスが必要になります・・というか固定のIPアドレスが必要になります。
私の場合、ルーター側でRoombaのMACアドレスで固定IPを割り当てるようにしています。

固定IPアドレスが設定できたところで、Roombaのblid、password情報を引っ張ってきます。

まず、Roombaがホームベースにいることを確認してください。

以下のコマンドを打ったあと、


$ cd ~/.nvm/versions/node/v8.14.0/lib/node_modules/homebridge-roomba
$ npm run getrobotpwd 192.16.xx.xx



以下のように表示されるので、CLEANボタンが点灯していなければ、点灯させます。


Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Then press any key here...


そして、Home(家のマークの)ボタンを長押しして、ピロリとなったら、ボタンを離し、PC(Raspi)側のキーと打つと、以下のようにRoombaの情報が取得できます。

Robot Data:
{ ver: '3',
hostname: 'Roomba-X',
robotname: 'Roomba960',
ip: '192.168.XX.XXX',
mac: 'XX:XX:XX:XX:XX:XX',
sw: 'v2.4.6-3',
sku: 'R960060',
nc: 0,
proto: 'mqtt',
cap:
{ pose: 1,
ota: 2,
multiPass: 2,
pp: 1,
binFullDetect: 1,
langOta: 1,
maps: 1,
edge: 1,
eco: 1,
svcConf: 1 },
blid: 'XXXXXXXXXXXXXXX' }
Password=> XXXXXXXXXXX <= Yes, all this string.
Use this credentials in dorita980 lib :)


~/.homebridge/config.jsonを編集して以下のように追加します。
"X"の部分は今回取得した情報を設定して下さい。


{
"accessory": "Roomba",
"name": "Roomba",
"blid": "X",
"robotpwd": "X",
"ipaddress": "192.168.XX.XX"
}


あとは、いつものごとくHomebridgeを動かし、iPhoneにデバイスを登録すればOKです。

シーンに"掃除をして"を追加しておけば、"掃除をして"と言うだけで動くようになります。

IMG_2307.PNG



○デモ

"ルンバをつけて"



"掃除をして"







Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その6)

カメラが高価だなと思い、別のカメラでも確認することにしました。


○カメラ

前回、以下のカメラを使用しましたが・・・

Raspberry Pi Official Camera V2 for 3B/2B/B /A /B/A ソニー製808万画素CMOSセンサ使用 ラズベリーパイ公式 HDカメラ

新品価格
¥3,995から
(2018/5/29 23:17時点)




今回、以下のカメラを使用することにしました。

HiLetgo OV5647 5MP Raspberry Pi 3 カメラ OV5647 HDカメラモジュール Raspberry Pi に対応 A/B /2 モデルB ケーブル

新品価格
¥1,200から
(2018/5/29 23:12時点)




○変更した理由

基本的には値段の高い方が、センサの性能も高く優れている感じがあります。
高い方のカメラのセンサはSONYのIMX219でMAX resolutionが8M pixel、安い方がOmni VisionのOV5647で5M pixelとなっています。

今回の用途に限って言えば、5M pixelも使っていないのが現状です。



○交換

基本的にカメラの差し替えだけですみます。ドライバの変更も必要としません

左側がOV5647、右側がIMX219。
Raspberry Pi用とあって、基盤のサイズもほぼ同じです。

IMG_1117.jpg



○キャプチャ画像が黄色

IMG_1119.png

ちょっとOV5647の方が黄色がかっていますが、暖色のLED電球を使っているので色はこんなものなのかもしれません。

また、カメラがLIVEになる時にLEDが点灯するようになっているのですが、これが色に影響を与えているのでは?とも疑っています。

基本的にはv4l2が使えるので、以下のコマンドでどんなパラメータが設定できるのか見ることができます。

v4l2-ctl --all


ホワイトバランスのプリセットがあったので適当に以下のように設定すると一応、白っぽくすることもできました。



v4l2-ctl --set-ctrl=white_balance_auto_preset=3


IMG_1121.png

Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その5) 補足

補足情報を記載しておきます。

○上手くiPhone上でDeviceが認識しない場合

1) 一回登録したカメラ・ブリッジ等のデバイスをiPhone上で削除。
デバイスのアイコンを長押し、詳細をクリックすれば、"ホームから〇〇を削除する"と表示されます。

2) ホームアプリをクローズ。

3) homebridgeを止めて、以下のディレクトリを削除。

rm - R ~/.homebridge/persist


4) homebridgeを起動

5) デバイスの登録を再度行う。

あくまでも経験によるものなので、これが正しい方法かどうかかわりません。。



○人感センサーの調整

HCSR501という人感センサーも色々調整ができるようになっています。

本来であればオシロスコープあたりでOUTの波形を見ながら調整すれば良いのですが、普通の人は持っていないと思いますので、テスターで実際に見るか、もしくはPythonあたりでスクリプトを組んでGPIO変化を読むのも良いかと思います。


ここのデータシートの通りなのですが、以下のようにセンサーの感度と感知した時のHighの信号の時間を調整できます。

Screen Shot 2018-05-26 at 23.15.01.png


1) 時間の調整: 3秒~5分
(センサー部分を上に向けた状態で、時計回りに調整すると5分、反時計で3秒になります)

2) 感度: 3m~7m
(センサー部分を上に向けた状態で、時計回りに調整すると3m、反時計で7mになります)

3) Single Trigger/Repeat Trigger
使い方に関してここに詳しく書いてありますが、Repeat Triggerで問題ないと思います。




Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その4)

前回のカメラが動作したところで終わっているので、今回は人感センサーを付けます。


○Raspiに人感センサーを追加

1) 以下のコマンドでshutdownして電源を切る。

sudo shutdown -h now



2) ここに記載されているピンマップを参考に以下のようにRaspi3と人感センサーを接続。

Raspberry Pi3
PIN2 (+5V) ------------------- VCC (センサー)
PIN6(GND) ------------------- GND(センサー)
PIN7(GPIO7) ------------------- OUT(センサー)

IMG_1044.jpg


3) 電源を投入して、Raspiを立ち上げる。


○homebridge-gpio-motion-sensorのインストール

1) ここに記載さている内容通りに以下のコマンドでインストール。

npm i -g homebridge-gpio-motion-sensor


2) ~/.homebridge/config.jsonを以下のように変更。

{
"bridge": {
"name": "Homebridge",
"username": "08:00:27:41:6D:33",
"port": 51826,
"pin": "123-45-678"
},
"description": "",
"accessories": [
{
"accessory": "MotionSensor",
"name": "MotionSensor1",
"pin": 7
}
],
"platforms": [
{
"platform": "rpi-camera",
"cameras": [{"name": "Pi Camera"}]
}
]
}


3) homebridgeを起動

homebridge


4) iPhoneのホームアプリを起動
前回同様にデバイスを登録。今回は以下のようにセンサーが表示されるので、同様に登録。

IMG_1059.png


○デモ
こんな感じで動くはずです。

IMG_1045.jpg




Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その3)

○FFMPEGのインストール

ここに詳細内容が記載されている通りにFFMPEGをコンパイル・インストール。

sudo apt-get update
sudo apt-get upgrade
sudo sh -c 'echo "deb http://www.deb-multimedia.org jessie main non-free" >> /etc/apt/sources.list.d/deb-multimedia.list'
sudo sh -c 'echo "deb-src http://www.deb-multimedia.org jessie main non-free" >> /etc/apt/sources.list.d/deb-multimedia.list'
sudo apt-get update
sudo apt-get install deb-multimedia-keyring
sudo apt-get update
sudo apt-get remove ffmpeg
sudo apt-get install build-essential libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev yasm pkg-config libfaac-dev libopenjpeg-dev libx264-dev
cd /usr/src/
sudo apt-get install git
sudo git clone git://git.videolan.org/x264
cd x264/
sudo ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
sudo make
sudo make install
cd /usr/src
sudo git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg/
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
sudo make -j4
sudo make install


○node.jsのインストール

ここに記載している通りにnode.jsをインストール。

#インストールされているnodejsを削除
sudo apt-get autoremove nodejs

#nvmのインストール
sudo mkdir ~/.nvm
sudo chmod 777 ~/.nvm
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh

#nodeのインストール
nvm ls-remote
nvm install v6.14.2
nvm alias default v6.14.2

#node, npmがinstallされていることを確認
node -v
npm -v


○Homebridgeのインストール

ここに記載している通りにインストール。

sudo apt-get install libavahi-compat-libdnssd-dev libnss-mdns
npm install -g homebridge


ここに記載している通りにhomebridge-camera-rpiをインストール。

npm install -g homebridge-camera-rpi



~/.homebridge/config.jsonを以下のように作成。


{
"bridge": {
"name": "Homebridge",
"username": "08:00:27:41:6D:33",
"port": 51826,
"pin": "123-45-678"
},
"description": "",
"platforms": [
{
"platform": "rpi-camera",
"cameras": [{"name": "Pi Camera"}]
}
]
}



○Homebridgeの実行

以下のコマンドを打って、2次元バーコードのようなものが表示されればOK。

homebridge



○デバイスをホームアプリに登録

1) iPhoneからホームアプリを起動
2) 右上の"+"のアイコンを押し、"アクセサリを追加"を選択。
3) "コードがないかスキャンできませんか"を選択。
4) 以下のようなアイコンが表示されるので"Homebridge"の方をタップ、"12345678"と入力すれば、登録される。

IMG_1058.png


5) 同様にカメラの方も登録。

IMG_1060.png



6) ホームアプリで登録されたカメラをタップすれば、LIVEになります。


ちなみにhomebridge-camera-ffmpegの方を使おうとしましたが、この問題が発生して、上手く動作しませんでした。








Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その2)

前回の続き

○大まかな流れ


  1. NOOBSをインストール

  2. 初期設定

  3. FFMPEGのインストール

  4. HomeBridge/Cameraをインストール



○NOOBSをインストール

1. ここからSD Card FormatterをPCにインストール。

2. このツールでSDカードをフォーマット。

3. NOOBS LITEをここからダウンロードして、zipを解凍してSDカードにコピー。

4.Raspbery Piにネットワークケーブル・キーボード・ディスプレイ・カメラを接続、電源を接続してNOOBSの設定を行う。


○初期設定

ここに記載している内容を参考に設定する。

1. Menu -> Preference -> Raspberry Pi ConfigurationでMenuを開く
2. SystemタブでHostnameを変更
3. SystemタブでAuto Loginを外す
4. InterfacesタブでCamera, SSH, VNCをEnable
(VNCでPCから接続できるようにしておきます。)
5. LocalizationタブでSet TimezoneをASIA : Tokyoに変更
(私はLocaleの方はGB(UK), Englishのままにしていますが、必要に応じて変えて下さい)
6. ここでメニューを一旦閉じます
7. sudo raspi-config でメニューを開いたあとUpdateを実行

一応、ここでリブートします。

8.以下のコマンドでOS・FWを最新にしておきます

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
sudo reboot


9. 再度、piユーザーでログイン。
ユーザー名: "pi"
パスワード: "raspberry"


9. 新規ユーザーを追加する
ここに記載されている内容を参考に新規ユーザーを作成

# [NewUser]に新規追加したいユーザ名を記入
# 新規ユーザー作成・パスワード設定
sudo adduser [NewUser]

# piグループの確認
groups pi #piのグループを確認

# 上記のコマンドで羅列されたグループを新規ユーザーに追加。
sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio [NwerUser] #

# 新規ユーザーのグループを確認。
groups [NewUser]


10. VNCで接続するためにRaspberryPiの解像度を修正。

sudo vi /boot/config.txtで以下のように変更。
(2018/10の最新イメージでは以前の方法では動作しなかったため、2018.10.17に修正を更新)


framebuffer_width=1280
framebuffer_height=720



11. CameraのModuleを自動でロードするように変更。

sudo vi /etc/modulesで以下の行を追加。

bcm2835-v4l2


12. 固定IPの割り当て
Raspberry Pi側で強制的にStatic IPを割り当てる場合は、ここに記載している内容を参考に設定します。

私の場合はルーター側でRaspiのMACアドレスを指定してIPを割り当てるようにしています。
ifconfigで簡単にMACアドレスが調べられます。


pi@hostname:~ $ ifconfig
eth0: flags=4163 mtu 1500
inet 192.168.x.x netmask 255.255.255.0 broadcast 192.168.x.255
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet) <= MACアドレス
collisions 0



上のetherで表示されている値をルーター側で指定して固定IPを割り当てます。

13. VCNから接続

再起動すれば、次回からPCからVNC経由でアクセスできます。
sudo reboot


ただし、VNC ViewerをここからダウンロードしてPCにインストールしておく必要があります。

基本的にはIPアドレスだけ指定すれば繋がるはずです。

14.piユーザーの削除

先ほど追加した新規ユーザーでログインして、以下のコマンドでpiを削除。

userdel -r pi



一応、初期設定はこれで終了になります。

Raspi3 + Camera + 人感センサーでHomeKitのカメラを構築 (その1)

○はじめに

今回、Raspi3の方でHomeKitのカメラを構築しました。

IMG_1043.jpg

やる気のない外観ですが、とりあえず玄関前に吊って使っています。


○用意するもの

Raspi3本体

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Clear)-Physical Computing Lab

新品価格
¥5,980から
(2018/5/19 23:34時点)




Raspiの電源

Raspberry Pi用電源セット(5V 3.0A)−Pi3フル負荷検証済

新品価格
¥1,580から
(2018/5/19 23:36時点)




SDカード
バックアップも兼ねて2、3枚買ってことをオススメします。

Samsung microSDカード32GB EVOPlus Class10 UHS-I対応 Nintendo Switch 動作確認済 正規代理店保証品 MB-MC32GA/ECO

新品価格
¥1,580から
(2018/5/19 23:49時点)




カメラ

Raspberry Pi Camera V2 ラズベリーパイ 公式 HD カメラ ソニー製808万画素CMOSセンサ使用 made in UK メーカー名: Raspberry Pi

新品価格
¥4,482から
(2018/5/19 23:51時点)




人感センサー

Rasbee オリジナル HCSR501 モーションセンサー検出モジュール 赤外線モーションセンサー 人感センサースイッチ HC-SR501 1個 [並行輸入品]

新品価格
¥163から
(2018/5/19 23:55時点)




RasPiとセンサーを接続するケーブル

EasyWordMall ブレッドボード・ジャンパーワイヤ(メス-メス)(20cm)40本

新品価格
¥119から
(2018/5/19 23:58時点)





○手順 (番外編)
もしセンサーを使わないのであれば、一番の近道があります。

それは、ここのHPに記載されている通りにやることです。

イメージも既に置いてあるので、SDカードに焼いて手順通りに設定すればすぐに使えるようになります。

普通にhomebridge-camera-rpiがインストールされていると思われるので、おそらくセンサー関係も問題なくインストールできると思います。






最近のHomeKitに関して - つづき

前回、以下のように記載しましたが、どうやらそのような制限はされておりませんでした。

  今は「そのようなデバイスは存在しません」という返答がされます。

昨日、Raspberry PiのHap-node JSがクラッシュしたので、デバッグするのも面倒なのでバックアップイメージから再起動・再登録をした結果、また普通にエアコン、ライトなどがSiriで認識するようになりました

よくわからないのが現状です。


最近のHomeKitに関して

HomePodの影響と思いますが、最近、Apple側のHomeKitのサーバーが次々とバージョンアップしているようで、現状以下のような感じになってます。

改善された点
1) 「行ってきますをON」「おはようをON」といように言わないとシーンコマンドが使えなかったのが、「行ってきます」「おはよう」で使えるようになりました。

残念な点
1) Hap-node JS経由で登録したデバイスがSiriで認識されない。前までは、普通に「リビングのエアコンをON」と言えば認識していましたが、今は「そのようなデバイスは存在しません」という返答がされます。恐らく認証がされていないデバイスはSiriで動作しないように変更したように思えます。認証されているデバイスを一つも持っていないので、断定はできませんが。。。
ただ、これも抜け穴があって「おはよう」のシーンに例えばライトを点けるなど登録しておけば、動作します。


とはいえ、徐々に厳しくなりつつあるのが現状で・・・

それに比べてGoogleはGoogle Assistant SDKが今年1月にリニューアルされたらしく、Smart Homeも拡充されてRaspi3で動作できるらしく・・「OK Google」にしようかと思っている次第です。








AppleWatchからSiri経由で家電を制御

さて、購入したAppleWatchですが、SUICAが微妙に使えません

実際には使えるのですが・・・以下のような状況で、普通にiPhoneでタッチするより逆に不便です。

1) ゲートの右側にタッチするところがあるため、左手に時計を巻くと、手をクロスしなければなりません。
2) 右手に時計を巻くと、これまた右手首をタッチするところに当てるのに、膝を落とさないと届きません。


一つ気に入っているのが、SiriがAppleWatchから使えるため、HomeKit経由で家電が制御できて便利です。

まぁ、当たり前なんですけど、以下にビデオを載せておきます。






    >>次へ
検索
検索語句
記事ランキング
最新記事
×

この広告は30日以上新しい記事の更新がないブログに表示されております。