สารบัญ:
- ขั้นตอนที่ 1: ห้องสมุดคืออะไร?
- ขั้นตอนที่ 2: โครงสร้างไลบรารีและไฟล์
- ขั้นตอนที่ 3: ไฟล์ส่วนหัว
- ขั้นตอนที่ 4: ไฟล์ต้นฉบับ
- ขั้นตอนที่ 5: จัดเตรียมตัวอย่างภาพร่าง
- ขั้นตอนที่ 6: เผยแพร่ไปยัง Library Manager
- ขั้นตอนที่ 7: ขั้นตอนถัดไป
วีดีโอ: การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
สวัสดีทุกคน, ฉันเพิ่งสร้างบริการที่เรียกว่า YouTube Sight ซึ่งสามารถดึงข้อมูลผู้ติดตามจาก API ของ YouTube Analytics และให้จำนวนผู้ติดตามที่แม่นยำยิ่งขึ้นตั้งแต่ YouTube เริ่มรวบรวมผลลัพธ์ ด้วยสิ่งนี้ ฉันได้สร้างภาพร่างตัวอย่าง แต่ฉันต้องการสร้างห้องสมุด Arduino เพื่อให้ผู้คนสามารถใช้งานได้ง่ายขึ้น
ขั้นตอนที่ 1: ห้องสมุดคืออะไร?
ไลบรารีคือโค้ดส่วนหนึ่งที่สามารถจัดการกับการดำเนินการเฉพาะ ประมวลผลข้อมูลประเภทใดประเภทหนึ่ง หรือสามารถรู้วิธีโต้ตอบกับองค์ประกอบฮาร์ดแวร์เฉพาะ ช่วยให้เราขยายสภาพแวดล้อม Arduino ได้อย่างง่ายดาย และมีจำนวนมากที่ติดตั้ง Arduino IDE ไว้ล่วงหน้า
ในกรณีอย่างของฉัน ที่เราต้องการเพิ่มความเป็นไปได้ใหม่ๆ ให้กับ Arduino เราสามารถสร้างไลบรารีของเราเองเพื่อให้ผู้อื่นใช้งานได้ ไลบรารีที่ติดตั้งทั้งหมดจะอยู่ในโฟลเดอร์เฉพาะบนคอมพิวเตอร์ของเรา ในกรณีของฉันสำหรับพีซีที่ใช้ Windows ไลบรารีจะอยู่ภายใต้โฟลเดอร์ Documents/Arduino เส้นทางแบบเต็มจะเป็นข้อมูลเฉพาะสำหรับคุณ โดยอิงจากชื่อผู้ใช้ของคุณ
ขั้นตอนที่ 2: โครงสร้างไลบรารีและไฟล์
ในการเริ่มสร้างห้องสมุด เราต้องสร้างโฟลเดอร์ที่นี่ก่อนด้วยชื่อของมัน ดังนั้นฉันจึงสร้างโฟลเดอร์ชื่อ YouTube Sight ในไลบรารีเวอร์ชันขั้นต่ำสุดเปลือย เราต้องมีไฟล์อย่างน้อยสองไฟล์
ไฟล์แรกคือไฟล์ที่เรียกว่า "ส่วนหัว" ซึ่งมีคำจำกัดความทั้งหมดของวิธีการและคุณสมบัติที่ไลบรารีของเรามีให้ และไฟล์ที่สองคือไฟล์ต้นฉบับที่จะมีซอร์สโค้ดทั้งหมด
ไฟล์ส่วนหัวมีนามสกุล ".h" ในขณะที่ไฟล์ต้นฉบับมีนามสกุล ".cpp" และมักจะมีชื่อไลบรารีเป็นชื่อไฟล์ ในกรณีของฉัน ทั้งสองไฟล์เรียกว่า “YouTubeSight.h” และ “YouTubeSight.cpp”
ขั้นตอนการเขียนรหัสห้องสมุดอาจค่อนข้างน่าเบื่อและน่าหงุดหงิด โดยเฉพาะอย่างยิ่งเมื่อคุณกำลังเขียนห้องสมุดเป็นครั้งแรก แต่ด้วยการลองผิดลองถูกมากมาย คุณสามารถบรรลุผลลัพธ์ที่ต้องการได้ ด้วยเหตุนี้ฉันจะแนะนำคุณเกี่ยวกับโค้ดที่เสร็จแล้วของทั้งสองไฟล์และอธิบาย
รหัสเต็มและไลบรารีสามารถดาวน์โหลดได้จาก GitHub ที่ลิงค์ต่อไปนี้:https://github.com/bkolicoski/arduino-youtube-sight
ขั้นตอนที่ 3: ไฟล์ส่วนหัว
ภายในไฟล์ส่วนหัว ในตอนเริ่มต้น ไฟล์ทั้งหมดจะถูกห่อด้วยคำสั่ง "ifndef" ซึ่งจะตรวจสอบว่าตัวแปรที่ระบุถูกกำหนดหรือไม่ สิ่งนี้จะป้องกันข้อผิดพลาดสำหรับทุกคนที่ใช้ไลบรารีหากรวมไว้สองครั้งในร่างเดียวกันโดยไม่ได้ตั้งใจ
ต่อไป เราต้องรวมไลบรารี Arduino พื้นฐาน และเนื่องจากเราจะทำงานกับไคลเอนต์ HTTP บางอย่างเพื่อส่งคำขอไปยัง YouTube Sight เราจะรวมไลบรารีไคลเอนต์พื้นฐานด้วย
ก่อนที่เราจะเริ่มเขียนเนื้อหาของคลาสหลัก เราต้องกำหนดตัวแปรสแตติกและการตั้งค่าที่เราไม่ต้องการแก้ไข ในกรณีของฉัน มีสองตัวแปรดังกล่าว URL หลักของบริการ YouTube Sight และตัวแปรไทม์เอาต์ที่เราจะใช้ตรวจสอบระยะเวลาที่เราอ่านค่า
นอกจากนี้ ในส่วนนี้ เราสามารถกำหนดประเภทที่กำหนดเองใดๆ ที่เราต้องการใช้ เช่น โครงสร้าง channelStatistics ที่เราจะบันทึกผลลัพธ์ไว้
คำจำกัดความโครงสร้างคลาสแบ่งออกเป็นสองส่วน ส่วนแรกคือคำจำกัดความของฟังก์ชันและคุณสมบัติสาธารณะทั้งหมด ส่วนที่สองคือคำจำกัดความของฟังก์ชันและคุณสมบัติส่วนตัวทั้งหมด ความแตกต่างระหว่างทั้งสองคือผู้ใช้ปลายทางของห้องสมุดของเราจะไม่สามารถใช้สิ่งใดจากส่วนส่วนตัวได้โดยตรงในขณะที่พวกเขาจะสามารถแก้ไขและใช้คุณสมบัติและฟังก์ชันใด ๆ จากส่วนสาธารณะได้โดยตรง
ในส่วนสาธารณะ เรากำหนดตัวสร้างคลาส ตัวแปร channelStats ที่เราจะเก็บผลลัพธ์ ฟังก์ชันที่จะได้รับข้อมูลและคุณสมบัติการดีบักที่เราสามารถใช้ในภายหลังเพื่อตรวจสอบกรณีที่เราอาจไม่ได้ผลลัพธ์ที่คาดหวัง
สำหรับคุณสมบัติส่วนตัว เราจะกำหนดหนึ่งรายการสำหรับจัดเก็บ GUID ของช่อง ตัวชี้ไปยังไคลเอนต์ HTTP ที่เราจะใช้ และฟังก์ชันที่จะแยกสตริงที่ส่งคืนจาก YouTube Sight
ขั้นตอนที่ 4: ไฟล์ต้นฉบับ
ทีนี้มาดูการใช้งานจริงของทั้งหมดนี้ในไฟล์ต้นฉบับกัน
ขั้นตอนแรกสำหรับเราคือการรวมไฟล์ส่วนหัวของเราเองที่เราเพิ่งสร้างขึ้น จากนั้นเราต้องกำหนดตัวสร้างไลบรารี ในนั้นเราส่งผ่านสองตัวแปร GUID ถูกบันทึกลงในตัวแปรส่วนตัวที่เรากำหนดไว้ก่อนหน้านี้ และไคลเอนต์ถูกส่งโดยการอ้างอิง เพื่อให้เราสามารถเรียกอินสแตนซ์เดียวกันกับที่เราได้รับ
ถัดไป ฟังก์ชัน getData หลักของไลบรารีถูกกำหนดโดยการระบุประเภทการส่งคืนก่อน ตามด้วยชื่อไลบรารีและชื่อฟังก์ชัน ฉันจะไม่ลงรายละเอียดว่าทุกบรรทัดทำอะไรในฟังก์ชันนี้ แต่โดยทั่วไปแล้ว ฟังก์ชันนี้จะเปิดการเชื่อมต่อกับเซิร์ฟเวอร์ YouTube Sight ส่งคำขอเพื่อรับสถิติ จากนั้นจึงแยกวิเคราะห์ข้อมูลที่ส่งคืนโดยใช้ความช่วยเหลือ ฟังก์ชัน getValue ส่วนตัว
ผลลัพธ์ที่ดึงมาจะถูกตั้งค่าเป็นตัวแปร channelStats และตัวบ่งชี้จะถูกส่งกลับหากเราดึงผลลัพธ์สำเร็จหรือไม่และด้วยแกนกลางของไลบรารีของเรานั้นสมบูรณ์
ขั้นตอนที่ 5: จัดเตรียมตัวอย่างภาพร่าง
โดยปกติ ทุกห้องสมุดจะมีตัวอย่างที่คุณสามารถโหลดและใช้เพื่อแสดงว่าห้องสมุดสามารถทำอะไรได้บ้างและทำอย่างไร เพื่อให้ตัวอย่างดังกล่าว เราต้องแก้ไขโครงสร้างไลบรารีซึ่งตอนนี้ส่วนหัวและไฟล์ต้นฉบับจะอยู่ในโฟลเดอร์ "src" และโฟลเดอร์ใหม่จะถูกเพิ่มภายใต้รูทไลบรารีที่เรียกว่า "ตัวอย่าง"
ภาพสเก็ตช์ Arduino ใดๆ ที่คุณวางไว้ในโฟลเดอร์นี้จะให้บริการจาก Arduino IDE เป็นตัวอย่างสำหรับไลบรารีของคุณ และผู้คนสามารถสำรวจได้อย่างรวดเร็วและเรียนรู้วิธีการทำงานของไลบรารี
ขั้นตอนที่ 6: เผยแพร่ไปยัง Library Manager
ในการใช้ไลบรารี ผู้คนจะต้องรวมไฟล์ส่วนหัวของไลบรารีของคุณไว้ในแบบร่างและ Arduino IDE จะสร้างมันขึ้นมาด้วยกัน แต่เพื่อที่จะทำเช่นนั้น พวกเขาจะต้องติดตั้งบนเครื่องก่อน
วิธีทั่วไปคือดาวน์โหลดไลบรารีจาก GitHub และติดตั้งผ่านโปรแกรมติดตั้ง ZIP ใน IDE หรือเพียงแค่วางไว้ในโฟลเดอร์ไลบรารีเหมือนที่เราทำเมื่อเราสร้างมันขึ้นมา อย่างไรก็ตาม Arduino IDE ยังมีเครื่องมือที่เรียกว่า Library Manager ที่ช่วยให้คุณสามารถค้นหาไลบรารีได้โดยตรงจาก IDE
ในการรวมไลบรารีของคุณเข้าไป เราต้องสร้างไฟล์เพิ่มเติมในโฟลเดอร์รูทที่เรียกว่า "library.properties" ก่อน และในนั้น เราจำเป็นต้องระบุชื่อไลบรารี เวอร์ชันปัจจุบัน และข้อมูลเพิ่มเติมบางอย่างที่จะช่วยผู้จัดการไลบรารี เพื่อแสดงข้อมูลที่ดีขึ้นเกี่ยวกับเรื่องนี้
เมื่อติดตั้งไฟล์แล้ว ปัญหาจะต้องถูกสร้างขึ้นบนหน้า Arduino GitHub ที่เพียงแค่ขอให้ห้องสมุดของคุณถูกรวมไว้ในดัชนีพร้อมลิงก์ไปยังมัน และเมื่อได้รับการอนุมัติและเพิ่มโดยเจ้าหน้าที่ Arduino แล้ว ผู้จัดการห้องสมุดจะ เริ่มเสนอห้องสมุดของคุณในผลลัพธ์ นอกจากนี้ ผู้จัดการจะมองหาแท็กเวอร์ชันใดๆ ใน GitHub repo ในอนาคต และเสนอการอัปเดตให้กับผู้ใช้เมื่อมีการเปลี่ยนแปลง
ขั้นตอนที่ 7: ขั้นตอนถัดไป
ฉันหวังว่าหลังจากคำแนะนำนี้ คุณจะมีความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของห้องสมุด Arduino คุณสามารถสร้างได้อย่างไร และที่สำคัญที่สุด ฉันหวังว่าคุณจะได้รับแรงบันดาลใจในการเริ่มทำงานกับแนวคิดที่ยิ่งใหญ่ครั้งต่อไปของคุณ
สำหรับคำถามหรือข้อเสนอแนะเพิ่มเติม โปรดเขียนลงในความคิดเห็น สมัครรับข้อมูลจากช่อง YouTube ของฉัน และติดตามฉันที่นี่ใน Instructables
แนะนำ:
การสร้าง Arduino MIDI Controller: 9 ขั้นตอน (พร้อมรูปภาพ)
การสร้าง Arduino MIDI Controller: คำแนะนำนี้เผยแพร่ครั้งแรกในบล็อกของฉันเมื่อวันที่ 28 มิถุนายน 2020 ฉันสนุกกับการสร้างสิ่งต่าง ๆ ที่มีอุปกรณ์อิเล็กทรอนิกส์และฉันต้องการสร้างบางสิ่งโดยใช้ Arduino เสมอ หนึ่งในงานสร้างทั่วไปสำหรับผู้เริ่มต้นที่ฉันพบคือ ตัวควบคุม MIDI
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: ใช้งานได้กับ USB พื้นฐาน เกมสำหรับ PC-Flipperkästen Die Spannungsversorgung erfolgt über das USB Kabel. Implementiert sind die beiden Flipper Buttons และ ein Startbutton Zusätzlich ist ein stossen von unten, von links และ von rechts implem
การสร้าง GNU/Linux Distribution สำหรับ Raspberry Pi โดยใช้ Yocto Project: 6 ขั้นตอน
การสร้าง GNU/Linux Distribution สำหรับ Raspberry Pi โดยใช้ Yocto Project: Raspberry Pi น่าจะเป็นคอมพิวเตอร์บอร์ดเดี่ยวราคาประหยัดที่ได้รับความนิยมมากที่สุดในตลาด มักใช้สำหรับ Internet of Things และโครงการฝังตัวอื่นๆ GNU/Linux หลายรุ่นรองรับ Raspberry Pi ได้อย่างดีเยี่ยม และยังมี Mi
การสร้าง Curved UI ใน Unity สำหรับ Virtual Reality: 4 ขั้นตอน
การสร้าง UI แบบโค้งใน Unity สำหรับ Virtual Reality: หากคุณกำลังมองหาโซลูชันที่ฟรีและง่ายดายในการสร้างอินเทอร์เฟซผู้ใช้แบบโค้งสำหรับแอปพลิเคชัน Virtual Reality หรือเกม VR ของคุณ มาถูกที่แล้ว ในบล็อกนี้ คุณจะได้เรียนรู้การสร้างองค์ประกอบ ui แบบโค้งในความสามัคคีโดยใช้ส่วนขยาย Unity UI
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon, ฯลฯ.): TL;DR: บนเซนเซอร์ ตัดร่องรอยไปที่ Echo pin จากนั้นเชื่อมต่อใหม่โดยใช้ a ตัวแบ่งแรงดันไฟฟ้า (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND) แก้ไข: มีการถกเถียงกันว่า ESP8266 นั้นทนทานต่อ GPIO 5V จริงหรือไม่ใน