Skip to main content

Software Developers Experience building a robot Part 2(Tank treads and blue smoke)


As I mentioned in part 1, I had drawn the conclusion that legs were not what I wanted and that tank treads are probably the most overkill for weight bearing. So , I ordered a Rover 5 base.

Rover 5 robot base

Unforeseen requirements

When the Rover base arrived I opened the box to discover something I had completely overlooked; I didn't have a motor controller.

With no clue of what an H-Bridge was and a new found determination I decided to build my own motor controller using about 6 relays. It was finally time to get serious about soldering on those proto-boards.

I used a breadboard to prototype a system that used 6 relays and 4 transistors. You could hear the loud clickity clack of the relays as the direction changed but I was pretty proud of my ingenuity. It was time to solder!

This was the most intricate soldering task I had ever undertaken and it really showed that I'm more of a software kind of guy. I perceived it to be the longest time I have ever spent creating something without testing to see if it still works.  You couldn't fire tracer rounds in this department and it took me around 6 hours to finally get it right as I modified the design on the fly. With code you can do things like that ,but in hardware the result of such action is much more time consuming.

When it was all done and the sun had disappeared, I was fatigued but eager to test my piece of hardware. With a long USB cable dangling off my desk I got my rover base to move with a quickly whipped together node script. It worked!! ...with a lot of clicking noise for sure but it actually worked!

Blue smoke

The next day I went about adding the raspberry-pi to the hardware stack to get the project back on track with my goal. In the process attaching the battery to my newly created motor controller... not checking polarity!

Disaster had struck! I heard a pop and finally got to see the blue smoke I had read about on the internet. My transistors all got fried! My on the fly design didn't help either as I had created a huge crows nest at the bottom of the proto-board and had placed the transistors in ridiculously hard to reach places.

It was at that point that I cut my losses and decided to google 'motor controllers' , If only I had done that sooner.

Lessons learned

It seems I had learned the reason for buying third party motors controllers instead of creating your own , but I did learn a lot from the experience:

  1. Polarity matters!
  2. Hardware is a whole different ballgame
  3. Sometimes its better to not do it yourself

Point 3 on that list may counter the hardware hacker mentality but for me when I looked at the situation I realised the time it would take to repair my home built motor controller would be better spent on other aspects of the project  and that buying a proper pre built one made by professionals was a better choice. At the end of the day I wanted to build a robot , not a motor controller.

I certainly don't regret attempting the task myself though, as I like to think I acquired a valuable life lesson from doing so; You can always do something yourself, but as with everything in life there needs to be a balance and sometimes its better to get things pre-built, pre made or done by someone who actually knows what they are doing.

Popular posts from this blog

Controlling an LED on an Arduino over HTTP

You will need node.js and npm installed , and should have at least some knowledge when it comes to node, if you do not , I suggest you try some example code in node before diving into controlling hardware with it. You must have the Arduino IDE installed on your machineYou must know how to get an LED working on pin 13 of an Arduino
Set up the Arduino
Wire up an LED to the Arduino on pin 13 and plug it into your development machine. Now we need to get it ready to talk to johnny-five. To do this simply follow the instructions under johnny-five's readme
Set up the project 

Create a folder on your development machine for the project , in this folder create the server.js and index.html files. Copy the code from the files in this gist to the respective files.

Loading ....
We aren't done yet , we need johnny-five and the narf for this to work. In your project directory run the following command:

npm install narf johnny-five

If that succeeded we now have the johnny-five libra…

Half-Life 2 for OSX , how well does it run?

Earlier this week Valve advertised Half-Life 2 for the Mac with the best advert I have ever seen. They took the old 1984 Mac advert and re-created it using the source engine and characters from the game. As if the awesome(albeit 35 second) entertainment wasn't enough they offered the game at $3.40 for a limited period. It was not shortly afterwards that I made my first ever purchase on Steam(its kind of strange buying a game and not getting a box with it).

The game purchase actually allows you to download the OSX or Windows version of the game , depending on the platform you are logged in to .This is great , because I have a PC with some decent gaming power and my Mac Mini (which I naturally wanted to test on) and wow ,the OSX version runs pretty darn well,especially considering that my mac mini is running only an intel HD3000.

I was surprised how well the game performed on high settings , the gameplay was smooth with the default high settings , reaching frame-rates up …

Running Node.js alongside IIS on Windows

Most of the time when you are looking for a way to run Node.js as a production server on Windows you will just run into IISNode , now IISNode is a great thing ,but I'm a fan of choice and most importantly , not a fan of XML web config files.

I wanted to run my node server on what ever port I wished,or maybe even a different server and just have IIS reroute the traffic from a particular URL to the node process(so a proxy), this allows you to still manage your own load balancing and possibly scale up from that point without having to bother with IIS again.

So first things first you will want to download and install the URL Rewrite and ARR modules for IIS

ARR (Application Request Routing)URL Rewrite Once thats done lets crack open IIS and open up Application Request Routing, then navigate to Server Proxy Settings and Check Enable Proxy and Apply.

Now lets create an an application on our Default Website that will link our url to the node process, here im directing it to an empty direc…