idle and myro

22
CS 1 with Robots IDLE and Myro Institute for Personal Robots in Education (IPRE)

Upload: heather-cox

Post on 31-Dec-2015

56 views

Category:

Documents


0 download

DESCRIPTION

IDLE and Myro. Institute for Personal Robots in Education (IPRE) ‏. Starting IDLE and Myro. IDLE is the development environment ( I ntegrated D eve L opment E nvironment) provided with python. With IDLE, you can: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IDLE and Myro

CS 1 with Robots

IDLE and Myro

Institute for Personal Robots in Education

(IPRE)

Page 2: IDLE and Myro

Aug 20 2007 2

Starting IDLE and Myro

IDLE is the development environment (Integrated DeveLopment Environment) provided with python. With IDLE, you can:

Load, edit and save text files that contain programs. When a text file contains a python program, you should save it with a .py extension (instead of .txt) to indicate that it contains a python program.Type python statements interactively

When you installed Myro, it installed a “StartPython” icon on your desktop. Double-click this icon to start the IDLE window.

Page 3: IDLE and Myro

Aug 20 2007 3

The IDLE Window

Notice the three arrow brackets? (>>>) This is the python “prompt”. You can type commands at the prompt and the python interpretor will execute them.

Page 4: IDLE and Myro

Aug 20 2007 4

Loading the Myro module

Type from myro import * at the prompt. This command loads everything at the prompt. This command loads everything from the Myro module. from the Myro module.

Page 5: IDLE and Myro

Aug 20 2007 5

Initializing the Robot – Finding your COM port

Once you have the Myro module loaded, you have to tell it which communication port (COM port) your robot is attached to. If you have not yet set up a Bluetooth connection with your robot, do so now.When you set up the Bluetooth connection, your operating system will tell you what COM port to use. With windows, you will look for an “Outgoing COM port” number, and will look something like: COM5On MacOSX or Linux the COM port may look like this: /dev/tty.COM5 or /dev/rfcomm0

Page 6: IDLE and Myro

Aug 20 2007 6

Initializing the Robot – init() or initialize()

If you type init() Myro will pop up a window asking for the name of your communications port (COM5 in this example).

You may also use the longer version: initialize()

Page 7: IDLE and Myro

Aug 20 2007 7

Your first function call!

When you typed init() at the prompt, you were calling a function that has the name init.A function call is simply the name of a function followed by an open and close parenthesis.

Another example: getName()Functions can also accept data (called parameters) between the open and close parenthesis. For example, you can give the init function a string containing the name of your communications port like this:init(“COM5”)

Page 8: IDLE and Myro

Aug 20 2007 8

Adding a parameter to init()

If you include the name of the communications port as a parameter:init(“COM5”) or init(“/dev/rfcomm1”) (depending upon the name of your communications port)Myro will not pop up a window to ask you for the name.

Page 9: IDLE and Myro

Aug 20 2007 9

What is your robot's name?

By default, your robots name is “Scribby”.When you connect to your robot using the init() function call, Myro lists the version number of the software your robot is running, and it's name

You can retrieve your robot's name at any time by calling the getName() function, which returns a string containing your robots current name.

>>> getName()'Scribby'

Page 10: IDLE and Myro

Aug 20 2007 10

Changing your robot's name

You can change your robots name by using the setName() function.Unlike the initialize() and getName() functions, the setName() function requires a parameter. You must include a string that is the new name for your robot:>>>setName(“newName”)>>>After you change the robot's name, you can use the getName() function again to see the new name:>>>getName()'newName'

Page 11: IDLE and Myro

Aug 20 2007 11

Driving your robot around!

Myro includes a function called joyStick() that lets you drive your robot around. When you call the joyStick() function, it opens up a window with a circle. By clicking inside the circle with your mouse, you can move your robot forward, backwards, or direct it to turn left or right.

Page 12: IDLE and Myro

Aug 20 2007 12

Driving your robot around!

By clicking near the Forward label, you will cause your robot to move forward at full speed.

An arrow indicates the direction your robot is traveling.

If you move your mouse pointer to the left or right the robot will also turn in that direction while moving forward.

Page 13: IDLE and Myro

Aug 20 2007 13

Optional: Using a USB gamepad!

If you have a USB Gamepad connected to your computer, you can use it to direct your robot.Instead of calling the joyStick() function, try calling the gamepad() function.In addition to driving the robot around with the four-way controller, your gamepad buttons will make the robot beep, speak, and take pictures!

>>>gamepad()>>>

Page 14: IDLE and Myro

Aug 20 2007 14

Taking a Picture!

The takePicture() function will take a picture (using the camera on your robot) and return it.However, IDLE doesn't know how to show a picture, so you have to use the show() function to show the picture.Try this:>>> p = takePicture()>>> show( p )>>>

Page 15: IDLE and Myro

Aug 20 2007 15

Your first Variable!

You did something interesting when you typed:>>> p = takePicture()>>> show( p )You created a Variable named p, and you stored a picture in it.On the second line, you gave the variable (p) to the show() function as a parameter.A variable is a name (in this case, the letter p) that can point to a value.The single equal sign (=) is used to point a variable to a value.

Page 16: IDLE and Myro

Aug 20 2007 16

More examples with Variables

The print command will print the value that a variable points to.Try this:>>> myVariable = 5>>> print myVariable5

You can change what a variable points to by using the single equal sign again.>>> myVariable = 10>>> print myVariable10

Page 17: IDLE and Myro

Aug 20 2007 17

Advanced tricks with functions

In this code, we use the variable p to point to the picture that is returned by the takePicture() function:>>> p = takePicture()>>> show( p )We do not need to use a variable to point to the picture. Instead, we could do the following trick:>>> show( takePicture() )We are calling one function (takePicture) and using the picture that it returns as the parameter to another function (show) all on one line.Although this is more compact, using a variable to temporarily point at the picture makes the previous example easier to read and understand.

Page 18: IDLE and Myro

Aug 20 2007 18

More functions to control your robot

You can make your robot move by using functions!Many of the following functions take parameters that specify a speed (for the motors) and a length of time (the duration).

The possible range of speeds go from zero to one (0 is stopped, and 1 is full speed).The duration is measured in seconds.

The forward( speed, duration) function can be used like this:

Move the robot forward at full speed for one second:>>> forward(1,1)Move the robot forward at half speed for two seconds:>>> forward(0.5, 2)

Page 19: IDLE and Myro

Aug 20 2007 19

Making a Program!

You can combine several function calls together into one file to create a Python program.Use the File->New menu to open a new window in IDLEType in a few commands:forward(1,1)turnRight(1,1)forward(1,1)turnRight(1,1)Now, save the file as dance.py using the File->Save menu command.You can run these commands by using the Run->Run Module command, or by pressing F5.

Page 20: IDLE and Myro

Aug 20 2007 20

Running the Dance.py Program

Page 21: IDLE and Myro

Aug 20 2007 21

Other Functions:

Look at the Myro Reference Manual to learn about other functions you can use.Here are a few of our favorites:

forward(speed,duration)backward(speed,duration)turnLeft(speed,duration)turnRight(speed,duration)beep(duration, frequency) – Try a frequency of 440 to start! If the frequency is too low (under ~300) or too high (over ~10,000) you won't be able to hear it.

Page 22: IDLE and Myro

Aug 20 2007 22

Some details...

If you have already imported the myro module and initialized your robot in the idle window, you should not need to include the startup commands in your programs:from myro import *init()However, if you double click on the program file instead of the StartPython icon, you may need to include those commands at the beginning of your program to make it work.Although you can double-click on any file with a .py extension to start IDLE, you should not! Instead, always open the IDLE window with the StartPython link, and then use the FILE->Open menu to open your code.