Part of: Inquiry Science with Dartmouth

Similar documents
Students will design, program, and build a robot vehicle to traverse a maze in 30 seconds without touching any sidewalls or going out of bounds.

C - Underground Exploration

A servo is an electric motor that takes in a pulse width modulated signal that controls direction and speed. A servo has three leads:

A - Debris on the Track

Mechatronics Engineering and Automation Faculty of Engineering, Ain Shams University MCT-151, Spring 2015 Lab-4: Electric Actuators

Programming 2 Servos. Learn to connect and write code to control two servos.

Roborodentia Robot: Tektronix. Sean Yap Advisor: John Seng California Polytechnic State University, San Luis Obispo June 8th, 2016

Robo Golf. Team 9 Juan Quiroz Vincent Ravera. CPE 470/670 Autonomous Mobile Robots. Friday, December 16, 2005

A - Debris on the Track

A - Debris on the Track

Boe-Bot robot manual

CURIE Academy, Summer 2014 Lab 2: Computer Engineering Software Perspective Sign-Off Sheet

Experiment 4.B. Position Control. ECEN 2270 Electronics Design Laboratory 1

Lesson4 Obstacle avoidance car

A Day in the Life CTE Enrichment Grades 3-5 mblock Programs Using the Sensors

I.1 Smart Machines. Unit Overview:

Gears and Speed Constant Distance Worksheet

Pre-Activity Quiz. 2 feet forward in a straight line? 1. What is a design challenge? 2. How do you program a robot to move

Total Hours Registration through Website or for further details please visit (Refer Upcoming Events Section)

TETRIX PULSE Workshop Guide

Robot Programming Manual

ICTCM 28th International Conference on Technology in Collegiate Mathematics

GE423 Laboratory Assignment 6 Robot Sensors and Wall-Following

Mindstorms NXT. mindstorms.lego.com

Wireless Technology in Robotics

Setup Download the Arduino library (link) for Processing and the Lab 12 sketches (link).

Lab 06: Ohm s Law and Servo Motor Control

MADISON PUBLIC SCHOOL DISTRICT. GRADE 7 Robotics Cycle

Automatic Headlights

Erik Von Burg Mesa Public Schools Gifted and Talented Program Johnson Elementary School

Robotics using Lego Mindstorms EV3 (Intermediate)

Autonomous Aerial Robot Tournament KISS Institute for Practical Robotics

Arduino Control of Tetrix Prizm Robotics. Motors and Servos Introduction to Robotics and Engineering Marist School

Implement a Robot for the Trinity College Fire Fighting Robot Competition.

MAKER: Development of Smart Mobile Robot System to Help Middle School Students Learn about Robot Perception

University of Florida. Department of Electrical Engineering EEL5666. Intelligent Machine Design Laboratory. Doc Bloc. Larry Brock.

Activity 2 Wave the Flag. Student Guide. Activity Overview. Robotics Jargon. Materials Needed. Building the Robot

Activity 2 Wave the Flag. Student Guide. Activity Overview. Robotics Jargon. Materials Needed. Building the Robot

Instructors. Manual GEARED. After-School Robotics Program By Haley Hanson

Line Detection. Duration Minutes. Di culty Intermediate. Learning Objectives Students will:

FABO ACADEMY X ELECTRONIC DESIGN

Vishnu Nath. Usage of computer vision and humanoid robotics to create autonomous robots. (Ximea Currera RL04C Camera Kit)

Wheeled Mobile Robot Obstacle Avoidance Using Compass and Ultrasonic

Tilt Sensor Maze Game

Lab book. Exploring Robotics (CORC3303)

CONSTRUCTION GUIDE Capacitor, Transistor & Motorbike. Robobox. Level VII

ROBOTC: Programming for All Ages

Programming Design. ROBOTC Software

How Do You Make a Program Wait?

CONSTRUCTION GUIDE Robotic Arm. Robobox. Level II

Abstract Entry TI2827 Crawler for Design Stellaris 2010 competition

1. Controlling the DC Motors

Introduction: Components used:

Final Report Metallocalizer

Workshops Elisava Introduction to programming and electronics (Scratch & Arduino)

For this exercise, you will need a partner, an Arduino kit (in the plastic tub), and a laptop with the Arduino programming environment.

MESA Cyber Robot Challenge: Robot Controller Guide

understanding sensors

Peek-a-BOO Kit JAMECO PART NO / / Experience Level: Beginner Time Required: 1+ hour

Automobile Prototype Servo Control

Medb ot. Medbot. Learn about robot behaviors as you transport medicine in a hospital with Medbot!

Sten-Bot Robot Kit Stensat Group LLC, Copyright 2013

Where C= circumference, π = 3.14, and D = diameter EV3 Distance. Developed by Joanna M. Skluzacek Wisconsin 4-H 2016 Page 1

An Introduction to Programming using the NXT Robot:

Advanced Mechatronics 1 st Mini Project. Remote Control Car. Jose Antonio De Gracia Gómez, Amartya Barua March, 25 th 2014

Saturday Academy Program

Programming Design ROBOTC Software

NAMASKAR ROBOT-WHICH PROVIDES SERVICE

Robot Control. Robot Control

Machine Intelligence Laboratory

Robotics & Embedded Systems (Summer Training Program) 4 Weeks/30 Days

Cooperative Explorations with Wirelessly Controlled Robots

Introduction to Robotics Rubrics

CONSTRUCTION GUIDE Light Robot. Robobox. Level VI

Attribution Thank you to Arduino and SparkFun for open source access to reference materials.

UNIT1. Keywords page 13-14

Course Overview. Course Requirements. Key Concepts. Age Restrictions Subject Objective Duration. Prerequisite Skills Hardware equipment

BEGINNER PROGRAMMING LESSON

Program.

Industrial Automation Training Academy. Arduino, LabVIEW & PLC Training Programs Duration: 6 Months (180 ~ 240 Hours)

INTRODUCTION OF SOME APPROACHES FOR EDUCATIONS OF ROBOT DESIGN AND MANUFACTURING

Robots in the Loop: Supporting an Incremental Simulation-based Design Process

Two Hour Robot. Lets build a Robot.

C++ PROGRAM FOR DRIVING OF AN AGRICOL ROBOT

Lesson 13. The Big Idea: Lesson 13: Infrared Transmitters

Computational Crafting with Arduino. Christopher Michaud Marist School ECEP Programs, Georgia Tech

Intelligent Systems Design in a Non Engineering Curriculum. Embedded Systems Without Major Hardware Engineering

StenBOT Robot Kit. Stensat Group LLC, Copyright 2018

VEX Robotics Platform and ROBOTC Software. Introduction

Autonomous Obstacle Avoiding and Path Following Rover

Available online at ScienceDirect. Procedia Computer Science 76 (2015 )

Devastator Tank Mobile Platform with Edison SKU:ROB0125

Embedded Systems & Robotics (Winter Training Program) 6 Weeks/45 Days

Table of Contents. Sample Pages - get the whole book at

PCB & Circuit Designing (Summer Training Program) 6 Weeks/ 45 Days PRESENTED BY

MOBILE ROBOT LOCALIZATION with POSITION CONTROL

Behaviour Patterns Evolution on Individual and Group Level. Stanislav Slušný, Roman Neruda, Petra Vidnerová. CIMMACS 07, December 14, Tenerife

EECS 473 Final Exam. Fall 2017 NOTES: I have neither given nor received aid on this exam nor observed anyone else doing so. Name: unique name:

Marine Debris Cleaner Phase 1 Navigation

League <BART LAB AssistBot (THAILAND)>

Transcription:

Curriculum Guide Part of: Inquiry Science with Dartmouth Developed by: David Qian, MD/PhD Candidate Department of Biomedical Data Science Overview Using existing knowledge of computer science, students will design an Arduino robot that stops and turns either left or right upon approaching an obstacle. Science Standards (NH Science Curriculum Frameworks) S:SPS4:12:3.2 - "Generate solutions to scientific questions and challenges through developing, modeling and revising investigations" S:SPS4:12:3.3 - "Apply scientific knowledge and skills to make reasoned decisions about the use of science and scientific innovations" S:SPS4:12:4.2 - "Plan and conduct practical tests to solve problems or answer a question, collect and analyze data using appropriate instruments and techniques safely and accurately" S:SPS4:12:9.1 - "Collaborate with interested learners using appropriate web resources and publication media such as journals" Focus Question How does a robot avoid hitting obstacles? Objectives Through this lesson, students will: Learn that coding is rarely ever perfect on the first try. They will develop code, evaluate robot performance, identify unexpected and undesired behaviors, re-assess the logical flow of their scripts, and repeat many times. (S:SPS4:12:3.2) Allow students to recognize the complex decisions that humans make but are hardly aware of on a daily basis. During design of if/then statements, the following reflective questions are

inevitable: "When I personally encounter something in my way, how close do I get before committing to move around it?" "How do I decide which direction to go next?" (S:SPS4:12:3.3) Find ways to test whether individual chunks of code are correctly implemented. For example, students will need to calibrate the duration and polarity of current delivered to the s in order to achieve proper forward movement, left turn, right turn, etc. (S:SPS4:12:4.2) Appreciate the public domain of shared knowledge. For example, the robot is intended to measure obstacle distance using an ultrasonic transceiver. The Arduino Internet community has already developed many libraries that convert signals from the hardware into values that can be easily incorporated in code. Anyone can find and import these libraries. (S:SPS4:12:9.1) Background Students will have learned how to write loops (for-loops and while-loops), conditional statements (tests of equality or inequality), and functions (call commands and/or compute and return a value based on input parameters) in the coding language Processing, which is essentially Java except simpler. Basic understanding of Arduino-specific commands in Processing is also encouraged. The gold-standard resource for Arduino beginners: https://drive.google.com/file/d/0b6tk_rpfvhi5b2nnnustnwlwags/view?usp=sharing The robots that accompany this module have one input and three outputs. The input is distance to nearest object as detected by an ultrasonic transceiver. Two of the outputs are s that control the robot's movement. The third output is a servo (rotation angle can be finely regulated) on which the ultrasonic transceiver is installed; this can be thought of as the "neck" of the robot, which allows it to measure distances in different directions from the robot's perspective. Materials 1) The following obstacle course that anyone can borrow and assemble from DCAL (acknowledgment: originally constructed using supplies from Kimball Union Academy). a c * b

2) The following robot kits that anyone can borrow and assemble from DCAL (acknowledgment: five of these were purchased using GK12 funding). 3) Installation of Arduino on a computer (website: www.arduino.cc/en/main/software). Preparation Print out and distribute attached worksheet. Divide the class into 5 groups, each with a robot. Depending on the previous group that used this module, the robot kits may need to be assembled ahead of time or during a separate class period. Procedure 1) Introduction: Load the maze game from http://www.labyrinthmaze.com/flash_games/3d_maze_survival.htm on a projector screen. Tell students to help you navigate through the maze by providing explicit directions. Intentionally make very incremental movements so that students must constantly shout out updating directions, such as "keep going straight", "turn right", "turn right even more", "stop", "look around", etc. 2) Hook: Tie in the relevance of robots. Robots have been created because they are more precise than humans and do not tire from tedious tasks. However, in order for them to function autonomously, they must be given very clear instructions. Have the students reflect on what they had to see in the maze environment to decide subsequent actions. 3) Now that students know all of the possible actions of the robot, they have the foundation for filling out the attached worksheet. Emphasize that an Arduino microcontroller cannot understand commands such as "go straight" or "turn left". These movements must be conveyed in terms of rotations activated by the microcontroller. The worksheet is intended to lay out the pseudocode for each of the 4 action functions that will be required in the Arduino script. Understanding this worksheet is the most important step for ensuring

module success and preventing logic-flow headaches later. So it would be ideal to patiently walk through many of the boxes in the worksheet. 4) Code! Example [abbreviated] code is provided below. Have the groups try to maneuver their robots through one of the right-angle turns of the map on page 2. For example, starting at the marked *, a robot should move straight, stop, look left and right, and choose to turn right. Timing how long the s need to spin will require frequent trials and re-calibration. int safety = 5; % How far to stay away from obstacles. Customizable. int straightt = 100; int turnt = 2000; % Number of milliseconds to spin wheel s for turn % Value is unique for and ground surface void setup() { servomotor(90); gostraight(); int aheaddistance = sensormeasure(); void loop() { if (aheaddistance > safety) { gostraight(); else { stopobserve(); aheaddistance = sensormeasure(); % Keep going straight if farther than % 5 cm away from obstacle ahead void gostraight() { leftmotor(forward, straightt); rightmotor(forward, straightt); void turnleft() { leftmotor(reverse, turnt); rightmotor(forward, turnt); void turnright() { leftmotor(forward, turnt); rightmotor(reverse, turnt); void stopobserve() { servomotor(0); int leftdistance = sensormeasure(); servomotor(180); int rightdistance = sensormeasure(); servomotor(90); if (leftdistance > rightdistance) { turnleft(); else { turnright(); % Unlikely to get ties...

Assessment Robot does not bump into anything Robot distance sensor looks for alternative directions to turn upon approaching an obstacle Robot correctly chooses new direction to turn based on distance to next obstacle Robot only turns when it cannot proceed further ahead Extensions This module is intended for students with little to no Arduino exposure, and some exposure to programming in Java/Processing. More advanced students may pursue in the map on page 2: Route a: nimble navigation through tight turns. Route b: line-following (ex. using Arduino infrared sensors). Bonus make line-following override the distance-sensing trigger to turn, so the robot pushes through the blue flag. Route c: be able to dodge not only walls but also obstacles that are low on the ground, hidden from detection by the ultrasonic transceiver (ex. using Arduino pressure sensors). Autonomous navigation from beginning to end. Anything else in between! Get creative! This flexible map can facilitate easy learning trials on small segments, as well as challenging competitions that use the whole area.

F = forward S = stop R = reverse Left Motor action Right 0 180 Distance sensor facing forward = 90 What to do next if the distance sensor detects: What is the robot currently doing? Servo (integer angles) obstruction > 5 cm away obstruction < 5 cm away Drive straight F F Stay at 90 Drive straight Stop; distance sensor Stop; distance sensor S S 0, 180, 90 Turn left if distance sensor perceives there is more space to go on the left side compared to the right side (distance to nearest object) Turn right if distance sensor perceives there is more space to go on the right side compared to the left side Turn left R F Stay at 90 Drive straight Stop; distance sensor Turn right F R Stay at 90 Drive straight Stop; distance sensor

F = forward S = stop R = reverse Left Motor action Right 0 180 Distance sensor facing forward = 90 What to do next if the distance sensor detects: What is the robot currently doing? Servo (integer angles) obstruction > 5 cm away obstruction < 5 cm away Drive straight F F Stay at 90 Drive straight Stop; distance sensor Stop; distance sensor S S 0, 180, 90 Turn left if distance sensor perceives there is more space to go on the left side compared to the right side (distance to nearest object) Turn right if distance sensor perceives there is more space to go on the right side compared to the left side Turn left R F Stay at 90 Drive straight Stop; distance sensor Turn right F R Stay at 90 Drive straight Stop; distance sensor