สารบัญ:

Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด: 4 ขั้นตอน
Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด: 4 ขั้นตอน

วีดีโอ: Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด: 4 ขั้นตอน

วีดีโอ: Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด: 4 ขั้นตอน
วีดีโอ: ออกแบบปุ่มกดจอสัมผัส (2 4lcd Arduino) 2024, กรกฎาคม
Anonim
Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด
Arduino และ Python Serial Communication - จอแสดงผลปุ่มกด

โปรเจ็กต์นี้สร้างขึ้นสำหรับผู้ใช้ Mac แต่สามารถนำไปใช้กับ Linux และ Windows ได้ ขั้นตอนเดียวที่ควรจะแตกต่างออกไปคือการติดตั้ง

ขั้นตอนที่ 1: การติดตั้งซอฟต์แวร์

การติดตั้งซอฟต์แวร์
การติดตั้งซอฟต์แวร์
  1. ดาวน์โหลดและติดตั้ง Arduino ->
  2. ดาวน์โหลดและติดตั้ง Python 2.7 ->
  3. ดาวน์โหลดไลบรารี Python "pyserial-2.7.tar.gz" ->
  4. เปิดเครื่องรูด pyserial-2.7.tar.gz
  5. เปิด Terminal แล้วพิมพ์:

cd /users/"Your-User-Account"/Downloads/pyserial-2.7

sudo python setup.py ติดตั้ง

ติดตั้งซอฟต์แวร์พร้อม!

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
  1. Arduino Uno
  2. ปุ่มกด Sparkfun 12 ปุ่ม

การเดินสายทำโดยไม่มีตัวต้านทานภายนอก แต่ฉันใช้ Pullup-Resistors ภายในของไมโครคอนโทรลเลอร์แทน (Pullup-Resistors ภายในของ Arduino มีค่า 20K-Ohm ถึง 50K-Ohm)

ในการเปิดใช้งาน Pullup-Resistors ภายในให้ตั้งค่า INPUT-Pins HIGH ในโค้ด

หากคุณใช้แป้นกดอื่น โปรดดูเอกสารข้อมูลสำหรับการเดินสายที่ถูกต้อง ไม่เช่นนั้นอาจทำให้ไมโครคอนโทรลเลอร์เสียหายได้

ขั้นตอนที่ 3: รหัส Arduino

รหัส Arduino
รหัส Arduino
  • ขั้นแรก เรากำหนดอักขระ-เมทริกซ์สำหรับคีย์
  • ปุ่มกดใช้ขั้วต่อสวิตช์ปกติที่จัดเรียงเป็น 4 แถว (พิน 7, 2, 3 และ 5) และ 3 คอลัมน์ (พิน 6, 8 และ 4) ถูกกำหนดเป็นแถวอาร์เรย์พินและโคลพิน
  • ฟังก์ชัน setup()

    • เปิดประตูอนุกรมด้วย Serial.begin();
    • ตั้งค่าคอลัมน์เป็น OUTPUT-Pins HIGH
    • เปิดใช้งาน Pullup-Resistors เพื่อทำชุดแถวนี้เป็น INPUT-Pins HIGH;
  • ฟังก์ชัน getkey()

    • ตั้งค่าทุกแถวเป็น LOW และทดสอบว่าคอลัมน์ใดคอลัมน์หนึ่งเป็น LOW เนื่องจาก Pullup-Resistors เป็นแถว HIGH ทั้งหมด จนกระทั่งมีการกดคีย์เดียวลง คีย์ที่กดจะสร้าง LOW-Signal ที่ INPUT-Pin LOW นี้ระบุคีย์ที่กดในแถวและคอลัมน์นี้
    • รอจนกระทั่งปล่อยคีย์และส่งคืนอักขระของ keymap-Array หรือ 0 หากไม่มีการกดคีย์
    • ใช้การหน่วงเวลา (debounceTime) เพื่อทำให้สัญญาณเสถียร

ขั้นตอนที่ 4: รหัส Python_2.7

รหัส Python_2.7
รหัส Python_2.7
  • นำเข้า Serial Library
  • กำหนดตัวแปรที่เชื่อมต่อ = FALSE ต่อมาคือตัวแปรนี้ใช้ในการทดสอบว่าการเชื่อมต่อแบบอนุกรมพร้อมใช้งานหรือไม่
  • เปิด Serial Port ด้วย serial. Serial("ชื่อ Serial Port ของคุณ", baud)

    • หากต้องการทราบชื่อพอร์ตอนุกรมของคุณ ให้คลิก -> Tools/Serial Port ใน Arduino IDLE
    • บอดควรเหมือนกับใน Arduino Code
  • ในการทดสอบลูปในขณะที่มีการเชื่อมต่อหรือไม่อ่านสัญญาณอนุกรมและตั้งค่าตัวแปรที่เชื่อมต่อ = TRUE จะวนซ้ำจนกว่าจะได้รับการเชื่อมต่อแบบอนุกรม
  • หลังจากการเชื่อมต่ออ่านอนุกรมในขณะที่วนรอบและใส่อินพุตนี้ในตัวแปรใหม่ "var"
  • ปิดพอร์ตด้วย ser.close()

แนะนำ: