I need some help. I have two servos connected to a Maestro 6 and have saved several sequences. I want to enter a 10-minute pause between the sequences. However, the Maestro 6 doesn’t allow 10 minutes; I can only enter up to about 3 minutes. So I have to enter 3 x 3 minutes. The problem is that this fills up my memory. The 124KB is full. How can I integrate these 10-minute pauses more easily?
This is a rather convoluted setup. As you can see, I have to enter the pause with multiple 30000 delays at the bottom. This obviously consumes a lot of memory. Surely there must be a better way to write this, even on a smaller device.
### Sequence subroutines: ###
# Sequence 0
begin
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 2
500 5518 frame_1 # Frame 3
3500 delay # Frame 4
500 7232 6976 frame_0_1 # Frame 5
3500 delay # Frame 6
500 5552 frame_0 # Frame 7
500 delay # Frame 8
500 delay
500 4032 frame_1 # Frame 9
1500 delay # Frame 10
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
# Sequence 1
sub Sequence_1
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 1
500 6976 frame_1 # Frame 2
3500 delay # Frame 2
500 7232 frame_0 # Frame 3
500 5536 4032 frame_0_1 # Frame 4
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
# Sequence 2
sub Sequence_2
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 7232 frame_0 # Frame 1
3500 delay # Frame 2
500 3840 5489 frame_0_1 # Frame 3
3500 delay # Frame 4
500 5536 4032 frame_0_1 # Frame 5
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
# Sequence 3
sub Sequence_3
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 5489 frame_1 # Frame 1
3500 delay # Frame 2
500 3840 frame_0 # Frame 3
3500 delay # Frame 4
500 7232 frame_0 # Frame 5
3500 delay # Frame 6
500 6976 frame_1 # Frame 7
3500 delay # Frame 8
500 5519 4032 frame_0_1 # Frame 9
500 delay # Frame 10
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
repeat
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_0_1
1 servo
0 servo
delay
return
sub frame_0
0 servo
delay
return
sub frame_1
1 servo
delay
return
Hello.
I recommend using the method shown in the “Long delays” example from the “Example Scripts” section of the Maestro user’s guide. If you still have problems with memory usage using that method, please post a copy of your updated script, and I would be happy to take a look.
Brandon
I saw this section, but unfortunately I didn’t quite understand it. Since I don’t speak English, I’m using a translator.
I’m supposed to insert a subroutine that handles this delay. I just didn’t understand how.
So I put it right at the beginning.
Of course, that didn’t work.
This is what it looks like now, after I removed all the other delays.
### Sequence test ###
begin
10 delay_minutes
repeat
# Sequence 0
begin
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 2
500 5518 frame_1 # Frame 3
3500 delay # Frame 4
500 7232 6976 frame_0_1 # Frame 5
3500 delay # Frame 6
500 5552 frame_0 # Frame 7
500 delay # Frame 8
500 delay
500 4032 frame_1 # Frame 9
1500 delay # Frame 10
# Sequence 1
sub Sequence_1
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 1
500 6976 frame_1 # Frame 2
3500 delay # Frame 2
500 7232 frame_0 # Frame 3
500 5536 4032 frame_0_1 # Frame 4
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
30000 delay # 1 Minute Pause
# Sequence 2
sub Sequence_2
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 7232 frame_0 # Frame 1
3500 delay # Frame 2
500 3840 5489 frame_0_1 # Frame 3
3500 delay # Frame 4
500 5536 4032 frame_0_1 # Frame 5
# Sequence 3
sub Sequence_3
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 5489 frame_1 # Frame 1
3500 delay # Frame 2
500 3840 frame_0 # Frame 3
3500 delay # Frame 4
500 7232 frame_0 # Frame 5
3500 delay # Frame 6
500 6976 frame_1 # Frame 7
3500 delay # Frame 8
500 5519 4032 frame_0_1 # Frame 9
500 delay # Frame 10
repeat
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_0_1
1 servo
0 servo
delay
return
sub frame_0
0 servo
delay
return
sub frame_1
1 servo
delay
return
You can copy the subroutines from the example and paste them in your script so you can call them from your main code. Similarly, I recommend putting your “Sequence 0” sequence into it’s own subroutine and starting your code with the main loop. Lastly, each of your sequence subroutines should end with a return command so the script returns back to the main loop when it is done. With those three modifications, your script would look something like this:
### Main Loop ###
begin
Sequence_0
10 delay_minutes
Sequence_1
10 delay_minutes
Sequence_2
10 delay_minutes
Sequence_3
10 delay_minutes
repeat
### Long delay subroutines ###
sub delay_seconds
begin dup while # check if the count has reached zero
1 minus 1000 delay # subtract one and delay 1s
repeat
drop return # remove the 0 from the stack and return
sub delay_minutes
begin dup while
1 minus 60 delay_seconds # subtract one and delay 1min
repeat
drop return # remove the 0 from the stack and return
### Sequence Subroutines ###
# Sequence 0
sub Sequence_0
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 2
500 5518 frame_1 # Frame 3
3500 delay # Frame 4
500 7232 6976 frame_0_1 # Frame 5
3500 delay # Frame 6
500 5552 frame_0 # Frame 7
500 delay # Frame 8
500 delay
500 4032 frame_1 # Frame 9
1500 delay # Frame 10
return
# Sequence 1
sub Sequence_1
500 5519 4032 0 0 0 0 frame_0..5 # Frame 0
500 3840 frame_0 # Frame 1
3500 delay # Frame 1
500 6976 frame_1 # Frame 2
3500 delay # Frame 2
500 7232 frame_0 # Frame 3
500 5536 4032 frame_0_1 # Frame 4
return
# Sequence 2
sub Sequence_2
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 7232 frame_0 # Frame 1
3500 delay # Frame 2
500 3840 5489 frame_0_1 # Frame 3
3500 delay # Frame 4
500 5536 4032 frame_0_1 # Frame 5
return
# Sequence 3
sub Sequence_3
500 5536 4032 0 0 0 0 frame_0..5 # Frame 0
500 5489 frame_1 # Frame 1
3500 delay # Frame 2
500 3840 frame_0 # Frame 3
3500 delay # Frame 4
500 7232 frame_0 # Frame 5
3500 delay # Frame 6
500 6976 frame_1 # Frame 7
3500 delay # Frame 8
500 5519 4032 frame_0_1 # Frame 9
500 delay # Frame 10
return
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_0_1
1 servo
0 servo
delay
return
sub frame_0
0 servo
delay
return
sub frame_1
1 servo
delay
return
Brandon
Thank you very much, I’ve incorporated the changes and adjusted my entire script accordingly. However, I can only use 9 sequences here because with 10 it says that at 1070kb I’m exceeding 1024kb and that’s not possible.
Is there any way to shorten this further?
### Sequence subroutines: ###
begin
Sequence_0
10 delay_minutes
Sequence_1
10 delay_minutes
Sequence_2
10 delay_minutes
Sequence_3
10 delay_minutes
Sequence_4
10 delay_minutes
Sequence_5
10 delay_minutes
Sequence_6
10 delay_minutes
Sequence_7
10 delay_minutes
Sequence_8
10 delay_minutes
Sequence_9
10 delay_minutes
Sequence_10
10 delay_minutes
repeat
sub delay_seconds
begin dup while # Prüfen, ob der Zähler Null erreicht hat
1 minus 1000 delay # Eins subtrahieren und 1 Sekunde verzögern
repeat
drop return # Die 0 vom Stack entfernen und zurückkehren
sub delay_minutes
begin dup while
1 minus 60 delay_seconds # Eins subtrahieren und 1 Minute verzögern
repeat
drop return # Die 0 vom Stack entfernen und zurückkehren
# Sequence 0
begin
sub Sequence_0
3000 8120 7209 7100 0 0 0 frame_0..5 # Frame 0
3000 9984 frame_1 # Frame 1
3000 delay # Frame 2
3000 6464 frame_0 # Frame 3
3000 delay # Frame 4
3000 3968 frame_1 # Frame 5
6000 delay # Frame 6
3000 8120 7200 frame_0_1 # Frame 7
6000 delay # Frame 8
return
# Sequence 1
sub Sequence_1
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 3968 5236 frame_1_2 # Frame 1
3000 delay # Frame 2
3000 8017 frame_2 # Frame 3
3000 delay # Frame 4
3000 6464 frame_0 # Frame 5
3000 delay # Frame 6
3000 9984 7100 frame_1_2 # Frame 7
3000 delay # Frame 8
3000 8120 7200 frame_0_1 # Frame 9
6000 delay # Frame 10
return
# Sequence 2
sub Sequence_2
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 6464 frame_0 # Frame 1
3000 delay # Frame 2
3000 9984 frame_0 # Frame 3
3000 delay # Frame 4
3000 6771 3968 frame_0_1 # Frame 5
3000 delay # Frame 6
3000 8064 frame_2 # Frame 7
3000 delay # Frame 8
3000 5866 7100 frame_1_2 # Frame 9
3000 delay # Frame 10
3000 8120 8757 frame_0_1 # Frame 11
3000 delay # Frame 12
3000 6959 frame_0 # Frame 13
3000 delay # Frame 14
3000 8120 7200 frame_0_1 # Frame 15
6000 delay # Frame 16
return
# Sequence 3
sub Sequence_3
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 3968 frame_1 # Frame 1
3000 delay # Frame 2
3000 8064 frame_2 # Frame 3
3000 delay # Frame 4
3000 6464 frame_0 # Frame 5
3000 delay # Frame 6
3000 8120 frame_0 # Frame 7
3000 delay # Frame 8
3000 9984 4864 frame_1_2 # Frame 9
3000 delay # Frame 10
3000 7200 7100 frame_1_2 # Frame 11
6000 delay # Frame 12
return
# Sequence 4
sub Sequence_4
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 4000 frame_1 # Frame 1
3000 delay # Frame 2
3000 8000 frame_1 # Frame 3
3000 delay # Frame 4
3000 6839 9984 frame_0_1 # Frame 5
3000 delay # Frame 6
3000 8120 7200 frame_0_1 # Frame 7
3000 delay # Frame 8
3000 4864 frame_2 # Frame 9
3000 delay # Frame 10
3000 8064 frame_2 # Frame 11
3000 delay # Frame 12
3000 7100 frame_2 # Frame 13
6000 delay # Frame 14
return
# Sequence 5
sub Sequence_5
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 9984 frame_1 # Frame 1
3000 delay # Frame 2
3000 6464 frame_0 # Frame 3
3000 delay # Frame 4
3000 9984 frame_0 # Frame 5
3000 delay # Frame 6
3000 8120 5702 frame_0_2 # Frame 7
3000 delay # Frame 8
3000 5428 7830 frame_1_2 # Frame 9
3000 delay # Frame 10
3000 6686 3968 frame_0_1 # Frame 11
3000 delay # Frame 12
3000 8120 7200 7100 frame_0..2 # Frame 13
6000 delay # Frame 14
return
# Sequence 6
sub Sequence_6
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 6464 frame_0 # Frame 1
3000 delay # Frame 2
3000 4026 frame_1 # Frame 3
3000 delay # Frame 4
3000 8120 7200 frame_0_1 # Frame 5
6000 delay # Frame 6
return
# Sequence 7
sub Sequence_7
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 4864 frame_2 # Frame 1
3000 delay # Frame 2
3000 8064 frame_2 # Frame 3
3000 delay # Frame 4
3000 6464 7100 frame_0_2 # Frame 5
3000 delay # Frame 6
3000 8120 frame_0 # Frame 7
6000 delay # Frame 8
return
# Sequence 8
sub Sequence_8
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 6651 frame_0 # Frame 1
3000 delay # Frame 2
3000 9984 frame_0 # Frame 3
3000 delay # Frame 4
3000 7044 4464 frame_0_1 # Frame 5
3000 delay # Frame 6
3000 9370 frame_1 # Frame 7
3000 delay # Frame 8
3000 8048 frame_2 # Frame 9
3000 delay # Frame 10
3000 5081 frame_2 # Frame 11
3000 delay # Frame 12
3000 8120 7200 7100 frame_0..2 # Frame 13
6000 delay # Frame 14
return
# Sequence 9
sub Sequence_9
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 6464 4172 frame_0_1 # Frame 1
3000 delay # Frame 2
3000 9984 frame_1 # Frame 3
3000 delay # Frame 4
3000 8958 frame_0 # Frame 5
3000 delay # Frame 6
3000 7181 frame_0 # Frame 7
3000 delay # Frame 8
3000 8120 7200 frame_0_1 # Frame 9
6000 delay # Frame 10
return
# Sequence 10
sub Sequence_10
3000 8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3000 4864 frame_2 # Frame 1
3000 delay # Frame 2
3000 8064 frame_2 # Frame 3
3000 delay # Frame 4
3000 9078 7100 frame_1_2 # Frame 5
3000 delay # Frame 6
3000 5369 frame_1 # Frame 7
3000 delay # Frame 8
3000 7200 frame_1 # Frame 9
3000 delay # Frame 10
return
repeat
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_1
1 servo
delay
return
sub frame_0
0 servo
delay
return
sub frame_0_1
1 servo
0 servo
delay
return
sub frame_1_2
2 servo
1 servo
delay
return
sub frame_2
2 servo
delay
return
sub frame_0_2
2 servo
0 servo
delay
return
sub frame_0..2
2 servo
1 servo
0 servo
delay
return
It looks like your sequences have a lot of duplicate code (like delaying for 3 seconds after each one), so you can probably squeeze in a couple more sequences if you move some of the duplicate code into the subroutines. You can find some examples showing how to compress code to save space under the “Compressing the sequence” heading of the “Example Scripts” section of the Maestro user’s guide.
For example, you can move the 3000 delay that is called after each frame to the end of the frame subroutines. Additionally, since each frame subroutine already ends in a delay command and you are always sending 3 seconds to that as well, we can combine them and just use 6000 delay. With those modifications, your script would look like this and brings the size down to 709 bytes while still being functionally the same as what you have now (although it offers less flexibility to adjust those timings later):
begin
Sequence_0
10 delay_minutes
Sequence_1
10 delay_minutes
Sequence_2
10 delay_minutes
Sequence_3
10 delay_minutes
Sequence_4
10 delay_minutes
Sequence_5
10 delay_minutes
Sequence_6
10 delay_minutes
Sequence_7
10 delay_minutes
Sequence_8
10 delay_minutes
Sequence_9
10 delay_minutes
Sequence_10
10 delay_minutes
repeat
sub delay_seconds
begin dup while
1 minus 1000 delay
repeat
drop return
sub delay_minutes
begin dup while
1 minus 60 delay_seconds
repeat
drop return
# Sequence 0
sub Sequence_0
8120 7209 7100 0 0 0 frame_0..5 # Frame 0
9984 frame_1 # Frame 1
6464 frame_0 # Frame 3
3968 frame_1 # Frame 5
3000 delay # Frame 6
8120 7200 frame_0_1 # Frame 7
3000 delay # Frame 8
return
# Sequence 1
sub Sequence_1
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3968 5236 frame_1_2 # Frame 1
8017 frame_2 # Frame 3
6464 frame_0 # Frame 5
9984 7100 frame_1_2 # Frame 7
8120 7200 frame_0_1 # Frame 9
3000 delay # Frame 10
return
# Sequence 2
sub Sequence_2
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 frame_0 # Frame 1
9984 frame_0 # Frame 3
6771 3968 frame_0_1 # Frame 5
8064 frame_2 # Frame 7
5866 7100 frame_1_2 # Frame 9
8120 8757 frame_0_1 # Frame 11
6959 frame_0 # Frame 13
8120 7200 frame_0_1 # Frame 15
3000 delay # Frame 16
return
# Sequence 3
sub Sequence_3
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3968 frame_1 # Frame 1
8064 frame_2 # Frame 3
6464 frame_0 # Frame 5
8120 frame_0 # Frame 7
9984 4864 frame_1_2 # Frame 9
7200 7100 frame_1_2 # Frame 11
3000 delay # Frame 12
return
# Sequence 4
sub Sequence_4
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4000 frame_1 # Frame 1
8000 frame_1 # Frame 3
6839 9984 frame_0_1 # Frame 5
8120 7200 frame_0_1 # Frame 7
4864 frame_2 # Frame 9
8064 frame_2 # Frame 11
7100 frame_2 # Frame 13
3000 delay # Frame 14
return
# Sequence 5
sub Sequence_5
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
9984 frame_1 # Frame 1
6464 frame_0 # Frame 3
9984 frame_0 # Frame 5
8120 5702 frame_0_2 # Frame 7
5428 7830 frame_1_2 # Frame 9
6686 3968 frame_0_1 # Frame 11
8120 7200 7100 frame_0..2 # Frame 13
3000 delay # Frame 14
return
# Sequence 6
sub Sequence_6
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 frame_0 # Frame 1
4026 frame_1 # Frame 3
8120 7200 frame_0_1 # Frame 5
3000 delay # Frame 6
return
# Sequence 7
sub Sequence_7
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4864 frame_2 # Frame 1
8064 frame_2 # Frame 3
6464 7100 frame_0_2 # Frame 5
8120 frame_0 # Frame 7
3000 delay # Frame 8
return
# Sequence 8
sub Sequence_8
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6651 frame_0 # Frame 1
9984 frame_0 # Frame 3
7044 4464 frame_0_1 # Frame 5
9370 frame_1 # Frame 7
8048 frame_2 # Frame 9
5081 frame_2 # Frame 11
8120 7200 7100 frame_0..2 # Frame 13
3000 delay # Frame 14
return
# Sequence 9
sub Sequence_9
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 4172 frame_0_1 # Frame 1
9984 frame_1 # Frame 3
8958 frame_0 # Frame 5
7181 frame_0 # Frame 7
8120 7200 frame_0_1 # Frame 9
3000 delay # Frame 10
return
# Sequence 10
sub Sequence_10
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4864 frame_2 # Frame 1
8064 frame_2 # Frame 3
9078 7100 frame_1_2 # Frame 5
5369 frame_1 # Frame 7
7200 frame_1 # Frame 9
return
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
3000 delay
return
sub frame_1
1 servo
6000 delay
return
sub frame_0
0 servo
6000 delay
return
sub frame_0_1
1 servo
0 servo
6000 delay
return
sub frame_1_2
2 servo
1 servo
6000 delay
return
sub frame_2
2 servo
6000 delay
return
sub frame_0_2
2 servo
0 servo
6000 delay
return
sub frame_0..2
2 servo
1 servo
0 servo
6000 delay
return
If you need much more than that, you might consider upgrading to a 12-channel Mini Maestro, which has 8 times the memory for script storage (8KB vs 1KB).
Brandon
I read this section, but I guess I didn’t quite understand it. The 3000 delays that repeat are meant to pause briefly after each movement so they don’t all happen at once. The droid looks right – waits briefly – looks down – waits briefly – looks left – waits briefly – and then returns to its starting position.
If there’s a way to write this without changing the sequence, that would be great.
Oh yes, is there any way to prevent the servos from jerking into position when switched on?
It happened recently that the power cut out mid-movement. And when it came back on, the servo jerked back to its starting position. It was a 12V 150kg servo. It has considerable power and tore off part of the drone in the process.
I know that the Maestros can’t retain a position when there’s no power.
So how can this be prevented? I was hoping to achieve this by slowing down the movement, but that only activates after the Maestro receives power again following the initial movement.
Hello.
As I described in my previous post, all I did was combine the delay commands that you were using into one (e.g. your subroutine already ended in a 3 second delay, then you called a separate 3 second delay afterward, so I just made that one 6 second delay instead). So, the script in my previous post should function identically to the last one you posted.
Unfortunately, the Maestro’s speed and acceleration limiting cannot be applied to the first movement after powering up. To slow down the servo movement, the Maestro breaks the movement up into many smaller incremental moves, and to do that calculation it needs to know the current position of the servo. Since servos do not make their position information available to the controller, the Maestro must assume that the servo is at the position it is sending. The best way to make sure the servos do not jerk suddenly on power up would be to have a power down routine that puts the servos in a specific position and have the Maestro start by sending that position to sync them up more gracefully.
Brandon
Ah, that means I don’t need to insert a 3000 delay after every movement, but a 6000 or 9000 at the end is sufficient?
It sounds like you are describing the modification I made correctly. To clarify, the code I posted already has that modification done and you should not need to make any further modifications to get it to behave the same as your original code.
Brandon
Thank you very much. Here is my current code, which I haven’t been able to test yet because I still need to do some work on the hardware.
begin
Sequence_0
10 delay_minutes
Sequence_1
10 delay_minutes
Sequence_2
10 delay_minutes
Sequence_3
10 delay_minutes
Sequence_4
10 delay_minutes
Sequence_5
10 delay_minutes
Sequence_6
10 delay_minutes
Sequence_7
10 delay_minutes
Sequence_8
10 delay_minutes
Sequence_9
10 delay_minutes
Sequence_10
10 delay_minutes
repeat
sub delay_seconds
begin dup while
1 minus 1000 delay
repeat
drop return
sub delay_minutes
begin dup while
1 minus 60 delay_seconds
repeat
drop return
# Sequence 0
sub Sequence_0
8120 7209 7100 0 0 0 frame_0..5 # Frame 0
9984 frame_1 # Frame 1
6464 frame_0 # Frame 3
3968 frame_1 # Frame 5
3000 delay # Frame 6
8120 7200 frame_0_1 # Frame 7
3000 delay # Frame 8
return
# Sequence 1
sub Sequence_1
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3968 5236 frame_1_2 # Frame 1
8017 frame_2 # Frame 3
6464 frame_0 # Frame 5
9984 7100 frame_1_2 # Frame 7
8120 7200 frame_0_1 # Frame 9
3000 delay # Frame 10
return
# Sequence 2
sub Sequence_2
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 frame_0 # Frame 1
9984 frame_0 # Frame 3
6771 3968 frame_0_1 # Frame 5
8064 frame_2 # Frame 7
5866 7100 frame_1_2 # Frame 9
8120 8757 frame_0_1 # Frame 11
6959 frame_0 # Frame 13
8120 7200 frame_0_1 # Frame 15
3000 delay # Frame 16
return
# Sequence 3
sub Sequence_3
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
3968 frame_1 # Frame 1
8064 frame_2 # Frame 3
6464 frame_0 # Frame 5
8120 frame_0 # Frame 7
9984 4864 frame_1_2 # Frame 9
7200 7100 frame_1_2 # Frame 11
3000 delay # Frame 12
return
# Sequence 4
sub Sequence_4
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4000 frame_1 # Frame 1
8000 frame_1 # Frame 3
6839 9984 frame_0_1 # Frame 5
8120 7200 frame_0_1 # Frame 7
4864 frame_2 # Frame 9
8064 frame_2 # Frame 11
7100 frame_2 # Frame 13
3000 delay # Frame 14
return
# Sequence 5
sub Sequence_5
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
9984 frame_1 # Frame 1
6464 frame_0 # Frame 3
9984 frame_0 # Frame 5
8120 5702 frame_0_2 # Frame 7
5428 7830 frame_1_2 # Frame 9
6686 3968 frame_0_1 # Frame 11
8120 7200 7100 frame_0..2 # Frame 13
3000 delay # Frame 14
return
# Sequence 6
sub Sequence_6
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 frame_0 # Frame 1
4026 frame_1 # Frame 3
8120 7200 frame_0_1 # Frame 5
3000 delay # Frame 6
return
# Sequence 7
sub Sequence_7
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4864 frame_2 # Frame 1
8064 frame_2 # Frame 3
6464 7100 frame_0_2 # Frame 5
8120 frame_0 # Frame 7
3000 delay # Frame 8
return
# Sequence 8
sub Sequence_8
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6651 frame_0 # Frame 1
9984 frame_0 # Frame 3
7044 4464 frame_0_1 # Frame 5
9370 frame_1 # Frame 7
8048 frame_2 # Frame 9
5081 frame_2 # Frame 11
8120 7200 7100 frame_0..2 # Frame 13
3000 delay # Frame 14
return
# Sequence 9
sub Sequence_9
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
6464 4172 frame_0_1 # Frame 1
9984 frame_1 # Frame 3
8958 frame_0 # Frame 5
7181 frame_0 # Frame 7
8120 7200 frame_0_1 # Frame 9
3000 delay # Frame 10
return
# Sequence 10
sub Sequence_10
8120 7200 7100 0 0 0 frame_0..5 # Frame 0
4864 frame_2 # Frame 1
8064 frame_2 # Frame 3
9078 7100 frame_1_2 # Frame 5
5369 frame_1 # Frame 7
7200 frame_1 # Frame 9
return
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
3000 delay
return
sub frame_1
1 servo
6000 delay
return
sub frame_0
0 servo
6000 delay
return
sub frame_0_1
1 servo
0 servo
6000 delay
return
sub frame_1_2
2 servo
1 servo
6000 delay
return
sub frame_2
2 servo
6000 delay
return
sub frame_0_2
2 servo
0 servo
6000 delay
return
sub frame_0..2
2 servo
1 servo
0 servo
6000 delay
return
But as an example, here’s a video of the finished B1. You can see how the movements work and that there’s a short pause between them.
That’s exactly how I want it to be for this new code.
I haven’t tested this new version of the code on the B1 yet, as there was enough memory there.
B1 Head move
The shortening with the corresponding subroutines is extremely helpful, even if it’s difficult for me to understand. I’m more of a builder than a programmer.
