piで音声認識と発声をするセキュリティシステムを製作した。KITT風のボイスインジケーターはかっこいい。piの工作は2年位前から始めたのですが、フィジカルコンピューティングを本格的に初めてやったのはそこからです。Lチカから始めてスイッチ入力やI2Cなど少しずつ実験回路を試作しながら、1年くらい前に家のセキュリティシステムを作っていました。トライ&エラーだったので、何も記録を残していなかったのですが、放置していたら、適当な作りだったので、いよいよ動かなくなってきました。作り直しに伴い、1号機としての動作を残しておこうと思いました。piを中心とした電子工作を始めました。このセキュリティ・システムではナイト2000のボイスインジケーターを意識したインジケーターを組み込んでみました。後述していますがレベルメーターIC;LM3916で作成しました。そのうち、ちゃんと作り直して愛車に載せて記事にしたい...。B+を使って、Rubyで作ったプログラムと音声認識のためのJuliusの2つのプログラムで稼働しています。フィジカルなモジュールの構成は下記な感じです。何回も実装しているうちにLEDが剥がれたり、コンダクタが剥がれたり...。pi2やpi3が出て処理が遅いなーとも思いますが、直して使っているので満身創痍です。HAT;自作のHAT基板です。試作基板を組み合わせて実装しているので、電源系統が5Vと6Vと12V必要で、それを3つのACアダプタからそのまま頂いているというアホな構成です。容量大き目の12V一発で三端子レギュレーターを使おうとか当時は思わなかったのか。あとはいくつかのLEDドライブと、サイレンをコントロールするリレーをドライブする回路も入っています。地味に自作のスルーホールプリント基板(基板設計&エッチングを自前でやってます)です。この辺のノウハウもブラッシュアップしてまとめたいです。サイレン&リレー;警告時に光る&音が鳴ります。当時は大電流(大というほどでもないが)をドライブするのが怖かったので、ドライバモジュールに電源を繋いでリレーコントロールにしました。EXPANDER;I2C接続のIOエクスパンダMCP23017を使って、LEDを接続しています。LEDのドライブはTLC5940NTなどを使えば良かった。当時は汎用性があるものを、と思って、MCP23017を選びました。HS-MC01BKを使っています。指方向性が良く、使いやすいマイクですが、現在は入手しにくくなってますね。METER;LM3916とLM358で自作しました。LM3916は秋月で扱わなくなっていますね。2チャンネルに同じ信号を入れて、内側と外側でレベルを調整してKITTのボイスインジケーター風に見えるようにしています。ノイズが飛びまくって、横にあるLEDまで光ってますね...。ブレッドボードで作った基板を同じ配置のユニバーサル基板で作り直してます。これもちゃんと作りたいなぁ。ネット通販LCD;コンソールはSPI接続のもの(もう売ってないのね...)です。aitendoLED、Buttton;色々ついてます。ボタンはRubyだと私の知識では割り込みができなくてループ処理が重いので研究中でした。(解決せず)配線はジャンパー線のまま(接触悪い、ノイズ飛びまくり)だし、複数の試作回路を組み合わせただけなので、ACアダプタがいくつもあったりと、セキュリティシステムとしてはアホな作りです。ハット基板で電源をまとめてあるので、せめてACは1系統にしておくべきだった...。1.9で記述)が自動起動するようになっています。Webカメラと接続されており、動体検知されるとメールを受け取るので、起動時にメールボックスをクリアします。(しばらく立ち上げてないとメールチェックだけでえらいことに...)時にはLED、サイレン、ブザーの点灯や発音を確認するアクションをします。音声発声にはOpenJTalkを使っています。B+は現行機種に比べればスペックがイマイチなのと、何よりプログラムがまずくて、とっても処理が遅いです...。ネットワーク接続確認ボイスインジケーターの周りに16個のインジケーターLEDがあり、以下のチェックと表示を行っています。青色LDE;一定間隔で上記8ヵ所の接続チェックを行い、チェック時に点滅ボタン、音声、メールによる状況確認、セキュリティ切り替え、確認ボタンでセキュリティの切り替え、確認ができます。音声でも切り替えが可能です。登録したメールアドレスに”CHECK”という題名でメールを送るとセキュリティ設定状況を、”ON”、”OFF”という題名でメールを送るとセキュリティ設定をON/OFFできます。セキュリティモードを切り替えると登録したメールに切り替えた旨をメールします。I2C接続のセンサーから、雨量をWebから取得して、M2Xにロギングします。「おはよう」とかいうと、それなりに応えます。sqlite3に簡単な会話パターンを登録しておき、Juliusで認識、OpenJTalkで応答することができます。会話でやりとりできます。”サイレントモード”という会話をしないモードにもできます。一定間隔で動作をローカルファイルとsqlite3にロギングします。稼働のハートビートだけでなく、処理や動作は全てDBに書き込みます。メールボックスクリア家にいるときもWebカメラ達からはバンバン動体検知メールが飛んでくるので、セキュリティ・オフの時はメールを読み捨てます。動作(セキュリティ・オン時)セキュリティシステムはWebカメラからの動体検知メールを常にチェックしています。セキュリティ・オンにすると、Webカメラの動体検知メールを転送してくれるようになるのが一番のポイントです。大音量ブザーを鳴らすというアクションをします。人感センサーもついており、このセンサーが反応しても同様のアクションをします。家の要所に配置されたWebカメラから、動体検知メールを受信して、転送します。カメラはPlanexのCS-W05Nを使っています。ヤフオクなどで\1,000~\5,000くらいで買いました。古いし安いカメラなので、暗いところで映らないし、動体検知も微妙ですが、長期間の連続利用(数年単位)や屋外の配置(ケースに入れて防水)にも耐えてる結構タフなやつです。ネットワークカメラ|CS-W05N|PLANEXファームウェアは製造元のものにすると動作が安定します。2010-10-15Amazonドア開閉センサーによるアクションリードスイッチが接続されており、セキュリティ・オンの間に開閉されると、音声による警告をして、その後にサイレンとブザーで警告して、登録されたメールアドレスに連絡します。人感センサーによるアクション焦電型赤外線センサーがついていて、セキュリティ・オンの間に検知があると、音声による警告をして、その後にサイレンとブザーで警告して、登録されたメールアドレスに連絡します。ボタン、音声、メールによる状況確認、セキュリティ切り替え、確認ボタンでセキュリティの切り替え、確認ができます。音声でも切り替えが可能です。登録したメールアドレスに”CHECK”という題名でメールを送るとセキュリティ設定状況を、”ON”、”OFF”という題名でメールを送るとセキュリティ設定をON/OFFできます。セキュリティモードを切り替えると登録したメールに切り替えた旨をメールします。帰宅時のセキュリティ切り替えドアが開閉されると、音声で「おかえりなさい」と言われ、セキュリティ・オフを促されます。一定時間以内にセキュリティをオフにしないと、警告音声、サイレン、ブザーでアラートを出します。まとめ初めてのLチカからここまでよくやったな、という反面、今の私からみても実装の初心者感がものすごいですね。(今でも初心者ですが)プログラムもRubyを覚えたてだったので、酷いものです。それでも実用性のあるものなので、この1号機はバラして部品どりにして2号機を作りたいと思います。「KITTを作る」という目標もリブートしなければ。18:49うほほ~最高です。私は、マイカーに喋らせようと勉強を始めました。勉強とは程遠く、ARDUINOで始め、サンプルスケッチばかりの状況です。プログラムのイロハもわかりおません。22:07喜んでいただいて何より。私もいつかは愛車をKITTにしようと思って、ずーっとマイコンやプログラムの基礎勉強ばかりやっている状況です。その中でも、このセキュリティ・システムは形になった方かな。Piの方が車載でやれることは多いと思うし、初心者はプラットフォームを1つに絞った方が良いと思います。Piに軸足をおいて工作してます。記事にするネタはいっぱいあって、実はドラフトをかなり書き溜めているのですが、全部中途半端...。逆に「こういう情報があれば」というコメントとか頂ければ嬉しいです。19:50こんばんわ。RIDER”」のブログの隅々まで検証しています。目から鱗が落ちっぱなしです。現状のkumaさんに追いつくのに一年以上かかりそうです。レールをひいていただいたような形です。してもわからない点が出ましたら又メールさせてもらいます。ありがとうございます。コメントをキャンセルメールアドレスは公開されませんのでご安心ください。付いている欄は必須項目となりますので、必ずご記入をお願いします。コメント内容に問題なければ、下記の「コメント送信」ボタンを押してください。コメントデータの処理方法の詳細はこちらをご覧ください。自分でやってみろ!IT技術者からIT中間管理職になった私が、DIY精神で「俺なりに」何でも自分でやってみたもの、納得したものを発信します。profile)掲載広告について当サイトに掲載している広告についてはこちらに掲載しています。各社商標等に関する帰属について当サイト内で表記される各社ブランドのロゴや商標についてはこちらの通り各社がその権利等を有しております。