สารบัญ:

สร้าง Machine Watcher: 9 ขั้นตอน
สร้าง Machine Watcher: 9 ขั้นตอน

วีดีโอ: สร้าง Machine Watcher: 9 ขั้นตอน

วีดีโอ: สร้าง Machine Watcher: 9 ขั้นตอน
วีดีโอ: สร้าง AI ไปแข่งเกมกับพี่อาร์ม feat. 9ARM 2024, กรกฎาคม
Anonim
สร้าง Machine Watcher
สร้าง Machine Watcher
สร้าง Machine Watcher
สร้าง Machine Watcher

จุดเริ่มต้นของโครงการนี้คือการทำงานในโครงการที่เป็นรูปธรรมเพื่อเรียนรู้บางสิ่งเกี่ยวกับบอร์ดไมโครคอนโทรลเลอร์

แนวคิดเริ่มต้นคือการสร้างวัตถุทางกายภาพที่สามารถตรวจสอบระบบการรวมอย่างต่อเนื่อง (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 Setup
Arduino Setup

รายการที่เชื่อมต่อกับบอร์ดขยาย 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

ซอฟต์แวร์ - XCTU
ซอฟต์แวร์ - XCTU

ตามที่กล่าวไว้ข้างต้น อุปกรณ์ XBee ทั้งสองเครื่องต้องได้รับการกำหนดค่าให้พูดคุยกัน ในการทำเช่นนั้น คุณต้องใช้ซอฟต์แวร์ X-CTU เฉพาะจาก DIGI คุณต้องทำขั้นตอนการกำหนดค่านี้เพียงครั้งเดียว โปรดทำตามขั้นตอนที่อธิบายไว้ในไฟล์ xbee_configuration.pdf

เมื่อกำหนดค่าเสร็จแล้ว คุณสามารถเชื่อมต่อแต่ละโมดูลบนซ็อกเก็ตได้ หนึ่งตัวบนตัวแปลง USB/อนุกรม และอีกตัวหนึ่งบนบอร์ดส่วนขยาย Arduino

Windows 10 ควรรู้จักตัวแปลง USB/ซีเรียลโดยอัตโนมัติ หากไม่ใช่ คุณอาจต้องติดตั้งไดรเวอร์ด้วยตนเอง

บันทึก:

การใช้โมดูล XBee เพื่อทำการสื่อสารซีเรียลพื้นฐานนั้นเกินความสามารถเล็กน้อย ในขณะที่ฉันเริ่มโครงการ ฉันไม่ประสบความสำเร็จในการค้นหาอุปกรณ์สื่อสารแบบอนุกรมอย่างง่ายที่ใช้งานได้ง่ายบน windows 10 (ปัญหาเกี่ยวกับไดรเวอร์) นอกจากนี้ยังเป็นโอกาสในการเรียนรู้บางสิ่งเกี่ยวกับ

ขั้นตอนที่ 5: ซอฟต์แวร์ - Arduino Sketch

ซอฟต์แวร์ - Arduino Sketch
ซอฟต์แวร์ - 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/…

แนะนำ: