The "Lego Mindstorms: Mario Kart" project was launched in October 2014. The idea behind this is that the IT trainees at OTTO come together every Friday, every two weeks for a joint project in order to exploit synergies and also to specifically compensate for content that the vocational school cannot provide.
Hello dear technology friends!
In the following article, we want to give you a little insight into the tutorial "Lego Mindstorms: Mario Kart", which was launched as part of the IT specialist training for the 2012/13 cohorts.
Who is working on it, what technology is used and what is actually the goal of the whole thing? More about this now!
The "Lego Mindstorms: Mario Kart" project was launched in October 2014. The idea behind it is that the IT trainees at OTTO get together every Friday, every two weeks for a joint project in order to take advantage of synergies and also to specifically compensate for content that the vocational school cannot provide. Our team consists of seven IT students from the 2nd and 3rd year of their apprenticeship and is a mix of application developers and system integrators. The project is supervised by Christian Finckler.
The idea behind the project is as follows: Based on Nintendo's successful fun racer Mario Kart http://de.wikipedia.org/wiki/Mario_Kart, a racing game transferred to reality is to be designed and developed. At least two players will race against each other and will be able to influence each other by means of various gadgets. The robots will be controlled via an app for Android smartphones. The game logic and communication will be managed by means of a NodeJS server running on a Raspberry Pi.
With the Android app, the user can select one of the vehicles and then control it. The integration of powerups, which are supposed to be similar to the virtual original, is also planned. These are displayed in the interface and can be fired at the push of a button. In addition to one button each for acceleration and braking, the interface also includes a "D-pad" for directional control, a speed indicator and the familiar "Start" and "Select" buttons, which have been replaced in the current console generation.
In addition to a motor for acceleration and control, the karts realized with Lego also have sensors to scan the ground and thus stay on course (keyword: track boundaries, start/finish line as well as markings for PowerUps). The programming is done using Java and Lejos http://www.lejos.org/ The vehicle itself has no intelligence, but only receives the control signals from the server and sends it in turn its data such as speed, if necessary "position" or PowerUp.
The NodeJS server running on the Raspberry Pi receives support from a MongoDB database and also coordinates the communication between apps and the vehicles.
The communication is done using websockets. Both the vehicles and the Android apps log in to the server and the server redistributes the messages accordingly.
The implementation of this project has been ongoing since October 2014 and will continue until May 2015.
Of course, there have been a few hurdles to overcome up to this point. For example, Android programming was for almost everyone in the team, a closed book. With the help of forum posts and Google Marathons, it could be opened and read and understood with the support of Christian Finckler and Lennart Bartelt. Another challenge was that each team member could also apply and expand their knowledge in each area. By means of regular stand-ups we kept each other up to date and with changing pairing partners we made sure that no knowledge islands were created.
We would be happy about any questions, suggestions or comments!
As soon as we have reached the next milestone, we will certainly hear from you again.
We have received your feedback.