Skip to main content

Posts

Showing posts from 2013

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

Tanked

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.



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 testi…

Software Developers Experience building a robot Part 1(Legs)

Introduction

This will be part one in a series where I ( A software developer ) share my experiences in an attempt to build a fully wireless robot. This series will be targeted at other software developers wanting to do the same , who can hopefully learn from my mistakes , and electronics engineers who would like a good laugh.

The software:
As this is aimed at software people we will start by talking about the software, before delving into the unknown and getting electrocuted. Before I even started buying parts, I had decided to go with the following "stack":
Raspberry Pi with wifi dongleArduino microcontrollerFirmataJohnny-five
As you can tell from the need for johnny-five this is indeed a JavaScript robot. The Idea is to run the JS on the Pi and have it control the Arduino and in turn control the robot.

One thing to note on this is that the Pi's default package manager does not load the latest version of node.js so you are going to have to compile a newer version if you …

Nodebot-Builds

I've started a project that I hope really gets off the ground. It's just a simple github page that lists successful nodebot projects.







The idea is to keep a list of successful projects that detail the hardware and open source the software involved in making the nodebot.  This will give people an indication of the complexity and cost of a project before diving in and hopefully sidestep any issues the original creator may have encountered.

I hope this will serve as a platform for beginners to launch off of ,nodebot veterans to pass on knowledge and as a gauge to the size of the nodebot community.

As a start and to show what I had in mind , I've added my own project as an example to the list. However any input on formatting would be graciously accepted, after all, this is open source!



The Site: http://nodebot-builds.github.io/Builds/
The wiki page: https://github.com/NodeBot-Builds/Builds/wiki

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…

Running Node.js alongside Apache

Reverse proxy

Running node alongside Apache takes little effort, all it requires is a reverse proxy , which is way less of an effort to set up in Apache than it is in IIS and a way to run your node process as a service.




 To set up a reverse proxy in apache simply add the code in the following gist to the end of your httpd.conf ( located at /etc/apache2 on OSX ) just before the line: Include /private/etc/apache2/other/*.conf .

Loading Gist ....
This will re-route any traffic from yourserver/node to yourserver:8080. Of corse line 14 (ProxyPass /node http://localhost:8080) can be edited according to your liking , but this is just an example.

Thats it when it comes to the reverse proxy , all you have to do is restart apache and all requests to yourserver/node will now go to the node process running at yourserver:8080.

Forever

Now that we have Apache rerouting the traffic to the right spot , we should set up the node server as a daemon so that it's always up , there are many ways …

Controlling an LED on an Arduino over HTTP

Prerequisites
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…