0% found this document useful (0 votes)
142 views18 pages

EasyAsuro Manual V1.0

EasyASURO is a visual programming tool for the ASURO robot. It contains RoViPro, a Windows application used to create programs, and AsuViMa, an interpreter uploaded to ASURO. The tutorial explains how to start RoViPro, add visual instructions to program ASURO's actions, save and upload programs, and provides examples of simple programs that make ASURO drive and light its LEDs.

Uploaded by

bozzec
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
142 views18 pages

EasyAsuro Manual V1.0

EasyASURO is a visual programming tool for the ASURO robot. It contains RoViPro, a Windows application used to create programs, and AsuViMa, an interpreter uploaded to ASURO. The tutorial explains how to start RoViPro, add visual instructions to program ASURO's actions, save and upload programs, and provides examples of simple programs that make ASURO drive and light its LEDs.

Uploaded by

bozzec
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

EasyASURO 1.

0 tutorial
What is EasyASURO? ............................................................................................................... 2
RoViPro.................................................................................................................................. 2
AsuViMa ................................................................................................................................ 2
Getting started ............................................................................................................................ 3
Upload AsuViMa ................................................................................................................... 3
Starting RoViPro .................................................................................................................... 3
Programming panel ............................................................................................................ 3
Visual instructions.............................................................................................................. 4
Control buttons and indicator ............................................................................................. 4
Simple programming example #1 .......................................................................................... 5
Saving program ...................................................................................................................... 7
Uploading ............................................................................................................................... 8
More programming examples .............................................................................................. 10
Programming example #2. ............................................................................................... 10
Programming example #3. ............................................................................................... 11
Programming example #4. ............................................................................................... 12
Programming example #5a............................................................................................... 13
Programming example #5b .............................................................................................. 14
Programming example #6. ............................................................................................... 15
Valid programming instructions............................................................................................... 17
Bug reports ............................................................................................................................... 18

2007 AREXX Engineering


Made by
Date

: Henk van Winkoop


: 2007-01-11 (V1b)

What is EasyASURO?
EasyASURO is a package to program the ASURO robot in a visual way without the need of
knowing any programming language, only using your computer mouse.
EasyASURO contains:
- RoViPro, a Windows application to create ASURO programs
- AsuViMa, a program that must be stored in the ASURO
Additional equipment needed:
- a comport with an RS232 cable connected to an infrared transmitter unit
- or, a USB cable connected to a USB infrared transmitter unit
The RS-232 IR-transmitter is supplied with the ASURO robot.

RoViPro
RoViPro is the abbreviation of Robot Visual Programming. It is an easy way to use a
Windows application to create and upload user programs into ASURO by using mouse clicks
only.
It is designed for persons who are interested in robotics but are not completely familiar with C
programming. RoViPro makes it possible to program the ASURO in a very easy way with a
so called tile programming system. To make it even more attractive, RoViPro also has some
funny sound effects onboard.

AsuViMa
AsuViMa stands for ASURO Virtual Machine. This is a kind of programming code
interpreter and executor which must be uploaded into ASURO only once. This virtual
machine interprets and executes the programming code that is generated by RoViPro.

Getting started
Upload AsuViMa
First upload the AsuViMa1.0.hex file into the ASURO robot with the Flash tool. After
uploading, switch ASURO off. This hex file can be found in folder C:\Program
Files\EasyASURO\AsuViMa.

Starting RoViPro
Starting RoViPro will show the one and only window:

Figure 1

Programming panel
The space picture represents the programming panel on which the visual instructions can be
dropped.
The sound can be controlled (or switched off) with the sound panel on your computer.

Visual instructions
Visual instructions are placed on the drawing panel by mouse clicking on the instruction
buttons.

Figure 2 Visual instruction buttons

START
STOP
IF
THEN
ELSE
LABEL
GOTO
DELAY
ACTOR
SENSOR
Eng. Speed
Switch Int

RTI

instruction that marks the start of a program


instruction that marks the end of a program
a test instruction always followed by THEN and ELSE
program direction when IF test passes
program direction when IF test fails
a destination instruction used by GOTO
a jump instruction to any LABEL instruction
a program delay instruction
instruction to define some ASURO action like driving forward
instruction to test some ASURO state like a green system LED
instruction to define the engines speed
instruction to mark the beginning of a subprogram being executed
when any ASURO front switch is pressed
end instruction belonging to the Switch Int instruction

Control buttons and indicator


The first three objects are regular buttons, the rightmost object is also an indicator.

Figure 3

Upload
Run
Upld Run
No Comm

Upload the visual program to ASURO (without running it)


Run the uploaded program
Upload and immediately run the uploaded program
When RoViPro receives a communication message from ASURO then
the indicator will temporarily swap to Comm Okay
If pressed, RoViPro will send a message to Asuro requesting Asuro to
send back a message to confirm that Asuro is in reach of the RoViPro
infrared transmitter.

Simple programming example #1


Just lets start with a simple program. Press the instruction buttons Start, Actor and Stop.
Now three visual instructions will appear on the left hand top position on the programming
panel.

Figure 4 Simple program example

Removing instructions
If you made any mistake then a visual instruction can be deleted by right clicking on it with
the mouse.
Moving instructions
Instructions can be moved around by holding down the left mouse button on it and dragging it
around.
The close up shows:

Figure 5

Now you need to leftmouseclick on the upper down-arrow behind the word [Driving] in the
main item box..
A pull down menu will appear:

Figure 6

Select the word [Driving] (which was already selected).


Leftmouseclick on the down-arrow behind the word [Forward] in the sub item box.
A pull down menu will appear:

Figure 7

Select any action you want ASURO to execute.

Depending on the selected main item/sub item combination, some additional value item box
will appear. Just find out by experimenting with it.

Figure 8

When [Driving] + [Forward] or [Reverse] is selected, the value item box appears where the
driving distance can be filled out.

Figure 9

When [BackLEDs] or [System LED] is selected, the time it is supposed to light before the
next instruction is executed can be filled out in the value item box.

Figure 10

This instruction will light the right backLED for 1.2 seconds before executing the next
instruction.

Saving program
Create next program:

Figure 11

So now lets save the program.


To save your first EasyASURO program select the main menu items: File -> Save As..

Figure 11

Dont worry if your main menu looks somewhat different from the above picture. New
EasyASURO program releases may have a slightly different main menu.
Find a suitable folder to store your program and fill in a program name behind the File name.
In our case it is called: 01, My first EasyASURO program. Then click on Save to have the
program stored on the harddisk with the extension .vio into the folder named EasyASURO
programs.

Figure 12

Uploading
Now that your first program is saved, it can be reloaded at any time. But first we want to send
this program to ASURO.
If you havent done it yet, switch off your ASURO.
Also be sure to have your computer speakers on.
Find the control buttons:

Figure 13

Leftmouseclick on the Upload command button.


You will hear an audio Upload-signal, but nothing else occurs.
Switch on the ASURO and wait a few seconds.
The ASURO reports itself with an audible Standby-message.
This message also does the red No Comm indicator flash green for a few moments with the
text Comm Okay.

Figure 14

ASURO is now detected by RoViPro. Leftmouseclick again on the Upload command button.

Again the Upload-signal will be heard, followed by a Program-Complete message and the
No Comm indicator will shortly turn green. The program is now uploaded into the ASURO.
ASURO has correctly received this program and ASURO sends this Program-Complete
message back to RoViPro.
Did you see that the blue Run button is now enabled?

Figure 15

Because there now is a program in ASURO, it can be started by clicking on the Run button.
But just wait a moment.
First switch ASURO off again and press the No Comm button. You will hear a please
acknowledge message spoken. Switch ASURO on, wait a few seconds until ASURO has
reported itself and then press the No Comm button. ASURO will now respond with a link
established message.
Lets have a short look at your first created program. It has three different items namely
Driving, Forward and 20. This means the ASURO will drive forward over a distance of 20
centimetres and will then stop.
Are you curious yet? Well hit the Upload button and then hit the Run button.
Did you see?!
If ASURO does not drive well, be sure your ASURO has full batteries.
Now several things occure at the same time:
First an audio Run-Signal will be heard, generated by RoViPro followed by a Workingmessage that is transmitted back by ASURO when ASURO receives a Run command. Then
ASURO will drive forward immediately exactly 20 centimetres with a moderate default speed
of exactly 10 centimetres per second. So ASURO will drive forward just two seconds. Just
prior to stopping, ASURO will decrease its speed.
Keep looking at the Run button, switch ASURO off and on again and wait a few seconds. If
RoViPro receives the Standby-message from ASURO, the Run button will switch off because
now there is no program in the ASURO.
Instead of clicking the Upload button and the Run button separately, you can execute both
actions automatically by clicking the yellow Upld.Run (Upload and Run) button. This button
creates its own audio UploadRun-signal and ASURO will answer with a Working-message.

More programming examples


All programming example files can be found in folder:
C:\Program Files\EasyASURO\RoViPro\vio

Programming example #2.


Try to create the next program by yourself:

Figure 16

If you find it difficult to do, just load the example file: 02, If system LED turn left or
right.vio
Have your ASURO switched on and hit the Upld.Run button.
Watch the system LED and ASUROs behaviour.
Now what does this program do?
Lets handle the program step by step:
START
Each program always starts with START
ACTOR
Will turn the system LED to green. Forget about this 10 cm, it only applies
when using driving commands
DELAY
Wait 10 times 0.1 second, so wait totally 1 second
IF
Is the start of a question that is asked by the program to ASURO
SENSOR
The program checks if the system LED is green.
THEN
If the system LED is green, the program will follow this THEN branch.
ELSE
If the system LED is not green, the program will follow this ELSE branch.
ACTOR
This will be executed by ASURO (forget about the 10cm)
STOP
Each program end must be terminated by a STOP
It sets the system LED to green, waits one second so you will be able to see it light green.
Then it checks if the system LED is green. Of course it is green, so the THEN branch will be
executed which turns the ASURO to the left.

Now change the second instruction which is the ACTOR instruction and have it set to the red
system LED. Again, press the Upld.Run button and see!

So remember: the system LED can be used both as actor and as sensor.

Programming example #3.


Try to create the next program by yourself:

Figure 17

Example file: 03, green delay red delay.vio


The LABEL and GOTO instruction default name is A. You can change/add another name
by just typing it in the LABEL instruction and press the ENTER key. Then select that name in
the GOTO instruction by clicking on the down-arrow icon.
Have your ASURO switched on and hit the Upld.Run button.
Watch the system LED.
Now what does this program do?
It starts with turning the system LED to green. Waits one second, turns the system LED to red,
and again waits one second. Then this whole sequence is repeated endlessly.
The START instruction is at the bottom right position. This is not a very easy to read program
but it shows that it does not matter where you put the instructions as long as they are correctly
chained to each other.
Lets handle the program step by step:
START
The start of the program
LABEL
A destination for a GOTO instruction
ACTOR
Setting the system LED to green (forget about the 10cm)
DELAY
Wait one second
ACTOR
Setting the system LED to red (forget about the 10cm)
GOTO
The program jumps from the GOTO instruction to the LABEL instruction
that has the same name as the GOTO instruction.

Programming example #4.


Try to create the next program by yourself:

Figure 18

Example file: 04, speed driving forward zero label goto.vio


Set the ACTOR driving distance value to 0 cm. This will drive the ASURO continuously
without stopping.
Have your ASURO switched on and hit the Upld.Run button.
Now what does this program do?
It starts defining the engine speed for both engines to be 20 centimetres per second. ASURO
should be driving forward. Then the program keeps repeating the LABEL and GOTO
instructions.
If you replace the LABEL/GOTO instruction combination by a STOP instruction, then
ASURO initially will drive forward endlessly however immediately the STOP instruction is
executed. The STOP instruction always switches off all ASURO systems including its
engines so ASURO will stop immediately. Probably ASURO will hop forward for a few
millimetres.
Lets handle the program step by step:
START
The start of the program
ENGINEPreparing the left and right engine speed in centimetres per second,
-SPEED
without starting the engines
ACTOR
Start ASURO driving forward continuously (0 cm) with the predefined speed
LABEL
A destination for a GOTO instruction
GOTO
The program jumps from the GOTO instruction to the LABEL instruction

Programming example #5a


Try to create the next program by yourself:

Figure 19

Example file: 05a, driving forward, interrupt drive reverse.vio


Put an object in front of ASURO, for example 5 centimetres away. This distance is not
important.
Point your ASURO towards the object, switch ASURO on and hit the Upld.Run button.
Just watch your ASURO.
What should it do?
It should drive forward, hitting the object and driving backwards 10 centimetres. Then it
repeats this forward/reverse sequence until you stop it.
Now what does this program do?
First, there are two different programs inside ASURO now. The program between the START
and GOTO instruction, we will call the main program. The program between the SWITCH
and RTI/STOP instructions is called the switch program.
The main program starts with ASURO driving forward continuously.
As soon as any front switch on ASURO is pressed, the main program will halt and the switch
program will be executed. If the switch program has finished by its RTI or STOP instruction,
then the main program resumes from where it was halted.

Remember, the switch program is executed as soon as any switch is pressed. The switch
program checks which switch is pressed. The SENSOR instruction is set to ANY. So any
switch that is pressed will be assumed valid and therefore the program will follow the THEN
instruction branch. This makes ASURO drive backwards 10 centimetres. The RTI instruction
stops the switch program and makes the main program resume where the main program was
halted.
Lets handle part of the program that contains new instructions:
SWITCH
The start of the switch program
RTI
End of switch program (RTI means: ReTurn from Interrupt)
For now we will not discuss this RTI instruction name. Just take it for granted.

Programming example #5b


Maybe you already noticed that ASURO is not exactly driving straight forward. Especially if
you place the object further away. Because of the main program, the ACTOR instruction
(driving, forward, 0) is executed continuously. This instruction initializes the engines. As it is
continuously initialized, the engine speed/distance control mechanism receives no change to
get active. If you want ASURO to drive straight forward, some programming tricks will be
needed.
Try to create the next program by yourself:

Figure 20

Example file: 05b, driving forward, interrupt drive reverse.vio


Point your ASURO towards the object, switch ASURO on and hit the Upld.Run button.
Just watch your ASURO.
You can see that the main program starts ASURO and only once executes the ACTOR
instruction.
The switch program from the previous example will drive ASURO backwards 10 centimetres
and then stop ASURO.
The main program will now be resumed, but the main program will not pass the ACTOR
instruction because the main program will only cycle through the LABEL and GOTO
instruction repeatedly. ASURO will not restart driving forward.

To make ASURO do drive forward, put an ACTOR (driving, forward,0) instruction prior to
the switch program RTI instruction. So before executing the RTI instruction the switch
program will restart ASURO driving forward.
Now ASURO will drive straight forward.
Inside the switch program, the ELSE instruction is never executed. As the instruction syntax
requires a THEN and an ELSE instruction following an IF (plus SENSOR) instruction, it
must be there in the program. The STOP instruction is just a valid example here. A RTI
instruction would be more correct.
If for instance the RTI instruction in the switch program is replaced by a STOP instruction,
which is totally valid, then after driving reverse 10 centimetres and after driving forward
again, the ASURO program will simply stop driving because the STOP instruction is shutting
down all systems.
Remember: a switch program must always be accompanied by a main program. So a standalone switch program only is not allowed.

Programming example #6.


Try to create the next program by yourself:

Figure 21

Have your ASURO switched on and hit the Upld.Run button.


Now press the ASURO front switches one by one and listen
This SENSOR instruction (Switches, Test) sends a message with the pressed key to the
RoViPro application which speaks out the received switch number.
The remaining switch program THEN/ELSE branches are only needed to not conflict with the
general instructions syntax.

Well, you now know enough to make simple (or more complex) ASURO programs. Just
experiment with all ACTOR/SENSOR items that are in the dropdown lists of these
instructions.
Communication remark:
If one of the Upload, Run or Upld.Run control buttons is pressed and NO acknowledge
message is received back from ASURO, then its possible that ASURO still received the
correct control message but the infrared transmitter of ASURO just points away from the
RoViPro infrared receiver. So RoViPro misses the acknowledge message from ASURO but
ASURO will execute the received control message from RoViPro.

Valid programming instructions


Below is a list of valid instruction sequences.
NEXT

STA

STA

STO

IF

OK

OK

THN

ELS

ACT

SNS

OK

GTO

LBL

DLY

OK

OK

OK

SWI

RTI

SPD

OK

STO

IF

OK

THN

OK

OK

OK

OK

OK

ELS

OK

OK

OK

OK

OK

ACT

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

PREV.
SNS

OK

OK

GTO

OK

LBL

OK

OK

OK

OK

OK

DLY

OK

OK

OK

OK

OK

OK

OK

OK

OK

SWI

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

RTI

SPD

OK

Figure 22 Valid instruction sequence

In the Valid instruction sequence picture each instruction is abbreviated to a 3-letter word.
For example the THEN instruction is abbreviated to THN.
At the left side of the picture, in the second column, all existing instructions are listed in an
arbitrary sequence. In the first column is the abbreviation PREV which means: previous
instruction. The same sequence of instructions is on the second horizontal row. The first
horizontal row carries the word NEXT which means: next instruction. So lets take an
example that will make it clear.
In the second column find the ACT instruction. At the first horizontal position behind it is a
blank position representing the vertical STA instruction. This means that an ACT (Actor)
instruction can never be followed by a STA (Start) instruction. On the second position behind
ACT there is an OK cell representing the vertical STO instruction. This means that an ACT
instruction may be followed by a STO (Stop) instruction.

Bug reports
As this software is only a beta version, bugs will certainly pop up.
Bug reports can be sent to [email protected]
Upgrades and additional information will be offered on our website www.arexx.com

2007 AREXX Engineering, Zwolle The Netherlands

You might also like