Archiv der Kategorie: Audio

BeePhone Version 1.0: die Hardware ist fertig, erste Ergebnisse

Nach dem Beelogger war die nächste Idee, in die Beute mit Kamera und Mikrofon reinzuschauen. Aber wie mit kleinem Budget realisieren?

Wie ohne Licht in der Beute filmen? Stört das Filmen die Bienen? Wie sieht es mit einer Nachtsichtkamera aus mit Infrarot?  Stört Infrarot Licht die Bienen?

Bienen sind „rotblind“, sehen auch nicht infrarote Strahlung. Bienen haben ihre Stärken am anderen Ende des Spektrum, im UV Bereich. Also sollte eine IR Kamera und IR LED funktionieren. Danke an Clemens für den Tipp.

Die Wahl fiel wieder auf ein RPi Design (RPi3) mit einer externen IR Kamera und IR LED von  Kuman, Preis bei Amazon ca 30 Euro:

Kuman-NoIR-Camera

Die Kamera hat 5 Megapixel OV5647 Sensor und eine verstellbare Linse zum fokussieren auf nah/fern. Die Kamera wird über ein FCC 15 PIN Kabel am Raspberry CSI (Camera Serial Interface) angeschlossen.

Das FCC Kabel ist nicht gerade ideal für den Ausseneinsatz, und ich will den RPi weiterhin unter der Beute haben. Was tun? Mit ein bisschen Recherche habe ich folgende Adapter gefunden:

Bei Tindie  gibt es ein HDMI-CSI board, sodass die Verbindung zwischen Kamera und RPi über ein HDMI Kabel realisierbar ist:

 

Tindie-HDMI-CSI-Adapter

Die beiden LED sind viel zu stark für die Bautenbeleuchtung von aussen, also habe ich nur eine LED benutzt. Die LED ist mit der Kamera verschraubbar und wird über Kontakt mit 3,3V versorgt. Das hat allerdings den Nachteil, das die LED ständig an ist.

Ein HDMI Kabel hat 19 PINs, d.h. es sind 4 PINs frei, um zum Beispiel die LED an/auszuschalten über eine Verbindung mit einem GPIO PIN auf dem RPi. Die 4 übrigen PINs sind schlauerweise auf dem Board auf die Platine geführt worden, siehe oben Bild links.

Einen PIN für die LED Stromversorgung über GPIO (3,3V an/aus) und 2 PINs für das Mikrofon, siehe unten.

Als HDMI Kabel habe ich folgendes Flachbandkabel von Conrad benutzt, und den Kabelroller entfernt:

HDMI-Kabel

Als Mikrofon habe ich folgendes Mikro von PChero benutzt:

 

Mikrofon

Als Soundkarte (im RPi Gehäuse untergebracht) wurde eine USB Karte von Ugreen benutzt:

USB-Soundkarte

Bevor ein ein Loch in eine Beute schneide, habe ich die Kamera erstmal an einen selbstgebauten Schaukasten montiert. Das sieht so aus:

Schaukasten-1

Auf der einen Seite des Schaukasten ist das Kamera/Mikrofongehäuse untergebracht. Damit es mit dem fokussieren auf das erste Rähmchen klappt, habe ich zusätzlich einen Abstandskasten aus Holz eingefügt.

Schaukasten-2

Unter dem Kamera/Mikrofongehäuse sieht man das HDMI Kabel das die Kamerasignal, LED an/aus und das Mikrofon überträgt zum RPI unter dem Schaukasten.

Schaukasten-3

Hier die andere Seite des Schaukasten mit dem grossen Schaufenster:

Schaukasten-4

Ein blick von oben….das Kabel ist ein Temperatursensor!

Schaukasten-5

ein Blick durch das Schaufenster zur Kamera und Mikrofon (oben).

BLick hinein

und etwas detailierter (durch die beiden Folien hindurch Richtung Kamera (leider falsch fokussiert auf die vordere Folie).

Schaukasten-6

Der RPi unter dem Schaukasten,

Schaukasten-7

Die Schublade unter der Beute.

Und hier die ersten Ergebnisse:

Video 10 sec mit IR-LED an (man sieht den Reflex der LED in der Folie, links das Mikrofon, Das Video steht auf der Seite, eigentlich ist das Mikrofon oben):

 

Video 10 Sec mit IR-LED aus (tags, Streulicht von unten weil Schublade auf, man sieht die rote LED von der Kamera an in der Mitte in der Folie reflektieren):

 

und dasselbe nachts (man kann schwach die rote Kamera LED erkennen als Reflexion in der Mitte), ansonsten dunkel :-), Aufnahme 0:54 Uhr:

 

und jetzt nochmals mit LED an nachts, Aufnahme 0:56 Uhr:

Die Videos wurden mit ein  Python Program aufgenommen, über einen Webserver zugreizbar:

#sudo python3 beestream3.py
import RPi.GPIO as GPIO
import io
import picamera
import socketserver
from threading import Condition
from http import server

PAGE=“““\
<html>
<head>
<title>BeePhone MJPEG streaming demo</title>
</head>
<body>
<h1>BeePhone MJPEG streaming demo</h1>
<img src=“stream.mjpg“ width=“640″ height=“480″ />
</body>
</html>
„““

# ————-
# Configuration
# ————-
# set method of counting for GPIO pins
GPIO.setmode(GPIO.BOARD)
# Pin 11 (GPIO17) set for output
GPIO.setup(11, GPIO.OUT)
# Switch pin to HIGH (3,3V) to light IR LED, LOW to turn off
GPIO.output(11, GPIO.HIGH)

with picamera.PiCamera(resolution=’640×480′, framerate=24) as camera:output = StreamingOutput()
camera.start_recording(output, format=’mjpeg‘)
try:
address = (“, 8000)
server = StreamingServer(address, StreamingHandler)
server.serve_forever()
finally:
camera.stop_recording()

 

Und ein Mikrofonmitschnitt von 8 Sekunden (aufgenommen mit arecord -f cd -D plughw:1 test.wav)

 

Und noch ein Mitschnitt vom 11.7. über 120 sec

 

Und hier die Auswertung der 120 sec Audiodatei. Vielen Dank an Andreas.

Audiodatei beschaffen

$ wget http://blog.hies.de/wp-content/uploads/2017/07/arecord-mhies-11-7-2017-120sec.wav

Sonagramm darstellen

$ sox arecord-mhies-11-7-2017-120sec.wav arecord-mhies-11-7-2017-120sec-resampled.wav remix 1,2 norm -3 sinc 30-1500 rate 3000
$ sox arecord-mhies-11-7-2017-120sec-resampled.wav -n spectrogram -h -m -p 3 -z 85 -y 768 -o arecord-mhies-11-7-2017-120sec-sonagram.png

Spektrale Leistungsdichte darstellen

$ xvfb-run audiohealth power --audiofile arecord-mhies-11-7-2017-120sec.wav --pngfile arecord-mhies-11-7-2017-120sec-power.png

==================
Peaks by frequency
==================
          55.37 Hz            587.00 RMS
         147.66 Hz            359.64 RMS
         246.09 Hz           1053.50 RMS
         344.53 Hz            888.79 RMS
        1125.88 Hz            108.60 RMS

==============
Peaks by power
==============
        1053.50 RMS            246.09 Hz
         888.79 RMS            344.53 Hz
         587.00 RMS             55.37 Hz
         359.64 RMS            147.66 Hz
         108.60 RMS           1125.88 Hz

========
Analysis
========
Colony has high activity. Reason: Frequency at 246.09375 Hz has a power of 1053.49682617 RMS, which is >= 1000 RMS.

Mit OSBH audio analyzer analysieren

$ audiohealth analyze --analyzer tools/osbh-audioanalyzer/bin/test --audiofile arecord-mhies-11-7-2017-120sec.wav

Duration: 122s
Strategy: lr-2.1

==================
Sequence of states
==================
active, active, active, active, active, active, active, active, active, active, active, active

===================
Compressed timeline
===================
  0s - 120s   active          ============

==============
Total duration
==============
       120s   active          ============

======
Result
======
The most common events (i.e. the events with the highest total duration) are:

     The colony is mostly in »ACTIVE« state, which is going on for 120 seconds.