This Raspberry Pi project book is not only about building a series of interesting projects but also about providing an education regarding the underlying project technologies. I am positive that my over-30-years’ experience as a college educator forced me to ensure that readers could not only build the projects but also understand why they function as designed.
Building a successful project is rewarding unto itself, but understanding why and how it functions is far more important. The reader should expect a manifold increase in experience with the Raspberry Pi if a commitment is made to expend the time and energy to complete most, if not all, of the projects. I learned a lot while completing them; sometimes things worked out fine, while other times they were not successful. But that’s the joy of experimenting. As Professor Einstein once stated, “Anyone who has never made a mistake has never tried anything new.”
The joy of learning about and building projects is the core concept within this book. I designed and built all of the projects, and along the way gained a lot of knowledge about the Linux OS and how it really shines as an embedded development platform.
I will not recap the projects here other than to state that the complexity increases from the book’s beginning to its end. And this is how it should be, as experience and confidence in dealing with Linux and the Python language are progressively gained by proceeding through the projects.
Experienced Linux developers should feel free to jump into any of the projects; however, there are useful hints and techniques sprinkled throughout the book, which might be missed by taking a selective approach to reading it. I have also tried to point out the constraints and limitations of the Raspberry Pi as I encountered them when designing and building the projects. Just keep in mind, a $35 computer simply cannot meet all expectations.
One disclaimer that I feel is warranted relates to the Python programs. These programs, while fully functional for the respective projects, are probably not in their best form. As I tell my beginning programming students, there are many ways to develop functional programs. Some are better than others—not necessarily right or wrong. With this perspective, I tried to keep the programs simple and to the point, and to avoid any unneeded complexity.
All of the book’s projects can be expanded and modified as desired. I strongly recommend that readers do so, as that is one sure way to understand the concepts and bolster skills. The ability to experiment has been described as one of the key attributes that modern employers are looking for in twenty-first century employees.
Donald Norris