9
1 Lesson 15: CPF Theremin/guitar What you will need CloudProfessor (CPF) Buzzer Light sensor Arduino Leonardo Android Shield USB lead Learning Expectaons (how learning / progress will be demonstrated) All Use sequences of instrucons. Most Explain how their app works. Some Use logical reasoning to detect errors in their algorithms. Learning Objecves Design and create an app which uses sequence, selecon, repeon and variables. Program, debug and refine the code for their app. Understand and use selecon in an algorithm (IF, Else and Else if) Overview In this lesson, students will explore how to generate sounds with a buzzer connected to the CloudProfessor. Students will use what they have learnt to create a Theremin like device or air guitarwhich plays sounds based on the readings taken from a light sensor aached to the CloudProfessor. Curriculum Links (Compung PoS) Designs simple algorithms using loops, and selecon i.e. if statements. (AL) Uses logical reasoning to predict outcomes. (AL) Detects and corrects errors i.e. debugging, in algorithms. (AL) Creates programs that implement algorithms to achieve given goals. (AL) Understands that programming bridges the gap between algorithmic soluons and computers. (AB) Computaonal Thinking Concepts: AB = Abstracon; DE = Decomposion; AL = Algorithmic Thinking; EV = Evaluaon; GE = Generalisaon. Lesson 15 CPF Theremin/guitar 1

Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

1 Lesson 15: CPF Theremin/guitar

What you will need

• CloudProfessor (CPF)

• Buzzer

• Light sensor

• Arduino Leonardo

• Android Shield

• USB lead

Learning Expectations (how learning / progress will be demonstrated)

All Use sequences of instructions.

Most Explain how their app works.

Some Use logical reasoning to detect errors in their algorithms.

Learning Objectives

Design and create an app which uses sequence, selection, repetition and variables.

Program, debug and refine the code for their app.

Understand and use selection in an algorithm (IF, Else and Else if)

Overview

In this lesson, students will explore how to generate sounds with a buzzer connected to the CloudProfessor. Students will

use what they have learnt to create a Theremin like device or ‘air guitar’ which plays sounds based on the readings taken

from a light sensor attached to the CloudProfessor.

Curriculum Links (Computing PoS)

Designs simple algorithms using loops, and selection i.e. if statements. (AL)

Uses logical reasoning to predict outcomes. (AL) Detects and corrects errors i.e. debugging, in algorithms. (AL)

Creates programs that implement algorithms to achieve given goals. (AL)

Understands that programming bridges the gap between algorithmic solutions and computers. (AB)

Computational Thinking Concepts: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation;

GE = Generalisation.

Lesson 15 CPF Theremin/guitar

1

Page 2: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

2 Lesson 15: CPF Theremin/guitar

1. Connect the power of CloudProfessor then press and hold the power button for two seconds; it will turn on and the

power indicator will light up.

2. Insert the Arduino Shield into Arduino Leonardo and use the USB cable to connect the CloudProfessor with Arduino

Leonardo. Attach the buzzer to port D5 and the light sensor to port A0.

3. When the CloudProfessor detects the Arduino Leonardo, a notification will appear on your device; click the

notification to launch the Arduino Leonardo APP, and select the CPF Arduino Blockly app. Click on Lesson 9.

4. Press the execute button to enter the control user interface (UI).

5. Press the edit button to enter the program editing page.

Setup instructions (Blockly) 2

1

2

3

Edit button

Execute button

CPF Arduino app Control user interface (UI) Program editing page

Page 3: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

3 Lesson 15: CPF Theremin/guitar

Code recap (Blockly)

Let’s explore some of the code used in the previous lessons.

1. Light Get Value:

The Light Get Value block returns the value of the light sensor (Returns a numeric value

based on the brightness level of the environment).

2. RGB LED Setting colour with:

The RGB LED Setting colour with block sets the colour of

the attached RGB LED.

The colour can be either set manually (2) or controlled

by the program UI (1).

3. If / else:

The if / else block is used to conditionally run code

depending on whether a Boolean condition is true or

false.

In this example, if the light sensor value is less than (<)

500, the RGB LED light will light up; or else (else), if the

light sensor value is greater than or equal to 500, the

RGB LED light will automatically turn off.

4. Title Name Panel Set:

The Title Name Panel Set block displays a message on the screen. In this

example it will display a “Downloading…” message on the UI (User Interface).

5. Delay Time(Sec.):

The Delay Time(Sec.) block is used to pause the code (time set in milliseconds). In the example above, the

program is paused for 1000 milliseconds (1 second).

6. Set CPF control request:

Finally, the Set CPF control request block at the end of the program tells the program to run the code from the

beginning again. The program will continuously repeat until the user closes the app or stops the program manually.

3

1

2

Page 4: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

4 Lesson 15: CPF Theremin/guitar

Step-by-step instructions (Blockly) - Part 1

Let’s write the code for our Theremin/air guitar.

1. Clear the existing code so that you have a blank canvas to create your new program. Click on the bin icon (1). Click

on ‘OK’ (2) to create a blank canvas.

2. Note: You can return to the original program at any time by clicking on

the restore icon (3).

3. First, let’s give our app a title.

Click on ‘CPF UI’. Drag the ‘Title Name Panel Set’ block onto the empty

canvas. Call your app ‘CPF Theremin’.

4. Next, we need to check the status of button d5 in the user interface (UI). We will use this button to turn on and off

your Theremin.

a) Click on the ‘Variables’ tab. Drag the ‘Set item to’

block and attach it to the Title block. Rename the

new variable to ‘d5’ (4).

b) Click on the ‘CPF UI’ tab. Select and drag the ‘Get

control panel value’ block and attach it to ‘d5’.

From the drop down menu, select ‘d5’ (5).

5. Next, we need to write the condition which checks to see if button d5 is activated (d5 = 1). For this, we will use an IF

statement.

a) Click on the ’Logic’ tab. Drag

the ‘if do’ block and attach it to

the end of your code (6).

b) Click on the ‘logic’ tab. Drag

the ‘=‘ block and attach it to

your ‘if’ block (7).

c) Click on the ‘Variables’ tab.

Select and drag the ‘d5’ block

onto the first slot in your logic

block (8).

d) Click on the ‘Math’ tab. Drag the ‘0’ block onto the second slot in your logic block. Change this value to a ’1’ (9).

4

3 1 2

5

4

7 6

9 8

Page 5: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

5 Lesson 15: CPF Theremin/guitar

Step-by-step instructions (Blockly) - Part 2

6. Next, we need to take a reading from the light sensor (a0) and use it to play a tone on our buzzer. The

syntax for playing a tone.

a) Click on the ‘Output Devices’ tab. Select ‘Sound & Light’. Drag the

’tone/speaker Pint# (with frequency & duration)’ block and place it

inside the if statement (10).

b) Click on the ‘CPF Devices’ tab. Select and drag the ‘Light

Get Value’ block and attach it to ‘frequency’ (11).

c) Click on duration and change the value from 300 to ‘0’ (12).

7. Finally, we want the program to run continuously until the user ends the program.

Select the ‘CPF Devices’ tab. Click and drag the ‘Set CPF control repeat block and

attach it to the end of your code.

8. Run your code. Press the toggle switch for port d5 and move your hand over the light sensor to hear your melody.

4

Try changing the duration or adding a pause after line 11 to see what affect this has on your melody. What

other sensor do you think might work with this?

Your finished code should look like this.

10

11

12

Page 6: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

6 Lesson 15: CPF Theremin/guitar

1. Connect the power of CloudProfessor then press and hold the power button for two seconds; it will turn on and the

power indicator will light up.

2. Insert the Arduino Shield into Arduino Leonardo and use the USB cable to connect the CloudProfessor with Arduino

Leonardo. Attach the buzzer to port D5 and the light sensor to port A0.

3. When the CloudProfessor detects the Arduino Leonardo, a notification will appear on your device; click the

notification to launch the Arduino Leonardo APP, and select the CPF Arduino app. Click on Socket Mode.

4. Press the execute button to enter the control user interface (UI).

5. Press the edit button to enter the program editing page.

Setup instructions (JavaScript) 2

1

2

3

CPF Arduino app

Edit button

Execute button

Control user interface (UI) Program editing page

Page 7: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

7 Lesson 15: CPF Theremin/guitar

Code recap (JavaScript)

Let’s explore some of the code used in the previous lessons.

1. cpf.get(“light sensor”);

The cpf.get(“light sensor”); statement returns the value of the light sensor . (Returns a

numeric value based on the brightness level of the environment) and stores it in a

variable called value. ui.set(“light sensor”, value); reads the value taken from the light

sensor and displays it in the program control Interface (UI).

2. cpf.set(“rgb led”, 0, 0, 0);

The cpf.set(“rgb led”, r, g, b); statement sets the colour of the attached RGB LED.

3. If / else:

The if / else statement is used to conditionally run code

depending on whether a Boolean condition is true or false.

In this example from lesson 1, if the light sensor value is less than (<) 500, the

RGB LED light will light up (based on the values taken from the UI); or else

(else), if the light sensor value is greater than (>) 500, the RGB LED light will

automatically turn off: cpf.set(“rgb led”, 0, 0, 0);

4. Math.random()

Through Math.random(), a random number between 0 and 0.999999 is generated. If we want to generate a whole

number in a range such as 1—255 we first need to multiply the result of the random function by 255 and then

round the result to produce a whole number e.g.,

5. cpf.sleep(1000);

The cpf.sleep(1000); statement is used to pause the code (time set in milliseconds). In the example above, the

program is paused for 1000 milliseconds (1 second).

6. Set CPF control request:

Finally, the cpf.repeat(); statement, usually found at the end of the program, tells the program to run the code from

the beginning again. The program will continuously repeat until the user closes the app or stops the program

manually.

3

Page 8: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

8 Lesson 15: CPF Theremin/guitar

Step-by-step instructions (JavaScript)

Let’s write the code for our Theremin/air guitar.

1. Clear the existing code so that you have a blank canvas to create your new program. Press and hold on a selection

of code and click on ’Select all’ (1). Click on ‘Cut’ (2) to create a blank canvas (3).

Note: You can return to the original

program at any time by clicking on

the restore icon in the Save/load

menu.

2. First, let’s give our new script a name. Click on line 1 and type in the following: //CPF Theremin

3. Next, we need to take a reading from the light sensor and display the reading on the user interface (UI). Click on line

3 and type the following:

//Light sensor

var a0 = cpf.get(“socket a0”);

ui.set(“socket a0”, a0);

4. We also need to read the status of the toggle switch for port D5 in the UI. When the switch is ON (1) the Theremin/

air guitar will be activated. Click on line 3 and type the following:

//Buzzer

var d5 = ui.get(“socket d5”);

5. Next, we need to write the condition which checks to see if the toggle switch for port D5 is activated and, if so, plays

a tone based on the light sensor reading. For this we will use an IF statement. Click on line 10 and type in the

following (making sure you leave a blank line on line 11):

if(d5 == 1) {

}

6. Next, we need to take a reading from the light sensor

(a0) and use it to play a tone on our buzzer. The

syntax for playing a tone is cpf.set(socket, frequency,

duration). Click on line 11 and type in the following:

cpf.set(“socket d5”, a0, 0);

7. Finally, let’s run the code until the user ends the

program. Click on line 24 and type the following:

cpf.repeat();

4

Try changing the duration or adding a pause after line 11 to see what affect this has on your melody. What

other sensor do you think might work with this?

Your finished code should look like this.

1

3

2

Page 9: Lesson 15 - Acer for Education5 Lesson 15: CPF Theremin/guitar Step-by-step instructions (lockly) - Part 2 6. Next, we need to take a reading from the light sensor (a0) and use it

9 Lesson 15: CPF Theremin/guitar

Extension

Students to add a button (see lesson 14) that multiplies the frequency and changes the tone or add an RGB LED that

changes colour in response to the change of frequency.

Students could also build an ‘air guitar’ out of card and attach the CloudProfessor sensors to it.

Differentiation

To support students, provide step by step guides.

To stretch students ask them to create a flowchart / pseudocode of their code first or code their solution using JavaScript.

Homework

Students to write up a summary of what they’ve learned; students to include screenshots and snippets of their code in

their summary.

Students to comment their code to explain how it works.

Links

Theremin (Wikipedia): https://en.wikipedia.org/wiki/Theremin

Disclaimer: Use these sites at your own risk. Acer is not responsible for the content of external Internet sites. We

recommend that you check the suitability of any recommended websites links before giving them to students.

5

6

7

8