İçindekiler:

Kapasitif Giriş ve LED Kullanan Oyun Yazılımı ile Çıplak Arduino'yu Test Edin: 4 Adım
Kapasitif Giriş ve LED Kullanan Oyun Yazılımı ile Çıplak Arduino'yu Test Edin: 4 Adım

Video: Kapasitif Giriş ve LED Kullanan Oyun Yazılımı ile Çıplak Arduino'yu Test Edin: 4 Adım

Video: Kapasitif Giriş ve LED Kullanan Oyun Yazılımı ile Çıplak Arduino'yu Test Edin: 4 Adım
Video: DETAYLI İNCELEME | Arduino Uno R4 Minima & WIFI | Devrimsel Yenilikler, Kötü Kararlar! 2024, Temmuz
Anonim
Kapasitif Giriş ve LED Kullanan Oyun Yazılımıyla Çıplak Arduino'yu Test Edin
Kapasitif Giriş ve LED Kullanan Oyun Yazılımıyla Çıplak Arduino'yu Test Edin
Kapasitif Giriş ve LED Kullanan Oyun Yazılımıyla Çıplak Arduino'yu Test Edin
Kapasitif Giriş ve LED Kullanan Oyun Yazılımıyla Çıplak Arduino'yu Test Edin

Çıplak bir Arduino kartı kullanan, harici parça veya kablolama gerektirmeyen "Push-It" Etkileşimli oyun (kapasitif bir "dokunma" girişi kullanır). Yukarıda gösterilen, iki farklı panoda çalıştığını gösterir.

Push-It'in iki amacı vardır.

  1. Arduino kartınızın çalıştığını ve yeni bir kod taslağı indirmek için doğru şekilde kurulduğunuzu hızlı bir şekilde göstermek/doğrulamak için. Giriş ve çıkış gerçekleştirdiğini görebileceksiniz (dijital giriş seviyesini algıla, yerleşik LED'e çıkış); kalıcı EEPROM belleğinden bir değer depolar ve kurtarır. Hepsi herhangi bir kablo veya cihaz bağlamadan.
  2. Arduino tahtasıyla etkileşime giren eğlenceli ve zorlu bir oyun sağlayın.

Bu talimat, zaten bir Arduino IDE kurduğunuzu ve kullanımına en azından asgari düzeyde aşina olduğunuzu varsayar. Değilse, sizi bu bağlantılara yönlendiririm:

Arduino'ya Başlarken

Mevcut Arduino 1.6.x IDE'ye Digispark (bootloader ile) desteği ekleme

Push-It, çoğu Arduino kartıyla çalışır, örn. Bir Nano, Uno veya DigiSpark Attiny85 kartı. Bunu bir Nano 3.1 ve bir DigiSpark ile test ettim. Metinde pin adlarından/numaralarından bahsettiğimde bunlar Nano kartında kullanıldığı gibi olacaklar (DigiSpark'ın aksine).

Adım 1: İhtiyacınız Olan Şeylere Sahip Olmak

Hangi basitçe herhangi bir Arduino veya karşılaştırılabilir karttır.

Halihazırda bir tane yoksa DigiSpark Pro (~12$) veya eBay'den bir Nano 3.0 ile ~3$'a başlamanızı tavsiye ederim (ancak Çin'den gelmesini beklemek için fazladan bir veya iki haftanız olacak); ve bir CH340 USB sürücüsü yüklemeniz gerekecek). DigiSpark ~$10 (Pro olmayan) bu tek bitlik 'video' oyunu için çok uygundur (Yalnızca 6 I/O'ya sahip olan bu sadeleştirilmiş üniteye yüklemek biraz daha zordur)

Burada kullanılan donanıma bağlantılar:

eBay'de Nano V3.0 Atmega328P

Digispark USB Geliştirme Kartı

2. Adım: Kodu Alın ve İndirin

Kodu Al ve İndir
Kodu Al ve İndir

Aşağıdaki kodu bir arduino çizim dosyasına kopyalayın (örn. …/Push_It/Push_It.ino) Oldukça iyi yorumlamaya çalıştım. Umarım kodu kolayca anlaşılır bulursunuz. Ne zaman artırılacağını, ne zaman azaltılacağını ve ne zaman olmayacağını belirleme mantığı biraz karmaşıktır, ancak bu kısım aynı zamanda özel koddur ve genel kullanışlı değildir. Kullanılacak yeni bir 'sketch' (kod projesi) oluşturma hakkında daha fazla ayrıntı için Arduino IDE bakın:

Yeni Bir Arduino Kroki Oluşturma

Kartınız için Arduino IDE talimatlarına göre 'Push_It' taslağını mikrodenetleyicimize indirin.

3. Adım: Oynatma

oynamak
oynamak

Oyunun amacı, LED'in (yerleşik) bir dizi flaşta mümkün olduğunca çok yanıp sönmesini sağlamaktır ve ardından tekrar eder.

Oyun oynamak:

Push-It, tek bir flaşla başlar ve ardından tekrar eder. LED açıkken giriş piminin yanına parmağınızla dokunursanız, bir sonraki döngü LED'i iki kez yanıp söner.

Bir dizi flaşın ilk flaşı sırasında sözde düğmeye her bastığınızda, o sete başka bir flaş eklenecektir. Parmağınızı ne zaman kaldırdığınızın/çıkardığınızın genellikle bir önemi yoktur.

Ancak ilk flaştan önce veya sonra 'iterseniz' bir setteki flaş sayısı azalacaktır.

Daha fazlasını yapmazsanız, bir setteki yanıp sönme sayısı korunur. Ayrıca sayım tam bir döngü boyunca değişmediğinde sayım numarası EEPROM belleğine kaydedilir.

Flaş sayısını artırmayı her başardığınızda, zamanlama biraz hızlanır ve yüksek flaş sayılarına ulaşmayı giderek zorlaştırır. Bir hata yaptığınızda ve flaş sayısı azaldığında, bir sonraki döngünün flaş başlangıcından önce daha uzun bir duraklama olacaktır. Bu, silahı atlama olasılığınızı artırabileceğinden ek bir zorluk sağlar. O yüzden uyanık ol.

Ünitenizi yüksek bir flaş sayımına yükselttiğinizde, onu bir arkadaşınıza götürebilirsiniz (veya DigiSpark'ın iyi olduğu şekilde postalayabilirsiniz), fişi taktıktan sonra sizinkini ne kadar yüksek bir flaş sayımı aldığınızı göreceklerdir. ile. Onu 8'den fazlasına çıkarmayı zor buldum. Daha düşük bir sayıya geri dönmek için, ilk flaştan önce veya sonra istediğiniz zaman tekrar tekrar basabilirsiniz. Ayrıca, bir açılış sırasında giriş pinini toprağa atlarsanız, sayı 1'e sıfırlanır.

Orijinal DigiSpark panosunun, açıldıktan sonra 'Push-It' kodunu gerçekleştirmeye ve oyunu oynamaya başlamasından önce 10 saniyelik bir gecikme olduğunu unutmayın. Olası bir yeni indirme kodu güncellemesi almak için bu süreyi USB pinleri aracılığıyla konuşmayı denemek için kullanır.

Kullanmakta olduğunuz Arduino kartının üzerinde bir USB TX LED'i varsa, etkin bir şekilde 'düğmeye bastığınızda' bu LED'in hızlı bir şekilde küçük bir flaşı olacaktır. EEPROM'daki sayım değeri yeni bir değerle güncellendiğinde bu LED'in daha belirgin yanıp sönmesi olacaktır. Bu geri bildirim, bir "düğmeye basılmış" olayı ne zaman etkin bir şekilde tetiklediğinizi bilmede veya bunu sağlamada size büyük ölçüde yardımcı olabilir. Figürünüzün açık giriş pininde gerçekten gürültüye neden olması için devre toprağına (mikro-USB konektörünün etrafındaki metal gibi) dokunmadığınızdan emin olmanız gerekebilir. Giriş pininin değişken olması (iletken/dirençli bir yük tarafından yukarı veya aşağı çekilmemesi) ve parmağınızdan gelen değişken sinyal gürültüsü nedeniyle ek ve biraz öngörülemeyen zorluklar olacaktır.

Parmağınız her iki pimi de kapsadığında enjekte edilen bir giriş sinyalinin kesinliğini büyük ölçüde artıran giriş piminin yanındaki bir pime 250 Hz'lik bir kare dalga gönderilir.

DigiSpark panosunun tepkisinin, parmakların D3-D5'in bulunduğu köşeye biraz sıkılmasıyla oldukça tutarlı bir şekilde tahmin edilebilir olduğunu buldum.

'Push-It' oynadığımda, bunu kart bir USB 5v mobil pil takımına bağlıyken yapmayı seviyorum (fotoğraflara bakın). Bunlar genellikle USB AC ve 12v otomatik adaptörlerin yanındaki kutularda ucuza bulunabilir; çoğu mağazada elektronik departmanı.

Adım 4: Harici Bileşenlerle İsteğe Bağlı Deneyler

Harici Bileşenlerle İsteğe Bağlı Deneyler
Harici Bileşenlerle İsteğe Bağlı Deneyler

Lütfen dikkat: Gerçek bir düğme eklerseniz, kodda belirtildiği gibi yorumlanması gereken bir kod satırı vardır.

Hoparlörün bir tarafı toprağa, diğer ucu D4'e dokunursanız 250 Hz kare dalganın sesini duyacaksınız. D3'te 500Hz kare dalga vardır. Hoparlörü D3 ve D4 arasına bağlarsanız, iki sinyalin bir bileşimini duyarsınız.

Yukarıdaki gibi bir hoparlör yerine bir LED takmak çok ilginç. Bu konuda voltaj, akım seviyeleri, dirençler ve hatta polarite hakkında endişelenmenize gerek yoktur (daha kötü durumda, yanmaz, sonra sadece çevirin). Her şeyden önce, negatif (katot) uç toprağa ve diğeri D3 veya D4'e bağlıyken deneyin. Kare dalgalar nedeniyle LED 'yarı' yanacaktır. Ayrıca MicroControllerUnits'in çıkışı akımla sınırlı olduğundan direnç gerekmez. Attiny85 ve Atmega328 MCU'lar için sırasıyla 15ma ve 20ma ile sonuçlanan akım ölçümleri yaptım. Bu seviyeler, sürülen kare dalga sinyallerinin %50 görev döngüsü doğası nedeniyle bu parçalar için mevcut sınırlı değerin yaklaşık yarısı kadardır. Sayacın okumaları aslında test edilen devreden geçen akımın ortalamasıdır.

İlginç bir şekilde, LED ile D3 ve D4 arasında köprü kurarsanız (yukarıdaki ve soldaki resme bakın) her iki şekilde de yanar ve bir tarafı toprağa bağlıyken olduğu gibi yaklaşık ½ parlaklıkta yanar. Sizi nedenini düşünmeye davet ediyorum.

Önerilen: