İçindekiler:

I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu: 7 Adım
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu: 7 Adım

Video: I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu: 7 Adım

Video: I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu: 7 Adım
Video: ARDUINO İLE I2C MODÜLLÜ LCD EKRAN VE HC-SR04 MESAFE SENSÖRÜ KULLANARAK DİJİTAL METRE YAPIMI 2024, Kasım
Anonim
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu
I2C ile 20x4 LCD Ekran Kullanan Elde Taşınabilir Arduino Kağıt Taş Makas Oyunu

Herkese merhaba ya da belki de "Merhaba Dünya!" demeliyim.

Arduino ile birçok şeye giriş yaptığım bir projeyi sizlerle paylaşmak benim için büyük bir zevk olurdu. Bu, I2C 20x4 LCD ekran kullanan elde taşınabilir bir Arduino Kağıt Taş Makas oyunudur. "Başka bir Kağıt Taş Makas oyunu mu?" diye düşündüğünüzü biliyorum. Ancak çoğu Arduino Paper Rock Scissors oyunu basit LED'ler kullanır ve ayrıca servolar tarafından kaldırılan kağıt sembolleri kullanan bir tane gördüm. Bunlar harika. Bu proje 20x4 LCD ekran kullanıyor ve biri I2C ile diğeri onsuz (burada gösterilmemiştir). Sadece bir ekmek tahtası karmaşası değil, bitmiş bir görünüme sahip ucuz bir kasa istedim. Herkesin bir 3D yazıcıya erişimi yoktur ve bunu yapan birine ödeme yapmak ister. Ve fikirleri başkalarıyla paylaşabilmem için yapmanın kolay olmasını istedim. Programlama becerilerim başlangıç seviyesinde olduğu için taslak oldukça basit ve anlaşılması ve düzenlenmesi kolaydır. Bu benim bir eskiz oluşturma konusundaki kişisel eğitimimdi. Taslakta pek çok not bulacaksınız ve tam olarak doğru olduğuna inanana kadar pek çok (20+?) yinelemeden geçti. Projenin maliyeti 20 dolardan az (I2C dışı).

Arduino ile 2018'de başladım ve web sitelerini inceledim ve okuyabildiğim her şeyi okudum. Birlikte geldiği örnek projelerle oluşturulmuş ve denenmiş ve birçoğunuzun yıllar boyunca paylaştığı birçok Instructables'ı okuyun. Onları gerçekten takdir ediyorum ve hepinizden çok şey öğrendim. Teşekkürler. Şimdi kendi yaratıcılığımı ekleyerek öğrendiklerimden bazılarını paylaşmak istiyorum. Yorumlar bölümü, bunun nasıl yapılacağı ve lütfen aklınızda bulundurun hakkında birçok soru ile yığılmadan önce, buna Arduino'da deneyimim olmadan başladım. Arduino ve Instructables web sitelerinde örnek projeler oluşturarak öğrendim. Sizlerden öğrendim. Takıldığınız zaman, bunlar bir çözüm bulmanın en hızlı yolu olabilir.

Adım 1: Proje Tanıtımı

Proje Tanıtımı
Proje Tanıtımı
Proje Tanıtımı
Proje Tanıtımı

Amazon'dan LCD ekranı seçti ve düşük maliyet (yaklaşık 12 - 18 $) ve kablolama ve programlama kolaylığı nedeniyle I2C 20x4 LCD'yi seçti. İsterseniz, I2C'siz bir tane kullanabilir ve 7 $ kadar ucuz bir tane alabilirsiniz. Ancak farklı bir kütüphane ve kablolama şeması kullanmanız ve daha fazla Arduino pini kullanmanız gerekecek. Endişelenme, her iki yönde de yetecek kadar var. Seri I2C 20x4'ün inşası daha kolay olurdu, daha az kablo daha az kafa karıştırıcı olurdu. Ancak paralel 20x4 LCD yaklaşık 5 $ daha ucuzdur. Her iki kablolama şeması için şemalar çizdim. Amazon'dan ve birkaç yerel mağazadan satın aldığım diğer parçaların çoğu. Benim kutum boş bir kapuçino içecek karışımı kutusu. Gücü açmak/kapatmak, herhangi bir bileşen üzerinde çalışmak veya pili değiştirmek için kapağın kolayca açılmasını seviyorum. Ve "Hey!" kutu bedavaydı ve kapuçinoyu severim. Plastiğin geri dönüşümü çevre için iyidir. Her şeyin içine sığabileceği herhangi bir kutuyu kullanabilir, hatta kutuyu veya projeyi ekmek tahtası atlayabilirsiniz. Ucuza "bitmiş bir proje görünümü" istedim. Bahse girerim birisi 3D baskılı bir sürüm oluşturur. Arduino, LCD'de sizinle Paper Rock Scissors oyununu oynar, skor tutar, butonlar ile giriş yapabilirsiniz ve dilerseniz hile yapmanızı sağlayan bir seçenek vardır. Başlangıçta hile özelliği hata ayıklama amacıyla yazılmıştı ve işim bittiğinde yorum yaptım. Sadece eğlence olsun diye geri koydum.

2. Adım: Ekmek tahtası

ekmek tahtası
ekmek tahtası
ekmek tahtası
ekmek tahtası

Devrelerimi Arduino Uno kullanarak kurdum ama hepsini bir araya getirirken kutuya daha iyi oturduğu için Arduino Nano kullandım. Yani, bunu ikisinden biri ile inşa edebilirsiniz. Ancak IDE'de birkaç ayarı değiştirmeyi unutmayın. Nano, Komut Şeritleri veya çift taraflı yapışkan bant kullanılarak LCD'nin arkasına takılır. Arduino Nano'yu, USB konektörü dışa bakacak şekilde (LCD'nin sağında) I2C bindirme kartının yanına yerleştirin. Güç için SPST sürgülü anahtarlı 9v veya 4x AA (size 6v verir) pil kutusu, ayrıca Komut Şeritleri ile birlikte kutunun içine monte edilmiş kullanabilirsiniz. Her iki şekilde de inşa edilen Arduino, ihtiyaç duyduğu 5 volta indiren yerleşik bir voltaj regülatörüne sahiptir. Bunu düşünürseniz, bu oyun aslında güç ve iyi çalışma için "çoğunlukla bitmiş 9v pilleri" geri dönüştürebilir. (Duman dedektörü pillerini yılda iki kez değiştiriyorsunuz, değil mi?) 9v pil kullanan diğer cihazlar 6 – 8 voltta bittiğini söyleyebilir; ama “Arduino Ölü!” olana kadar ölü değildir.

Projeyi tasarlarken giriş için 4 adet SPST butonu kullandım. Fakat bitmiş oyunu kutuya inşa etmek için 5 adet SPST butonu kullandım, ileride daha fazla butona ihtiyaç duyan bir oyun yapmayı deneyebilirim. Belki bir labirent oyunu? Düğmeler için bir direnç voltaj bölücü, Komut Şeritleri ile de monte edilebilen bir proto kartın hurda parçasına birlikte monte edilir.

Adım 3: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Toplantı:

4 ana düzenek, isteğe bağlı I2C bindirme kartına sahip LCD, Arduino Nano, ara bağlantı proto kartına zincirleme bağlanmış dirençler ve anahtarlar ve açma/kapama anahtarlı pil kutusudur.

Devreyi ekmek tahtası yaparak veya şemayı izleyerek proto kartını kablolayarak başlamalısınız. LCD'yi çizilmemesi için kutu kapağında yüzü aşağı bakacak şekilde saklamayı seviyorum. Arduino'nun sadece bir tarafında, onu proto kartına bağlamak için 5v olan bir başlık kullandım. Arduino'dan proto kartına 3 başlıklı (birçok lehim işi) bir köprü yaptım, böylece Komut şeritleri veya çift taraflı yapışkan bant ile LCD'nin arkasında düz dururlar. Ama gerçekten, panolar sadece lehim telleri ile birinden diğerine bağlanabilir. Proto kartını LCD I2C'ye bağlamak için dişi bir başlık kullanıldı. Düğmeler için 5 lehim noktası yapmak için proto board direnç ayakları kullanılabilir. Her düğmenin diğer ayağı Arduino pin A0'a gider. Her düğmenin 2 tel lehimlenmesi gerekir. Hangi düğme ayaklarının kullanılacağını belirlemek için bir Ohm ölçer kullanın, ancak genellikle bitişik olmayan ayaklarla (birbirinden çapraz) yanlış gidemezsiniz.

IDE'de Arduino'nuz için ayarlarınızı seçin. Krokiyi indirin ve Arduino'ya yükleyin ve test / sorun giderme.

Bir kutuya koymaya hazır mısınız? Cappuccino etiketini çıkardım, kutumu yıkadım ve kuruttum. LCD için kutudaki deliği dikkatlice ölçüp gördüğünüz gibi kesin ve üç adet LCD köşe deliğine (2 kutunun altına, 1 tanesi kapağın yanına) sadece ulaşacak kadar uzun vidalanmış 3 dübel ile monte edilir. kutunun arkasına yerleştirin ve sürtünme ile yerinde tutun. LCD'deki bindirme kartındaki vida deliği terminale çok yakın olabilir, bu yüzden atlıyorum. Vidaların ayrılmaması için vidalar için kılavuz delikler açmak için bir Exacto bıçağı kullandım (dikkatli olun, kaymayın ve kendinizi bıçaklamayın, dübelleri pense ile tutun). Son kurulum için kutuyu biraz bükmek / ezmek zorunda kaldım, ancak uygun şekle geri dönüyor. Düğmeler için delikler, yerleştirerek (düz kenarlı çizgiler çizerek) ve terminalleri kutuda "eriyene" kadar bir havya ile ısıtarak "delinir". Ardından düğmeleri soğuduktan sonra çıkarın ve düğmelere 6" - 9" CAT 5e tel hurdaları veya 18ga ila 22ga teli lehimleyin. Düğmeleri kabloyla önce deliklerine takın, ardından rezistör proto-kartına lehimleyin. Bir nokta süper yapıştırıcı, sıcak yapıştırıcı veya sadece sürtünme bile düğmeleri yerinde tutacaktır. Bir yapıda, pil kutusu, direnç proto kartı ve LCD / Arduino montajı arasındaki son bir avuç bağlantıyı kolaylaştırmaya yardımcı olmak için bazı telefon kablosu ekleyicileri (şeffaf plastik bloklardaki kırmızı daireler) kullanıldı. Dilerseniz bunun yerine lehim ve ısıyla daralan makaron kullanabilirsiniz. Ardından tüm kabloları ve bileşenleri dikkatlice ve yavaşça kutunun içine itin ve kapağı kapatın. Tüm bunları yapmadan önce bir pil taktınız ve Arduino taslağını yüklediniz mi? Ayrıca Github'dan ücretsiz olarak indirebileceğiniz I2C'li veya I2C'siz (hangisini seçerseniz seçin) 20x4 LCD ekran için kütüphaneye ihtiyacınız olacak. Gücü açın, deneyin ve çalışıp çalışmadığını görün. Daha sonra çizimimi okumayı kolaylaştırmak için duraklamalarla düzenledim, "yanıp sönen noktalar efekti" ve diğer bazı şeyleri bolca yorumla ekledim. Arduino'yu USB'nin hala bağlanabilmesi ve yeni bir çizim yüklenebilmesi için konumlandırmaya çalışın. Çizimi oluştururken elbette bir akış şeması kullandık. Yorumların hemen hemen her bir akış şeması bloğunun nerede olduğunu tanımladığını göreceksiniz.

Butonların, bir Arduino giriş pinini istediğiniz kadar buton için kullanmanıza izin veren bir seri/paralel devrede olduğunu göreceksiniz. Devre, basılan her düğme tarafından okunan değeri değiştirerek analog pime bir değer beslemek için bir voltaj bölücü gibi davranır. Dirençlerinize göre devre değerlerinizi bulmak ve çiziminizdeki "kabul edilen değerleri" değiştirmek için seri monitörü kullanabilirsiniz.

Umarım kendinizinkini inşa ederken eğlenirsiniz! Bunun bir veya birkaç modifiyesini yaparsanız lütfen bizimle paylaşın. Okuduğunuz için teşekkürler.

Adım 4: Programlama ve Ayarlar

Programlama ve Ayarlar
Programlama ve Ayarlar
Programlama ve Ayarlar
Programlama ve Ayarlar

Şimdi IDE ile eğlenmek için. Umarım biraz kapuçino içmişsindir. Uyanık kalmanıza yardımcı olması için ona ihtiyacınız olabilir.

Bazı kütüphaneler kurmanız gerekebileceğini görebilirsiniz. I2C için Wire.h, LCD için LCD.h, I2C kontrollü LCD için LiquidCrystal_I2C.h'ye ihtiyacınız olacak. Arduino'ya 20 karakter 4 satır LCD kullandığınızı söylemek için lcd.begin(20, 4) komutunu da kullanmanız gerekecek ve başka ayarlar olabilir.

Kitaplık yükleme hakkında bilgi için bkz.:

Arduino IDE'de, kartınızı ve bağlı olduğunuz bağlantı noktasını ayarlamanız gerekebileceğini görebilirsiniz. Bağlantı noktası, bilgisayarınızın kontrol panelinde/aygıt yöneticisinde/Evrensel Seri Veri Yolu denetleyicilerinde bulunabilir. Hangi Arduino'yu kullandığınızı bulmalısınız. Arduino Nano kullanıyorum ama Uno bunun için de çalışıyor. Ayarlarınızı dikkatli seçin.

I2C adresinizi bulmanız gerekebilir. Doğrudan tahta atlama tellerinden okuyabilmelisiniz. Ayrıca Arduino.cc'den veya https://www.gammon.com.au/forum/?id=10896 ve diğer yerlerden bir I2C tarayıcı indirebilirsiniz.

Bu noktada bir yerde programı Arduino'ya yükleyebilmeli ve işlevselliği test edebilmelisiniz. LCD ekran yanıyor mu? Karakterleri okuyabiliyor musun? Bir keresinde devreyi kurdum ve test ettim arka ışık yandı ama karakterler okunamadı. Doğru yapıldığından emin olmak için ayarları denemek ve bağlantıları tonlamak için saatler harcadı (bu doğru, HOURS). Birkaç gün vazgeçti. Daha sonra geri döndüm ve bindirme kartındaki değişken direncin minimuma ayarlandığını fark ettim. Açıldı ve karakterler göründü. Kafanı masaya vur. Kafanı masaya vurmak için başka bir sebep mi? Pili değiştirmeniz gerekirse, bu değişken direnci tekrar ayarlamanız gerekebilir. Bu olduğunda, erişim için kutunun arkasında küçük bir delik açtım.

Bu programda, butonlarınız için kullandığınız dirençlere göre kendi buton değerlerinizi ayarlamanız gerekebilir. Bunun için bu kullanışlı küçük çizimi kullanabilir ve seri monitörü etkinleştirmeyi unutmayın. Çizimi çalıştırın ve her bir düğmeye basın ve her değeri yazın. Ardından, düğme değerlerinizi yansıtmak için çizimi düzenleyin. Ardından düzenlenen çizimi panonuza yükleyin ve çalışıp çalışmadığını görün.

Hepsinin doğru olması gereken birçok küçük değişken var ve sizinki benimkinden farklı olabilir. Sabırlı olmak ve farklı şeyler denemek, kendinizinkini çalıştırmanıza yardımcı olacaktır. Ayrıca Arduino değişkenlerinizi ayarladıktan sonra (kart adı, com 3, 5 veya her neyse, işlemci ve programcı [tüm araçlar altında]) ayarladıktan sonra hepsini doğru ayarlamış olabileceğinizi unutmayın, ancak yeniden başlatmanız gerektiğinden çalışmaz. Arduino'yu fişten çekin ve bilgisayarınıza tekrar takın. Bilgisayarınızı da kaydedip yeniden başlatmanız gerekebilir.

Bu çizimi yükleyin, monitörü çalıştırın, düğmelere basın ve değerleri kaydedin, ardından direnç değerlerimi sizinkiyle değiştirerek Kağıt Taş Makas çizimini düzenleyin. Paper Rock Scissors taslağını çalıştırın ve doğru çalışıp çalışmadığını görün. Ah evet, düğmelerinizi yanlış sırayla mı kurdunuz? Belirli bir sırayla isterseniz bunları yeniden yüklemeniz gerekebilir.

İyi eğlenceler!

Adım 5: Düğme Okuma Kroki Ana Krokide Düzenlemek için Direnç Değerlerinizi Bulmanıza Yardımcı Olacaktır. Ana Krokiye Girmek İçin Her Bir Düğmeye Basıp Direnç Değerlerinizi Kaydedin

// düğme okuma çizimi

geçersiz kurulum() {

// bir kez çalıştırmak için kurulum kodunuzu buraya koyun:

Seri.başla(9600);

}

boşluk döngüsü () {

// tekrar tekrar çalıştırmak için ana kodunuzu buraya koyun:

int düğmesi; //Butonları okumak için

butTon = 0; //Butonları okumak için

butTon = analogRead(A0); // Düğmeleri okumak için kullanılan komut

gecikme(100);

Serial.println(buTTon);

Adım 6: İhtiyaç Duyabileceğiniz Parça Listeleri ve Araçlar

Amazon'dan Parça Listesi:

Arduino Uno veya Arduino Nano

I2C'li veya I2C'siz 20x4 LCD ekran

SPST sürgülü anahtarlı 9v veya 6v pil kutusu (veya sürgülü anahtarı ayrı olarak alın)

5x SPST basma düğmeleri

1x Pull-up Direnci 1k - 5k

1k'dan az 5x Direnç, 200 - 500 Ohm iyidir

Parça Listeleri Diğer Konumlar veya mağazalar:

9v veya 4x 1,5 volt pil (9v seçeneği, "çoğunlukla bitmiş" pilleri geri dönüştürmenize olanak tanır)

Komut Şeritleri (yeniden doldurma paketi kullanıldı) veya çift taraflı yapışkan bant

Telefon kablosu ekleyicileri (isteğe bağlı ancak kabloları bağlamayı kolaylaştırır)

Birkaç inç 1/4 dübel

Dübelleri LCD'ye monte etmek için küçük ahşap vidalar

Lehim

18 ga teller için Isı Büzüşmeli

Hurdalar veya Geri Dönüşüm Parçaları:

Boş kapuçino içecek karışımı kutusu (herkesin bir 3D yazıcısı yoktur, biraz kapuçino bulundurun ve biraz plastik geri dönüştürün)

Amazon'dan protoboard kullanmama rağmen yaklaşık 1 "x 2" Proto board hurdası

Çeşitli uzunluklarda 18ga ila 22ga tel veya Cat 5e katı çekirdek

İhtiyacınız Olabilecek Araçlar:

Küçük Philips tornavida

Küçük düz uçlu tornavida

Exacto Bıçak

Havya ve lehim

Ağır Makas

Kargaburun

Hükümdar

7. Adım: Biraz Daha Fazla Bilgi ve Ana Çizim

Okuduğunuz için teşekkürler. Çok olduğunu biliyorum. Bu benim ilk Intructable'ım ve bu tek başına benim için biraz eğitici oldu. Geriye dönüp baktığımda bazı yerlerde endişeli, bazılarında ise çok kısa olduğumu görüyorum. Montajı daha çok adımlara bölmeliydim. Ve bu projeyi düzinelerce kez yaptığımdan, doğru olana kadar bazı resimler bir modelden veya diğerinden. Geri dönüp sadece bir modelin fotoğraflarını çekmem gerekiyor. Ayrıca bir veya iki video eklemek istiyorum. Yani evet, geri geleceğim ve bu şeyleri düzelteceğim. Ama şimdilik senin ellerine bırakıyorum. Umarım benim yaptığım kadar inşa etmekten zevk alırsınız. Okuduğunuz için tekrar teşekkür ederim.

Önerilen: