Skip to content

A project with nodeJS, Xbee, Arduino, jQuery and of course a Tank.

License

Notifications You must be signed in to change notification settings

alexmac131/NodeXBeeRover

Repository files navigation

NodeRover XR1

The Rover The Rover

The Rover that could

What is it?

This is an experiment where nodeJs acts as a middleware between the UI controller and other services on the back end while the user drives the robot. The nodeJS server could also attach other services to aid the rover, collect data, etc.

A combination of jQuery, nodeJs, Xbee and Arduino. This drives a custom built robot through web page interface around its environment. This is still experimental and code changes often.

This is my first project I am sharing on GitHub, so please be patient.


The Rover

The Rover

Radio transceiver.

Xbee Transceiver

The Interface

Web Interface

Left to Right.

  • Driving panel
  • Engine power (left and right engine)
  • Ultra Sonic radar map

Four Quadrants of data around the directional arrows

  • Top left is range data
  • Top right is the last robot command
  • Bottom left will be extra sensor data
  • Bottom right robot settings: left engine, right engine, command delay, range.

Required

You need a serial device attached in order to run the nodeJS server otherwise the Serial code will not run. Needless to say you will need a Arduino Rover (instructions not included) but you can look here Arduino Rover for suggestions.

nodeJS

node-serial

Arduino Uno Arduino Uno

Motor Shield Motor Shield

Xbee Shield and Xbee pair Xbee


To Run

attach the Xbee to the USB port change var comPort = '/dev/tty.usbserial-A900fwHn' to your comport

Run node server with.. node roverControlServer.js

should result in the following message

done init
Server Running on 8084
comm port ready
connect - localhost:8004/index.html

A typical error results when you get the comm port wrong or the radio transceiver is not attached.

$ node roverControlServer.js
done init
Server Running on 8084

events.js:72
throw er; // Unhandled 'error' event
          ^
Error: Cannot open /dev/tty.usbserial-A900fwHn

To Do

  • Grunt / Task Runner Script to help install all the software dependancies
  • Ready the documentation,
  • add tags to the code and commenting
  • Add event handling
  • Science package to the code.
  • the README file itself has format issues so I need to learn how to format to my liking.
  • Better event handling for various error types from nodeJs and the Client side JavaScript.
  • Better images for the read me.
  • A flow diagram describing how the whole product works.
  • Add thermal sensors, arm and camera.
  • Add cat Whiskers to detect near objects
  • Whiskers to determine surface type like sand, gravel, rock etc.
  • Whiskers to determine terrain shape around the rover
  • History of Map generation of all scans
  • History could also try to guess on shapes bassed on Command history and maps

Wish List

  • Baby Rovers that can be sent out and retrieved
  • More Arduinos for Processing locally to the Rover
  • Wind direction and speed sensors
  • wheel tracking so I can have a memory of distance

About

A project with nodeJS, Xbee, Arduino, jQuery and of course a Tank.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages