Saturday 11 May 2013

surprised this is still up!

>> kerfoffle.au.com for the latest projects and updates...
kerfoffle[at]kerfoffle[dot]au[dot]com for communique :)

love to all!

Saturday 24 December 2011

Apologies.....

If there is anyone out there trying to follow this, my apologies for the lack of updates and the direct dump of information straight from the other (class-based) wordpress...

if the links and images etc are broken, i can gladly provide anything via email:
kerfoffle[at]gmail[dot]com

&c.

INtroducing the RoverX

> parts, technical & conceptual documentation can be dl [here]
> > the arduino code can be downloaded [here]...
>> > hi-res promo posters and process diary [here]
>>> > and finally:
http://vimeo.com/32142280

so most discussion is in the documentation,
but i just wanted to say most of all..
thxxx guys, AWEsome work & it's been a real  pleasure learning amongst yas :)
hope to see some faces 'round next year, if not at the verge...

&c.
o man talk about cutting it fine...
my ir beacons (for the tracking) and bumper switches just now arrived via courier (!)
hello, sleepless night...
best wishes everyone!! hope its all going well...
...see you all tomorrow!
&c

battery monitor kit 12v -> 6v conversion

So not going though the process of actually ordering a pcb fromBatchPCB, (proof of the design passing DRC can be foundhere )to satisfy this part of the course requirements i purchased a 12v battery monitor kit from jaycar... but i forgot to check that it worked for 6 volts!
it's built on the LM3914 led driver, so with a bit of luck and some help from the datasheet i managed to modify it for the dagu rover's 6v operation (with a switch to go back to 12v for when the real tank is operational)...
The basic idea of the hack is that there is an internal voltage regulator in the chip, and the ratio of a pair of resistors attached to this define the upper and lower voltage limits that light the led bar graph.  Hmm. Simple, just got to find the resistors! the 1k variable resistor that comes in the kit is obviously one of the pair, and the other is the 1k at the top left of the chip socket. i substituted the 10k variable from the sparkfun kit and hooked up to 6v DC to test some values... once the correct value was established (2.8 k) it was a simple task to add a spdt switch to select either resistor value....

progress3

So i've installed the MaxBotix ultrasonic sensors and also upgraded the heart of the little rover to an Arduino Mega 2560 that i got cheap on ebay (au$37, to be exact!)... This was mainly to accomodate the various upgrades i forsee in the future (when it gets transplanted into the tank)....

the eyes: maxbotix ultrasonic sensors installed (for obstacle avoidance)

the upgraded brain: arduino mega 2560







38 kHz IR reciever installed (small board in foreground)
i've also removed the wii-joystick control (well, not entirely - can still see the plug hanging out the side there), and created a basic autopilot (which operates via the apple IR remote)... the mode is obstacle avoidance when you press the center button on the remote, and the +/- buttons control the max speed.... the center button again acts as a moto kill switch (sleep)!
after some calibration & testing, i've set the parameters to start the hardwired obstacle avoidance (i.e - turn in the direction of furthest sensor) at around 50 cm, and full stop occurs around twenty cm.
http://vimeo.com/31675146
http://vimeo.com/31675230
the little rover sometimes got stuck in corners with this simple routine, so i programmed a small "turn_left_until_free" routine which kicks in if the sensors detect an object close and is not turning to avoid it... on the other side of the coin, the speed-scaled-with-distance algorithms lead to some quite gentle & inquisitive explorations.... even as is, i would not hesitate transferring this program into the larger (50kg+) tank esky...
http://vimeo.com/31675532
the "turn_left.." routine is not optimal, as i think it leads to some repetitive exploratory behaviour - sometimes the robot gets caught in little spaces without realising theres a wider world out there!
http://vimeo.com/31675733
Next, it's time to work on the subsumption routines some more; see if the encoders will work (hopefully i didn't blow the board); and assess the possibilities of 2d mapping, localisation and mission control.    And to wait urgently for the delivery of the Polulu IR beacon pair that i am going to try and use for tracking a human... if possible, some more on-site user testing with the same landscapers as before... All in the next four days!??
Arduino .pde for the current stage can be downloaded here...
on a side note, been watching some excellent lectures by Nick Hawes, from the University of Birmingham... the lectures are on Lego NXT and LeJOS, which is easily transferred to arduino... plus, his teaching style reminds me of Rob :)

progress2

In accordance with my sprint1, all the parts have arrived, the preliminary research has taken into account and the prototyping has begun.  I have decided to build a model that incorporates the most-requested features from the user research, but most importantly has the capacity to be upgraded / modified to any future situations.  It's basically a prototyping platform for the larger tank/esky created in the device lab. Prior to any wiring, i planned out the arduino pin mappings, seeROVER PINOUT document for current allocations.  This allowed me to know which pins are free, and what mode to attach sensors in.

Here's how the dagu rover5 arrives
So my little dagu rover5 along with it's four channel ESC & quadrature decoder arrived a few days ago in the mail... It's the 2 motor / 2 encoder version, just the thing for prototyping the various possibilities of the personal autonomous tracked mobility device.   The first thing was to install the higher capacity 6v 1.3AH SLA battery... This required cutting the chassis with a dremel tool to accomodate the larger size, along with the installation of a suitably rated DPDT switch and charging points.  A large green led was installed via 150 ohm resistor to indicate current flowing in the circuit.  Main battery to motor controller is connected via relay, so as to switch on afterarduino powers up (to avoid any wierd behaviours).

charge points & led in rear. led via 150 ohm resistor to main battery...will be upgraded to battery state monitor later

battery and wiring installed, note cutaway in chassis to fit battery - it is just big enough for the 6v SLA to clip in..
With the internals wired, the (recycled three ply) platform goes on the top like so:

the platform, with arduino, screwshield and the 4ch dagu motor controller

dagu motor controller mounted on brass stand-off's








For the initial test, a simple servo example was used, sending key commands from the Arduino IDE via serial:
http://vimeo.com/31182283
After spending an hour or two modifying the original tank's code from servo pulses to 0-255PWM, and writing my own tread mixing routines and dead-band adjustment of the joystick....
Download .pde sketch for arduino + dagu ESC here
But when taking the rover for it's first real test drive, i managed to short circuit one of the mosfets in the motor controller (grr! had the wiimote just hanging there, in my hand and didn't notice the smoke of the metal plug shorting out two pins !! )...

damage to dagu motor controller

Close up of burned SP8M3 mosfet







a frantic search on the internet turned up no similar boards in australia (i bought the last one from robotshop) and not even the same chip (SMD DIL 8pin SP8M3) in any of the parts suppliers (digikey, farnell, jaycar etc) in aus... ....so the solution is to use the original Robo Claw 2x10a from the deviceLab Tank.... holy how frustrating to be at this point and to have to start again from scratch, especially after modifying all that code and writing all the algorithms (because the dagu unit did not do auto calibration / mixing)...
Here's the link for the .pde of the Robo-claw version for arduino....
http://vimeo.com/31182570
http://vimeo.com/31183136
Next week: sprint2....
-&c