Built in collaboration with Jonathan Milloway.
As part of my time as a research intern for the NeuroMechatronics Lab at CMU, I was tasked with building a motorized obstacle for mice to jump over as they ran on the KineMouse wheel.
The mouse obstacle needed to lower the obstacle arm, run on a track about three feet long, raise the obstacle arm, turn around, run back to the start, and repeat until stopped.
As pictured below, the obstacle consists of a wheeled platform that runs on a piece of extruded aluminum. The obstacle wheels are driven by a belt system and DC motor. The obstacle arm is controlled by a servo motor. Both motors are controlled by an Arduino Uno and the entire system is powered by a 9V battery.
The wheels for the obstacle were 3D-printed out of PLA and the obstacle stand was made of a bent aluminum sheet.
Wheel for obstacle
Stand for obstacle
Stand with wheels attached.
We machined a small motor coupler due to not being able to find a coupler online that would match the diameter of our axle (manufactured in metric) to the motor shaft (manufactured in imperial units).
After assembling the stand, we realized we had greatly overestimated the necessary belt length. Instead of ordering a new belt, we first tried to 3D print a stand for the motor that would put the motor at an appropriate distance from the platform. However, this 3D printed stand did not give us the adjustability we wanted to tension the belt. Inspired by the optical posts used to hold the head fixation system, we machined a small, adjustable post that would allow us to increase the height of the motor and achieve the desired tension in the belt to run the wheels.
3D-printed motor stand doesn't allow for adjustability.
Small aluminum adjustable stand.
Determining placement of the adjustable stand.
Adjustable motor stand mounted next to Arduino.
Front view of belt tensioned with adjustable motor stand.
Side view of belt tensioned with adjustable motor stand.
We implemented Arduino code that drove the platform back and forth along the track and lowered/raised the obstacle arm. The code included the option to add a randomized waiting period after moving to the right side of the track so that the mouse could encounter the obstacle with less predictable timing. A video of the mouse obstacle with the KineMouse Wheel and head fixation system is shown on the right below.
Fine-tuning (and crashing) the mouse obstacle :).
The working mouse obstacle paired with the KineMouse wheel and head fixation system!
Like the KineMouse wheel and head fixation system, this project was a great introduction to building testing set-ups for biomedical research. Further improvements I would make to this design include pairing the speed of the obstacle to the speed that the mouse runs on the wheel and changing the material of the obstacle arm to something softer (to prevent mice from being injured while using the wheel). I would also find a way to make the mouse obstacle quieter as the loud noise might increase the stress felt by the mice while using the wheel. If you haven't already, check out how I built the KineMouse wheel and my head fixation system.