เราทำงานร่วมกับ Lego Mindstorms EV3 จาก .NET การเชื่อมต่อ EV3 Bricks สองตัวขึ้นไป การเชื่อมต่อผ่าน Wi-Fi
การเชื่อมต่อยูเอสบี
LEGO Mindstorms EV3 สามารถเชื่อมต่อกับพีซีหรือ EV3 อื่นๆ ผ่านการเชื่อมต่อ USB ความเร็วและความเสถียรในการเชื่อมต่อในกรณีนี้ดีกว่าวิธีอื่นรวมถึงบลูทูธด้วย
LEGO Mindstorms EV3 มีพอร์ต USB สองพอร์ต
การสื่อสารระหว่าง LEGO EV3 และบล็อก LEGO EV3 อื่นๆ ในโหมดเดซี่เชน
โหมดเดซี่เชนใช้เพื่อเชื่อมต่อบล็อก LEGO EV3 สองบล็อกขึ้นไป
โหมดนี้:
- ออกแบบมาเพื่อเชื่อมต่อ LEGO Mindstorms EV3 มากกว่าหนึ่งตัว
- ทำหน้าที่เชื่อมต่อเซ็นเซอร์ มอเตอร์ และอุปกรณ์อื่นๆ มากขึ้น
- อนุญาตการสื่อสารระหว่าง LEGO Mindstorms EV3 หลายตัว (สูงสุด 4) ซึ่งให้พอร์ตภายนอกสูงสุด 16 พอร์ตและพอร์ตภายในจำนวนเท่ากัน
- ทำให้สามารถควบคุมห่วงโซ่ทั้งหมดจาก LEGO Mindstorms EV3 หลักได้
- ไม่สามารถทำงานได้เมื่อ Wi-Fi หรือ Bluetooth ทำงานอยู่
หากต้องการเปิดใช้งานโหมดการเชื่อมต่อแบบเดซี่เชน ให้ไปที่หน้าต่างการตั้งค่าโปรเจ็กต์แล้วทำเครื่องหมายที่ช่อง
เมื่อเลือกโหมดนี้ สำหรับมอเตอร์ใดๆ เราสามารถเลือกบล็อก EV3 ที่จะใช้และเซ็นเซอร์ที่จำเป็นได้
ตารางแสดงตัวเลือกสำหรับการใช้บล็อก EV3:
การกระทำ |
มอเตอร์ขนาดกลาง |
มอเตอร์ตัวใหญ่ |
|
พวงมาลัย |
|
การจัดการที่เป็นอิสระ |
|
ไจโรสโคปิก |
|
อินฟราเรด |
|
อัลตราโซนิก |
|
การหมุนของมอเตอร์ |
|
อุณหภูมิ |
|
เครื่องวัดพลังงาน |
|
เสียง |
การเชื่อมต่อผ่านบลูทูธ
บลูทูธช่วยให้ LEGO Mindstorms EV3 เชื่อมต่อกับพีซี, LEGO Mindstorms EV3 อื่นๆ, สมาร์ทโฟน และอุปกรณ์บลูทูธอื่นๆ ระยะการสื่อสารผ่าน Bluetooth สูงถึง 25 ม.
คุณสามารถเชื่อมต่อบล็อก LEGO Mindstorms EV3 ได้สูงสุด 7 บล็อก EV3 Master Brick ช่วยให้คุณสามารถส่งและรับข้อความไปยัง EV3 Slave แต่ละตัวได้ EV3 Slaves สามารถส่งข้อความไปยัง EV3 Master Brick เท่านั้น ไม่สามารถส่งข้อความถึงกันได้
ลำดับการเชื่อมต่อ EV3 ผ่าน Bluetooth
ในการเชื่อมต่อบล็อก EV3 สองบล็อกขึ้นไปเข้าด้วยกันผ่าน Bluetooth คุณต้องทำตามขั้นตอนต่อไปนี้:
1. เปิดแท็บ การตั้งค่า.
2. เลือก บลูทู ธและกดปุ่มตรงกลาง
3. เราใส่ ช่องทำเครื่องหมาย ทัศนวิสัยบลูทู ธ.
4. ตรวจสอบว่าสัญญาณ Bluetooth ("<") виден на верхней левой стороне.
5. ทำตามขั้นตอนข้างต้นสำหรับจำนวน EV3 Bricks ที่ต้องการ
6. ไปที่แท็บการเชื่อมต่อ:
7. คลิกที่ปุ่มค้นหา:
8. เลือก EV3 ที่คุณต้องการเชื่อมต่อ (หรือที่คุณต้องการเชื่อมต่อ) แล้วกดปุ่มกลาง
9. เราเชื่อมต่อบล็อกแรกและที่สองด้วยรหัสการเข้าถึง
หากคุณทำทุกอย่างถูกต้อง ไอคอน " จะปรากฏที่มุมซ้ายบน<>" ให้เชื่อมต่อบล็อก EV3 อื่นในลักษณะเดียวกันหากมีมากกว่าสองบล็อก
หากคุณปิด LEGO EV3 การเชื่อมต่อจะขาดหายไปและคุณจะต้องทำซ้ำขั้นตอนทั้งหมดอีกครั้ง
สำคัญ: แต่ละบล็อกจะต้องมีโปรแกรมของตัวเองเขียน
โปรแกรมตัวอย่าง:
บล็อกแรก: เมื่อกดเซ็นเซอร์สัมผัส EV3 บล็อกแรกจะส่งข้อความไปยังบล็อกที่สองโดยมีความล่าช้า 3 วินาที (บล็อกหลัก)
ตัวอย่างโปรแกรมสำหรับบล็อก 2:
บล็อกที่สองรอรับข้อความจากบล็อกแรก และเมื่อได้รับแล้ว จะแสดงคำ (ในตัวอย่างของเราคือคำว่า "Hello") เป็นเวลา 10 วินาที (บล็อกทาส)
เชื่อมต่อผ่าน Wi-Fi
การสื่อสารระยะไกลสามารถทำได้โดยการเชื่อมต่อ Wi-Fi Dongle เข้ากับพอร์ต USB บน EV3
หากต้องการใช้ Wi-Fi คุณต้องติดตั้งโมดูลพิเศษบนบล็อก EV3 โดยใช้ขั้วต่อ USB (อะแดปเตอร์ Wi-Fi (อะแดปเตอร์ไร้สาย Netgear N150 (WNA1100)) หรือคุณสามารถเชื่อมต่อ Wi-Fi Dongle ได้
เลือกโหมดหน้าจอ
การเลือกโหมด
บล็อกช่องข้อความ
อินพุต
ปุ่มแสดงตัวอย่าง
เลือกประเภทข้อความหรือกราฟิกที่คุณต้องการดูโดยใช้ตัวเลือกโหมด หลังจากเลือกโหมดแล้ว คุณสามารถเลือกค่าอินพุตได้ อินพุตที่ใช้ได้จะแตกต่างกันไปขึ้นอยู่กับโหมด โหมดและอินพุตอธิบายไว้ด้านล่าง
คุณสามารถคลิกปุ่มแสดงตัวอย่างเพื่อดูตัวอย่างสิ่งที่บล็อกการแสดงผลจะแสดงบนหน้าจอ EV3 คุณสามารถเปิดมุมมองทิ้งไว้ในขณะที่เลือกค่าอินพุตสำหรับบล็อก
พิกัดหน้าจอ
โหมดบล็อกหน้าจอหลายโหมดใช้พิกัด X และ Y เพื่อกำหนดตำแหน่งขององค์ประกอบ พิกัดจะกำหนดตำแหน่งของพิกเซลบนหน้าจอ EV3 Brick ตำแหน่ง (0, 0) อยู่ที่มุมซ้ายบนของหน้าจอตามที่แสดงในภาพด้านล่าง
ขนาดหน้าจอ: กว้าง 178 พิกเซลและสูง 128 พิกเซล ช่วงของค่าพิกัด X คือจาก 0 บนหน้าจอด้านซ้ายถึง 177 ทางด้านขวา ช่วงของค่าพิกัด Y คือตั้งแต่ 0 ที่ด้านบนถึง 127 ที่ด้านล่าง
เคล็ดลับและเทคนิค
คุณสามารถใช้ปุ่มแสดงตัวอย่างที่มุมซ้ายบนของบล็อกหน้าจอเพื่อช่วยคุณค้นหาพิกัดหน้าจอที่ถูกต้อง
ข้อความ - พิกเซล
ข้อความ - โหมดพิกเซลช่วยให้คุณแสดงข้อความได้ทุกที่บนหน้าจอ EV3 Brick
รีเซ็ตหน้าต่าง
โหมดรีเซ็ตหน้าต่างจะทำให้หน้าจอ EV3 Brick กลับไปเป็นหน้าจอข้อมูลมาตรฐานที่แสดงในขณะที่โปรแกรมกำลังทำงาน หน้าจอนี้แสดงชื่อโปรแกรมและข้อมูลคำติชมอื่นๆ เมื่อคุณรันโปรแกรมบน EV3 Brick หน้าจอนี้จะปรากฏขึ้นก่อนที่บล็อกหน้าจอแรกของโปรแกรมจะทำงาน
รับประกันการมองเห็นองค์ประกอบที่แสดง
เมื่อโปรแกรม EV3 เสร็จสิ้น หน้าจอ EV3 Brick จะถูกล้างและกลับสู่หน้าจอเมนู EV3 Brick ข้อความหรือกราฟิกใด ๆ ที่แสดงโดยโปรแกรมจะถูกลบ ตัวอย่างเช่น หากโปรแกรมของคุณมีบล็อก "หน้าจอ" หนึ่งบล็อกและไม่มีอะไรอื่นอีกเลย หน้าจอจะถูกล้างอย่างรวดเร็วทันทีหลังจากโปรแกรมสิ้นสุด ซึ่งคุณจะไม่เห็นผลลัพธ์ของบล็อก "หน้าจอ"
หากคุณต้องการให้หน้าจอยังคงมองเห็นได้หลังจากโปรแกรมเสร็จสิ้น คุณต้องเพิ่มบล็อกที่ส่วนท้ายของโปรแกรมเพื่อป้องกันไม่ให้โปรแกรมสิ้นสุดทันที ดังแสดงในตัวอย่างต่อไปนี้
แสดงรายการหลายรายการ
หากคุณต้องการแสดงองค์ประกอบข้อความหรือกราฟิกหลายรายการบนหน้าจอพร้อมกัน สิ่งสำคัญคือไม่ต้องล้างหน้าจอ EV3 Brick ระหว่างองค์ประกอบต่างๆ แต่ละโหมดของบล็อกหน้าจอมีอินพุตหน้าจอที่ชัดเจน หาก Clear Screen เป็นจริง หน้าจอทั้งหมดจะถูกล้างก่อนที่จะแสดงรายการ ซึ่งหมายความว่าหากต้องการแสดงหลายรายการ คุณต้องตั้งค่า Clear Screen เป็น False สำหรับทุกบล็อกหน้าจอ ยกเว้นบล็อกแรก
การแสดงตัวเลข
หากต้องการแสดงค่าตัวเลขในโปรแกรมของคุณ ให้เชื่อมต่อบัสข้อมูลเข้ากับช่องป้อนข้อความของบล็อกการแสดงข้อความ บัสข้อมูลตัวเลขจะถูกแปลงเป็นข้อความโดยอัตโนมัติโดยใช้การแปลงประเภทบัสข้อมูล (ดูหัวข้อ
แนวคิดในการเปลี่ยนไมโครคอมพิวเตอร์ในตัวออกแบบด้วย Beaglebone หรืออย่างอื่นไม่ใช่เรื่องใหม่ แต่ด้วยการเปิดตัว EV3 ไม่เพียงแต่จะได้รับอะนาล็อก 100% เท่านั้น แต่ยังเพิ่มประสิทธิภาพของ legorobot ของคุณด้วย
การนำเสนอวิดีโอของโครงการ:
E VB รองรับระบบ Lego Mindstorms Ev3 อย่างเต็มที่ทั้งในระดับฮาร์ดแวร์และซอฟต์แวร์ เข้ากันได้กับเซ็นเซอร์และมอเตอร์ Lego ทั้งหมด 100% บล็อกทำงานเหมือนกับบล็อก Lego Mindstorms EV3:
บีเกิ้ลโบน แบล็ค— คอมพิวเตอร์ Linux บอร์ดเดี่ยวมันเป็นคู่แข่งของ Raspberry Pi มีโปรเซสเซอร์อันทรงพลัง AM335x 720MHz ARM® โปรเซสเซอร์ขนาดใหญ่ จำนวนอินพุต/เอาท์พุต ความสามารถสามารถขยายได้ด้วยบอร์ดเพิ่มเติม
Lego Mindstorms EV3 มีโปรเซสเซอร์ ARM9 (TI Sitara AM180x) 300MHz ดังนั้นย้ายไปใช้โปรเซสเซอร์ ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black เพิ่มผลผลิตแถมยังสามารถเชื่อมต่อการ์ดเอ็กซ์แพนชันเพิ่มเติมได้อีกด้วย!
สิ่งที่สำคัญที่สุดคือ Lego Mindstorms EV3 มีคำอธิบายแบบเปิดเกี่ยวกับซอฟต์แวร์และฮาร์ดแวร์ทั้งหมด!
ตัวอย่างเช่น มีการประกอบและสาธิตหุ่นยนต์แก้ลูกบาศก์รูบิกอันโด่งดัง แทนที่จะเป็น EV3 เท่านั้นที่พวกเขาติดตั้ง EVB ที่พัฒนาแล้ว เราขอเชิญคุณชมวิดีโอ:
ผู้เขียนโครงการกำลังผลิตและจำหน่าย EVB อยู่แล้ว พวกเขาวางแผนที่จะขยายการผลิตอย่างมีนัยสำคัญภายในสิ้นเดือนเมษายน 2558 นอกจากนี้ พวกเขายังได้พัฒนาและผลิตเซ็นเซอร์ที่ใช้งานร่วมกันได้หลายตัว
ตามเนื้อผ้า หุ่นยนต์ที่สร้างขึ้นบนแพลตฟอร์ม เลโก้มายด์สตอร์ม EV3ได้รับการตั้งโปรแกรมโดยใช้สภาพแวดล้อมแบบกราฟิก LabVIEW ในกรณีนี้ โปรแกรมทำงานบนตัวควบคุม EV3 และหุ่นยนต์ทำงานโดยอัตโนมัติ ที่นี่ฉันจะพูดถึงอีกทางเลือกหนึ่งในการควบคุมหุ่นยนต์ - โดยใช้แพลตฟอร์ม .NET ที่ทำงานบนคอมพิวเตอร์
แต่ก่อนที่เราจะเข้าสู่การเขียนโปรแกรม เรามาดูบางกรณีที่สิ่งนี้อาจมีประโยชน์ก่อน:
- ต้องใช้การควบคุมระยะไกลของหุ่นยนต์จากแล็ปท็อป (เช่น โดยการกดปุ่ม)
- จำเป็นต้องรวบรวมข้อมูลจากตัวควบคุม EV3 และประมวลผลบนระบบภายนอก (เช่น สำหรับระบบ IoT)
- สถานการณ์อื่นๆ เมื่อคุณต้องการเขียนอัลกอริธึมควบคุมใน .NET และเรียกใช้จากคอมพิวเตอร์ที่เชื่อมต่อกับคอนโทรลเลอร์ EV3
LEGO MINDSTORMS EV3 API สำหรับ .NET
ตัวควบคุม EV3 ถูกควบคุมจากระบบภายนอกโดยการส่งคำสั่งไปยังพอร์ตอนุกรม รูปแบบคำสั่งนั้นอธิบายไว้ในชุดนักพัฒนาการสื่อสาร
แต่การใช้โปรโตคอลนี้ด้วยตนเองนั้นน่าเบื่อ ดังนั้นคุณสามารถใช้ wrapper .NET สำเร็จรูปซึ่ง Brian Peek เขียนอย่างระมัดระวัง ซอร์สโค้ดสำหรับไลบรารีนี้โฮสต์อยู่บน Github และสามารถดูแพ็คเกจที่พร้อมใช้งานบน Nuget
การเชื่อมต่อกับคอนโทรลเลอร์ EV3
คลาส Brick ใช้เพื่อสื่อสารกับคอนโทรลเลอร์ EV3 เมื่อสร้างอ็อบเจ็กต์นี้ คุณจะต้องส่งผ่านการใช้งานอินเทอร์เฟซ ICommunication ไปยังคอนสตรัคเตอร์ ซึ่งเป็นอ็อบเจ็กต์ที่อธิบายวิธีเชื่อมต่อกับคอนโทรลเลอร์ EV3 มีการใช้งานการสื่อสารผ่าน USB, การสื่อสาร Bluetooth และการสื่อสารเครือข่าย (การเชื่อมต่อ WiFi)
วิธีการเชื่อมต่อที่ได้รับความนิยมมากที่สุดคือผ่านบลูทูธ มาดูวิธีการเชื่อมต่อนี้ให้ละเอียดยิ่งขึ้น
ก่อนที่เราจะสามารถเชื่อมต่อกับคอนโทรลเลอร์ผ่าน Bluetooth โดยทางโปรแกรมได้ คอนโทรลเลอร์จะต้องเชื่อมต่อกับคอมพิวเตอร์โดยใช้การตั้งค่าระบบปฏิบัติการ
หลังจากเชื่อมต่อคอนโทรลเลอร์แล้ว ให้ไปที่การตั้งค่า Bluetooth และเลือกแท็บพอร์ต COM เราพบตัวควบคุมของเราแล้วเราต้องการ ขาออกท่าเรือ. เราจะระบุเมื่อสร้างวัตถุ BluetoothCommunication
รหัสสำหรับเชื่อมต่อกับคอนโทรลเลอร์จะมีลักษณะดังนี้:
การเชื่อมต่องาน async สาธารณะ (การสื่อสาร ICommunication) ( var communication = new BluetoothCommunication("COM9"); var Brick = _brick = new Brick(communication); await _brick.ConnectAsync(); )
หรือคุณสามารถระบุการหมดเวลาการเชื่อมต่อกับคอนโทรลเลอร์ได้:
รอ _brick.ConnectAsync(TimeSpan.FromSeconds(5));
การเชื่อมต่อกับเครื่องผ่าน USB หรือ WiFi ดำเนินการในลักษณะเดียวกัน ยกเว้นว่าจะใช้ออบเจ็กต์ UsbCommunication และ NetworkCommunication
การดำเนินการเพิ่มเติมทั้งหมดที่ดำเนินการบนคอนโทรลเลอร์จะดำเนินการผ่านวัตถุ Brick
มาหมุนเครื่องยนต์กันเถอะ
ในการรันคำสั่งบนคอนโทรลเลอร์ EV3 เราเข้าถึงคุณสมบัติ DirectCommand ของวัตถุ Brick ก่อนอื่นเรามาลองสตาร์ทเครื่องยนต์กันก่อน
สมมติว่ามอเตอร์ของเราเชื่อมต่อกับพอร์ต A ของคอนโทรลเลอร์ จากนั้นการทำงานมอเตอร์นี้ที่กำลังไฟ 50% จะมีลักษณะดังนี้:
รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50);
มีวิธีอื่นในการควบคุมมอเตอร์ ตัวอย่างเช่น คุณสามารถหมุนมอเตอร์ไปยังมุมที่ระบุได้โดยใช้วิธี StepMotorAtPowerAsync() และ StepMotorAtSpeedAsync() มีหลายวิธีให้เลือก ได้แก่ โหมดการเปิดมอเตอร์ที่แตกต่างกัน - ตามเวลา, ความเร็ว, กำลัง ฯลฯ
การบังคับให้หยุดดำเนินการโดยใช้วิธี StopMotorAsync():
รอ _brick.DirectCommand.StopMotorAsync (OutputPort.A, จริง);
พารามิเตอร์ที่สองระบุถึงการใช้เบรก หากคุณตั้งค่าเป็นเท็จ มอเตอร์จะเคลื่อนที่จนหยุด
การอ่านค่าจากเซนเซอร์
คอนโทรลเลอร์ EV3 มีพอร์ตสี่พอร์ตสำหรับเชื่อมต่อเซ็นเซอร์ นอกจากนี้ มอเตอร์ยังมีตัวเข้ารหัสในตัวซึ่งช่วยให้สามารถใช้เป็นเซ็นเซอร์ได้ เป็นผลให้เรามี 8 พอร์ตที่สามารถอ่านค่าได้
พอร์ตสำหรับการอ่านค่าสามารถเข้าถึงได้ผ่านคุณสมบัติ Ports ของออบเจ็กต์ Brick พอร์ตคือชุดของพอร์ตที่มีอยู่บนคอนโทรลเลอร์ ดังนั้นในการทำงานกับพอร์ตเฉพาะคุณต้องเลือกพอร์ตนั้น InputPort.One ... InputPort.Four คือพอร์ตเซ็นเซอร์ และ InputPort.A ... InputPort.D คือตัวเข้ารหัสมอเตอร์
Var port1 = _brick.พอร์ต;
เซ็นเซอร์ใน EV3 สามารถทำงานในโหมดต่างๆ ได้ ตัวอย่างเช่น สามารถใช้เซ็นเซอร์สี EV3 เพื่อวัดแสงโดยรอบ วัดแสงสะท้อน หรือตรวจจับสีได้ ดังนั้นเพื่อที่จะ “บอก” เซ็นเซอร์อย่างชัดเจนว่าเราต้องการใช้งานอย่างไร เราจำเป็นต้องตั้งค่าโหมดของมัน:
Brick.Ports.SetMode (โหมดสีสะท้อนแสง);
เมื่อเชื่อมต่อเซ็นเซอร์แล้วและตั้งค่าโหมดการทำงานของเซ็นเซอร์แล้ว คุณสามารถอ่านข้อมูลจากเซ็นเซอร์ได้ คุณสามารถรับข้อมูล "ดิบ" ค่าที่ประมวลผล และค่าเปอร์เซ็นต์ได้
ลอย si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; เปอร์เซ็นต์ไบต์ = _brick.Ports.PercentValue;
คุณสมบัติ SIValue ส่งคืนข้อมูลที่ประมวลผล ทุกอย่างขึ้นอยู่กับเซ็นเซอร์ที่ใช้และในโหมดใด เช่น เมื่อวัดแสงสะท้อน เราจะได้ค่าตั้งแต่ 0 ถึง 100 ขึ้นอยู่กับความเข้มของแสงสะท้อน (ดำ/ขาว)
คุณสมบัติ RawValue ส่งกลับค่าดิบที่ได้รับจาก ADC บางครั้งการใช้เพื่อการประมวลผลและการใช้งานในภายหลังจะสะดวกกว่า อย่างไรก็ตามในสภาพแวดล้อมการพัฒนา EV3 ก็สามารถรับค่า "ดิบ" ได้ - สำหรับสิ่งนี้คุณต้องใช้บล็อกจากแผงสีน้ำเงิน
หากเซ็นเซอร์ที่คุณใช้คาดว่าจะได้รับค่าเป็นเปอร์เซ็นต์ คุณก็สามารถใช้คุณสมบัติ PercentValue ได้เช่นกัน
การดำเนินการคำสั่งเป็นชุด
สมมติว่าเรามีรถเข็นหุ่นยนต์ที่มีสองล้อ และเราต้องการติดตั้งมันให้เข้าที่ ในกรณีนี้ล้อทั้งสองจะต้องหมุนไปในทิศทางตรงกันข้าม หากเราใช้ DirectCommand และส่งคำสั่งสองคำสั่งตามลำดับไปยังคอนโทรลเลอร์ บางเวลาอาจผ่านไประหว่างการดำเนินการ:
รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50); รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.B, -50);
ในตัวอย่างนี้เราส่งคำสั่งให้หมุนมอเตอร์ A ด้วยความเร็ว 50 หลังจากส่งคำสั่งนี้สำเร็จเราก็ทำซ้ำเหมือนเดิมกับมอเตอร์ที่เชื่อมต่อกับพอร์ต B ปัญหาคือการส่งคำสั่งไม่เกิดขึ้นทันทีดังนั้นมอเตอร์ อาจเริ่มหมุนเวลาต่างกัน - ขณะกำลังส่งคำสั่งพอร์ต B มอเตอร์ A เรียบร้อยแล้วจะเริ่มหมุน
หากเป็นสิ่งสำคัญสำหรับเราที่จะต้องทำให้มอเตอร์หมุนในเวลาเดียวกัน เราสามารถส่งคำสั่งไปยังคอนโทรลเลอร์เป็น "ชุด" ได้ ในกรณีนี้ คุณควรใช้คุณสมบัติ BatchCommand แทน DirectCommand:
Brick.BatchCommand.TurnMotorAtPower (OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower (OutputPort.B, -50); รอ _brick.BatchCommand.SendCommandAsync();
ขณะนี้มีการเตรียมคำสั่งสองคำสั่งพร้อมกันหลังจากนั้นจะถูกส่งไปยังคอนโทรลเลอร์ในแพ็กเก็ตเดียว เมื่อได้รับคำสั่งเหล่านี้แล้วผู้ควบคุมจะเริ่มหมุนมอเตอร์พร้อมกัน
คุณทำอะไรได้อีก
นอกจากการหมุนมอเตอร์และการอ่านค่าเซ็นเซอร์แล้ว คุณยังสามารถดำเนินการอื่นๆ ได้อีกหลายอย่างบนคอนโทรลเลอร์ EV3 ฉันจะไม่ลงรายละเอียดเกี่ยวกับแต่ละรายการ ฉันจะแสดงรายการเฉพาะสิ่งที่สามารถทำได้:
- CleanUIAsync(), DrawTextAsync(), DrawLineAsync() ฯลฯ - การจัดการหน้าจอในตัวของคอนโทรลเลอร์ EV3
- PlayToneAsync() และ PlaySoundAsync() - ใช้ลำโพงในตัวเพื่อเล่นเสียง
- WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (จาก SystemCommand) - ทำงานกับไฟล์
บทสรุป
การใช้ .NET เพื่อควบคุมหุ่นยนต์ Mindstorms EV3 แสดงให้เห็นอย่างดีว่าเทคโนโลยีจาก "โลกที่แตกต่าง" สามารถทำงานร่วมกันได้อย่างไร จากการวิจัย EV3 API สำหรับ .NET แอปพลิเคชันขนาดเล็กได้ถูกสร้างขึ้นซึ่งช่วยให้คุณสามารถควบคุมหุ่นยนต์ EV3 จากคอมพิวเตอร์ได้ น่าเสียดายที่มีแอปพลิเคชันที่คล้ายกันสำหรับ NXT แต่ EV3 ข้ามไป ในขณะเดียวกันก็มีประโยชน์ในการแข่งขันหุ่นยนต์ควบคุม เช่น หุ่นยนต์ฟุตบอล
สามารถดาวน์โหลดและติดตั้งแอปพลิเคชันได้จากลิงค์นี้: