Innholdsfortegnelse:

Infrarød terningssensor: 5 trinn
Infrarød terningssensor: 5 trinn

Video: Infrarød terningssensor: 5 trinn

Video: Infrarød terningssensor: 5 trinn
Video: Infrarød sauna 2024, November
Anonim
Infrarød terningssensor
Infrarød terningssensor
Infrarød terningssensor
Infrarød terningssensor

Mitt navn er Calvin, og jeg vil vise deg hvordan du lager en infrarød terningssensor og forklarer hvordan det fungerer.

Jeg er for tiden en Taylor University -student som studerer datateknikk og teamet mitt, og jeg ble bedt om å designe og bygge en mekanisme som kan sortere ethvert objekt som kan passe i en 1in -firkant. Vi kunne ha tatt den enkle ruten og valgt å sortere m & m -er ved hjelp av en enkel fargesensor, men vi bestemte oss for å gå utover og sortere terninger etter tallet som vises. Etter utallige timer med å prøve å finne en guide for hvordan jeg kan lese terningens ansikt, kjørte jeg på denne lenken her:

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

Denne lenken ga meg imidlertid ikke mye mer enn ideen om hvordan jeg kan lese terningens ansikt, så ved å bruke ideen som ble gitt, fortsatte jeg med å bygge og utvikle en sensor som kan kobles til en Arduino enkelt og kan lese terningens ansikt så nøyaktig som mulig, og gir oss dermed denne infrarøde terningssensoren.

Rekvisita

Nå til utstyret:

Du vil trenge:

1 x Arduino Uno

5 x IR -mottakere

5 x IR -sendere

www.sparkfun.com/products/241

5 x 270 ohm motstander

5 x 10k ohm motstander

1 x 74HC595N -brikke

forskjellige mannlige overskrifter

1 x prototypebrett (hvis du ikke får et egendefinert frest brett)

Trinn 1: Forstå hvordan det fungerer

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

Denne sensoren bruker fem pipesteder for å lese terningene på terningene. Den bruker infrarødt lys til å sprette av terningen på disse pipestasjonene og forteller kontrolleren om den er hvit eller svart.

Du lurer kanskje på, hvorfor bare 5 pip -steder da? Ville du ikke trengt alle 9 for å lese terningene effektivt?

På grunn av terningens symmetri kan bruk av 5 spesifikke steder på terningen være nok til å fortelle forskjellen mellom de forskjellige tallene på terningene uavhengig av orientering (bilde 1). Dette gjør terningssensoren mer effektiv fordi den bare ser etter akkurat det den trenger og ingenting ekstra.

Emitteren går nøyaktig under mottakeren på sensoren på hvert av disse 5 pip -stedene, sensoren sender deretter ut IR -lyset og deretter leser mottakeren mengden IR -lys som spretter av terningens overflate. (bilde 3) Hvis verdien som mottas er større enn de spesifiserte kalibreringstallene, vil sensoren se dette stedet som en prikk, hvis ikke er det hvitt mellomrom. (bilde 2)

Trinn 2: Design og planlegging

Design og planlegging
Design og planlegging
Design og planlegging
Design og planlegging
Design og planlegging
Design og planlegging
Design og planlegging
Design og planlegging

Det første trinnet for å bygge en terningssensor er å lage skjemaene, dette kan enten være det vanskeligste eller enkleste trinnet i utviklingen. Du trenger først en programvare som heter EAGLE av Autodesk, dette var programvaren jeg brukte til å lage skjemaene.

Jeg har inkludert 2 forskjellige typer skjemaer, en skjematisk har en skiftregisterbrikke for å gjøre sensoren mer nøyaktig, og den andre er en uten skiftregisterbrikke, men denne skjematikken fungerer imidlertid ikke med koden jeg vil gi senere, så du må utvikle noe på egen hånd.

Jeg har også inkludert mitt brettoppsett for sensoren som jeg har designet med skiftregisteret.

For å begynne å designe brettet, har du 5 IR -mottakere og 5 IR -sendere, mottakerne krever en 10k motstand og emitterne krever en 270 ohm motstand, så for hvert av disse elementene går du fra:

VCC (5V) -> Motstand -> Analog lesestift -> IR -mottaker -> GND

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

Den analoge lesepinnen kommer ut mellom motstanden og IR -mottakeren som en annen gren og går til den analoge pinnen på Arduino. Du må også sørge for at senderen går rett under mottakeren. Jeg gjorde denne feilen første gangen jeg gjorde det, og jeg fikk svært dårlige resultater, så sørg for at mottakeren går på toppen.

I det egendefinerte kortet bruker jeg skiftregisteret til å gi strøm til hvert av sender- og mottakerparene om gangen for å unngå IR -lysblødning fra de andre emitterne. Dette gir meg en enda mer nøyaktig avlesning fra hvert av pip -stedene. Hvis du valgte å ikke bruke skiftregisteret, vil det fortsatt fungere for deg, det kan bare være litt mindre nøyaktig. På skiftregisteret kan du feste pinnene 3-4 og 7-8 sammen, siden det ikke er helt nødvendig å ha dem som overskrifter. Jeg forlot dem som headers og satte hoppere på headers i tilfelle jeg ønsket å gjøre utvikling i fremtiden.

Etter at du har designet skjematikken, må du lage et brettoppsett av skjematikken. Denne delen kan bli veldig vanskelig fordi du må sørge for at banene ikke overlapper hverandre og sørge for at banene og hullene dine oppfyller spesifikasjonene til maskinen din. Brettoppsettet jeg vedlagte hadde de spesifikke størrelsene for maskinen som jeg brukte til å frese brettet mitt. Jeg bruker noen timer på å legge ut brettet for å være så liten som jeg kunne klare det. Det var fortsatt rom for forbedring på dette brettet, men det fungerte for meg, så jeg lot det være som det er. Det er en versjon med en kobber -GND som forbinder alle grunnelementene, og en versjon uten festing.

Du kan også bruke skjematikken din til å bygge den på et brødbrett eller prototypebrett, da disse er mye lettere å få tak i og er et billigere alternativ siden du ikke trenger å ha et tilpasset brett frest.

Når du har brettdesignet, kan du gå videre til neste trinn!

Trinn 3: Bygg styret

Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret

Denne delen er helt avhengig av hvordan du vil at brettet skal opprettes. Jeg opprettet sensoren på et prototypekort for å teste om konseptet fungerer og hvor nøyaktig det er, så jeg fulgte skjemaet uten skiftregisteret og jeg opprettet brettet. Du må sørge for å legge alt ut slik at linjene ikke overlapper hverandre, og at du ikke ved et uhell lodder linjer som ikke skal kobles til. Når du gjør det på et prototypebrett, må du være veldig forsiktig, så ta deg god tid og ikke haste det. Du bør også være forsiktig med åpne ledninger fordi de kan bevege seg og forårsake shorts i systemet.

Hvis du valgte å få brettet frestet, er denne prosessen enklere. Send tavlefilen til mølleren med de spesifikke freserens innstillinger. Hvis du gjør det selv, må du gjøre det før du tar det ut, og sørge for at alt kobberet er riktig frest dyp nok.

Sørg for at alt er loddet til brettet i ønsket layout og sørg for å ta deg god tid, og hvis lodding på kretskortet, må du lodde på riktig side av brettet.

Når du setter på IR -mottakere og sendere, må du kontrollere at senderen er nøyaktig under mottakeren. Du må leke med å bøye beina på IR -komponentene for å få dem på rett sted. Ha også en terning for hånden for å sjekke om pipene er der de må være.

Når du har alt loddet og lagt på brettet, er du i gang med å programmere sensoren.

Trinn 4: Programmering av styret

Programmering av styret
Programmering av styret
Programmering av styret
Programmering av styret

Dette er den vanskelige delen med å gjøre sensoren så nøyaktig som mulig, programmere brettet. Heldigvis har jeg opprettet et bibliotek som du kan bruke med din nyopprettede sensor for å gjøre det så enkelt å programmere den, men du må imidlertid kalibrere sensoren avhengig av belysningen hvor denne sensoren er plassert.

For å starte må du ha en Arduino for å koble til denne sensoren. Den bruker 5 analoge pinner og 3 digitale pinner.

Du har muligheten til å bruke biblioteket jeg laget til å velge dine egne analoge og digitale pinner, men jeg vil forklare det med pinnene jeg gjorde for å koble til sensoren. Jeg har merket bildet koblet med pin -tall og fargede bokser rundt settet med pins for enkelt å forklare hvilken pin som kobles til hvor.

På sensoren går pinne 1-5 rød til A0-A4, så rød 1 går til A0 og så videre. Pins 1-8 White krever litt mer forklaring.

Hvit 1 - Datapinne, det er her Arduino sender dataene til skiftregisteret. Jeg satte denne pinnen til digital pin 3 på Arduino

Hvit 2 - Q0, foreldet i denne saken, jeg inkluderte den i tilfelle jeg bestemte meg for å utvide i det hele tatt

Hvit 3 & 4 - Blir sammenkoblet, du kan enten lodde disse to sammen eller bruke en genser som jeg gjorde.

Hvit 5 - låsepinne, en veldig viktig pinne som er det siste trinnet i prosessen for å se at pipene slås av og på. Jeg satte denne pinnen til pinne 12 på Arduino

Hvit 6 - Clock Pin, Dette gir klokken fra Arduino til skiftregisteret. Jeg satte dette til digital pin 13.

Hvit 7 og 8 - Blir sammenkoblet, du kan enten lodde disse to sammen eller bruke en genser som jeg gjorde.

Rett ved siden av den hvite boksen har du bakken og VCC -pinnene. Du må levere 5v fra Arduino eller en annen kilde for å drive denne sensoren.

PIP -posisjonsnumre finnes i koden.

Nå som du må koble den til, må vi kalibrere den. Målet mitt var å lage et skript som kunne kalibrere det for deg, men jeg gikk tom for tid til å gjøre det. Når du kalibrerer, må du sørge for at sensoren er i et kontrollert lysmiljø, og føler at den er følsom for utsatt lys. Du må få en verdi fra hver pip -plassering med en svart prikk og en hvit prikk og gjennomsnittlig ut forskjellen. Jeg brukte bare to sider av terningen for å kalibrere, jeg brukte side 1, side 6 og side 6 rotert 90 grader. Når du har et tall for hvitt og svart for hvert pip -sted, må du gjennomsnittlig dem og finne midten av de to tallene. Så for eksempel, hvis jeg fikk 200 for hvitt fra det første pipestedet, og 300 for den mørke verdien til det første pipestedet, ville kalibreringsnummeret være 250. Når du gjør dette for alle 5 pipestasjonene, er sensoren din skikkelig kalibrert, så kan du bruke terning. ReadFace (); for å få terningens nåværende ansikt.

Trinn 5: Søknad

applikasjon
applikasjon
applikasjon
applikasjon
applikasjon
applikasjon

Du har nå opprettet en terningssensor! Gratulerer! Dette har vært en lang prøve og feiling for meg for å lage denne sensoren, så det er mitt mål å hjelpe alle der ute som ønsker å lage en terningssensor.

Jeg har tatt med noen eksempler på prosjektet som vi bygde som brukte denne sensoren. Det første bildet, vi brukte et padlehjul for å plassere terningene på toppen av sensoren riktig hver gang. Det andre bildet var det endelige produktet av prosjektet vårt, og basen vil rotere avhengig av hva terningen var, og det tredje bildet er en displayboks som jeg designet og bygde for å vise disse sensorene.

Muligheten for denne sensoren er uendelig hvis du tenker på det. Jeg håper du synes denne opplæringen er hyggelig og lærerik, og jeg håper du prøver å lage en selv.

Gud velsigne!

Anbefalt: