Inhoudsopgave:

Infrarood dobbelsteensensor - Ajarnpa
Infrarood dobbelsteensensor - Ajarnpa

Video: Infrarood dobbelsteensensor - Ajarnpa

Video: Infrarood dobbelsteensensor - Ajarnpa
Video: Bokoesam - Infrarood ft. Idaly & Ronnie Flex (prod. Krankjoram & Garrincha) 2024, November
Anonim
Infrarood dobbelsteensensor
Infrarood dobbelsteensensor
Infrarood dobbelsteensensor
Infrarood dobbelsteensensor

Mijn naam is Calvin en ik zal je laten zien hoe je een infrarood dobbelsteensensor maakt en uitleggen hoe het werkt.

Ik ben momenteel een Taylor University-student die Computer Engineering studeert en mijn team werd gevraagd om een mechanisme te ontwerpen en te bouwen dat elk object kan sorteren dat in een vierkant van 1 inch past. We hadden de makkelijke weg kunnen nemen en ervoor kunnen kiezen om m&m's te sorteren met behulp van een eenvoudige kleurensensor, maar we besloten om verder te gaan en dobbelstenen te sorteren op het getoonde aantal. Na talloze uren proberen een gids te vinden over het lezen van het gezicht van de dobbelsteen, kwam ik deze link hier tegen:

makezine.com/2009/09/19/dice-reader-versio…

Deze link gaf me echter niet veel meer dan het idee hoe ik het gezicht van de dobbelsteen moest lezen, dus met behulp van het idee dat werd gegeven, ging ik op weg om een sensor te bouwen en te ontwikkelen die kan worden aangesloten op een Arduino gemakkelijk en kan het gezicht van de dobbelstenen zo nauwkeurig mogelijk lezen, waardoor we deze infrarood dobbelsteensensor hebben.

Benodigdheden

Nu op naar de benodigdheden:

Je zal nodig hebben:

1 x Arduino Uno

5 x IR-ontvangers

5 x IR-zenders

www.sparkfun.com/products/241

5 x 270 ohm weerstanden

5 x 10k ohm weerstanden

1 x 74HC595N-chip

verschillende mannelijke headers

1 x Prototype bord (als je geen op maat gefreesd bord krijgt)

Stap 1: Begrijpen hoe het werkt

Begrijpen hoe het werkt
Begrijpen hoe het werkt
Begrijpen hoe het werkt
Begrijpen hoe het werkt

Deze sensor gebruikt 5 pip-locaties om de gezichten van de dobbelstenen te lezen. Het gebruikt infraroodlicht om op deze pip-locaties van de dobbelsteen te weerkaatsen en vertelt de controller of deze wit of zwart is.

Je vraagt je misschien af, waarom dan maar 5 pip-locaties? Zou je niet alle 9 nodig hebben om de dobbelstenen effectief te lezen?

Welnu, vanwege de symmetrie van de dobbelstenen kan het gebruik van 5 specifieke locaties op de dobbelstenen voldoende zijn om het verschil te zien tussen de verschillende nummers op de dobbelstenen, ongeacht de oriëntatie (afbeelding 1). Dit maakt de dobbelsteensensor efficiënter omdat hij alleen zoekt naar wat hij nodig heeft en niets extra's.

De zender gaat precies onder de ontvanger op de sensor op elk van deze 5 pip-locaties, de sensor zendt dan het IR-licht uit en dan leest de ontvanger de hoeveelheid IR-licht die terugkaatst van het gezicht van de dobbelsteen. (afbeelding 3) Als de ontvangen waarde groter is dan de opgegeven kalibratienummers, dan zal de sensor die plek als een punt zien, zo niet, dan is het een witte ruimte. (foto 2)

Stap 2: Ontwerpen en plannen

Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen
Ontwerpen en plannen

De eerste stap bij het bouwen van een dobbelsteensensor is het maken van de schema's, dit kan de moeilijkste of de gemakkelijkste stap van de ontwikkeling zijn. Je hebt eerst software nodig met de naam EAGLE van Autodesk, dit was de software die ik gebruikte om de schema's te maken.

Ik heb 2 verschillende soorten schema's bijgevoegd, het ene schema heeft een schuifregisterchip om de sensor nauwkeuriger te maken, en het andere is er een zonder een schuifregisterchip, dit schema werkt echter niet met de code die ik zal verstrekken later zul je dus zelf iets moeten ontwikkelen.

Ik heb ook mijn bordlay-out toegevoegd voor de sensor die ik heb ontworpen met het schuifregister.

Om te beginnen met het ontwerpen van het bord, heb je 5 IR-ontvangers en 5 IR-emitters, de ontvangers hebben een weerstand van 10k nodig en de emitters hebben een weerstand van 270 ohm nodig, dus voor elk van deze elementen ga je van:

VCC (5V) -> Weerstand -> Analoge leespin -> IR-ontvanger -> GND

VCC (5V) -> Weerstand -> IR-zender -> GND

De analoge leespin komt tussen de weerstand en de IR-ontvanger uit als een andere tak en gaat naar de analoge pin op de Arduino. Je moet er ook voor zorgen dat de zender direct onder de ontvanger gaat, ik maakte deze fout de eerste keer dat ik het deed en ik kreeg zeer slechte resultaten, dus zorg ervoor dat de ontvanger bovenop gaat.

In mijn aangepaste bord gebruik ik het schuifregister om elk van de zender- en ontvangerparen één voor één van stroom te voorzien om te voorkomen dat IR-licht uit de andere zenders stroomt. Dit geeft me een nog nauwkeurigere aflezing van elk van de pip-locaties, als je ervoor kiest om het schuifregister niet te gebruiken, zal het nog steeds voor je werken, het is misschien iets minder nauwkeurig. Op het schuifregister kunt u pinnen 3-4 en 7-8 samenvoegen, omdat het niet helemaal nodig is om ze als headers te hebben. Ik liet ze als headers en plaatste jumpers op de headers voor het geval ik in de toekomst aan ontwikkeling wilde doen.

Nadat je het schema hebt ontworpen, moet je een bordlay-out van je schema maken. Dit onderdeel kan erg lastig worden, omdat je ervoor moet zorgen dat je paden elkaar niet overlappen en ervoor moet zorgen dat je paden en gaten voldoen aan de specificaties van je machine. De bordindeling die ik bijvoegde, had de specifieke maten voor de machine die ik gebruikte om mijn bord te frezen. Ik besteed een paar uur aan het opmaken van het bord om het zo klein mogelijk te maken. Er was nog ruimte voor verbetering op dit bord, maar het werkte voor mij, dus ik liet het zoals het is. Er is een versie met een koperen GND die alle Ground-elementen verbindt, en een versie zonder aangesloten.

Je kunt je schema ook gebruiken om het op een breadboard of prototypebord te bouwen, omdat deze veel gemakkelijker te vinden zijn en een goedkopere optie is omdat je geen aangepast bord hoeft te laten frezen.

Zodra je het bordontwerp hebt, kun je doorgaan naar de volgende stap!

Stap 3: Het bord bouwen

Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen

Dit deel is volledig afhankelijk van hoe u het bord wilt maken. Ik heb de sensor op een prototypebord gemaakt om te testen of het concept werkt en hoe nauwkeurig het is, dus ik volgde het schema zonder het schuifregister en maakte het bord. Je moet ervoor zorgen dat je alles zo neerlegt dat de lijnen elkaar niet overlappen en dat je niet per ongeluk lijnen soldeert die niet met elkaar verbonden zouden moeten zijn. Als je het op een prototypebord doet, moet je heel voorzichtig zijn, dus neem de tijd en haast je niet. U moet ook oppassen voor open draden, omdat deze kunnen bewegen en kortsluiting in het systeem kunnen veroorzaken.

Als u ervoor kiest om het bord te laten frezen, is dit proces eenvoudiger. Stuur het bordbestand naar de molenaar met de specifieke instellingen van de molenaar. Als je het zelf doet, zorg er dan voor dat voordat je het eruit haalt, al het koper goed diep genoeg is gefreesd.

Zorg ervoor dat alles in de gewenste lay-out op het bord is gesoldeerd en neem er de tijd voor, en als je op de print soldeert, zorg er dan voor dat je aan de juiste kant van het bord soldeert.

Zorg er bij het omdoen van de IR-ontvangers en -zenders voor dat de zender precies onder de ontvanger zit. Je zult wat moeten spelen met het buigen van de pootjes van de IR-componenten om ze op de juiste plek te krijgen. Houd ook een dobbelsteen bij de hand om te controleren of de pip-locaties zijn waar ze moeten zijn.

Zodra je alles hebt gesoldeerd en op het bord hebt toegevoegd, kun je de sensor programmeren.

Stap 4: Programmeren van het bord

Het bord programmeren
Het bord programmeren
Het bord programmeren
Het bord programmeren

Dit is het lastige deel van het zo nauwkeurig mogelijk maken van de sensor, het programmeren van het bord. Gelukkig heb ik een bibliotheek voor je gemaakt om te gebruiken met je nieuw gemaakte sensor om het programmeren veel gemakkelijker te maken, je zult de sensor echter moeten kalibreren afhankelijk van de verlichting waar deze sensor zich bevindt.

Om te beginnen moet je een Arduino hebben om met deze sensor te communiceren. Het gebruikt 5 analoge pinnen en 3 digitale pinnen.

Je hebt de mogelijkheid om de bibliotheek die ik heb gemaakt te gebruiken om je eigen analoge en digitale pinnen te kiezen, maar ik zal het uitleggen met behulp van de pinnen die ik heb gebruikt om te communiceren met de sensor. Ik heb de afbeelding gemarkeerd met pinnummers en gekleurde vakjes rond de set pinnen om gemakkelijk uit te leggen welke pin waar wordt gestoken.

Op de sensor gaan pinnen 1-5 Rood naar A0-A4, dus rood 1 gaat naar A0 enzovoort. Pinnen 1-8 Wit hebben wat meer uitleg nodig.

Wit 1 - Data pin, dit is waar de Arduino de data naar het schuifregister stuurt. Ik heb deze pin ingesteld op digitale pin 3 op de Arduino

Wit 2 - Q0, in dit geval verouderd, ik heb het opgenomen voor het geval ik besloot om uit te breiden

Wit 3 & 4 - Worden gekoppeld, je kunt deze twee aan elkaar solderen of een jumper gebruiken zoals ik deed.

Witte 5 - vergrendelingspin, een zeer belangrijke pin die de laatste stap is in het proces om de pitten aan en uit te zien gaan. Ik heb deze pin ingesteld op pin 12 op de Arduino

White 6 - Clock Pin, Dit levert de klok van de Arduino naar het schuifregister. Ik heb dit ingesteld op digitale pin 13.

Wit 7 & 8 - Zal worden gekoppeld, je kunt deze twee aan elkaar solderen of een jumper gebruiken zoals ik deed.

Direct naast de witte doos heb je de Ground- en VCC-pinnen. U moet 5v van de Arduino of een andere bron leveren om deze sensor van stroom te voorzien.

PIP Locatienummers vind je in de code.

Nu je hem moet aansluiten, moeten we hem kalibreren. Mijn doel was om een script te maken dat het voor je kon kalibreren, maar ik had geen tijd om dat te doen. Bij het kalibreren moet u ervoor zorgen dat de sensor zich in een gecontroleerde lichtomgeving bevindt en gevoelig is voor afgeleid licht van buitenaf. Je moet een waarde krijgen van elke pip-locatie met een zwarte stip en een witte stip en het verschil uitgemiddelden. Ik gebruikte slechts twee kanten van de dobbelsteen om te kalibreren, ik gebruikte kant 1, kant 6 en kant 6 90 graden gedraaid. Als je eenmaal een getal voor wit en zwart hebt voor elke pip-locatie, moet je het gemiddelde nemen en het midden van de twee getallen vinden. Dus als ik bijvoorbeeld 200 krijg voor wit van de eerste pip-locatie en 300 voor de donkere waarde van de eerste pip-locatie, dan is het kalibratiegetal 250. Zodra je dit doet voor alle 5 pip-locaties, is je sensor correct gekalibreerd, dan kunt u dice. ReadFace(); om het huidige gezicht van de dobbelsteen te krijgen.

Stap 5: Toepassing

Sollicitatie
Sollicitatie
Sollicitatie
Sollicitatie
Sollicitatie
Sollicitatie

Je hebt nu met succes een dobbelsteensensor gemaakt! Gefeliciteerd! Dit is voor mij een lange weg van vallen en opstaan geweest om deze sensor te maken, dus het is mijn doel om iedereen te helpen die een dobbelsteensensor wil maken.

Ik heb een paar voorbeelden bijgevoegd van het project dat we hebben gebouwd waarbij deze sensor werd gebruikt. Op de eerste foto hebben we een scheprad gebruikt om de dobbelstenen elke keer goed over de sensor te plaatsen. De tweede foto was het eindproduct van ons project, en de basis zal draaien afhankelijk van wat de dobbelsteen was, en de derde foto is een displaydoos die ik heb ontworpen en gebouwd om deze sensoren te tonen.

De mogelijkheden voor deze sensor zijn eindeloos als je je erop toelegt. Ik hoop dat je deze tutorial leuk en leerzaam vindt, en ik hoop dat je er zelf een probeert te maken.

God zegene!

Aanbevolen: