It is time to share a biped standing on my shelf for two months now. I didn't be able to find time to write an article with photos for BIGFOOT coz I'was a bit busy with my third kit fannybug's design work.
At last, here is the cute robot BIGFOOT :)

A small biped walker made of 2mm plywood. Powered by two RC servos. At this time, it has all the functionality of our "robug" kit. These are; Going ahead, detecting obstacles with its feelers and backing up, turning to the opposite direction of the obstacle and then continuing ahead. Not many, but a neat start ;)

The brain is a 16F84A microcontroller.

2 AA cells are carried in suitable battery holders on each side of the biped, 4 total batteries generating a 4.8V total voltage to power up the microcontroller and two servos. The BIGFOOT can walk around for long hours without any battery change. Power consumption of the complete system is quite low.

The feelers are constructed by using our usual way of making them. With the use of a wire ring and a guitar wire passing in the middle which is connected to the feeling protruding ahead. IF the feeler touches something, this bends the guitar wire and it touches the metal ring, resulting an electrical contact which is easy to be felt by the microcontroller.

The montage detail of the servo at the front. Both feet are raised or lovered by this servo (one rises while the other lowers) via two wooden sticks between the servo and the two feet.

Detail wiev of the rear servo. This servo maintains the job of pushing and pulling the legs to forward and aft while walking.


Left side wiev of BIGFOOT

Back wiev;

Perspective wiev from the back;

Circuit

; ******************************************
; www.endtas.com/robot hobby robotics site
; ******************************************
; plywood biped
; source code
; ******************************************
; iki ayakli yürüyücü
; ******************************************
; Copyright özkal özsoy 2003
; ******************************************
; Porta 1 : ayaklari ileri geri hareket ettiren servo cikisi
; Porta 2 : ayak uclarini yukari asagi hareket ettiren servo cikisi
; Porta 1 : output for the servo which moves legs back and forth.
; Porta 2 : output for the servo which moves legtips up and down.
list p=16f84
#include "P16F84.INC" ; Include header file
; bellekler
sayac1 EQU h'000c'
sayac2 EQU h'000d'
timer equ h'000e'
timsay equ h'000f'
statemp equ h'0010'
wtemp equ h'0011'
poyuk equ h'0012'
poile equ h'0013'
poort equ h'0014'
; degiskenler
sagond equ d'10'
sagark equ d'4'
saghav equ d'6'
solhav equ d'8'
solond equ d'4'
solark equ d'10'
org 0
start clrf INTCON
goto main
nop
nop
intvec movwf wtemp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf statemp ; save off contents of STATUS register
btfss INTCON,T0IF ; Timer0 interrupt?
goto pop
bcf INTCON,T0IF ; Clear the Timer0 interrupt flag
banksel PORTB
incf timsay
btfsc STATUS,Z
incf timer
movfw timsay
subwf poyuk,0
btfss STATUS,C
goto cik1
cik2 bsf PORTA,0
goto sagaya
cik1 bcf PORTA,0
sagaya
movfw timsay
subwf poile,0
btfss STATUS,C
goto cik12
cik22 bsf PORTA,1
goto ortaya
cik12 bcf PORTA,1
ortaya
movfw timsay
subwf poort,0
btfss STATUS,C
goto cik13
cik23 bsf PORTA,2
goto pop
cik13 bcf PORTA,2
pop
movf statemp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf wtemp,f
swapf wtemp,w ; restore pre-isr W register contents
retfie
main
banksel TRISB
movlw b'11111111' ; PORTB giriş,
movwf TRISB
movlw b'00000000' ; PORTA çıkış
movwf TRISA
call init
banksel PORTB
clrf PORTB
bcf OPTION_REG,7 ; Enable portb pullups
basadon
movlw d'6'
movwf poyuk
movlw d'6'
movwf poile
aprog
call ileri
btfss PORTB,4
call sagcarp
btfss PORTB,3
call solcarp
goto aprog
;****************************
sagcarp call geri
call geri
call sola
call sola
return
;****************************
solcarp call geri
call geri
call saga
call saga
return
;****************************
saga movlw d'9' ;8
movwf poyuk
call uzbekle
movlw d'6' ;7
movwf poile
call uzbekle
movlw d'6' ;6
movwf poyuk
call uzbekle
movlw d'8' ;5
movwf poile
call uzbekle
movlw d'4' ;4
movwf poyuk
call uzbekle
movlw d'6' ;3
movwf poile
call uzbekle
movlw d'6' ;2
movwf poyuk
call uzbekle
movlw d'8' ;1
movwf poile
call uzbekle
return
;****************************
sola movlw d'8' ;1
movwf poile
call uzbekle
movlw d'6' ;2
movwf poyuk
call uzbekle
movlw d'6' ;3
movwf poile
call uzbekle
movlw d'4' ;4
movwf poyuk
call uzbekle
movlw d'8' ;5
movwf poile
call uzbekle
movlw d'6' ;6
movwf poyuk
call uzbekle
movlw d'6' ;7
movwf poile
call uzbekle
movlw d'9' ;8
movwf poyuk
call uzbekle
return
;****************************
ileri movlw d'8'
movwf poile
call uzbekle
movlw d'9'
movwf poyuk
call uzbekle
movlw d'6'
movwf poile
call uzbekle
movlw d'4'
movwf poyuk
call uzbekle
return
;****************************
geri movlw d'6'
movwf poile
call uzbekle
movlw d'9'
movwf poyuk
call uzbekle
movlw d'8'
movwf poile
call uzbekle
movlw d'4'
movwf poyuk
call uzbekle
return
;****************************
uzbekle
call bekle
call bekle
call bekle
call bekle
call bekle
return
;****************************
init movlw 0x8a ;0x8F ; Set the timer prescaler.
banksel OPTION_REG
movwf OPTION_REG
banksel TMR0
movlw 0x00
movwf TMR0
bsf INTCON,T0IE ; Enable the timer interrupt.
bsf INTCON,GIE ; Enable global interrupts.
return
;****************************
bekle bsf PORTA,4
clrf sayac1
loop1 clrf sayac2
loop incf sayac2
nop
nop
nop
btfss sayac2,7
goto loop
nop
nop
nop
incf sayac1
btfss sayac1,7
goto loop1
bcf PORTA,4
return
azbekle movlw d'30'
movwf sayac2
movlw d'255'
movwf sayac1
azbek1 decfsz sayac1
goto azbek1
decfsz sayac2
goto azbek1
return
end
:020000040000FA
:100000008B012828000000009100030890000B1DC0
:1000100023280B1183128F0A03198E0A0F0812026C
:10002000031C14280514152805100F081302031CBF
:100030001B2885141C2885100F081402031C222875
:1000400005152328051110088300910E110E0900D3
:100050008316FF30860000308500972083128601CA
:10006000811306309200063093007720061E3B2055
:10007000861D40203528842084205E205E200800D4
:1000800084208420452045200800093092009120DA
:1000900006309300912006309200912008309300A2
:1000A0009120043092009120063093009120063078
:1000B00092009120083093009120080008309300AE
:1000C0009120063092009120063093009120043058
:1000D00092009120083093009120063092009120E8
:1000E00006309300912009309200912008000830DA
:1000F00093009120093092009120063093009120C6
:1001000004309200912008000630930091200930BD
:1001100092009120083093009120043092009120A9
:100120000800A020A020A020A020A02008008A3045
:10013000831681008312003081008B168B17080014
:1001400005168C018D018D0A0000000000008D1F36
:10015000A3280000000000008C0A8C1FA2280512B2
:1001600008001E308D00FF308C008C0BB5288D0BE5
:04017000B5280800A6
:00000001FF
Come on, all the visitors, make one BIGFOOT and lets have a meeting to race them. :)
|