====== 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]]