Hello Everyone!
I have a Micro Maestro 6 channel servo controller. I would like to use it as the main brain in a small robot. it would be a light/line follower, obstacle avoider depending on what sensor is high. I was working with the obstacle avoider part but i keep having stack overflow/underflow problems. Here is what i have:
0000: -- begin
0000: 81 -- Forward
0001: 2E82 -- get_position Front_sensor
0003: 07120082280239 -- if Front_sensor less_than 57
000A: 800B0B0B0B -- backward drop drop drop drop
000F: 06130081 -- else Forward
0013: 822902FF -- endif Front_sensor greater_than 255
0017: 060000 -- repeat
001A: -- ### Sequence subroutines: ###
001A: -- # Backward
001A: -- sub Backward
001A: 0308F401DB130B1BFF0385 -- 500 5083 6923 1023 frame_0..2 # Backwards 0
0025: 01F40108 -- 500 delay
0029: 05 -- return
002A: -- sub Forward
002A: 0308F40157191316FF0385 -- 500 6487 5651 1023 frame_0..2 # Frame 0
0035: 01F40108 -- 500 delay # Frame 1
0039: 05 -- return
003A: -- sub Front_Sensor
003A: 0308F40100000000000085 -- 500 0 0 0 frame_0..2 # open space
0045: 01F40108 -- 500 delay # object detected
0049: 05 -- return
004A: -- # Obstacle Detect
004A: -- sub Obstacle_Detect
004A: 0308F401941B6613800F85 -- 500 7060 4966 3968 frame_0..2 # Frame 0
0055: 0306F4010000000086 -- 500 0 0 frame_0_1 # obstacle detected
005E: 0306F401941B661386 -- 500 7060 4966 frame_0_1 # Frame 2
0067: 05 -- return
0068: -- sub Sensors_Bottom
0068: 0308F40100000000000085 -- 500 0 0 0 frame_0..2 # Frame 0
0073: 01F40108 -- 500 delay # Frame 1
0077: 01F40108 -- 500 delay # Frame 2
007B: 05 -- return
007C: -- sub frame_0..2
007C: 02022A -- 2 servo
007F: 02012A -- 1 servo
0082: 02002A -- 0 servo
0085: 05 -- return
0086: --
0086: -- sub frame_0_1
0086: 02012A -- 1 servo
0089: 02002A -- 0 servo
008C: 05 -- return
008D: --
Subroutines:
Hex Decimal Address Name
00 000 001A BACKWARD
01 001 002A FORWARD
02 002 003A FRONT_SENSOR
03 003 004A OBSTACLE_DETECT
04 004 0068 SENSORS_BOTTOM
05 005 007C FRAME_0..2
06 006 0086 FRAME_0_1