INTERMEDIATE PROGRAMMING LESSON Debugging Techniques By Droids Robotics

INTERMEDIATE PROGRAMMING LESSON Debugging Techniques By: Droids Robotics

LESSON OBJECTIVES 1) Learn the importance of debugging 2) Learn some techniques for debugging your code © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 2

WHY DEBUG? • Debugging is a useful strategy to figure out where in your program something is going wrong or what went wrong • Once your code starts to become long or complicated (e. g. using sensors), it can become hard to figure out where in the program you are • The following slides show you some ways of knowing where you are in your program or knowing what values your sensors see • You will see that these techniques can be VERY USEFUL to any programmer. Locate Error Think of Solution © 2015, EV 3 Lessons. com, (last edit 4/5/2015) Fix Error Re-Test Program HURRAY! 3

DIFFERENT TECHNIQUES Play Selected vs. Button Press • Very similar techniques • Lets you try out smaller portions of code • Play Selected requires bluetooth • Button Press requires some care so you don’t jostle the robot when pressing the button © 2015, EV 3 Lessons. com, (last edit 4/5/2015) Light, Sound and Display • Very similar techniques • Light and Sound are used in the same way • Teams enjoy the sound more and it is easier to identify sometimes • Display Block comes in handy for knowing what block is played if your robot gets stuck and if you want to see the sensor values 4

PLAY SELECTED • Play selected is useful for running small parts of the program • Use when you don’t want to wait for your robot to complete other parts of the program before getting to the part you want to see • If you don’t have bluetooth built in the computer, we recommend that you purchase a bluetooth dongle (US $10 -15) because it makes this type of debugging easier • To use, highlight the parts of the program you want to run and pick the play button with the parentheses (>) © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 5

“WAIT FOR” BUTTON PRESS • To place a Wait for Button Press block in your program, place a wait block into your program • Go under brick buttons > compare > brick buttons, then choose which button needs to be pressed to continue the program • Place these wait for button presses every block or two close to where the robot is not working correctly • This can help you pinpoint which block is causing the robot to fail • The robot will stop and “wait for you to press the button” © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 6

VISUAL ALERTS: BRICK STATUS LIGHT BLOCK • Brick status light blocks can be used for warnings • Place these blocks at critical steps in your program • You will then be able to visualize what block is playing and figure out where the error might be Brick Status Light block © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 7

SOUND ALERTS: SOUND BLOCK • You can insert different sounds at intervals (about every 5 blocks or so, and then run the program again while listening for beeps. • Once you pick Play Tone, select Play Type and pick “play once” • These sounds can help you narrow down where in the program something is going wrong. Sound block © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 8

PRINT TO SCREEN: DISPLAY BLOCK • Showing which block is playing on your robot • Helps identify what block the robot is stuck on Move inches Light-1 100 • Seeing the sensor readings – to see what the robot sees! © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 9

SAMPLE VIDEO ON NEXT SLIDE • The video on the next slide is NOT intended as a solution to the Search Engine mission and isn’t even very good code to get there • Instead, what you should look at is how debugging techniques were used during the run • Wait for button press • Sounds alerts • Brick lights • Sensor readings displayed on brick © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 10

SAMPLE VIDEO – CLICK TO PLAY © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 11

OTHER METHODS • Recordings: • You can record your runs with a camera. Then watch each run and observe what went wrong • Comments: • You can also use “comments” to help debug – we add comments to remember what older values were entered into a block. We watch the run and then adjust these values © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 12

DISCUSSION GUIDE • What are some good ways of debugging your code? • Ans. Any of the techniques mentioned in this lesson © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 13

CREDITS This tutorial was created by Sanjay Seshan and Arvind Seshan from Droids Robotics. More lessons are available at www. ev 3 lessons. com Author’s Email: team@droidsrobotics. org This work is licensed under a Creative Commons Attribution. Non. Commercial-Share. Alike 4. 0 International License. © 2015, EV 3 Lessons. com, (last edit 4/5/2015) 14
- Slides: 14