Ready, Set, Oscillate! The Fastest Way to Change Arduino Pins
Posted in Tutorials by Bill
18 Aug 2010
There are many ways to change an output pin. The way we know and love is the famous digitalWrite() function. (Spoiler: Want a faster digitalWrite? Download Here!)
But even the Arduino Reference claims that it is not the most efficient. The Arduino functions do a lot of error checking to make sure the pin is configured right and has to map Arduino numbering to actual IO ports. All this cost processor cycles, and time. But how much? This article is not to teach you how to useIO registers, you can read about it on the Arduino Port Manipulation page. This is to cover exactly how inefficient the Arduino functions are.
35 Comments // Read more..
It’s been a while since I posted an update on SAGAR, but here’s the latest.
I wanted her to go faster. My original motors would only do about 1.2 m/s tops. Well, with a little help from a friend, I found new motors that would bring up the top speed to well over 3 m/s. However, they require more current to reach that speed, more then my original controller could handle. So it had to be replaced.
16 Comments // Read more..Getting Data BACK From Google Earth and Into LabView
Posted in Software Libraries by Bill
23 Jun 2010
I wanted to be able to get information back from Google Earth. It’s already easy to plot information on Google Earth, but getting information back, like the GPS coordinates under the mouse pointer, was another story. Well, I slaved myself to my desk for a few days and figured it out. I created a sample VI program that displays the GPS coordinates of the Mouse over the globe, and captures the coordinates on a left mouse click. It then feeds them back into Google Earth as a point.
Want to interface a PlayStation 2 Controller with an Arduino Microcontroller? You have come to the right place. Below you will find a link to download an easy to use library that takes care of all the interfacing for you, so you can start using the controller right away for your project. Don’t forget to link your cool projects in the comments, I’d love to see what you do with the library.
458 Comments // Read more..OLD PlayStation 2 Controller Arduino Library
Posted in Software Libraries, Tutorials by Bill
31 May 2010
Outdated. Go to new library HERE
A while ago, I spent countless days trying to interface an Arduino and a Play Station 2 controller. I wanted to build a controller for my SAGAR robot, and figured PS2 + Arduino would be perfect. However, no matter what I did, no existing library would work for me. I shelfed the project for a while, but recently found this forum post with some code by a member named Shutter. I tried out the code, and to my surprise, IT WORKED!!! Well, mostly anyway. It didn’t really have analog stick support, nor was it formatted into an easy to use library.
1 Comment // Read more..A person has already come to me asking how to interface an Axon Microcontroller to LabView. Instead of a bland answer to the effect of “It’s nothing special”, I decided to write a quick write-up about communications between computer systems; and I will use the communication between my SAGAR robot and LabView operator panel as an example.
Read more..My SAGAR project has gotten to a point where I would like to document the system design through a series of detailed posts.
First I’ll show the new interface, and talk about how it communicates with SAGAR.
2 Comments // Read more..
In a joint effort between my girlfriend and I, SAGAR now has a super fancy LabView based graphical user interface. The video below is a screen capture of the interface as SAGAR runs a mission taking it around a parking lot. All communications are in the form of NMEA sentences. The DIYdrones ground station gave us a few ideas of what we wanted to do.
Ok, so I’m a little overexcited. I just got back from watching SAGAR complete it’s first autonomous mission. I just finished coding the navigation functions and couldn’t wait till the next day to test. Attached is an image of the mission it ran.
I used a Ardupilot program to generate the mission file with waypoints, convert it to a hex file using gcc, and I manually flash that into the Axon’s EEPROM memory. When SAGAR comes online, I give it a command to scan the mission file in memory, then I command it to run the mission.
Read more..
I have been asked by a few people how SAGAR is going, so I guess I need to do some updates more often. Anyway, SAGAR was shelved for a while. The last tests of the closed loop heading controller showed I had something messing with the compass readings. Further tests concluded that my batteries were biasing my compass.









