Difference between revisions of "Mouse Cage Imaging"

From Wiki
Jump to navigation Jump to search
Line 36: Line 36:
 
Update the HW Clock from system time, assuming the Raspberry PI had is network connected.
 
Update the HW Clock from system time, assuming the Raspberry PI had is network connected.
  
  sudo ntpdate time.umassmed.edu
 
 
   sudo hwclock -w  
 
   sudo hwclock -w  
  

Revision as of 17:17, 7 February 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_pverscan =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


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

Not sure if anything below is needed

 sudo apt-get purge fake-hwclock
 sudo systemctl start hwclock
 sudo systemctl enable hwclock
 sudo vi /lib/udev/hwclock-set
 sudo update-rc.d hwclock.sh enable

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")
 
 raspistill --annotate 12 -w 1296 -h 972 -hf -vf -o /home/pi/timelapse/$DATE.jpg
 /bin/bash /home/pi/bin/sync_files.bash


Create a /home/pi/bin/sync_file.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

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
 0 17 * * 5 rm -rf /home/pi/timelapse/*.jpg 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

3D Printed Parts