Cuprins:

Senzor de zaruri cu infraroșu: 5 pași
Senzor de zaruri cu infraroșu: 5 pași

Video: Senzor de zaruri cu infraroșu: 5 pași

Video: Senzor de zaruri cu infraroșu: 5 pași
Video: Probleme modul comfort Vw Passat B5 5 2024, Iulie
Anonim
Senzor de zaruri cu infraroșu
Senzor de zaruri cu infraroșu
Senzor de zaruri cu infraroșu
Senzor de zaruri cu infraroșu

Numele meu este Calvin și vă voi arăta cum să realizați un senzor de zaruri cu infraroșu și să vă explic cum funcționează.

În prezent sunt student la Universitatea Taylor care studiază ingineria computerelor și echipa mea și mi s-a cerut să proiectez și să construiesc un mecanism care să poată sorta orice obiect care se potrivește într-un pătrat de 1 inch. Am fi putut face traseul ușor și am fi ales să sortăm M&M folosind un senzor de culoare simplu, dar am decis să mergem deasupra și dincolo și să sortăm zarurile după numărul afișat. După nenumărate ore încercând să găsesc un ghid despre cum să citesc fața zarurilor, am dat peste acest link aici:

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

Totuși, această legătură nu mi-a oferit mult mai mult decât ideea cum să citesc fața zarurilor, așa că folosind ideea care mi-a fost furnizată, am continuat să construiesc și să dezvolt un senzor care poate fi conectat cu un Arduino cu ușurință și poate citi fața zarurilor cât mai exact posibil, oferindu-ne astfel acest senzor de zaruri cu infraroșu.

Provizii

Acum, la aprovizionare:

Vei avea nevoie:

1 x Arduino Uno

5 x receptoare IR

5 x Emițătoare IR

www.sparkfun.com/products/241

Rezistențe de 5 x 270 ohmi

Rezistențe 5 x 10k ohm

1 x cip 74HC595N

diverse anteturi masculine

1 x placă prototip (dacă nu primiți o placă personalizată)

Pasul 1: Înțelegerea modului în care funcționează

Înțelegerea funcționării
Înțelegerea funcționării
Înțelegerea funcționării
Înțelegerea funcționării

Acest senzor folosește 5 locații de pip pentru a citi fețele zarurilor. Folosește lumină cu infraroșu pentru a sări de pe fața zarurilor în aceste locații de pip și îi spune controlerului dacă este alb sau negru.

S-ar putea să vă întrebați, de ce atunci doar 5 locații de pip? Nu ai avea nevoie de toți cei 9 pentru a citi zarurile eficient?

Ei bine, datorită simetriei zarurilor, folosirea a 5 locații specifice pe zaruri poate fi suficientă pentru a face diferența dintre diferitele numere de pe zaruri, indiferent de orientare (imaginea 1). Acest lucru face senzorul de zaruri mai eficient, deoarece caută doar exact ceea ce are nevoie și nimic în plus.

Emițătorul merge exact sub receptorul senzorului în fiecare dintre aceste 5 locații de pip, senzorul emite apoi lumina IR și apoi receptorul citește cantitatea de lumină IR care sare de pe fața zarurilor. (imaginea 3) Dacă valoarea primită este mai mare decât numerele de calibrare specificate, atunci senzorul va vedea acel punct ca un punct, dacă nu, atunci este spațiu alb. (poza 2)

Pasul 2: Proiectare și planificare

Proiectare și planificare
Proiectare și planificare
Proiectare și planificare
Proiectare și planificare
Proiectare și planificare
Proiectare și planificare
Proiectare și planificare
Proiectare și planificare

Primul pas pentru construirea unui senzor de zaruri este crearea schemelor, acesta poate fi cel mai greu sau cel mai ușor pas al dezvoltării. Mai întâi aveți nevoie de un software numit EAGLE de către Autodesk, acesta a fost software-ul pe care l-am folosit pentru a crea schemele.

Am inclus 2 tipuri diferite de schemă, una schematică are un cip de registru de schimbare pentru a face senzorul mai precis, iar cealaltă este una fără cip de registru de schimbare, însă această schemă nu va funcționa cu codul pe care îl voi furniza mai târziu, deci va trebui să dezvolți ceva pe cont propriu.

Am inclus și aspectul plăcii mele pentru senzorul pe care l-am proiectat cu registrul de schimbare.

Pentru a începe proiectarea plăcii, aveți 5 receptoare IR și 5 emițătoare IR, receptoarele necesită un rezistor de 10 k, iar emițătorii necesită un rezistor de 270 ohm, astfel încât pentru fiecare dintre aceste elemente, treceți de la:

VCC (5V) -> Rezistor -> Pin de citire analogic -> Receptor IR -> GND

VCC (5V) -> Rezistor -> Emițător IR -> GND

Pinul de citire analogic iese între rezistor și receptorul IR ca o altă ramură și merge la pinul analogic de pe Arduino. De asemenea, trebuie să vă asigurați că emițătorul intră direct sub receptor, am făcut această greșeală prima dată când am făcut-o și am obținut rezultate foarte proaste, așa că asigurați-vă că receptorul merge în partea de sus.

În placa mea personalizată, folosesc registrul de schimbare pentru a furniza energie fiecărei perechi de emițătoare și receptoare, câteodată, pentru a evita orice lumină IR de la ceilalți emițători. Acest lucru îmi oferă o lectură și mai precisă din fiecare dintre locațiile pip, dacă ați ales să nu utilizați registrul de schimbare, acesta va funcționa în continuare pentru dvs., ar putea fi puțin mai precis. În registrul de schimbare, puteți uni pinii 3-4 și 7-8 împreună, deoarece nu este în totalitate necesar să le aveți ca anteturi. Le-am lăsat ca anteturi și am pus jumperi pe anteturi în cazul în care aș vrea să fac dezvoltare în viitor.

După ce ați proiectat schema, trebuie să faceți o schemă a schemei. Această parte poate deveni foarte dificilă, deoarece trebuie să vă asigurați că traseele nu se suprapun și asigurați-vă că traseele și găurile dvs. îndeplinesc specificațiile mașinii dvs. Aspectul plăcii pe care l-am atașat avea dimensiunile specifice pentru mașina pe care am folosit-o pentru frezarea plăcii mele. Îmi petrec câteva ore așezând placa pentru a fi cât se poate de mică. Mai era loc de îmbunătățit pe această placă, dar a funcționat pentru mine, așa că am lăsat-o așa cum este. Există o versiune cu un GND de cupru care conectează toate elementele de la sol și o versiune fără atașat.

Puteți utiliza, de asemenea, schema pentru a o construi pe o placă sau un prototip, deoarece acestea sunt mult mai ușor de găsit și este o opțiune mai ieftină, deoarece nu trebuie să aveți o placă personalizată.

Odată ce aveți designul plăcii, puteți trece la pasul următor!

Pasul 3: Construirea consiliului

Construirea consiliului
Construirea consiliului
Construirea consiliului
Construirea consiliului
Construirea consiliului
Construirea consiliului

Această parte depinde în totalitate de modul în care doriți să creați placa. Am creat senzorul pe o placă prototip pentru a testa dacă funcționează conceptul și cât de exact este, așa că am urmat schema fără registrul de schimbare și am creat placa. Trebuie să vă asigurați că așezați totul astfel încât liniile să nu se suprapună și să nu lipiți accidental liniile care nu ar trebui conectate. Când o faceți pe o placă prototip, trebuie să fiți foarte atenți, așa că luați-vă timp și nu vă grăbiți. De asemenea, ar trebui să aveți grijă de firele deschise, deoarece acestea se pot mișca și pot provoca scurte în sistem.

Dacă ați ales ca placa să fie măcinată, atunci acest proces este mai simplu. Trimiteți fișierul de bord către freză cu setările specifice frezei. Dacă o faceți singur, faceți înainte să o scoateți, asigurați-vă că tot cuprul este măcinat în mod corespunzător suficient de adânc.

Asigurați-vă că totul este lipit pe tablă în aspectul dorit și asigurați-vă că vă ocupați timpul și, dacă lipiți pe PCB, asigurați-vă că lipiți pe partea corectă a plăcii.

Când puneți receptorii și emițătoarele IR, asigurați-vă că emițătorul se află exact sub receptor. Va trebui să vă jucați îndoind picioarele componentelor IR pentru a le obține în locul potrivit. Păstrați și zaruri la îndemână pentru a verifica dacă locațiile pip sunt acolo unde trebuie să fie.

Odată ce ați lipit totul și ați adăugat pe tablă, începeți programarea senzorului.

Pasul 4: Programarea plăcii

Programarea plăcii
Programarea plăcii
Programarea plăcii
Programarea plăcii

Aceasta este partea dificilă de a face senzorul cât mai precis posibil, programând placa. Din fericire am creat o bibliotecă pe care să o folosiți cu senzorul nou creat pentru a face programarea mult mai ușoară, totuși va trebui să calibrați senzorul în funcție de iluminatul în care se află acest senzor.

Pentru a începe trebuie să aveți un Arduino pentru a interfața cu acest senzor. Folosește 5 pini analogici și 3 pini digitali.

Aveți capacitatea de a utiliza biblioteca pe care am creat-o pentru a vă alege propriii pini analogici și digitali, dar o voi explica folosind pinii pe care i-am făcut pentru a interacționa cu senzorul. Am marcat imaginea asociată cu numere de pini și casete colorate în jurul setului de pini pentru a explica cu ușurință care pini se conectează unde.

Pe senzor, pinii 1-5 Roșu merg la A0-A4, deci Roșu 1 merge la A0 și așa mai departe. Pinii 1-8 Alb necesită un pic mai multe explicații.

Alb 1 - Pin de date, aici Arduino trimite datele către registrul de schimbare. Am setat acest pin pe pinul digital 3 de pe Arduino

Alb 2 - Q0, învechit în acest caz, l-am inclus în cazul în care am decis să mă extind deloc

Alb 3 și 4 - Va fi asociat, fie le puteți lipi împreună, fie puteți folosi un jumper așa cum am făcut.

Alb 5 - știft de blocare, un știft foarte important, care este pasul final al procesului pentru a vedea cum sârmele pornesc și se opresc. Am setat acest pin la pinul 12 de pe Arduino

Alb 6 - Clock Pin, Acesta oferă ceasul de la Arduino la registrul de schimbare. Am setat acest lucru la pinul digital 13.

Alb 7 și 8 - Va fi asociat, fie le puteți lipi împreună, fie puteți folosi un jumper așa cum am făcut.

Chiar lângă caseta albă aveți pinii VCC și Ground. Trebuie să furnizați 5v de la Arduino sau de la o altă sursă pentru a alimenta acest senzor.

Numerele de locație PIP pot fi găsite în cod.

Acum, că trebuie să-l conectați, trebuie să-l calibrăm. Scopul meu a fost să creez un script care să-l poată calibra pentru dvs., dar am rămas fără timp pentru a face acest lucru. Când calibrați, trebuie să vă asigurați că senzorul este într-un mediu de iluminare controlat, simțind că este sensibil la lumina dedusă din exterior. Trebuie să obțineți o valoare din fiecare locație pip cu un punct negru și un punct alb și să calculați diferența. Am folosit doar două fețe ale zarurilor pentru calibrare, am folosit partea 1, partea 6 și partea 6 rotite cu 90 de grade. Odată ce aveți un număr pentru alb și negru pentru fiecare locație a pipei, trebuie să le faceți o medie și să găsiți mijlocul celor două numere. De exemplu, dacă am 200 de alb din prima locație a pipei și 300 pentru valoarea întunecată a primei locații a pipei, atunci numărul de calibrare ar fi 250. Odată ce ați făcut acest lucru pentru toate cele 5 locații ale pipelor, senzorul dvs. este corect calibrat, atunci puteți folosi zaruri. ReadFace (); pentru a obține fața curentă a zarurilor.

Pasul 5: Aplicație

Cerere
Cerere
Cerere
Cerere
Cerere
Cerere

Acum ați creat cu succes un senzor de zaruri! Felicitări! Acesta a fost un drum lung de încercări și erori pentru mine de a crea acest senzor, așa că scopul meu este să ajut pe oricine dorește să creeze un senzor de zaruri.

Am inclus câteva exemple ale proiectului pe care îl construim, care a folosit acest senzor. Prima imagine, am folosit o roată cu palete pentru a plasa corespunzător zarurile deasupra senzorului de fiecare dată. A doua imagine a fost produsul final al proiectului nostru, iar baza se va roti în funcție de care era fața zarurilor, iar a treia imagine este o cutie de afișare pe care am proiectat-o și am construit-o pentru a expune acești senzori.

Posibilitatea acestui senzor este nelimitată dacă vă gândiți la el. Sper să vi se pară plăcut și educativ acest tutorial și sper să încercați să vă faceți unul.

Dumnezeu să ajute!

Recomandat: