kort

Bij de zweefmagneet gebruik ik een hallsensor om de afstand tot de magneet te meten. Deze sensor meet magnetische veldsterkte en is daarom eveneens gevoelig voor het veld van de elektromagneet, en niet alleen de permanente magneet waarvan de afstand gemeten moet worden. Op zich geeft dat geen probleem in de praktijk, maar het is een leuke aanleiding om eens te kijken of de afstand ook op een niet-magnetische manier gemeten kan worden. Dat is ook handig als het object waar de afstand naar gemeten wordt niet magnetisch is, bijvoorbeeld.

Omdat dit een hele kleine afstand is (een paar centimeter), zijn veel kant-en-klare sensoren niet geschikt, omdat ze bijvoorbeeld meters afstand meten met een resolutie van enkele cm, of tientallen centimeters met enkele mm. De afstandssensor die ik voor de zwevende magneet nodig heb, moet een centimeter of 3 tot 5 kunnen meten, waarbij het eigenlijk niet eens belangrijk is wat die afstand precies is, als kleine veranderingen (sub-mm) maar goed opgemerkt worden.

Met een LED en een lichtsensor valt reflectief te meten wat de afstand tot een reflecterend object is: Hoe meer licht terugkaatst, hoe dichter bij het object is. Uiteraard lijken ‘ beter reflecterende’ objecten dan dichter bij dan ‘minder goed reflecterende’, maar bij steeds hetzelfde uniform gekleurde object geeft dat niet. (De uitdaging om dit toe te passen bij een zwevende magneet zit er in dat ook de hoek invloed heeft op de hoeveelheid licht die naar de sensor weerkaatst: de magneet beweegt niet alleen op en neer maar kantelt ook.)

Ik gebruik een BPW40 fototransistor als lichtsensor, maar bijvoorbeeld een LDR of een fotodiode kan ook. Ik gebruik een infrarode led, maar gewoon zichtbaar rood werkt ook. Voor zichtbaar geel is de BPW40 duidelijk minder gevoelig. Ik gebruik een Atmega328p als microcontroller, maar alles met een ADC is bruikbaar.

Zo is heel makkelijk en met goedkope onderdelen een afstandssensor te maken, voor kleine afstanden.

De afstandssensor heeft geen last van omgevingslicht, omdat de fototransistor AC gekoppeld aangesloten is. Constant omgevingslicht geeft een DC offset en de koppelcondensator blokkeert die.

De LED moet uiteraard wel met AC worden aangestuurd, zodat het (gereflecteerde) licht ervan een AC signaal veroorzaakt dat wèl door de koppelcondensator heen komt. Dit kan daarna worden gelijkgericht en gemeten, of zelfs rechtstreeks de ADC van een microcontroller in. Als dezelfde microcontroller de LED aanstuurt, is het gemakkelijk om ‘synchrone detectie’ toe te passen: Er wordt een ADC sample genomen precies op het moment dat de LED aan staat.

Al bij al zijn het 5 componentjes en een paar regels code. Makkelijk uit te proberen met deze arduino-sketch.

En het werkt mooi:

Waar bij Casper en Hobbes alles mogelijk is met kartonnen dozen, door er op te schrijven wat het is, maakte ik er een sjoelteller mee. Of eigenlijk, met 1 van de schipholdisplays (Displays, afkomstig van de luchtverkeersleiding, die zijn afgedankt en bij de MakerSpace terechtkwamen).

Voor dit type display heb ik een Arduino bibliotheek gemaakt zodat het makkelijk aan te sturen is: TCC 7003 display assembly arduino bibliotheek.

De teller werkt met reflectiesensors boven de poortjes waar de stenen onderdoor schuiven. Eventuele mis-tellingen kunnen gecorrigeerd worden met de knoppen bovenop. Ook kan de telling gereset worden voor de volgende speler/ronde (Er wordt niet per speler een score bijgehouden).

Sjoelen blijkt een wikipediapagina in het Koreaans te hebben. Ik kan die pagina niet lezen, maar wel de foto’s zien. Afgaande op die foto’s lijkt in Korea competitief gesjoeld te worden met elektronische telling. Dat vond ik een leuke ontdekking.

afbeelding van Koreaanse sjoelbak, afkomstig van https://ko.wikipedia.org/wiki/슐런#/media/파일:전자슐런_경기용.jpg
Afbeelding van https://ko.wikipedia.org/wiki/슐런#/media/파일:전자슐런_경기용.jpg