Arduino Sensor Kit
RadioLab, Uitzending do 18:00 ** March 31st, 2022 by wim.webgang **Met Marthe en Silvia ontdekken we vandaag de Arduino Sensor kit.
Silvia heeft op het einde een uitdaging in petto: een “useless machine”.
Useless Machine
Een useless machine is een toestel dat, eens je het inschakelt, zichzelf weer uitschakelt.
Uitleg hier www.artandpopularculture.com/Useless_machine ) en voorbeeld hier (EV3).
Uitdaging:
Maak een “useless machine”* met je favoriete bouwkit (bv Lego mindstorms/WeGo, of misschien zelfs met de sensor kit doos, mits uitbreiding?
Sensor Kit
De Arduino Sensor Kit draagt het officiële symbool van Arduino, en heeft een aantrekkelijke vormgeving; alles in een passende doos in de vorm van een klein koffertje.
Rechtsonder zien we dat het een samenwerking is met Seeed studio.
Het Arduino Sensor Kit Base bord bevat op een geconcentreerde manier een aantal sensoren en actuatoren rond een centraal stekkerveld met 12 “D” aansluitingen en 4 “A” aansluitingen, met ernaast gaatjes voor een “shield”.
Die zitten in een arduino-blauw (pcb) bord met bovenaan een meetlat van 15 cm op de rand gedrukt, en een centraal bord met behalve de voornoemde aansluitingen een led, drukknopje en schuifschakelaar. Het middendeel is omgeven door sensoren.
Plastieken kolommen (spacers) op de vier hoeken van het bord zorgen dat je het perfect in de bodem van de doos kan zetten, Daaronder blijft ruimte voor extra onderdelen en kabeltjes, waarvan er zes bijgeleverd zijn. Het zijn geel-wit-rood-zwart “grove” kabeltjes met 4-pins stekkertjes, negatief.
Op het bord hebben alle aansluitpunten 4 afgeschermde pinnen, waar de stekkers op passen, als een groot patch-paneel. De onderdelen zijn visueel goed te onderscheiden omdat ze gedeeltelijk uitgesneden zijn uit het moederbord. Ze lijken te zweven, en zijn met kleine stukjes verbonden met een soort kader errond, het lijkt op de onderdelen in een modelbouwset die je uit een frame moet knippen.
De onderdelen die we zien: “>OLED schermpje van net nog niet 2,5 op 1,5 cm, verder een rode led, instelpotentiometer, zoomer-luidspreker, lichtsensor, microfoonsensor, luchtvochtigheid en temperatuur, drukknop, draaknop, luchtdruk en bewegingsvoeler.
Er zitten verder geen andere losse componenten bij, en ook GEEN GEBRUIKSAANWIJZING. Daarvoor moet je online gaan op: sensorkit.arduino.cc. (Hieraan zie je dat het een officiële Arduino kit is: dit is de officiële arduino site).
Online
Online wordt je verwelkomd en krijg je de kans om een “klasje” op te zetten. Een virtuele klas waarin je anderen kan uitnodigen de cursus te volgen.
Maar je vindt er GEEN pdf met de handleiding, enkel de website waar je je door moet klikken, een print maken is er NIET VOORZIEN.
Je zit dus aan het scherm gekluisterd als je hier iets mee wil doen, geen lol met je laptop en de sensor kit op een afgelegen locatie / zonder internet.
Online leer ik waarom de componenten er bijna uitgesneden uitzien: je kan ze inderdaad uit het bord knippen en gebruiken als aparte componenten. Maar dan is de verbinding van de banen op het bord wel verbroken, en dan moet je er de bijgeleverde kabeltjes aan bevestigen (stekkers). Als je ze in het bord laat zitten zijn ze via banen in het bord verbonden met de centrale “Base”, en hoef je dus helemaal niets te pluggen. Behalve een Arduino natuurlijk, en daarop een usb-kabel naar de computer. Die zorgt normaal voor genoeg stroom zodat je geen aparte adapter nodig hebt.
Base Shield
Het middelste bord is eigenlijk een “shield”, dat bovenaan gaatjes heeft om er eventueel nog boven op te bouwen. Onderaan heeft het bord dus pinnen die in de Arduino passen. Ze worden beschermd door een mousse kussentje, dat je moet verwijderen voor gebruik. Je hebt bv een UNO R3 nodig. De schuifschakelaar moet (naar boven) op 5 volt staan voor gebruik binnen deze kit (kan ook naar 3V voor andere toepassingen). Dat Base Shield bestaat in bijna dezelfde vorm ook als apart te verkrijgen bord, alleen wijzen de schakelaar en de reset knop dan naar de zijkant ipv naar boven.
Eens de Arduino onder het Base shield zit, kan je die terug in de doos zetten om samen te bewaren, maar niet om hem zo te gebruiken, omdat de USB-kabel dan tegen de behuizing zit. Ik heb dus een vierkante doorgang in de doos gesneden om de usb kabel aan te kunnen sluiten terwijl het bord in de doos blijft zitten. Je kan hem eventueel in het deksel zetten, dat minder diep is, en dan de usb kabel aansluiten, hoewel het niet helemaal stabiel zit.
Behalve een Arduino R3 heb je nog de libraries nodig om de componenten te gebruiken vanuit je software, en de Arduino IDE, een editor/programmeeromgeving (online/offline).
Clone?
Eigenlijk had ik liever pdf’s gezien van de documentatie en de projecten/lessen, zodat je die offline kan bekijken, voorbereiden, nalezen enz. Op zoek naar meer documentatie stootte ik op een heel vergelijkbare set van Seeed studio: de “Grove Beginner Kit for Arduino”. Die heeft dezelfde vorm, maar in het midden zit een ander bord, daar zit een “Seeeduino Lotus”. Dat is een combinatie tussen een “base shield” met de vele aansluitingen voor kabels met grove stekkers, en een Arduino-uno compatibel bord (Seeduino 4). Daarmee heb je voor dezelfde prijs dus een onmiddellijk werkende combinatie, omdat je er geen Arduino meer moet op/onder pluggen. Zij maken trouwens ook de gewone Seeeduino zonder grove contacten, die compatibel is met de Arduino maar goedkoper, en in principe ook op de sensor kit gebruikt kan worden.
https://sensorkit.arduino.cc/sensorkit/module/getting-started/lesson/00-getting-started
De sensorkit site zit mooi in elkaar; er wordt eerst uitgelegd hoe alles aan te sluiten, en dan worden alle onderdelen voorgesteld, heel duidelijk met goede beelden, je kan dit doornemen zonder de Kit er bij te hebben. De programmeeromgeving wordt voorgesteld, en dan volgen een aantal “lesjes”.
De online lessen zijn eenvoudig te gebruiken, je krijgt telkens ook de code aangeboden. Die kan je kopiëren en in de Arduino programmeeromgeving plakken. Ze overlopen één voor één alle componenten en laten toe onmiddellijk te leren wat die doen en hoe ze aangestuurd worden:
The LED
The Button
The Potentiometer
The Buzzer
The Light Sensor
The Sound Sensor
The Air Pressure Sensor
The Temperature Sensor
The Accelerometer Sensor
The OLED Screen
Ontbrekende documentatie
- Gaatjes
Uitleg waar de kleine metalen rondjes met een gaatje in het midden voor dienen. Die zitten telkens op de verbindingsstrookjes van de componenten aan het moerderbord, en tegen de component. Je ziet een gaatje per baan op het moederbord. (hier goed zichtbaar )
Ik heb ze zelf gebruikt als meetpunt; je kan er de pinnen van je voltmeter in zetten om uit te meten wat er gebeurt op het bord, bv als je twijfelt welke aansluiting iets is, of een component wel signaal krijgt enz.
Doordat het gaatjes zijn zou je er ook een draadje in kunnen solderen als je bv de componenten uit het bord snijdt. Dan moet je wel opletten dat je mooi in het midden van de verbindingsstrook snijdt, en niet bv breekt waar de gaatjes zitten. Je zou kunnen denken dat de gaatjes een perforatie zijn om daar de onderdelen uit het bord te breken, maar dat is integendeel gevaarlijk omdat op die plaats door de open koperen stukjes kortsluiting kan ontstaan tussen de banen. - Aansluitingen
Een overzicht van de aansluitingen van de componenten in het bord naar de Base: Ik vond nergens documentatie om te weten welke sensor op welke poort/pin van de Arduino is aangesloten, behalve dat ik het kan afleiden uit demo-programma’s. Ik maakte onderstaand lijstje:
(tussen haakjes die van het grove bord, die dat wel in documentatie heeft)LED: D6 (Grove: D4)
Zoemer: D5
Drukknop: D4 (Grove : D6)
Temperatuur: D3
PotMeter: A0
Lichtsensor: A3 (Grove: A6)
Micro: A2
Luchtdruk: I2C
Beweging: I2C
OLED: I2C
… om nadien te ontdekken dat ze op het bord geprint staan!
Links
- Sensorkit van Arduino:
sensorkit.arduino.cc - Aanvullende technische informatie:
libraries/arduino_sensorkit/ - Aan de slag:
lesson/00-getting-started - Webgang aanpassingen aan originele “Lessons”:
https://gitlab.com/webgang-arduino/sensorkit-audiotest
(ik probeerde aangepaste versies te maken voor een RadioLab, waarbij ik de “led” reaktie vervang door de zoemer). - Documentatie:
Github docs - Programmeren:
Language Reference - Voor gebruik van i2c : de Wire library
https://www.arduino.cc/en/Reference/Wire - Seriële communicatie: Serial Peripheral Interface of SPI
https://www.arduino.cc/en/reference/SPI
Toepassing:
Als je een sensor koopt van dezelfde “grove” familie, die bv de luchtkwaliteit meet (CO2 waarde), kan je die gemakkelijk aansluiten en de doos met wat programmeerwerk omvormen tot CO2 meter:
(Zie ook: CO2 meter met Arduino).
ps: In deze uitzending sloten we de stekker op een verkeerde plaats aan omdat we niet meer wisten welke de juiste was nadat we ze hadden uitgetrokken). Een blik in de broncode van het programma leerdat dat het de i2c bus had moeten zijn…
Let’s Grove
Het Seeeduino Lotus bord in de “Grove Beginner kit for Arduino” zou voorgeprogrammeerd zijn met een soort demo-mode, die bij het aanzetten al werkt.
Van de Grove Beginner kit kan je wel de voorbeelden afhalen en afdrukken uit een soort online wiki die je als pdf kan afhalen, wat veel handiger is omdat je op het scherm al met de programmeeromgeving bezig bent. Je kan die in principe ook gebruiken voor de Arduino Sensor Kit, maar de code moet soms aangepast worden omdat de nummers van de poorten kunnen verschillen. Zo zit bij Arduino de LED op pin 6 en bij Grove Kit op D4.
In de Documentatie van deze Seeed variant krijg je een mooi overzicht van de modules en op welke pin ze aangesloten zijn.
Enkele mooie aanvullingen op de kennismaking met de Arduino:
- PWM uitleg, en toepassing op bv LED. Daarbij gebruik je een grove kabel om een alternatieve aansluiting te maken naar de LED.
- OLED: het scherm dat ingebouwd is op het bord en maar summier aan bod komt in de inleiding van Arduino, wordt iets beter uitgelegd, maar ze doen er nog minder mee, ze zetten enkel een vaste tekst op het scherm. Ze verwijzen wel naar de U8g2 library voor meer.
Ook op de site van Arduino (sensor kit) wordt verwezen naar de Seeed documentatie als Grove-OLED_Display_0.96inch/; en de U8G2 library op GitHub
Eigenlijk is het spijtig dat niet alle voorbeelden naar het scherm schrijven ipv naar de “seriele monitor” op de pc.
(terwijl ik mooie grafische effecten heb gezien in filmpjes op internet. Eigenlijk moet het mogelijk zijn om een grafiekje van meetwaarden voorbij te laten rollen..)
Documentatie: https://wiki.seeedstudio.com/Grove-Beginner-Kit-For-Arduino/
(Teksten: 4/2/2022,- na de uitzending update 03/04 )