I believe that all people seeking knowledge should have the opportunity to learn and grow, regardless of who they are or where
they live. A value that I hold is that if you know something, you have the responsibility to teach it. Living to this value does
not require you to be the best teacher or an expert.
You just need to be willing to pass along what you know and be open to taking the role of both teacher and student. This is a
distinguishing feature of human beings. Not only can we retain knowledge between successive generations, generations—that knowledge base can grow significantly over time.
Since 2012, I have been participating in the
Foro de Innovación Tecnológica (FIT)
at Universidad Galileo in Guatemala City. FIT brings together an alliance
of people with a passion for technology to offer an innovative learning experience to the students of Galileo as well as greater
Latin America. It offers a wide variety of hands-on learning experiences from topics such as embedded systems, IoT, automation,
robotics, video game programming and cyber security.
This year was the 15th anniversary of FIT and my task was to lead the Autonomous Vehicle Challenge (AVC). Inspired
by the EMEA NXP Cup, the AVC is a short 3-day learning experience where students are introduced to concepts in computer vision,
embedded programming and motor control. Each student was given a scale model car chassis and had to figure out to autonomously
navigate a track defined by color lines.
Bright minds. Bright futures. NXP team members create breakthrough technologies that advance our world. The future starts here.
Hardware for FIT XV AVC
This year we used FRDM-MCXN947
development board with a custom designed shield called the FRDM-AVC. The FRDM-AVC was designed to the provide IOs from the MCX
N947 needed to create an autonomous vehicle.
The FIT XV FRDM-AVC shield for use with the FRDM-MCXN947
The FRDM-AVC combines:
- A parallel camera interface to an OV7670 or OV5640 using the MCX N947 SmartDMA Engine
- A 320x240pixel IPS LCD display for visualizing camera data and processing algorithms
- Two H-Bridge circuits for controlling rear drive motors
- Encoder feedback circuitry for velocity measurements and control algorithm
- Steering servo outputs
- Potentiometers and buttons for user inputs and setting tuning parameters
- A Sparkfun Qwiic® / Adafruit STEMMA® QT compatible connector for I2C sensors
- Access to all FRDM I/Os
- XT-60 style connectors for use with common battery packs
- DC-DC converters to power the +5v and +3v3 circuitry
MCU technology has certain advanced since the days of the
FRDM-KL25Z
board and the
FRDM-TFC shield
that I designed for the Freescale Cup.
The
mechanical platform selected for the AVC uses
Akerman style steering
and gave students the same starting.
Many of the students were from an electronics or computer engineering background and this was their first time learning about
rear wheel differentials and the Akerman steering geometry.
Vehicle chassis for use with the FRDM-AVC and FRDM-MCXN947
The underlying goal was to show that embedded systems are where the physical and virtual worlds connect. I wanted to share with
them the excitement of sensing and controlling things in the physical world. For many in the classroom, this is the first time
coding on a computer screen to control something interesting in the real world.
Algorithms and Transformation
A key theme throughout the week was the power of transformation. How looking at data from a different perspective can change how
we approach a problem. In cases, it is the key component to making a problem solvable. After we learned the fundamentals of
our hardware, we did a deep dive into the camera interface and how the camera data would be formatted.
The students had the opportunity to experiment with the raw RGB data from the camera. What was seemingly easy for a human brain
to solve can be difficult when we had to develop a “mathematical machine” that can run on the MCX N947.
One of the first algorithms we studied was color space transformation. It was not long before everyone observed how something as
simple as “find the red line” could be challenging. As a first step into the world of computer vision, I lectured on color
spaces. Everyone naturally understood the concept of red, green and blue pixels from the camera. With some mathematics, they
learned new methods to represent color such as Hue, Saturation and Value (HSV) and YUV.
Color space transformation as a metaphor for solving engineering problems
When explained from the point of view that we can map a “cube” of colors onto a “cylinder,” the students experienced how the
abstract mathematics that they had been learning about in other coursework could be used in embedded systems. This was the
starting point to connect mathematics, software, sensors and the real world.
For me, the intent was to offer a glimpse of how powerful they could become by connecting the different pieces. The field of
embedded systems is more than microcontrollers and code, it is about connecting many engineering disciplines.
Introduction to Professional Embedded Tooling
Some of the students had experience in microcontroller and software.
However, the AVC was an opportunity to introduce them to professional tooling and debugging. The MCX N947 is a powerful
multi-core MCU. We learned a bit about how a dual-core application is structured and how tools like MCUXpresso can build a
multi-core application. Once again, this was to show where the MCU space is going with multi-core MCU architectures and the
tools available at their disposal.
MCUXpresso IDE Dual Core Build for the MCXN947
For a better experience, download the
image.
There were a lot of details, but the goal was to show what landscape is to empower these students to think and grow.
To load code and debug, we used the
Segger Ozone debugger
making using of the built-in debug hardware on the FRDM-MCXN947. This was to show how we could separate concerns in our tooling
and that the output of the compiler/linker could be used in different ways. The students got to learn about advanced features
such as live run-time variable monitoring and RTT logging.
Using the Segger Ozone Debugger with FRDM-MCXN947
For a better experience, download the
image.
There was even a case where a student had a hard fault due to a buffer overflow corruption. They got to learn firsthand how to
analyze the call stack to see where the problem code was. One of the best debugging tools was hands-on with the hardware
itself. They had the ability to view live camera data on the LCD screen and overlay lines and text to show them what their
algorithm was doing.
Resilience to Challenges
An important point is that all this transpired over three days. In many cases, this was the first time the students saw any of
the material. We also had to deal with real-world challenges. For months we had been preparing the hardware components. Even so,
it turned out that the car chassis that had been ordered a month before still did not arrive by day one. The students did not
have the full hardware set until the start of the final day.
Even so, several teams were able to show that they could navigate the track. While not ideal, the situation showed that being
resilient in the face of obstacles is as important as the technical details themselves.
Resilience to challenges
These students met the challenge with vigor. In fact, once they saw how interesting embedded systems could be, many wanted to
stay very late in the lab and get starting first thing in the morning.
Looking Forward
The pilot of the AVC brought challenges to both the students and the teachers! However, everyone left with a sense of pride and
anticipation for next year. Many of the students will be returning next year, now with a lot of more knowledge and a sense of
what they could accomplish. I wish I could communicate the excitement in the room when the first group figured out how to
navigate the track.
Using the FRDM-AVC Camera and LCD to develop control algorithms
I’m also anticipating how things will grow in the coming years. Going from barely navigating the track to zipping around at high
velocity in future events will be the most exciting, and I cannot wait to see the transformation.
I had the honor of doing the closing keynote at FIT XV. The theme was “Excellence in Embedded Systems.” Being “excellent” is not
only about technical acumen but being excellent as a whole person.
We left with this famous quote:
“Do what you can, with what you’ve got, where you are.”
Squire Bill Widener of Widener’s Valley, Virginia
Theodore Roosevelt: An Autobiography - chapter IX
The real-world of embedded system and engineering needs excellent people. We need those who can tackle problems, even when they
are difficult and when we do not have the ideal conditions to solve our problems. To me, that is a definition of “excellence.”
We are already looking forward to the next AVC at FIT XVI in 2025. It will be even bigger and better, and I can’t wait to see
how many will come to learn and grow. I know that I learn and grow as much as anyone else.