Sensors, wat kan je er zelf mee maken..
(dit is een repost van mijn opgeheven blog, de inhoud is waar nodig geupdate)
Misschien heb je je wel eens afgevraagd hoe bijvoorbeeld de microfoon in je telefoon werkt, hoe je telefoon merkt dat je het scherm draait en automatisch het beeld aanpast, of hoe een weerstation de luchtdruk en temperatuur meet en een hoogtemeter weet hoe hoog je zit. Voor al die dingen zijn de afgelopen eeuwen sensoren gebouwd, een bekend voorbeeld is de thermometer. Tegenwoordig zijn veel van die sensoren heel klein en kunnen ze ingebouwd worden in bijvoorbeeld telefoons, die de wereld om ons heen kunnen uitlezen en dit kunnen doorgeven als een digitaal signaal. Heel veel van deze sensoren zitten tegenwoordig ook in auto's, koelkasten en zijn verbonden met het Internet. Hierdoor is het mogelijk dat je op afstand weet wat de temperatuur is in je koelkast en je de temperatuur zou kunnen aanpassen of dat de garage weet dat er storing is in de auto waarvoor deze binnenkort langs moet komen.
Ik heb een GitLab omgeving gemaakt om te leren hoe je zelf een sensor gestuurd apparaat kan bouwen en om te begrijpen hoe het werkt. Hiervoor gebruik ik de MCP2221 van Adafruit, een electronisch bordje dat je met een USB stekker verbindt aan je computer en waarmee je sensoren kan uitlezen en aansturen. De opdrachten in de Gitlab omgeving zijn deels op basis van het Adafruit learn programma, inclusief code en uitleg, maar dan in het Nederlands. Soms zijn de lessen aangepast naar het gebruik met de MCP2221 in combinatie met programma's op de computer zoals Python, Mu-editor of Jupyter Notebooks.
Opbouw lessen:
- Les 1 gaat over het klaarzetten en testen van alle onderdelen, het installeren van de software op je computer. Je krijgt uitleg over de sensoren en wat je er mee kan maken.
- Les 2 gaat over het gebruik van de I2C connectoren, het protocol en hoe je dit vanuit de mu-editor allemaal in Python programmeert.
- Les 3 gaat over analoge connecties maken en waarden uitlezen hiervoor gebruiken de potentiometer (de draaiknop) en de mogelijkheden voor ADC/DAC van het MCP2221 bordje.
- Les 4 gaat over de GPIO poortjes en hoe je bijvoorbeeld een LED-lampje kan laten branden.
- Les 5 alles combineren...
Elke les duurt ongeveer een uur, waarvan je het grootste deel zelf met de spullen aan de slag gaat.
Wat heb je nodig..
In het pakket dat ik samengesteld heb zitten de volgende onderdelen:
- MCP2221, incl. 4 STEMMA/QT QWIIC kabels van verschillende lengtes
- 4 sensoren:
- LSM6DS33 een beweging sensor die meet of je project beweegt en hoe snel
- DPS310 temperatuur en luchtdruk sensor
- PCT2075 temperatuur
- VCNL4040 afstand en licht meter
- Adafruit STEMMA Speaker, incl. STEMMA kabel
- OLED schermpje 128x64, I2C
- Breadboard, incl. kabeltjes van verschillende lengtes
- USB-C kabel
- 5mmm LED lampjes (2x groen, blauw, geel, rood en wit)
- Drukknopjes (2x groot, 2x klein, 1x micro)
- Lichtweerstandje
- Weerstanden (5x 1kOhm, 5x 330Ohm, 6x 10kOhm)
Voor de projecten waar je geen gebruik maakt van I2C connectoren (de “stekker” voor de sensoren), is het beter om de headers op de MCP2221 te (laten) solderen. Veel leveranciers van dit bordje bieden een soldeer service aan (het is wel leuk om zelf te kunnen solderen, zeker als je je eigen project wil bouwen).
Verder heb je nodig een PC/Mac met daarop:
- Python 3
- muEditor
- de Adafruit circuit python libraries van de MCP2221 en de sensoren
- afhankelijk van de tutorials Jupyter Notebook
In de les installeer je alles zelf, dus je hoeft alleen een werkende laptop te hebben.
Waarom Adafruit MCP2221
Het grote voordeel van deze connector is dat je er direct mee aan de slag kan vanaf je laptop en je op een makkelijke manier toegang krijgt tot de wereld van sensoren. Deze manier verschilt niet heel veel van de het maken van code voor Arduino, de CircuitPython bordjes van o.a. Adafuit of de Raspberry Pi. Daardoor is de code die je maakt ook snel over te zetten naar deze CircuitPython of MicroPython geschikte bordjes. Verder levert aansluiten op de PC nog extra voordeel op, zo kan je programma's draaien op je PC die te zwaar zijn voor de kleine bordjes. Programma's die bijvoorbeeld mooie grafieken of interactieve websites publiceren op basis van je sensor data. Er zijn meer van dit soort connectoren, het voordeel van deze van Adafruit is dat er veel voorbeeld code voor is en er veel mensen actief projecten mee bouwen.