Introduction: Physics Fan Cart

A common piece of physics lab equipment is a device called a "fan cart." Perhaps you used one yourself when you were in high school of college? A fan cart is essentially a low-friction dynamics cart, commonly used to study motion, momentum, energy, etc., fitted with a motor and propeller or "fan." The fan provides a constant force, which conveniently produces a constant acceleration. Fan carts are available from science lab supply vendors, but some are cheap, break easily, and lack features while other higher quality fan carts are sometimes expensive for science departments on a budget. I have designed a low-cost, programmable fan cart that fits in existing dynamics carts (most physics labs already have dynamics carts), and this Instructable describes how to make one.

Step 1: Parts List & Circuit Schematic

The electronics components needed are readily available from Mouser. The DC motor is from MCM, and the chassis is 3D printed. The prop can be any prop up to about 4" diameter. I did try a prop from a small quad-copter, and it worked but didn't provide much thrust. Be aware you may need to bore out the prop hub (with a 5/64" drill bit) or add an adapter to fit the motor's 2mm shaft. The Turnigy prop I specify requires an adapter that I 3D printed. (See Construction Step.) Total parts cost (excluding PCB) is around $7 in quantities of 10+. The hook-up wire will be an added cost if you don't have any around. I used 22ga, but 24ga should work also.

Parts List

  • ATtiny45-20, uC
  • KSD1619GS, NPN Transistor
  • Keystone 2464, 3xAA Battery Holder
  • 8-pin IC socket
  • 100uF Electrolytic Capacitor
  • 10uF Electrolytic Capacitor
  • (2) 0.1uF Ceramic Capacitor
  • (2) 120 Ohm Resistor, 1/8W
  • 680 Ohm Resistor, 1/8W
  • 10K Ohm Resistor, 1/8W
  • Momentary Switch, ALPS SKRGARD010
  • LED, 5mm, Red
  • 1N4004 Diode
  • 3V DC Motor, MCM 28-12811
  • 22ga Wire, Standed, Black
  • 22ga Wire, Stranded, Red
  • 4" Propeller, Hobby King, Turnigy 4x3
  • Mounting Tape, double-sided sticky

Step 2: PCB Design

I used Eagle CAD to design the PCB, and the Gerber files are attached. I used Sunstone to manufacturer the PCBs, and they do a really nice job. So the rules files I used were Sunstone's. Expect to pay ~$12 per PCB. Much cheaper (about 10 times!!) PCB manufacturers can be found in China.

Step 3: 3D Printing the Chassis

I designed the chassis using Autocad Inventor and produced the attached .STL file. Beware units settings in Inventor. Default is centimeters, so if you set dimensions in mm, your object will appear scaled by some factor of 10. Mesh software applications, like Makerbot Desktop, can scale the object in the printer settings. I experimented with using supports, but supports during 3D printing are not really needed, and sagging is minimal. I used PLA, but either PLA or ABS should work. Print resolution was set to 0.2mm on our Makerbot Replicator (5th Gen) printer. Lower resolutions were worse for some reason, so use the default 0.2mm. Each chassis takes a couple hours to print.

You can also add the prop hub adapter to the build plate at this time to make all your 3D printed parts at the same time. Despite setting the adapter hub to the correct 2mm inner diameter, I still had to run a 5/64" drill bit through it to get it to fit on the motor shaft.

The chassis will fit in either the PASCO (plastic) PASCars (ME-6950) or the Vernier Standard Cart. If using the Vernier cart, you will need to use the aluminum post clamp that Vernier provides to hold the chassis/assembly in place and prevent it from sliding fore and aft. A small rubber band around the post can provide some added friction to hold the chassis in place. I've also designed a "hold-down" bracket for the Vernier cart, and that STL file is also attached.

Step 4: Microcontroller Programming

I used the ATtiny45 for this project. The code is pretty simple, so the ATtiny's 4K memory is sufficient. I used an Arduino Uno as the programmer (ISP). Instructions on how to configure an Uno as an ISP can be found here. (Thank you, High-Low Tech!) Once your Arduino is configured, you will need 6 jumper wires and a 10uF capacitor (for the Arduino reset pin). You can see my Arduino in the picture. Note: I shared the breadboard with my test circuit. So on one side of the breadboard I programmed the ATtiny and on the other side was where I tested the program. Be careful not to insert the 8-pin uC backwards! (I did and melted a portion of my breadboard.)

Once you have your Arduino configured and ATtiny connected, open the Arduino IDE and plug in the USB cable. Be patient for the COM port to connect. Once it does, compile and upload the attached program to the ATtiny. Programming only takes a few seconds. Disconnect the USB cable to disconnect power before removing the ATtiny.

Step 5: Construction

Populate the PCB and solder components. Start with resistors because they're easiest. Pay attention to polarity on electrolytic capacitors, the LED, the IC socket, the uC, the diode, the transistor, and the uC. (Yes, I said the uC twice -- remember my melted breadboard?) Inserting any polarized component backwards will be somewhere from minor to major disaster.

One of the two 0.1uF capacitors in the parts list is placed across the motor terminals to reduce motor noise. Without this the motor EMI/noise can be bad enough to reset the uC. So add a 0.1uF cap between the motor terminals and then connect about a 10cm length of red and black hook-up wire to the terminals. The red (+) motor terminal is usually indicated by a dot on the motor's plastic rear housing. Twist the red/black wire pair to also reduce noise.

Clean the bottom of the motor housing with a little alcohol to remove dirt and oil. Then affix the motor to the top of the 3D printed chassis with some mounting tape.

Press-fit (but do not solder) the PCB onto the battery holder. There is no other connection between the PCB and battery holder other than the two power terminals, and the PCB rests on the back of the battery holder. Note the open battery side of the holder faces downward.

Neatly and without straining the connections, route the red and black wires from the motor along the side of the chassis riser. My chassis design has some hooks to hold the wire in place. You may need to un-twist a portion of the twisted pair to slide a wire behind the hooks. The red wire connects to M+ and black to M- on the PCB. Cut the red and black wires to the appropriate length and strip, twist, and tin the ends. Then solder them to the PCB and trim the excess from the solder pads. You may now solder the PCB to the battery holder and trim the terminals.

Press-fit the 3D printed hub adapter into the prop hub and then press-fit the prop onto the motor shaft.

Step 6: Testing, Programming

Insert 3 AA batteries into the battery holder. The LED should immediately show a "heartbeat" -- blinking once per second. IF YOU DO NOT SEE THE HEARTBEAT, REMOVE A BATTERY and go back and check your electrical connections.

If you do see a heartbeat, all is well, and you can move on to the programming step. The programming instructions are in this YouTube video.

Caution: On a dynamics track and especially with the motor set to full power, the cart will be moving very fast by the end of the track. Be mindful of how you are going to stop the cart. I've broken 1 propeller already by not paying attention! (This would be a good experience for young drivers!)

That's it! Congratulations on making a Fan Cart for your physics lab!