Editor’s Note: This content is contributed by Joseph Yang, Kwee Peng Yap, Lian Heng Tan, and Pei Fern Ng
When you have a great idea but only a little knowledge of the hardware and/or software that you want to use, what should you do? Start taking classes and learning skills one by one or find the right tools that are easy to use? One passionate team at Xilinx was not discouraged when they realized they had limited knowledge of Arm processors and development tools they needed to successfully create a simple but fun game. Let’s hear their story.
Our team, who mainly does IC design, had very little knowledge about Arm® processors or the Vivado® Design Suite, but we still wanted to learn more about the Ultra96 development platform, so we decided to start a small project.
Hardware – Ultra96 board and Grove Ultra96 Board Sensors Starter Kit
The default development board is an Ultra96 board. In addition, we used the Grove Ultra96 board sensors starter kit. The reason we used this kit is that Grove Ultra96 board sensors starter kit contains the Ultra96 board sensors mezzanine board with several Grove modules such as LCDs, pushbuttons, and so on. Also, the Grove Ultra96 board sensors starter kit provides sample projects for all the included modules.
Figure 1. Grove Start Kit
Project Design
We decided to create a Word Color Match Game. The LCD had an RGB adjustable backlight, which is an essential part of the game. Whenever the background color matches the words displayed, the player needs to press a button to gain a point.
Figure 2. When the Background Color Doesn’t Match the Words Displayed
If the player fails to press the button when there is a match, the player loses one life. The game ends when the player loses five lives.
Figure 3. When the Background Color Matches the Words Displayed
Our project consisted mainly of
Figure 4. Hardware Configuration
Here’s how we partitioned the game
The Arduino and Zynq UltraScale+ MPSoC process inputs from their own set of connected Grove components and update their connected LCD independently. Since each subsystem is self-contained and communicates via UART, it was easy to partition the design among the team. We were able to independently develop portions of the project at the beginning and then easily integrate all portions when the subsystems were ready.
Finally, the Word Color Match Game board was born.
Figure 5. Color Match Game Board
Lessons Learned
Here’s what we’ve learned from this experience and about the Ultra96
Before the project, we were afraid of the steep learning curve, thinking it would take a very long time to complete a project. However, all four team members were able to understand the Ultra96 development platform within two months and appreciated the fast turnaround of developing code in Python and C in a Linux environment. Most importantly, we had fun!
Whether you're creating a simple design project or a more complex project from IoT to machine learning, this set up is the perfect way to get started. Want to learn more? Want to create your own projects? Here are a few links to help you to jumpstart your own projects:
Original Date: 12-14-2018