Rover Motor Control
Table of Contents
1. Introduction
Hi! This will be my first blog for the Experimenting with Current Sense Amplifiers design challenge. For this design challenge, I plan on continuing the work on the rover that I have been working on for the last few months (Orb-Weaver Rover - Blog #6 - Project Overview). Before I get into more details about it, I want to thank the judges for selecting me as one of the challengers for this design challenge. The kit I will be using for the design challenge includes:
- MIKROE-4914 Current 6 Click - MAX40080, a fast-response bi-directional current-sense amplifier
- MIKROE-2756 Expansion Board, shield for the Raspberry Pi 3
- Raspberry Pi 3 Model B
2. Plan
Simply said, my plan for this design challenge is to use this sensor to do protection on a DC motor as well as more precise motor control. Now, to explain that a bit further. For the Just Encase design challenge I made a LoRa controlled rover based on the Arduino MKR WAN1300. The rover has 4-wheel drive with a dedicated motor for each wheel. Each motor is connected to the wheel with a small gearbox to increase the torque and reduce the speed. Because I didn't have any current sensors installed at the moment, I decided to make small gearboxes that worked with small rubber bands.
The reason why I did that is so that if a wheel got stuck, or the motor started experiencing too much drag from the wheel, the motor can slip due to the rubber bands. In this way, I made sure to be safe when it comes to burning out the motors or the motor controllers. While this was a really easy way to accomplish what I wanted at the time, I knew that it wasn't a permanent solution. The main reason for that is actually the thing that made it good, the slip from the rubber band. It meant I couldn't use the encoders on the motors for more precise rover control because the transfer of rotation from the motor to the wheel was never constant. Besides that, there was another thing as you can see from the picture below.
As you can see from the picture, the rubber bands can break up pretty easily when under tension and when there are a couple of them rubbing against each other.
My plan now is to use the current sensor and upgrade the rover to a geared gearbox. This means I will be able to get the max torque out of the motors without being worried if I will be burning out something, but it can mean a few more things that I plan on investigating a bit through this design challenge. Before I get into that, while I was working on the rover I made a prototype of a geared gearbox and it worked great. I expected it to be much noisier, but it ran excellent.
The first thing I will be doing is taking one of the wheel assemblies of the rover and connecting it to a driver and the current sensor. My first goal will be to implement overcurrent protection so I don't burn out either the motor or motor controller. Since the motor current is proportional to the motor torque, I want to experiment a bit and program a controller that will utilize data from the motor encoder and the current sensor to control the torque of the motor. One last idea I had will require a bit more running time on the rover so I can get some data, and that is to try and do some predictive maintenance for the gearboxes. Simply put, if I start detecting that a single motor is gradually drawing more current than the others, it probably means that there is something that went wrong with the bearings, gears, or something similar which is causing the motor more drag. Also, if a motor starts using more current suddenly compared to the other motors, it can be that something got stuck in the wheel and so on.
3. Summary
My main goal for this project is to conduct the experiments that I've described above using a single motor with my ultimate goal being to integrate all of that into the rover itself. The integration into the rover will be a bit more complicated, simply said, the rover will need to grow a bit. I'll need to add another box for the electronics besides the one it has and design my own differential for the suspension instead of the one I've been using (I will be keeping the giant smile and googly eyes!). Long way ahead for the rover, but can't wait to write the next blog with the update on the topic! Thanks for reading this short blog, hope you liked it!
Milos
The second blog is out now!