Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

tilt help

Hitec robotics including ROBONOVA humanoid, HSR-8498HB servos, MR C-3024 Controllers and RoboBasic
5 postsPage 1 of 1
5 postsPage 1 of 1

tilt help

Post by rippa55 » Wed Sep 20, 2006 7:09 pm

Post by rippa55
Wed Sep 20, 2006 7:09 pm

ive just recieved the tilt sensor from hi tech and cant get it to work, being new to this i prob missing something. can someone tell me if i need to add anything to code, pleeeeeeeeese :oops:
ive just recieved the tilt sensor from hi tech and cant get it to work, being new to this i prob missing something. can someone tell me if i need to add anything to code, pleeeeeeeeese :oops:
rippa55
Robot Builder
Robot Builder
User avatar
Posts: 11
Joined: Sat Aug 12, 2006 1:00 am

Post by Pev » Wed Sep 20, 2006 7:28 pm

Post by Pev
Wed Sep 20, 2006 7:28 pm

This is direct from the support and download area of the robonova site in germany (http://www.robonova.de/store/support/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=4)

If the tilt sensor is connected to A/D port 0, then you can use this kind of code for automatic standup.

robot_tilt:
A = AD(0)
IF A > 250 THEN RETURN

IF A < 30 THEN GOTO tilt_low
IF A > 200 THEN GOTO tilt_high

RETURN
tilt_low:
A = AD(0)
'IF A < 30 THEN GOTO forward_standup
IF A < 30 THEN GOTO backward_standup
RETURN
tilt_high:
A = AD(0)
'IF A > 200 THEN GOTO backward_standup
IF A > 200 THEN GOTO forward_standup
RETURN


backward_standup:
.....
goto main

forward_standup:
.....
goto main

Now I have not used a Hitec Tilt sensor but I hope this helps

Pev
This is direct from the support and download area of the robonova site in germany (http://www.robonova.de/store/support/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=4)

If the tilt sensor is connected to A/D port 0, then you can use this kind of code for automatic standup.

robot_tilt:
A = AD(0)
IF A > 250 THEN RETURN

IF A < 30 THEN GOTO tilt_low
IF A > 200 THEN GOTO tilt_high

RETURN
tilt_low:
A = AD(0)
'IF A < 30 THEN GOTO forward_standup
IF A < 30 THEN GOTO backward_standup
RETURN
tilt_high:
A = AD(0)
'IF A > 200 THEN GOTO backward_standup
IF A > 200 THEN GOTO forward_standup
RETURN


backward_standup:
.....
goto main

forward_standup:
.....
goto main

Now I have not used a Hitec Tilt sensor but I hope this helps

Pev
Carl
-------------------------
www.alt-view.co.uk
Pev
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 547
Joined: Sun Feb 26, 2006 1:00 am
Location: UK

tilt

Post by rippa55 » Thu Sep 21, 2006 3:01 pm

Post by rippa55
Thu Sep 21, 2006 3:01 pm

have done as you sugested, no diference :cry: i am running 2 gyros, so put the sensor into ad2, here is a copy of the start of code, see if you can see anything missing, thanks :P

' templet program
'
' RR : internal parameter variable / ROBOREMOCON / Action command
' A : temporary variable / REMOCON
' A16,A26 : temporary variable
'
'== auto_main ===================================
GOTO AUTO
FILL 255,10000

DIM RR AS BYTE
DIM A AS BYTE
DIM A16 AS BYTE
DIM A26 AS BYTE

CONST ID = 0 ' 1:0, 2:32, 3:64, 4:96,

'== Action command check (50 - 82)
IF RR > 50 AND RR < 83 THEN GOTO action_proc

RR = 0

PTP SETON
PTP ALLON

'== motor diretion setting ======================
DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,1,1,1,1
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0


'== motor start position read ===================
TEMPO 230
MUSIC "C"
MUSIC "C"
MUSIC "E"
MUSIC "G"
DELAY 150
MUSIC "E"
DELAY 100
MUSIC "G"
GETMOTORSET G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0
'== motor power on =============================
SPEED 5
MOTOR G24
GOSUB standard_pose
'================================================
gyro_setup:
GYROSET G6A,2,1,1,1,2,0
GYROSET G6D,2,1,1,1,2,0

GYRODIR G6A,1,1,1,1,1,0
GYRODIR G6D,1,1,1,1,1,0

GYROSENSE G6A,50,250,150,30,60,0
GYROSENSE G6D,50,250,150,30,60,0


MAIN:
'GOSUB robot_voltage
'GOSUB robot_tilt

'-----------------------------
IF RR = 0 THEN GOTO MAIN1

ON RR GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
GOTO main_exit
'-----------------------------
MAIN1:
A = REMOCON(1)
A = A - ID
ON A GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
GOTO MAIN
'-------------------------------------------------
action_proc:
A = RR - 50
ON A GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
RETURN
'-----------------------------
main_exit:
IF RR > 50 THEN RETURN
RR = 0
GOTO MAIN
'================================================
k1:
GOSUB bow_pose
GOSUB standard_pose
GOTO main_exit
k2:
GOSUB martial_arts_pose
DELAY 500
GOSUB standard_pose
GOTO main_exit
k3:
GOSUB martial_arts_pose2
DELAY 1000
GOSUB standard_pose
GOTO main_exit
k4:
GOSUB FOOT_UP
DELAY 1000
GOSUB FOOT2_UP
DELAY 1000
GOSUB standard_pose
GOTO main_exit
k5:
GOSUB SING
GOSUB standard_pose
GOTO main_exit
k6:
GOSUB body_move
GOSUB standard_pose
GOTO main_exit
k7:
GOSUB wing_move
GOSUB standard_pose
GOTO main_exit
k8:
GOSUB right_shoot
GOSUB standard_pose
DELAY 500
GOSUB left_shoot
GOSUB standard_pose
DELAY 500
GOTO main_exit
k9:
GOSUB routine
GOTO main_exit
k10:
GOSUB fast_walk
GOSUB standard_pose
GOTO main_exit
k11: ' ^ 1
GOSUB forward_walk
GOSUB standard_pose
GOTO main_exit
k12: ' _ 1
GOSUB backward_walk
GOSUB standard_pose
GOTO main_exit
k13: ' > 1
SPEED 8
GOSUB right_shift
SPEED 6
GOSUB standard_pose
GOTO main_exit
k14: ' < 1
SPEED 8
GOSUB left_shift
SPEED 6
GOSUB standard_pose
GOTO main_exit
k15: ' A
GOSUB left_attack
GOSUB standard_pose
GOTO main_exit
k16:
GOSUB sit_down_pose16
GOTO main_exit

k17: ' C
GOSUB left_forward
GOSUB standard_pose
GOTO main_exit
k18: ' E
GOSUB andy
GOSUB standard_pose
GOTO main_exit
k19: ' P2
GOSUB backward_standup
GOSUB standard_pose
GOTO main_exit
k20: ' B
GOSUB right_attack
GOSUB standard_pose
GOTO main_exit
k21: ' ^ 2
GOSUB forward_tumbling
GOSUB standard_pose
GOTO main_exit
k22: ' *
GOSUB left_turn
GOSUB standard_pose
GOTO main_exit
k23: ' F
GOSUB pickup
GOTO MAIN
k24: ' #
GOSUB right_turn
GOSUB standard_pose
GOTO main_exit
k25: ' P1
GOSUB forward_standup
GOSUB standard_pose
GOTO main_exit
k26: ' [] 1
GOSUB sit_down_pose26
GOTO main_exit
k27: ' D
GOSUB right_forward
GOSUB standard_pose
GOTO main_exit
k28: ' < 2
GOSUB left_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k29: ' [] 2
GOSUB martial_arts_pose
GOSUB martial_arts_pose2
GOSUB left_attack
GOSUB martial_arts_pose3
GOSUB martial_arts_pose4
GOSUB martial_arts_pose5
GOSUB SING
GOTO main_exit

k30: ' > 2
GOSUB righ_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k31: ' _ 2
GOSUB back_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k32: ' G
GOSUB pushup
SPEED 10
GOSUB standard_pose
GOTO main_exit
'================================================
robot_voltage: ' [ 10 x Value / 256 = Voltage]
DIM v AS BYTE

A = AD(6)

IF A < 148 THEN ' 5.8v

FOR v = 0 TO 2
OUT 52,1
DELAY 200
OUT 52,0
DELAY 200
NEXT v

RETURN
'================================================
robot_tilt:
A = AD(2)
IF A > 250 THEN RETURN

IF A < 30 THEN GOTO tilt_low
IF A > 200 THEN GOTO tilt_high

RETURN
tilt_low:
A = AD(2)
'IF A < 30 THEN GOTO forward_standup
IF A < 30 THEN GOTO backward_standup
RETURN
tilt_high:
A = AD(2)
'IF A > 200 THEN GOTO backward_standup
IF A > 200 THEN GOTO forward_standup
RETURN
have done as you sugested, no diference :cry: i am running 2 gyros, so put the sensor into ad2, here is a copy of the start of code, see if you can see anything missing, thanks :P

' templet program
'
' RR : internal parameter variable / ROBOREMOCON / Action command
' A : temporary variable / REMOCON
' A16,A26 : temporary variable
'
'== auto_main ===================================
GOTO AUTO
FILL 255,10000

DIM RR AS BYTE
DIM A AS BYTE
DIM A16 AS BYTE
DIM A26 AS BYTE

CONST ID = 0 ' 1:0, 2:32, 3:64, 4:96,

'== Action command check (50 - 82)
IF RR > 50 AND RR < 83 THEN GOTO action_proc

RR = 0

PTP SETON
PTP ALLON

'== motor diretion setting ======================
DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,1,1,1,1
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0


'== motor start position read ===================
TEMPO 230
MUSIC "C"
MUSIC "C"
MUSIC "E"
MUSIC "G"
DELAY 150
MUSIC "E"
DELAY 100
MUSIC "G"
GETMOTORSET G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0
'== motor power on =============================
SPEED 5
MOTOR G24
GOSUB standard_pose
'================================================
gyro_setup:
GYROSET G6A,2,1,1,1,2,0
GYROSET G6D,2,1,1,1,2,0

GYRODIR G6A,1,1,1,1,1,0
GYRODIR G6D,1,1,1,1,1,0

GYROSENSE G6A,50,250,150,30,60,0
GYROSENSE G6D,50,250,150,30,60,0


MAIN:
'GOSUB robot_voltage
'GOSUB robot_tilt

'-----------------------------
IF RR = 0 THEN GOTO MAIN1

ON RR GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
GOTO main_exit
'-----------------------------
MAIN1:
A = REMOCON(1)
A = A - ID
ON A GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
GOTO MAIN
'-------------------------------------------------
action_proc:
A = RR - 50
ON A GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K30,K31,K32
RETURN
'-----------------------------
main_exit:
IF RR > 50 THEN RETURN
RR = 0
GOTO MAIN
'================================================
k1:
GOSUB bow_pose
GOSUB standard_pose
GOTO main_exit
k2:
GOSUB martial_arts_pose
DELAY 500
GOSUB standard_pose
GOTO main_exit
k3:
GOSUB martial_arts_pose2
DELAY 1000
GOSUB standard_pose
GOTO main_exit
k4:
GOSUB FOOT_UP
DELAY 1000
GOSUB FOOT2_UP
DELAY 1000
GOSUB standard_pose
GOTO main_exit
k5:
GOSUB SING
GOSUB standard_pose
GOTO main_exit
k6:
GOSUB body_move
GOSUB standard_pose
GOTO main_exit
k7:
GOSUB wing_move
GOSUB standard_pose
GOTO main_exit
k8:
GOSUB right_shoot
GOSUB standard_pose
DELAY 500
GOSUB left_shoot
GOSUB standard_pose
DELAY 500
GOTO main_exit
k9:
GOSUB routine
GOTO main_exit
k10:
GOSUB fast_walk
GOSUB standard_pose
GOTO main_exit
k11: ' ^ 1
GOSUB forward_walk
GOSUB standard_pose
GOTO main_exit
k12: ' _ 1
GOSUB backward_walk
GOSUB standard_pose
GOTO main_exit
k13: ' > 1
SPEED 8
GOSUB right_shift
SPEED 6
GOSUB standard_pose
GOTO main_exit
k14: ' < 1
SPEED 8
GOSUB left_shift
SPEED 6
GOSUB standard_pose
GOTO main_exit
k15: ' A
GOSUB left_attack
GOSUB standard_pose
GOTO main_exit
k16:
GOSUB sit_down_pose16
GOTO main_exit

k17: ' C
GOSUB left_forward
GOSUB standard_pose
GOTO main_exit
k18: ' E
GOSUB andy
GOSUB standard_pose
GOTO main_exit
k19: ' P2
GOSUB backward_standup
GOSUB standard_pose
GOTO main_exit
k20: ' B
GOSUB right_attack
GOSUB standard_pose
GOTO main_exit
k21: ' ^ 2
GOSUB forward_tumbling
GOSUB standard_pose
GOTO main_exit
k22: ' *
GOSUB left_turn
GOSUB standard_pose
GOTO main_exit
k23: ' F
GOSUB pickup
GOTO MAIN
k24: ' #
GOSUB right_turn
GOSUB standard_pose
GOTO main_exit
k25: ' P1
GOSUB forward_standup
GOSUB standard_pose
GOTO main_exit
k26: ' [] 1
GOSUB sit_down_pose26
GOTO main_exit
k27: ' D
GOSUB right_forward
GOSUB standard_pose
GOTO main_exit
k28: ' < 2
GOSUB left_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k29: ' [] 2
GOSUB martial_arts_pose
GOSUB martial_arts_pose2
GOSUB left_attack
GOSUB martial_arts_pose3
GOSUB martial_arts_pose4
GOSUB martial_arts_pose5
GOSUB SING
GOTO main_exit

k30: ' > 2
GOSUB righ_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k31: ' _ 2
GOSUB back_tumbling
SPEED 10
GOSUB standard_pose
GOTO main_exit
k32: ' G
GOSUB pushup
SPEED 10
GOSUB standard_pose
GOTO main_exit
'================================================
robot_voltage: ' [ 10 x Value / 256 = Voltage]
DIM v AS BYTE

A = AD(6)

IF A < 148 THEN ' 5.8v

FOR v = 0 TO 2
OUT 52,1
DELAY 200
OUT 52,0
DELAY 200
NEXT v

RETURN
'================================================
robot_tilt:
A = AD(2)
IF A > 250 THEN RETURN

IF A < 30 THEN GOTO tilt_low
IF A > 200 THEN GOTO tilt_high

RETURN
tilt_low:
A = AD(2)
'IF A < 30 THEN GOTO forward_standup
IF A < 30 THEN GOTO backward_standup
RETURN
tilt_high:
A = AD(2)
'IF A > 200 THEN GOTO backward_standup
IF A > 200 THEN GOTO forward_standup
RETURN
rippa55
Robot Builder
Robot Builder
User avatar
Posts: 11
Joined: Sat Aug 12, 2006 1:00 am

Re: tilt

Post by KurtE » Thu Sep 21, 2006 3:57 pm

Post by KurtE
Thu Sep 21, 2006 3:57 pm

rippa55 wrote:have done as you sugested, no diference :cry: i am running 2 gyros, so put the sensor into ad2, here is a copy of the start of code, see if you can see anything missing, thanks :P

' templet program
'
...
MAIN:
'GOSUB robot_voltage
'GOSUB robot_tilt
...


I believe you need to uncomment the gosub robot_tilt line
rippa55 wrote:have done as you sugested, no diference :cry: i am running 2 gyros, so put the sensor into ad2, here is a copy of the start of code, see if you can see anything missing, thanks :P

' templet program
'
...
MAIN:
'GOSUB robot_voltage
'GOSUB robot_tilt
...


I believe you need to uncomment the gosub robot_tilt line
KurtE
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 28
Joined: Thu Apr 13, 2006 1:00 am
Location: Washington State

Post by rippa55 » Sat Sep 23, 2006 2:34 pm

Post by rippa55
Sat Sep 23, 2006 2:34 pm

did that, worked, my hero :P
did that, worked, my hero :P
rippa55
Robot Builder
Robot Builder
User avatar
Posts: 11
Joined: Sat Aug 12, 2006 1:00 am


5 postsPage 1 of 1
5 postsPage 1 of 1