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.

Beijing Maker carnival, five dollar micro controller, candle replacement and more!

Beijing Maker Carnival was held last weekend: “makers and hackers from around the world and China came together to show off their projects, do talks and lead workshops. The event was mainly organized by Beijing Maxpace with a lead role by Justin Wang (王盛林) and the help of many students from various Chinese universities in Beijing”. Ricky from Xinchejian attended and presented and has published some very interesting highlights .

A portable, rechargeable, affordable candle replacement has been developed by the Wyld Collective and Foul labs in Canada to help reduce very frequent fires in Bangkok! They gave a presentation at Xinchejian in Shanghai and also attended the Beijing Maker Carnival. It is really inspiring to hear how such a simple LED light can have a major social impact, quite possibly worldwide!

Mitch Altman and his “crew” were in Beijing for the Maker Carnival and also visited Xinchejian in Shanghai a few weeks ago. The inspirations that I gained from there talks were:

  • Mitch has been living of the proceeds of the TV-b-gone for several years! UPDATE – Mitch just blogged his trip report.
  • $5 micro controller MC HCK that is roughly equivalent to an Arduino is being developed by Simon Schubert. This extremely affordable price will make the board very accessible to those who otherwise cannot access these tools and also means the board can be “left in place” as a permanent project, rather than disassembled for the next project! I really like this idea!
  • Yair Reshef showed how extremely simple ideas can have a huge influence: {coin battery + LED + tape} = fun toy to introduce very young kids to electronics! I scored some that were left behind and a couple were still working a week later!

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.

Project updates

Here is a brief summary of project progress over the last couple of weeks:

  • Robot car: finally ordered ultrasonic HY-SRF05 sensors. Initial testing shows stable accurate output, even without averaging. One interesting point – there are (at least) two different SRF05 sensors, with different chips and different pin-outs!
  • Spent some time thinking of ways to help Treecycle, the discussion is at the Xinchejian group.
  • Ordered some ATtiny85 for Safer alarm project next steps, thanks to a bulk order through Xinchejian.
  • Desktop chaos – my dream desktop workspace.
    • Testing continues to show promise, despite the misuse of CodeBlocks (C::B) for this purpose. Even when using very fragmented work habits 5, 10, 15 minutes chunks of time (forced due to my chaotic availability) and some unexpected testing of C::B behaviour after it’s process was terminated by a likely Ubuntu bug which closes the user session when logging back on after a suspend!
    • Search (Recoll) and Sync (Unison) – both look promising, but some effort is required to create workable implementations, and especially to make more generic for wider public use when integrated with C::B.
  • Spending way to much effort on site upgrades, spam and reacting to vandalism from many different IP addresses. If anyone has good tips in addition to the official / common ones for Mediawiki, phpBB and on analysing Apache logs and good Unix automated site and MYSQL database backup, please use the about email to drop me a line (the site is still locked down as I do not have time to deal with vandalism at the moment).

Desktop Chaos!

ChaosMy desktop has descended into chaos yet again, partly through my own habits, but mostly from working several times every day on multiple locations on computers that do not have “my data, custom configuration and tools” and with unreliable or no Internet connection using the cloud is not the solution.

 Every attempt to sort out the chaos results only in partial temporary improvements. Each new approach and set of tools is good and can do a lot, but does not work well enough for me to keep up the productivity and keep the chaos at bay. Sometimes it seems like someone is aiming this remote control at me at repeatedly pushing that button!

Struggling with ways to overcome this chaos, has triggered the creation of several long requirements wish lists, which are distilled into this scenario: “go to any device, open up any of my workspaces with all the current projects and files laid out as desired, ready to edit”.

Loosening the requirements as shown below and restricting most editing to text files has provided a passable solution as shown.

Requirement Current “workable” solution
Core save-able workspace functions mostly in one tool Code::Blocks with custom personality, custom command line to the launcher loading selected projects and open files.
Remaining functions mostly in a couple of tools Search = Recoll, LibreOffice,synchronisation is manual at the moment.
mostly portable Working on Windows + USB driveLinux = work in progress (true portability = challenge)Mac – no access at present.
current working data set only USB drive
not reliant on Internet USB drive

I have enormous respect for all the desktop environments and tools that are available and the current ability to share between, but what is the point, if all we get is more chaos and no easy way to productively GTD (Get Things Done), let alone better ways to GTD.

Do I have an answer, no I don’t, but I do have a passably workable solution, that will get better with some tweaking, but this post is already too long, so more on that in next post.

What I do have is a challenge all those involved in creating these tools that are meant to help us do stuff, to always think beyond your own product, think of all the devices, desktops environments and data formats, if your product can smoothly interact with a broad range and provide it’s view of each users desktop with the users core tools and configuration, then not only is it much more useful, but it will be a lot more popular!

Inspired growth of Protei!

In a previous post, Protei was listed as an inspiration for several reasons, one was the “speed with which the community created”.

Now they need someone to “manage an international team of about 30 scientists, engineers and designers in the early stage of an ocean technology Open Hardware start up and Non-profit organisation. The work would range from business development to team management and from grant writing to assisting in the production of prototypes. You may have the opportunity to travel and install exhibitions, to test prototypes in the water and do PR work. ”

See the Adafruit job board for full details.

The advertising of this position gives an insight into the growth and success of this idea, and all the spin-off projects!

Makesense challenge followup

Aurel commented that you can ” Just sign in for free and enjoy!” the brainstorm on Editstorm.

There are many interesting notes there already, but you need to go there and join in to see them!

Even if you are not interested in this Shanghai challenge, do look at Makesense, or even one of these Inspirations on the wiki, it just might make your day!

Makesense challenges hackers and makers to attend “holdup”!

Makesense want “supercool individuals” to help solve social issues. This was the theme of a presentation given at the Shanghai Xinchejian hackerspace last night. The invitation gives a good overview of what they are about. Listening to their presentation and delving into their web site shows they have a good sense of humour as they talk of themselves as gangsters and about holdups (a holdup is an issue that the gangsters AND community try to solve!). Their web app to connect people and issues is here.

The presentation also showed that while Makesense is very new and growing fast, they have a very mature approach and are already achieving significant results across the world.

It is worth while exploring their site to see what they are up to and to see if any of their activities is something that you want to join in!

They intend to organise a “1-day event for you within 50 days” in Shanghai to commence the activity (holdups?) and their site shows they are very active across the globe!

Creating things – wiki resources

Creating things, a series of pages collating resources to help you create ideas and turn them into reality has been added to the wiki. There are now nearly 30 pages on the UsableDevices wiki, and while the content, structure and presentation are all ‘works in progress’, the approach, style and value of content is starting to show it’s usefulness.

Creating things provides brief descriptions of different creative processes,  along with links to detail on the key steps and a growing number of resources.

The mix of approaches from artistic creation to technical is to provide alternative ways to suit your style, or challenge you to try new ways. It is also to encourage a flow of ideas and increased interaction between these communities. Some examples of cross community activity can be found in the Inspirations page.

The intent is to create a ‘really useful’ resource that contains summary information about different processes and techniques, but then most likely will link to external sites for more information. It is not intended to create an internet directory of categories and links and it is not intended to create lists of software and other items purely for advertising. It is hoped that the community that grows around this site will manage the content to include diverse content that is ‘really useful’, and not just categorised lists of links.