Physical Interface Logic: The Arduino Joystick Shield
สายจัมเปอร์หลวมๆ จำนวน 40 เส้นที่ยุ่งเหยิงพยายามเชื่อมต่อปุ่ม 5 ปุ่มและโพเทนชิออมิเตอร์แบบ analog 2 ตัวเข้ากับ Uno รับรองได้ว่าจะล้มเหลวกลางคันระหว่างการเล่นเกม Joystick Shield นำเสนอแนวคิดของการบูรณาการ PCB ที่มีโครงสร้างตายตัวและสมบูรณ์ มันจะล็อก Analog Thumbstick ขนาดใหญ่สไตล์ PS2 และ Arcade Tactics Buttons 4 ปุ่ม เข้ากับขาของ Arduino อย่างถาวร โดยไม่ต้องใช้สายไฟหลวมๆ แม้แต่เส้นเดียว!

Demystifying Analog Thumber Geometry
ฮาร์ดแวร์จะติดตั้งเข้ากับบล็อกเฮดเดอร์ analog ของ Uno ได้อย่างแม่นยำ
- แกน Left/Right จะถูกเชื่อมต่อทางกายภาพและถาวรเข้ากับ
Analog Pin A0 - แกน Up/Down จะถูกเชื่อมต่อเข้ากับ
Analog Pin A1 - บอร์ดจะต้องถูกกำหนดค่าเริ่มต้นทางคณิตศาสตร์ในโค้ด C++!
void setup() {
Serial.begin(9600);
pinMode(X_PIN, INPUT);
pinMode(Y_PIN, INPUT);
}
- การคำนวณ "ตำแหน่งพัก": เมื่อ thumbstick อยู่กึ่งกลางสนิท (ไม่ได้สัมผัส) มันจะส่งค่า integer
512บนทั้งสองแกนอย่างสมบูรณ์แบบ หากคุณดันไปทางซ้ายสุดXจะลดลงอย่างรวดเร็วเป็น0หากคุณดันไปทางขวาสุด มันจะเพิ่มขึ้นอย่างสมบูรณ์แบบเป็น1023
Processing the Digital Button Array Matrix
Shield ขนาดใหญ่มักจะมีปุ่ม "clicky" ที่น่าพอใจอย่างเหลือเชื่ออีก 4 ถึง 6 ปุ่ม ซึ่งถูกแมปไว้อย่างถาวรบนขา Digital pin 2, 3, 4, 5
- ข้อผิดพลาดที่มักเกิดขึ้น: ปุ่มเหล่านี้มักจะไม่มีตัวต้านทานภายนอกบน shield!
- หากคุณเขียนแค่
pinMode(2, INPUT);ลอจิกจะลอยอย่างรุนแรงและทำให้เกมค้างแบบสุ่ม - คุณต้องใช้ตัวต้านทานฮาร์ดแวร์ภายในของ ATmega อย่างแน่นอน:
pinMode(buttonUp, INPUT_PULLUP); - ข้อผิดพลาดทางลอจิกของ C++:
if (digitalRead(buttonUp) == LOW) { // ลอจิกถูกพลิกกลับทางโครงสร้าง!
Serial.println("JUMP COMMAND ENGAGED!");
}
- โดยการรวมแกน analog
A0 / A1เข้ากับอาร์เรย์ปุ่มขนาดใหญ่ 4 ปุ่ม ทำให้ Uno ทำงานเหมือนกับคอนโทรลเลอร์ Nintendo โดยส่งข้อมูลเกมที่สมบูรณ์ผ่านสาย USB serial เข้าสู่ Unity หรือ Processing!
Ergonomic Shield Base Parts
- Arduino Uno (รูปแบบมาตรฐานมีความจำเป็นอย่างยิ่ง Nano ไม่สามารถรองรับขนาดที่ใหญ่ของ expansion shield ได้ทางกายภาพ!)
- Generic Funduino Joystick Shield V1.A (โดยปกติจะเป็นสีแดงหรือน้ำเงิน)
- (หมายเหตุ: ตรวจสอบสวิตช์สไลด์ทางกายภาพ 3V / 5V ที่บางครั้งซ่อนอยู่ใต้ thumbstick! หากตั้งค่าไว้ที่ 3V อินพุต Analog ของ Uno จะอ่านค่าสูงสุดได้เพียง
600แทนที่จะเป็น1023!)