見出し画像

ハムスターの暗視カメラをRaspberry Piで作った


はじめに

2ヶ月くらい前からハムスターを飼い始めた。

生後4ヶ月の♀。かわいい

もちろん目的は癒しである。ふもふしているハムちゃんがちまちま動いているのを見ることができれば、日々の仕事によるストレスなんて吹き飛ばされるのではないか。
いや、吹き飛ばされるは言い過ぎにしても、いくらか軽減されるのではないか。

Youtubeで観測できるハムちゃん達は、飼い主にベタ慣れで、なすがままに撫でられなどしている姿も目にするが、まあ、全部の個体がそうではないだろうし、ハムちゃん目線で考えると、巨大生物に体を触られるなんて気持ちのよいものではないだろう。なので、直接のスキンシップまでは無理に望むまい。ただ、活動している姿さえ見れれば・・・

しかし、後述するように、現実はそう甘くはなかったのであった。

本記事では、活動しているハムスターの姿をなんとかこの目に納めるべく、電子工作初心者である筆者が小型コンピュータであるRaspberry Piを用いてハムスター暗視カメラを作成した記録である。
といっても、もうすでに先人達による非常にわかりやすい解説があるので、ここでは具体的な操作方法を記載するのではなく(ていうかそもそも私にその力がないし)、それらの解説を紹介するものになることをご了承いただきたい。なので想定読者は私と同様、「電子工作のズブの素人(だけどちょっと憧れはある・・)」である。熟練者は、よくわからないが、Qiitaとかをご覧になればよろしいのではないんでしょうか。

また、これは2025年1月時点の情報であることにも注意されたい。私自身ハマったポイントなのだが、配布されているプログラムのバージョンアップ等により、後述のとおりに作業しても、うまくいかない場合もあるかもしれない。ただ、うまくいかなかったとしても、「どこでハマっているか」がわかるだけでだいぶ解決までの距離は短くなるので、現時点での情報であっても将来に渡って有益なのだ...と信じたい。

動いている姿、あまり見れない問題

これは飼育前からわかっていたことだが、ハムスターは夜行性の動物である。しかも、暗く、狭い場所を好む。

暗く、狭い場所を好む

では、夜は姿が拝めるかというと、そんなこともない。もとよりハムスターは警戒心が強い動物なのだが、特に、ウチのハムスターはハムスターのなかでも警戒心が強い性格・・のような気がする。
最初は起きているときに少しでもケージに手を入れようものなら普通に血が出るほどの強さで噛まれて大変だった。2ヶ月経過して少し慣れてくれたのか、流石にそんなには噛まれなくなったが、それでもまだ夜間も、人間が近くにいるとあまり外に出てきてくれない。
まあ、部屋に縮こまっているところを覗いたりすれば、様子が気になるのか出てきてくれることもあるのだが、自分に置き換えて考えてみると、休日に突然出勤してくれないかといわれて嫌々仕事にいくという感じだと思われ、そもそも人間のエゴで連れてきているところ、そんな思いをさせるのは気が引ける。 ということで、直接、肉眼でハムちゃんを愛でて癒されるのはどうやら諦めざるを得ないようだ。

一方で、人間が見ていないところではメチャメチャ活動しているようであり、特に回し車はほぼ一晩中回している様子。静音タイプを購入しているのに飼い主の睡眠に支障をきたすレベルで騒音がする。

そのくせ、せめてその様子を見たいなあと思って夜に起きて近づいていくとパッと回し車をやめて「えっ、ワイが何かしましたか?」といった表情で見つめてくるばかり。

「えっ、ワイが何かしましたか?」の顔。

先ほど人間のエゴで飼っているとは言ったが、それでも何不自由ない暮らしをさせてあげているつもりである。なのに睡眠は妨害され、その愛くるしい姿も見せてくれない。これはちょっと酷すぎるのではないだろうか。

まあ、いい。君はそのまま自由奔放に生きてもらって構わない。しかし、こちらが見たいものは見せてもらおう。もうこれは、盗撮するしかない。暗視カメラで。

準備したもの

それぞれ、少し補足する。なお、商品ページへのリンクは私が実際に購入したものを参考として紹介しているものである。

Raspberry piは、かなり昔に少し電子工作に興味を持って買ったはいいが、その後全く手をつけていなかったものである。最新は「5」らしいので、結構古いモデルだ。古いモデル故に最新のOSの導入は厳しいため、Raspberry Pi OS Liteという、GUIのない(ので、コマンドラインで操作を行う)OSを入れることになる。新しいモデルでもここで紹介する方法で動作はすると思うし、他のことをするのならばより使い易いだろうから、後継モデルを使っても良いかもしれない。ただ、最新のRaspberry Pi 5のアマゾンでの販売価格は、2025年1月4日現在で最低でも1万円はくだらない。それならば、安価なペット用暗視カメラを買ってしまった方が手間も少なく安上がり、ということになってしまう気がするので、考えドコロである。
あと、Raspberry Pi本体を剥き出しで置いておくのは気が引けるので、ケースがなければ購入したほうがよいだろう。私はケース付きのキットを購入した。

microSDカードは、通常のパソコンでいうとハードディスクの機能を担う部分。正直なんでもよいと思うが、容量については公式では32GB以上が推奨されている。また、スピードクラスは高いほうが快適だろう。上記リンク先の製品であれば、少なくとも今回の用途に対しては全く不便は感じない。

カメラモジュールも純正・非純正含めてたくさん販売されているので迷うところ。アリエクなどを見れば同じような商品でもう少し安価で手に入りそうだが、同じ商品でも複数の販売パターンがあってどれを買えばよいのかイマイチわかりにくいのと、配送にかかる日数を考えてアマゾンにした。惜しむらくは、少しフレキシブルケーブルが短いため、後述する三脚を使うとRaspberry Pi本体を安定して設置できない点。まあこれは、私の場合にはの話で、三脚を使うか、高さをどうするかは飼育環境よりけりなので、一概にマイナスポイントとは限らないだろう。
なお、純正商品はITメディアの記事によれば、赤外線LEDを別に装備しないといけないようで、なんだか少しめんどくさそう。なので、赤外線LEDが付属している非純正商品をおすすめする。・・・動作するかの保証がされないのが困るところではあるが。

スマホ用三脚は高さを出すためだ。一応、上記カメラモジュールキットにはスタンドもついているので自立するが、私の環境だと高さが足りないのでダイソーで適当に調達した。

Raspberry Pi 3で推奨されている電源は5V 2.5A..これに適する既製のACアダプタがなかなかない。まあ、5V2.5Aでなくとも動作はするらしいのだが、一応Raspberry Pi 3専用として売られているリンク先のアダプタを購入した。スイッチもついていてちょっと便利。

パソコンについてはマストではない。ただ、以下で紹介している動画では、パソコンからRaspberry Piにリモート接続してパソコンから操作しているので、全く同じ手順で進めたいのであれば必要。

スマホは、撮影している動画を閲覧するのに使用する。webブラウザが入っていれば事足りるので、まあ、普通は持っているでしょう。パソコンやタブレットでもよいが、寝室でごろ寝をしながら視聴することを想定しているので、スマホで見たいところ。

手順

暗視カメラとMJPG-Streamerの有効化

この手順については、Youtubeのこちらの動画でかなり詳しくかつわかりやすくまとめていただいているので、この動画とおりに進めていくだけで問題なく作成できる。

暗視カメラの自動起動化

上記の手順までだと、Raspberry Piを起動したあと、毎回カメラの起動コマンドを打つ必要があるので、面倒である。そこで、Raspberry Piを起動したらカメラも自動起動するように設定を行いたいところだ。 この手順についても、上記の動画で解説されているが、そこで紹介されているのはrc.localに記述する方法。しかしどうやら、OSのアップデートにより、直近ではこのrc.localでの自動実行機能が使えなくなっているらしい(参考:https://restapi.hatenablog.com/entry/2024/03/31/164646) ということで、よりメジャーな方法である(らしい)、systemdにより自動起動することにした。 手順としては、まず暗視カメラを実行するためのスクリプトファイルを作成(上記の動画では「startCamera.sh」という名称で作成し、/usr/local/binの下に置く)した後、/etc/systemd/systemの下にサービスファイル(ここでは名前をstart_app.serviceとする)を作成する。サービスファイルの説明は割愛するが、[Unit][Service][Install]の3つの要素が必要だ。私は以下のように作成し、これで動作しているので参考にしてほしい。

[Unit]
Description=automatic camera start-up
After=network.target

[Service]
ExecStart=/usr/local/bin/startCamera.sh

[Install]
WantedBy=multi-user.target

最後に、以下のコマンドでサービスを有効化する。

sudo systemctl enable start_app.service

以上の設定が完了すれば、Raspberry Piと同様のネットワークに接続しているスマホから、「raspberrypi.local:8080/?action=stream」(androidの場合は「http://x.x.x.x:8080?action=stream」※「x.x.x.x」はRaspberry PiのIPアドレス)のURLにアクセスすればカメラで撮影している動画を閲覧できるはずだ。

(とりあえずの)完成形

で、とりあえずの完成形は以下の画像のような感じである。

不恰好だけどそこはご愛嬌。

これを、こんな感じでハムちゃんのケージにセッティングしている。

しっかりと監視。

使用感と今後の展望

さて、作ったはいいが、もしかすると、カメラに警戒してしまって活動してくれないのでは?という不安もよぎったが…
全然そんなことはない!普通に遊んでいるところを観察できる!画質も申し分ない!

回してる!

ということで、ひとまず目的を達成でき、大成功であった。今後、さらに改良するとすればいま思いつくもので以下2点である。

  1. いまのシステムでは同一ネットワーク上にいないと閲覧できないので実質、家にいないと見れないが、外出先でも見れるようにする

  2. ハムスターの活動を検知し、活動している時のみの動画を保存し、後から見れるようにする

1点めは、Raspberry Piがどうのというよりも、ネットワークの問題で、VPN接続の設定をすれば実現できそうなのでそんなに難しくはなさそうだ。一方2点めは、ハムスターの活動を検知する必要があるので、機械学習の領域に踏み込む必要がある・・・ような気がする。ちょっとこちらは先の長い目標になりそうである。

ともあれ、進捗があったらまたご報告させていただきたい。

いいなと思ったら応援しよう!