
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


จุดเริ่มต้นของโครงการนี้คือการทำงานในโครงการที่เป็นรูปธรรมเพื่อเรียนรู้บางสิ่งเกี่ยวกับบอร์ดไมโครคอนโทรลเลอร์
แนวคิดเริ่มต้นคือการสร้างวัตถุทางกายภาพที่สามารถตรวจสอบระบบการรวมอย่างต่อเนื่อง (VSTS|Azure DevOps) และรายงานความล้มเหลวในการสร้างซอฟต์แวร์ เนื่องจากข้อกังวลด้านความปลอดภัยจากแผนกไอที ฉันจึงถูกปฏิเสธไม่ให้เชื่อมต่ออุปกรณ์ที่ "ไม่ได้มาตรฐาน" กับเครือข่ายขององค์กรโดยตรง
ฉันลงเอยด้วยสถาปัตยกรรมที่แสดงในภาพด้านบน เวิร์กโฟลว์การดำเนินการสามารถสรุปได้ดังนี้:
แอปพลิเคชันเดสก์ท็อป Windows สแกน (ดึง) VSTS Build Definitions โดยจะวิเคราะห์ผลลัพธ์ของบิวด์ แล้วส่งคำสั่งไปยังอุปกรณ์จริงที่รันลำดับภาพเคลื่อนไหวเล็กน้อยก่อนที่จะแสดงแฟล็กสีแดงหรือสีเขียว
ขั้นตอนที่ 1: อะไหล่ที่จำเป็น
รายการต่อไปนี้สรุปรายการที่จำเป็นทั้งหมด:
- 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3)
- 1 Expension Shield (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265)
- 2 โมดูล XBee S1 (https://www.adafruit.com/product/128)
- 1 XBee explorer dongle (https://www.sparkfun.com/products/11697)
- เซอร์โวมอเตอร์แบบต่อเนื่อง 2 ตัว 5VDC พร้อมอุปกรณ์ยึด (https://www.parallax.com/sites/default/files/downloads/900-0008-Continuous-Rotation-Servo-Documentation-v2.2.pdf)
- 1 9VDC แหล่งจ่ายไฟ
- ไฟ LED 3 ดวง
- ตัวต้านทาน 3 ตัว 220 โอห์ม
- แขนหดแบบเทอร์โม
- 1 ปุ่มกด.
- ตัวต้านทานแบบดึง 10KΩ สำหรับการดึงขึ้น
- ตัวเก็บประจุ 100nF
- สายไฟฟ้า
- Strip-board (สำหรับติดตั้งปุ่ม)
- ไม้ 5 มม. (50x50 ซม.)
- แท่งไม้สี่เหลี่ยม 5x5 มม. (1 ม.)
- กระดาษแข็ง
- สกรู 10 X เส้นผ่านศูนย์กลาง 2 มม.
- 4 สกรู เส้นผ่านศูนย์กลาง 5 มม.
- แม่เหล็กที่แข็งแกร่ง
- เปลี่ยนโมดูล ฉันนำส่วนที่เคลื่อนไหวภายในของไฟกะพริบกลับมาใช้ใหม่ คุณสามารถใส่อะไรก็ได้ที่คุณต้องการ คุณจะต้องดูแลให้ชิ้นส่วนเคลื่อนที่ 2 ส่วนสามารถเคลื่อนที่ได้อย่างอิสระโดยไม่ต้องสัมผัสกัน
ขั้นตอนที่ 2: สร้างกล่อง

ที่จริงแล้วคุณสามารถมีกล่องรูปร่างอะไรก็ได้ที่คุณต้องการ สิ่งสำคัญที่ต้องคิดก่อนเริ่มคือชิ้นส่วนที่เคลื่อนไหวอยู่ที่ไหนและต้องแน่ใจว่าสามารถเคลื่อนที่ได้อย่างอิสระโดยไม่ต้องสัมผัสกัน อีกประเด็นคือคุณจะวางเครื่องไว้ที่ไหน? ฉันลงเอยด้วยแม่เหล็ก (อันแรง) เพื่อยึดติดกับโลหะรองรับ หากคุณต้องการสร้างกล่องเดียวกัน คุณสามารถทำตามคำแนะนำในไฟล์ box_drawings.pdf
ในกรณีนั้น คุณเพียงแค่ตัดชิ้นส่วนต่าง ๆ ทั้งหมด ทำรูสำหรับเซอร์โวมอเตอร์ ไฟ LED ปุ่ม และสกรู และสุดท้ายติดชิ้นส่วนทั้งหมดเข้าด้วยกัน เมื่อแห้งแล้วให้ขัดและสีเล็กน้อย
ธงทั้งสองนี้ทำด้วยกระดาษแข็งสีแดงและสีเขียว ในการซ่อมเสาธงบนเซอร์โวมอเตอร์ คุณสามารถใช้ชิ้นส่วนยึดที่ให้มาเมื่อคุณซื้อ
ขั้นตอนที่ 3: การตั้งค่า Arduino

รายการที่เชื่อมต่อกับบอร์ดขยาย Arduino คือ:
- D2 PIN: ปุ่มกด
- D4 PIN: ไฟ LED แจ้งว่าระบบเปิดอยู่
- D5 PIN: ไฟ LED บอกว่าเราดำเนินการวงจร
- D6 PIN: ไฟ LED แจ้งว่าอุปกรณ์ได้รับข้อความใหม่
- D9 PIN: สัญญาณพัลส์ PWM สำหรับเซอร์โวมอเตอร์ที่ใช้ไจโร
- D10 PIN: สัญญาณพัลส์ PWM สำหรับเซอร์โวมอเตอร์ที่จัดการแฟล็ก
- ซ็อกเก็ต XBee: หนึ่งโมดูล ZigBee
แผนผังด้านบนแสดงให้เห็นว่ารายการทั้งหมดเชื่อมต่อกับบอร์ดอย่างไร
สำหรับไฟ LED ตัวต้านทานและสายไฟจะเชื่อมโดยตรง (ดูแลขั้ว) จากนั้นทุกอย่างจะถูกบรรจุไว้ในปลอกหุ้มเทอร์โมแบบยืดหดได้
สำหรับปุ่มกด ชิ้นส่วนทั้งหมด (ปุ่ม ตัวต้านทาน และตัวเก็บประจุ) จะถูกเชื่อมโดยตรงบนแผงแถบดาวเทียมขนาดเล็ก จากนั้นแผ่นสตริปจะถูกยึดโดยตรงด้วยสกรูสองตัว (2 มม.)
เซอร์โวมอเตอร์ทำงานด้วยกำลังไฟ 5V จึงสามารถเชื่อมต่อโดยตรงกับ Arduino หากคุณใช้อันที่มีแรงดันไฟฟ้าสูงกว่า (12V) คุณจะต้องเพิ่มอีกชั้นหนึ่งสำหรับแหล่งจ่ายไฟ
สำหรับโมดูล XBee เมื่อกำหนดค่าให้พูดคุยร่วมกันแล้ว (ดูหัวข้อถัดไป) ก็สามารถเสียบเข้ากับซ็อกเก็ตได้โดยตรง
หมายเหตุ: ไฟ LED และปุ่มกดสามารถเชื่อมต่อโดยตรงกับพิน Arduino เนื่องจากอาจใช้หลักทรัพย์ที่จำเป็นภายใน ฉันเพิ่งทำแบบเก่าเนื่องจากมุมมองนี้ไม่ชัดเจนสำหรับฉัน
ขั้นตอนที่ 4: ซอฟต์แวร์ - XCTU

ตามที่กล่าวไว้ข้างต้น อุปกรณ์ XBee ทั้งสองเครื่องต้องได้รับการกำหนดค่าให้พูดคุยกัน ในการทำเช่นนั้น คุณต้องใช้ซอฟต์แวร์ X-CTU เฉพาะจาก DIGI คุณต้องทำขั้นตอนการกำหนดค่านี้เพียงครั้งเดียว โปรดทำตามขั้นตอนที่อธิบายไว้ในไฟล์ xbee_configuration.pdf
เมื่อกำหนดค่าเสร็จแล้ว คุณสามารถเชื่อมต่อแต่ละโมดูลบนซ็อกเก็ตได้ หนึ่งตัวบนตัวแปลง USB/อนุกรม และอีกตัวหนึ่งบนบอร์ดส่วนขยาย Arduino
Windows 10 ควรรู้จักตัวแปลง USB/ซีเรียลโดยอัตโนมัติ หากไม่ใช่ คุณอาจต้องติดตั้งไดรเวอร์ด้วยตนเอง
บันทึก:
การใช้โมดูล XBee เพื่อทำการสื่อสารซีเรียลพื้นฐานนั้นเกินความสามารถเล็กน้อย ในขณะที่ฉันเริ่มโครงการ ฉันไม่ประสบความสำเร็จในการค้นหาอุปกรณ์สื่อสารแบบอนุกรมอย่างง่ายที่ใช้งานได้ง่ายบน windows 10 (ปัญหาเกี่ยวกับไดรเวอร์) นอกจากนี้ยังเป็นโอกาสในการเรียนรู้บางสิ่งเกี่ยวกับ
ขั้นตอนที่ 5: ซอฟต์แวร์ - Arduino Sketch

ในการเขียนโปรแกรม Arduino เราใช้ IDE ที่สามารถเข้าถึงได้จากเว็บไซต์ทางการ
ตรรกะของโปรแกรมนั้นค่อนข้างง่าย เพียงแค่ฟังบนพอร์ตอนุกรมเริ่มต้นของบอร์ดสำหรับตัวอักษรเดี่ยว ('a', 'b', …) หากอักขระที่ได้รับตรงกับคำสั่งที่รู้จัก ฟังก์ชันย่อยจะเล่นตามลำดับที่สอดคล้องกัน
คำสั่งที่มีประโยชน์หลัก 2 คำสั่ง ได้แก่ แอนิเมชั่นความสำเร็จ ('a') และแอนิเมชั่นข้อผิดพลาด ('b')
เพื่อให้สามารถเล่น (หรือแก้จุดบกพร่อง) ได้อีกเล็กน้อยกับกล่อง มีคำสั่งพิเศษบางอย่างที่สามารถดำเนินการได้ พวกเขาคือ:
- 'o': บังคับให้ไฟ LED เปิดเป็น ON
- 'p': บังคับให้ไฟ LED เปิดปิด
- 'q': บังคับให้ LED ข้อความใหม่เป็น ON
- 'r': บังคับให้ LED ข้อความใหม่เป็น OFF
- ‘s’: บังคับให้ LED รอบเป็น ON
- 't': บังคับให้ LED รอบเป็น OFF
- ‘u’: เปิดใช้งานเซอร์โวมอเตอร์ของไจโร
- 'v': เปิดใช้งานเซอร์โวมอเตอร์ของธง
นอกจากคำสั่งซีเรียลแล้ว ยังมีรูทีนย่อย (handlePushButton) ที่เปิดใช้งานเมื่อกดปุ่มบนอุปกรณ์ ในกรณีนั้น แอนิเมชั่นข้อผิดพลาดหรือความสำเร็จจะเล่นโดยอัตโนมัติ คุณลักษณะนี้ช่วยให้ตรวจสอบว่าอุปกรณ์ทางกายภาพได้รับการติดตั้งอย่างถูกต้อง
รหัสของร่าง Arduino อยู่ในไฟล์เดียว bsldevice.ino คุณสามารถอัปโหลดได้โดยตรงโดยใช้ IDE
ขั้นตอนที่ 6: ซอฟต์แวร์ - แอปพลิเคชันเดสก์ท็อป

วัตถุประสงค์ของแอปพลิเคชันเดสก์ท็อปคือเพื่อตรวจสอบเว็บไซต์ Microsoft Azure DevOps (เดิมคือ VSTS) และเพื่อตรวจสอบว่า Build Definition สำเร็จหรือเกิดข้อผิดพลาด ทุกครั้งที่บิลด์เสร็จสิ้น แอปพลิเคชันเดสก์ท็อปจะกำหนดสถานะของบิลด์และส่งคำสั่งที่เกี่ยวข้อง ('a' หรือ 'b') ไปยังพอร์ตอนุกรม (COMx)
หลังจากเปิดตัวแอปพลิเคชัน การดำเนินการแรกคือการเลือกพอร์ต com ที่ถูกต้องซึ่งโมดูล ZigBee เชื่อมต่ออยู่ ในการกำหนดพอร์ต คุณสามารถใช้ Windows Device Manager (ภายใต้พอร์ต (ส่วน COM & LPT)) การเชื่อมต่อกับ Azure DevOps ทำได้โดยอัตโนมัติเมื่อเริ่มต้นระบบโดยใช้ข้อมูลประจำตัวของผู้ใช้ปัจจุบัน คุณยังสามารถส่งคำสั่งที่กำหนดไว้ล่วงหน้าด้วยตนเองโดยใช้กล่องคำสั่งผสมทางด้านขวา
แหล่งที่มาทั้งหมดถูกสร้างขึ้นด้วย Visual Studio 2017 รุ่นมืออาชีพ ต้องใช้. NET Framework 4.6.1 การ Framework เวอร์ชันนี้เหมาะสมกว่าเพื่ออำนวยความสะดวกในการเชื่อมต่อ/ตรวจสอบสิทธิ์กับเว็บไซต์ VSTS
ใช้:
- ดาวน์โหลดไฟล์ bslwatcher_sources.zip
- แยกมันออกจากดิสก์ของคุณ
- อ่านไฟล์ how_to_build.txt สำหรับรายละเอียดบิลด์
ขั้นตอนที่ 7: เริ่มแรก
มีสองสิ่งสำคัญที่ต้องคำนึงถึงเมื่อเริ่มกล่อง:
1- ไม่มีทางที่ระบบจะรู้ด้วยตัวเองว่าแฟล็กอยู่ที่ไหน ระบบจะถือว่าเมื่อเริ่มต้นการตั้งค่าสถานะสีเขียวจะขึ้น
2- เมื่อเปิดเครื่องบอร์ด Arduino ไม่มีอะไรควรขยับ เนื่องจากเราใช้เซอร์โวแบบต่อเนื่อง ตำแหน่งศูนย์จะถูกตั้งค่าเป็น 90 โดยค่าเริ่มต้นในไฟล์สเก็ตช์ หากเซอร์โวมอเตอร์เริ่มหมุนหรือส่งเสียงดัง คุณอาจต้องกำหนดตำแหน่งศูนย์ใหม่ ในการทำเช่นนั้น คุณเพียงแค่ปรับโพเทนชิออมิเตอร์ภายในรูเล็กๆ ที่ด้านข้างของเซอร์โวมอเตอร์
www.arduino.cc/en/Reference/ServoWrite
cmra.rec.ri.cmu.edu/content/electronics/boe…
ขั้นตอนที่ 8: สรุป
อุปกรณ์ขนาดเล็กนี้จะรายงานสถานะของระบบการรวมอย่างต่อเนื่องของคุณ
เนื่องจาก "ความฉลาด" อยู่ในแอปพลิเคชันเดสก์ท็อป คุณสามารถใช้กล่องนี้เพื่อตรวจสอบซอฟต์แวร์หรือกระบวนการอื่นๆ (เมล เซ็นเซอร์อุณหภูมิ…) คุณเพียงแค่ต้องมีสิทธิ์เข้าถึง API อื่นและตัดสินใจว่าอะไร "ดี" หรืออะไร "ไม่ดี" หากคุณไม่ใช้สีแบบแผนสีแดงและสีเขียว คุณยังสามารถเปลี่ยนความหมายของ "ข้อความ" ได้อีกด้วย
นอกจากนี้ยังสามารถนำการปรับปรุงมาสู่กล่องได้อีกด้วย:
- ใช้แบตเตอรี่
- ใช้โปรโตคอลการสื่อสารอื่น
- เพิ่มเซ็นเซอร์เพื่อให้ทราบว่าธงใดอยู่ด้านบน
หวังว่าคุณจะพบว่าโครงการนี้น่าสนใจ
ขอบคุณที่อ่านมาถึงตรงนี้
ขั้นตอนที่ 9: ภาคผนวก
ลิงก์บางส่วนที่ใช้สร้างโครงการนี้:
เว็บไซต์ Arduino:
เว็บไซต์ DIGI:
ซอฟต์แวร์ XCTU:
ข้อมูลบางส่วนที่ใช้จากผู้อื่น:
arduino.stackexchange.com/questions/1321/se…
stackoverflow.com/questions/10399400/best-w…
www.mon-club-elec.fr/pmwiki_reference_ardui… (ภาษาฝรั่งเศส)
jeromeabel.net/
เว็บไซต์ MSDN โดยทั่วไป:
docs.microsoft.com/en-us/dotnet/framework/…
แนะนำ:
สร้าง Arduino MIDI Controller: 5 ขั้นตอน (พร้อมรูปภาพ)

สร้าง Arduino MIDI Controller: สวัสดีทุกคน! ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างคอนโทรลเลอร์ MIDI ที่ขับเคลื่อนด้วย Arduino ของคุณเอง MIDI ย่อมาจาก Musical Instrument Digital Interface และเป็นโปรโตคอลที่ช่วยให้คอมพิวเตอร์ เครื่องดนตรี และฮาร์ดแวร์อื่นๆ สามารถสื่อสาร
สร้าง Macintosh Plus ROMs: 3 ขั้นตอน (พร้อมรูปภาพ)

สร้าง Macintosh Plus ROMs: คำแนะนำนี้จะแนะนำคุณตลอดกระบวนการ "ริป" ภาพ EPROM จากชิป Macintosh Plus ROM ของคุณและ (หรือ) "การเผาไหม้" ภาพไปยังชิปใหม่ กระบวนการโดยทั่วไปจะดำเนินการสองครั้งเพื่อสร้างทั้ง "
สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: 6 ขั้นตอน
![สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: 6 ขั้นตอน สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: 6 ขั้นตอน](https://i.howwhatproduce.com/images/002/image-3505-j.webp)
สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Proximity Sensor กับ Magicbit โดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
สร้าง Wearable Motion Tracker (BLE จาก Arduino ไปยัง Custom Android Studio App): 4 ขั้นตอน

สร้าง Wearable Motion Tracker (BLE จาก Arduino ไปยัง Custom Android Studio App): Bluetooth Low Energy (BLE) เป็นรูปแบบหนึ่งของการสื่อสาร Bluetooth ที่ใช้พลังงานต่ำ อุปกรณ์สวมใส่ได้ เช่น เสื้อผ้าอัจฉริยะ ที่ฉันช่วยออกแบบที่ Predictive Wear ต้องจำกัดการใช้พลังงานในทุกที่ที่ทำได้เพื่อยืดอายุการใช้งานแบตเตอรี่ และใช้ BLE บ่อยครั้ง
Twitter Watcher, #twatch: 6 ขั้นตอน (พร้อมรูปภาพ)

Twitter Watcher, #twatch: #twatch เลื่อนหัวข้อที่มีแนวโน้มล่าสุดจาก Twitter บนหน้าจอ LCD เป็นอุปกรณ์เครือข่ายแบบสแตนด์อโลนที่อัปเดตอยู่เสมอโดยไม่ต้องใช้พีซี มันยอดเยี่ยมมากที่ได้ดู #การเลือกตั้งอิหร่าน ไมเคิล แจ็คสัน และเหตุการณ์ประวัติศาสตร์อื่นๆ เลื่อนผ่านในขณะที่เรา