Presentation is loading. Please wait.

Presentation is loading. Please wait.

Encapsulation Day 11 Computer Programming through Robotics CPST 410 Summer 2009.

Similar presentations


Presentation on theme: "Encapsulation Day 11 Computer Programming through Robotics CPST 410 Summer 2009."— Presentation transcript:

1 Encapsulation Day 11 Computer Programming through Robotics CPST 410 Summer 2009

2 7/1/09Harry Howard, CPST 410, Tulane University2 Course organization  Course home page Course home page  (http://robolab.tulane.edu/CPST410/)  Lab (Newcomb 442) will be open for practice with 3-4 Macs, but you can bring your own laptop and all robots.

3 Encapsulation My Blocks vs. Functions

4 My Blocks in NXT-G Kelly §26 ‘My Block is your block’ Open the Mindstorms app.

5 7/1/09Harry Howard, CPST 410, Tulane University5 A silly program  Tribot, do the following slowly (at 50% speed):  Spin right for a rotation,  and then show a happy face.  Move forward for a second,  and then beep.  Spin left for a rotation,  and then say “good job!”.

6 SillyProgram.rbt

7 7/1/09Harry Howard, CPST 410, Tulane University7 Analysis  Note that the program really has three parts,  but the structure of the program does not show this division.  There is a way to encapsulate each part into its own block, called a My Block.

8 7/1/09Harry Howard, CPST 410, Tulane University8 My Blocks  Select the first part (the first three blocks).  Go to the Edit menu of the Mindstorms NXT application and choose “Make a New My Block”.  Give the block an informative name like StartUp and a short explanation.  Click the ‘Next’ button and choose a picture for it, such as one of the motor icons.  Click ‘Finish’.  You have just created your first MY BLOCK.  It should have occupied the place of the originals in your program, as shown in the next slide.

9 SillyProgram.rbt with StartUp

10 Keep on going  Note that if you double click on StartUp, it opens up in a new piece of graph paper, as if it were a program itself.  MY BLOCKS are stored in the Custom palette (aquamarine equals sign).  Now turn the other two pairs of blocks into My Blocks.

11 7/1/09Harry Howard, CPST 410, Tulane University11 SillyProgram.rbt with MY BLOCKS

12 Functions in NXC Close the Mindstorms app, and open BricxCC.

13 7/1/09Harry Howard, CPST 410, Tulane University13 SillyProgram.nxc task main () { OnFwdSync(OUT_BC, 50, 100); Wait(1000); Off(OUT_BC); GraphicOut(0, 0, "faceopen.ric"); Wait(500); RotateMotor(OUT_BC, 50, 360); PlayTone(440, 500); Wait(500); OnFwdSync(OUT_BC, 50, -100); Wait(1000); Off(OUT_BC); PlayFile("Good Job.rso"); Wait(700); }

14 7/1/09Harry Howard, CPST 410, Tulane University14 Functions = My Blocks p. 149ff  Syntax: insert ‘void’ from Program return_type name(argument_list) { “statements” }  If there is no return type, use ‘void’.  Define a function before the main task.

15 7/1/09Harry Howard, CPST 410, Tulane University15 SillyProgram.nxc with one function void StartUp() { OnFwdSync(OUT_BC, 50, 100); Wait(1000); Off(OUT_BC); GraphicOut(0, 0, "faceopen.ric"); Wait(500); } task main() { StartUp(); RotateMotor(OUT_BC, 50, 360); PlayTone(440, 500); Wait(500); OnFwdSync(OUT_BC, 50, -100); Wait(1000); Off(OUT_BC); PlayFile("Good Job.rso"); Wait(700); }

16 7/1/09Harry Howard, CPST 410, Tulane University16 SillyProgram.nxc with 3 functions void StartUp() { OnFwdSync(OUT_BC, 50, 100); Wait(1000); Off(OUT_BC); GraphicOut(0, 0, "faceopen.ric"); Wait(500); } void ImportantStuff() { RotateMotor(OUT_BC, 50, 360); PlayTone(440, 500); Wait(500); } void ShutDown() { OnFwdSync(OUT_BC, 50, -100); Wait(1000); Off(OUT_BC); PlayFile("Good Job.rso"); Wait(700); } task main() { StartUp(); ImportantStuff(); ShutDown(); }

17 7/1/09Harry Howard, CPST 410, Tulane University17 Next time  Parallelism.


Download ppt "Encapsulation Day 11 Computer Programming through Robotics CPST 410 Summer 2009."

Similar presentations


Ads by Google