I have been busy working on giving Bernie a way to get around. He won't be autonomous (that's a whole other level of complexity and honestly I don't need a dragon who can move around when I'm not there, that's just going to lead to disaster!), but he will be able to move around on wheels under control from the Playstation controller and he has four legs to crawl around on.

Each leg has a bearing joint in the knee/elbow, which is made up of a screw, nut, some washers and most importantly one rivet attached to each piece of wood to allow the parts of the leg to move around the screw without too much friction.

Once in place, the bearings work very nicely for letting the leg move, but they initially didn't do much to stop the leg splaying out to the side, so to avoid this I added the third rivet which you can see in the top picture, as well as a second section of the lower leg which is supported by a 6mm spacer (just visible in the picture on the left) to allow the joint to move freely around the screw without moving sideways. I also replaced the nuts with nyloc nuts so that the repeated rotation and vibration doesn't continually loosen the joint. This way tightening the nut on each joint gives me very good control over how much resistance the joint offers to rotation as well as how much the lower leg wobbles around.

Reconnecting the legs to the body and wiring up the servos to the arduino made it very simple to test out a basic walking motion. The timing still needs some work, and without the wheels and tail to provide resistance the whole body has a tendency to wobble around, but the basic idea is there and the pulley system seems to be working nicely.

To make the legs move a bit nicer I need to make the hips more rigid by adding some blocks around the join to the spine and also reinforce the screws joining the servo horns to the hips. hopefully I will have that done by the end of the week and can move on to the final programming of the walk motion.

Did you notice he's not actually getting anywhere? I have some lovely little micro geared motors and wheels from pololu (bought through littlebirdelectronics) which I have wired up through an ardumotor shield and will be mounting as soon as possible, however the scroll saw is out of action for the moment so I can't cut the recesses in the body to mount the axle supports. These will also raise the body off the floor by about 15mm so the legs can move more easily without rocking the body from side to side.

I trialed the position of the servos with clamps, then used some right angle brackets from active-robots and some very useful plastic rivets to mount the servos onto the hips and shoulders.

He's not quite back together yet, but Bernie now has legs which is a big change and his balance has improved a lot already. The same pulley mechanism I designed on cardboard is done here with some brass hooks on the back of the legs.

I can't test this just yet though, because as you can see in the picture on the right all of the electronics are not currently inside Bernie. Since access is going to be tricky once the wing plate is attached I want to get as much tidied up as I can before his stomach gets any harder to access than it needs to be (the spare rib will still give me access when I need it, but it's going to be a bit of a squeeze to do anything in there).

Servos are amazing things. Tell them to move and they get right to it and go to exactly where you told them to be within milliseconds. Dragons are much lazier, and might make it there eventually if you ask them nicely. Maybe. So the servos inside a dragon need to learn to relax a bit, take their time and meander their way to their destination slowly. I've been doing that in software to make the neck move nice and smooth, but once I add the legs and wings the load on the arduino is going to be too much and everything will slow down unreliably, making the movements very jerky and not in the least bit smooth. I found a design online for an RC landing gear which makes the servo act over a much slower timeframe, up to about 10 seconds long. This sounds more dragon like already.

I ordered 3 sample PIC12F629 chips from Microchip to play with and bought a big bag of capacitors, and I'm all set to build the landtastic circuit. Hopefully I can adapt this design to work with my dragon - I definitely do not want to have to spend the time building up a program in assembly from scratch it there are functional systems out there already!

Silly assignments keep getting in the way of what I really want to do!

Last weekend I made the jaw 3D with some balsa wood framing which will form a structure for the skin when I eventually design it. I also realised that I hadn't posted a decent photo of the tail since it has been working in both directions. Here you can see the mechanism at the base of the tail, with two servos in opposing directions.

The whole dragon works on an interval system at the moment, where the frequency of each action is programmed and so each action is independent of the others. This also means that I can trigger actions (with the controller I will eventually build, but that's another story) so that they occur more frequently than they would naturally occur - eg. to open the mouth so that the dragon can roar on cue, or to react to movement in his environment.

As you can see when the tail starts to move the whole body has a bit of a swagger. This has two causes - firstly that the table is not even remotely flat (it's made in three sections which are all at different levels and different heights), and secondly that the body has nothing to support it to prevent swaying...

...which is where legs need to come in. Yep, legs are next.

I started tonight with figuring out the physical position of the servos - you can see the left hip in the photo. I will program the framework for how these will work so that I can see what is going on before attaching the physical legs.

I finally got around to taking a video of the neck moving - I was too busy playing with the jaw to remember for a while there!As you can see, the jaw moves too, although the jaw itself is just a piece of balsa at the moment which is not very exciting to look at. I have also attached some eyes with blu-tac for now (servo control will come later) so he is starting to have some personality :)

The last two days have been great, so many packages arriving all at once!

From little bird electronics I got the second servo for the tail so that they would be matched. This is now installed but not yet plugged in or configured (although I have written the code already, so hopefully it works!)

More importantly, part of my order from DFRobot included a pan and tilt kit, which I have constructed and installed. Bernie can now look around - up and down as well as left and right. To do this though I had to CUT OFF HIS HEAD! Normally it is measure twice cut once, but I think this time I may have measured about 20 times. That cut would be hard to undo!

The neck now looks very mechanical, but moves very smoothly and can do so many things, I look forward to playing around with it. I will upload new video once I have it automated.

I love working with this arduino Mega board - so far everything I have tried to do has just worked, and I can already see that it will make development much faster and less depressing, especially in comparison with my last attempt using PIC technology and hand wiring everything.

About half an hour after I got home I had the first servo running, only to discover that actually I didn't know how to stop it... I was so surprised that it worked it took me a little while to remember to wire in a switch.

I now have a momentary push button which enables the servos, which means that if I release the button they gradually come to a stop as they complete their respective routines. In future I will program this as an interrupt as it will be a safety device to stop the dragon trying to move further once it has reached the limits of the skeleton structure - I would hate for it to destroy itself on the first test!The button will also be replaced by a slider switch so that I can turn the dragon on and off properly rather than having to re-enable it each time it cycles through the main loop program. The circuits in this photo have been rigorously tested by a 3 year old who found the concept of pressing a button and having things spin fascinating for about an hour. I figure if it can survive that, I'm on the right path.

My only issue so far is that the tower-pro servos are incredibly noisy - I think for a lot of the more important servos I will have to invest in better quality servos which have metal gears instead of plastic so that they are more accurate and less loud.