Talaan ng mga Nilalaman:

Infrared Dice Sensor: 5 Hakbang
Infrared Dice Sensor: 5 Hakbang

Video: Infrared Dice Sensor: 5 Hakbang

Video: Infrared Dice Sensor: 5 Hakbang
Video: How to use Sharp IR Distance Sensor with Arduino (download code) 2024, Hulyo
Anonim
Infrared Dice Sensor
Infrared Dice Sensor
Infrared Dice Sensor
Infrared Dice Sensor

Ang pangalan ko ay Calvin at ipapakita ko sa iyo kung paano gumawa ng isang Infrared dice sensor at ipaliwanag kung paano ito gumagana.

Kasalukuyan akong mag-aaral sa Taylor University na nag-aaral ng Computer Engineering at aking koponan at tinanong akong magdisenyo at bumuo ng isang mekanismo na maaaring pag-uri-uriin ang anumang bagay na maaaring magkasya sa isang parisukat na 1in. Maaari naming makuha ang madaling ruta at pinili upang pag-uri-uriin ang mga m & m gamit ang isang simpleng sensor ng kulay, ngunit nagpasya kaming pumunta sa itaas at lampas at pag-uri-uriin ang dice sa bilang na ipinakita. Matapos ang hindi mabilang na oras ng pagsubok na makahanap ng isang gabay sa kung paano basahin ang mukha ng dice na nasagasaan ko ang link na ito dito:

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

Ang link na ito, gayunpaman, ay hindi nagbigay sa akin ng higit pa sa ideya kung paano basahin ang mukha ng dice, kaya gamit ang ideyang ibinigay, nagpunta ako upang bumuo at bumuo ng isang sensor na maaaring maiugnay sa isang Arduino nang madali at mababasa ang mukha ng dice nang tumpak hangga't maaari, sa gayon ay nagbibigay sa amin ng Infrared Dice Sensor na ito.

Mga gamit

Ngayon sa mga supply:

Kakailanganin mong:

1 x Arduino Uno

5 x IR Mga Tatanggap

5 x IR Emitter

www.sparkfun.com/products/241

5 x 270 ohm resistors

5 x 10k ohm resistors

1 x 74HC595N chip

iba`t ibang mga header ng lalaki

1 x Prototype board (kung hindi ka nakakakuha ng isang pasadyang milled board)

Hakbang 1: Pag-unawa sa Paano Ito Gumagawa

Pag-unawa sa Paano Ito Gumagawa
Pag-unawa sa Paano Ito Gumagawa
Pag-unawa sa Paano Ito Gumagawa
Pag-unawa sa Paano Ito Gumagawa

Gumagamit ang sensor na ito ng 5 mga lokasyon ng pip upang basahin ang mga mukha ng dice. Gumagamit ito ng Infrared light upang matalbog ang mukha ng dice sa mga lokasyon ng pip na ito at sasabihin sa taga-kontrol kung ito ay puti o itim.

Maaaring nagtataka ka, bakit 5 mga lokasyon lamang ng pip pagkatapos? Hindi mo ba kakailanganin ang lahat ng 9 upang mabasa nang mabisa ang dice?

Kaya, dahil sa mahusay na proporsyon ng dice, ang paggamit ng 5 tukoy na mga lokasyon sa dice ay maaaring sapat upang sabihin ang pagkakaiba sa pagitan ng iba't ibang mga numero sa dice anuman ang orientation (larawan 1). Ginagawa nitong mas mahusay ang sensor ng dice dahil naghahanap lamang ito ng eksakto kung ano ang kailangan nito at walang labis.

Ang emitter ay pupunta mismo sa ilalim ng receiver sa sensor sa bawat 5 lokasyon ng pip na ito, ang sensor ay nagpapalabas ng ilaw ng IR at pagkatapos ay binabasa ng tatanggap ang dami ng ilaw na IR na tumatalbog sa mukha ng dice. (larawan 3) Kung ang natanggap na halaga ay mas malaki pagkatapos ay tinukoy na mga numero ng pagkakalibrate, makikita ng sensor ang lugar na iyon bilang isang tuldok, kung hindi pagkatapos ito ay puting puwang. (larawan 2)

Hakbang 2: Pagdidisenyo at Pagpaplano

Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano
Pagdidisenyo at Pagpaplano

Ang unang hakbang sa pagbuo ng isang sensor ng dice ay ang paglikha ng mga iskema, maaari itong maging pinakamahirap o pinakamadaling hakbang ng pag-unlad. Kailangan mo muna ng isang software na tinatawag na EAGLE ng Autodesk, ito ang software na ginamit ko upang likhain ang mga iskema.

Nagsama ako ng 2 magkakaibang uri ng eskematiko, ang isang eskematiko ay may shift register chip upang matulungan na gawing mas tumpak ang sensor, at ang isa pa ay walang shift register chip, gayunpaman, hindi gagana ang eskematiko sa code na ibibigay ko sa paglaon, kaya magkakaroon ka ng kaunlaran nang mag-isa.

Isinama ko rin ang layout ng aking board para sa sensor na aking dinisenyo kasama ang shift register.

Upang simulang idisenyo ang board, mayroon kang 5 IR Receivers at 5 IR Emitter, ang mga tatanggap ay nangangailangan ng isang 10k risistor at ang mga emitter ay nangangailangan ng isang 270 ohm risistor kaya para sa bawat isa sa mga elementong ito, mula ka sa:

VCC (5V) -> Resistor -> Analog Read Pin -> IR receiver -> GND

VCC (5V) -> Resistor -> IR emitter -> GND

Ang analog read pin ay lalabas sa pagitan ng risistor at ng IR Receiver bilang isa pang sangay at pupunta sa analog pin sa Arduino. Kailangan mo ring tiyakin na ang emitter ay direktang dumadaan sa ilalim ng tatanggap, nagawa ko ang pagkakamaling ito sa unang pagkakataon na ginawa ko ito at nakakuha ako ng napakasamang resulta, kaya siguraduhin na ang Tagatanggap ay nasa itaas.

Sa aking pasadyang board, gumagamit ako ng shift register upang makapagbigay ng lakas sa bawat isa sa mga pares ng emitter at receiver nang paisa-isa upang maiwasan ang anumang ilaw ng IR na dumugo mula sa iba pang mga emitter. Nagbibigay ito sa akin ng isang mas tumpak na pagbabasa mula sa bawat lokasyon ng pip, kung pinili mo na huwag gamitin ang shift register, gagana pa rin ito para sa iyo, maaaring medyo mas tumpak ito. Sa rehistro ng shift, maaari kang sumali sa mga pin na 3-4 at 7-8 nang magkasama, dahil hindi ito ganap na kinakailangan na magkaroon ng mga ito bilang mga header. Iniwan ko sila bilang mga header at inilagay ang mga jumper sa mga header sakaling nais kong gumawa ng pag-unlad sa hinaharap.

Matapos mong idisenyo ang eskematiko, kailangan mong gumawa ng isang layout ng board ng iyong eskematiko. Ang bahaging ito ay maaaring maging napaka-nakakalito dahil kailangan mong tiyakin na ang iyong mga landas ay hindi magkakapatong at tiyakin na ang iyong mga landas at butas ay nakakatugon sa mga pagtutukoy ng iyong machine. Ang layout ng board na ikinabit ko ay may mga tiyak na sukat para sa makina na ginamit ko sa paggiling ng aking board. Gumugugol ako ng ilang oras sa pagtula ng board upang maging kasing liit ng makakaya ko. May puwang pa para sa pagpapabuti sa board na ito ngunit gumana ito para sa akin kaya't iniwan ko ito. Mayroong isang bersyon na may isang tansong GND na kumukonekta sa lahat ng mga elemento ng Ground, at isang bersyon na walang naka-attach.

Maaari mo ring gamitin ang iyong eskematiko upang maitayo ito sa isang breadboard o prototype board, dahil ang mga ito ay mas madaling makarating at isang mas murang opsyon dahil hindi mo kailangang magkaroon ng isang pasadyang board milled.

Kapag mayroon kang disenyo ng board maaari kang magpatuloy sa susunod na hakbang!

Hakbang 3: Pagbuo ng Lupon

Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon

Ang bahaging ito ay ganap na nakasalalay sa kung paano mo nais na nilikha ang board. Lumikha ako ng sensor sa isang prototype board upang subukan upang makita kung gumagana ang konsepto at kung gaano ito katumpak, kaya sinunod ko ang eskematiko nang walang rehistro ng shift at nilikha ko ang board. Dapat mong tiyakin na ilatag ang lahat upang ang mga linya ay hindi magkakapatong, at na hindi mo sinasadyang mga linya ng panghinang na hindi dapat maiugnay. Kapag ginagawa ito sa isang prototype board, kailangan mong maging maingat, kaya't gugulin ang iyong oras at huwag itong madaliin. Dapat ka ring mag-ingat sa mga bukas na wires dahil maaari silang ilipat at maging sanhi ng mga shorts sa system.

Kung pinili mong magkaroon ng board milled pagkatapos ay mas simple ang prosesong ito. Ipadala ang file ng board sa miller kasama ang mga setting ng tukoy na miller. Kung ginagawa mo ito nang iyong sarili, gawin bago mo ilabas ito, siguraduhing ang lahat ng tanso ay maayos na napakaliit nang malalim, Ang unang board na ginawa ko, ang tanso ay hindi gilingan ng malalim at kailangan kong makakuha ng isa pang milled.

Siguraduhin na ang lahat ay na-solder sa board sa nais na layout at tiyaking gugugulin ang iyong oras, at kung ang paghihinang sa PCB pagkatapos ay siguraduhin na maghinang ka sa tamang bahagi ng board.

Kapag inilalagay ang IR Receivers at Emitter siguraduhin na ang emitter ay eksaktong nasa ilalim ng receiver. Kailangan mong maglaro sa paligid ng baluktot ang mga binti ng mga sangkap ng IR upang makuha ang mga ito sa tamang lugar. Panatilihin ang isang dice din sa kamay upang suriin kung ang mga lokasyon ng pip ay kung saan kailangan nila.

Kapag natapos mo na ang lahat at naidagdag sa board ikaw ay nasa programa ng sensor.

Hakbang 4: Programming ang Lupon

Programming ang Lupon
Programming ang Lupon
Programming ang Lupon
Programming ang Lupon

Ito ang nakakalito na bahagi ng paggawa ng sensor nang tumpak hangga't maaari, pag-program ng board. Sa kabutihang palad lumikha ako ng isang silid-aklatan upang magamit mo sa iyong bagong nilikha na sensor upang gawing mas madali ang pag-program, gayunpaman, kailangan mong i-calibrate ang sensor depende sa ilaw kung saan matatagpuan ang sensor na ito.

Upang magsimula dapat kang magkaroon ng isang Arduino upang mag-interface sa sensor na ito. Gumagamit ito ng 5 Analog pin at 3 digital pin.

May kakayahan kang gamitin ang silid-aklatan na aking ginawa upang pumili ng iyong sariling mga analog at digital na pin, ngunit ipapaliwanag ko ito gamit ang mga pin na ginawa ko upang mag-interface sa sensor. Minarkahan ko ang imahe na naka-link sa mga numero ng pin at may kulay na mga kahon sa paligid ng hanay ng mga pin upang madaling maipaliwanag kung aling mga pin ang plug kung saan.

Sa sensor, ang mga pin na 1-5 Pula ay papunta sa A0-A4, kaya't ang Red 1 ay papunta sa A0 at iba pa. Ang mga Pins 1-8 White ay nangangailangan ng kaunting paliwanag.

White 1 - Data pin, dito ipinapadala ng Arduino ang data sa rehistro ng shift. Itinakda ko ang pin na ito sa digital pin 3 sa Arduino

White 2 - Q0, lipas na sa kasong ito, isinama ko ito kung sakaling nagpasya akong palawakin ang lahat

White 3 & 4 - Magpapares, maaari mong solder ang dalawang ito nang magkasama o gumamit ng jumper tulad ng ginawa ko.

White 5 - latch pin, isang napakahalagang pin na ang pangwakas na hakbang sa proseso upang makita na i-on at i-off ang mga pips. Itinakda ko ang pin na ito upang i-pin ang 12 sa Arduino

White 6 - Clock Pin, Nagbibigay ito ng orasan mula sa Arduino hanggang sa rehistro ng shift. Itinakda ko ito sa digital pin 13.

White 7 & 8 - Magpapares, maaari mong solder ang dalawang ito nang magkasama o gumamit ng jumper tulad ng ginawa ko.

Sa tabi mismo ng puting kahon mayroon kang mga pin na Ground at VCC. Dapat kang magbigay ng 5v mula sa Arduino o ibang mapagkukunan upang mapagana ang sensor na ito.

Ang mga numero ng lokasyon ng PIP ay matatagpuan sa code.

Ngayon na kailangan mo itong i-hook up, kailangan namin itong i-calibrate. Ang layunin ko ay lumikha ng isang script na maaaring i-calibrate ito para sa iyo ngunit naubusan ako ng oras upang magawa ito. Kapag nagkakalibrate kailangan mong tiyakin na ang sensor ay nasa isang kinokontrol na kapaligiran sa pag-iilaw na sensitibo sa labas ng hinuha na ilaw. Kailangan mong makakuha ng isang halaga mula sa bawat lokasyon ng pip na may isang itim na tuldok at isang puting tuldok at i-average ang pagkakaiba. Gumamit lamang ako ng dalawang panig ng dice upang i-calibrate, ginamit ko ang panig 1, gilid 6, at gilid 6 na paikutin ang 90 degree. Kapag mayroon kang isang numero para sa puti at itim para sa bawat lokasyon ng pip, kailangan mong i-average ang mga ito at hanapin ang gitna ng dalawang numero. Halimbawa, kung nakakuha ako ng 200 para sa puti mula sa unang lokasyon ng pip, at 300 para sa madilim na halaga ng unang lokasyon ng pip, kung gayon ang bilang ng pagkakalibrate ay magiging 250. Kapag ginawa mo ito para sa lahat ng 5 mga lokasyon ng pip, maayos ang iyong sensor naka-calibrate, pagkatapos ay maaari mong gamitin ang dice. ReadFace (); upang makuha ang kasalukuyang mukha ng dice.

Hakbang 5: Paglalapat

Paglalapat
Paglalapat
Paglalapat
Paglalapat
Paglalapat
Paglalapat

Matagumpay kang nakalikha ng isang sensor ng dice! Binabati kita! Ito ay naging isang mahabang kalsada ng pagsubok at error para sa akin upang likhain ang sensor na ito, kaya't layunin kong tulungan ang sinumang lumitaw diyan na nais na lumikha ng isang sensor ng dice.

Nagsama ako ng ilang mga halimbawa ng proyekto na itinatayo namin na ginamit ang sensor na ito. Ang unang larawan, gumamit kami ng isang paddlewheel upang maayos na mailagay ang dice overtop ng sensor sa bawat oras. Ang pangalawang larawan ay ang pangwakas na produkto ng aming proyekto, at ang base ay paikutin depende sa kung ano ang mukha ng dice, at ang pangatlong larawan ay isang kahon ng pagpapakita na aking dinisenyo at itinayo upang maipakita ang mga sensor na ito.

Ang posibilidad para sa sensor na ito ay walang katapusan kung inilagay mo ang iyong isip dito. Inaasahan kong nasisiyahan ka sa tutorial na ito at pang-edukasyon, at inaasahan kong subukan mong gumawa ng isa para sa iyong sarili.

Biyayaan ka!

Inirerekumendang: