สารบัญ:
- ขั้นตอนที่ 1: มีสิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: ดึงและดาวน์โหลดโค้ด
- ขั้นตอนที่ 3: กำลังเล่น
- ขั้นตอนที่ 4: การทดลองเสริมกับส่วนประกอบภายนอก
วีดีโอ: ทดสอบ Arduino Bare ด้วยซอฟต์แวร์เกมโดยใช้ Capacitive Input & LED: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
เกมแบบโต้ตอบ "Push-It" โดยใช้บอร์ด Arduino เปล่า ไม่จำเป็นต้องใช้ชิ้นส่วนภายนอกหรือสายไฟ (ใช้อินพุต 'สัมผัส' แบบ capacitive) ดังที่แสดงไว้ข้างต้น แสดงให้เห็นว่ามันทำงานบนกระดานสองกระดานที่แตกต่างกัน
Push-It มีวัตถุประสงค์สองประการ
- เพื่อสาธิต/ตรวจสอบอย่างรวดเร็วว่าบอร์ด Arduino ของคุณใช้งานได้ และคุณได้ตั้งค่าอย่างถูกต้องเพื่อดาวน์โหลดร่างโค้ดใหม่ลงไป คุณจะเห็นว่ามันทำอินพุตและเอาต์พุต (ระดับอินพุตดิจิตอลที่สัมผัส, เอาต์พุตไปยัง LED บนบอร์ด); จัดเก็บและกู้คืนค่าจากหน่วยความจำ EEPROM แบบไม่ลบเลือน โดยไม่ต้องต่อสายไฟหรืออุปกรณ์ใดๆ
- มอบเกมที่สนุกสนานและท้าทายด้วยการโต้ตอบกับบอร์ด Arduino
คำแนะนำนี้อนุมานว่าคุณได้ติดตั้ง Arduino IDE แล้วและอย่างน้อยก็คุ้นเคยกับการใช้งานน้อยที่สุด ถ้าไม่ฉันแนะนำคุณไปที่ลิงก์เหล่านี้:
เริ่มต้นใช้งาน Arduino
การเพิ่ม Digispark (พร้อม bootloader) รองรับ Arduino 1.6.x IDE. ที่มีอยู่
Push-It จะทำงานร่วมกับบอร์ด Arduino ส่วนใหญ่เช่น บอร์ด Nano, Uno หรือ DigiSpark Attiny85 ฉันได้ทดสอบกับ Nano 3.1 และ DigiSpark แล้ว ในข้อความเมื่อฉันอ้างถึงชื่อ/หมายเลขพิน หมุดนั้นจะถูกใช้งานบนบอร์ด Nano (ต่างจาก DigiSpark)
ขั้นตอนที่ 1: มีสิ่งที่คุณต้องการ
ซึ่งเป็นเพียง Arduino หรือบอร์ดเทียบเคียง
หากคุณยังไม่มี ฉันแนะนำให้เริ่มต้นด้วย DigiSpark Pro (~ $ 12) หรือ Nano 3.0 จาก eBay ในราคา ~ $ 3 (แต่คุณจะมีเวลาเพิ่มอีกหรือสองสัปดาห์เพื่อรอให้มันมาจากประเทศจีน และคุณจะต้องติดตั้งไดรเวอร์ USB CH340) DigiSpark ~ $ 10 (ไม่ใช่ Pro) เหมาะอย่างยิ่งสำหรับเกม 'วิดีโอ' บิตเดียวนี้ (หน่วยที่แยกส่วนนี้มี I / O เพียง 6 ตัวเท่านั้นที่จะอัปโหลดได้ยากกว่าเล็กน้อย)
ลิงค์ไปยังฮาร์ดแวร์ที่ใช้ในที่นี้:
นาโน V3.0 Atmega328P บน eBay
บอร์ดพัฒนา Digispark USB
ขั้นตอนที่ 2: ดึงและดาวน์โหลดโค้ด
คัดลอกโค้ดด้านล่างลงในไฟล์สเก็ตช์ Arduino (เช่น …/Push_It/Push_It.ino) ฉันพยายามแสดงความคิดเห็นค่อนข้างดี ฉันหวังว่าคุณจะพบรหัสที่เข้าใจได้ง่าย ตรรกะในการพิจารณาว่าเมื่อใดควรเพิ่ม ลด และเมื่อใดที่ไม่ต้องซับซ้อนนั้นค่อนข้างซับซ้อน แต่ส่วนนั้นเป็นรหัสเฉพาะและไม่มีประโยชน์ทั่วไป สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่า 'ร่าง' (โครงการรหัส) ใหม่ที่จะใช้กับ Arduino IDE ดู:
การสร้าง Arduino Sketch ใหม่
ดาวน์โหลดสเก็ตช์ 'Push_It' ลงในไมโครคอนโทรลเลอร์ของเราตามคำแนะนำ Arduino IDE สำหรับบอร์ดของคุณ
ขั้นตอนที่ 3: กำลังเล่น
เป้าหมายของเกมคือการทำให้ LED (ออนบอร์ด) กะพริบให้มากที่สุดเท่าที่จะเป็นไปได้ในชุดไฟกะพริบซึ่งจะทำซ้ำ
การเล่นเกม:
Push-It เริ่มต้นด้วยแฟลชตัวเดียวซึ่งจะทำซ้ำ หากคุณแตะนิ้วใกล้กับพินอินพุตขณะที่ไฟ LED เปิดอยู่ รอบถัดไปจะกะพริบ LED สองครั้ง
ทุกครั้งที่คุณกดปุ่มหลอกระหว่างการใช้แฟลชครั้งแรกของชุดแฟลช แฟลชอีกชุดหนึ่งจะถูกเพิ่มเข้าไปในชุดนั้น โดยทั่วไปไม่สำคัญว่าเมื่อคุณยก/ถอดนิ้วออก
แต่ถ้าคุณ 'ดัน' ก่อนหรือหลังแฟลชครั้งแรก จำนวนการกะพริบในชุดจะลดลง
หากคุณไม่ดำเนินการใดๆ เพิ่มเติม จำนวนแฟลชในชุดจะยังคงอยู่ นอกจากนี้ เมื่อการนับไม่เปลี่ยนแปลงสำหรับรอบเต็ม จำนวนนับจะถูกเก็บไว้ในหน่วยความจำ EEPROM
ทุกครั้งที่คุณเพิ่มแฟลชได้จะนับว่าจังหวะเวลาเร็วขึ้นเล็กน้อย ทำให้ยากขึ้นเรื่อยๆ ในการนับจำนวนแฟลชที่สูง เมื่อคุณทำสลิปขึ้นและจำนวนแฟลชลดลง จะมีการหยุดชั่วคราวนานกว่าก่อนที่จะเริ่มแฟลชในรอบถัดไป นี่เป็นความท้าทายเพิ่มเติม เนื่องจากสามารถเพิ่มโอกาสที่คุณจะกระโดดปืนได้ ดังนั้นจงตื่นตัวอยู่เสมอ
เมื่อคุณทำให้ยูนิตของคุณมีจำนวนแฟลชสูงแล้ว คุณสามารถนำไป (หรือส่งทางไปรษณีย์ซึ่ง DigiSpark เหมาะสำหรับ) ให้เพื่อน ซึ่งเมื่อเสียบเข้ากับอุปกรณ์แล้ว พวกเขาจะเห็นว่าแฟลชของคุณมีจำนวนเท่าใด ถึง. ฉันพบว่ามันเลิกท้าทายที่จะเพิ่มมันให้ถึง 8 ตัวด้วยการติดปุ่มจริงๆ หากต้องการเปลี่ยนกลับเป็นจำนวนที่ต่ำกว่า คุณสามารถกดซ้ำได้ทุกเมื่อก่อนหรือหลังแฟลชครั้งแรก นอกจากนี้ หากคุณจัมเปอร์พินอินพุทลงกราวด์ระหว่างการเพิ่มกำลัง การนับจะถูกรีเซ็ตเป็น 1
โปรดทราบว่ากระดาน DigiSpark ดั้งเดิมมีความล่าช้า 10 วินาทีหลังจากเปิดเครื่องก่อนที่จะเริ่มดำเนินการรหัส 'Push-It' และเล่นเกม จะใช้เวลานี้เพื่อพยายามพูดคุยผ่านพิน USB เพื่อรับการอัปเดตรหัสดาวน์โหลดใหม่ที่เป็นไปได้
หากบอร์ด Arduino ที่คุณใช้มี USB TX LED อยู่ LED นี้จะมีแฟลชขนาดเล็กอย่างรวดเร็วเมื่อคุณ 'กดปุ่ม' อย่างมีประสิทธิภาพ ไฟ LED นี้จะกะพริบอย่างมีนัยสำคัญมากขึ้นเมื่อค่าการนับใน EEPROM ได้รับการอัพเดตด้วยค่าใหม่ ข้อเสนอแนะนี้สามารถช่วยให้คุณทราบได้อย่างมากว่าเมื่อใดหรือเพื่อให้แน่ใจว่าคุณได้ทริกเกอร์เหตุการณ์ 'ปุ่มกด' อย่างมีประสิทธิภาพ คุณอาจต้องตรวจสอบให้แน่ใจว่าคุณไม่ได้สัมผัสกราวด์ของวงจร (เช่น โลหะรอบขั้วต่อ micro-USB) เพื่อให้รูปร่างของคุณส่งเสียงไปที่พินอินพุตที่เปิดอยู่ จะมีการเพิ่มและความท้าทายที่ค่อนข้างคาดเดาไม่ได้เนื่องจากพินอินพุตลอย (ไม่ถูกดึงขึ้นหรือลงโดยโหลดที่เป็นสื่อกระแสไฟฟ้า/ตัวต้านทาน) และเสียงสัญญาณแปรผันที่ผ่านนิ้วของคุณ
คลื่นสี่เหลี่ยม 250Hz จะถูกส่งออกไปยังพินที่อยู่ถัดจากพินอินพุตซึ่งช่วยเพิ่มความแน่นอนของสัญญาณอินพุตที่ฉีดเข้าไปเมื่อนิ้วของคุณครอบคลุมหมุดทั้งสอง
ฉันพบว่าการตอบสนองของบอร์ด DigiSpark นั้นคาดเดาได้ค่อนข้างสม่ำเสมอโดยการบีบนิ้วเล็กน้อยไปที่มุมของบอร์ดที่ D3-D5 อยู่
เมื่อฉันเล่น 'Push-It' ฉันชอบที่จะทำเช่นนั้นกับบอร์ดที่เชื่อมต่อกับชุดแบตเตอรี่มือถือ USB 5v (ดูรูป) โดยทั่วไปสามารถพบได้ในราคาไม่แพงในถังขยะถัดจาก USB AC และอะแดปเตอร์อัตโนมัติ 12v; ในห้างสรรพสินค้าแผนกอิเล็กทรอนิกส์ส่วนใหญ่
ขั้นตอนที่ 4: การทดลองเสริมกับส่วนประกอบภายนอก
โปรดทราบ: หากคุณแนบปุ่มจริง จะมีรหัสหนึ่งบรรทัดที่ต้องแสดงความคิดเห็นตามที่ระบุไว้ในรหัส
ด้วยลำโพงข้างหนึ่งกับพื้น หากคุณสัมผัสอีกสายหนึ่งไปยัง D4 คุณจะได้ยินเสียงคลื่นสี่เหลี่ยม 250 เฮิรตซ์ ที่ D3 มีคลื่นสี่เหลี่ยม 500Hz หากคุณเชื่อมต่อลำโพงระหว่าง D3 และ D4 คุณจะได้ยินเสียงประกอบของสัญญาณทั้งสอง
การต่อ LED แทนลำโพงด้านบนนั้นน่าสนใจมาก ไม่จำเป็นต้องกังวลเกี่ยวกับแรงดันไฟ ระดับกระแสไฟ ตัวต้านทาน หรือแม้แต่ขั้วสำหรับเรื่องนั้น (ที่แย่กว่านั้นคือมันไม่สว่างแล้ว ก็แค่หมุนมันกลับ) ลองก่อนอื่นด้วยขั้วลบ (แคโทด) ที่เชื่อมต่อกับกราวด์และอีกอันกับ D3 หรือ D4 ไฟ LED จะติด 'ครึ่งหนึ่ง' เนื่องจากคลื่นสี่เหลี่ยม นอกจากนี้ ไม่จำเป็นต้องใช้ตัวต้านทาน เนื่องจากเอาต์พุตของ MicroControllerUnits ถูกจำกัดกระแส ฉันทำการวัดปัจจุบันซึ่งส่งผลให้เกิด 15ma และ 20ma สำหรับ Attiny85 และ Atmega328 MCU ตามลำดับ ระดับเหล่านี้มีค่าประมาณครึ่งหนึ่งของค่าจำกัดปัจจุบันสำหรับชิ้นส่วนเหล่านี้เนื่องจากลักษณะรอบการทำงาน 50% ของสัญญาณคลื่นสี่เหลี่ยมที่ขับ การอ่านมิเตอร์เป็นค่าเฉลี่ยของกระแสผ่านวงจรที่ทดสอบ
ที่น่าสนใจ หากคุณเชื่อมระหว่าง D3 และ D4 กับ LED (ดูภาพด้านบนและด้านซ้าย) ไฟจะสว่างทั้งสองทาง และให้ความสว่างประมาณ ½ เหมือนกับที่ด้านหนึ่งเชื่อมต่อกับกราวด์ ผมขอเชิญคุณไตร่ตรองว่าทำไม
แนะนำ:
เครื่องกำเนิด/ทดสอบ 4-20ma โดยใช้ Arduino: 8 ขั้นตอน
เครื่องกำเนิด/ทดสอบ 4-20ma โดยใช้ Arduino: เครื่องกำเนิดไฟฟ้า 4-20mA มีให้ใช้งานบนอีเบย์ แต่สำหรับใครคนหนึ่งก็ชอบส่วน DIY ของสิ่งต่างๆ และใช้ชิ้นส่วนที่วางไว้ ผมต้องการทดสอบอินพุตแบบอะนาล็อกของ PLC เพื่อตรวจสอบการอ่าน scada ของเราและ เพื่อทดสอบเอาต์พุตของเครื่องมือ 4-20mA มีโละ
DIY Lab Bench Power Supply [สร้าง + ทดสอบ]: 16 ขั้นตอน (พร้อมรูปภาพ)
DIY Lab Bench Power Supply [สร้าง + ทดสอบ]: ในคำแนะนำ / วิดีโอนี้ฉันจะแสดงให้คุณเห็นว่าคุณสามารถสร้างแหล่งจ่ายไฟสำหรับห้องปฏิบัติการตัวแปรของคุณเองซึ่งสามารถส่ง 30V 6A 180W (10A MAX ภายใต้ขีด จำกัด พลังงาน) ขีด จำกัด กระแสไฟขั้นต่ำ 250-300mA นอกจากนี้คุณจะเห็นความแม่นยำ โหลด การป้องกันและเ
PCB ทดสอบ ESP-07: 4 ขั้นตอน
ESP-07 Test PCB: ดังนั้น Lazy Old Geek (LOG) นี้จึงเขียน Instructables บางส่วนในโมดูล ESP8266: https://www.instructables.com/id/ESP8266-as-Arduin…https://www.instructables.com /id/ESP8266-as-Arduin…https://www.instructables.com/id/2020-ESP8266/Before เขียน las
ESP32 Capacitive Touch Input โดยใช้ "Metallic Hole Plugs" สำหรับปุ่ม: 5 ขั้นตอน (พร้อมรูปภาพ)
ESP32 Capacitive Touch Input โดยใช้ "Metallic Hole Plugs" สำหรับปุ่ม: ขณะที่ฉันกำลังตัดสินใจออกแบบสำหรับโปรเจ็กต์ที่ใช้ ESP32 WiFi Kit 32 ที่กำลังจะมีขึ้นซึ่งต้องการอินพุตสามปุ่ม ปัญหาหนึ่งที่เห็นได้ชัดเจนคือชุด WiFi 32 ไม่มีปุ่มกดเชิงกลเพียงปุ่มเดียว แต่เพียงอย่างเดียวสามปุ่มกล f
ทดสอบ Ping ESP8266: 4 ขั้นตอน
การทดสอบ Ping ESP8266: Qui en tant que joueurs en ligne n'a pas connu les horrors lags ? Les énormes montées de ping causées par votre connexion ou encore les déconnexions en pleine partie classée ? N'ayant pas la fibre, et étant 5 chez moi, ces problèmes sont monnaies… เพิ่มเติม