Difference between revisions of "Mouse Cage Imaging"

From Wiki
Jump to navigation Jump to search
Line 60: Line 60:
 
    
 
    
 
   raspistill --annotate 12 -w 1296 -h 972 -hf -vf -o /home/pi/timelapse/${NAME}_${DATE}.jpg
 
   raspistill --annotate 12 -w 1296 -h 972 -hf -vf -o /home/pi/timelapse/${NAME}_${DATE}.jpg
  /bin/bash /home/pi/bin/sync_files.bash
 
  
  
Line 114: Line 113:
 
   # m h  dom mon dow  command
 
   # m h  dom mon dow  command
 
   0,10,20,30,40,50 * * * * sh /home/pi/bin/camera.sh 2>&1
 
   0,10,20,30,40,50 * * * * sh /home/pi/bin/camera.sh 2>&1
  0 17 * * 5 rm -rf /home/pi/timelapse/*.jpg 2>&1
 
  
 
      
 
      
Line 151: Line 149:
 
       chown pi:pi /media/mouse/timelapse
 
       chown pi:pi /media/mouse/timelapse
 
   fi
 
   fi
 +
 
 +
  # Copy Mouse Pictures and removes source files
 +
  /bin/bash /home/pi/bin/sync_files.bash
 +
 
 +
  # umount usb stick safely
 +
  if [ -d /media/mouse ]; then
 +
                  /usr/bin/pumount /media/mouse
 +
  fi
 +
  
 +
  sudo chmod a+x /home/pi/bin/sync_files.bash
 
   sudo chmod a+x /usr/local/bin/cpmount
 
   sudo chmod a+x /usr/local/bin/cpmount
  

Revision as of 16:26, 5 December 2019

This is a mouse imaging system designed to take timelapse photos every 10 minutes, even overnight in complete darkness. It uses 3D parts to mount a Raspberry Pi, and an Infrared Camera to a mouse cage.

Parts:


HDMI

edit /boot/config.txt and uncomment "disable_overscan =1 "

Real Time Clock Setup

 add "dtoverlay=i2c-rtc,ds3231" to /boot/config.txt

edit the /lib/udev/hwclock-set file (sudo nano /lib/udev/hwclock-set) and "comment out" the following lines"

 if [ -e /run/systemd/system ] ; then
 exit 0
 fi

so they become:

 #if [ -e /run/systemd/system ] ; then
 # exit 0
 #fi


Reboot

Update the HW Clock from system time, assuming the Raspberry PI had is network connected.

 sudo hwclock -w 

reboot and then run:

 sudo hwclock -r

Infrared Camera Setup

Enable Camera

 sudo raspi-config

Timelapse Scripts

 cd; mkdir timelapse;mkdir bin
 sudo apt-get install pmount

Create a /home/pi/bin/camera.sh and add the following text

 DATE=$(date +"%Y-%m-%d_%H%M")
 MOUSE="mouse1"
 
 raspistill --annotate 12 -w 1296 -h 972 -hf -vf -o /home/pi/timelapse/${NAME}_${DATE}.jpg


Create a /home/pi/bin/sync_files.bash and add the following text

 #!/bin/bash
 
 if [ -d /home/pi/timelapse ]
 then
       if [ ! -d /media/mouse ]
       then
               pmount /dev/sda1 /media/mouse
       fi
 
       if [ ! -d /media/mouse ]
       then
               pmount /dev/sdb1 /media/mouse
       fi
 
       if [ ! -d /media/mouse ]
       then
               pmount /dev/sdc1 /media/mouse
       fi
 
       if [ ! -d /media/mouse ]
       then
               pmount /dev/sdd1 /media/mouse
       fi
 
       if [ -d /media/mouse ]
       then
               if [ ! -d /media/mouse/timelapse ]
               then
                       mkdir /media/mouse/timelapse
               fi
 
               if [ -d /media/mouse/timelapse ]
               then
                       rsync -aq /home/pi/timelapse/*.jpg /media/mouse/timelapse/
               fi
       fi
 
       if [ -d /media/mouse ]
       then
               pumount /media/mouse
       fi
 fi
sudo chmod a+x /home/pi/bin/*

Edit a crontab for user PI and add the following text:

 # m h  dom mon dow   command
 0,10,20,30,40,50 * * * * sh /home/pi/bin/camera.sh 2>&1


Edit usbstick.rules

 sudo vi /etc/udev/rules.d/usbstick.rules

Add the following line:

 ACTION=="add", KERNEL=="sd[a-z][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k"

Edit usbstick-handler@.service

 sudo vi /lib/systemd/system/usbstick-handler@.service

Add the following lines:

 [Unit]
 Description=Mount USB sticks
 BindsTo=dev-%i.device
 After=dev-%i.device
 
 [Service]
 Type=oneshot
 RemainAfterExit=yes
 ExecStart=/usr/local/bin/cpmount /dev/%I
 ExecStop=/usr/bin/pumount /dev/%I

Edit /usr/local/bin/cpmount and add the following lines:

 #!/bin/bash
 /usr/bin/pmount --umask 000 --noatime -w --sync $1 mouse
 
 if mountpoint -q /media/mouse  
 then
     if [ ! -d /media/mouse/timelapse ]
     then
         mkdir /media/mouse/timelapse
     fi
     chown pi:pi /media/mouse/timelapse
 fi
 
 # Copy Mouse Pictures and removes source files
 /bin/bash /home/pi/bin/sync_files.bash
 
 # umount usb stick safely
 if [ -d /media/mouse ]; then
                 /usr/bin/pumount /media/mouse
 fi


 sudo chmod a+x /home/pi/bin/sync_files.bash
 sudo chmod a+x /usr/local/bin/cpmount

3D Printed Parts

email Karl Bellvé for final STL files for 3D printing. These will be specific for one type of mouse cage, but one could adapt them.