Raspberry piでホーム・セキュリティ・システムを作ってみた(ナイトライダー風) / A Security system made by Raspberry pi likes “KNIGHT RIDER”

   2017/01/13

  • トピック;ナイトライダー風ボイスインジケーターでセキュリティシステムを作ってみた
  • ポイント;Raspberry piで音声認識と発声をするセキュリティシステムを製作した。KITT風のボイスインジケーターはかっこいい。
  • キーワード;Raspberry pi model B+, ナイトライダー, KITT, ボイスインジケーター, 自作
  • Topic: KnightRider like Security system made by Raspberry pi
  • Points: A security system made Raspberry pi model B+. It can speak and have speech recognition function. And it also has cool voice indicator like KITT.
  • Keywords: Raspberry pi model B+, KnightRider, KITT, Voice Indicator, Self Crafting

作って放置、壊れかけ

Raspberry piの工作は2年位前から始めたのですが、フィジカルコンピューティングを本格的に初めてやったのはそこからです。なので、Lチカから始めてスイッチ入力やI2Cなど少しずつ実験回路を試作しながら、1年くらい前に家のセキュリティシステムを作っていました。トライ&エラーだったので、何も記録を残していなかったのですが、放置していたら、適当な作りだったので、いよいよ動かなくなってきました。作り直しに伴い、1号機としての動作を残しておこうと思いました。

ナイトライダー風

私の今の電子工作の目標は「愛車にRaspberry piで作ったKITTを組み込む」なのですが、その基礎実験としてRaspberry piを中心とした電子工作を始めました。このセキュリティ・システムではナイト2000のボイスインジケーターを意識したインジケーターを組み込んでみました。少し後述していますがレベルメーターIC;LM3916で作成しました。そのうち、ちゃんと作り直して愛車に載せて記事にしたい...。(オッサンホイホイ)
guardian_01

基本構成

Raspberry pi model B+を使って、Rubyで作ったプログラムと音声認識のためのJuliusの2つのプログラムで稼働しています。フィジカルなモジュールの構成は下記な感じです。
guardian_02

guardian_03

配線はジャンパー線のまま(接触悪い、ノイズ飛びまくり)だし、複数の試作回路を組み合わせただけなので、ACアダプタがいくつもあったりと、セキュリティシステムとしてはアホな作りです。ハット基板で電源をまとめてあるので、せめてACは1系統にしておくべきだった...。
guardian_04

guardian_05

起動

  1. OSは普通のRasbpianをインストールしてあり、ブートすると、
    • Juliusをモジュールモードで起動
    • メインプログラムを起動(Ruby 1.9で記述)

    が自動起動するようになっています。

  2. のWebカメラと接続されており、動体検知されるとメールを受け取るので、起動時にメールボックスをクリアします。(しばらく立ち上げてないとメールチェックだけでえらいことに...)
  3. 時にはLED、サイレン、ブザーの点灯や発音を確認するアクションをします。音声発声にはOpenJTalkを使っています。(音声は”mei”です)
  4. メインプログラムがJuliusモジュールに接続します

動作(セキュリティ・オフ/オン時)

Rubyのマルチスレッド処理で実装していますが、Raspberry pi model B+は現行機種に比べればスペックがイマイチなのと、何よりプログラムがまずくて、とっても処理が遅いです...。

  1. ネットワーク接続確認
    ボイスインジケーターの周りに16個のインジケーターLEDがあり、以下のチェックと表示を行っています。
    黄色LED;ネット接続、無線LAN接続、メールサーバ接続、Juliusモジュール接続で点灯
    赤色LED;Webカメラ(4台まで)接続で点灯
    青色LDE;一定間隔で上記8ヵ所の接続チェックを行い、チェック時に点滅
    guardian_06


    guardian_07
  2. ボタン、音声、メールによる状況確認、セキュリティ切り替え、確認
    ボタンでセキュリティの切り替え、確認ができます。音声でも切り替えが可能です。登録したメールアドレスに”CHECK”という題名でメールを送るとセキュリティ設定状況を、”ON”、”OFF”という題名でメールを送るとセキュリティ設定をON/OFFできます。セキュリティモードを切り替えると登録したメールに切り替えた旨をメールします。
  3. センサーロギング機能
    温度、湿度、気圧をI2C接続のセンサーから、雨量をWebから取得して、M2Xにロギングします。同時にローカルのsqlite3にもロギングしますが、よくファイルが壊れます...
    AT&T M2X Build solutions for the Internet of Things

    guardian_08.png

  4. 会話機能
    「おはよう」とかいうと、それなりに応えます。sqlite3に簡単な会話パターンを登録しておき、Juliusで認識、OpenJTalkで応答することができます。(人口無能な応答)日付、天気予報、温度、湿度、気圧、雨量なども会話でやりとりできます。”サイレントモード”という会話をしないモードにもできます。
  5. ハートビート、ロギング機能
    一定間隔で動作をローカルファイルとsqlite3にロギングします。稼働のハートビートだけでなく、処理や動作は全てDBに書き込みます。
  6. メールボックスクリア
    家にいるときもWebカメラ達からはバンバン動体検知メールが飛んでくるので、セキュリティ・オフの時はメールを読み捨てます。

動作(セキュリティ・オン時)

セキュリティシステムはWebカメラからの動体検知メールを常にチェックしています。
guardian_09

セキュリティ・オンにすると、Webカメラの動体検知メールを転送してくれるようになるのが一番のポイントです。また、ドアにセンサー(リードスイッチ)を付けているので、セキュリティ・オンの間にドアが開閉されると、音声による警告をして一定時間が経過すると、

  • 登録されたメールアドレスにメールを送る
  • サイレンを点灯
  • 大音量ブザーを鳴らす

というアクションをします。また、人感センサーもついており、このセンサーが反応しても同様のアクションをします。

  1. Webカメラからの動体検知メール転送
    家の要所に配置されたWebカメラから、動体検知メールを受信して、転送します。カメラはPlanexのCS-W05Nを使っています。ヤフオクなどで\1,000~\5,000くらいで買いました。古いし安いカメラなので、暗いところで映らないし、動体検知も微妙ですが、長期間の連続利用(数年単位)や屋外の配置(ケースに入れて防水)にも耐えてる結構タフなやつです。
    ネットワークカメラ|CS-W05N|PLANEX


    ファームウェアは製造元のものにすると動作が安定します。
    EDIMAX – Legacy Products – Network Cameras – Fast Ethernet Dual Mode IP Camera

  2. ドア開閉センサーによるアクション
    リードスイッチが接続されており、セキュリティ・オンの間に開閉されると、音声による警告をして、その後にサイレンとブザーで警告して、登録されたメールアドレスに連絡します。
  3. 人感センサーによるアクション
    焦電型赤外線センサーがついていて、セキュリティ・オンの間に検知があると、音声による警告をして、その後にサイレンとブザーで警告して、登録されたメールアドレスに連絡します。
  4. ボタン、音声、メールによる状況確認、セキュリティ切り替え、確認
    ボタンでセキュリティの切り替え、確認ができます。音声でも切り替えが可能です。登録したメールアドレスに”CHECK”という題名でメールを送るとセキュリティ設定状況を、”ON”、”OFF”という題名でメールを送るとセキュリティ設定をON/OFFできます。セキュリティモードを切り替えると登録したメールに切り替えた旨をメールします。
  5. 帰宅時のセキュリティ切り替え
    ドアが開閉されると、音声で「おかえりなさい」と言われ、セキュリティ・オフを促されます。一定時間以内にセキュリティをオフにしないと、警告音声、サイレン、ブザーでアラートを出します。

まとめ

初めてのLチカからここまでよくやったな、という反面、今の私からみても実装の初心者感がものすごいですね。(今でも初心者ですが)プログラムもRubyを覚えたてだったので、酷いものです。それでも実用性のあるものなので、この1号機はバラして部品どりにして2号機を作りたいと思います。「KITTを作る」という目標もリブートしなければ。


自然会話ロボットを作ろう! RaspberryPiとArduinoで作る人工知能



– 07th Jan, 2017 / the 1st edition

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

広告