Please enable JavaScript to use CodeHS


Introduction to Physical Computing with Arduino

Lessons

  1. Intro to Arduino

    1. 1.1 Welcome to Arduino!

    2. Description

      In this first lesson, students will be introduced to Tinkercad, where they will build and test programs throughout the course. They will also do preliminary research on various Arduino example projects and set their goals for the course.

    3. Objective

      Students will be able to:

      • Articulate what physical computing is
      • Use Tinkercad to create a virtual circuit using various components
    4. 1.2 Setting Up your Arduino

    5. Description

      In this lesson, students will take a deeper look at developing, testing, and running programs on Tinkercad. They will learn how to write and run programs on the simulator and will develop their own programs using the delay and digitalWrite commands.

    6. Objective

      Students will be able to:

      • Develop, test, and run programs on the Arduino simulator on Tinkercad
      • Use the digitalWrite and delay commands in Arduino programs
    7. 1.3 Comments & Pseudocode

    8. Description

      In this lesson, students will learn about comments and pseudocode, why they are important, and how they help organize and plan programs. They will also learn the basic difference between analog and digital components and how to use the analogWrite command in their programs.

    9. Objective

      Students will be able to:

      • Use comments to write more readable programs
      • Develop pseudocode in order to properly plan and organize their programs
      • Articulate the difference between analog and digital devices
      • Use the analogWrite command in Arduino programs
    10. 1.4 Variables

    11. Description

      In this lesson, students will build their first physical circuit using a breadboard with their Arduino devices. They will learn to use variables to control components, along with the analogRead and map commands.

    12. Objective

      Students will be able to:

      • Articulate what a variable is and why they are used and assign and utilize variable in their programs
      • Create a simple circuit using their Arduino device and a breadboard
      • Control an LED by using the analogRead and map commands in Arduino programs
    13. 1.5 Debugging

    14. Description

      In this lesson, students will learn some tips and tricks for debugging physical circuits. They will learn to use the Serial Monitor and the print and println commands to display values on their screen.

    15. Objective

      Students will be able to:

      • Follow a step-by-step process to debug their programs
      • Use the Serial Monitor to debug programs by reading the values of components
    16. 1.6 Intro to Arduino Quiz

    17. Description

      In this lesson, students review content with a 15 question Unit Quiz.

    18. Objective

      Students will be able to:

      • Prove their knowledge of basic coding concepts through a multiple choice quiz
  2. Program Control with Arduino

    1. 2.1 Loops

    2. Description

      In this lesson, students will connect and control a servo motor using their Arduino device. They will learn to use for and while loops to control components, along with the write command from the Servo library.

    3. Objective

      Students will be able to:

      • Use for and while loops to control the flow of their programs
      • Control a servo motor by using the Servo library and the write command in Arduino programs
      • Understand why and how libraries are used in Arduino programs
    4. 2.2 If/Else Statements

    5. Description

      In this lesson, students will learn how buttons can be used to allow for additional user input in their programs. They will learn to use conditionals to control components, along with the digitalRead command.

    6. Objective

      Students will be able to:

      • Use conditionals to control the flow of their programs
      • Control components by using buttons and the digitalRead command in Arduino programs
    7. 2.3 Arithmetic, Comparison, and Logical Operators

    8. Description

      In this lesson, students will learn about sensors and why they are so important in physical computing. They will use an ultrasonic range finder to detect attributes of the Arduino’s environment and write programs that will make decisions based on these values.

    9. Objective

      Students will be able to:

      • Use operators inside conditionals to control the flow of their programs
      • Use the value of an ultrasonic range finder to control commands in Arduino programs
    10. 2.4 Functions

    11. Description

      In this lesson, students will learn about sensors and why they are so important in physical computing. They will use various internal sensors to detect attributes of the Arduino’s environment and write programs that will use functions with and without parameters to more clearly organize their code and make it more reusable.

    12. Objective

      Students will be able to:

      • Use functions with and without parameters to create more organized and reusable programs
      • Use various sensors to gather information about the environment and control components in their Arduino programs
    13. 2.5 Using Motors

    14. Description

      In this lesson, students will learn how motor controllers can be used in their circuits to control DC motors. They will explore the different ways to control the direction and speed of motors in their programs, setting them up to use this very adaptable component in many future programs.

    15. Objective

      Students will be able to:

      • Use motors and motor controllers in their circuits
      • Apply commands they are familiar with to control motors
    16. 2.6 Program Control with Arduino Quiz

    17. Description

      In this lesson, students review content with a 15 question Unit Quiz.

    18. Objective

      Students will be able to:

      • Prove their knowledge of basic coding concepts through a multiple choice quiz
  3. Advanced Arduino

    1. 3.1 Arduino Challenges

    2. Description

      In this lesson, students will learn build complex circuits with LCD screens. They will experiment with the millis command to count time and will use all of the concepts they?ve learned up to this point to complete their first larger projects- a digital watch and an elevator.

    3. Objective

      Students will be able to:

      • Use control structures to develop readable, concise, and effective programs
      • Control LCD screens to display information
      • Use the millis command to count time without pausing the program
    4. 3.2 Explore a New Sensor

    5. Description

      In this lesson, students will research, develop, and present a lesson to their peers on the use of a new sensor with their Arduino devices.

    6. Objective

      Students will be able to:

      • Research how to use a new sensor with their Arduino devices
      • Develop and present a lesson to their peers instructing them on how to use a new sensor in their programs
    7. 3.3 Step-by-Step Arduino Project

    8. Description

      Students will get a chance to follow instructions written by someone they’ve never met to replicate a project in this lesson. They will then evaluate and improve these directions to make them more effective for a target audience.

    9. Objective

      Students will be able to:

      • Follow step-by-step instructions to build complex circuits using breadboards
      • Evaluate the clarity and effectiveness of given instructions
      • Improve directions to more effectively serve a specific audience
    10. 3.4 Final Project

    11. Description

      In this final lesson, students will put together all of the concepts learned throughout the course to create a project of their choice. They will work individually, or with partners or groups to creatively develop a program of their choosing.

    12. Objective

      Students will be able to:

      • Synthesize concepts and skills learned in the course to create their own final project
      • Scope their project (eliminate features that aren?t necessary) so that it fits in the timeframe allotted
      • Present their project to their classmates and talk about how the project was developed