the finch robot and the while loop

14
THE FINCH ROBOT AND THE WHILE LOOP Pepper

Upload: justin-richard

Post on 30-Dec-2015

47 views

Category:

Documents


0 download

DESCRIPTION

The Finch Robot and the While Loop. Pepper. The Robot. Developed by Carnegie Mellon students to teach CS Supports many compilers, including Java Web site: http://www.finchrobot.com/ Why – Illustrate while and do /while loops with physical example - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Finch Robot  and the While Loop

THE FINCH ROBOT AND THE WHILE LOOPPepper

Page 2: The Finch Robot  and the While Loop

THE ROBOT Developed by Carnegie Mellon students to teach

CS Supports many compilers, including Java Web site: http://www.finchrobot.com/ Why – Illustrate while and do /while loops with

physical example Why 2: See how hardware and physical actions

can be controlled with code Lab group practice Extra: One robot available for creating game

Will need to learn methods May need to debug issues Will it help you learn for the final?

Page 3: The Finch Robot  and the While Loop

HARDWARE Input Sensors

Obstacles Light Accelerometer

(how fast is it going)

Temperature Output

Wheels turn LED lights Speaker

Power Long USB Cord

Page 4: The Finch Robot  and the While Loop

INSTALLING

Download Java package from http://www.finchrobot.com/Creating,%20Compiling,%20and%20Running%20Programs%20for%20Finch/bluej

Place it in the folder you want to use Unzip it Open sample project in sourceFiles bluej.pkg Create your own package inside sample

project (or add jar file finch.jar to bluej via preferences

Or add finch.jar to the +libs folder inside SourceFiles)

Page 5: The Finch Robot  and the While Loop

MAKE A FINCH CONTROLLER

Bring in the knowledge: import

edu.cmu.ri.createlab.terk.robot.finch.Finch; Create a finch object that knows finch

commands: Finch myFinch = new Finch();

Always end with quit and exit: myFinch.quit(); System.exit(0);

Page 6: The Finch Robot  and the While Loop

CONTROLLING COMMANDS

Set Finch Beak Color: myFinch.setLED(red,green,blue); // 0 to 255

Make Finch Speak: myFinch.saySomething("The Finch will say

this."); Make Finch Move:

myFinch.setWheelVelocities(left,right,time)// -255 to 255 & time is in milliseconds // negative number rolls backwards// hold the cord or it may have difficulty

Page 7: The Finch Robot  and the While Loop

SIMPLE PROGRAM – package Pepper; import

edu.cmu.ri.createlab.terk.robot.finch.Finch; public class FinchSimple { public static void main(final String[] args) { // Instantiating the Finch object Finch myFinch = new Finch(); myFinch.setWheelVelocities(255,255,1000); myFinch.saySomething(“I am now All

Done"); // Always end your program myFinch.quit(); System.exit(0); } }

Page 8: The Finch Robot  and the While Loop

GET FINCH SENSE INFORMATION

Obstacles: All true/false isObstacle() isObstacleLeftSide() isObstacleRightSide()

Light: All true/false, but using light level threshold. Returns true if less than the threshold isRightLightSensor(10) isLeftLightSensor(10)

In dark, it will be true up to about 4 In light, it will be true up to about 40 Ex: if (myFinch.isRightLightSensor(10) == true)

{ System.out.println(“It is light out”);}else {System.out.println(“It is dark out”);}

Page 9: The Finch Robot  and the While Loop

MAKE IT DO AN ACTION WHILE A CONDITION IS TRUE

Keep moving forward until it senses an obstacle

while ( myFinch.isObstacle() == false ){ myFinch.setWheelVelocities(255,255,200);

} // then back upmyFinch.setWheelVelocities(-255,-255,1000);

Page 10: The Finch Robot  and the While Loop

ANOTHER - MAKE IT DO AN ACTION WHILE A CONDITION IS TRUE

Spin until the lights turn off

while (myFinch.isRightLightSensor(10) == true){ myFinch.setWheelVelocities(255,-255,1000);

} // when the lights are out, this will be false// when the lights are on, this will be true// could say spin while lights are on// WILL NOT SPIN AT ALL IF LIGHTS OFF

Page 11: The Finch Robot  and the While Loop

DO WHILE

Spin at least once, and then keep spinning until the lights turn off

do { myFinch.setWheelVelocities(255,-

255,1000); } while (myFinch.isRightLightSensor(10) ==

true);

// run with lights off – see one spin first

Page 12: The Finch Robot  and the While Loop

GET ORIENTATION INFO

Orientation: All true/false isFinchLevel() isFinchUpsideDown() isBeakDown() isBeakUp() isLeftWingDown() isRightWingDown()

Page 13: The Finch Robot  and the While Loop

YOUR TAKEAWAY

Difference between while and do while Creating an object of a class gives your

program powerful tools A sense of how hardware can be controlled

by code Perhaps a desire to code your game using

this little robot

Page 14: The Finch Robot  and the While Loop

YOUR TURN Probably not needed, but see finch.jar in

preferences Download java finch package

http://www.finchrobot.com/Creating,%20Compiling,%20and%20Running%20Programs%20for%20Finch/bluej

New class Import above class:

import edu.cmu.ri.createlab.terk.robot.finch.Finch; Inside main method, create a finch object

Finch myFinch = new Finch(); Close your finch at the end of main

myFinch.quit(); System.exit(0);

Add code to make it move right and test. Then make it do something until it hits a wall.