Indholdsfortegnelse:

Infrarød terningssensor: 5 trin
Infrarød terningssensor: 5 trin

Video: Infrarød terningssensor: 5 trin

Video: Infrarød terningssensor: 5 trin
Video: Dr. Dre - Still D.R.E. ft. Snoop Dogg 2024, Juli
Anonim
Infrarød terningssensor
Infrarød terningssensor
Infrarød terningssensor
Infrarød terningssensor

Mit navn er Calvin, og jeg vil vise dig, hvordan du laver en infrarød terningssensor og forklarer, hvordan det fungerer.

Jeg er i øjeblikket en Taylor University -studerende, der studerer Computer Engineering og mit team, og jeg blev bedt om at designe og bygge en mekanisme, der kan sortere ethvert objekt, der kan passe i en 1in -firkant. Vi kunne have taget den lette rute og valgt at sortere m & m's ved hjælp af en enkel farvesensor, men vi besluttede at gå ud over og sortere terninger efter det viste tal. Efter utallige timers forsøg på at finde en guide til, hvordan man læser terningens ansigt, løb jeg ind på dette link her:

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

Dette link gav mig imidlertid ikke meget mere end ideen om, hvordan man læser terningens overflade, så ved hjælp af den idé, der blev givet, gik jeg videre til at bygge og udvikle en sensor, der kan forbindes med en Arduino med lethed og kan læse terningens overflade så præcist som muligt og dermed give os denne infrarøde terningssensor.

Forbrugsvarer

Nu til forsyningerne:

Du får brug for:

1 x Arduino Uno

5 x IR -modtagere

5 x IR -emittere

www.sparkfun.com/products/241

5 x 270 ohm modstande

5 x 10k ohm modstande

1 x 74HC595N chip

forskellige mandlige overskrifter

1 x prototype bord (hvis du ikke får et brugerdefineret fræset bord)

Trin 1: Forstå, hvordan det fungerer

Forstå hvordan det fungerer
Forstå hvordan det fungerer
Forstå hvordan det fungerer
Forstå hvordan det fungerer

Denne sensor bruger 5 pip -steder til at aflæse terningerne. Det bruger infrarødt lys til at hoppe ud af terningerne på disse pip -steder og fortæller controlleren, om det er hvidt eller sort.

Du undrer dig måske over, hvorfor kun 5 pip -placeringer så? Ville du ikke have brug for alle 9 for at læse terningerne effektivt?

På grund af terningens symmetri kan brug af 5 specifikke placeringer på terningerne være nok til at fortælle forskellen mellem de forskellige tal på terningerne uanset orientering (billede 1). Dette gør terningssensoren mere effektiv, fordi den kun leder efter præcis, hvad den har brug for og ikke noget ekstra.

Emitteren går præcist under modtageren på sensoren på hvert af disse 5 pip -steder, sensoren udsender derefter IR -lyset, og derefter læser modtageren mængden af IR -lys, der hopper af terningens overflade. (billede 3) Hvis den modtagne værdi er større end de angivne kalibreringsnumre, vil sensoren se stedet som en prik, hvis ikke, er det hvidt mellemrum. (billede 2)

Trin 2: Design og planlægning

Design og planlægning
Design og planlægning
Design og planlægning
Design og planlægning
Design og planlægning
Design og planlægning
Design og planlægning
Design og planlægning

Det første trin til at bygge en terningssensor er at oprette skemaerne, dette kan enten være det sværeste eller det letteste trin i udviklingen. Du skal først bruge en software kaldet EAGLE af Autodesk, dette var den software, jeg brugte til at oprette skemaerne.

Jeg har inkluderet 2 forskellige former for skemaer, den ene skematisk har en skifteregisterchip, der hjælper med at gøre sensoren mere præcis, og den anden er en uden en skifteregisterchip, men denne skematik fungerer dog ikke med den kode, jeg vil give senere, så du bliver nødt til at udvikle noget på egen hånd.

Jeg har også inkluderet mit bordlayout til den sensor, som jeg har designet med skiftregistret.

For at begynde at designe tavlen har du 5 IR -modtagere og 5 IR -emittere, modtagerne kræver en 10k modstand, og emitterne kræver en 270 ohm modstand, så for hvert af disse elementer går du fra:

VCC (5V) -> Modstand -> Analog læsestift -> IR -modtager -> GND

VCC (5V) -> Modstand -> IR -sender -> GND

Den analoge læsestift kommer ud mellem modstanden og IR -modtageren som en anden gren og går til den analoge pin på Arduino. Du skal også sørge for, at senderen går direkte under modtageren, jeg lavede denne fejl første gang, jeg gjorde det, og jeg fik meget dårlige resultater, så sørg for, at modtageren går ovenpå.

I mit brugerdefinerede bord bruger jeg skiftregistret til at levere strøm til hvert af sender- og modtagerparene ad gangen for at undgå, at IR -lys bløder fra de andre emittere. Dette giver mig en endnu mere præcis aflæsning fra hver af pip -lokaliteterne, hvis du vælger ikke at bruge skiftregistret, fungerer det stadig for dig, det kan bare være lidt mindre præcist. På skifteregisteret kan du slutte stifter 3-4 og 7-8 sammen, da det ikke er helt nødvendigt at have dem som overskrifter. Jeg forlod dem som headers og satte jumpere på headers, hvis jeg ville lave udvikling i fremtiden.

Når du har designet skematikken, skal du lave et bordlayout af din skematisk. Denne del kan blive meget vanskelig, fordi du skal sørge for, at dine stier ikke overlapper hinanden og sørge for, at dine stier og huller opfylder specifikationerne for din maskine. Bordlayoutet, jeg vedhæftede, havde de specifikke størrelser til maskinen, som jeg brugte til at fræse mit bord. Jeg bruger et par timer på at lægge tavlen ud til at være så lille, som jeg kunne klare den. Der var stadig plads til forbedringer på dette bord, men det fungerede for mig, så jeg forlod det som det er. Der er en version med en kobber -GND, der forbinder alle jordelementerne, og en version uden vedhæftet fil.

Du kan også bruge din skematik til at bygge den på et brødbræt eller et prototypebræt, da disse er meget lettere at komme til og er en billigere løsning, da du ikke behøver at have et tilpasset bræt fræset.

Når du har pladedesignet, kan du gå videre til næste trin!

Trin 3: Opbygning af bestyrelsen

Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen

Denne del er helt afhængig af, hvordan du vil have tavlen oprettet. Jeg oprettede sensoren på et prototypekort for at teste, om konceptet fungerer, og hvor præcist det er, så jeg fulgte skematikken uden skiftregistret, og jeg oprettede tavlen. Du skal sørge for at lægge alt ud, så linjerne ikke overlapper hinanden, og at du ikke ved et uheld lodder linjer, der ikke skal forbindes. Når du gør det på et prototypebræt, skal du være meget forsigtig, så tag dig god tid og skynd dig ikke. Du bør også være forsigtig med åbne ledninger, fordi de kan bevæge sig og forårsage shorts i systemet.

Hvis du vælger at få brættet fræset, er denne proces enklere. Send tavlefilen til mølleren med de specifikke møllers indstillinger. Hvis du gør det selv, skal du sørge for, at alt kobberet er slebet ordentligt dybt nok, før du tager det ud, det første bræt, jeg havde lavet, blev kobberet ikke fræset dybt nok, og jeg måtte få et andet fræset.

Sørg for, at alt er loddet til brættet i det ønskede layout, og sørg for at tage dig god tid, og hvis lodning på printkortet, skal du sørge for at lodde på den korrekte side af brættet.

Når du tager IR -modtagere og -emittere på, skal du sørge for, at emitteren er nøjagtigt under modtageren. Du bliver nødt til at lege med at bøje benene på IR -komponenterne for at få dem på det rigtige sted. Hold også en terning ved hånden for at kontrollere, om pip -placeringer er, hvor de skal være.

Når du har alt loddet og tilføjet på tavlen, skal du programmere sensoren.

Trin 4: Programmering af bestyrelsen

Programmering af bestyrelsen
Programmering af bestyrelsen
Programmering af bestyrelsen
Programmering af bestyrelsen

Dette er den vanskelige del af at gøre sensoren så nøjagtig som muligt ved at programmere tavlen. Heldigvis har jeg oprettet et bibliotek, som du kan bruge med din nyoprettede sensor for at gøre det meget lettere at programmere den, men du bliver imidlertid nødt til at kalibrere sensoren afhængigt af belysningen, hvor denne sensor er placeret.

For at starte skal du have en Arduino for at interface med denne sensor. Den bruger 5 analoge stifter og 3 digitale ben.

Du har evnen til at bruge det bibliotek, jeg lavede, til at vælge dine egne analoge og digitale pins, men jeg vil forklare det ved hjælp af de pins, jeg lavede til at interface med sensoren. Jeg har markeret billedet, der er forbundet med pin -numre og farvede kasser omkring sætnålene for let at forklare, hvilken pin der sættes i hvor.

På sensoren går ben 1-5 rød til A0-A4, så rød 1 går til A0 og så videre. Stifter 1-8 Hvid kræver lidt mere forklaring.

Hvid 1 - Datastift, det er her Arduino sender dataene til skifteregistret. Jeg satte denne pin til digital pin 3 på Arduino

Hvid 2 - Q0, forældet i denne sag, jeg inkluderede det, hvis jeg overhovedet besluttede at udvide

Hvid 3 & 4 - Vil blive parret, du kan enten lodde disse to sammen eller bruge en jumper som jeg gjorde.

Hvid 5 - låsestift, en meget vigtig stift, der er det sidste trin i processen for at se, at kernerne tændes og slukkes. Jeg satte denne pin til pin 12 på Arduino

Hvid 6 - Urnål, Dette giver uret fra Arduino til skifteregisteret. Jeg indstillede dette til digital pin 13.

Hvid 7 & 8 - Vil blive parret, du kan enten lodde disse to sammen eller bruge en jumper som jeg gjorde.

Lige ved siden af den hvide boks har du Ground- og VCC -benene. Du skal levere 5v fra Arduino eller en anden kilde for at drive denne sensor.

PIP -placeringsnumre findes i koden.

Nu hvor du skal tilslutte den, skal vi kalibrere den. Mit mål var at oprette et script, der kunne kalibrere det for dig, men jeg løb tør for tid til at gøre det. Når du kalibrerer, skal du sørge for, at sensoren er i et kontrolleret belysningsmiljø, og at den er følsom over for udefrakommende lys. Du skal få en værdi fra hver pip -placering med en sort prik og en hvid prik og gennemsnittet af forskellen. Jeg brugte kun to sider af terningerne til at kalibrere, jeg brugte side 1, side 6 og side 6 drejet 90 grader. Når du har et tal for hvidt og sort for hver pip -placering, skal du gennemsnitlige dem og finde midten af de to tal. Så for eksempel, hvis jeg fik 200 for hvid fra den første pip -placering og 300 for den mørke værdi af den første pip -placering, så ville kalibreringsnummeret være 250. Når du gør dette for alle 5 pip -placeringer, er din sensor korrekt kalibreret, så kan du bruge dice. ReadFace (); for at få terningens nuværende ansigt.

Trin 5: Ansøgning

Ansøgning
Ansøgning
Ansøgning
Ansøgning
Ansøgning
Ansøgning

Du har nu med succes oprettet en terningssensor! Tillykke! Dette har været en lang vej med forsøg og fejl for mig at oprette denne sensor, så det er mit mål at hjælpe alle derude, der ønsker at oprette en terningssensor.

Jeg har inkluderet et par eksempler på det projekt, vi bygger, der brugte denne sensor. Det første billede, vi brugte et skovlhjul til korrekt at placere terningens ovenpå toppen af sensoren hver gang. Det andet billede var det endelige produkt af vores projekt, og basen vil rotere afhængigt af hvad terningens ansigt var, og det tredje billede er en displayboks, som jeg har designet og bygget for at vise disse sensorer.

Muligheden for denne sensor er uendelig, hvis du tænker på det. Jeg håber, at du finder denne tutorial sjov og lærerig, og jeg håber, at du prøver at lave en til dig selv.

Gud bevare!

Anbefalede: