Error: no such theme PatternSkinTheme

Difference: ExcoLab4 (1 vs. 6)

Revision 6
2013-04-03 - Main.KateIngersoll
Line: 1 to 1
 
META TOPICPARENT name="CSAndRobotsExco"

Set up (2 mins)

Line: 171 to 171
  Using your integer array, write a 'for' loop.

Using your string array, write a 'while' loop.
Added:
>
>

More commands for arrays, if you're interested:

http://docs.python.org/2/library/array.html
 

ROBOTS and loops (20 Min)

Possible exercises:
Line: 198 to 202
 

Link to You're Beautiful by James Blunt
Changed:
<
<
These are the notes you may need for thsong and the corresponding hertz values
<-- P { margin-bottom: 0.08in; } -->
>
>
These are the notes you may need for thsong and the corresponding hertz values
<-- P { margin-bottom: 0.08in; } -->
 

c: 277.18
Revision 5
2013-04-03 - Main.AdrianaHurley
Line: 1 to 1
 
META TOPICPARENT name="CSAndRobotsExco"

Set up (2 mins)

Line: 198 to 198
 

Link to You're Beautiful by James Blunt
Added:
>
>
These are the notes you may need for thsong and the corresponding hertz values
<-- P { margin-bottom: 0.08in; } -->

c: 277.18

c/b 554.37

Am: 440.00

F: 369.99

G: 392.00

Eb: 311.13

Bb: 466.16

Cm: 277.18

Ab: 415.30
  -- AdrianaHurley - 2013-04-03
Revision 4
2013-04-03 - Main.KateIngersoll
Line: 1 to 1
 
META TOPICPARENT name="CSAndRobotsExco"

Set up (2 mins)

Line: 173 to 173
  Using your string array, write a 'while' loop.

ROBOTS and loops (20 Min)

Changed:
<
<
Using the robot, try to loop through several movements. It may be easiest to declare a function, such as funky_groove, which has a list of pre-defined movements, and then have a loop for certain movements. You can use 'While' to dance forever, or use 'For' to dance for a limited amount of times.
>
>
Possible exercises:
 
Changed:
<
<
EXTREME EXERCISE: If you would like to, define several FUNctions and loop through the different dance functions to have a much longer complicated dance.

Looping through a song (20 Min)

For this exercise, try to accomplish the following:

Using a song template, have the robot 'sing'.

Use a loop within a loop to repeat certain parts of the song

Use a loop to repeat the entire song twice/thrice.

Tables of frequency/pitch: http://www.kvraudio.com/forum/printview.php?t=335552&start=0 and http://www.phy.mtu.edu/~suits/notefreqs.html

Link to You're Beautiful by James Blunt

Set up (2 mins)

This section includes directions on connecting to your robot, and should be review:
  1. Open the terminal
  2. Use cd and pwd to move into your exco directory
  3. Open a second terminal window (remember that you want one for the python shell and the other for regular terminal commands)
  4. In your new terminal, open the python shell by typing python
We will do the first half of lab just using the python shell. When we start to use the robots, you can connect to your robot as follows:
  1. Turn on your robot, and import the myro library in the python shell with from myro import *
  2. Connect to the robot with the command init("/dev/rfcomm0")

Pseudo Lecture: Arrays and Loops (20 mins)

Introduction to Arrays

An array is data structure (type of memory layout) that stores an ordered collection (i.e., a list) of values.

Introduction to Loops

<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
For loop: _For_ loops are traditionally used when you have a piece of code which you want to repeat _n_ number of times
for item in array []
     stuff();

<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
While: As an alternative, there is the [[http://wiki.python.org/moin/WhileLoop][WhileLoop]], however, _while_ is used when a condition is to be met, or if you want a piece of code to repeat forever

 =while True:=
=stuff()= 

Writing an Array (5-10 Min)

This is how to declare an empty array:

array[];
also_an_array[];
bunnies[];

In these examples, 'array', 'also_an_array', and 'bunnies' are the names of the arrays, and [] is the collection of things in the array (in this case, nothing).
If you want the array to hold values, you list them between the brackets:

bunnies['Lop', 'hare', 'chocolate']

Creating & Editing Arrays

For each command in this section, predict the code will do. Then, c/p the command into the terminal and observe the output. What happens? Can you explain what each command does?
 
>>> a = ['cat', 'dog', 'mouse']
>>> a
>>> a[0]
>>> a[1]
>>> a[2]

>>> a[0] = 'moose'
>>> a[1] = 4
>>> a[2] = "monkey"
>>> a[0] = 3*5

>>> a.append("cat")
>>> a.append("dog")
>>> a.append("cat")

>>> a.count("cat")
>>> a.count("dog")

>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)

>>> range(5)
>>> range(30)
>>> range(-1)
>>> range(0)

As you've hopefully seen, the elements within an array are stored in order, and you say "give me the second thing in array a" by writing "a[2]". For historical reasons, computer languages often use zero-indexing (meaning that they start counting with 0, not 1) So, in the array a['Kate', 'June', 'Ji Soo'], a[1] is 'June', not 'Kate'.

You can change a value in an array by direct assignment with '='. The command a[0] = 4 will turn the above array into [4, 'June', 'Ji Soo']. You can only use '=' to update an existing value, not to add new values. a[3] = 5 will return an error, because there's no value in space a[3]. If you want to add a new value, you will need to use 'append', which adds an element to the end of an array.

As you've noticed, arrays can be used to store all sorts of values; a single array can store strings, numbers, and other types of data. This is not true in all programming languages; in some, arrays must always store the same type (all strings, all integers, etc).

pop will remove the last thing on an array, and return it to the user.

range is a shorthand way to make an array of integers, counting up. It cannot be used with strings or other data types. As you shall see in the next section, ranges can be useful when writing loops in python.

Writing Loops (5-10 Min)

For each example in this section, predict what each for loop will do. Then, c/p the definition into the terminal and observe the output. What happened? What is the behavior of the loop?

For Loop example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 2, 'dimes', 3, 'quarters']

# this first kind of for-loop goes through a list
for number in the_count:
    print "This is count %d" % number

# same as above
for fruit in fruits:
    print "A fruit of type: %s" % fruit

# also we can go through mixed lists too
# notice we have to use %r since we don't know what's in it
for i in change:
    print "I got %r" % i

for i in range(14):
    print "I just wanted to do something 14 times!"
 

As you've hopefully seen, for-loops can be a useful way to do the same action for every element in an array. The syntax for a for-loop is:

for VARIABLE in ARRAY

BODY.

A for-loop will assign the variable VARIABLE to the first element in the array, execute the commands in the body of the for-loop, assign the variable to the second element in the array, and so on, until it's gone through the entire loop. For example, the loop

for x in [1, 2, 3]

print x
>
>
0.a) Write a loop to have the the robot play the following frequencies in order: [400, 500, 600, 700]
 
Changed:
<
<
Is equivalent to:

x = 1

print x

x = 2

print x

x = 3

print x

The for-loop is just a shorter way of writing these commands.

While Example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->

Run the following code:
temperature = 115  
while temperature > 112: 
    print(temperature)
    temperature = temperature - 1

>
>
0.b) Write a loop to have the robot play the last loop three times.
 
Changed:
<
<
print('The tea is cool enough.')

While-loops are similar to for-loops, except that, instead of iterating through an array, a while loop tests a condition to see whether it should loop again. So, in the example above, the while-loop is understood by the computer as follows:

"Is 115 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 114 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 113 > 112?" Yes. So, print temperature, and subtract 1 from temperature.
>
>
0.c) Adapt the your code from parts 0.a-0.b so that the robot beeps the frequencies [400, 500, 600, 700] at 1 sec each, then all the freq. again at 2 sec each, then again at 3 sec each.
 
Changed:
<
<
"Is 112 > 112?" No, so we're done.

Before going on to work with the robots, write your own arrays, for-loops, and while-loops to make sure you understand how they work. Some options:
>
>
1) Using the robot, try to loop through several movements, possibly from code you've already written for class.For example, if you wrote a "draw a square" function, write a loop to draw 5 squares, or to draw a square with the side-lengths given in the array [2, 4, 6, 8], for example. You can use 'While' to dance forever, or use 'For' to dance for a limited amount of times.
 
Changed:
<
<
Write an array with integers. Then try to get the number of a particular index.

Write an array with strings, then try to get the string of a particular index.

Using your integer array, write a 'for' loop.

Using your string array, write a 'while' loop.

ROBOTS and loops (20 Min)

Using the robot, try to loop through several movements. It may be easiest to declare a function, such as funky_groove, which has a list of pre-defined movements, and then have a loop for certain movements. You can use 'While' to dance forever, or use 'For' to dance for a limited amount of times.

EXTREME EXERCISE: If you would like to, define several FUNctions and loop through the different dance functions to have a much longer complicated dance.
>
>
EXTREME EXERCISE: If you would like to, define several FUNctions and have the robot loop through these different dance functions to have a much longer complicated dance.
 

Looping through a song (20 Min)

For this exercise, try to accomplish the following:
Line: 379 to 198
 

Link to You're Beautiful by James Blunt
Deleted:
<
<
http://www.e-chords.com/chords/james-blunt/youre-beautiful
  -- AdrianaHurley - 2013-04-03
Revision 3
2013-04-03 - Main.AdrianaHurley
Line: 1 to 1
 
META TOPICPARENT name="CSAndRobotsExco"

Set up (2 mins)

Line: 189 to 189
  Tables of frequency/pitch: http://www.kvraudio.com/forum/printview.php?t=335552&start=0 and http://www.phy.mtu.edu/~suits/notefreqs.html

Link to You're Beautiful by James Blunt
Added:
>
>

Set up (2 mins)

This section includes directions on connecting to your robot, and should be review:
  1. Open the terminal
  2. Use cd and pwd to move into your exco directory
  3. Open a second terminal window (remember that you want one for the python shell and the other for regular terminal commands)
  4. In your new terminal, open the python shell by typing python
We will do the first half of lab just using the python shell. When we start to use the robots, you can connect to your robot as follows:
  1. Turn on your robot, and import the myro library in the python shell with from myro import *
  2. Connect to the robot with the command init("/dev/rfcomm0")

Pseudo Lecture: Arrays and Loops (20 mins)

Introduction to Arrays

An array is data structure (type of memory layout) that stores an ordered collection (i.e., a list) of values.

Introduction to Loops

<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
For loop: _For_ loops are traditionally used when you have a piece of code which you want to repeat _n_ number of times
for item in array []
     stuff();

<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
While: As an alternative, there is the [[http://wiki.python.org/moin/WhileLoop][WhileLoop]], however, _while_ is used when a condition is to be met, or if you want a piece of code to repeat forever

 =while True:=
=stuff()= 

Writing an Array (5-10 Min)

This is how to declare an empty array:

array[];
also_an_array[];
bunnies[];

In these examples, 'array', 'also_an_array', and 'bunnies' are the names of the arrays, and [] is the collection of things in the array (in this case, nothing).
If you want the array to hold values, you list them between the brackets:

bunnies['Lop', 'hare', 'chocolate']

Creating & Editing Arrays

For each command in this section, predict the code will do. Then, c/p the command into the terminal and observe the output. What happens? Can you explain what each command does?
 
>>> a = ['cat', 'dog', 'mouse']
>>> a
>>> a[0]
>>> a[1]
>>> a[2]

>>> a[0] = 'moose'
>>> a[1] = 4
>>> a[2] = "monkey"
>>> a[0] = 3*5

>>> a.append("cat")
>>> a.append("dog")
>>> a.append("cat")

>>> a.count("cat")
>>> a.count("dog")

>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)

>>> range(5)
>>> range(30)
>>> range(-1)
>>> range(0)

As you've hopefully seen, the elements within an array are stored in order, and you say "give me the second thing in array a" by writing "a[2]". For historical reasons, computer languages often use zero-indexing (meaning that they start counting with 0, not 1) So, in the array a['Kate', 'June', 'Ji Soo'], a[1] is 'June', not 'Kate'.

You can change a value in an array by direct assignment with '='. The command a[0] = 4 will turn the above array into [4, 'June', 'Ji Soo']. You can only use '=' to update an existing value, not to add new values. a[3] = 5 will return an error, because there's no value in space a[3]. If you want to add a new value, you will need to use 'append', which adds an element to the end of an array.

As you've noticed, arrays can be used to store all sorts of values; a single array can store strings, numbers, and other types of data. This is not true in all programming languages; in some, arrays must always store the same type (all strings, all integers, etc).

pop will remove the last thing on an array, and return it to the user.

range is a shorthand way to make an array of integers, counting up. It cannot be used with strings or other data types. As you shall see in the next section, ranges can be useful when writing loops in python.

Writing Loops (5-10 Min)

For each example in this section, predict what each for loop will do. Then, c/p the definition into the terminal and observe the output. What happened? What is the behavior of the loop?

For Loop example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 2, 'dimes', 3, 'quarters']

# this first kind of for-loop goes through a list
for number in the_count:
    print "This is count %d" % number

# same as above
for fruit in fruits:
    print "A fruit of type: %s" % fruit

# also we can go through mixed lists too
# notice we have to use %r since we don't know what's in it
for i in change:
    print "I got %r" % i

for i in range(14):
    print "I just wanted to do something 14 times!"
 

As you've hopefully seen, for-loops can be a useful way to do the same action for every element in an array. The syntax for a for-loop is:

for VARIABLE in ARRAY

BODY.

A for-loop will assign the variable VARIABLE to the first element in the array, execute the commands in the body of the for-loop, assign the variable to the second element in the array, and so on, until it's gone through the entire loop. For example, the loop

for x in [1, 2, 3]

print x

Is equivalent to:

x = 1

print x

x = 2

print x

x = 3

print x

The for-loop is just a shorter way of writing these commands.

While Example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->

Run the following code:
temperature = 115  
while temperature > 112: 
    print(temperature)
    temperature = temperature - 1

print('The tea is cool enough.')

While-loops are similar to for-loops, except that, instead of iterating through an array, a while loop tests a condition to see whether it should loop again. So, in the example above, the while-loop is understood by the computer as follows:

"Is 115 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 114 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 113 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 112 > 112?" No, so we're done.

Before going on to work with the robots, write your own arrays, for-loops, and while-loops to make sure you understand how they work. Some options:

Write an array with integers. Then try to get the number of a particular index.

Write an array with strings, then try to get the string of a particular index.

Using your integer array, write a 'for' loop.

Using your string array, write a 'while' loop.

ROBOTS and loops (20 Min)

Using the robot, try to loop through several movements. It may be easiest to declare a function, such as funky_groove, which has a list of pre-defined movements, and then have a loop for certain movements. You can use 'While' to dance forever, or use 'For' to dance for a limited amount of times.

EXTREME EXERCISE: If you would like to, define several FUNctions and loop through the different dance functions to have a much longer complicated dance.

Looping through a song (20 Min)

For this exercise, try to accomplish the following:

Using a song template, have the robot 'sing'.

Use a loop within a loop to repeat certain parts of the song

Use a loop to repeat the entire song twice/thrice.

Tables of frequency/pitch: http://www.kvraudio.com/forum/printview.php?t=335552&start=0 and http://www.phy.mtu.edu/~suits/notefreqs.html

Link to You're Beautiful by James Blunt

http://www.e-chords.com/chords/james-blunt/youre-beautiful
 

-- AdrianaHurley - 2013-04-03
Revision 2
2013-04-03 - Main.KateIngersoll
Line: 1 to 1
 
META TOPICPARENT name="CSAndRobotsExco"

Set up (2 mins)

Line: 7 to 7
 
  1. Use cd and pwd to move into your exco directory
  2. Open a second terminal window (remember that you want one for the python shell and the other for regular terminal commands)
  3. In your new terminal, open the python shell by typing python
Added:
>
>
We will do the first half of lab just using the python shell. When we start to use the robots, you can connect to your robot as follows:
 
  1. Turn on your robot, and import the myro library in the python shell with from myro import *
Changed:
<
<
  1. Connect to the robot with the command init("/dev/rfcomm0") // This won't be necessary initially
>
>
  1. Connect to the robot with the command init("/dev/rfcomm0")
 

Pseudo Lecture: Arrays and Loops (20 mins)

Introduction to Arrays

Changed:
<
<
An array is data structure (type of memory layout) that stores a collection of individual values that are of the same data type.
>
>
An array is data structure (type of memory layout) that stores an ordered collection (i.e., a list) of values.
 

Introduction to Loops

Line: 39 to 40
  also_an_array[]; bunnies[];
Changed:
<
<
The [] brackets indicate that you are declaring an array with the __name__[]

To declare an array with things in it you just fill it in:
>
>
In these examples, 'array', 'also_an_array', and 'bunnies' are the names of the arrays, and [] is the collection of things in the array (in this case, nothing). If you want the array to hold values, you list them between the brackets:
 

bunnies['Lop', 'hare', 'chocolate']
Added:
>
>

Creating & Editing Arrays

For each command in this section, predict the code will do. Then, c/p the command into the terminal and observe the output. What happens? Can you explain what each command does?
 
>>> a = ['cat', 'dog', 'mouse']
>>> a
>>> a[0]
>>> a[1]
>>> a[2]

>>> a[0] = 'moose'
>>> a[1] = 4
>>> a[2] = "monkey"
>>> a[0] = 3*5

>>> a.append("cat")
>>> a.append("dog")
>>> a.append("cat")

>>> a.count("cat")
>>> a.count("dog")

>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)
>>> a.pop(0)

>>> range(5)
>>> range(30)
>>> range(-1)
>>> range(0)

As you've hopefully seen, the elements within an array are stored in order, and you say "give me the second thing in array a" by writing "a[2]". For historical reasons, computer languages often use zero-indexing (meaning that they start counting with 0, not 1) So, in the array a['Kate', 'June', 'Ji Soo'], a[1] is 'June', not 'Kate'.

You can change a value in an array by direct assignment with '='. The command a[0] = 4 will turn the above array into [4, 'June', 'Ji Soo']. You can only use '=' to update an existing value, not to add new values. a[3] = 5 will return an error, because there's no value in space a[3]. If you want to add a new value, you will need to use 'append', which adds an element to the end of an array.

As you've noticed, arrays can be used to store all sorts of values; a single array can store strings, numbers, and other types of data. This is not true in all programming languages; in some, arrays must always store the same type (all strings, all integers, etc).

pop will remove the last thing on an array, and return it to the user.

range is a shorthand way to make an array of integers, counting up. It cannot be used with strings or other data types. As you shall see in the next section, ranges can be useful when writing loops in python.
 

Writing Loops (5-10 Min)

Added:
>
>
For each example in this section, predict what each for loop will do. Then, c/p the definition into the terminal and observe the output. What happened? What is the behavior of the loop?
  For Loop example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']

Line: 64 to 108
  # also we can go through mixed lists too # notice we have to use %r since we don't know what's in it for i in change:
Changed:
<
<
print "I got %r" % i
>
>
print "I got %r" % i

for i in range(14): print "I just wanted to do something 14 times!"

As you've hopefully seen, for-loops can be a useful way to do the same action for every element in an array. The syntax for a for-loop is:

for VARIABLE in ARRAY

BODY.

A for-loop will assign the variable VARIABLE to the first element in the array, execute the commands in the body of the for-loop, assign the variable to the second element in the array, and so on, until it's gone through the entire loop. For example, the loop

for x in [1, 2, 3]

print x

Is equivalent to:

x = 1

print x

x = 2

print x

x = 3

print x

The for-loop is just a shorter way of writing these commands.
 

While Example:
<-- PRE.ctl { font-family: "BABEL Unicode",monospace; }P { margin-bottom: 0.08in; }A:link { } -->
Added:
>
>

Run the following code:
 
temperature = 115  
while temperature > 112: 
    print(temperature)

Line: 74 to 152
 

print('The tea is cool enough.')
Changed:
<
<
Exercises:
>
>
While-loops are similar to for-loops, except that, instead of iterating through an array, a while loop tests a condition to see whether it should loop again. So, in the example above, the while-loop is understood by the computer as follows:

"Is 115 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 114 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 113 > 112?" Yes. So, print temperature, and subtract 1 from temperature.

"Is 112 > 112?" No, so we're done.

Before going on to work with the robots, write your own arrays, for-loops, and while-loops to make sure you understand how they work. Some options:
 

Write an array with integers. Then try to get the number of a particular index.
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback