Skip to content

sgoldenlab/mouse-pusher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mouse Pusher

Mouse pusher is a complementary mechanical device for the med-pc operant boxes, to replace manual labor when propelling mice into the experiment arena. Potentially, by freeing researcher from pushing multiple mice at the same time, the mouse pusher can improve efficiency and accuracy of the procedures and even reduce the audience effect on the mice. This design were tested in the aggression protocol at the Golden Lab UW. This is designed for extra wide operant box.

Demonstration video

Image.from.iOS.1.MOV.mp4

Wiring diagram of linear rail

For each mouse pusher, we need the following components below:

Components list

  • Arduino Uno
  • L298N Motor Driver
  • Linear Stage Rail
  • Screws (based on your linear stage rail requirement)
  • 24V Power Adapter (for the stepper motor, might be different depends on the motor you have)
  • 9V Power Adapter (for powering arduino separately)
  • Jumper wires
  • Electrical tape

Pin Name Description
OUT1 & OUT2 Output pins of Motor A (A+ to OUT1, A- to OUT2
OUT3 & OUT4 Output pins of Motor B (B= to OUT3, B- to OUT2
12V / VCC power supply input, if > 12V DC, remove 12V jumper (black jumper in front of the input)
5V 5V pin on Arduino
GND Ground pin
IN1 pin 8
IN2 pin 9
IN3 pin 10
IN4 pin 11

Step by Step assembling instruction

For a single set, you need 1 linear stage rail, 1 arduino, 1 L298N, 4 M/M jumper wires, 4 M/F jumper wires, 1 9V power adapter, and 1 24V power adapter (with connector tip)

Step 1: braid the wires from the linear stage rail

Step 2: wrap electrical tape around the wire for protection

step 3: take out two sets of two male to male jumper wires, and a set of four male to female jumper wires.

step 4: wrap electrical tapes around jumper wires, we color coded them to distinguish different sets.

step 5: connect wires to l298N motor driver according to the table above

step 6: connect wires to arduino according to the table above

step 7: connect the wire from 12V+ port from L298N to the positive on the adapter connector, and the ground to the negative on the adapter connector.

step 8: plug in 24V to L298N power adapter and 9V to arduino uno.

Tp test the linear stage rail, use position adjustment script moving the stage to desired starting position, and use trial loop script to test stability for 10 minutes.

Wiring connecting arduino and Med-PC

Components:

  • 24V to 5V Optocoupler ( I used 8 channel ones for every 6 of the wire set, you can buy any type of optocoupler that suits best for your project requirement)
  • 5V power adapter
  • Wire
  • Electrical tape

Optocoupler is used to step down the high voltage ttl signal from Med-PC to protect Arduino from frying. the signal output would go to Analog port on arduino (we used A3), and negative goes to the second ground on arduino.

Code

Arduino script

Operant box trial script

Click here for Operant Box Trial Script

This script is for running the actual operant box trials, detailed explanation in the script file, might need small modification to fit your specific trials.

Linear stage position adjustment script

Click here for Linear stage position adjustment script

This script can be used to move the stage to the preferred starting position, or if stalling problem happens, can be used to do some quick testing for the specific reason for stalling

Testloop script

Click here for testloop script

We use this script to test if the wired pusher set is stable before installing it on the opearnt box. This script is optional but we found it useful to prevent the hassel of fixing it after the set being attached to the opearnt box.

Med-PC code

Click Here for example for the Med_PC code

The code above is the Medpc script we used for self-administration aggression study, on the foundation of the original script, We added ^Pusher = 14 (or any open output number you have) to Outputs sections, then at the codes where you command for output to open the door, we added ON ^Pusher Same where you command for output to close the door, we added OFF ^Pusher

Here are the examples clipped from the script above:

image

image

STL Models

Click here to see display model for all components together

The chamber body would be the structure to contain the mice before they are pushed into the operant box, it can contain two mice at a time so the intruder mice can rotate and not getting thrown into the arean as frequently.

The pole is attached to the linear stage, through screw in the four holes, the side with longer side being towards the back of the linear stage. Modification might be needed if the stage has different dimensions.

This is the first detachable bottom of the two, they can be fitted together into the gap at the bottom of the chamber

This is the second detachable bottom of the two, they can be fitted together into the gap at the bottom of the chamber. We have designed the bottoms to be thinner and narrower than the gap of the chamber, but due to 3d printer's accuracy, it might still be hard to fit in or remove them. The little wedge on the second bottom can help you grip it better, and makes it easier to remove this bottome first. If hand strength not enough, please try a plier. If still not fitting correctly, some decrease in width and length might be needed.

The pusher plate is going to be attached onto the pole, the side with shorter legs being the inward side.

This structure is being attached to the operant box under the chamber. the vertical thin flat surface can be fit in the same gap we use to attach the chamber body. the supporting foundation would make all the chamber body be on the same height and restrict unnecessary movement of the linear rail. Depends on the stability of your operant box, the support foundation might still be able to move around a lot, you can use tape to secure the side to the operant box. (If linear rail not the same dimensions, modification would be needed)

The rotate block is a 2 piece structure that would be fitted together through the round hole on the chamber body, when putting down after the divider is in, it would prevent the divider being moved out by the mice.

The divider fits in highest horizontal gap to separate the two mice in the chamber, when fitting in appropriately into the back slot on the other side of the chamber, the thin line on divider should be close to the surface of the chamber.

The Rail guard is a barrier for the tail preventing debris or mice feces getting into the linear stage rail. This stl file is upside down for easier printing purpose.

Common problems

  1. Linear stage rail moves, causing the pusher plate or pole getting stuck by the chamber or other structure around the operant box.

Solution: if stuck in the middle and not returning to the start position, use position adjustment script to return the stage back into starting position, and check for broken components, replace if needed.

  1. Not moving after wiring, often along with strange noise

Solution: recheck all wiring to see if they are all in place, if they are, check if the right voltage of power adapted is connected. If still not solved, check the voltage reading from your mouse pusher script, if the voltage doesn't change to 1023 when you open output 14, it means there is no connection between arduino and medpc, you need to change wire or replug it.

Precautions

Turning off when not using, especially before closing operant box, turning of operant box first will lead to all boxes push forward because the voltage change by the optocoupler

Our advice is to have some backup parts because before everything is properly installed and stablized, it might be very easy to break thin parts like poles and rotate block.

Warning: Divider must be properly locked in and not able to be lodged off, or mice can possibly be serioudly injured.

About

Mouse pusher

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages