Programming a Robot Using C++ Philipp Schrader & Tom Brown October 27, 2012

Size: px
Start display at page:

Download "Programming a Robot Using C++ Philipp Schrader & Tom Brown October 27, 2012"

Transcription

1 Programming a Robot Using C++ Philipp Schrader & Tom Brown October 27, 2012

2 The robot has mechanical systems and electrical hardware, but needs a program to tell it what to do The program collects inputs from the drivers and sensors, and uses them to decide what motor output should be Different programming languages LabVIEW, C++, Java

3 Invented in the 1980 s Built as an extension on top of C Object-oriented programming language

4 Powerful and fast language; used widely in industry Steep learning curve, but after that development is fast Programming tools are less complicated, smaller, faster than LabVIEW

5 Writing instructions for machines to perform a set of desired tasks It's about controlling how inputs to a system affect the outputs of the system.

6 Centralizing where your source code is stored. Acts as a backup storage, history browser, and versioning for the code. Easily shows differences between two versions of the code. This includes the "current working version" with any modifications.

7 Wind River The Windows program used to compile code into programs for the robot. Primarily serves as a development environment for writing and debugging code.

8 Already-written code provided by FIRST to make robot programming easier Consists of classes that represent all common robot hardware Example: Compressor, DigitalInput, Victor, DriverStation, Solenoid, Gyro

9 SimpleRobot is a starting template to help teams quickly get a robot running. There are other templates such as IterativeRobot, but we will focus on SimpleRobot.

10 Cont'd #include ".h" class RobotDemo : public SimpleRobot { public: RobotDemo(void) { void (void) { void OperatorControl(void) { ; START_ROBOT_CLASS(RobotDemo);

11 Cont'd RobotDemo() is the constructor. This is where you initialize all members of the class. () is the function that gets called during the autonomous or hybrid period of a match. OperatorControl() is the function that gets called during teleop. Function gets called once and needs a loop to continue operator control.

12 // Declare drive components Joystick *stick; Victor *leftdrive; Victor *rightdrive; // Initialize components with port numbers RobotDemo(void) { stick = new Joystick(1); leftdrive = new Victor(1); rightdrive = new Victor(2);

13 Cont'd void OperatorControl(void) { while (IsOperatorControl()) { float lefty = stick->getrawaxis(2); float righty = stick->getrawaxis(4); // Tank drive leftdrive->setspeed(-lefty); rightdrive->setspeed(righty); Wait(0.005);

14 help the operators with controlling the robot. They are crucial in autonomous, but also very valuable for teleop. For example, appropriate sensors can be used to precisely position an arm on the robot.

15 Cont'd AnalogChannel *plowpot; RobotDemo(void) { plowpot = new AnalogChannel(2); void OperatorControl(void) { while (IsOperatorControl()) { printf("%d", plowpot->getvalue()); Wait(0.005);

16 Cont'd In our example, we are getting a feeling for how the potentiometer behaves. Some sensors have their own classes in. Use them whenever possible. Base Classes: AnalogChannel, DigitalInput : Encoder, Gyro, UltraSonic

17 We can use sensors to perform more sophisticated maneuvers than a human alone could do. For example, we can move an arm into the best scoring position consistently on the push of a button.

18 Cont'd Relay *leftplow; Relay *rightplow; RobotDemo(void) { leftplow = new Relay(1); rightplow = new Relay(2); void SetPlow(Relay::Value direction) { leftplow->set(direction); rightplow->set(direction);

19 Cont'd void OperatorControl(void) { while (IsOperatorControl()) { if (stick->getrawbutton(2)) { SetPlow(Relay::kForward); else if (stick->getrawbutton(3)) { SetPlow(Relay::kReverse); else { SetPlow(Relay::kOff);

20 Cont'd The previous slide shows a simple plow control without sensors. Button 2 lowers the plow. Button 3 raises the plow. If we add sensor feedback to the code, we can prevent the plow from going past mechanical limits. The next slide will incorporate feedback to the plow to prevent breaking itself.

21 Cont'd // Prevents the plow from going too far if (stick->getrawbutton(2) && (plowpot->getvalue() > 60)) { SetPlow(Relay::kForward); else if (stick->getrawbutton(3) && (plowpot->getvalue() < 250)) { SetPlow(Relay::kReverse); else { SetPlow(Relay::kOff);

22 According to the pneumatics setup and electrical rules by FIRST, pneumatics have special programming requirements. Solenoids and compressors have their own class in. Even if the compressor is not on the robot, it needs to be controlled by the robot itself.

23 Cont'd Solenoid *opengate; Solenoid *closegate; Compressor *compressor; RobotDemo(void) { opengate = new Solenoid(1); closegate = new Solenoid(2); compressor = new Compressor (9, 5);

24 Cont'd void OperatorControl(void) { opengate->set(false); closegate->set(true); while (IsOperatorControl()) { if (stick->getrawbutton(1)) { opengate->set(true); closegate->set(false); else if (stick->getrawbutton(4)) { opengate->set(false); closegate->set(true);...

25 Cont'd... // Only runs compressor until 120 psi if (!compressor->getpressureswitchvalue()) { compressor->start(); else { compressor->stop(); Wait(0.005);

26 The autonomous code works similarly to the teleop code. void (void) { while (Is()) { // Your code here...

27 Cont'd For this example we will make the robot lower and raise its plow until the end of the autonomous period. We will make use of a simple state machine that cycles between a state that raises the plow and a state that lowers the plow. We shall modify our SetPlow function as well. Switching between the states is done through the potentiometer.

28 Cont'd bool SetPlow(Relay::Value direction) { if ((direction == Relay::kForward && plowpot->getvalue() > 60) (direction == Relay::kReverse && plowpot->getvalue() < 260)) { leftplow->set(direction); rightplow->set(direction); return false; leftplow->set(relay::koff); rightplow->set(relay::koff); return true;

29 Cont'd void (void) { int state = 1; while (Is()) { switch (state) { case 1: if (SetPlow(Relay::kForward)) { state = 2; break;...

30 Cont'd... case 2: if (SetPlow(Relay::kReverse)) { case = 1; break;

31 Philipp Schrader Firmware Developer, Nuvation Research Tom Brown Senior Software Developer, F.A. Servers

C/C++ Programming Guide for the FIRST Robotics Competition

C/C++ Programming Guide for the FIRST Robotics Competition C/C++ Programming Guide for the FIRST Robotics Competition Worcester Polytechnic Institute Robotics Resource Center Rev 0.5 December 28, 2008 Brad Miller, Ken Streeter, Beth Finn, Jerry Morrison Contents

More information

FRC WPI Robotics Library Overview

FRC WPI Robotics Library Overview FRC WPI Robotics Library Overview Contents 1.1 Introduction 1.2 RobotDrive 1.3 Sensors 1.4 Actuators 1.5 I/O 1.6 Driver Station 1.7 Compressor 1.8 Camera 1.9 Utilities 1.10 Conclusion Introduction In this

More information

EasyC. Programming Tips

EasyC. Programming Tips EasyC Programming Tips PART 1: EASYC PROGRAMMING ENVIRONMENT The EasyC package is an integrated development environment for creating C Programs and loading them to run on the Vex Control System. Its Opening

More information

CONTENTS. What is ROBOTC? Section I: The Basics

CONTENTS. What is ROBOTC? Section I: The Basics BEGINNERS CONTENTS What is ROBOTC? Section I: The Basics Getting started Configuring Motors Write Drive Code Download a Program to the Cortex Write an Autonomous Section II: Using Sensors Sensor Setup

More information

FTC 2015-2016 Android Based Control System

FTC 2015-2016 Android Based Control System FTC 2015-2016 Android Based Control System Agenda Control System Overview Phone Setup Generating the Robot configuration file Software Overview Autonomous vs Tele-op templates Motor/servo control Sensor

More information

Programming the VEX Robot

Programming the VEX Robot Preparing for Programming Setup Before we can begin programming, we have to set up the computer we are using and the robot/controller. We should already have: Windows (XP or later) system with easy-c installed

More information

Best Robotics Sample Program Quick Start

Best Robotics Sample Program Quick Start Best Robotics Sample Program Quick Start BEST Robotics Programming -- Sample Program Quick Start Page 1 Overview The documents describe the program "Best Competition Template.c" which contains the sample

More information

LabVIEWTM. Robotics Programming Guide for the FIRST Robotics Competition. LabVIEW Robotics Programming Guide for FRC. January 2009 372668D-01

LabVIEWTM. Robotics Programming Guide for the FIRST Robotics Competition. LabVIEW Robotics Programming Guide for FRC. January 2009 372668D-01 LabVIEWTM Robotics Programming Guide for the FIRST Robotics Competition LabVIEW Robotics Programming Guide for FRC January 2009 372668D-01 Support Worldwide Technical Support and Product Information ni.com

More information

New Technology Introduction: Android Studio with PushBot

New Technology Introduction: Android Studio with PushBot FIRST Tech Challenge New Technology Introduction: Android Studio with PushBot Carol Chiang, Stephen O Keefe 12 September 2015 Overview Android Studio What is it? Android Studio system requirements Android

More information

TETRIX Add-On Extensions. Encoder Programming Guide (ROBOTC )

TETRIX Add-On Extensions. Encoder Programming Guide (ROBOTC ) Introduction: In this extension, motor encoders will be added to the wheels of the Ranger Bot. The Ranger Bot with Encoders will be programmed to move forward until it detects an object, turn 90, and move

More information

How To Use First Robot With Labview

How To Use First Robot With Labview FIRST Robotics LabVIEW Training SECTION 1: LABVIEW OVERVIEW What is LabVIEW? It is a tool used by scientists and engineers to measure and automate the universe around us It is a graphical programming

More information

As it relates to Android Studio. By Phil Malone: [email protected]

As it relates to Android Studio. By Phil Malone: phil.malone@mr-phil.com As it relates to Android Studio By Phil Malone: [email protected] *Jargon, Jargon and More Jargon *Where to find tools/documentation *The Software Components *Driver Station *Robot Controller *The

More information

Creating a Project with PSoC Designer

Creating a Project with PSoC Designer Creating a Project with PSoC Designer PSoC Designer is two tools in one. It combines a full featured integrated development environment (IDE) with a powerful visual programming interface. The two tools

More information

After: bmotorreflected[port2]= 1; //Flip port2 s direction

After: bmotorreflected[port2]= 1; //Flip port2 s direction Motors Motor control and some fine-tuning commands. motor[output] = power; This turns the referenced VEX motor output either on or off and simultaneously sets its power level. The VEX has 8 motor outputs:

More information

J a v a Quiz (Unit 3, Test 0 Practice)

J a v a Quiz (Unit 3, Test 0 Practice) Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points

More information

Programming LEGO NXT Robots using NXC

Programming LEGO NXT Robots using NXC Programming LEGO NXT Robots using NXC This text programming language derived from C language is bended together with IDE BricxCC on standard firmware LEGO Mindstorms. This can be very convenient for those,

More information

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING Technological Literacy Review of Robotics I Topics and understand and be able to implement the "design 8.1, 8.2 Technology Through the Ages

More information

Next Gen Platform: Team & Mentor Guide

Next Gen Platform: Team & Mentor Guide Next Gen Platform: Team & Mentor Guide 1 Introduction For the 2015-2016 season, the FIRST Tech Challenge (FTC) will be adopting a new controller for its robot competitions. The new platform, which will

More information

ROBOTICS AND AUTONOMOUS SYSTEMS

ROBOTICS AND AUTONOMOUS SYSTEMS ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 3 PROGRAMMING ROBOTS comp329-2013-parsons-lect03 2/50 Today Before the labs start on Monday,

More information

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description

More information

KS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week

KS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week 1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully

More information

ANDROID BASED FARM AUTOMATION USING GR-SAKURA

ANDROID BASED FARM AUTOMATION USING GR-SAKURA ANDROID BASED FARM AUTOMATION USING GR-SAKURA INTRODUCTION AND MOTIVATION With the world s population growing day by day, and land resources remaining unchanged, there is a growing need in optimization

More information

ROBOTC Software Inspection Guide with Additional Help Documentation

ROBOTC Software Inspection Guide with Additional Help Documentation VEX ROBOTICS COMPETITION ROBOTC Software Inspection Guide with Additional Help Documentation VEX Cortex Software Inspection Steps: 1. Cortex Firmware Inspection using ROBOTC 2. Testing Cortex Robots using

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 UNIT 22: PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 ASSIGNMENT 3 DESIGN AND OPERATIONAL CHARACTERISTICS NAME: I agree to the assessment as contained in this assignment.

More information

Sensors Collecting Manufacturing Process Data

Sensors Collecting Manufacturing Process Data Sensors & Actuators Sensors Collecting Manufacturing Process Data Data must be collected from the manufacturing process Data (commands and instructions) must be communicated to the process Data are of

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information

File: C:\Program Files\Robotics Academy\RobotC\sample programs\rcx\arushi\robot_

File: C:\Program Files\Robotics Academy\RobotC\sample programs\rcx\arushi\robot_ ///////////////////////////////////////////////////////////////////////// // // This is the Program to control the Robot Head // Program By: Arushi Raghuvanshi // Date: Oct 2006 // /////////////////////////////////////////////////////////////////////////

More information

Appium mobile test automation

Appium mobile test automation Appium mobile test automation for Google Android and Apple ios Last updated: 4 January 2016 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About this document...

More information

E-Blocks Easy Internet Bundle

E-Blocks Easy Internet Bundle Page 1 Cover Page Page 2 Flowcode Installing Flowcode Instruction for installing Flowcode can be found inside the installation booklet located inside the Flowcode DVD case. Before starting with the course

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

Title: Appium Automation for Mac OS X. Created By: Prithivirajan M. Abstract. Introduction

Title: Appium Automation for Mac OS X. Created By: Prithivirajan M. Abstract. Introduction Title: Appium Automation for Mac OS X Created By: Prithivirajan M Abstract This document aims at providing the necessary information required for setting up mobile testing environment in Mac OS X for testing

More information

Arduino Lesson 1. Blink

Arduino Lesson 1. Blink Arduino Lesson 1. Blink Created by Simon Monk Last updated on 2015-01-15 09:45:38 PM EST Guide Contents Guide Contents Overview Parts Part Qty The 'L' LED Loading the 'Blink' Example Saving a Copy of 'Blink'

More information

Dr Robot C# Advance Sputnik Demo Program

Dr Robot C# Advance Sputnik Demo Program 25 Valleywood Drive, Unit 20 Markham, Ontario, L3R 5L9, Canada Tel: (905) 943-9572 Fax: (905) 943-9197 [email protected] Dr Robot C# Advance Sputnik Demo Program Version: 1.0.0 June 2008-1 - Copyright

More information

Installing Java (Windows) and Writing your First Program

Installing Java (Windows) and Writing your First Program Appendix Installing Java (Windows) and Writing your First Program We will be running Java from the command line and writing Java code in Notepad++ (or similar). The first step is to ensure you have installed

More information

North Texas FLL Coaches' Clinics. Beginning Programming October 2014. Patrick R. Michaud [email protected] republicofpi.org

North Texas FLL Coaches' Clinics. Beginning Programming October 2014. Patrick R. Michaud pmichaud@pobox.com republicofpi.org North Texas FLL Coaches' Clinics Beginning Programming October 2014 Patrick R. Michaud [email protected] republicofpi.org Goals Learn basics of Mindstorms programming Be able to accomplish some missions

More information

Additional Guides. TETRIX Getting Started Guide NXT Brick Guide

Additional Guides. TETRIX Getting Started Guide NXT Brick Guide Preparing the NXT Brick Now that a functional program has been created, it must be transferred to the NXT Brick and then run. This is a perfect time to take a look at the NXT Brick in detail. The NXT Brick

More information

Programmable Logic Controllers Definition. Programmable Logic Controllers History

Programmable Logic Controllers Definition. Programmable Logic Controllers History Definition A digitally operated electronic apparatus which uses a programmable memory for the internal storage of instructions for implementing specific functions such as logic, sequencing, timing, counting,

More information

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority) Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the

More information

Advanced Programming with LEGO NXT MindStorms

Advanced Programming with LEGO NXT MindStorms Advanced Programming with LEGO NXT MindStorms Presented by Tom Bickford Executive Director Maine Robotics Advanced topics in MindStorms Loops Switches Nested Loops and Switches Data Wires Program view

More information

New Technology Introduction: MIT App Inventor

New Technology Introduction: MIT App Inventor FIRST Tech Challenge New Technology Introduction: MIT App Inventor Peter Klein 12 September 2015 Overview Hardware introduction MIT App Inventor Software installation Additional setup steps Creating an

More information

Cloud computing is a marketing term that means different things to different people. In this presentation, we look at the pros and cons of using

Cloud computing is a marketing term that means different things to different people. In this presentation, we look at the pros and cons of using Cloud computing is a marketing term that means different things to different people. In this presentation, we look at the pros and cons of using Amazon Web Services rather than setting up a physical server

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1 UNIT 22: PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1 This work covers part of outcome 3 of the Edexcel standard module: Outcome 3 is the most demanding

More information

Application Note: AN00141 xcore-xa - Application Development

Application Note: AN00141 xcore-xa - Application Development Application Note: AN00141 xcore-xa - Application Development This application note shows how to create a simple example which targets the XMOS xcore-xa device and demonstrates how to build and run this

More information

Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015

Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015 Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015 CEN 4935 Senior Software Engineering Project Instructor: Dr. Janusz Zalewski Software Engineering Program Florida

More information

Click to begin. Employees

Click to begin. Employees Click to begin Employees This document will guide you through setting up Employees in Maitre D. The Employee setup allows you to customize a record for each employee that uses the workstation. There are

More information

Configuration Software User Instruction

Configuration Software User Instruction Configuration Software User Instruction V1.0 Index Index... 1 Configuration Software... 1 1 Install Driver...1 2 Install Configuration Software...1 How to use Baseflight Configurator...1 Flight Controller

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

Modern Robotics, Inc Core Device Discovery Utility. Modern Robotics Inc, 2015

Modern Robotics, Inc Core Device Discovery Utility. Modern Robotics Inc, 2015 Modern Robotics, Inc Core Device Discovery Utility Modern Robotics Inc, 2015 Version 1.0.1 October 27, 2015 Core Device Discovery Application Guide The Core Device Discovery utility allows you to retrieve

More information

Background: Experimental Manufacturing Cell

Background: Experimental Manufacturing Cell Session 3548 A WEB-BASED APPROACH TO AUTOMATED INSPECTION AND QUALITY CONTROL OF MANUFACTURED PARTS Immanuel Edinbarough, Manian Ramkumar, Karthik Soundararajan The University of Texas at Brownsville/Rochester

More information

Speed Based on Volume Values & Assignment (Part 1)

Speed Based on Volume Values & Assignment (Part 1) Speed Based on Volume Values & Assignment (Part 1) The Sound Sensor is the last of the standard NXT sensors. In essence it s a kind of microphone which senses amplitude (how loud or soft a sound is), but

More information

How to design and implement firmware for embedded systems

How to design and implement firmware for embedded systems How to design and implement firmware for embedded systems Last changes: 17.06.2010 Author: Rico Möckel The very beginning: What should I avoid when implementing firmware for embedded systems? Writing code

More information

Unit 24: Applications of Pneumatics and Hydraulics

Unit 24: Applications of Pneumatics and Hydraulics Unit 24: Applications of Pneumatics and Hydraulics Unit code: J/601/1496 QCF level: 4 Credit value: 15 OUTCOME 2 TUTORIAL 4 DIRECTIONAL CONTROL VALVES The material needed for outcome 2 is very extensive

More information

2/26/2008. Sensors For Robotics. What is sensing? Why do robots need sensors? What is the angle of my arm? internal information

2/26/2008. Sensors For Robotics. What is sensing? Why do robots need sensors? What is the angle of my arm? internal information Sensors For Robotics What makes a machine a robot? Sensing Planning Acting information about the environment action on the environment where is the truck? What is sensing? Sensing is converting a quantity

More information

Line Tracking Basic Lesson

Line Tracking Basic Lesson Line Tracking Basic Lesson Now that you re familiar with a few of the key NXT sensors, let s do something a little more interesting with them. This lesson will show you how to use the Light Sensor to track

More information

ROBOTC Programming Competition Templates

ROBOTC Programming Competition Templates ROBOTC Programming Competition Templates This document is part of a software inspection guide for VEX v0.5 (75 MHz crystal) and VEX v1.5 (VEXnet Upgrade) microcontroller-based robots. Use this document

More information

How To Play Botball

How To Play Botball Using Robots to Teach 6-12 Grade Students to Program Steve Goodgame Executive Director KISS Institute for Practical Robotics 1-405-579-4609 www.kipr.org www.botball.org 1 Aerial Robot Contest What is a

More information

Arduino Lesson 5. The Serial Monitor

Arduino Lesson 5. The Serial Monitor Arduino Lesson 5. The Serial Monitor Created by Simon Monk Last updated on 2013-06-22 08:00:27 PM EDT Guide Contents Guide Contents Overview The Serial Monitor Arduino Code Other Things to Do 2 3 4 7 10

More information

IS0020 Program Design and Software Tools Midterm, Feb 24, 2004. Instruction

IS0020 Program Design and Software Tools Midterm, Feb 24, 2004. Instruction IS0020 Program Design and Software Tools Midterm, Feb 24, 2004 Name: Instruction There are two parts in this test. The first part contains 50 questions worth 80 points. The second part constitutes 20 points

More information

Arduino Lesson 13. DC Motors. Created by Simon Monk

Arduino Lesson 13. DC Motors. Created by Simon Monk Arduino Lesson 13. DC Motors Created by Simon Monk Guide Contents Guide Contents Overview Parts Part Qty Breadboard Layout Arduino Code Transistors Other Things to Do 2 3 4 4 4 6 7 9 11 Adafruit Industries

More information

#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() {

#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() { #include Gamer gamer; void setup() { gamer.begin(); void loop() { Gamer Keywords Inputs Board Pin Out Library Instead of trying to find out which input is plugged into which pin, you can use

More information

Kinect Interface to Play Computer Games with Movement

Kinect Interface to Play Computer Games with Movement Kinect Interface to Play Computer Games with Movement Program Install and Hardware Setup Needed hardware and software to use the Kinect to play computer games. Hardware: Computer running Windows 7 or 8

More information

TUTORIAL FOR INITIALIZING BLUETOOTH COMMUNICATION BETWEEN ANDROID AND ARDUINO

TUTORIAL FOR INITIALIZING BLUETOOTH COMMUNICATION BETWEEN ANDROID AND ARDUINO TUTORIAL FOR INITIALIZING BLUETOOTH COMMUNICATION BETWEEN ANDROID AND ARDUINO some pre requirements by :-Lohit Jain *First of all download arduino software from www.arduino.cc *download software serial

More information

Statements and Control Flow

Statements and Control Flow Contents 1. Introduction 2. Types and Variables 3. Statements and Control Flow 4. Reading Input 5. Classes and Objects 6. Arrays 7. Methods 8. Scope and Lifetime 9. Utility classes 10. Introduction to

More information

P-660HW-Tx v3. Quick Start Guide. 802.11g Wireless ADSL 2+ 4-port Gateway. Version 3.40 10/2008 Edition 1

P-660HW-Tx v3. Quick Start Guide. 802.11g Wireless ADSL 2+ 4-port Gateway. Version 3.40 10/2008 Edition 1 P-660HW-Tx v3 802.11g Wireless ADSL 2+ 4-port Gateway Quick Start Guide Version 3.40 10/2008 Edition 1 P-660HW-Tx v3 Quick Start Guide Overview The P-660HW-Tx v3 is an ADSL router with a four-port built-in

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

Part I. Multiple Choice Questions (2 points each):

Part I. Multiple Choice Questions (2 points each): Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******

More information

Pulse width modulation

Pulse width modulation Pulse width modulation DRAFT VERSION - This is part of a course slide set, currently under development at: http://mbed.org/cookbook/course-notes We welcome your feedback in the comments section of the

More information

1 Download & Installation... 4. 1 Usernames and... Passwords

1 Download & Installation... 4. 1 Usernames and... Passwords Contents I Table of Contents Part I Document Overview 2 Part II Document Details 3 Part III EventSentry Setup 4 1 Download & Installation... 4 Part IV Configuration 4 1 Usernames and... Passwords 5 2 Network...

More information

EE 472 Lab 2 (Group) Scheduling, Digital I/O, Analog Input, and Pulse Generation University of Washington - Department of Electrical Engineering

EE 472 Lab 2 (Group) Scheduling, Digital I/O, Analog Input, and Pulse Generation University of Washington - Department of Electrical Engineering EE 472 Lab 2 (Group) Scheduling, Digital I/O, Analog Input, and Pulse Generation University of Washington - Department of Electrical Engineering Introduction: In this lab, you will develop a simple kernel

More information

Project Development & Software Design

Project Development & Software Design Project Development & Software Design Lecturer: Sri Parameswaran Notes by Annie Guo. S1, 2006 COMP9032 Week12 1 Lecture Overview Basic project development steps Some software design techniques S1, 2006

More information

TRILOGI 5.3 PLC Ladder Diagram Programmer and Simulator. A tutorial prepared for IE 575 by Dr. T.C. Chang. Use On-Line Help

TRILOGI 5.3 PLC Ladder Diagram Programmer and Simulator. A tutorial prepared for IE 575 by Dr. T.C. Chang. Use On-Line Help TRILOGI 5.3 PLC Ladder Diagram Programmer and Simulator A tutorial prepared for IE 575 by Dr. T.C. Chang 1 Use On-Line Help Use on-line help for program editing and TBasic function definitions. 2 Open

More information

Microcontroller Programming Beginning with Arduino. Charlie Mooney

Microcontroller Programming Beginning with Arduino. Charlie Mooney Microcontroller Programming Beginning with Arduino Charlie Mooney Microcontrollers Tiny, self contained computers in an IC Often contain peripherals Different packages availible Vast array of size and

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement

More information

P-660HW-Tx v3. 802.11g Wireless ADSL2+ 4-port Gateway DEFAULT LOGIN DETAILS. Firmware v3.70 Edition 1, 2/2009

P-660HW-Tx v3. 802.11g Wireless ADSL2+ 4-port Gateway DEFAULT LOGIN DETAILS. Firmware v3.70 Edition 1, 2/2009 P-660HW-Tx v3 802.11g Wireless ADSL2+ 4-port Gateway Firmware v3.70 Edition 1, 2/2009 DEFAULT LOGIN DETAILS IP Address: http://192.168.1.1 Admin Password: 1234 User Password: user www.zyxel.com Copyright

More information

How To Understand The Dependency Inversion Principle (Dip)

How To Understand The Dependency Inversion Principle (Dip) Embedded Real-Time Systems (TI-IRTS) General Design Principles 1 DIP The Dependency Inversion Principle Version: 22-2-2010 Dependency Inversion principle (DIP) DIP: A. High level modules should not depend

More information

Business Process Management IBM Business Process Manager V7.5

Business Process Management IBM Business Process Manager V7.5 Business Process Management IBM Business Process Manager V7.5 Federated task management for BPEL processes and human tasks This presentation introduces the federated task management feature for BPEL processes

More information

Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go

Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go Debugging ESE112 Java Programming: API, Psuedo-Code, Scope It is highly unlikely that you will write code that will work on the first go Bugs or errors Syntax Fixable if you learn to read compiler error

More information

Designing VM2 Application Boards

Designing VM2 Application Boards Designing VM2 Application Boards This document lists some things to consider when designing a custom application board for the VM2 embedded controller. It is intended to complement the VM2 Datasheet. A

More information

Sample CSE8A midterm Multiple Choice (circle one)

Sample CSE8A midterm Multiple Choice (circle one) Sample midterm Multiple Choice (circle one) (2 pts) Evaluate the following Boolean expressions and indicate whether short-circuiting happened during evaluation: Assume variables with the following names

More information

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive

More information

Help. F-Secure Online Backup

Help. F-Secure Online Backup Help F-Secure Online Backup F-Secure Online Backup Help... 3 Introduction... 3 What is F-Secure Online Backup?... 3 How does the program work?... 3 Using the service for the first time... 3 Activating

More information

Test Creation in QuickTest Professional

Test Creation in QuickTest Professional www.softwaretestinggenius.com A Storehouse of Vast Knowledge on Software Testing & Quality Assurance Test Creation in QuickTest Professional Using Keyword Driven Methodology What is Keyword Driven Methodology?

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform)

An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform) An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform) I'm late I'm late For a very important date. No time to say "Hello, Goodbye". I'm late, I'm late, I'm late. (White Rabbit in

More information

Assignment # 2: Design Patterns and GUIs

Assignment # 2: Design Patterns and GUIs CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs

More information

Arduino Lesson 14. Servo Motors

Arduino Lesson 14. Servo Motors Arduino Lesson 14. Servo Motors Created by Simon Monk Last updated on 2013-06-11 08:16:06 PM EDT Guide Contents Guide Contents Overview Parts Part Qty The Breadboard Layout for 'Sweep' If the Servo Misbehaves

More information

COSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 111: Computer Programming I Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Today Review slides from week 2 Review another example with classes and objects Review classes in A1 2 Discussion

More information

Mitos P-Pump. product datasheet

Mitos P-Pump. product datasheet product datasheet page Product description 2 Main benefits 3 Why choose the Mitos P-Pump? 3 Closed-loop flow control 4 Product specifications 5 Accessories - overview 6 Mitos P-Pump Basic 7 Mitos P-Pump

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

Programming Languages CIS 443

Programming Languages CIS 443 Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML

More information