Apress has recently published a new book by Armstrong Subero: “Programming Microcontrollers with Python”
The book uses CircuitPython examples throughout in teaching how microcontrollers may be programmed.
The landscape of embedded systems development is changing, microcontrollers are becoming more powerful, and the rise of the internet of things is leading more developers to get into hardware. This book provides the solid foundation to start your journey of embedded systems development and microcontroller programming with Python.
The theme of the book is simplicity and the cleanness and elegance of Python makes that possible. Featuring a step-by-step approach, this single source guide balances complexity and clarity with insightful explanations that you’ll easily grasp.
What You’ll Learn
- Review microcontroller basics and the hardware and software requirements
- Understand an embedded systems general architecture
- Follow the steps needed to carry a product to market
- Take a crash course in Python programming
- Program a microcontroller
- Interface with a microcontroller using LCD and CircuitPython
- Use and control sensors
Who This Book Is For
Those getting started with microcontrollers, those new to C, C++, and Arduino programming, web developers looking to get into IoT, or Python programmers who wish to control hardware devices.
I bought the book and here are my impressions:
- The book provides a good overview on what microcontrollers are and the power of newer 32-bit devices
- There is information on electrical parts for beginners
- A chapter on embedded systems useful for more advanced applications
- An introduction to Python as a language
- Basic microcontroller interface circuits
- Using microcontroller features: Analog to Digital, serial, SPI, and I2C communications
- Interfacing to displays
- Controlling DC motors, and
- Interfacing with sensors
The material is explained well and should be useful for beginners. All the examples are fairly basic, there are no tutorials on how to build larger projects.
The topic of programming hardware is really broad. Armstrong does well to narrow the scope to introductory topics. The book provides a good introduction and has reference circuits and code for basic interfaces. The intent is to provide a foundation from which to build from.
This book would not be as helpful for more experienced microcontroller programmers unless they are looking at moving from a different language to CircuitPython. The book should not be considered a broad reference to the capabilities of CircuitPython or the 300+ libraries available for interfacing with hardware and performing involved functions.
Overall, if you are fairly new to microcontrollers, Python, and interfacing parts to Microcontrollers and using code to provide input and output, this may be a great book for you.