สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โดย Seeed StudioSeeed ติดตาม เพิ่มเติมโดยผู้เขียน:
เกี่ยวกับ: สวัสดี เราเป็นวิศวกรแอปพลิเคชันใน Seeed การแชร์โปรเจ็กต์กับชุมชนผู้สร้างนั้นยอดเยี่ยมมาก หวังว่าคุณจะชอบมัน XD Seeed คือตัวเปิดใช้งานฮาร์ดแวร์ IoT ที่ให้บริการที่ช่วยให้นักพัฒนา IoT ทำงานได้อย่างรวดเร็ว … เพิ่มเติมเกี่ยวกับ Seeed Studio »
วันวาเลนไทน์กำลังจะมา เจอคนตกหลุมรักตั้งแต่แรกเห็นไหม?
ขั้นตอนที่ 1: สิ่งที่ใช้ในโครงการนี้
ส่วนประกอบฮาร์ดแวร์
- Seeduino V4.2
- เกราะฐาน V2
- Grove - RGB LED Matrix พร้อมไดรเวอร์
- โกรฟ - เซ็นเซอร์น้ำ
แอพซอฟต์แวร์และบริการออนไลน์
Arduino IDE
ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์
ในโครงการนี้ เราใช้เซ็นเซอร์น้ำเพื่อตรวจจับน้ำ หากมีน้ำ หัวใจที่เต้นจะแสดงใน RGB LED Matrix
เพื่อให้บรรลุผลนี้ คุณต้องเชื่อมต่อ Grove - Water Sensor กับพอร์ต D2 ใน Base Shield และเชื่อมต่อ Grove - RGB LED Matrix กับพอร์ต I2C ในนั้นด้วย จากนั้นเสียบ Base Shield กับ Seeeduino เช่นเดียวกับภาพด้านบน
ขั้นตอนที่ 3: การเขียนโปรแกรมซอฟต์แวร์
หากต้องการใช้เมทริกซ์ RGB LED ในโปรแกรม คุณต้องเพิ่มไลบรารีลงใน Arduino IDE ของคุณ ห้องสมุดสามารถดาวน์โหลดได้ใน
Seeed_RGB_LED_Matrix
หลังจากเพิ่มไลบรารีแล้ว ให้รวมไฟล์ส่วนหัวของเมทริกซ์ในโค้ดของคุณ:
#รวม "grove_two_rgb_led_matrix.h"
การกำหนดมาโครเป็นนิสัยที่ดี ซึ่งจะทำให้โค้ดของคุณอ่านหรือแก้ไขได้ง่ายขึ้น ตัวอย่างเช่น คุณสามารถกำหนดมาโครเพื่อระบุว่าเซ็นเซอร์น้ำเชื่อมต่อกับพอร์ตใด หรือหัวใจที่เต้นควรแสดงความเร็วเท่าใด
#define SENSOR_PIN 2
#กำหนดช่วง 500
เมื่อทุกอย่างเสร็จสิ้น ให้ประกาศอินสแตนซ์เมทริกซ์เพื่อใช้ในภายหลัง
GroveTwoRGBLedMatrixClass เมทริกซ์;
และคลิกที่นี่เพื่อรับโปรแกรมแก้ไขภาพเพื่อสร้างภาพของคุณเอง การเลือกสีในแถบสี คลิกจุดในพื้นที่วาดภาพเพื่อวาด และกดปุ่ม อัปเดต หรือ แทรก ที่ด้านล่างของพื้นที่วาดภาพ รูปภาพของคุณจะถูกแปลงเป็นโค้ดและแสดงในช่องด้านขวา
รูปภาพของฉันดูเหมือนด้านล่าง คุณสามารถคัดลอกโค้ดที่แสดงไปยังโปรเจ็กต์ของคุณ แล้วแสดงในเมทริกซ์ RGB LED โดยการเข้ารหัส
ขั้นตอน setup() จะทำงานเพียงครั้งเดียวเมื่อโปรแกรมของคุณเริ่มทำงาน ดังนั้นเราจึงเริ่มต้นหมุดของเมตริกซ์และเซ็นเซอร์น้ำในนั้น
การตั้งค่าเป็นโมฆะ () {
Wire.begin(); โหมดพิน (SENSR_PIN, INPUT); WAIT_MATRIX_READY(); }
โพรซีเดอร์ loop() จะทำงานซ้ำ ๆ ดังนั้นเราจึงใช้เพื่อตรวจจับว่ามีน้ำหรือไม่โดยรหัสต่อไปนี้:
ถ้า (digitalRead (SENSOR_PIN) == ต่ำ) {
}
เมื่อเซ็นเซอร์น้ำส่งสัญญาณออก LOW แสดงว่ามีน้ำ ดังนั้นควรแสดงการเต้นของหัวใจใน RGB LED matrix
สำหรับ (uint8_t i = 0; i < EMOJI_COUNT (ตัวอย่าง); ++i) { matrix.displayFrames (EMOJI (ตัวอย่าง, i), INTERVAL, false, 1); ล่าช้า (INTERVAL); }
ขั้นตอน loop() ที่เสร็จสมบูรณ์จะมีลักษณะดังนี้ และคุณสามารถดาวน์โหลดโค้ดฉบับสมบูรณ์ได้ที่ท้ายบทความนี้
วงเป็นโมฆะ () {
if (digitalRead (SENSOR_PIN) == LOW) { สำหรับ (uint8_t i = 0; i < EMOJI_COUNT (ตัวอย่าง); ++i) { matrix.displayFrames (EMOJI (ตัวอย่าง, i), INTERVAL, false, 1); ล่าช้า (INTERVAL); } } }
คลิกปุ่มอัปโหลดใน Arduino IDE เพื่ออัปโหลดโปรแกรมของคุณไปที่ Seeeduino และลองใส่สิ่งที่เปียกลงในเซ็นเซอร์น้ำ ดูว่าเกิดอะไรขึ้น
สำคัญ:
ในเฟิร์มแวร์เวอร์ชันนี้ของ RGB LED matrix หากคุณต้องการสร้างภาพของคุณเองด้วย UNO serial คุณต้องแก้ไขไฟล์ของ arduino หากคุณใช้เมก้าหรือโลตัส คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใดๆ
ค้นหาโฟลเดอร์การตั้งค่า arduino Arduino\hardware\arduino\avr\libraries\Wire\src ให้เปิดไฟล์ Wire.h
เปลี่ยน
#กำหนด BUFFER_LENGTH 32
เข้าไปข้างใน
#กำหนด BUFFER_LENGTH 128
จากนั้นค้นหาโฟลเดอร์การตั้งค่า Arduino Arduino\hardware\arduino\avr\libraries\Wire\src\utility ให้เปิดไฟล์ twi.h
เปลี่ยน
#define TWI_BUFFER_LENGTH 32
เข้าไปข้างใน
#define TWI_BUFFER_LENGTH 128