- ภาพรวม:
- ส่วนประกอบที่ต้องการ:
- คำอธิบายวงจร:
- การทำงานของ Accelerometer:
- การเขียนโปรแกรม Arduino:
- การประมวลผลการเขียนโปรแกรม:
- การทดสอบ:
Augmented Reality และ Virtual Gamingกลายเป็นเทรนด์ล่าสุดในอุตสาหกรรมเกม เวลาของการใช้คีย์บอร์ด / จอยสติ๊กและเมาส์ในการเล่นเกมคอมพิวเตอร์ได้ล้าหลังไปแล้ว ตอนนี้เกมคอนโซลทุกเครื่องมาพร้อมกับVirtual Controllerที่ช่วยให้เราเล่นเกมโดยใช้การเคลื่อนไหวของร่างกายและท่าทางทำให้ประสบการณ์การเล่นเกมเพิ่มขึ้นมากและผู้ใช้รู้สึกมีส่วนร่วมกับเกมมากขึ้น
ในโครงการนี้เรามาสนุกกับการเรียนรู้ผ่านโครงการกันเถอะ ให้เราสร้างเกม (ใช่คุณได้ยินฉันถูกต้องเราเป็นคนสร้างเกม) และเล่นโดยใช้การเคลื่อนไหวของมือของคุณ เรากำลังสร้างคลาสสิกพงษ์ปิงเกมลูกใช้ Arduino และ Accelerometer
ภาพรวม:
ทุกวันนี้มีซอฟต์แวร์โอเพ่นซอร์สมากมายที่นำเสนอความสุขมากมายสำหรับมือสมัครเล่นอย่างเราและการประมวลผลก็เป็นหนึ่งในนั้น ด้วยแอปพลิเคชันที่ใช้ JAVA นี้เราสามารถสร้างซอฟต์แวร์ของตัวเอง (รูปแบบ. exe) และแอปพลิเคชัน Android (ไฟล์. apk) ดังนั้นเราจะใช้ซอฟต์แวร์นี้เพื่อสร้างเกมของเราก่อนหน้านี้เราเคยใช้การประมวลผลในการสร้าง Arduino Chat Room
ส่วนฮาร์ดแวร์จะประกอบด้วย Arduino ซึ่งจะดึงอินพุตจาก Accelerometer เพื่อป้อนข้อมูลไปยังคอมพิวเตอร์ / แล็ปท็อปของเราแบบอนุกรม
ไปช้อปกันเถอะ !!!!
ส่วนประกอบที่ต้องการ:
- Arduino (ทุกรุ่นหรือทุกรุ่น)
- Accelerometer
- การเชื่อมต่อสายไฟ
- ดอกเบี้ย (Lolz)
Accelerometer และ Arduino Nano
คำอธิบายวงจร:
วงจรของArduino Ping Pong Ball Game Projectไม่เกี่ยวข้องกับการเชื่อมต่อที่ซับซ้อนใด ๆ ฉันใช้Arduino Nano กับ Accelerometer แต่มีบางสิ่งที่ต้องดูแลดังที่กล่าวไว้ด้านล่าง:
1. Accelerometer ของคุณไม่สามารถรองรับ 5V ได้ดังนั้นควรเชื่อมต่อ Vcc ของ accelerometer กับขา 3.3V ของ Arduino เสมอ
2. Accelerometer ทุกตัวต้องทนทุกข์ทรมานจากผลของแรงโน้มถ่วงที่ต้องจัดการขณะตั้งโปรแกรม (เพียงแค่ใช้ตัวกรอง)
ด้วยเหตุนี้เรามาดูการทำงานของ Accelerometer และวิธีการใช้งาน
การทำงานของ Accelerometer:
Accelerometerเป็นอุปกรณ์ที่สามารถแปลงการเร่งความเร็วในทิศทางใดเพื่อให้แรงดันไฟฟ้าตัวแปรตามลำดับ สิ่งนี้ทำได้โดยใช้ตัวเก็บประจุ (ดูภาพ) ในขณะที่ Accel เคลื่อนที่ตัวเก็บประจุที่อยู่ภายในจะได้รับการเปลี่ยนแปลงด้วย (อ้างอิงภาพ) ตามการเคลื่อนไหวเนื่องจากความจุแตกต่างกันจึงสามารถรับแรงดันไฟฟ้าผันแปรได้
ดังที่ได้กล่าวไว้ข้างต้นเครื่องวัดความเร่งทุกเครื่องจึงประสบปัญหาจากผลของแรงโน้มถ่วง ไม่ว่าเซ็นเซอร์ของคุณจะได้รับการปรับเทียบอย่างแม่นยำเพียงใด (แม้แต่แอปเปิ้ลโฟนของคุณ Accel ก็ตาม) ก็จะได้รับผลกระทบจากแรงโน้มถ่วง คำอธิบายทางเทคนิคเพิ่มเติมสำหรับปัญหานี้อยู่ด้านล่าง
ตอนนี้ใน Arduino เราสามารถลดผลของแรงโน้มถ่วงได้โดยใช้ Simple Filter ตัวกรองนี้จะประกอบด้วยอาร์เรย์สองอาร์เรย์โดยหนึ่งใช้ในการจัดเก็บค่าตัวอย่างจากเซ็นเซอร์และอีกตัวใช้เพื่อจัดเรียงค่าตัวอย่างและค้นหาค่าที่ซ้ำกันมากที่สุด ให้เราใช้อัลกอริทึมนี้ใน Arduino ของเราและเตรียมฮาร์ดแวร์ของเราให้พร้อม
การเขียนโปรแกรม Arduino:
โปรแกรม Arduino ได้รับด้านล่างในส่วนรหัส ไม่มีข้อมูลสำคัญที่ต้องแก้ไข แต่คุณอาจต้องพิจารณาสิ่งต่อไปนี้:
เพิ่มขนาดตัวอย่างหาก Accel ของคุณยังคงแสดงค่าแบบสุ่ม
#define Samplesize 13 // filterSample number
เล่นด้วยอัตราบอด 9600 เพื่อเพิ่มความเร็วในการสื่อสารระหว่าง Arduino และการประมวลผล แต่ตรวจสอบให้แน่ใจว่าคุณได้ทำการเปลี่ยนแปลงทั้งในซอฟต์แวร์ (โปรแกรม)
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); }
Accelerometer ของฉันบนแกน X ให้ 193 ที่ปลายด้านซ้ายสุดและ 280 ที่ปลายด้านขวาสุดวัดค่าสำหรับ Accel ของคุณและอัปเดตค่า
toSend = แผนที่ (smoothData1, 193, 280, 0, 255);
ค่าต่างๆจะถูกแมปลงในข้อมูลไบต์เดียวสำหรับการสื่อสารแบบอนุกรม
ตรวจสอบความคิดเห็นเพิ่มเติมในรหัสด้านล่างที่ให้มาเพื่อทำความเข้าใจอย่างชัดเจน
การประมวลผลการเขียนโปรแกรม:
การประมวลผลเป็นซอฟต์แวร์โอเพ่นซอร์สที่ศิลปินใช้สำหรับการออกแบบกราฟิก ซอฟต์แวร์นี้ใช้เพื่อพัฒนาซอฟต์แวร์และแอปพลิเคชัน Android มันค่อนข้างง่ายในการพัฒนาและคล้ายกับ Android Development IDE มาก ดังนั้นฉันจึงอธิบายให้สั้นลง
รหัสการประมวลผลสำหรับ เกม Ping Pong มีให้ที่นี่:
- รหัสประมวลผลสำหรับเกม Arduino Ping Ball
คลิกขวาที่ไฟล์และคลิกที่ 'บันทึกลิงค์เป็น.. ' เพื่อดาวน์โหลดไฟล์รหัส จากนั้นเปิดไฟล์ในซอฟต์แวร์ "กำลังประมวลผล" และคลิกที่ปุ่ม "เรียกใช้" เพื่อเล่นเกม คุณต้องติดตั้งซอฟต์แวร์ "กำลังประมวลผล" เพื่อเปิดไฟล์ *.pde ส่วนความคิดเห็นเปิดสำหรับการสืบค้นและตรวจสอบความคิดเห็นในโปรแกรมเพื่อทำความเข้าใจให้ดีขึ้น
ด้านล่างบรรทัดในฟังก์ชัน void setup () ของการประมวลผลโค้ดมีความสำคัญเนื่องจากจะตัดสินใจว่าจะใช้พอร์ตใดกับข้อมูล
พอร์ต = Serial ใหม่ (นี่คือ Serial.list (), 9600); // อ่านพอร์ตที่ 4 ที่ 9600 baudrate
ที่นี่ฉันได้อ่านข้อมูลจากพอร์ตที่ 4 จาก Arduino ของฉันแล้ว
ตัวอย่างเช่นถ้าคุณมี COM COM COM COM COM COM
จากนั้นโค้ดด้านบนจะอ่านข้อมูลจาก COM
การทดสอบ:
ตอนนี้เนื่องจากการประมวลผลและร่าง Arduino ของเราพร้อมแล้วเพียงแค่อัปโหลดโปรแกรมที่กำหนดด้านล่างไปยัง Arduino และเชื่อมต่อ Arduino ของคุณเข้ากับสายการเขียนโปรแกรมพีซีของผู้ใช้และเปิดเกมโดยเรียกใช้ไฟล์รหัสการประมวลผล (.pde) แค่นั้นแหละ! ย้าย Accelerometer ของคุณและเล่นเกมPing Pong ของคุณ วิดีโอจะแนะนำคุณผ่านโครงการเสร็จสมบูรณ์
เมื่อคุณเข้าใจโปรแกรมแล้วคุณสามารถสร้างเกมที่คล้ายกันและเล่นโดยใช้ Arduino ของคุณได้นอกจากนี้ยังอาจรวมแกน Y และแกน Z สำหรับการเล่นเกม