Swarm Robot competition winners announced at World Maker Faire

Xinchejian SwarmRobotsThe fantastic capability of the XinCheJian SwarmRobots has been recognised with 2nd placing in the AFRON $10 robot competition Traditional (Roaming) category. The announcement made at World Maker Faire today (via Wired) awarded first place to Harvard’s research group and third place by to MIT University. XinCheJian’s high placing against such prestigious competition highlights just how good XinCheJian’s SwarmRobots are!

The SwarmRobots are still under rapid development with work progressing on coding object detection and inter-robot communications using the already developed InfraRed shield. Work is also underway on wireless charging and a Atmel 32u4 version. It has been a lot of fun to be part of this team as can be seen in these videos!

Swarm Robot competition entry and workshop

SwarmRobot with new IR shield PCB
SwarmRobot with new IR shield PCB

Just put in a huge effort to enter the Xinchejian SwarmRobot into the AFRON competition.

Also used the assembly instructions created as part of the entry to help run a  workshop with other Xinchejian members making SwarmRobots. The workshop was pretty successful, although our preparation was lacking a bit with an untested PCB that just arrived and was assembled for the first time during the workshop and a different power switch that did match the board!

Definitely time for a more relaxed pace – exploring the Lophilo and a few other projects!

Barcamp Shangahi Fall 2012

SwarmRobots
Three Xinchejian SwarmRobots

Had fun at Shanghai Barcamp Fall helping to show off Xinchejian’s SwarmRobots. It was great seeing how all the children (young and old) explored the robots ability and asked heaps of questions!

Also helped with a presentation about Xinchejian’s SwarmRobots and the AFRON $10 robot competition and I gave one presentation on one of my favourite topics “Instantly turn your project into a kit” available in Libre Office odt and as a power point. It has a LOT of pictures and includes three video picture shows, so it is around 10MB!

LittleWire programming Xinchejian SwarmRobot AtTiny

LittleWire programming Xinchejian SwarmRobot AtTiny via Arduino GUI
LittleWire programming Xinchejian SwarmRobot AtTiny via Arduino GUI

The LittleWire was mainly purchased to support Ihsan as he has been very open, providing a lot of really interesting information about his build process and design and it has also been interesting seeing the DangerousPrototypes community helping that process and even building many variations.

But now it looks like it will become my main and highly used programmer and in high demand for the Swarm Robot project, so I might have trouble finding time to play with all the other modes it has!

Thanks Ihsan!

Been busy @Xinchejian!

Xinchejian Swarm Robots and the new motor driver PCB, IR shield and the Afron competition entry.

Helped run the Xinchejian Advanced Arduino course and getting PartKeepr  setup for Xinchejian.

Plus of course Lophilo– see post before this one!

Enjoying lots of extremely good presentations at Xinchejian – here is a link to this weeks sound and video processing, Nixies and LED cube and Haxl8r!

Nixies
Nixies on display at Xinchejian

 

 

 

 

And there are several other major projects actively being worked on, but none are yet into any state to talk about!

Lophilo, Swarm Robots and R2D2

Xinchejian hackerspace is still settling in to their new space, but there was a lot of activity on the weekend!

Things that I noticed included many active projects undergoing design work, coding and assembling a quadcopter (commiserations on the maiden flight crash) and first timers playing with Arduino.

Highlights for me were:

  • getting hands on a real Lophilo – this development hardware looks extremely professional, flexible, and is not “vapourware”… can’t wait to own one!
  • Swarm Robots meeting – lots of really interesting ideas
  • R2D2 was at the swarm meeting – just too cute not to give a special mention

 

How much code can be “stuffed” into an Arduino?

In a quest to see how much code can be “stuffed” into an Arduino the Autonomous robot project has grown to several thousand lines of code.

The compiled code is currently about 16kB when all of the debug functions are included. This is only about half of what an Arduino with an ATMEGA328 can handle. To give some meaning to this, here is the call graph I generated with Doxygen, a marvellous code documentation tool:

Autonomous robot Main loop - Doxygen call graph.

Autonomous robot Main loop – Doxygen call graph.

 

 

This actually only gives a very tiny view of Doxygen’s full capability. But the real Arduino memory size limitation is not usually the code size, but the variables used, and typically the strings. Posts on using Doxygen with Arduino code and tips and utilities to help Arduino memory management are “coming soon”.

Autonomous robot update

Work (play?) on the Autonomous Robot has triggered a large stream of activity including:

  • Using the Processing code to control a Nanode acting as a logic analyser for the robot Arduino controller.
  • using BusPirate as logic analyser
  • using RGB LEDs to display the robots sensor data “view” of it’s environment
  • struggling with bad wiring (bread board jumpers), possible power supply issues with batteries and possibly with shield used.
  • Trying to work around the on board goodies (resistors, LEDs) of Arduino as these can really interfere with some circuits.
  • Exploring CodeBlocks and Doxygen use in large Arduino projects (both are really useful!)
  • Exploring how much code and variables you can ‘stuff’ into an Arduino …. before instability kicks in as well as the techniques used to ‘save memory’.
  • (re)discovering that the Arduino has more digital pins (all the analogue pins are also digital!) and if you really want to squeeze some more, then change some fuses!

More on all of these in coming posts.

HY-SRF05 Ultrasonic Sensor for autonomous robot

Continuing the autonomous robot sensor theme with some updated sample code for the HY-SRF05 Ultrasonic Sensor that significantly reduces the blocking (delays in program execution where NO code is run!).

Once again, the code is placed on the Wiki as part of the move to help create re-usable community content.

Honeywell HMC5883L compass sensor for autonomous robot

One big part of my ‘relaxation’ project – ‘building’ an autonomous maze solving car is the sensors.

Installation of the four ultrasonic sensor and experimental avoidance code has shown (again) just how bad I am at visualising in 2 & 3D space. My simple avoidance logic attempts always end up avoiding big objects, but then get stuck in a tight loop “go forward” – “avoid = go back” – “go forward”.

So I thought it was time to add the Honeywell HMC5883L compass sensor (part of Christmas present to self). The sample code ran up easily (once converted all the wire-I2C commands to Arduino v1.0), so I ported the code into my code. Weeks later after umpteen different project sidetracks I noticed that the output from the compass was not linear and very different if you rotated clockwise or anticlockwise!

After lots of web searching and help from others with this sensor, I have now started to get more sensible output. While this work is not fully complete, it is a big improvement over the standard sample code that is commonly found, so I thought I better start publishing before I loose momentum on this.

Details are on the wiki, and I also updated the SeeedStudio site sample code on their wiki. The main point to note is that it takes some effort to calibrate, but hopefully the sample code provided helps simplify the tasks.