Anda dapat menggunakan PHPoC Shield atau PHPoC WiFi Shield juga
×
1
USB Wifi dongle
Anda harus menggunakan USB WIFI dongle yang dilengkapi dengan chipset Ralink RT3070 atau RT5370, dan terhubung ke PHPoC Shield. Atau Anda cukup menghubungkan kabel Ethernet ke port Ethernet pada PHPoC Shield, dan Anda tidak perlu menggunakan USB WiFi dongle.
×
1
Sensor sudut putar
×
1
Tentang proyek ini
Demo
Game klasik ini mungkin membuat beberapa dari kita merasa nostalgis masa kecil. Gameplay sederhana, coba hindari benturan dengan mobil lawan dan dapatkan skor sebanyak mungkin. Mobil dapat beralih antara 5 jalur, dan ada 15 kecepatan yang berbeda. Seiring bertambahnya kecepatan, mobil lawan akan berjalan lebih cepat, membuat permainan semakin sulit.
Pemasangan
Tumpuk PHPoC shield di atas Arduino.
Hubungkan pin GND, VCC, dan SIG sensor sudut putar ke GND, 5V dan A0 Arduino, masing-masing.
Aliran Data
Arduino ---> PHPoC Shield ---> Web browser
Pengguna berinteraksi dengan sensor sudut putar. Nilai sinyal input dari sensor sudut putar digunakan untuk mengubah posisi mobil.
Arduino membaca nilai dari sensor sudut putar. Nilai input ADC dibagi menjadi 5 level yang berbeda. Beralih antar level berarti mengubah jalur. Sederhananya, jika sinyal input beralih ke level lain, Arduino akan mengirim level yang diperbarui ke PHPoC Shield.
Saat menerima nilai, PHPoC WiFi Shield mengirimkannya ke Web Browser melalui Websocket. Kemudian, fungsi JavaScript akan memperbarui posisi (jalur) mobil. Program JavaScript akan terus memperbarui posisi lawan dan kecepatan permainan juga.
Hal yang Harus Dilakukan
Siapkan koneksi WiFi untuk PHPoC shield (SSID dan kata sandi)
Unggah UI baru ke PHPoC shield
Unggah kode Arduino
Siapkan koneksi WiFi untuk PHPoC Shield
Lihat petunjuk ini.
Unggah Antarmuka Pengguna Web baru ke PHPoC Shield
Unduh kode sumber PHPoC remote_racing_game.php.
Unggah ke PHPoC shield menggunakan PHPoC debugger sesuai petunjuk ini.
Unggah Kode Arduino
Instal PHPoC Library untuk Arduino (lihat petunjuk).
Unggah kode Arduino ke Arduino
Dan Terakhir
Klik tombol serial di Arduino IDE untuk mendapatkan alamat IP.
Buka web browser, ketik https://ganti_dengan_alamat_ip/remote_racing_game.php
Klik tombol connect dan nikmati permainan.
Pelajari lebih lanjut tentang potensiometer di Arduino - Tutorial Potensiometer
Referensi Fungsi
pinMode()
analogRead()
digitalWrite()
Serial.begin()
Serial.println()
for loop
while loop
if else
loop()
setup()
Kode
Kode Arduino
remote_racing_game.php
Kode ArduinoArduino
#include "SPI.h" #include "Phpoc.h" PhpocServer server(80); int adcPin = A0; float adcVal = 0; // variable to store the value coming from the sensor int lastPos = -1; float adcMin = 512-2.5*100; void setup() { Serial.begin(9600); while(!Serial) ; Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); server.beginWebSocket("game"); Serial.print("WebSocket server address : "); Serial.println(Phpoc.localIP()); } void loop() { // when the client sends the first byte, say hello: PhpocClient client = server.available(); if (client) { adcVal = 0; for(int i = 0; i < 50; i++) adcVal += analogRead(adcPin); adcVal /= 50; int pos = (int)((adcVal-adcMin) / 100); if (pos<0){ pos = 0; } else if (pos>4) pos =4; if(lastPos != pos){ String txtMsg = String(pos) + "\r\n"; char buf[txtMsg.length()]; txtMsg.toCharArray(buf, txtMsg.length()); server.write(buf, txtMsg.length()); Serial.println(txtMsg); lastPos = pos; delayMicroseconds(50); } } }