Wireless Python Key To Mobile Robot

Aug. 14, 2008
Programming wireless devices can be a chore, but the use of scripting languages like Python can turn rapid frustration into rapid development. I tested this theory with the Synapse Wireless EK2500 development kit, which I combined with

Programming wireless devices can be a chore, but the use of scripting languages like Python can turn rapid frustration into rapid development. I tested this theory with the Synapse Wireless EK2500 development kit, which I combined with iRobot’s Create here in the lab (see “Commanding The iRobot Create” at www.electronicdesign.com, ED Online ID 16148).

Most w ireless development for 802.15.4-based solutions is done in C or C++. This often requires in an 802.15.4 protocol or a ZigBee protocol stack. Downloading via JTAG tends to be fast but tedious since a connection to the device is required.

Tools like Ember’s InSight development kits solve this issue with backdoor development boards (see “A ZigBee InSight,” ED Online 16484). The boards include an interface to a second, wired network with a host processor that handles the wireless device’s programming and debugging. It is one of the best solutions I have found.

It took less than an hour to wire up Synapse’s SN171 Proto board to the iRobot Create (see the figure). I had to unplug the iRobot Command Module with its 8-bit Atmel AVR to get access to the iRobot Create’s serial port.

Synapse’s Portal Pro software runs on the PC that connects to the wireless network via another board. This makes the PC part of the mesh network running Synapse’s own SNAP (Synapse network appliance protocol).

Each Synapse board contains a SNAP RF module that runs SNAPpy, Synapse’s 16-bit integer flavor of Python. Python can also run the PC, providing a consistent development environment. A Python virtual machine executes compiled scripts on the module.

The Python environment runs on top of the Synapse system software, including the 802.15.4/SNAP protocol stack. Its remote procedure call (RPC) interprocess communication system is also consistent across the wireless mesh network, which provides script download capability. Including this underlying system means the SNAP already handles the network management, so programmers concentrate the application instead of the communication. There are limits to the current system, including fact that it only basic debugging capabilities. But it is easy applications on the PC, debugging facilities are impressive.

LOOK OUT FOR ALTERNATIVES Of course, programming alternatives for low-power wireless solutions aren’t limited to Python. Some Java alternatives are even in the mix.

Sentilla offers a Java virtual machine ( JVM) that runs on a Texas Instruments MSP430 and is paired with a Chipcon 802.15.4 radio (see “The Challenge: Handling 1000 Cores Wirelessly,” p. 18). The advantage of Java is a development and deployment infrastructure that spaces the network from this tiny mote to enterprise servers.

The bottom line is that options are available if you look for them. The time you take to find them will often pay off in reduced development time.

IROBOTwww.irobot.comSYNAPSE SEMICONDUCTORwww.synapse-wireless.com

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!