Friday, March 6, 2015

Afstand 'Voelen' tips en trucs

-SOME ENGLISH BELOW-
Deze post moet wat achtergrondinformatie geven bij mijn Maakbare Wereld stuk in de Volkskrant op zaterdag 7 maart 2015. Ik heb hier een soort handschoen gemaakt die meet hoe ver weg objecten zijn en dit doorgeeft door harder en zachter te gaan trillen. De afstand sensor is een HC-SR04 en microcontroller die alles regelt is een Trinket van Adafruit.


Het uiteindelijke resultaat

Het filmpje laat zien hoe alles in elkaar gesoldeerd is, maar nog niet hoe het er uiteindelijk uitziet.

In de krant zijn er een aantal details waar ik niet op in ben gegaan, omdat ze redelijk technisch zijn of omdat er gewoon niet genoeg plaats was. Als je de behoefte hebt om iets vergelijkbaars te maken is de kans groot dat je een aantal vragen hebt of problemen tegenkomt. Ik zal er een paar opnoemen en later er verder over uitweiden.

Waarom heb ik een batterijhouder gebruikt met 3AA batterijen, da's toch superzwaar?
Voor de afstand-voel-sensor-handschoen heb ik een Trinket gebruikt van Adafruit. Het installeren van de Trinket gaf mij nogal wat problemen.
De trilmotor kan op verschillende sterktes trillen, maar daar komt nog wat elektronica bij kijken.
De afstandssensor kwam niet met een handleiding en daarvoor heb ik goed moeten zoeken naar voorbeelden en wat moeten testen om het goed te laten werken in dit project.

Als je nog andere vragen hebt dan kan dat altijd helemaal onderaan in het commentaar gedeelte.

Batterijhouder

Sommige ontwerpbeslissingen neem je terwijl je bezig bent en achteraf ga je dan twijfelen. Ik kwam een natterijhouder tegen voor 3AA batterijen met aan/uit schakelaar, USB uitgang en een riemclip. Ik wist dat er genoeg spanning uit zou komen en bovendien door de USB uitgang hoefde ik ook niks te solderen. De Trinket kun je namelijk ook spanning geven door de USB ingang. Er zijn ongetwijfeld kleinere en lichtere batterijen, maar op dit moment kan ik hem aan een broekzak hangen en daardoor hoef je geen enkel gewicht aan je hand te dragen.

Trinket installeren

Volg de handleiding. Serieus, er staat een hele lap tekst op de Adafruit website en dat is niet voor niks. En zelfs dan vond ik het nog knap lastig om het aan de praat te krijgen. Het grote probleem was dat mijn Windows 8.1 het niet leuk vindt om een apparaat te installeren dat hij niet kent. Als je bootmenu van je computer eng vindt dan zou ik adviseren om iets anders te gebruiken,bijv een Arduino micro. Het kost iets meer, maar het is vast sneller te installeren.

Ik moest uiteindelijk in mijn 'Advanced Boot Options' aanvinken 'Disable Driver Signature Enforcement' waardoor mijn computer in een Test Mode kwam en daarna ging het installeren gelukkig goed. De computer uit Test Mode krijgen was weer wat zoeken, maar ik moet bekennen dat ik vergeten ben welke tip dat was.

Trilmotor bedienen

Ik heb dit voorbeeld gevolgd. Ik had niet exact dezelfde componenten, maar dat maakt niet zoveel uit. Het is wel belangrijk dat je iets hebt. De transistor is er voor om de spanning te kunnen variƫren, de weerstand om te zorgen dat er niet teveel stroom loopt en de diode zorgt ervoor dat de niet een spanningspiek de verkeerde kant opgaat.

Afstandsensor

De afstandsensor die ik gekocht had is redelijk veel voorkomend. Ik heb ook nog een infrarode sensor geprobeerd, omdat die nog iets kleiner is, maar heb die niet gekozen omdat deze voor hele korte afstanden (1 a 2 cm ) niet nauwkeurig meet. In mijn testopstelling op een breadboard en met een Arduino Uno werkte het eerste simpele voorbeeld dat ik op internet tegenkwam al goed. Toen alles gesoldeerd was aan de Trinket waren er wat problemen. De sensor zendt geluid uit en kijkt dan hoe lang het duurt voordat het terug komt. Dit leek niet goed te gaan, want de Trinket reageerde maar heel af en toe.
Uiteindelijk kwam ik er achter dat het nodig was om bij het meten van de tijd het volgende te gebruiken:

duration = pulseIn(echoPin, HIGH,3000);

Het laatste getal is de tijd voordat er een timeout is, in milliseconden (ms). Aangezien dit bij veel voorbeelden op internet niet vermeld wordt leek het me wel zo fijn om het hier te vermelden.

Conclusies

Dit was een erg leuk knutselproject. Zoals altijd had ik me vergist in waar de problemen zouden, maar uiteindelijk vielen de meeste wel mee als je er eenmaal mee begint. Ik hoop dat er mensen zijn die er wat inspiratie uithalen.


SHORT ENGLISH SUMMARY

For the Volkskrant newspaper I made a sensor to wear on your hand that tells you how far away objects are. I used a HC-SR04 distance sensor connected to a Trinket microcontroller from Adafruit. A buzzer/vibrating motor also from Adafruit was giving the feedback by vibrating harder of softer.

Installing the Trinket driver was pretty challeging. I needed to 'Disable Driver Signature Enforcement' in the 'Advanced Boot Options'.
Quick remark about the HC-SR04. I had to use the following line to read the time it takes for the sound to come back to the sensor:
duration = pulseIn(echoPin, HIGH,3000);
The last number is a timeout variable, and without it the Trinket didn't respond. Most examples don't have itso it's worth mentioning here.
For the buzzer use this example from Adafruit.
Sorry for the short explanation, but I anyone has any question put them down below in the comments.

2 comments:

  1. Beste Cor,

    Ik ben op zoek naar een betaalbare scheurmeter die over een langere periode gegevens kan verzamelen (bijv 5 jaar).
    Het is de bedoeling ze in Groningen te gebruiken. Heb jij tips?

    Hans

    ReplyDelete
  2. Beste Hans,
    Ik ken er geen
    Ik kwam wel dit onderzoek tegen:
    http://www.iti.northwestern.edu/acm/articles/geostrata.html
    Maar ik zag niet waar ze de sensoren vandaan hebben.
    Volgens mij maken mensen vaak foto's om te vergelijken, maar dat is redelijk arbeidsintensief. en niet heel nauwkeurig.
    Is zelf iets maken een optie?

    Cor

    ReplyDelete