View Full Version : Animatronic Wolf Tail
Marcwolf
21-04-2010, 15:01
Ho Folks
After much work I can show the tail in its final stage. All that it needs is the covering and a final program to compensate for the dampening effect the fabric will help.
Enjoy
http://www.youtube.com/watch?v=DZY7wMmVWnc
All done with picAces 08M
Take Care
Dave
BeanieBots
21-04-2010, 18:11
Fun project. Nice to see an 08M wagging its tail!
Looks like it might suffer a little with resonant pundulum effect but a 'fluffy' covering and stronger servos might fix that.
Where did you get the flex sensors from?
Marcwolf
21-04-2010, 22:57
Hi Beaniebots
The flex sensors are from www.littlebirdelectronics (look at the credits in the demo movie and I have it there :>)
They have a lot of interesting sensors.
The servos are definately strong enough - and they have been modified so that they are over ranged - (about 150 degree rotation). They could literally pull the tail apart.
The pendulum effect will be muted by the fur fabric which is why I mentioned that the final programming will still need to be done. I wanted to show the internals before I put the inner spendex sheath on, and then the outer furry sheath so that others would have a better idea of how it works.
Take care and thanks for the comments
Dave
BeanieBots
22-04-2010, 07:37
Thanks for the link.
Please post another video once the "fur" is in place.
Fantastic looking tail. Well done. Looks like a lot of work has gone into this design and project in general. :D
Very elegant design, and a very nice youtube exposition. Amazing that it can all be controlled with a couple of 08Ms, and that just two "tendons" and two servo "muscles" can get that range of effects. Many kudos for your efforts. I look forward to seeing it with the fur on.
slimplynth
22-04-2010, 15:06
It looks really cool, i want one for every day use just so people will know to stay out of my way or to emphasise my being startled :D
Marcwolf
23-04-2010, 00:42
Very elegant design, and a very nice youtube exposition. Amazing that it can all be controlled with a couple of 08Ms, and that just two "tendons" and two servo "muscles" can get that range of effects. Many kudos for your efforts. I look forward to seeing it with the fur on.
Many thanks for the coments. It is surprizing how many seemingly complex biological motions can be repicates with a mechanical design.
The easiest is that Nature has no wheels or pully's so we can benifit there
The hardest is that linear actuators like muscles are very difficult to do.
I am currenly working on 2 other animatronic systems. A muzzle with emotive capabilites, and a ear with 3 axis of movement.
I'll post the code for the tail and keypad up in a day or so as I am flat out trying to complete the coverings for a convention in a couple of days.
danielsaul
23-04-2010, 19:17
Wow! Well done. This is amazing, I can't wait to see it with the fur on and love how you've used the flex sensors on your legs so it wags in time with your walking.
I want one :)
Marcwolf
24-04-2010, 02:19
Here is the code for the Keypad
There is a LED that will light when a key is pressed for 5ooms, and will light longer when a command is being sent.
It using the resister array style keypad
; *******************************
; ***** Sample Header File *****
; *******************************
; Filename:
; Date:
; File Version:
; Written by:
; Function:
; Last Revision:
; Target PICAXE:
; *******************************
#picaxe 08M
symbol LED = 4
symbol Keypad = 1
symbol master = 0
start:
' b2 holds value
' loop to read
b1 = 0
do while b1 < 45
readadc Keypad,b1
pause 100
loop
' Keyess - set LED on
high LED
' Decode
If b1 > 52 and b1 < 56 then
b2 = 1 ' Key 1
end if
If b1 > 56 and b1 < 60 then
b2 = 2 ' Key 2
end if
If b1 > 61 and b1 < 66 then
b2 = 3 ' Key 3
end if
If b1 > 66 and b1 < 72 then
b2 = 4 ' Key 4
end if
If b1 > 72 and b1 < 78 then
b2 = 5 ' Key 5
end if
If b1 > 78 and b1 < 90 then
b2 = 6 ' Key 6
end if
If b1 > 90 and b1 < 100 then
b2 = 7 ' Key 7
end if
If b1 > 100 and b1 < 115 then
b2 = 8 ' Key 8
end if
If b1 > 115 and b1 < 135 then
b2 = 9 ' Key 9
end if
If b1 > 170 and b1 < 220 then
b2 = 10 ' Key 0
end if
' Turn Keypress LED off
low LED
' Function 1 Button Pressed
If b1 >135 and b1 <170 then
if b2 => 0 then
if b2 = 10 then
b2 = 0
end if
' Debug Value
'sertxd("A",#b2,13,10)
' Valid Command
high LED
' Force Master into interrupt and send value
high master
pause 20
serout master,t2400,(1,b2)
low master
end if
' set key value back to 0
b2 =0
end if
'Function 2 Button Pressed
If b1 >220 then
if b2 > 0 then
' Debug Value
'sertxd("B",#b2,13,10)
' Valid Command
high LED
' Force Master into interrupt and send value
high master
pause 20
serout master,t2400,(2,b2)
low master
end if
' set key value back to 0
b2 =0
end if
pause 500
low 4
goto start
Marcwolf
24-04-2010, 02:21
Here is the code for the tail wag
; *******************************
; ***** Sample Header File *****
; *******************************
; Filename: tailwag2
; Date:
; File Version: 5
; Written by: DJB
; Function: Animatronic Tail Wagger
; Last Revision:
; Target PICAXE:
; *******************************
symbol listen = 3
symbol servoV = 1
symbol servoH = 4
symbol vhappy = 200
symbol vsad = 80
symbol hdrop = 150
symbol vdrop = 150
symbol hright = 200
symbol hleft = 80
setint %00001000, %00001000
' initalise loop
b6 =0
start:
b3 = 0
branch b6,(wag0,wag1,wag2,wag3,wag4,wag5)
'-----------------------------------------
wag0:
servopos servoh, hdrop
servopos servov, vdrop
pause 250
high servoH
high servoV
wag01:
pause 250
if b3=1 then
servo servoH, hdrop
servo servoV, vdrop
goto start
end if
goto wag01:
wag1:
b4 = 170
b5 = 90
b6 = 8
gosub swing
if b3=1 then goto start
goto wag1:
'-----------------------------------------
wag2:
b4 = 170
b5 = 90
b6 = 6
gosub swing
if b3=1 then goto start
goto wag2:
'-----------------------------------------
wag3:
' sertxd("Wag3",13,10)
pause 250
servopos servoV, vhappy
servopos servoH, hdrop
if b3=1 then goto start
goto wag3
'-----------------------------------------
wag4:
'sertxd("Wag4",13,10)
pause 250
servopos servoV, vsad
servopos servoH, hdrop
if b3=1 then goto start
goto wag4
'-----------------------------------------
wag5:
servopos servoH,hdrop
servopos servoV,vdrop
pause 1000
readadc10 2,w4
pause 500
servo servoV, vhappy
wag51:
pause 100
readadc10 2,w5
if b3=1 then goto start
b0 = 0
w3 = w4 - w5
If w3 > 10000 then
w3 = w5 - w4
b0 = 1 ' negative flag
end if
If w3 < 5 then goto wag51
If w3 > 50 then
w3 = 50
end if
If b0 = 1 then
w5 = 150 - w3
else
w5 = 150 + w3
end if
' sertxd(#w5,13,10)
servo servoH,w5
goto wag51
'-----------------------------------------
swing:
servopos servoV,vhappy
swing1:
pause b6
for b1 = b5 to b4 step 1
servopos servoH,b1
if b3=1 then
return
end if
pause b6
next
pause b6
for b1 = b4 to b5 step -1
servopos servoH,b1
if b3=1 then
return
end if
pause b6
next
goto swing1
'-----------------------------------------
interrupt:
serin listen,t2400, b5,b6
setint %00001000, %00001000
If b5 = 1 then
b3 = 1
end if
return
ValueAdd
24-04-2010, 09:56
That demo is very interesting Marcwolf.
Well done on your project development
Powered by vBulletin® Version 4.1.11 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.