Mysterious GPS plot-patterns

Sorry for leaving you hanging on what we’ve been doing lately! In the mean time we’ve actually successfully tested the plane and watched it move about in the air (Insert wild cheers here). It was supposed to fly straight, but since the Trim did not reset during the manual flight up, we had it flying in tight circles. This problem has since been fixed, and we’re going to plan another test flight in the near future.

Here’s what we’ve been working on lately. The GPS is connected and transferring data, but there is a weird pattern showing up when the GPS is stationary. Perhaps this could provide a clue as to how to get even more accurate position data from the GPS alone.

Sorry about the audio quality by the way. It seems like the wifi was messing with the microphone–weird!

Getting it all packed up

Wow, it’s hard to believe we’ve made it this far. All the boards are packed up in a tight-fit, plastic box which protects all the components and also makes it super easy to upload the program via a small hole cut for the mini-USB on the Arduino Nano.

Containment Box

Containment Box

Containment Box

The small switch allows us to turn the link to the IMU off since uploading to the nano does not work when the serial link is connected.

The small switch allows us to turn the link to the IMU off since uploading to the nano does not work when the serial link is connected.

Stay tuned for our first test of the autopilot in action!

~ the RADAR Team

Test Board Demonstration Video

Here I demonstrate our current setup with a test board. I’m demonstrating the closed loop operation with periodic trimming. I only showed the ailerons working, but the pitch control surface works as well.

The first part of the program “demos” the control surfaces, then checks to see if the IMU is connected. If it is not connected, it will not move on to the main part of the program. (This will be useful when we program the plane to take-off, as we do not want it to take-off without receiving positional data!)

The main part of the program uses a single line of code to control the roll, pitch, yaw, speed, and duration; like this:

myPlane.fly(roll, pitch, yaw, motor, time);

Inputting any particular values into the function will cause the plane to “hold” the given angles and speeds for the duration specified.

By creating this handy function, it will be now easy to chain these functions together dynamically to create complex maneuvers based on mathematical functions.