Talaan ng mga Nilalaman:

Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C: 7 Mga Hakbang
Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C: 7 Mga Hakbang

Video: Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C: 7 Mga Hakbang

Video: Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C: 7 Mga Hakbang
Video: How To Make a Paper Fortune Teller | EASY Origami | Out Of Paper | DIY 2024, Hunyo
Anonim
Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C
Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C
Ang Handhand Arduino Paper Rock Scissors Game Gamit ang 20x4 LCD Display Sa I2C
Ang Handhand Arduino Paper Rock Scissors Game Gamit ang 20x4 LCD Display Sa I2C
Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C
Ang Handhand Arduino Paper Rock Gunting na Laro Gamit ang 20x4 LCD Display Sa I2C

Kamusta sa lahat o marahil dapat kong sabihin ang "Hello World!"

Malaking kasiyahan na ibahagi ang isang proyekto sa iyo na naging entry ko sa maraming bagay na Arduino. Ito ay isang handheld Arduino Paper Rock Scissors na laro gamit ang isang I2C 20x4 LCD display. Alam kong baka naiisip mo, "Isa pang larong Paper Rock Gunting?" Ngunit ang karamihan sa mga laro ng Arduino Paper Rock Scissors ay gumagamit ng mga simpleng LED at nakita ko rin ang isa na gumamit ng mga simbolo ng papel na itinaas ng mga servo. Astig yun. Gumagamit ang proyektong ito ng 20x4 LCD display at ginawa ang isa sa I2C at isa nang wala ito (hindi ipinakita dito). Nais ng isang murang kaso na may tapos na hitsura, hindi lamang isang gulo sa tinapay-board. Hindi lahat ay may access sa isang 3D printer at nais na magbayad sa isang tao na gumagawa. At nais kong madali itong gawin upang maibahagi ko sa iba ang mga ideya. Dahil ang aking mga kasanayan sa programa ay antas ng baguhan ang sketch ay medyo simple at madaling maunawaan at mai-edit. Ito ang aking personal na edukasyon sa paglikha ng isang sketch. Mahahanap mo ang maraming mga tala sa sketch at dumaan ito sa maraming, (20+?) Mga pag-ulit hanggang sa maniwala akong tama lamang ito. Ang gastos ng proyekto ay mas mababa sa $ 20 upang makamit (hindi I2C).

Nagsimula sa Arduino noong 2018 at dumaan sa kanilang website at binasa ang lahat na makakaya ko. Itinayo at na-eksperimento sa mga halimbawang proyekto na kasama nito at basahin ang maraming mga Instructionable kaya marami sa iyo ang nagbahagi sa mga nakaraang taon. Talagang pinahahalagahan ang mga ito at napakaraming natutunan mula sa inyong lahat. Salamat. Ngayon nais kong ibahagi ang ilan sa natutunan kong pagdaragdag ng aking sariling pagkamalikhain. Bago ang seksyon ng mga puna ay magtipun-tipon ng maraming mga katanungan kung paano ito gawin at mangyaring tandaan, sinimulan ko ito nang walang karanasan sa Arduino. Natutunan ko sa pamamagitan ng pagbuo ng mga halimbawang proyekto sa Arduino at mga website na Instructables. Natuto ako sa inyo. Kapag natigil ka sa mga iyon ay maaaring ang pinakamabilis na paraan para makahanap ka ng solusyon.

Hakbang 1: Panimula sa Proyekto

Panimula sa Proyekto
Panimula sa Proyekto
Panimula sa Proyekto
Panimula sa Proyekto

Napili ang LCD display mula sa Amazon at pinili ang I2C 20x4 LCD dahil sa mababang gastos (halos $ 12 - $ 18) at kadalian ng mga kable at pagprograma. Kung nais mo, maaari mong gamitin ang isa nang walang I2C at maaaring makakuha ng isa na kasing murang $ 7. Ngunit kakailanganin mong gumamit ng ibang library at scheme ng mga kable at gumamit ng higit pang mga pin ng Arduino. Huwag magalala, sapat na upang pumunta sa alinmang paraan. Ang Serial I2C 20x4 ay magiging mas madaling magtayo, mas kaunting mga wire ay hindi gaanong nakalilito. Ngunit ang parallel 20x4 LCD ay halos $ 5 na mas mura. Gumuhit ako ng mga iskema para sa parehong mga scemes ng kable. Karamihan sa iba pang mga bahagi na binili ko mula sa Amazon at ng ilang mga lokal na tindahan. Ang aking kahon ay isang walang laman na kahon ng mix mix ng cappuccino. Gusto ko na ang takip ay madaling mag-pop up upang i-on / i-off ang kuryente, magtrabaho sa anumang mga bahagi o baguhin ang baterya. At "Hoy!" ang kahon ay libre at gusto ko ng cappuccino. Ang pag-recycle ng plastik ay mabuti para sa kapaligiran. Maaari mong gamitin ang anumang kahon na gusto mo na ang lahat ay umaangkop sa o kahit na laktawan ang kahon o board board ng proyekto. Gusto ko ng isang "tapos na proyekto tingnan" sa murang. Taya ko ang isang tao ay lumilikha ng isang 3D na naka-print na bersyon. Ginampanan ng Arduino ang larong Paper Rock Gunting kasama mo sa LCD, pinapanatili ang puntos, maaari kang mag-input gamit ang mga pindutan, at kung pipiliin mo mayroong isang pagpipilian na hinahayaan kang mandaya. Orihinal na ang tampok na pandaraya ay isinulat para sa mga layunin ng pag-debug at nang natapos ko ito ay binigyan ko ito ng puna. Para lang sa kasiyahan ay inilagay ko ulit ito.

Hakbang 2: Bread-board

Bread-board
Bread-board
Bread-board
Bread-board

Sinakay ko ang aking mga circuit gamit ang Arduino Uno ngunit nang pagsamahin ang lahat ay ginamit ang Arduino Nano dahil mas umaangkop ito sa kahon. Kaya, maitatayo mo ito sa alinman sa isa. Ngunit tandaan na baguhin ang ilang mga setting sa IDE. Ang Nano ay naka-install sa likod ng LCD gamit ang Command Strips o double-sided sticky tape. Iposisyon ang Arduino Nano sa tabi ng I2C piggyback board upang ang USB konektor ay haharap sa labas (sa kanan ng LCD). Maaari mong gamitin ang isang 9v o 4x AA (na magbibigay sa iyo ng 6v) na kahon ng baterya na may SPST slide switch para sa kuryente na naka-mount sa loob ng kahon na may Command Strips din. Itinayo ito sa parehong paraan, ang Arduino ay may isang on-board voltage regulator na dinadala ito sa 5 volts na kailangan nito. Kung sa tingin mo tungkol dito ang larong ito ay maaaring aktwal na mag-recycle ng "halos patay na 9v na baterya" para sa lakas at maayos na gumana. (Pinapalitan mo ang mga baterya ng detector ng usok dalawang beses sa isang taon, tama ba?) Ang iba pang mga aparato na gumagamit ng isang 9v na baterya ay maaaring sabihin na patay na ito sa 6 - 8 volts; ngunit hindi ito patay hanggang sa "Arduino Dead!"

Habang ang pagdidisenyo ng proyekto ay gumamit ako ng 4 na mga pindutan ng push SPST para sa pag-input. Ngunit ang pagbuo ng natapos na laro sa kahon ay ginamit ang 5 mga pindutan ng push SPST na nag-iisip sa hinaharap na maaari kong subukang gumawa ng isang laro na kailangan ng higit pang mga pindutan. Siguro isang laro ng maze? Ang isang divider ng boltahe ng risistor para sa mga pindutan ay naka-mount magkasama sa isang piraso ng scrap ng mga board board na maaari ring mai-mount sa Command Strips.

Hakbang 3: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Assembly:

Ang 4 pangunahing mga pagpupulong ay ang LCD na may opsyonal na I2C piggyback board, Arduino Nano, ang mga resistors at switch na daisy na nakakadena sa magkakaugnay na board ng proto at ang kahon ng baterya na may on / off switch.

Dapat kang magsimula sa pamamagitan ng pagsakay sa tinapay sa circuit o matigas na kawad ang board ng proto na sumusunod sa eskematiko. Gusto kong itago ang LCD na mukha pababa sa takip ng kahon upang hindi mai-gasgas ito. Gumamit ako ng isang header sa isang gilid lamang ng Arduino na mayroong 5v upang ikonekta ito sa board ng proto. Gumawa ako ng isang tulay na may 3 mga header (maraming gawaing panghinang) mula sa Arduino hanggang sa board board kaya nahiga sila sa likuran ng LCD na may mga Command strip o dobleng panig na malagkit na tape. Ngunit talaga, ang mga board ay maaaring konektado lamang sa mga paghihinang na mga wire mula sa isa hanggang sa isa pa. Gumamit ng isang babaeng header upang ikonekta ang board ng proto sa LCD I2C. Maaaring magamit ang mga binti ng resistor ng board board upang gawin ang 5 mga puntos ng panghinang para sa mga pindutan. Ang iba pang mga binti ng bawat pindutan ay napupunta sa Arduino pin A0. Ang bawat pindutan ay mangangailangan ng 2 wires na solder. Gumamit ng isang Ohm meter upang matukoy kung aling mga pindutan ang mga binti na gagamitin ngunit sa pangkalahatan ay hindi ka maaaring magkamali sa mga hindi malapit na binti (dayagonal mula sa bawat isa).

Piliin ang iyong mga setting para sa iyong Arduino sa IDE. I-download ang sketch at i-load ito sa Arduino at subukan ang pagsubok / pag-shoot ng problema.

Handa nang ilagay ito sa isang kahon? Inalis ang label para sa cappuccino, hinugasan at pinatuyo ang aking kahon. Maingat na sinukat at gupitin ang butas sa kahon para sa LCD na nakikita mo at naka-mount ito na may 3 dowels na naka-screw sa tatlong mga butas ng sulok ng LCD (2 sa ilalim ng kahon, 1 malapit sa takip) na sapat lamang ang haba upang maabot ang likod ng kahon at panatilihin ito sa lugar na may alitan. Ang butas ng tornilyo sa LCD ang piggyback board ay maaaring masyadong malapit sa terminal, kaya't tinanggal ko ito. Gumamit ng isang Exacto kutsilyo upang mag-drill ng mga butas ng piloto para sa mga turnilyo sa mga dowel upang hindi sila magkahiwalay (maingat, huwag madulas at isaksak ang iyong sarili, hawakan ang mga dowel na may mga plier). Kailangang ibaluktot / ibubo ang kahon nang kaunti para sa pangwakas na pag-install, ngunit bumalik ito sa tamang hugis. Ang mga butas para sa mga pindutan ay "drilled" sa pamamagitan ng pagposisyon sa kanila (gumuhit ng mga linya na may tuwid na gilid) at pag-init ng mga terminal gamit ang isang panghinang hanggang sa "matunaw" sila sa kahon. Pagkatapos tinanggal ang mga pindutan pagkatapos nilang cool off at maghinang sa 6 "- 9" CAT 5e wire scraps o 18ga hanggang 22ga wire sa mga pindutan. I-install muli ang mga pindutan ng kawad pabalik sa kanilang mga butas pagkatapos ay maghinang sa resistor proto-board. Ang isang tuldok ng sobrang pandikit, mainit na pandikit o kahit na alitan lamang ay mapanatili ang mga pindutan sa lugar. Sa isang build ginamit ang ilang mga splicers ng cable ng telepono (ang mga pulang bilog sa malinaw na mga bloke ng plastik) upang makatulong na gawing mas madali ang huling maliit na koneksyon sa pagitan ng kahon ng baterya, resistor-prot-board at pagpupulong ng LCD / Arduino. Kung nais mo maaari mong gamitin ang solder at pag-urong ng init sa halip. Pagkatapos ay maingat at dahan-dahang itulak ang lahat ng mga kawad at mga bahagi sa kahon at isara ang takip. Nag-install ka ba ng baterya at na-upload ang Arduino sketch bago gawin ang lahat ng ito? Kakailanganin mo rin ang silid-aklatan para sa 20x4 LCD display na mayroon o walang I2C (alinman ang pipiliin mo) na maaari mong i-download nang libre sa Github. Patayin ito, subukan, at alamin kung ito ay gumagana. Nang maglaon ay na-edit ko ang aking sketch na may mga pag-pause upang gawing mas madaling basahin, idinagdag ang "blinking dots effect" at ilang iba pang mga bagay kasama ang maraming mga puna. Subukang iposisyon ang Arduino upang ang USB ay maaari pa ring makakonekta at mai-upload ang isang bagong sketch. Gumamit ng isang tsart ng daloy, siyempre, kapag lumilikha ng sketch. Mahahanap mo ang mga puna na medyo tinukoy kung saan ang bawat bloke ng flow chart.

Malalaman mo na ang mga pindutan ay nasa isang serye / parallel circuit na nagbibigay-daan sa iyo upang gumamit ng isang Arduino input pin para sa maraming mga pindutan na gusto mo. Ang circuit ay kumikilos tulad ng isang divider ng boltahe upang pakainin ang isang halaga sa analog pin na binabago ang halagang binasa ng bawat pindutan na pinindot. Maaari mong gamitin ang serial monitor upang malaman ang iyong mga halaga ng circuit batay sa iyong resistors at baguhin ang "tinatanggap na mga halaga" sa iyong sketch.

Inaasahan kong mayroon kang kasiyahan sa pagbuo ng iyong sarili! Kung gumawa ka ng isa o kahit na gumawa ng ilang mga mods na ito mangyaring ibahagi sa iba pa sa amin. Salamat sa pagbabasa.

Hakbang 4: Programming at Mga Setting

Programming at Mga Setting
Programming at Mga Setting
Programming at Mga Setting
Programming at Mga Setting

Ngayon para masaya kasama ang IDE. Sana uminom ka ng cappuccino. Maaaring kailanganin mo ito upang matulungan kang manatiling gising.

Maaari mong makita na kakailanganin mong mag-set up ng ilang mga aklatan. Kakailanganin mo ang Wire.h Para sa I2C, LCD.h para sa LCD, LiquidCrystal_I2C.h para sa I2C na kinokontrol na LCD. Kakailanganin mo ring gamitin ang command lcd.begin (20, 4) upang sabihin sa Arduino na gumagamit ka ng isang 20 character 4 line LCD at maaaring may iba pang mga setting.

Para sa impormasyon sa pag-install ng mga aklatan, tingnan ang:

Sa Arduino IDE maaari mong makita na kakailanganin mong itakda ang iyong board at ang port kung saan mo ito nakakonekta. Ang port ay matatagpuan sa iyong computer control panel / device manager / Universal Serial Bus Controller. Kailangan mong malaman kung aling Arduino ang iyong ginagamit. Gumagamit ako ng Arduino Nano ngunit gumagana rin ito para sa Uno. Maingat na piliin ang iyong mga setting.

Maaaring kailanganin mong malaman ang iyong I2C address. Dapat mong mabasa ito nang direkta mula sa board jumpers. Maaari mo ring i-download ang isang I2C scanner mula sa Arduino.cc o din https://www.gammon.com.au/forum/?id=10896 at iba pang mga lugar.

Sa isang lugar sa paligid ng puntong ito dapat mong mai-load ang programa sa Arduino at subukan ang pagpapaandar. Nag-iilaw ba ang LCD screen? Mababasa mo ba ang mga character? Isa sa mga beses na itinayo ko ang circuit pagkatapos ay sinubukan ito ang backlight ay naiilawan ngunit ang mga character ay hindi mabasa. Gumugol ng mga oras (tama, HOURS) sinusubukan ang mga setting at pag-toning ng mga koneksyon upang matiyak na ito ay naitayo nang tama. Sumuko sa loob ng ilang araw. Bumalik dito mamaya at napagtanto ang variable na risistor sa piggyback board ay itinakda sa minimum. Naka-up ito at nakikita ang mga character. Tumungo sa mesa. Ang isa pang kadahilanan upang ibagsak ang iyong ulo sa desk? Kung kailangan mong palitan ang baterya maaaring kailanganin mong ayusin muli ang variable na resistor na ito. Nang nangyari ito ay pinutol ko ang isang maliit na butas sa likod ng kahon para ma-access.

Maaaring kailanganin mong itakda ang iyong sariling mga halaga ng pindutan sa program na ito batay sa mga resistor na ginagamit mo para sa iyong mga pindutan. Maaari mong gamitin ang madaling gamiting maliit na sketch na iyon at tandaan na buhayin ang serial monitor. Patakbuhin ang sketch at pindutin ang bawat pindutan at isulat ang bawat halaga. Pagkatapos ay i-edit ang sketch upang maipakita ang mga halaga ng iyong pindutan. Pagkatapos i-upload ang na-edit na sketch sa iyong board at tingnan kung gumagana ito.

Mayroong maraming mga maliit na variable na ang lahat ay dapat na tama at ang sa iyo ay maaaring naiiba kaysa sa akin. Ang pagiging matiyaga at sumubok ng iba't ibang mga bagay ay makakatulong sa iyo na makapagtrabaho. Tandaan din pagkatapos mong itakda ang iyong mga variable ng Arduino (Tulad ng pangalan ng board, com 3, 5 o kung ano pa man, processor at programmer [lahat sa ilalim ng mga tool]) maaari mong itama ang lahat sa kanila ngunit hindi ito gumana dahil kailangan mong muling boot. I-unplug ang Arduino at i-plug ito muli sa iyong computer. Maaaring kailanganin mong i-save at i-boot muli ang iyong computer.

I-upload ang sketch na ito, patakbuhin ang monitor, itulak ang mga pindutan at itala ang mga halaga, pagkatapos ay i-edit ang sketch ng Paper Rock Scissors na pinalitan ang mga halaga ng resistor ko sa iyo. Patakbuhin ang sketch ng Paper Rock Gunting at tingnan kung gumagana ito ng tama. Oh yeah, na-install mo ba ang iyong mga pindutan sa maling pagkakasunud-sunod? Maaaring kailanganin mong muling mai-install ang mga ito kung nais mo ang mga ito sa isang partikular na pagkakasunud-sunod.

Magsaya ka!

Hakbang 5: Ang Sketch sa Pagbasa ng Button ay Makatutulong sa Iyong Makita ang Iyong Mga Halaga ng Resister upang mai-edit Sa Pangunahing Sketch. Itulak ang bawat Button at Itala ang Iyong Mga Halaga ng Resistor upang Maipasok sa Pangunahing Sketch

// button ng pagbasa ng sketch

walang bisa ang pag-setup () {

// ilagay ang iyong setup code dito, upang tumakbo nang isang beses:

Serial.begin (9600);

}

void loop () {

// ilagay ang iyong pangunahing code dito, upang tumakbo nang paulit-ulit:

int buTTon; // Para sa mga pindutan ng pagbabasa

buTTon = 0; // Para sa mga pindutan ng pagbabasa

buTTon = analogRead (A0); // Ang utos ay binabasa ang Mga Pindutan

pagkaantala (100);

Serial.println (buTTon);

Hakbang 6: Mga Listahan ng Mga Bahagi at Mga Tool na Maaaring Kailangan Mo

Listahan ng Mga Bahagi Mula sa Amazon:

Arduino Uno o Arduino Nano

20x4 LCD display na mayroon o walang I2C

9v o 6v na kahon ng baterya na may SPST slide switch (o kunin nang magkahiwalay ang slide switch)

5x mga pindutan ng push SPST

1x Pull-up Resistor 1k - 5k

5x Resistors mas mababa sa 1k, 200 - 500 Ohms ay mabuti

Mga Listahan ng Mga Bahagi Iba Pang Mga Lokasyon o tindahan:

9v o 4x 1.5-volt na baterya (Hinahayaan ka ng pagpipiliang 9v na i-recycle ang mga "halos patay" na baterya)

Mga Command Strips (ginamit ang isang refill pack) o dobleng panig na malagkit na tape

Mga splicer ng cable ng telepono (opsyonal ngunit ginagawang madali upang ikonekta ang mga wire)

Ilang pulgada ng 1/4 dowel

Mga maliliit na tornilyo ng kahoy upang mai-mount ang mga dowel sa LCD

Panghinang

Heat Shrink para sa 18 ga wires

Mga Bahagi o Pag-recycle ng Mga Bahagi:

Walang laman na kahon ng mix mix ng cappuccino (hindi lahat ay may isang 3D printer, magkaroon ng ilang cappuccino at i-recycle ang ilang plastik)

Mga 1 "x 2" na Proto board scrap bagaman gumamit ako ng protoboard mula sa Amazon

Iba't ibang haba ng 18ga hanggang 22ga wire o Cat 5e solid core

Mga tool na Maaaring Kailanganin Mo:

Maliit na distornilyador ng Philips

Maliit na flat screwdriver ng talim

Exacto Knife

Panghinang at bakalang panghinang

Malakas na tungkulin Gunting

Mga karayom sa ilong

Pinuno

Hakbang 7: Ang Ilang Higit Pang Impormasyon at ang Pangunahing Sketch

Salamat sa pagbabasa. Alam kong marami ito. Ito ang aking kauna-unahan na Maitayo at ang nag-iisa lamang na ito ay medyo pang-edukasyon para sa akin. Sa pagbabalik tanaw nakikita ko na ako ay madaling salita sa ilang mga lugar at masyadong maikli sa iba. Dapat kong sirain ang pagpupulong nang higit pa sa mga hakbang. At dahil itinayo ko ang proyektong ito tungkol sa isang dosenang beses hanggang sa tama lamang ang ilan sa mga larawan ay mula sa isang modelo o iba pang mga. Kailangan kong bumalik at kumuha ng litrato ng isang modelo lamang. Gusto ko ring isama ang isang video o dalawa. Kaya oo, babalik ako at ayusin ang bagay na ito. Ngunit sa ngayon ay inilalagay ko ito sa iyong mga kamay. Inaasahan kong nasisiyahan ka sa pagbuo nito tulad ng nagustuhan ko. Salamat ulit sa pagbabasa.

Inirerekumendang: