Mündəricat:

I2C ilə 7x4 LCD Ekranı istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu: 7 addım
I2C ilə 7x4 LCD Ekranı istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu: 7 addım

Video: I2C ilə 7x4 LCD Ekranı istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu: 7 addım

Video: I2C ilə 7x4 LCD Ekranı istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu: 7 addım
Video: #5 Жидкокристаллический дисплей I2C || ESP8266 FLPROG ЛЕСТНИЧНАЯ ЛОГИКА 2024, Iyul
Anonim
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu
I2C ilə 20x4 LCD Ekrandan istifadə edən Əl Arduino Kağız Qaya Qayçı Oyunu

Hamıya salam və ya bəlkə də "Salam Dünya!" Deyim.

Arduinonun bir çox şeylərinə girişim olan bir layihəni sizinlə bölüşmək çox xoş olardı. Bu, I2C 20x4 LCD displeydən istifadə edən əl Arduino Paper Rock Scissors oyunudur. Bilirəm, "Başqa bir Paper Rock Scissors oyunu?" Ancaq Arduino Kağız Qaya Qayçı oyunlarının çoxunda sadə LED -lər istifadə olunur və servoların qaldırdığı kağız simvollarından istifadə edən birini də gördüm. Bunlar sərindir. Bu layihə 20x4 LCD displeydən istifadə edir və birini I2C ilə, digəri olmadan (burada göstərilmir) etdi. Yalnız bir çörək bişirmə qarışığı deyil, bitmiş görünüşlü ucuz bir qutu istədim. Hər kəsin 3D printerə çıxışı yoxdur və bunu edənə pul ödəmək istəmir. Fikirlərimi başqaları ilə bölüşmək üçün asan olmasını istədim. Proqramlaşdırma bacarıqlarım təcrübəsiz olduğu üçün eskiz olduqca sadədir və başa düşülməsi və redaktəsi asandır. Bu eskiz yaratmaq üçün şəxsi təhsilim idi. Eskizdə bir çox qeyd tapa bilərsiniz və bunun doğru olduğuna inanana qədər bir çox (20+?) Təkrarlamadan keçdi. Layihənin dəyəri 20 dollardan azdır (I2C olmayan).

2018 -ci ildə Arduino ilə başladım və veb saytlarını gəzdim və bacardığım hər şeyi oxudum. Birlikdə gəldiyi nümunə layihələrlə qurulmuş və sınaqdan keçirilmiş və bir çoxlarınızın illər ərzində paylaşdığınız bir çox Təlimatları oxuyun. Onları həqiqətən qiymətləndirin və hamınızdan çox şey öyrəndiniz. Çox sağ ol. İndi öz yaradıcılığıma əlavə olaraq öyrəndiklərimdən bir neçəsini bölüşmək istəyirəm. Şərhlər bölməsində bunu necə edəcəyinizlə bağlı çoxlu suallar yığılmadan əvvəl unutmayın ki, bunu Arduinoda heç bir təcrübəm olmadan başladım. Arduino və Instructables veb saytlarında nümunə layihələr quraraq öyrəndim. Sizdən öyrəndim uşaqlar. Zorlandığınızda, bu, bir həll tapmağın ən sürətli yolu ola bilər.

Addım 1: Layihəyə Giriş

Layihə Giriş
Layihə Giriş
Layihə Giriş
Layihə Giriş

Amazon -dan LCD ekranı seçdi və aşağı qiymət (təxminən 12-18 dollar) və kabel çəkmə və proqramlaşdırma asanlığı səbəbindən I2C 20x4 LCD -ni seçdi. İstəyirsinizsə, I2C olmadan birini istifadə edə bilərsiniz və birini 7 dollara qədər ucuz əldə edə bilərsiniz. Ancaq fərqli bir kitabxana və kabel sxemindən istifadə etməli və daha çox Arduino sancaqları istifadə etməlisiniz. Narahat olmayın, hər iki tərəfə getmək kifayətdir. Serial I2C 20x4 qurmaq daha asan olardı, daha az tel daha az qarışıqdır. Ancaq paralel 20x4 LCD təxminən 5 dollar daha ucuzdur. Hər iki kabel xətti üçün sxemlər çəkdim. Amazondan və bir neçə yerli mağazadan aldığım digər hissələrin çoxu. Mənim qutum boş bir kapuçino içki qarışığı qutusudur. Gücünü açmaq/söndürmək, hər hansı bir komponentdə işləmək və ya batareyanı dəyişdirmək üçün qapağın asanlıqla açılmasını sevirəm. Və "Hey!" qutu pulsuzdu və kapuçino xoşuma gəlir. Plastikin təkrar emalı ətraf mühit üçün yaxşıdır. Layihənin qutusuna və ya çörək taxtasına uyğun olan hər şeyi istədiyiniz qutudan istifadə edə bilərsiniz. Ucuz bir "bitmiş layihə görünüşü" istədim. Əminəm ki, kimsə 3D çap versiyasını yaradır. Arduino, LCD -də sizinlə birlikdə Paper Rock Scissors oyununu oynayır, hesab saxlayır, düymələri ilə daxil edə bilərsiniz və seçsəniz aldatmağa imkan verən bir seçim var. Əvvəlcə fırıldaqçılıq xüsusiyyəti ayıklama məqsədləri üçün yazılmışdı və işimi bitirdikdən sonra şərh etdim. Sadəcə əylənmək üçün geri qoydum.

Addım 2: Çörək bişirmə

Çörək lövhəsi
Çörək lövhəsi
Çörək lövhəsi
Çörək lövhəsi

Arduino Uno-dan istifadə edərək dövrə vurdum, amma hamısını bir yerə qoyanda Arduino Nano istifadə etdim, çünki qutuya daha yaxşı uyğun gəlir. Beləliklə, hər ikisi ilə tikə bilərsiniz. Ancaq IDE -də bir neçə parametr dəyişdirməyi unutmayın. Nano, Command Strips və ya iki tərəfli yapışan bant istifadə edərək LCD-nin arxasına quraşdırılmışdır. Arduino Nano'yu USB konnektoru xaricə (LCD -nin sağında) baxacaq şəkildə I2C piggyback lövhəsinin yanında yerləşdirin. Qutunun içərisinə quraşdırılmış güc üçün SPST sürüşmə açarı olan 9v və ya 4x AA (6v verir) batareya qutusundan istifadə edə bilərsiniz. Hər iki şəkildə qurulan Arduino, ehtiyac duyduğu 5 volta endirən bir təyyarə gərginlik tənzimləyicisinə malikdir. Bu barədə düşünsəniz, bu oyun əslində "əsasən ölü 9v batareyaları" güc üçün geri qaytara bilər və yaxşı işləyir. (Tüstü detektorlarının batareyalarını ildə iki dəfə dəyişirsiniz, elə deyilmi?) 9v batareya istifadə edən digər cihazlar 6-8 voltda öldüyünü söyləyə bilər; ancaq "Arduino Dead!" olana qədər ölməmişdir.

Layihəni tərtib edərkən giriş üçün 4 SPST düyməsindən istifadə etdim, ancaq bitmiş oyunu qutuda qurarkən 5 SPST düyməsini istifadə edərək gələcəkdə düşünərək daha çox düyməyə ehtiyacı olan bir oyun yaratmağa çalışa bilərəm. Bəlkə bir labirent oyunu? Düymələr üçün bir rezistor gərginlik bölücü, Komanda Şeritləri ilə də quraşdırıla bilən proto lövhənin bir qırıntı hissəsinə birlikdə quraşdırılmışdır.

Addım 3: Montaj

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Montaj:

4 əsas qurğu, isteğe bağlı I2C piggyback lövhəsi olan LCD, Arduino Nano, bir -birinə bağlanan proto lövhəyə bağlanmış rezistorlar və açarlar və açma/söndürmə açarı olan batareya qutusudur.

Sxemdən sonra dövrə çörək taxmağa və ya proto lövhəyə sərt tel bağlamağa başlamalısınız. LCD -ni cızmamaq üçün üzü aşağıya doğru qutunun qapağında saxlamağı sevirəm. Arduinonun yalnız bir tərəfində protokol lövhəsinə qoşulmaq üçün 5v olan bir başlıq istifadə etdim. Arduinodan proto lövhəyə qədər 3 başlıqlı (çoxlu lehim işləri) bir körpü düzəltdim ki, LCD-nin arxasında Komanda şeritləri və ya iki tərəfli yapışan lentlə düz yatsınlar. Ancaq həqiqətən, lövhələr bir -birindən lehim telləri ilə bağlana bilər. Bir protokol lövhəsini LCD I2C -yə bağlamaq üçün bir qadın başlıq istifadə etdi. Düymələr üçün 5 lehim nöqtəsi etmək üçün proto lövhə rezistor ayaqları istifadə edilə bilər. Hər düymənin digər ayağı Arduino pin A0 -a gedir. Hər düyməyə 2 tel lehimli lazımdır. Hansı düymə ayaqlarından istifadə edəcəyinizi müəyyən etmək üçün bir Ohm sayğacı istifadə edin, lakin ümumiyyətlə bitişik olmayan ayaqlarla (bir -birindən diaqonal) səhv edə bilməzsiniz.

IDE -də Arduino üçün parametrlərinizi seçin. Eskizi yükləyin və Arduinoya yükləyin və sınaq / problem çəkilişi.

Bir qutuya qoymağa hazırsınız? Cappuccino etiketini çıxartdım, qutumu yuyub qurudum. Gördüyünüz kimi LCD üçün qutudakı çuxuru diqqətlə ölçün və kəsin və üç LCD künc çuxuruna (2 qutunun dibinə, 1 qapağın yanında) vidalanmış 3 dübel ilə monte edilir. qutunun arxasına qoyun və sürtünmə ilə yerində saxlayın. LCD üzərindəki vida çuxuru, geri dönmə lövhəsi terminala çox yaxın ola bilər, buna görə də onu buraxıram. Dübellərdəki vintlər üçün pilot delikləri açmaq üçün Exacto bıçağı istifadə edərək parçalanmamalıdır (diqqətli olun, sürüşməyin və özünüzü bıçaqlamayın, dübelləri kəlbətinlə tutun). Son quraşdırma üçün qutunu bir az əymək / yumaq lazım idi, ancaq düzgün formaya qayıdır. Düymələr üçün çuxurlar yerləşdirilərək (düz kənarlarla xətlər çəkilərək) və terminallar qutuda "əriyənə qədər" bir lehimləmə dəmiri ilə qızdırılaraq "qazılır". Sonra soyuduqdan sonra düymələri çıxardın və düymələrə 6 " - 9" CAT 5e tel qırıntıları və ya 18ga ilə 22ga telə lehimləyin. Düymələri əvvəlcə öz çuxurlarına qoyun, sonra rezistor proto lövhəsinə lehimləyin. Bir nöqtədə super yapışqan, isti yapışqan və ya sadəcə sürtünmə düymələri yerində saxlayacaq. Bir quruluşda, batareya qutusu, rezistor proto-lövhəsi və LCD / Arduino qurğusu arasındakı son əllə əlaqəni asanlaşdırmaq üçün bəzi telefon kabel ayırıcıları (şəffaf plastik bloklardakı qırmızı dairələr) istifadə edilmişdir. İstəyirsinizsə, bunun əvəzinə lehim və istilik büzücü istifadə edə bilərsiniz. Sonra diqqətlə və yavaş -yavaş bütün teli və komponentləri qutuya itələyin və qapağı bağlayın. Bütün bunları etməzdən əvvəl bir batareya quraşdırıb Arduino eskizini yükləmisiniz? Github -da pulsuz yükləyə biləcəyiniz I2C ilə və ya olmadan (hansı birini seçirsinizsə) 20x4 LCD ekran üçün kitabxanaya da ehtiyacınız olacaq. Gücləndirin, sınayın və işlədiyini görün. Daha sonra oxumağı asanlaşdırmaq üçün eskizimi fasilələrlə düzəltdim, "yanıb -sönən nöqtələr effekti" ni və bir çox başqa şərhləri əlavə etdim. Arduino -nu USB -yə qoşulmaq və yeni bir eskiz yükləmək üçün yerləşdirməyə çalışın. Bir eskiz hazırlayarkən, əlbəttə ki, bir cədvəl istifadə olunur. Hər bir axın cədvəlinin harada olduğunu izah edən şərhləri tapa bilərsiniz.

Düymələrin istədiyiniz qədər düymə üçün bir Arduino giriş pinindən istifadə etməyə imkan verən bir sıra / paralel dövrədə olduğunu görəcəksiniz. Dövrə, hər bir düyməyə basıldıqda oxunan dəyəri dəyişdirərək analoji pinə bir dəyər vermək üçün bir gərginlik bölücü kimi hərəkət edir. Rezistorlarınıza əsaslanaraq dövrə dəyərlərinizi anlamaq və eskizinizdəki "qəbul edilmiş dəyərləri" dəyişdirmək üçün serial monitordan istifadə edə bilərsiniz.

Ümid edirik ki, öz evinizi tikməkdən zövq alırsınız! Bunun bir modunu etsəniz və ya hətta bir neçəsini etsəniz, zəhmət olmasa qalanlarımızla paylaşın. Oxuduğunuz üçün təşəkkürlər.

Addım 4: Proqramlaşdırma və Ayarlar

Proqramlaşdırma və Ayarlar
Proqramlaşdırma və Ayarlar
Proqramlaşdırma və Ayarlar
Proqramlaşdırma və Ayarlar

İndi IDE ilə əylənmək üçün. Ümid edirəm bir az kapuçino içmisiniz. Oyaq qalmağınıza kömək etmək üçün ehtiyacınız ola bilər.

Bəzi kitabxanalar qurmağınız lazım ola bilər. I2C üçün Wire.h, LCD üçün LCD.h, I2C idarə olunan LCD üçün LiquidCrystal_I2C.h lazımdır. Arduino -ya 20 xarakterli 4 sətirli LCD istifadə etdiyinizi bildirmək üçün lcd.begin (20, 4) əmrindən də istifadə etməlisiniz və başqa parametrlər də ola bilər.

Kitabxanaların quraşdırılması haqqında məlumat üçün baxın:

Arduino IDE -də lövhənizi və bağladığınız portu təyin etməyiniz lazım ola bilər. Limanı kompüterinizin idarəetmə panelində/cihaz menecerində/Universal Serial Bus nəzarətçilərində tapa bilərsiniz. Hansı Arduino istifadə etdiyinizi anlamalısınız. Arduino Nano'dan istifadə edirəm, amma Uno da bunun üçün işləyir. Ayarlarınızı diqqətlə seçin.

I2C ünvanınızı anlamaq lazım ola bilər. Bunu birbaşa lövhə atlayıcılarından oxuya bilməlisiniz. Ayrıca I2C skanerini Arduino.cc saytından və ya https://www.gammon.com.au/forum/?id=10896 və digər yerlərdən yükləyə bilərsiniz.

Bu nöqtədə bir yerdə proqramı Arduino -ya yükləyib funksionallığı sınamalısınız. LCD ekran yanır? Qəhrəmanları oxuya bilərsinizmi? Bir dəfə dövrə qurdum, sonra arxa işığın yandığını sınadım, amma simvollar oxunmurdu. Düzgün qurulduğundan əmin olmaq üçün parametrləri sınamaq və əlaqələri tonlamaq üçün saatlarla (bu, HOURS) vaxt sərf etdi. Bir -iki gündən imtina et. Daha sonra geri qayıtdı və piggyback lövhəsindəki dəyişkən müqavimətin minimuma endirildiyini anladı. Başını çevirdi və personajlar göründü. Başını masaya vurun. Başınızı masaya vurmağın başqa bir səbəbi? Batareyanı dəyişdirmək lazımdırsa, bu dəyişən rezistoru yenidən tənzimləməlisiniz. Bu baş verdikdə giriş üçün qutunun arxasındakı kiçik bir çuxur kəsdim.

Düymələriniz üçün istifadə etdiyiniz rezistorlara əsaslanaraq bu proqramda öz düymə dəyərlərinizi təyin etməyiniz lazım ola bilər. Bunun üçün bu lazımlı kiçik eskizdən istifadə edə bilərsiniz və serial monitoru aktivləşdirməyi unutmayın. Eskizi işə salın və hər düyməni basın və hər bir dəyəri yazın. Sonra düymə dəyərlərinizi əks etdirmək üçün eskizi düzəldin. Sonra düzəldilmiş eskizi lövhənizə yükləyin və işlədiyini yoxlayın.

Hamısının doğru olması lazım olan bir çox kiçik dəyişən var və sizinki mənimkindən fərqli ola bilər. Səbirli olmaq və fərqli şeylər sınamaq, öz işinizi görməyə kömək edəcək. Arduino dəyişənlərinizi təyin etdikdən sonra unutmayın (lövhənin adı, com 3, 5 və ya hər hansı bir şey, prosessor və proqramçı [hamısı alətlər altındadır)) hamısını düzəltmiş ola bilərsiniz, amma işləmir, çünki yenidən yükləməlisiniz. Arduino'yu ayırın və yenidən kompüterinizə qoşun. Kompüterinizi yenidən saxlamalı və yenidən yükləməlisiniz.

Bu eskizi yükləyin, monitoru işə salın, düymələri basın və dəyərləri qeyd edin, sonra müqavimət dəyərlərimi sizinki ilə əvəz edən Kağız Qaya Qayçı eskizini düzəldin. Paper Rock Scissors eskizini işə salın və düzgün işlədiyinə baxın. Bəli, düymələrinizi səhv qaydada quraşdırmısınız? Müəyyən bir qaydada istəsəniz onları yenidən quraşdırmalı ola bilərsiniz.

Əylənin!

Addım 5: Düymə Oxumaq Sketch, Əsas Eskizdə Redaktə etmək üçün Rəqib Dəyərlərinizi tapmağa kömək edəcək. Əsas Eskizə daxil olmaq üçün Hər Düyməni Basın və Rezistor Dəyərlərinizi Yazın

// düyməni oxu eskizi

boş quraşdırma () {

// bir dəfə işə salmaq üçün quraşdırma kodunuzu bura qoyun:

Serial.begin (9600);

}

boşluq döngəsi () {

// əsas kodunuzu bura qoyun, təkrar işləsin:

int buTTon; // Düymələri oxumaq üçün

buTTon = 0; // Düymələri oxumaq üçün

buTTon = analogRead (A0); // Düymələri oxumaq üçün istifadə olunan əmr

gecikmə (100);

Serial.println (buTTon);

Addım 6: Ehtiyac duyacağınız hissə siyahıları və alətlər

Amazon -dan hissələr siyahısı:

Arduino Uno və ya Arduino Nano

I2C ilə və ya olmadan 20x4 LCD ekran

SPST sürüşmə açarı olan 9v və ya 6v batareya qutusu (və ya sürüşmə açarını ayrıca alın)

5x SPST düymələri

1x çəkmə müqaviməti 1k - 5k

1x -dən az 5x Rezistorlar, 200-500 Ohm yaxşıdır

Parça Siyahıları Digər Yerlər və ya mağazalar:

9v və ya 4x 1.5 voltluq batareya (9v seçimi "əsasən ölü" batareyaları geri qaytarmağa imkan verir)

Komanda zolaqları (doldurma paketi istifadə olunur) və ya iki tərəfli yapışan bant

Telefon kabel bağlayıcıları (isteğe bağlıdır, lakin telləri bağlamağı asanlaşdırır)

Bir neçə düym 1/4 dübel

Dübelləri LCD -yə bağlamaq üçün kiçik ağac vintlər

Lehim

18 ga tellər üçün istilik azaldır

Hurda və ya təkrar emal hissələri:

Boş kapuçino içki qarışığı qutusu (hər kəsin 3D printeri yoxdur, bir az kapuçino var və bir qədər plastik geri çevrilir)

Amazondan protoboard istifadə etməyimə baxmayaraq təxminən 1 "x 2" ölçülü Proto lövhə qırıntıları

Müxtəlif uzunluqdakı 18ga -dan 22 -ə qədər tel və ya Cat 5e bərk nüvəli

Ehtiyacınız ola biləcək vasitələr:

Kiçik Philips tornavida

Kiçik düz bıçaqlı tornavida

Exacto Bıçağı

Lehimləmə dəmir və lehim

Ağır qayçı

İğne burun kəlbətinləri

Hökmdar

Addım 7: Biraz Ətraflı Məlumat və Əsas Eskiz

Oxuduğunuz üçün təşəkkürlər. Çox olduğunu bilirəm. Bu mənim ilk Intructable və tək mənim üçün bir az təhsil idi. Geriyə baxanda görürəm ki, bəzi yerlərdə kobud danışıram, digər yerlərdə isə çox qısa. Məclisi daha çox addımlara ayırmalıydım. Və bu layihəni düzəltdiyimdən bəri, düzgün olana qədər, bəzi şəkillər bir modeldən və ya digərlərindəndir. Geri qayıtmalı və yalnız bir modelin şəkillərini çəkməliyəm. Bir -iki video da əlavə etmək istəyirəm. Bəli, geri qayıdacağam və bu şeyi düzəldəcəyəm. Amma hələlik onu sizin əlinizə verdim. Ümid edirəm ki, mənim kimi tikməyinizdən zövq alırsınız. Oxuduğunuz üçün bir daha təşəkkür edirəm.

Tövsiyə: