SlideServe
Menu
Préférences
© SlideServe · v2026

Encapsulation Day 11

ehren avatar
17 diapositives · 377 Views · Mar 19, 2012

Encapsulation Day 11. Computer Programming through Robotics CPST 410 Summer 2009. Course organization. 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. Encapsulation.

Encapsulation Day 11 - slide 1
01 / 17Encapsulation Day 11
1 / 17

Télécharger la présentation

Encapsulation Day 11
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. EncapsulationDay 11 Computer Programming through Robotics CPST 410 Summer 2009

  2. Course organization • 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. Harry Howard, CPST 410, Tulane University

  3. Encapsulation My Blocks vs. Functions

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

  5. 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!”. Harry Howard, CPST 410, Tulane University

  6. SillyProgram.rbt

  7. 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. Harry Howard, CPST 410, Tulane University

  8. 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. Harry Howard, CPST 410, Tulane University

  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. SillyProgram.rbt with MY BLOCKS Harry Howard, CPST 410, Tulane University

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

  13. 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); } Harry Howard, CPST 410, Tulane University

  14. Functions = My Blocksp. 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. Harry Howard, CPST 410, Tulane University

  15. 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); } Harry Howard, CPST 410, Tulane University

  16. 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(); } 7/1/09 Harry Howard, CPST 410, Tulane University 16

  17. Next time • Parallelism. Harry Howard, CPST 410, Tulane University