This is my second year of using the GoPiGo to take my students beyond using the turtle module in Python. Their assignment is to build an obstacle avoidance AI. I scatter the students’ backpacks in the front of the computer lab. Students must build upon my initial GoPiGo object and implement an algorithm that will get the car from one side of the room to the other without touching a backpack.
We had a lot of problems last year. We never quite figured out encoders. The WiFi issues with the RasPi2 were agonizing. But this year we’ve got some upgrades and I’m trying to get more students to the finish line. While I welcome all sorts of suggestions, here are my most pressing questions:
1. How can I check code before deploying?
Is there any way to run unit tests locally without having to deploy code to the Raspberry Pi? I’d really like to mimic a professional environment as much as possible. Any way I can run a sort of virtual GoPiGo so students can evaluate code before a live test?
2. How should students build off of my code?
This year I’m trying something new by having my students create their own child class. That way I can continue to build helpful methods to scaffold the project for students that are struggling. I can continue to add helpful methods. Does it look like a manageable approach? Any suggestions?
3. What's the easiest way to deploy code?
Presently students are using PyCharm CE and then pushing changes to a GitHub repo using the IDE. Students will then use PuTTy on their school computer to SSH into the GoPiGo and pull the updated code, then run
4. Is this approach teaching proper form?
I’m always interested in finding new ways to include typical standard operating procedures and best practices. I’m also trying to study and implement Python3-style solutions. Any suggestions on how to include more efficient and effective practices into this project would be appreciated.
5. What's next from here? MQTT? Google Cloud Vision?
I have a handful of students that are incredibly advanced for their age. They will quickly master the challenge. For these students, I’d like to give them a rigorous challenge that will contribute to the overall project. I could get them to use Mosquito and MQTT to aggregate data from all of the GoPiGo’s. I was also thinking of getting the advanced students’ GoPiGos a camera and asking they use vision recognition. Any thoughts?