====== Software Setup ======
- Open the Visual Studio Code from the Applications directory on the flash drive
- Click on the small green square in the bottom left corner of the screen\\ \\ {{ :pibot:challenge2:softwaremac:s1.png |VSCode Main Screen}}
- Select the "Connect Current Window to Host..." option\\ \\ {{ :pibot:challenge2:softwaremac:s2.png |VSCode Remote-SSH}}
- Type "pi@pibot##.local" and press enter\\ \\ Replace the text "pibot##" with the label on the pibot The password to enter when prompted is "DogsAndCatsAreNice2." without the quotes. The '.' at the end is important! It may take a couple of minutes while it installs some files on the PiBot {{ :pibot:challenge2:softwaremac:s3.png |VSCode Remote Connection}}
- Click the "Open Folder" button\\ \\ {{ :pibot:challenge2:softwaremac:s4.png |VSCode Open Folder}}
- Select the "pibot" folder and click the "OK" button\\ \\ {{ :pibot:challenge2:softwaremac:s5.png |VSCode Browse}}
- Select the picar-line-maze.py file in the list on the left\\ \\ {{ :pibot:challenge2:softwaremac:s6.png |VSCode picar-line-maze.py}}
- Select File->Save As... and save the file as picar-line-maze-obstacles.py\\ \\ {{ :pibot:challenge2:softwaremac:s7.png |VSCode picar-line-maze-obstacles.py}}
- Use the information below to change the code so that the PiBot will solve the maze with obstacles
- After the changes to the code are complete, save it with File->Save
===== Software Explanation =====
* Copy the GPIO settings for the ECHO and TRIGGER pins as well as the servo setting from the picar-obstacle-avoid.py file
* Copy the measure function from the picar-obstacle-avoid.py file
* Copy the pwm.set_pwm function calls for the servo from the picar-obstacle-avoid.py file
* Copy the ob_range variable from the picar-obstacle-avoid.py file and use it to determine if there is an obstacle that the PiBot needs to avoid
* Include debugging prints to help troubleshoot if the distance measured doesn't seem to be working
* Make the changes to the intersection decision logic to sense for obstacles and react to any obstacles that are in the path\\ \\ It may be easiest to only take a sonar measurement after making a decision (and turn if necessary) at an intersection. If there is an obstacle then the PiBot will need to undo the decision (and turn).
* Bonus points if you include moving the sonar sensor in the PiBot's "Happy Dance" when it reaches the end of the maze :-)
[[:pibot:challenge2#software|Return to Challenge 2]]