1
Getting started with Ohbot V2
17 Ohbot V2 Programs
to Play With
2
Getting started with Ohbot V2
These examples We think play is at the heart of learning and should be the foundation for using new
technology. This pack is a collection of Ohbot projects to explore. The programs featured are
available to download from www.ohbot.co.uk Please feel free to dip in, explore, tinker with
each.
There are a number of tools available that can be used to help you combine the instruction
stacks in the examples to get Ohbot to do new things:
Broadcast blocks –these allow stacks of instruction blocks to communicate with each other.
For more on these see the help guide.
Variables –have certain stacks of instruction blocks activated when a variable has one value
and others activated when it has another.
Add –allows you to add the code blocks from one file into another (find it on the File menu)
Enjoy the adventure.
About the Motors Ohbot has seven servo motors. Each moves a different part:
3
Getting started with Ohbot V2
Each servo can be set to one of eleven positions using the set [servo name] to [position
number] block. Enter a number between 0 and 10 to set the position.
For example, eyes looking all the way one way:
Eyes in the middle:
Eyes all the way the other way:
Each servo works in a similar way.
1. Set motor position to… In the Motion menu the set instruction blocks tell the computer to set the position of a
particular servo to a particular position between 0 (all the way in one direction) through
5 (in the centre) to 10 (all the way in the other direction)
Try this…
Make Ohbot tilt its head down when the down arrow key
is pressed
Make Ohbot tilt its head up when the up arrow key is
pressed
4
Getting started with Ohbot V2
Make Ohbot return its head tilt to horizontal when c is
pressed
See example file ‘1 set motor position to’
2. Change motor position by… This block allows you to change the position of a motor by a number between 0.1 and 10. You can
also change by negative numbers between -0.1 and -10.
Try this…
Make Ohbot tilt its head up by 1 position each time the up
arrow is pressed.
Enter -1 to make Ohbot tilt its head down by 1 position
each time the down arrow is pressed.
Can you make Ohbot turn its head in each direction when
you press the left and right arrow keys?
See example file ‘2 change motor position by’
3. Sequences to nod, shake, blink and yawn We can create a sequence of motion blocks to make Ohbot carry out a several movements in
succession. The wait block can be used to give the motors time to make the movement before
the computer carries out the next instruction.
Try this…
Make Ohbot nod when the N key is pressed
5
Getting started with Ohbot V2
Make Ohbot blink when the B key is pressed
Make Ohbot shake its head. This will need three movements:
Can you make Ohbot yawn? Try right duplicating one of the code
stacks above (right click on the stack and select duplicate) then
altering.
See example file ‘3 sequences to nod blink etc’
4. Repeats to make Ohbot look scared
What if we wanted Ohbot’s eyes to pan left and right quickly to look scared? One way would
be to create a long sequence of set eyeturn to commands. A more efficient way to achieve the
same thing would be to repeat a section of the code.
Try this… Make Ohbot quickly pan its eyes left and right three times then
return to the forward facing position.
See example file ‘4 repeats to make Ohbot look scared’
5. Use random for eye blink The Random instruction block enters a randomly selected number between the two values in the
block. In this block the random number will be between 0 and 3.
6
Getting started with Ohbot V2
Try this… Make Ohbot close its eyes for 0.3 then open them. The wait
before the blink is repeated is set to a random value between
0 and 3 each time around the loop. Note that the random
block returns a value to one decimal place rather than an
integer.
Can you alter the program so that the length of time the eyes
are closed for each time is random too?
See example file ‘5 using random’
6. Make Ohbot doze off slowly and wake up quickly The Set motor speed to block allows us to set the speed of the selected motor between a
maximum of 10 and minimum of 1. If no speed block is used the speed defaults to maximum.
Try this… Make Ohbot’s head tilt down slowly
And tilt up quickly
Make a sequence in which Ohbot nods once
quickly, then once slowly. This illustrates
how once a motor speed has been set it will
maintain that speed setting until another
speed block sets it to a different speed.
Notice how a longer wait is required to give
time for the motor to complete the
movement.
See example file ‘6 motor speed’
Sets motor
speed to 10 (the
maximum)
Sets motor
speed to 1 (the
minimum)
7
Getting started with Ohbot V2
7. Ohbot as a puppet How about getting Ohbot to react to a sensor? The Mouse X sensor block (on the sensor
menu) gives the position of the mouse in the x axis as a number between 0 and 10. The
Mouse Y block does the same for the Y axis.
Try this… This will keep setting the head turn position to the x
co-ordinate of the mouse:
Make Ohbot’s eyes follow the mouse too. Perhaps
Ohbot is searching for something?
Or they can move in the opposite direction. Is Ohbot
watching you as it moves its head?
See example ‘7 Ohbot as a puppet’
Make Ohbot’s eyes and head tilt
following the Y position of the mouse.
8
Getting started with Ohbot V2
8 Programming Ohbot to speak
Ohbot can translate written text into speech. It does this using the Windows text to speech
system. Alternative accents are available.
Try this… Can you make Ohbot introduce itself to you?
Can you make Ohbot open its mouth when it
speaks? For example:
But this is not ideal since Ohbot’s mouth will not open and close as the words are spoken. An
alternative approach is to use the Toplip and Bottomlip sensor blocks. These give a value
between 0 and 10 when Ohbot speaks. We can then repeatedly set the position of the top
and bottom lips to these value using a forever loop.
Try this…
See example ‘8 synchronise mouth movements with speech’
Ohbot is able to listen using a microphone. The when word heard event block is triggered when the
word on the block is spoken into the microphone. The words Ohbot can understand can be set from
the Sensing screen on the Settings menu. Using a smaller vocabulary of words makes Ohbot's
speech recognition more accurate.
9. Programming Ohbot to listen
9
Getting started with Ohbot V2
See example ‘9 Programming Ohbot to listen’
10. Programming Ohbot to see
Ohbot is able to see using a camera. It can also recognise faces, face size and track a face as it
moves. These four variables provide information from the camera. Put a tick in the box next
to each to display the variable on the screen so that you can see its value.
Gives the number of faces seen by the camera
Gives a value based on how close a face is to the camera
Gives the x co-ordinate (a number between 0 and 10) for the
position of the face in the camera image
Try this… Make Ohbot say ‘hello’ when the camera detects a face.
Can you figure out how to use an If-Then-Else loop so
that it will say ‘Hello’ if it sees a face and say something
else, ‘I’m lonely’ perhaps, if it doesn’t?
Make Ohbot track the position of a face?
This is only left and right. Can you find a way of making
Ohbot track the movement of a face up and down too?
How about making its eyes tilt and turn too?
Try this…
Gives the y co-ordinate (a number between 0 and 10) for the
position of the face in the camera image
10
Getting started with Ohbot V2
Make Ohbot respond to the face size variable.
See example ‘10 camera sensing’
11. Make Ohbot become sleepy Variables are useful whenever a value needs to be stored. They are easy to understand if we
think of them as a box into which only one number or string of letters (a word) can be placed.
We can use variables to give Ohbot needs. Try this example to make Ohbot become sleepy,
then wake when the spacebar is clicked.
See example ’11 I need sleep’
12. Make Ohbot ask questions Ask and wait is a block that makes Ohbot ask a question then wait for a text response. Once
one has been entered it moves to the next instruction block and the answer is available to
use as a variable. Note: once another Ask and wait block has been run the value of the
previous answer will be overwritten.
11
Getting started with Ohbot V2
Try this… Make Ohbot ask a question and then say the answer that
has been entered.
Save the answer as a variable (in this
case called Name) so that it can be
reused later.
See example ’12 Make Ohbot ask
questions’
13. Make Ohbot tell the time There are a collection of sensor blocks that allow Ohbot to work with the time and date. These can
be dropped into the speech block to make Ohbot say the time and date.
Try this…
See example ’13 telling the time’
14. Make Ohbot talk about the weather
Ohbot can access live temperature and generalised weather condition data for a specific
location via the and sensor blocks.
12
Getting started with Ohbot V2
It draws data from the Yahoo weather website so will not work if the computer you are using
is offline. Before using visit https://weather.codes/ and find the code for your chosen
location. The codes are usually four letters followed by four number. In the Ohbot software
go to settings, select sensors and enter the code. The example below shows the weather
code for Stroud in the UK.
Try this…
This block gives a number that is the temperature in Celsius for the selected
Location. Ohbot will say the temperature in Celsius as a number.
Make Ohbot decide what to
say depending on the
temperature
This block gives a number based on the weather from Yahoo:
13
Getting started with Ohbot V2
Unusual weather = 0
Snow = 1
Rain = 2
Cloudy = 3
Sun = 4
Make Ohbot decide what to say based on the value
of the weather variable.
See example ’14 weather’
15. Make Ohbot read a Wikipedia page This block will find a Wikipedia page with the title of the word
entered, in this case ‘robot’. It will then return streamed text of the
result. Drop it into a Say block and Ohbot will read the page.
Try this…
See example ’15 Make Ohbot read a Wikipedia page’
16. Make Ohbot smile and frown during speech We can use a variable and an if conditional to stop Ohbot’s mouth being set to the Top and Bottom lip
values and set it to smile or frown.
14
Getting started with Ohbot V2
Try this…
See example ’16 Expression while talking’
15
Getting started with Ohbot V2
17. Broadcast The broadcast block sends a message between blocks. Notice the difference between broadcast and
broadcast and wait. Broadcast will send the message and immediately move to the next block (in this case
say hello) . The Broadcast and wait will not move to the next block (say Hello) until the When I receive
sequence has completed (in this case the bat sound has played entirely).
Try this…
See example ’15 Make Ohbot read a Wikipedia page’