When learning and using Python for automation, we usually write applications that can help us on computer related tasks, like downloading things, open programs, generating documents, etc, but Python gives us the opportunity to automate things beyond our computers.
For many years, people have been filling their home with devices that are based on Microcontrollers, like virtual assistants, smart fridges, washing machines, security systems, and many others that can be either programmable, or even replicated with a couple of boards and our Python knowledge.
During this activity, we will start exploring CircuitPython without the need of a physical device, using a microcontroller emulator. If you are new to the microcontroller world, don’t worry, we will have an introduction to the main concepts, so we have the base knowledge to start doing little experiments by ourselves.
After the introduction, you will be able to start programming microcontrollers using the emulator, and later you will see a couple of real projects (with real devices!) that could easily be replicated by yourself: a movement-detector, a low-cost robot cleaner, and a plant watering and monitoring system.
[Introduction]
Basic concepts
- Talk motivation
- Introduction to Microcontrollers and CircuitPython.
- How to use an emulator for hardware programming.
[Practical part]
Let’s code with a CircuitPlayground Express, using an emulator
in VS Code.
- lights-Neopixels.
- Temperature sensor.
- Light sensor.
[Experiments]
Using the code on real devices.
[Demo time]
In this section we will see how we can use all this knowledge to
help automating our home. You will see how we can build:
- Low-cost robot cleaner.
- Watering and monitoring plant system.
The Practical and Experimental parts, will probably be mixed for a more dynamic approach. This will depend on the group size.
Note: This emulator allows to program 3 different microcontrollers. We will program the Adafruit Circuit Playground Express (CPX) and the same microcontroller will be used for the experimental and demo part.