hub drive - just an idea
You should always be able to turn by hand. For that, the Cytron is 2nd best. Better choice is the IBT2 which can set both half-bridges tristated. Although easily possible to detect (WAS input != PWM output), I know no solution for an automatic disable.
more likely: large hollow shaft ultra low speed disc DC brushless motor motor Flat thin Multipole with Hall
wouldnt it be possible to attach a rotary encoder to the steering wheel or the motor and measure how fast it turns in normal operation, autosteer enabled, so you got a reference to the input signal generated by the software. When I now turn the steering wheel by hand it should differ from its reference value by eg 20% and sends a signal, just like a switch, to the software which disables autosteer. Should be possible with a simple arduino or am wrong?
Edit: Last year I worked on a farm where they had an old tractor with autosteer and an electric steering wheel, which I had to turn a bit to disable autosteer, guess that could work kind of the same way
as AOG needs a WAS, there is no need to install an encoder for disabeling, when using a steering wheel motor. The information is the same. Another option: analyzing the motor current (IBT2 has a sensor output for that), but as I said, I don’t know any implementation.
I know that I need a WAS on the axle, but I dont need to know at what angle my steering wheel is, right? If I would compare the angle or the speed of the steering wheel to the expected speed or angle given by the motor driver (or directly the software?), it should be relatively easy to measure a difference and tell AgOpenGPS to stop autosteer. To analyze the motor current would be kind of the same thing, just with other data, but that might even be the better way. So there is no implemented solution, I’d have to create something myself, or at least try to
keep us tuned!
In your first post you mention you are new here, so I think I should mention the possibility of using a footswitch, either separate or by using switch on brake or clutch, connected to steer switch input on pcbv2
Didnt think about that, that would be possible too. I have been working for three years now with commercial solutions on other farms and found it to be quite handy being able to disable autosteer exactly when I want to steer manually, especially when working around obstacles. But thank you for your hint, especially because i want to use the pcbv2!
What about human capacitive touch of steering wheel.
When the steering motor is active, it should difficult to move it. The H bridges would either be driving it or braking it. Should be possible to measure the current to tell when it’s being moved by hand against that. I would think manual movement would cause a noticeable spike in the current. Not sure how to measure that. Maybe a hall sensor of some kind? Apparently an ACS712 current sensor is available up to 20 amps.
companies like Audi really have a touch at the steering wheel, but unlike a tractor, they have electronic for all the keys there anyway and with that a power supply/data lines.
@torriem That’s not correct by 100%. You’re right for the Cytron motor driver, that has only direction and PWM signals. The IBT2 has PWM and Enable independently for both output stages, although AOG puts two of them togeteher. With that, you can tristate the stage, leading to significantly reduced torques. Nice description of the priciples can be found here: Datasheet TI DRV8844, chapter 7.3.3
Would that work with a plastic flywheel or whatever material used? How to measure the capacity above? and how to connect a steering wheel that turns? It would be a good solution but the how to do it seems complex to me
I think of a metal type tape on the underside of steering wheel.
Could be battery operated over Bluetooth, or tape around center and a “brush /coal” to read like on a car.
Finally very easy: Azoteq IQS211. Azoteq is the leading company, others like ST integrate their technology. The ESP32 also has touch sense inputs.
I had similar idea about a year ago, used a bit of added arduino code to read an encoder stolen from a stereo volume control with big knob & included a push button switch. basically if encoder is turned steering control arduino ignores AOG and responds to speed & direction of encoder until switch on the encoder is pushed to return control back to AOG. simple.
could dig out the code if interested. but its not tested as the tractor it was destined for was hit by lightning in February and I’m still waiting on its return from the dealer (apparently it should’ve been written off by the insurance rather than put in for repair).
Hello,
For automatic desengaging (shut-off power supply) of the motor when you start to manually move the steering wheel: a solution based on a mesure of the voltage and current at the input of the motor has already been proposed by @Juliennorth here: Autosteer disengagement (torque measurement).
With his solution, the reengaging of the motor is manual, throught a button that the operator has to press.
For automatic reengaging (shut-on the power supply) of the motor, we could uptade his solution has follow:
- Add an encoder to the Phidget motor. Phidget sell encoder that cant be directly add to the rear of their motors: Optical Rotary Encoder HKT22 - 3531_0 at Phidgets. With this encoder we (the Arduino) have acces to the speed of the Phidget.
- When the operator takes back control of the steering wheel we assume that it’s for turning the steering wheel on way or the other. So after having automatically disengaging the motor (following a detection of a beginning of a manual rotation of the steering wheel by the operator), the Arduino can monitor the speed applied to the motor by the operator. If the speed of the motor is superior to 0°/s, the operator is still rotating the steering wheel. If the speed of the motor is 0°/s (plus/minus a tolerance) for a time superior to x secondes (to be define), we assume that the operator has finish to turn the steering wheel. So the motor can be reengage automatically by the Arduino (power to motor shut-on).
Best to keep this system on a seperate Arduino with a specific Arduino Code. If Brian update the Arduino code of AOG, we don’t have to had the automatic disengagin/engaging code to the new version of AOG Arduino code.
Drawback: you always have to move the steering wheel to keep the motor desengaged by the Arduino. So it’s mean that you cannot do this with your tractor: make turn, following a straight line, make a turn again and after let the motor beeing automatically engage.
So it’s why I’m convinced by the utility of the automatic disengaging system. I’m more skeptic of the automatic reengaging system.
And I don’t see any other solution than a monitoring of the speed of the motor when operator manually operate the steering wheel, except hand detection on the steering wheel (like on Tesla car for autopilot) which seem to be really more complicate to implement.
Math
Hi,
the solution of @Juliennorth seems promising, I asked him to send me his code, although I dont completely understand how he measures the current.
Personally I think an automatic engagement system could be dangerous, I would never use that, but I know that some commercial systems can do that, might be interesting for someone.
Thank you all for your interesting point, its fantastic to see a free and simple solution grow apart from big companies.
Greetings
Bennet
Hi, I will send the code tomorow.
I use a small ARDUINO compatible board to get the Amps used by the motor on an Analogic input.
I can read that value with the software in the arduino.
(I calculate the Power by multiplying A and V)
I also do not like the automatic engagement, I prefer to do a manual action to engage steering.
TEST_REMOTE.ino (4.4 KB)
How many amps controller is needed? What should I buy?