Week 1: August 28 September 3 - ngetachew/Portfolio GitHub Wiki
This week was primarily about learning the skills necessary to be able to work with the hardware and software that we’ll use in the future. The first step was learning how to use Git with Github. GitHub is a cloud sharing software for code. It makes it easier to collaborate on projects and store files. Despite my prior experience, I still found it challenging because I wasn’t accustomed to using Git Bash, the terminal that we used to interact with Git. I eventually was able to push sample sets of code to Github, and we practiced handling issues such as merge conflicts.
The next step was learning how to use Python and Kivy. Python is a high-level programming language that is extremely readable, and therefore, easy to use. I already learned Python in prior years, but it was good to brush up on my skills before programming with Kivy, a module in Python that is used for user interfaces and interacting with hardware. Kivy was completely new to me, so in order to learn it, I followed a tutorial to make a simple pong game using Kivy. The result was a semi-functioning game, so in order to challenge myself, I modified it to accept user input from the keyboard. This required some extra research, but I was eventually successful.
The next step for the team was learning how to deal with joysticks using Kivy. We initially did this on Windows computers with little difficulty using a module named Pygame, however, when we migrated to Raspberry Pi’s, we tried to use Kivy to interact with the joysticks because Pygame had been crashing the system. This proved to be problematic. We spent an entire class period trying to figure out how do this with no avail. The problem was that the Raspberry Pi’s weren’t able to detect the joystick input, despite recognizing it was connected. We tried multiple different solutions that were posted online until we found that it was nearly impossible. At this point, despite being told there would be consequences, I tried loading Pygame into the Raspberry Pi to see what would happen. To my surprise, it worked, and I was able to create a joystick controlled version of Pong on the Raspberry Pi.