Steering a combine via GPS

;D
and here I am, worried about getting stuck in the snow.. :smiley:

You've got to let us know how you get it out! Haha. Time to add some boundries in the software, so hopefully you don't run off course.. or at least it'll know there's a stream ahead. :slight_smile:

That pic isn't one of our machines. We've never had an issue, but I can see how it is possible. You run a machine with autosteer long enough, and you'll find yourself waking up to the end-of-row beeper once in a while.

Definitely must reiterate others' comments... it's great to see someone driven to apply these 'hobby-friendly' microcontrollers to a realworld application, especially a project so connected to your daily work/life. Kudos.

And of course, the scope of the effort speaks volumes too.

Saw your photos/webpage:

wanted to confirm that the driver circuit would work, that the solenoids work, and get a feel for how big the deadband is. Everything was successful. How many farmers do you know who have an oscilloscope in the shop? (pic)

:sunglasses:
Now I know what the expression "the Farmer and the Dell" means!

Hi Lance,
your project is pure inspiration. On your site you make the statement:

  • "What is Lefebure.com GPS? This is a project to build an auto-steer system for agricultural use. More specifically, the system uses GPS data to create a coverage map, and also to steer the machine. The original goal was to build a system that is more intuitive and less expensive than anything else on the market."

The line I've underlined shows that you've achieved your goal. And to think this is your 1st Arduino project!. Amazing.

It really show cases what Arduino is capable of.

You may want to look at the codes in the a programin[/url]g for some help in integrating the gps data and stearing into the arduino. the project is aimed at rc airplanes but it might give you some directions to consider. There are examples of gps parsing there too. I know there is a lot of ground based robots running the code.

I would love to see more details of your system, ie valve control interface etc.. :slight_smile:

Jay

now maybe it will let men link.

Ardupilot http://ardupilot.googlecode.com/files/ArduPilot_24.zip/url]

I've read a bit about the ArduPilot project, and it appears to be growing at a healthy pace. I'll look into it more deeply in February/March when I start prepping for spring planting. Working on some other projects currently.

I think it would be easier to couple GPS to IMU data on an airplane due to the high speed. The slower you go, the longer the time delay between when your heading changes and when you can pick that up in the GPS data. Even the big name companies are only able to make it work down to about 0.5 MPH. In addition, the location of the GPS antenna relative to the solid axle has an effect on how the GPS data can be used to correct the IMU data.

The valve controller is a pair of N-channel logic level mosfets that drive the two solenoids on my hydraulic valve. I think I even got the basic schematic off this forum, and adapted it for my load requirements.

Basically there is a Windows computer that gets NMEA data from a GPS receiver, determines how far offline it is from the target path, adds any tilt correction to that, and then determines what angle the steer axle should be at to get back to that desired line. Then a PI loop takes over and moves the steering valve left or right to get the steer axle angle to the desired position. The windows computer also keeps track of where the machine has been (coverage map) and shows that to the user as a 3d map in DirectX. The coverage map can also be used to turn things on and off to eliminate overlap of chemicals, seed, fertilizer, etc.

-Lance

Lance:

Sounds like you've put a great deal of thought into your program and it shows. Take a look also at the programming for the ardupilot ground stations sorry i haven't looked up the link but you will be able to find it ao the same web page.

I like what you are doing, I was involved in agricultural retail for 26 years and played with many shapes and forms of precision placement over the years. Initially the electroniscs were not there, Now that that has changed I see more people interested. I hope the work of individuals like yourself can make systems more economical.

Also check out the forums for ideas, there ar a lot of people playing with helicopters and quadra-copters so the slow speed issue may be addressed as well.

Ardupilot is open source so the community is allways ready to help knowledgeable people. I'm sure there will be interest in your code and also helping you out. There are (literally) a lot of rocket scientists and aeronautical engineers working on it.

One word..
Awesome!!!

My compliments!

What a great project!

I found this thread looking for help with my boat auto pilot project. I want to drag lures in nice straight lines and update an old non functional system

I need to spin a 12V motor to steer the boat as you do the combine so anything you could share as to how that drive is constructed would be great.

My autopilot has a gizmo called a binnacle (not a flux gate) that finds a north reference and gives a deviation feedback (hold course) that is amazingly sensitive when read by arduino. it will tell you the variation from the original line even when stopped. The output is analog.

I could describe it's operation and how I am reading it with arduino if the interest exists..

Road

For steering, I calculate a desired steering angle from a few components (speed, offline distance, heading relative to target heading, and wheelbase length). I then use a PI loop to get the steer angle to the desired steer angle, using a potentiometer as feedback of the steering angle. The output of the PI loop controls two solenoids that move hydraulic oil to the steering cylinder. In my case, it took a PWM value to 90 to get the valve to open, and full open was 255. You'll find a similar situation with an electric motor where it will take a certain level of PWM to get the motor to turn at all.

I have mostly dropped the Arduino as a development platform for steering, in favor of a Netburner. I intend to do communication to the cab computer via Ethernet instead of USB, although I may retain an Arduino for Analog to Digital and valve control. The intent is for the Netburner to do 100% of the steering control, IMU calculations, and read from a GPS receiver, which all gets controlled via web browser.

Neet,
I'm making progress with my project. I'm only a couple of weeks in and have already come up with most of the code despite my total lack of c code ability. (asking questions in another thread)

I need to learn to build a big H bridge to run the motor to and fro using some existing transistors (NTE180/181) if someone want to chime in there... the rest of the motor control is toast (act of gods)

I have a couple of arduino shields that put out pwm...

Road

I'm looking at this thread and your pictures a second time, Lance, and I am still amazed this was your first Arduino project! Although it does seem like you have to have had some kind of chops under you belt; you have an o-scope, and there was programming and the custom circuit involved...so I have to ask:

Why are you a farmer and not a circuit nerd like the rest of us? ;D

Where did you pick up your skills? What made you decide to void the warranty on your tractor (does Case know about this?)... :wink:

LOL - actually, I like the custom enclosure for the Arduino and interface PCB - I think I have one in my fridge holding some leftovers! The only thing I would suggest (though you say you are moving to a different platform, and it seemed to have held up anyway) is to blob some hot glue on the i/o sockets and wires to/from the Arduino (and maybe the USB connection, too) - I am really surprised that the vibration and such didn't pop those loose! Really they should be soldered in place, rather than stuck in the headers.

Wow - great job!

Thanks for the kind words.

I guess I am a circuit nerd, just not in the professional sense. I enjoy waking up whenever I feel like it (usually ~10AM). Did the IT thing for a while, but I eventually realized that I would never get rich working for someone.

My o-scope and basic electronic skills are from college. Programming is self taught. Currently trying to learn C++ on Eclipse (which is a sucky platform compared to microsoft visual anything).

Warranty on new equipment is typically 1 year, so my test mule was well out of warranty. The iron manufacturers are aware of what I'm doing, but their employees can't say much in public, such as on a forum.

I've never had an issue with connections vibrating loose.

-Lance

mx270a as a fellow farmer I'm very impressed by your project! I have just started out with my Arduino and my first little project will be using it as a seed monitor on my little 4 row JD planter.

We have a old 4420 JD combine with no automation at all, was just wondering how do the newer machines get a measurement of the incoming bushels? Are they using sensors in the clean grain auger?

Yield monitoring on a combine typically uses weight sensor to feel how much impact the incoming grain has as it comes in to the hopper. They put the sensor at the top of the clean grain elevator so as it comes up the elevator and gets thrown off at the top, the grain hits the sensor. There is also a moisture sensor to calculate shrink. Test weight has to be estimated, which is where you will get a lot of error when going from one hybrid to another.

The system will need to be calibrated for different flow rates. There are also patents on the algorithms. Ag Leader uses a curved calibration line, and John Deere is linear.

The newer systems use CanBus sensors, so if you feel like sniffing the bus, you can pull the raw data and try to calculate it yourself.

Lance, I have found this whole thread amazing! from the Arduino side as well as farming side. I was raised on a "farm" - tiny compared to your setup. So small I can remember cutting cotton stalks with a pair of mules! Then we got a two-row tractor to go along with the one row tractor we had.

The scale of farming on those big farms is amazes me.

Good luck and keep us updated on your projects.

Ken H>

Hello,

What Ard. board did you use? What is best for something that moves faster, about 10 mph or so?

Thanks!

Originally I was using a Duemilanove that was wired to a prototyping PCB that had some TO-220 MOSFETs for switching higher amperage power that controlled solenoids on the steering valve. I have since developed a couple PCBs that have everything I need on one card - power regulation, the ATMega, TTL-to-RS232 translator, valve driver MOSFETs, and some sensor inputs.

A vehicle that moves at 10 MPH will have very accurate heading data at that speed, but a tiny amount of heading error will drive you away from your desired path quickly. Getting accurate heading data will still require a yaw sensor coupled to a magnetometer or GPS.