Mündəricat:

Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino: 4 Addım
Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino: 4 Addım

Video: Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino: 4 Addım

Video: Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino: 4 Addım
Video: How to use AC 80-260V 100A PZEM-061 Active Power Meter 2024, Iyul
Anonim
Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino'yu sınayın
Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino'yu sınayın
Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino'yu sınayın
Kapasitiv Giriş və LED istifadə edən Oyun Proqramı ilə Bare Arduino'yu sınayın

Çılpaq bir Arduino lövhəsi, heç bir xarici hissə və ya məftil istifadə etmədən istifadə edən "Push-It" İnteraktiv oyun (tutumlu 'toxunma' girişindən istifadə edir). Yuxarıda göstərildiyi kimi, iki fərqli lövhədə işlədiyini nümayiş etdirir.

Push-Bunun iki məqsədi var.

  1. Arduino lövhənizin işlədiyini və yeni bir kod eskizini yükləmək üçün düzgün qurduğunuzu tez bir zamanda nümayiş etdirmək/yoxlamaq. Giriş və çıxışı yerinə yetirdiyini görə bilərsiniz (rəqəmsal giriş səviyyəsini, bortdakı LED -ə çıxış); saxlayan və uçmayan EEPROM yaddaşından bir dəyəri bərpa edin. Hamısı heç bir tel və ya cihaz bağlamadan.
  2. Bir Arduino lövhəsi ilə qarşılıqlı əlaqədə əyləncəli və çətin bir oyun təmin edin.

Bu təlimat, artıq bir Arduino IDE qurduğunuzu və istifadəsi ilə ən azından tanış olduğunuzu güman edir. Əks təqdirdə sizi bu bağlantılara yönəldirəm:

Arduino ilə işə başlayın

Mövcud Arduino 1.6.x IDE -yə Digispark (bootloader ilə) dəstəyi əlavə etmək

Push-It, əksər Arduino lövhələri ilə işləyəcək, məsələn. Nano, Uno və ya DigiSpark Attiny85 lövhəsi. Nano 3.1 və DigiSpark ilə sınaqdan keçirdim. Mətnlərdə isimlərə/nömrələrə istinad edərkən Nano lövhəsində istifadə edildiyi kimi olacaq (DigiSparkdan fərqli olaraq).

Addım 1: Ehtiyacınız olan şeylərə sahib olun

Sadəcə hər hansı bir Arduino və ya bənzər bir lövhədir.

Hələ biriniz yoxdursa, bir DigiSpark Pro (~ 12 dollar) və ya eBay -dən ~ 3 dollarlıq bir Nano 3.0 ilə başlamağı məsləhət görürəm (ancaq Çindən gəlməsini gözləmək üçün əlavə bir -iki həftəniz olacaq); və CH340 USB sürücüsü quraşdırmalısınız). DigiSpark ~ 10 dollar (Pro olmayan) bu bir bitlik 'video' oyunu üçün çox uyğundur (Yalnız 6 G/Ç -ə malik olan bu bölmə, yükləmək bir az daha çətindir)

Burada istifadə olunan avadanlıqlara bağlantılar:

EBay -də Nano V3.0 Atmega328P

Digispark USB İnkişaf Lövhəsi

Addım 2: Kodu Alın və Yükləyin

Kodu Alın və Yükləyin
Kodu Alın və Yükləyin

Aşağıdakı kodu bir arduino eskiz faylına kopyalayın (məsələn …/Push_It/Push_It.ino) Mən bunu kifayət qədər yaxşı şərh etməyə çalışdım. Ümid edirəm kodu asanlıqla başa düşə bilərsiniz. Nə vaxt artırmaq, azaltmaq və nə vaxt etməməyi müəyyən etmək məntiqi bir qədər mürəkkəbdir, lakin bu hissə də xüsusi koddur və ümumi faydalı deyil. Arduino IDE -ə baxın:

Yeni Arduino eskizinin yaradılması

Kartınız üçün Arduino IDE təlimatlarına uyğun olaraq 'Push_It' eskizini mikro nəzarətçimizə yükləyin.

Addım 3: Oyun

Oynayan
Oynayan

Oyunun məqsədi LED-in (göyərtənin) bir neçə dəfə yanıb-sönəndən sonra təkrarlanan yanıb-sönməsini təmin etməkdir.

Oyun oynayan:

Push-Tək bir flaşla başlayır, sonra təkrarlanır. LED yanarkən barmağınızı giriş pininə yaxınlaşdırsanız, növbəti dövr LED -i iki dəfə yanıb -sönəcək.

Hər dəfə yanıb -sönən dəstənin ilk flaşı zamanı yalançı düyməni basdığınız zaman həmin dəstə başqa bir flaş əlavə olunacaq. Barmağınızı qaldıranda/çıxardanda ümumiyyətlə əhəmiyyəti yoxdur.

Ancaq ilk flaşdan əvvəl və ya sonra 'itələsən', bir dəstdəki yanıp sönmə sayı azalacaq.

Başqa bir şey etməsəniz, dəstdəki yanıb -sönmə sayı saxlanılır. Bundan əlavə, say tam bir dövr ərzində dəyişməz qaldıqda, say EEPROM yaddaşına daxil edilir.

Hər dəfə flaş sayını artıra bilsəniz, zamanlama bir az sürətlənir, bu da yüksək flaş sayına çatmağı çətinləşdirir. Bir sürüşmə etdikdə və flaşların sayı azaldıqda, növbəti dövrün başlanğıc flaşından əvvəl daha uzun bir fasilə olacaq. Bu, silahı atlama ehtimalınızı artıra biləcəyi üçün əlavə bir problem yaradır. Buna görə də ayıq olun.

Cihazınızı yüksək flaş sayına gətirdikdən sonra onu bir dostunuza (və ya DigiSpark üçün yaxşı olan poçtla) göndərə bilərsiniz. -ə Mən bunu 8 -dən çox almaq üçün çətin işdən çıxdığımı gördüm. Həqiqi düyməni əlavə edərək birdən artıq yerə çatdırmağı bacardım. Daha aşağı saya qayıtmaq üçün ilk flaşdan əvvəl və ya sonra istədiyiniz zaman dəfələrlə itələyə bilərsiniz. Ayrıca, güc açarkən giriş pinini yerə bağlasanız, say 1 -ə sıfırlanacaq.

Diqqət yetirin ki, orijinal DigiSpark lövhəsi açıldıqdan sonra 10 saniyə gecikməyə malikdir və bundan əvvəl 'Push-It' kodunu yerinə yetirməyə və oyunu oynamağa başlayacaq. Mümkün olan yeni bir yükləmə kodu yeniləməsini almaq üçün USB pinləri ilə danışmağa çalışmaq üçün bu vaxtdan istifadə edir.

İstifadə etdiyiniz Arduino lövhəsində bir USB TX LED varsa, bu düyməni təsirli bir şəkildə 'düyməni basdığınızda' kiçik bir qısa flaş olacaq. EEPROM -da sayma dəyəri yeni bir dəyərlə yeniləndikdə bu LED daha əhəmiyyətli dərəcədə yanıb -sönəcək. Bu rəy, 'düyməni basmaq' hadisəsini nə vaxt effektiv şəkildə başlatdığınızı bilmək və ya sığortalamaqda sizə çox kömək edə bilər. Fiqurunuzun açıq giriş pinində səs-küy yaratması üçün dövrə torpağına (mikro USB konnektorunun ətrafındakı metal kimi) toxunmadığınızdan əmin olmalısınız. Giriş pininin üzən olması (keçirici/müqavimətli yüklə yuxarı və ya aşağı çəkilməməsi) və barmağınızdan gələn dəyişkən siqnal səs -küyünə görə əlavə və bir qədər gözlənilməz çətinliklər olacaq.

250 Hz kvadrat dalğası, barmağınızın hər iki sancağı əhatə etdiyi zaman daxil edilmiş giriş siqnalının etibarlılığını əhəmiyyətli dərəcədə yaxşılaşdıran giriş pininin yanındakı bir pinə verilir.

DigiSpark lövhəsinin cavablarını, D3-D5-in olduğu lövhənin küncünə qədər barmaqların bir az sıxılması üçün kifayət qədər ardıcıl olaraq proqnozlaşdırıla bilən cavab olduğunu gördüm.

'Push-It' oynayanda bunu USB 5v mobil batareya paketinə qoşulmuş lövhə ilə etmək istəyirəm (şəkillərə baxın). Bunlar ümumiyyətlə USB AC və 12v avtomatik adapterlərin yanındakı qutularda ucuz tapıla bilər; əksər mağazalarda elektronika mağazası.

Addım 4: Xarici Komponentlərlə İsteğe Bağlı Təcrübələr

Xarici Komponentlərlə İsteğe Bağlı Təcrübələr
Xarici Komponentlərlə İsteğe Bağlı Təcrübələr

Diqqət edin: Həqiqi bir düyməni əlavə etsəniz, kodda göstərildiyi kimi şərh edilməli olan bir kod xətti var.

Dinamiklə, bir tərəfi yerə, digər ucuna D4 -ə toxunarsanız 250 Hz kvadrat dalğasının səsini eşidəcəksiniz. D3 -də 500Hz kvadrat dalğası var. Dinamiki D3 və D4 arasında bağlasanız, iki siqnalın birləşməsini eşidəcəksiniz.

Yuxarıdakı kimi dinamik əvəzinə bir LED bağlamaq çox maraqlıdır. Bu mövzuda gərginlik, cərəyan səviyyələri, müqavimətçilər və hətta polarite haqqında narahat olmağa ehtiyac yoxdur (daha pis halda yanmır, sonra döndərin). Hər şeydən əvvəl, yerə (digəri D3 və ya D4) bağlı olan mənfi (katot) qurğunu sınayın. LED, kvadrat dalğalar səbəbiylə 'yarısı' yanacaq. MicroControllerUnits -in çıxışı cari məhdud olduğundan əlavə müqavimət tələb olunmur. Attiny85 və Atmega328 MCU'lar üçün sırasıyla 15ma və 20ma ilə nəticələnən cari ölçülər etdim. Sürücü kvadrat dalğa siqnallarının 50% iş dövrü təbiətinə görə bu səviyyələr bu hissələr üçün mövcud məhdud dəyərin təxminən yarısıdır. Sayğacın oxunuşları əslində sınanmış dövrədən keçən cərəyanın ortalamasıdır.

Maraqlıdır ki, LED ilə D3 və D4 arasında körpü qurarsanız (yuxarıdakı şəkilə və solda baxın) hər iki tərəfə və təxminən bir dəfə yerə bağlı bir tərəfdə olduğu kimi parlaqlıq yanacaq. Səbəbini düşünməyə dəvət edirəm.

Tövsiyə: