Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1 Lesson 13: Room Alarm
What you will need
• CloudProfessor (CPF)
• PIR (Motion) sensor
• RGB LED Light
• Arduino Leonardo
• Arduino Shield
• USB cable
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 explore ways to protect your home such as motion/sound activated alarms. Using a PIR sensor and
an RGB LED, students will write a program for a CloudProfessor powered intruder alarm.
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 13 Room Alarm
1
2 Lesson 13: Room Alarm
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 Android Shield into Arduino Leonardo and use the USB cable to connect the CloudProfessor with Arduino
Leonardo. Attach the PIR (motion) sensor to port D6 and the RGB LED light component to port D7.
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.
Step-by-step instructions (Blockly) 2
1
2
3
CPF Arduino app
Edit button
Execute button
Control user interface (UI) Program editing page
3 Lesson 13: Room Alarm
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
4 Lesson 13: Room Alarm
Step-by-step instructions (Blockly) - Part 1
Let’s write the code for our room alarm.
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. Later, we can change this message to display a
warning such as “Intruder detected”.
Click on ‘CPF UI’. Drag the ‘Title Name Panel Set’ block onto the empty canvas. Call your app ‘PIR Alarm’.
4. Next, we need to write the condition which checks to
see if the PIR has detected movement (PIR = 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 (4).
b). Click on the ‘logic’ tab. Drag the ‘=‘ block and attach
it to your ‘if’ block (5).
c). Click on the ‘CPF Devices’ tab. Select and drag the
‘Light Get Value’ block onto the first slot in your logic
block (6).
d). Click on the ‘Math’ tab. Drag the ‘0’ block onto the
second slot in your logic block. Change this value to a
’1’ (7).
5. Next, we need turn on the RGB LED when movement is detected. Click on the ‘CPF Devices’ tab. Select the ‘RGB LED
Setting colour with’ block and drag it into the empty ‘do’ slot. Change the colour to red (8).
4
3 1 2
4 5
6
7
8
5 Lesson 13: Room Alarm
Step-by-step instructions (Blockly) - Part 2
Let’s write the code for our room alarm.
6. Next, we need turn the RGB LED if no movement is detected.
a) Click the cog inside your if block. Drag an ‘else’ block inside the pop-up window. Click on the cog again to close
the pop-up window. (See image below).
b) Click on the ‘CPF Devices’ tab. Select the ‘RGB LED Setting colour with’ block and drag it into the empty ‘else’
slot. Change the colour to black (9).
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.
4
Modify your code so that the RGB LED flashes on and off red or a warning message is displayed in the UI
when motion is detected.
Your finished code should look like this.
9
6 Lesson 13: Room Alarm
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 PIR (motion) sensor to port D6 and the RGB LED light component to port D7.
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.
Step-by-step instructions (JavaScript) 2
1
2
3
CPF Arduino app
Edit button
Execute button
Control user interface (UI) Program editing page
7 Lesson 13: Room Alarm
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. 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.
5. ui.set(“content”, text);
The ui.set(“content”, text); statement, is used to display a message directly on the user interface UI.
3
8 Lesson 13: Room Alarm
Step-by-step instructions (JavaScript)
Let’s write the code for our room alarm.
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: //PIR Alarm
3. Next, we need to read the status of the PIR motion sensor and display the current status on the user interface (UI).
Click on line 3 and type in the following:
//Control Digital-in D6
var d6 = cpf.get(“socket d6”);
ui.set(“socket d6”, d6);
4. Next, let’s display a message on the user interface. Later, we can change this message to display a warning such as
“Intruder detected”. Click on line 7 and type in the following:
//Set Content
ui.set(“content”, “PIR Alarm”);
5. Next, we need to write the condition which checks to see if the PIR has detected movement (PIR = 1). 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(d6 == 1) {
}
6. Next, we need turn on the RGB LED when movement is
detected else leave the LED switched off. Click on line 11 and
type in the following:
cpf.set(“rgb led”, 255, 0, 0);
} else {
cpf.set(“rgb led”, 0, 0, 0);
7. Finally, we want the program to run until the user ends the
program. Click on line 24 and type the following:
cpf.repeat();
4
Modify your code so that the RGB LED flashes on and off red or a warning message is displayed in the UI
when motion is detected. Hint: ui.set(“content”, “Intruder detected”);
1
3
2
Your finished code should look like this.
9 Lesson 13: Room Alarm
Extension
Students to modify their code so that the RGB LED flashes when the PIR detects movement. Students can connect a buzzer
to port D5 and program the CloudProfessor to play an audible alarm when movement is detected (see lesson 16). Students
could also connect a sound sensor to make an ultimate intruder alarm.
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 explore how PIR (motion) sensors in school or at home and explain the benefits/drawbacks.
Links
How PIRs work: https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/how-pirs-work
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