Controlling 2 brushed DC motors using Mission Planner

I am currently working on a senior design project where teams are required to build their own delivery drone and have it deliver as many 700g packages as possible to predefined locations within a specified time frame. Our team designed a mostly carbon fiber hexacopter drone that uses a Pixhawk 5X, M8N GPS, PM03D power module, 6S 14000mAh LiPo battery, and SiK telemetry radios. We want it to carry 2 packages at once, and deliver them separately. We will use Mission Planner to automate flight, but I was wondering if it was possible to somehow automate delivery as well.

Above is a rough sketch of the delivery mechanism I designed; basically a pulley system is attached to 12V 1.6A 260rpm brushed DC motors with an integrated worm gearbox (to suspend package, as the shaft does not rotate unless motor is powered). The motors speed/direction are controlled using bidirectional brushed ESCs connected to an RC receiver/transmitter. The ESCs are soldered to the 22.2V solder pads on the power module.

Keep in mind that all of us are mechanical/aerospace majors who know very little about drones and electronics, so go easy on me if something is very wrong or if the question is dumb, lol.

I was reading through the Mission Planner MAVLink commands but all I could see are ones for setting servo pins on the controller itself to specific PWM values, but I think the output voltage is way too low for this application.

The PM03D has, according to the spec sheet, 2 12V 3A triple row pin headers. So my question is, would it be possible to somehow tell Mission Planner to:

1.) make the drone hover in place at a defined location
2.) while hovering in place, provide power to one of the 12V triple row pin headers
3.) after a certain amount of time, reverse the polarity so that the motor will reverse directions
4.) fly to another defined location
4.) do the same thing with the other triple row pins for the second payload

This would remove the need for the receiver/transmitter and the heavy brushed ESCs, which would drastically reduce weight as well as making it nearly 100% autonomous.

Any input would be appreciated.

Hi,
there are a number of possibilities I can think of despite that Iā€™ve never used the delivery function or something similar.

  • One option would be as described here:
    Servo Gripper ā€” Copter documentation
    But as this requires actually landing it may not work for you.
    ā†’ But there is also the payload place command which could be combined with what you are trying to do. More info here:
    Copter Mission Command List ā€” Copter documentation
  • It used to be possible to get servo mounted switches - But can easily done with a 3D printer these days. Using such switch you can simply activate and reverse the polarity of your 12V motors. This can be done by a servo channel of your FC and triggered by a mission command.
    You repeat this with another servo / switch at the second drop off location.
    This would also eliminate the need for a ESC as you only need to switch 12V on and off and reverse polarity.
  • A third option would be a combination of above and using mavproxy or lua script commands to trigger the release.
  • Then there is the option of using the relay output option and wring those to run your 12V motors.

Servo mounted switch
In above photo you can see two switches. One could be wired to run 12V in one way (drop) and then switching to opposite switch / side activating reverse once drop / delivery has occurred.


This used to be available - Just shown for design ideas. - Same possibility of wiring as other design.

1 Like