音が熊よけになる!?
改訂履歴
2024.2.26 初版
2024.3.4 半固定抵抗を追加
2024.3.5 気が付いたのだが、ボタンを押さなくても、なぜかLEDが小さく光っている。これは元々こういう仕様だったのか?電池の消耗が心配される。
2024.3.9 どうも半固定抵抗が粗悪な気がする。この辺りで接触不要か何かが起こっているようだ。銀色の反射板は取り除いて、周りに隙間を与えたらとりあえずは不要なLED点灯は無くなっている。
研究開始
先日、趣味の登山のために熊スプレーを買ってみたが、これはなかなか使い方が難しそうだ。もっと容易な方法が無いのか熊鈴より効果的なものがないのかと考えYoutubeを徘徊していたところ、面白い情報を発見(単にAIがおすすめ?)した。
それは熊を音で退散させる試みだ。この報告によると、特にサイレン音、打ち上げ花火などが効果があるようだ。
さらに「くまドン」という商品があり、農家やゴルフ場などに実験的に設置し効果を上げているそう。これは、「ブー」という音(約100Hz〜130Hz)で熊を撃退するという。なんだか化学的なところが初老オヤジの少年心?いやジジイ心をそそる。
防犯ブザーの改造
登山に持っていくのだから重くて大きいのは困る。軽くて小さくて大きな音で思いつくのは、小学生がランドセルなどに付ける、防犯ブザーだ。早速100均で買ってきた。
これはスピーカーにピエゾ素子を使っており100Hzの低音はちょっと無理なよう。ただ、これらはもともとはおもちゃのサイレン音を出す素子が使われており調整すれば普通のサイレン音に戻せそう。早速試してみたところ、抵抗値を調整することでちょっとそれっぽくなった(個人の感想です)。
小型スピーカーの利用
しかし改造防犯ブザーは心許ない音なので、さらに、100Hzの音を再生できる環境を構築するために試行錯誤。
まずは、Pythonを使って100Hzのサウンドファイルを作ってみた(この頃はChatGPTを使えば簡単だ^^;)。
import numpy as np
import wave
import struct
def create_sin_wave(sampleRate=44100.0, duration=1.0, frequency=100.0):
# 正弦波の生成
t = np.linspace(0, duration, int(sampleRate * duration))
y = np.sin(2 * np.pi * frequency * t)
# ファイルに書き込むためのデータの準備
wavef = wave.open('sinWave.wav','w')
wavef.setnchannels(1) # mono
wavef.setsampwidth(2)
wavef.setframerate(sampleRate)
for i in y:
wavef.writeframesraw(struct.pack('h', int(i * 32767.0)))
wavef.writeframes(b'')
wavef.close()
これをメモリーに書き込み、スマホで再生。うーーん、ちょっと音が小さいなぁ。。
妻が以前買った小型スピーカーにmicroSDカードが入るのを発見。これを利用して再生してみたところ、まだまだ音は小さいながら、なんとか再生できそう。
この機械は、240g程度で重めのスマホぐらいだった。ちょっと持っていくかどうかは微妙なサイズ感だが、普段持ち歩く限界ぐらいのサイズだろうか?
参考までに、作成したサウンドファイルを以下に。ポリスサイレンは、こちらで拾ってきた。
2つのファイルを入れておくことで繰り返し再生される。
1つ注意点は、こういうスピーカーはSDカードを入れっぱなしにして電源を入れた場合、すぐに再生するかどうかは機種によって異なるようだ。写真の機種は、問題なく電源ONでSDカードが入っていたら再生したが、某A⚪︎K⚪︎R社の商品は、入力選択のボタンを押すか、SDカードを入れ直さないと再生しなかった。これらは機種によって異なるのでいざという時に準備できるように慣れておくしかないだろうか。
こんなもので熊が退散してくれるか不明だが、少しは足しになるかもしれない。効いてくれたらいいなと思っている。