Kendalikan Game Dino Chrome dengan Arduino: Proyek Hardware Nyata
Komponen dan Perlengkapan
- Arduino MKR Zero – 1 (bisa menggunakan papan lain yang bisa berfungsi sebagai keyboard: Leonardo, Esplora, Zero, Due, dan keluarga MKR)
- Breadboard (generic) – 1
- Force Sensing Resistor – 1
- Stretch Sensor (Kawat Karet Konduktif) – 1
- Resistor 10k ohm – 2
- Kabel Jumper (generic) – 1
Aplikasi dan Layanan Online
Tentang Proyek Ini
Tentang dan Video
Game Dino Chrome adalah game tersembunyi di browser Chrome yang bisa Anda mainkan saat internet terputus. Tujuan game ini adalah hanya menghindari rintangan dengan melompat atau membungkuk.
Perangkat ini dapat mengontrol Game Dino dalam kehidupan nyata dengan melompat dan membungkuk saat Anda secara fisik melompat dan membungkuk.
Ini dilakukan dengan sensor tekanan (force sensing resistor) dan sensor peregangan (kawat karet konduktif) untuk mendeteksi lompat dan bungkuk dan menggunakan papan Arduino MKR karena mendukung library Keyboard (papan lain yang bisa digunakan sebagai keyboard adalah Leonardo, Esplora, Zero, Due, dan keluarga MKR).
Instruksi
- Rangkai rangkaian menggunakan skematik di bagian "Schematics" di bagian bawah halaman.
- Unggah kode yang dapat ditemukan di bagian "Code" di bagian bawah halaman.
- Sesuaikan nilai ambang batas pada baris 3 dan 4.
- (Opsional) Cetak 3D klip pinggang di bagian "Custom Custom Parts and Enclosures" di bagian bawah halaman dan tempelkan ke bagian belakang breadboard.
- Colokkan perangkat, matikan koneksi internet pada komputer Anda, dan buka Chrome untuk memainkan game! Ingat untuk menyalakan kembali koneksi internet setelahnya.
Kode
CodeC/C++
#include <Keyboard.h> int stretchThreshold = 990; int forceThreshold = 1000; void setup() { // put your setup code here, to run once: Keyboard.begin(); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int stretchValue = analogRead(A1); int forceValue = analogRead(A2); Serial.print("stretch: "); Serial.print(stretchValue); Serial.print(" force: "); Serial.println(forceValue); if(stretchValue < stretchThreshold){ digitalWrite(LED_BUILTIN, HIGH); Keyboard.press(KEY_DOWN_ARROW); delay(200); digitalWrite(LED_BUILTIN, LOW); } if(forceValue < forceThreshold){ digitalWrite(LED_BUILTIN, HIGH); Keyboard.press(' '); delay(200); digitalWrite(LED_BUILTIN, LOW); } Keyboard.releaseAll(); } Bagian Kustom dan Enclosure
Tidak ada bagian tambahan.
Skematik
