- เมทริกซ์จอแสดงผล LED P10
- ส่วนประกอบที่จำเป็นสำหรับ Arduino Scoreboard
- แผนภาพวงจรสำหรับ Arduino Scoreboard
- คำอธิบายรหัส Arduino Scoreboard
ป้ายบอกคะแนนอิเล็กทรอนิกส์เป็นหนึ่งในอุปกรณ์ที่สำคัญที่สุดที่ทุกคนสามารถมีได้ในระหว่างการแข่งขันกีฬาใด ๆ ป้ายบอกคะแนนแบบแมนนวลแบบเก่าที่ใช้วิธีการแบบเดิมใช้เวลานานมากและเกิดข้อผิดพลาดได้ง่ายดังนั้นจึงจำเป็นต้องใช้สกอร์บอร์ดแบบคอมพิวเตอร์ที่ต้องเปลี่ยนหน่วยแสดงผลแบบเรียลไทม์ นี่คือเหตุผลที่ในโครงการนี้เราจะสร้างสกอร์บอร์ดไร้สายบลูทู ธ ควบคุมในการที่เราสามารถเปลี่ยนคะแนนบนกระดานโดยการใช้โปรแกรมหุ่นยนต์สมองของโครงการนี้คือ Arduino Nano และในส่วนของการแสดงผลนั้นเราจะใช้เมทริกซ์ LED P10 เพื่อแสดงคะแนนจากระยะไกลแบบเรียลไทม์
เมทริกซ์จอแสดงผล LED P10
P10 LED Matrix Displayเป็นวิธีที่ดีที่สุดที่มีอยู่เพื่อให้คณะกรรมการ LEDสำหรับการใช้งานกลางแจ้งหรือในร่ม แผงนี้มีไฟ LED ความสว่างสูงทั้งหมด 512 ดวงติดตั้งอยู่บนตัวเครื่องพลาสติกที่ออกแบบมาเพื่อให้ได้ผลลัพธ์การแสดงผลที่ดีที่สุด นอกจากนี้ยังมาพร้อมกับระดับ IP65 สำหรับการกันน้ำทำให้เหมาะสำหรับการใช้งานกลางแจ้ง ด้วยวิธีนี้คุณสามารถสร้างป้าย LEDขนาดใหญ่โดยรวมแผงจำนวนเท่าใดก็ได้ในโครงสร้างแถวและคอลัมน์
โมดูลของเรามีขนาด 32 * 16 ซึ่งหมายความว่ามี LED 32 ดวงในแต่ละแถวและ 16 LED ในแต่ละคอลัมน์ ดังนั้นจึงมี LED ทั้งหมด 512 ดวงในแต่ละป้ายบอกทาง นอกจากนั้นยังมีระดับ IP65 สำหรับการกันน้ำสามารถใช้พลังงานจากแหล่งจ่ายไฟ 5V เดียวมีมุมมองที่กว้างมากและความสว่างสามารถสูงถึง 4500 nits ดังนั้นคุณจะสามารถมองเห็นได้อย่างชัดเจนในเวลากลางวัน ก่อนหน้านี้เราได้ใช้ P10 Display กับ Arduino เพื่อสร้างบอร์ด LED แบบธรรมดา
คำอธิบาย Pin ของP10 LED Matrix:
บอร์ดแสดงผล LEDนี้ใช้ส่วนหัวเมล 10 พินสำหรับการเชื่อมต่ออินพุตและเอาต์พุตในส่วนนี้เราได้อธิบายพินที่จำเป็นทั้งหมดของโมดูลนี้ นอกจากนี้คุณจะเห็นว่ามีขั้วต่อ 5V ภายนอกอยู่ตรงกลางของโมดูลซึ่งใช้เพื่อเชื่อมต่อแหล่งจ่ายไฟภายนอกเข้ากับบอร์ด
- เปิดใช้งาน:พินนี้ใช้เพื่อควบคุมความสว่างของแผง LED โดยให้พัลส์ PWM กับมัน
- A, B: สิ่งเหล่านี้เรียกว่าพินเลือกมัลติเพล็กซ์ พวกเขาใช้อินพุตดิจิตอลเพื่อเลือกแถวมัลติเพล็กซ์
- Shift clock (CLK), Store clock (SCLK) และ Data:นี่คือพินควบคุม shift register ปกติ ที่นี่ใช้ shift register 74HC595
การเชื่อมต่อโมดูลจอแสดงผล LED P10 กับ Arduino:
การเชื่อมต่อโมดูลการแสดงเมทริกซ์P10เข้ากับ Arduino เป็นกระบวนการที่ง่ายมากในวงจรของเราเรากำหนดค่าพิน 9 ของ Arduino เป็น Enable pin, Pin 6 เป็น Pin A, Pin 7 เป็นพิน B, Pin 13 คือ CLK, Pin 8 คือ SCLK, Pin 11 คือ DATA และสุดท้าย Pin GND คือพิน GND สำหรับโมดูลและ Arduino ตารางด้านล่างนี้จะอธิบายการกำหนดค่าพินอย่างชัดเจน
โมดูล LED P10 |
Arduino UNO |
เปิดใช้งาน |
9 |
ก |
6 |
ข |
7 |
CLK |
13 |
SCLK |
8 |
ข้อมูล |
11 |
GND |
GND |
หมายเหตุ:เชื่อมต่อขั้วจ่ายไฟของโมดูล P10 กับแหล่งจ่ายไฟภายนอก 5V เนื่องจากไฟ LED 512 ดวงจะใช้พลังงานมาก ขอแนะนำให้เชื่อมต่อแหล่งจ่ายไฟ 5V, 3 แอมป์ DC เข้ากับโมดูล P10 LED ชุดเดียว หากคุณกำลังวางแผนที่จะเชื่อมต่อโมดูลตัวเลขเพิ่มเติมให้เพิ่มความจุ SMPS ของคุณตามนั้น
ส่วนประกอบที่จำเป็นสำหรับ Arduino Scoreboard
เนื่องจากนี่เป็นโครงการที่เรียบง่ายมากข้อกำหนดของส่วนประกอบจึงเป็นแบบทั่วไปรายการส่วนประกอบที่จำเป็นจะแสดงไว้ด้านล่างคุณจึงสามารถค้นหาวัสดุที่ระบุไว้ทั้งหมดได้ในร้านขายอุปกรณ์งานอดิเรก
- Arduino นาโน
- หน้าจอเมทริกซ์ P10 LED
- เขียงหั่นขนม
- 5V, 3 AMP SMPS
- โมดูลบลูทู ธ HC-05
- การเชื่อมต่อสายไฟ
แผนภาพวงจรสำหรับ Arduino Scoreboard
Schematic สำหรับArduino LED Scoreboardแสดงไว้ด้านล่างเนื่องจากโครงการนี้ง่ายมากฉันใช้ซอฟต์แวร์ยอดนิยมในการพัฒนาแผนผัง
การทำงานของวงจรนั้นง่ายมากเรามีแอปพลิเคชัน Android และโมดูลบลูทู ธ เพื่อให้สามารถสื่อสารกับโมดูลบลูทู ธ ได้สำเร็จคุณต้องจับคู่โมดูล HC-05 กับแอปพลิเคชัน Android เมื่อเราเชื่อมต่อแล้วเราสามารถส่งสตริงที่เราต้องการแสดงได้เมื่อส่งสตริงแล้ว Arduino จะประมวลผลสตริงและแปลงเป็นสัญญาณที่ตัวต้านทานกะ 74HC595 ภายในสามารถเข้าใจได้หลังจากส่งข้อมูลไปยังกะ ตัวต้านทานพร้อมที่จะแสดง
คำอธิบายรหัส Arduino Scoreboard
หลังจากเสร็จสิ้นการตั้งค่าฮาร์ดแวร์แล้วตอนนี้ก็ถึงเวลาสำหรับการเขียนโปรแกรม Arduino Nano คำอธิบายขั้นตอนของรหัสมีให้ด้านล่าง นอกจากนี้คุณสามารถรับรหัส Arduino Scoreboard ที่สมบูรณ์ได้ที่ด้านล่างของบทช่วยสอนนี้
ก่อนอื่นเราต้องรวมไลบรารีทั้งหมด เราใช้ไลบรารีDMD.hเพื่อควบคุมจอแสดงผล LED P10 คุณสามารถดาวน์โหลดและรวมไว้ได้จากลิงค์ GitHub ที่ระบุ หลังจากนั้นคุณจะต้องรวม ไลบรารีTimerOne.hซึ่งจะใช้สำหรับการเขียนโปรแกรมขัดจังหวะในโค้ดของเรา
มีส่วนหน้ามากมายในไลบรารีนี้เราได้ใช้“ Arial_black_16 ” สำหรับโครงการนี้
# รวม
ในขั้นตอนต่อไปจำนวนแถวและคอลัมน์จะถูกกำหนดสำหรับบอร์ด LED เมทริกซ์ของเรา เราใช้โมดูลเดียวในโปรเจ็กต์นี้ดังนั้นทั้งค่า ROW และค่า COLUMN จึงสามารถกำหนดเป็น 1 ได้
# กำหนดแถว 1 # กำหนดคอลัมน์ 1 # กำหนดค่า FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
หลังจากนั้นตัวแปรทั้งหมดที่ใช้ในโค้ดจะถูกกำหนด ตัวแปรอักขระใช้เพื่อรับข้อมูลอนุกรมจาก Android App ค่าจำนวนเต็มสองค่าใช้ในการจัดเก็บคะแนนและมีการกำหนดอาร์เรย์ซึ่งเก็บข้อมูลสุดท้ายที่จะแสดงบนเมทริกซ์
อินพุตถ่าน int a = 0, b = 0; int ธง = 0; ถ่าน cstr1;
ฟังก์ชันscan_module ()มีการกำหนดอย่างต่อเนื่องสำหรับการตรวจสอบข้อมูลที่เข้ามาจาก Arduino Nano ผ่านSPIถ้าใช่มันจะทริกเกอร์การขัดจังหวะสำหรับการทำเหตุการณ์บางอย่างตามที่กำหนดโดยผู้ใช้ในโปรแกรม
เป็นโมฆะ scan_module () { led_module.scanDisplayBySPI (); }
ภายในการตั้งค่า ()ตัวจับเวลาจะถูกเตรียมใช้งานและอินเตอร์รัปต์จะเชื่อมต่อกับฟังก์ชันscan_moduleซึ่งได้กล่าวไว้ก่อนหน้านี้ ในขั้นต้นหน้าจอจะถูกล้างโดยใช้ฟังก์ชันล้างหน้าจอ (จริง)ซึ่งหมายความว่าพิกเซลทั้งหมดจะถูกกำหนดเป็นปิด
ในการตั้งค่ายังเปิดใช้งานการสื่อสารแบบอนุกรมโดยใช้ฟังก์ชันSerial.begin (9600)โดยที่ 9600 เป็นอัตรารับส่งข้อมูลสำหรับการสื่อสาร Bluetooth
การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (จริง); }
ที่นี่มีการตรวจสอบความพร้อมใช้งานของข้อมูลอนุกรมว่ามีข้อมูลที่ถูกต้องมาจาก Arduino หรือไม่ ข้อมูลที่ได้รับจาก App จะถูกเก็บไว้ในตัวแปร
ถ้า (Serial.available ()> 0) { flag = 0; อินพุต = Serial.read ();
จากนั้นค่าที่ได้รับจะถูกเปรียบเทียบกับตัวแปรที่กำหนดไว้ล่วงหน้า ที่นี่ในแอปพลิเคชัน Android จะมีปุ่มสองปุ่มเพื่อเลือกคะแนนของทั้งสองทีม เมื่อกดปุ่ม 1 อักขระ 'a' จะถูกส่งไปยัง Arduino และเมื่อกดปุ่ม 2 อักขระ 'b' จะถูกส่งไปยัง Arduino ดังนั้นในส่วนนี้ข้อมูลนี้จะถูกจับคู่และหากตรงกันค่าคะแนนตามลำดับจะเพิ่มขึ้นตามที่แสดงในรหัส
ถ้า (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; ข ++; } อื่น ๆ;
จากนั้นข้อมูลที่ได้รับจะถูกแปลงเป็นอาร์เรย์อักขระเนื่องจากฟังก์ชันเมทริกซ์ P10 สามารถแสดงชนิดข้อมูลอักขระได้เท่านั้น นี่คือเหตุผลที่ตัวแปรทั้งหมดถูกแปลงและเชื่อมต่อกันในอาร์เรย์อักขระ
(สตริง ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)) toCharArray (cstr1, 50);
จากนั้นเพื่อแสดงข้อมูลในโมดูลฟอนต์จะถูกเลือกโดยใช้ฟังก์ชันselection () จากนั้นใช้ฟังก์ชัน drawMarquee ()เพื่อแสดงข้อมูลที่ต้องการบนบอร์ด P10
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
ในที่สุดเนื่องจากเราต้องการการแสดงข้อความแบบเลื่อนฉันได้เขียนรหัสเพื่อเลื่อนข้อความทั้งหมดจากขวาไปซ้ายโดยใช้ช่วงเวลาหนึ่ง
เริ่มต้นยาว = มิลลิวินาที (); การจับเวลายาว = เริ่ม; บูลีนแฟล็ก = เท็จ; ในขณะที่ (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); เวลา = มิลลิวินาที (); } }
นี่ถือเป็นการสิ้นสุดกระบวนการเข้ารหัสของเรา และตอนนี้ก็พร้อมสำหรับการอัปโหลด
สกอร์บอร์ดที่ควบคุมด้วยสมาร์ทโฟน - การทดสอบ
หลังจากอัปโหลดโค้ดไปยัง Arduino แล้วก็ถึงเวลาทดสอบโครงการ ก่อนหน้านั้นจำเป็นต้องติดตั้งแอปพลิเคชัน android บนสมาร์ทโฟนของเรา คุณสามารถ ดาวน์โหลดแอปพลิเคชัน P10 Score Board ได้ จากลิงค์ที่ระบุ เมื่อติดตั้งแล้วให้เปิดแอปและหน้าจอหลักจะมีลักษณะดังภาพด้านล่าง
คลิกที่ปุ่มSCANเพื่อเพิ่มโมดูลบลูทู ธ ด้วยแอพ ซึ่งจะแสดงรายการอุปกรณ์ Bluetooth ที่จับคู่ของโทรศัพท์ หากคุณยังไม่เคยจับคู่โมดูลบลูทู ธ HC-05มาก่อนให้จับคู่โมดูลโดยใช้การตั้งค่าบลูทู ธ ของโทรศัพท์แล้วทำตามขั้นตอนนี้ หน้าจอจะมีลักษณะดังนี้:
จากรายการคลิกที่“ HC-05” เนื่องจากเป็นชื่อโมดูลบลูทู ธ ของเราที่ใช้ที่นี่ หลังจากคลิกที่มันจะแสดงการเชื่อมต่อบนหน้าจอ จากนั้นเราสามารถดำเนินการต่อด้วยสกอร์บอร์ด
คลิกที่ปุ่มใดก็ได้ระหว่าง“ บ้าน” และ“ ไม่อยู่” ตามที่แสดงในแอป หากเลือกปุ่มโฮมคะแนนของบ้านจะเพิ่มขึ้นในหน้าจอ P10 ในทำนองเดียวกันหากเลือกปุ่ม Away คะแนนของทีมเยือนจะเพิ่มขึ้น ภาพด้านล่างแสดงให้เห็นว่าหน้าจอสุดท้ายมีลักษณะอย่างไร
ฉันหวังว่าคุณจะชอบโครงการและเรียนรู้สิ่งใหม่ ๆ หากคุณมีคำถามอื่น ๆ เกี่ยวกับโครงการโปรดแสดงความคิดเห็นด้านล่างหรือถามคำถามของคุณได้ในฟอรัมของเรา