Daftar Isi:

Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED: 4 Langkah
Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED: 4 Langkah

Video: Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED: 4 Langkah

Video: Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED: 4 Langkah
Video: Beyond the Basics: Automatic Gatekeeper With IR Sensor And ChatGPT Generated Arduino Code 2024, Juli
Anonim
Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED
Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED
Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED
Uji Bare Arduino, Dengan Software Game Menggunakan Capacitive Input & LED

Game interaktif "Push-It" menggunakan papan Arduino kosong, tidak memerlukan komponen eksternal atau kabel (menggunakan input 'sentuh' kapasitif). Ditunjukkan di atas, menunjukkannya berjalan di dua papan yang berbeda.

Push-It memiliki dua tujuan.

  1. Untuk mendemonstrasikan/memverifikasi dengan cepat bahwa papan Arduino Anda berfungsi dan Anda telah diatur dengan benar untuk mengunduh sketsa kode baru ke dalamnya. Anda akan dapat melihat bahwa ia melakukan input dan output (indera level input digital, output ke LED on board); menyimpan dan memulihkan nilai dari memori EEPROM non-volatile. Semua tanpa memasang kabel atau perangkat apa pun.
  2. Menyediakan permainan yang menghibur dan menantang berinteraksi dengan papan Arduino.

Instruksi ini mengasumsikan bahwa Anda telah menginstal Arduino IDE dan setidaknya familiar dengan penggunaannya. Jika tidak, saya merujuk Anda ke tautan ini:

Memulai dengan Arduino

Menambahkan dukungan Digispark (dengan bootloader) ke Arduino 1.6.x IDE yang ada

Push-It akan bekerja dengan hampir semua papan Arduino, mis. papan Nano, Uno, atau DigiSpark Attiny85. Saya telah mengujinya dengan Nano 3.1 dan DigiSpark. Dalam teks ketika saya merujuk ke nama/nomor pin, mereka akan digunakan seperti yang digunakan pada papan Nano (berlawanan dengan DigiSpark).

Langkah 1: Memiliki Hal-hal yang Anda Butuhkan

Yang hanyalah Arduino atau papan yang sebanding.

Jika Anda belum memilikinya, saya sarankan untuk memulai dengan DigiSpark Pro (~ $ 12), atau Nano 3.0 dari eBay seharga ~ $ 3 (tetapi Anda akan memiliki satu atau dua minggu ekstra untuk menunggunya datang dari China; dan Anda harus menginstal driver USB CH340). DigiSpark ~$10 (non Pro) sangat cocok untuk game 'video' bit tunggal ini (Unit yang dipreteli ini, hanya memiliki 6 I/O, sedikit lebih sulit untuk diunggah)

Tautan ke perangkat keras yang digunakan di sini:

Nano V3.0 Atmega328P di eBay

Papan Pengembangan USB Digispark

Langkah 2: Ambil dan Unduh Kode

Ambil dan Unduh Kode
Ambil dan Unduh Kode

Salin kode di bawah ini ke file sketsa arduino (mis. …/Push_It/Push_It.ino) Saya telah mencoba mengomentarinya dengan cukup baik. Saya harap Anda menemukan kode yang mudah dimengerti. Logika untuk menentukan kapan harus menambah, mengurangi, dan kapan tidak agak rumit, tetapi bagian itu juga merupakan kode khusus dan tidak berguna secara umum. Untuk detail lebih lanjut tentang menyiapkan 'sketsa' (proyek kode) baru untuk digunakan dengan Arduino IDE lihat:

Membuat Sketsa Arduino Baru

Unduh sketsa 'Push_It' ke mikrokontroler kami sesuai dengan instruksi Arduino IDE untuk papan Anda.

Langkah 3: Bermain

Bermain
Bermain

Tujuan dari permainan ini adalah untuk membuat LED (on-board) berkedip sebanyak mungkin dalam satu set berkedip yang kemudian berulang

Memainkan permainan:

Push-It dimulai dengan satu flash, yang kemudian akan berulang. Jika Anda menyentuh jari Anda di dekat pin input saat LED menyala, siklus berikutnya akan mem-flash LED dua kali.

Setiap kali Anda menekan tombol semu selama blitz pertama dari serangkaian blitz, blitz lain akan ditambahkan ke kumpulan itu. Biasanya tidak masalah saat Anda mengangkat/mengeluarkan jari Anda.

Tetapi jika Anda 'menekan' sebelum atau sesudah blitz pertama, jumlah blitz dalam satu set akan berkurang.

Jika Anda tidak melakukan apa-apa lagi, jumlah kedipan dalam satu set akan dipertahankan. Selanjutnya ketika hitungan tidak berubah selama satu siklus penuh, nomor hitungan disimpan ke dalam memori EEPROM.

Setiap kali Anda berhasil meningkatkan jumlah lampu kilat, waktunya sedikit dipercepat, membuatnya semakin sulit untuk mencapai jumlah lampu kilat yang tinggi. Ketika Anda melakukan slip up dan jumlah blitz berkurang, akan ada jeda yang lebih lama sebelum blitz memulai siklus berikutnya. Ini memberikan tantangan tambahan, karena dapat meningkatkan kemungkinan Anda melompat pistol. Jadi tetap waspada.

Setelah Anda mendapatkan unit Anda hingga jumlah flash yang tinggi, Anda dapat membawanya (atau mengirimkannya, yang baik untuk DigiSpark) ke teman, di mana setelah mencolokkannya mereka akan melihat seberapa tinggi jumlah flash yang Anda dapatkan. ke. Saya telah menemukan itu berhenti menantang untuk mendapatkannya hingga lebih dari 8. Dengan tombol yang sebenarnya terpasang saya telah berhasil mendapatkannya hingga lebih dari selusin. Untuk kembali ke hitungan yang lebih rendah, Anda dapat berulang kali menekannya kapan saja sebelum atau sesudah flash pertama. Juga jika Anda melakukan jumper pin input ke ground selama power up, hitungan akan diatur ulang ke 1.

Perhatikan bahwa papan DigiSpark asli memiliki penundaan 10 detik setelah dihidupkan sebelum itu akan mulai melakukan kode 'Push-It' dan memainkan game. Ia menggunakan waktu ini untuk mencoba berbicara melalui pin USB untuk menerima kemungkinan pembaruan kode unduhan baru.

Jika papan Arduino yang Anda gunakan memiliki LED USB TX di atasnya, LED ini akan memiliki flash kecil yang cepat ketika Anda telah 'menekan tombol' secara efektif. Akan ada kedipan yang lebih signifikan dari LED ini ketika nilai hitungan di EEPROM diperbarui dengan nilai baru. Umpan balik ini dapat sangat membantu Anda dalam mengetahui kapan atau memastikan bahwa Anda telah secara efektif memicu peristiwa 'tombol yang ditekan'. Anda mungkin perlu memastikan bahwa Anda tidak menyentuh ground sirkuit (seperti logam di sekitar konektor micro-USB) sehingga gambar Anda memang menimbulkan noise pada pin input yang terbuka. Akan ada tantangan tambahan dan agak tidak terduga karena fakta bahwa pin input mengambang (tidak ditarik ke atas atau ke bawah oleh beban konduktif/resistif) dan kebisingan sinyal variabel yang masuk melalui jari Anda.

Gelombang persegi 250Hz dikeluarkan ke pin di sebelah pin input yang sangat meningkatkan kepastian sinyal input yang disuntikkan saat jari Anda menutupi kedua pin.

Saya telah menemukan respons papan DigiSpark cukup konsisten dapat diprediksi dengan sedikit sentuhan jari ke sudut papan tempat D3-D5 berada.

Saat saya memainkan 'Push-It', saya suka melakukannya dengan papan yang terhubung ke paket baterai seluler USB 5v (lihat foto). Ini umumnya dapat ditemukan dengan murah di tempat sampah di sebelah USB AC dan adaptor otomatis 12v; di sebagian besar setiap department store departemen elektronik.

Langkah 4: Eksperimen Opsional Dengan Komponen Eksternal

Eksperimen Opsional Dengan Komponen Eksternal
Eksperimen Opsional Dengan Komponen Eksternal

Harap diperhatikan: Jika Anda memasang tombol asli, ada satu baris kode yang perlu dikomentari, sebagaimana dinyatakan dalam kode.

Dengan speaker, satu sisi ke ground, jika Anda menyentuh ujung lainnya ke D4 Anda akan mendengar suara gelombang persegi 250 Hz. Pada D3 ada gelombang persegi 500Hz. Jika Anda menghubungkan speaker antara D3 dan D4 Anda akan mendengar gabungan dari dua sinyal.

Menghubungkan LED alih-alih speaker seperti di atas sangat menarik. Tidak perlu khawatir tentang tegangan, level arus, resistor, atau bahkan polaritas dalam hal ini (lebih buruk lagi tidak menyala, maka putar saja). Coba, pertama-tama, dengan kabel negatif (katoda) terhubung ke ground dan yang lainnya ke D3 atau D4. LED akan 'setengah' menyala, karena gelombang persegi. Selanjutnya tidak diperlukan resistor karena output dari Unit Mikrokontroler terbatas saat ini. Saya membuat pengukuran arus yang menghasilkan 15ma dan 20ma untuk masing-masing Attiny85 dan Atmega328 MCU. Level-level ini sekitar setengah dari nilai terbatas saat ini untuk bagian-bagian ini karena sifat siklus kerja 50% dari sinyal gelombang persegi mengemudi. Pembacaan meteran sebenarnya adalah rata-rata arus yang melalui rangkaian yang diuji.

Menariknya, jika Anda menjembatani antara D3 & D4 dengan LED (lihat gambar di atas dan ke kiri), LED akan menyala dengan cara apa pun, dan pada kecerahan sekitar seperti yang terjadi dengan satu sisi terhubung ke ground. Saya mengundang Anda untuk merenungkan mengapa.

Direkomendasikan: