Talaan ng mga Nilalaman:

I-crack ang Code Game, Arduino Batay sa Puzzle Box: 4 na Hakbang (na may Mga Larawan)
I-crack ang Code Game, Arduino Batay sa Puzzle Box: 4 na Hakbang (na may Mga Larawan)

Video: I-crack ang Code Game, Arduino Batay sa Puzzle Box: 4 na Hakbang (na may Mga Larawan)

Video: I-crack ang Code Game, Arduino Batay sa Puzzle Box: 4 na Hakbang (na may Mga Larawan)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Hulyo
Anonim
Image
Image
Basagin ang Code Game, Arduino Batay sa Puzzle Box
Basagin ang Code Game, Arduino Batay sa Puzzle Box
Basagin ang Code Game, Arduino Batay sa Puzzle Box
Basagin ang Code Game, Arduino Batay sa Puzzle Box

Mga Proyekto ng Tinkercad »

Sa Instructable na ito, ipapakita ko sa iyo kung paano bumuo ng iyong sariling basagin ang code game kung saan gumagamit ka ng rotary encoder dial upang hulaan ang random na nabuong code sa ligtas. Mayroong 8 LEDs sa harap ng safe upang sabihin sa iyo kung ilan sa mga digit na nahulaan mo ang tama at ilan din ang nasa tamang lugar.

Ang ligtas ay paunang bukas, pinapayagan kang maglagay ng isang bagay sa loob ng kompartimento. Ang Arduino at baterya ay nakalagay sa isang hiwalay na kompartimento sa likuran. Pagkatapos ay itulak mo ang dial upang i-lock ang ligtas, na ginagawa gamit ang isang servo sa loob ng pintuan. Kailangan mong i-input ang code sa pamamagitan ng pag-dial upang piliin ang mga digit at itulak ang dial upang kumpirmahin ang bawat digit. Matapos mapili ang iyong ika-apat na digit, ipinapakita ng ligtas kung ilan sa iyong mga digit ang tama at ilan sa mga ito ay nasa tamang lugar gamit ang pula at berde na mga LED sa pintuan.

Ang isang pulang LED ay nagpapahiwatig ng isang tamang digit at isang berdeng LED ay nagpapahiwatig na nasa tamang lugar din ito. Kaya kailangan mong sindihan ang lahat ng apat na pula at berde na LEDs upang mai-crack ang code at buksan ang ligtas.

Sinusubaybayan ng ligtas kung ilan ang mga hula na iyong nagawa upang mai-crack ang code at ipinakita ito sa sandaling napangasiwaan mo ito. Maaari itong maging kumplikado sa una ngunit talagang hindi ito mahirap, kailangan mo lamang alalahanin at buuin ang iyong dating mga hula. Karamihan sa mga oras na dapat mong i-crack ang code sa 5 hanggang 10 hula, depende sa kung gaano kasuwerte ang iyong mga paunang hula.

Kung nasisiyahan ka sa Ituturo na ito, mangyaring isaalang-alang ang pagboto para dito sa paligsahan ng Arduino.

Mga gamit

Upang maitayo ang ligtas na kahon ng Crack The Code, kakailanganin mo ang:

  • Arduino Uno - Bilhin Dito
  • I2C OLED Display - Bilhin Dito
  • Pushbutton Encoder - Bumili Dito
  • 4 x 5mm Red LEDs - Bumili Dito
  • 4 x 5mm Green LEDs - Bumili Dito
  • 8 x 220Ω Mga Resistor - Bumili Dito
  • Micro Servo - Bumili Dito
  • Ribbon Cable - Bilhin Dito
  • Mga Header Strip - Bumili Dito
  • Power Switch - Bumili Dito
  • 3mm MDF Sheet - Bumili Dito

Kakailanganin mo rin ang ilang pangunahing mga tool, pandikit na kahoy, isang pandikit at isang bakal na panghinang.

Ang mga bahagi para sa ligtas na kahon ay kailangang i-cut ng laser. Kung wala kang access sa isang pamutol ng laser, isaalang-alang ang paggamit ng isang online na laser cutting service, naging abot-kaya ang mga ito at i-cut at ihahatid ang mga sangkap sa iyong pintuan.

Ito ang laser cutter na ginamit ko sa Instructable - K40 Laser Cutter

Hakbang 1: Magtipon ng Kahon

Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon
Ipunin ang Kahon

Dinisenyo ko ang ligtas na kahon sa Inkscape, upang maputol mula sa 3mm MDF. Maaari mo ring i-cut ang mga bahagi mula sa 3mm acrylic o playwud kung nais mo. Kung gagamit ka ng ibang materyal na kapal pagkatapos ay kakailanganin mong ayusin ang mga puwang sa mga bahagi ng kahon upang magkakasama nang tama.

Maaari mong i-download ang mga laser cutting file dito.

Mayroong 6 na panel na bumubuo sa mga labas ng kahon, ang likod at harap ay may mga ginupit sa kanila para sa harap at likod na mga pintuan. Ang mga panel ay may label sa naka-print na file upang masubaybayan mo ang mga ito.

Ang dial ay binubuo rin gamit ang ilang mga piraso ng hiwa ng laser na pagkatapos ay nakadikit.

Mayroong tatlong mga pandekorasyon na panel na natigil sa itaas at dalawang gilid ng kahon upang mas magmukhang isang ligtas ito. Mayroon ding dalawang mga panel na bumubuo sa pinto at isang divider panel na papunta sa gitna ng kahon upang paghiwalayin ang ligtas na kompartimento mula sa kompartimento ng electronics.

Ang mga piraso ay umaangkop sa isang solong piraso ng MDF 400 x 500mm at maaaring nahahati sa mas maliit na mga piraso kung ang iyong laser cutter ay hindi sapat na malaki upang i-cut ang lahat ng mga piraso nang sabay-sabay.

Sinimulan kong idikit ang mga pandekorasyon na panel sa itaas at gilid. Tiyaking nakuha mo ang mga piraso sa tamang pagkakasunud-sunod upang malaman mo kung alin ang alin. Mayroong tatlong magkakaibang mga piraso, ang tuktok at ibaba ay pareho, ang mga gilid ay pareho at ang harap at likod ay pareho.

Kapag ang mga panel ay tuyo, maaari mong tipunin ang kahon.

Tiyaking ang mga ginupit para sa center divider ay nasa gilid. Ito ay upang patakbuhin ang anumang mga wire mula sa harap ng kahon hanggang sa likuran ng kahon kung saan nakaupo ang Arduino at baterya.

Ang mga bisagra ay pinutol din ng laser at nakadikit lamang sa lugar kapag nakapila ka na sa pintuan. Tiyaking parallel ang mga ito sa pintuan o mahihirapan kang buksan ito. Maaaring kailanganin mo ring buhangin ng kaunti sa loob ng hinged edge ng pinto upang hindi ito kuskusin sa gilid ng kahon habang lumilipas ito.

Idikit ang apat na parisukat sa mga sulok sa likuran ng panel sa likuran upang butas ang mga tornilyo para sa takip sa likod.

Pagkatapos ay maaari mong drill ang mga butas para sa mga turnilyo at nagsimulang i-mount ang screen, ang Arduino, ang likod na takip at ang huli ang encoder.

Hakbang 2: Ikonekta ang Electronics

Ikonekta ang Electronics
Ikonekta ang Electronics
Ikonekta ang Electronics
Ikonekta ang Electronics
Ikonekta ang Electronics
Ikonekta ang Electronics

Dinisenyo ko ang circuit sa isang breadboard sa Tinkercad Circuits at idinagdag sa OLED display pagkatapos.

Nakakuha kami ng 8 LED na konektado sa digital IO pin 6 hanggang 13. Ang locking servo ay konektado sa pin 5. Ang encoder na konektado sa pin 2, 3 at 4 at ang OLED display ay konektado sa interface ng I2C ng Arduino.

Gumamit ako ng isang resistor na 220 ohm para sa bawat LED, direktang naghinang sa negatibong humantong at ikinonekta ko ang mga sangkap nang magkasama gamit ang kulay na ribbon cable upang mapanatili ang mga kable nang maayos at upang matulungan na subaybayan kung aling alambre ang kailangan upang mapunta sa bawat Arduino pin.

Itinulak ko ang mga kable ng laso sa likod na kompartimento at ang solder na ilang mga pin header strips papunta sa ribbon cable upang isaksak sa Arduino.

Nag-mount din ako ng isang switch ng kuryente papunta sa likod na takip at ikinonekta ito sa isang plug ng baterya upang kumonekta sa isang rechargeable na baterya upang mapagana ang laro. Maaari mo ring gamitin ang isang 9V na baterya kung nais mo.

Panghuli, kakailanganin mong ilagay ang locking servo patungo sa gilid ng pintuan upang dumaan ito sa labi sa kahon at ang braso ay maaaring itulak paakyat sa loob ng labi upang i-lock ang kahon. Hindi ito ang pinakamalakas na mekanismo ng pagla-lock ngunit talagang simple ito at gumagana ito ng maayos para sa layunin ng laro.

Hakbang 3: Programming ang Arduino

Programming ang Arduino
Programming ang Arduino
Programming ang Arduino
Programming ang Arduino

Hindi ako dumaan sa code nang mas detalyado tulad ng dati tulad ng may maraming ito. Nagawa ko ang isang detalyadong pagsulat na nagpapaliwanag sa bawat bahagi nito na maaari mong makita kasama ang pag-download ng code sa pamamagitan ng link na ito - Crack The Code Game Code.

Sa buod; nagsisimula kami sa pamamagitan ng pag-import ng mga aklatan upang makontrol ang display ng OLED at ang servo.

Pagkatapos ay itinakda namin ang mga parameter para sa display at nilikha ang lahat ng aming variable. Mayroong ilang mga variable na nakatuon sa pagsubaybay sa encoder lumiliko dahil ang mga ito ay tapos na sa pamamagitan ng tumataas na gilid na nakakagambala sa mga pin 2 at 3.

Mayroong dalawang mga pag-arrays ng code na nilikha, upang maiimbak ang random na nabuong code at isa upang maiimbak ang kasalukuyang hulaan ng mga gumagamit.

Sa pag-andar ng pag-set up sinisimulan namin ang display, ikabit ang servo, itakda ang mga mode ng IO pin at pagkatapos ay ipakita ang Crack The Code ng teksto ng teksto sa display.

Ang pag-andar ng loop ay nag-flash ng mga LED at ipinapakita ang push ng mensahe upang ma-lock ang ligtas na naghihintay hanggang sa itulak ng gumagamit ang dial upang simulan ang laro. Ang parehong code ay pinapatakbo sa pagtatapos ng isang laro na pagkatapos ay ipinapakita ang bilang ng mga pagtatangka at naghihintay para sa isang dial press upang magsimula ng isang bagong laro.

Mayroong ilang mga debouncing code sa pushbutton ng encoder at sa sandaling itulak, ikinakulong ng servo ang ligtas at nabuo ang isang random na code. Tumawag ang code ng isang pagpapaandar upang hilingin sa gumagamit na mai-input ang kanilang hula at pagkatapos ay isa pa upang suriin ang hulaan, ito ay inuulit hanggang sa hulaan ng gumagamit nang tama ang code.

Mayroong isang pag-andar upang i-update ang code na ipinapakita na kung saan ay tinatawag na sa tuwing nakabukas ang encoder at kailangang baguhin ang ipinakitang code.

Ang pagpapaandar upang makabuo ng isang bagong code ay nagtatalaga lamang ng isang random na digit sa bawat isa sa apat na mga elemento sa code array.

Ang pagpapaandar upang maglagay ng isang hula ng code ay nagbibigay-daan sa gumagamit na pumili ng isang digit gamit ang encoder at pagkatapos ay kumpirmahin ang bawat digit na input sa pamamagitan ng pagtulak pababa ng encoder.

Ang pag-andar ng check code hulaan pagkatapos ay tumingin sa pamamagitan ng nahulaan na code at nagpasya kung gaano karaming mga digit ang tama at kung ilan ang nasa tamang lugar.

Ang pagpapaandar ng pag-update ng LEDs ay lumilipat ng tamang bilang ng mga pula at berde na LED batay sa hulaan ng mga gumagamit.

Ipinapakita ng pagpapaandar ng startup ani ang animation ng Crack The Code sa pagsisimula.

Panghuli, pinapamahalaan ng dalawang mga pag-andar na nakakagambala ang pag-input mula sa encoder, isa na nagdaragdag ng digit paitaas kapag nakabukas nang pakaliwa at isa pababa kapag nakabukas sa anticlockwise.

Hakbang 4: Paglalaro ng Crack the Code Game

Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game
Nagpe-play ang Crack the Code Game

Ang pinakamahusay na paraan upang malaman kung paano laruin ang laro ay sa pamamagitan ng panonood ng video sa simula, mayroong dalawang mga halimbawa ng laro na nilalaro malapit sa katapusan.

Ang ligtas ay paunang naka-unlock, pinapayagan kang maglagay ng isang bagay sa loob nito.

Pagkatapos ay itulak mo ang dial upang i-lock ang ligtas at makabuo ng isang bagong code.

Ang nahulaan na code ay nag-input gamit ang dial upang madagdagan ang digit at isang push sa dial upang pumunta sa susunod na digit o upang kumpirmahin ang code kapag napili ang lahat ng apat na digit.

Ang mga LED sa harap pagkatapos ay sindihan upang sabihin sa amin kung ano ang tama sa aming hula.

Pagkatapos ay gagamitin mo ang feedback na ito upang gawin ang iyong susunod na hulaan hanggang sa mahulaan mo ang tamang code at muling buksan ang ligtas. Sa sandaling mailagay mo ang tamang code sa, ang ligtas na pag-unlock at ang bilang ng mga pagtatangka na kinuha sa iyo upang i-crack ang code ay ipinapakita.

Masiyahan sa pagbuo ng iyong sariling basag ang code na ligtas na code. Kung nasiyahan ka sa Instructable na ito, mangyaring isaalang-alang ang pagboto para dito sa paligsahan ng Arduino.

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

Pangalawang Gantimpala sa Arduino Contest 2020

Inirerekumendang: