Want to get better at coding Elixir? Write a hardware project with
Nerves. As you build this binary clock, you'll build in resiliency using
OTP, the same libraries powering many commercial phone switches. You'll
attack complexity the way the experts do, using a layered approach.
You'll sharpen your debugging skills by taking small, easily verified
steps toward your goal. When you're done, you'll have a working binary
clock and a good appreciation of the work that goes into a hardware
system. You'll also be able to apply that understanding to every new
line of Elixir you write.
Combining software with hardware can be frustrating, but you can become
proficient in no time by taking a simple, logical approach. Blinking a
single LED is the traditional "hello-world" of embedded systems.
Building your own binary clock is the logical next step. It blinks
groupings of LEDs based on the system time. This guide walks you through
a working project using the techniques used by experts who build
software for hardware every day.
This common sense project moves forward in tiny, logical steps. As you
progress, you can verify each step before moving on to the next. You
don't have to be a Nerves novice to benefit from this project. Become a
better Elixir programmer as you build your own desktop showpiece. With a
layered approach to software design, you'll learn to control the
complexity of your programs the way the experts do by focusing on one
small slice of your system at a time.
When you're done, you'll have your own binary clock, and also more of
the tools you need to design and build your own Nerves and Elixir
projects. You'll also be a better programmer with a deeper appreciation
of layering techniques for controlling complexity.
What You Need:
This project is for Elixir developers who want to get started with
Nerves, or improve their skills. The project is designed for Elixir 1.11
and Nerves 1.7, but later versions will probably work as well with
slight modifications. The project uses a Raspberry Pi zero with a set of
components. With slight modifications, you can make this book work with
other components as well.